# 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 196329
# self = https://watcher.sour.is?offset=142425
# next = https://watcher.sour.is?offset=142525
# prev = https://watcher.sour.is?offset=142325
making a note here to check this out.
making a note here to check this out.
@adi Nothing really, I tried it in a VM a long time ago, never got to install it on HW, might give it a try again soon (I enjoy to set up my machines with various OS'es and test them etc).
@adi Dragonfly BSD - that is one OS I have never run properly before - but I've always wanted too. Also not often at all I see that OS being mentioned 'in the wild'.
@prologic it's mostly ready now I feel, got a lot done, so I'll focus on getting it out there this week, A bit busy the next days, but I'm sure I'll find time to get it uploaded and hosted on my VPS so that others can use it as well.
@prologic Yeah, good point. I will see if I can selfhost it in a good way, I'll think about it for the next days, I'll also create a subdomain on my website where I can put some info and git links and what not, nice to have a info page to link back to from the application.
[47°09′50″S, 126°43′59″W] Reading: 0.28000 PPM
I played around with parsers. This time I experimented with parser combinators for twt message text tokenization. Basically, extract mentions, subjects, URLs, media and regular text. It's kinda nice, although my solution is not completely elegant, I have to say. Especially my communication protocol between different steps for intermediate results is really ugly. Not sure about performance, I reckon a hand-written state machine parser would be quite a bit faster. I need to write a second parser and then benchmark them.

lexer.go and newparser.go resemble the parser combinators: https://git.isobeef.org/lyse/tt2/-/commit/4d481acad0213771fe5804917576388f51c340c0 It's far from finished yet.

The first attempt in parser.go doesn't work as my backtracking is not accounted for, I noticed only later, that I have to do that. With twt message texts there is no real error in parsing. Just regular text as a "fallback". So it works a bit differently than parsing a real language. No error reporting required, except maybe for debugging. My goal was to port my Python code as closely as possible. But then the runes in the string gave me a bit of a headache, so I thought I just build myself a nice reader abstraction. When I noticed the missing backtracking, I then decided to give parser combinators a try instead of improving on my look ahead reader. It only later occurred to me, that I could have just used a rune slice instead of a string. With that, porting the Python code should have been straightforward.

Yeah, all this doesn't probably make sense, unless you look at the code. And even then, you have to learn the ropes a bit. Sorry for the noise. :-)
👋 Hello @quenquenpotter, welcome to twtxt.net, a Yarn.social Pod! To get started you may want to check out the pod's Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
👋 Hello @quenquenpotter, welcome to twtxt.net, a Yarn.social Pod! To get started you may want to check out the pod's Discover feed to find users to follow and interact with. To follow new users, use the ⨁ Follow button on their profile page or use the Follow form and enter a Twtxt URL. You may also find other feeds of interest via Feeds. Welcome! 🤗
[47°09′49″S, 126°43′57″W] 3644 days without news from Herve
In more interesting news, I've probably posted before that my cat uses the printer as a cat bed. What I don't think I've posted before is that she frequently prints test pages when she shifts around. At first it scared the crap out of her, but now she paws at the pages, a little annoyed, till they fall on the floor or till she can make them into a bed again.
Stochastic Parrots Might Even Be More Linguistically Competent Than ChatGPT

This guy put a prompt into ChatGPT and recorded its output. Then he shuffled the words in the prompt text in such a way that the prompt was completely unintelligible to a human being, but still retained some of the correlational statistics of the words. He fed that as a prompt into ChatGPT. The result? Output that was almost identical to the original output.

Gibberish input into ChatGPT will produce coherent-sounding text just as well as a carefully-crafted prompt. This is such a nice and simple demonstration that ChatGPT has no "intelligence" of any kind built into it.
The uselessness of social media: https://intr.cx/blog/social-media
@jmjl It's okay because Twtxt is a pull based model so all good 🤔
@jmjl It's okay because Twtxt is a pull based model so all good 🤔
@jmjl It's okay because Twtxt is a pull based model so all good 🤔
@prologic I was testing jenny and didn't make sure I commented the code that actually sends posts, (I removed those posts from my twtxt file alredy), so I mentioned a few people with single-letter messages
On my blog: Developer Diary, Siblings Day https://john.colagioia.net/blog/2023/04/10/siblings.html #programming #project #devjournal
Didn't know that speedtest.net has a CLI 😅


$ speedtest

   Speedtest by Ookla

[error] Error: [8] nodename nor servname provided, or not known
      Server: Foxtel Broadband - Brisbane (id: 8847)
         ISP: Aussie Broadband
Idle Latency:     9.46 ms   (jitter: 0.20ms, low: 9.25ms, high: 9.76ms)
    Download:    93.39 Mbps (data used: 50.5 MB)
                 22.67 ms   (jitter: 4.76ms, low: 10.01ms, high: 135.16ms)
      Upload:    35.10 Mbps (data used: 58.7 MB)
                880.05 ms   (jitter: 95.73ms, low: 16.75ms, high: 1823.19ms)
 Packet Loss:     0.0%
Didn't know that speedtest.net has a CLI 😅


$ speedtest

   Speedtest by Ookla

[error] Error: [8] nodename nor servname provided, or not known
      Server: Foxtel Broadband - Brisbane (id: 8847)
         ISP: Aussie Broadband
Idle Latency:     9.46 ms   (jitter: 0.20ms, low: 9.25ms, high: 9.76ms)
    Download:    93.39 Mbps (data used: 50.5 MB)
                 22.67 ms   (jitter: 4.76ms, low: 10.01ms, high: 135.16ms)
      Upload:    35.10 Mbps (data used: 58.7 MB)
                880.05 ms   (jitter: 95.73ms, low: 16.75ms, high: 1823.19ms)
 Packet Loss:     0.0%
Didn't know that speedtest.net has a CLI 😅


$ speedtest

   Speedtest by Ookla

[error] Error: [8] nodename nor servname provided, or not known
      Server: Foxtel Broadband - Brisbane (id: 8847)
         ISP: Aussie Broadband
Idle Latency:     9.46 ms   (jitter: 0.20ms, low: 9.25ms, high: 9.76ms)
    Download:    93.39 Mbps (data used: 50.5 MB)
                 22.67 ms   (jitter: 4.76ms, low: 10.01ms, high: 135.16ms)
      Upload:    35.10 Mbps (data used: 58.7 MB)
                880.05 ms   (jitter: 95.73ms, low: 16.75ms, high: 1823.19ms)
 Packet Loss:     0.0%
[47°09′30″S, 126°43′36″W] Storm recedes -- back to normal work
@prologic thank you 😀
I've got the archives of my Musker accounts safe and sound, let the man baby play his games without me https://lien.sus.fr/jpOTL
I've got the archives of my Musker accounts safe and sound, let the man baby play his games without me https://lien.sus.fr/jpOTL\r
I've got the archives of my Musker accounts safe and sound, let the man baby play his games without me https://lien.sus.fr/jpOTL
I've got the archives of my Musker accounts safe and sound, let the man baby play his games without me https://lien.sus.fr/jpOTL
I've got the archives of my Musker accounts safe and sound, let the man baby play his games without me https://lien.sus.fr/jpOTL
@movq I have sent you a PATCH for jenny.
[47°09′50″S, 126°43′51″W] Wind speed: N/A -- Cannot comunicate
@prologic Thanks! Yeah, probably no winter anymore. But you'll never know what April has in petto.
@jmjl Sorry, what are you being sorry about? 😅 🤔
@jmjl Sorry, what are you being sorry about? 😅 🤔
@jmjl Sorry, what are you being sorry about? 😅 🤔
Sorry everyone I pinged without wanting, I thought I made the program properly not send the messages, so sorry.
[47°09′10″S, 126°43′08″W] Weather forecast alert -- storm from NW
@rrraksamam They should show up in the "mentions" view, but we've never implement "notifications" as such, kind of on purpose really.
@rrraksamam They should show up in the "mentions" view, but we've never implement "notifications" as such, kind of on purpose really.
@rrraksamam They should show up in the "mentions" view, but we've never implement "notifications" as such, kind of on purpose really.
@lyse Still some nice shots there 👌 I guess winter is finally over for you 😆
@lyse Still some nice shots there 👌 I guess winter is finally over for you 😆
@lyse Still some nice shots there 👌 I guess winter is finally over for you 😆
@stigatle This is coming along real nice 👌
@stigatle This is coming along real nice 👌
@stigatle This is coming along real nice 👌
Happy Easter!
🧮 USERS:1 FEEDS:2 TWTS:565 ARCHIVED:63479 CACHE:2199 FOLLOWERS:13 FOLLOWING:14
@lyse Thank you! Yeah I fixed that now, short statuses got shifted, but that has been fixed. :)
Happy Easter to those who celebrate it.
[47°09′20″S, 126°43′50″W] 3643 days without news from Herve
Went into the woods for two hours and tried to take photos of birds. That didn't really work out. Too far away and quickly moving, branches in the way, which is messing with the autofocus. The fading light does the rest. I saw easily ten woodpeckers on one tree on a paddock, but they're super shy. Especially the green ones. It's impossible to sneak in. They fly off when I'm falling below 40-50 meters. The great spotted woodpecker in 12 was the last one on that tree and a second later it was gone, too. Gotta try harder next time.

Trees on a meadow with the sun in their backs
Cool, cool, cool, @stigatle! It's coming together. I reckon a wee bit of padding in the window wouldn't hurt. :-)
UE: Regras de responsabilidade propostas irão prejudicar o Software Livre
I added all the timelines, so now you can switch between 'discover', 'timeline' and mentions from the drop down menu :)

[47°09′18″S, 126°43′39″W] Transfer aborted
Progress - progress, love it when things fall into place.

If you hit 'reply' on a post it fills in the mentions as well in the status entry box.

My experiences setting up an E-Mail service: https://intr.cx/blog/email-service
I'm running a public Monero node now: https://intr.cx/blog/monero-node
On my blog: Great Ideas from Terrible Jobs https://john.colagioia.net/blog/2023/04/09/ideas.html #rant #career
[47°09′53″S, 126°43′51″W] Transfer 25% complete...
Pinellas County - Long run: 12.41 miles, 00:09:56 average pace, 02:03:12 duration

#running
Pinellas County - Long run: 12.41 miles, 00:09:56 average pace, 02:03:12 duration

#running
Pinellas County - Long run: 12.41 miles, 00:09:56 average pace, 02:03:12 duration

#running
Pinellas County - Long run: 12.41 miles, 00:09:56 average pace, 02:03:12 duration

#running
[47°09′00″S, 126°43′31″W] Bad satellite signal -- switching to analog communication
VDSL2 Bridge / Modem - PLANET Product | Planet | MPA Systems --- Hmm I wonder if I can use one of these? 🤔 Long story short, but my two (both of them! 😱) Proscent TS-180 vDSL SFP modules are both not working and cannot maintain sync 😢
VDSL2 Bridge / Modem - PLANET Product | Planet | MPA Systems --- Hmm I wonder if I can use one of these? 🤔 Long story short, but my two (both of them! 😱) Proscent TS-180 vDSL SFP modules are both not working and cannot maintain sync 😢
VDSL2 Bridge / Modem - PLANET Product | Planet | MPA Systems --- Hmm I wonder if I can use one of these? 🤔 Long story short, but my two (both of them! 😱) Proscent TS-180 vDSL SFP modules are both not working and cannot maintain sync 😢
I also thinked about sr.ht, but I think sr.ht has some issues, as you still can not, well make the repos from the cli, I think I'll need to make my own managing script for mlmmj or something, maybe even make my own mailing list manager, (probably forking from mlmmj as that's working fine for me)
[47°09′16″S, 126°43′08″W] Raw reading: 0x64324651, offset +/-5
@chunkimo lol. go walrus!!
@chunkimo lol. go walrus!!
🧮 USERS:1 FEEDS:2 TWTS:564 ARCHIVED:63474 CACHE:2199 FOLLOWERS:13 FOLLOWING:14
@abucci Just a little 😆
@abucci Just a little 😆
@abucci Just a little 😆
@abucci Noice! 👌 Bwtween you and my reading I have a muumuu deeper understanding of this shit 🙇‍♂️

Sasly I didn't come across RNNS though 😆 But yhay doesn't matter 🤔
@abucci Noice! 👌 Bwtween you and my reading I have a muumuu deeper understanding of this shit 🙇‍♂️

Sasly I didn't come across RNNS though 😆 But yhay doesn't matter 🤔
@abucci Noice! 👌 Bwtween you and my reading I have a muumuu deeper understanding of this shit 🙇‍♂️

Sasly I didn't come across RNNS though 😆 But yhay doesn't matter 🤔
@stigatle Very cool 👌
@stigatle Very cool 👌
@stigatle Very cool 👌
i mean how many bits can you even hide in a human-understandable theorem?
i mean how many bits can you even hide in a human-understandable theorem?
i mean how many bits can you even hide in a human-understandable theorem?
i mean how many bits can you even hide in a human-understandable theorem?
i mean how many bits can you even hide in a human-understandable theorem?
i mean how many bits can you even hide in a human-understandable theorem?
So now it looks like this:
One thing I need to also fix - is the way a reply is done, I need it to add the mentions as well, so that you can reply to a person more easily, instead of just the thread.
Added refresh of the timeline, currently a button that you press to do so, I will move it to a timed function shortly.. But nice to get something added tonight.
[47°09′41″S, 126°43′27″W] Saalmi, retransmit, please
@prologic oh, nice. Did you stumble on recurrent neural networks?
(not to imply the engineering parts, including the data acquisition and cleanup, are easy, and not to imply there aren't a million tricks in there to make sure this all works nicely. it's a hell of a feat of engineering and those two twts I wrote only outline at a very high level one way it might work).
@prologic geez, yes that's horrible. "Autoregressive" just means that the next token in a sequence is a function of previous ones, and "language model" here just means a probability distribution over sequences. "Autoregressive language model" is an infuriatingly obtuse way to describe autocomplete!

Like, if you type "The dog is", autocomplete will suggest some words from you that are likely to come next. Maybe "barking", "wet", "hungry", ... It'll rank those by how high a probability it rates each follow-up word. It'll probably not suggest words like "uranium" or "quickly", because you very rarely if ever encounter those words after "The dog is" in English sentences so their probability is very low.

👆 That's the "autoregressive" part.

It gets these probabilities from a "language model", which is a fancy way of saying a table of probabilities. A literal lookup table of the probabilities would be wayyyyy too big to be practical, so neural networks are often used as a representation of the lookup table, and deep learning (many-layered neural networks + a learning algorithm) is the hotness lately so they use that.

👆 That's the "language model" part.

So, you enter a prompt for ChatGPT. It runs fancy autocorrect to pick a word that should come next. It runs fancy autocorrect again to see what word will come next *after the last word it predicted and some of your prompt words*. Repeat to generate as many words as needed. There's probably a heuristic or a special "END OF CHAT" token to indicate when it should stop generating and send its response to you. Uppercase and lowercase versions of the tokens are in there so it can generate those. Punctuation is in there so it can generate that. With a good enough "language model", it'll do nice stuff like close parens and quotes, correctly start a sentence with a capital letter, add paragraph breaks, and so on.

There's really not much more to it than that, aside from a crapton of engineering to make all that work at the scale they're doing it.
@prologic little bit of code there huh?
@jmjl I think so 👌
@jmjl I think so 👌
@jmjl I think so 👌