# 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 235518
# self = https://watcher.sour.is?offset=228138
# next = https://watcher.sour.is?offset=228238
# prev = https://watcher.sour.is?offset=228038
morning yarn friends i've been playing with astro the SSG and it's a blast i see why my friends love it and rec it to everyone. i may think javascript was a mistake but this is super cool
morning yarn friends i've been playing with astro the SSG and it's a blast i see why my friends love it and rec it to everyone. i may think javascript was a mistake but this is super cool
@prologic that's iconic af though like i should do the same bc i hate cloudflare that much i just refuse to use them
@prologic that's iconic af though like i should do the same bc i hate cloudflare that much i just refuse to use them
@lyse oh nah it came out like that lol! i actually love how squished it looks it feels accurate lol

oh yeah i think i might have a tripod around but i do need a sandbag or something i could use as one. maybe yeah a giant bag of rice could work LOL. thanks for the tips!!! i took a video class last year in college and we worked with cameras and tripods with sandbags so it was on my mind
@lyse oh nah it came out like that lol! i actually love how squished it looks it feels accurate lol

oh yeah i think i might have a tripod around but i do need a sandbag or something i could use as one. maybe yeah a giant bag of rice could work LOL. thanks for the tips!!! i took a video class last year in college and we worked with cameras and tripods with sandbags so it was on my mind
@lyse yeah! as long as it's fun :D experimenting with it like picking up the camera every once in a while to point somewhere else, or in editing inserting more video in between the static angles, that could be fun!
@lyse yeah! as long as it's fun :D experimenting with it like picking up the camera every once in a while to point somewhere else, or in editing inserting more video in between the static angles, that could be fun!
@movq this is why people like me can't code this is boring eyes glazing over kinda stuff lol
@movq this is why people like me can't code this is boring eyes glazing over kinda stuff lol
[47°09′39″S, 126°43′31″W] Taking samples
What's a reasonable per second or per minute rate limit that I could apply in general at my edge proxy for all clients? (_no matter what_) ... LIke a good reasonable upper bound? 🤔
What's a reasonable per second or per minute rate limit that I could apply in general at my edge proxy for all clients? (_no matter what_) ... LIke a good reasonable upper bound? 🤔
Spent 2 days traveling. Now it's time to stay at home and relax
C'est drôle comme j'ai plein de choses d'un seul coup hyper intéressantes à faire, comme changer le thème du curseur de ma souris ou tester un nouveau thème GTK. Pile quand j'ai des tas de bulletins semestriels à compléter. Bizarre 👼
C'est drôle comme j'ai plein de choses d'un seul coup hyper intéressantes à faire, comme changer le thème du curseur de ma souris ou tester un nouveau thème GTK. Pile quand j'ai des tas de bulletins semestriels à compléter. Bizarre 👼
@movq Yeah I swear to god the engineers that write this shit™ don't know how to write distributed cralwers that don't happy the shit™ out of their targets 🤦‍♂️
@movq Yeah I swear to god the engineers that write this shit™ don't know how to write distributed cralwers that don't happy the shit™ out of their targets 🤦‍♂️
@prologic Yeah, robots.txt or ai.txt are not worth the effort. I have them, but they get ignored. Just now, I saw a stupid AI bot hitting one of my blog posts like crazy. Not just once, but hundreds of times, over and over. 🤦🙄
@prologic Yeah, robots.txt or ai.txt are not worth the effort. I have them, but they get ignored. Just now, I saw a stupid AI bot hitting one of my blog posts like crazy. Not just once, but hundreds of times, over and over. 🤦🙄
@prologic Yeah, robots.txt or ai.txt are not worth the effort. I have them, but they get ignored. Just now, I saw a stupid AI bot hitting one of my blog posts like crazy. Not just once, but hundreds of times, over and over. 🤦🙄
@prologic Yeah, robots.txt or ai.txt are not worth the effort. I have them, but they get ignored. Just now, I saw a stupid AI bot hitting one of my blog posts like crazy. Not just once, but hundreds of times, over and over. 🤦🙄
For some reason, I was using calc all this time. I mean, it’s good, but I need to do base conversions (dec, hex, bin) *very* often and you have to type base(2) or base(16) in calc to do that. That’s exhausting after a while.

So I now replaced calc with a little Python script which always prints the results in dec/hex/bin, grouped in bytes (if the result is an integer). That’s what I need. It’s basically just a loop around Python’s exec().

$ mcalc
> 123
123 0x[7b] 0b[01111011]

> 1234
1234 0x[04 d2] 0b[00000100 11010010]

> 0x7C00 + 0x3F + 512
32319 0x[7e 3f] 0b[01111110 00111111]

> a = 10; b = 0x2b; c = 0b1100101
10 0x[0a] 0b[00001010]

> a + b + 3 * c
356 0x[01 64] 0b[00000001 01100100]

> 232 - 1
4294967295 0x[ff ff ff ff] 0b[11111111 11111111 11111111 11111111]

> 4 * atan(1)
3.141592653589793

> cos(pi)
-1.0=
For some reason, I was using calc all this time. I mean, it’s good, but I need to do base conversions (dec, hex, bin) *very* often and you have to type base(2) or base(16) in calc to do that. That’s exhausting after a while.

So I now replaced calc with a little Python script which always prints the results in dec/hex/bin, grouped in bytes (if the result is an integer). That’s what I need. It’s basically just a loop around Python’s exec().

$ mcalc
> 123
123 0x[7b] 0b[01111011]

> 1234
1234 0x[04 d2] 0b[00000100 11010010]

> 0x7C00 + 0x3F + 512
32319 0x[7e 3f] 0b[01111110 00111111]

> a = 10; b = 0x2b; c = 0b1100101
10 0x[0a] 0b[00001010]

> a + b + 3 * c
356 0x[01 64] 0b[00000001 01100100]

> 232 - 1
4294967295 0x[ff ff ff ff] 0b[11111111 11111111 11111111 11111111]

> 4 * atan(1)
3.141592653589793

> cos(pi)
-1.0=
For some reason, I was using calc all this time. I mean, it’s good, but I need to do base conversions (dec, hex, bin) *very* often and you have to type base(2) or base(16) in calc to do that. That’s exhausting after a while.

So I now replaced calc with a little Python script which always prints the results in dec/hex/bin, grouped in bytes (if the result is an integer). That’s what I need. It’s basically just a loop around Python’s exec().

$ mcalc
> 123
123 0x[7b] 0b[01111011]

> 1234
1234 0x[04 d2] 0b[00000100 11010010]

> 0x7C00 + 0x3F + 512
32319 0x[7e 3f] 0b[01111110 00111111]

> a = 10; b = 0x2b; c = 0b1100101
10 0x[0a] 0b[00001010]

> a + b + 3 * c
356 0x[01 64] 0b[00000001 01100100]

> 232 - 1
4294967295 0x[ff ff ff ff] 0b[11111111 11111111 11111111 11111111]

> 4 * atan(1)
3.141592653589793

> cos(pi)
-1.0
=
For some reason, I was using calc all this time. I mean, it’s good, but I need to do base conversions (dec, hex, bin) *very* often and you have to type base(2) or base(16) in calc to do that. That’s exhausting after a while.

So I now replaced calc with a little Python script which always prints the results in dec/hex/bin, grouped in bytes (if the result is an integer). That’s what I need. It’s basically just a loop around Python’s exec().

$ mcalc
> 123
123 0x\n 0b\n

> 1234
1234 0x\n 0b\n

> 0x7C00 + 0x3F + 512
32319 0x\n 0b\n

> a = 10; b = 0x2b; c = 0b1100101
10 0x\n 0b\n

> a + b + 3 * c
356 0x\n 0b\n

> 232 - 1
4294967295 0x\n 0b\n

> 4 * atan(1)
3.141592653589793

> cos(pi)
-1.0=
@doesnm No. I generally don't put up any robots.txt files at all really, because they mostly get ignored. I don't generally mind if "normal" web crawlers crawl things. But LLM(s) can go fuck themselves 🤣
@doesnm No. I generally don't put up any robots.txt files at all really, because they mostly get ignored. I don't generally mind if "normal" web crawlers crawl things. But LLM(s) can go fuck themselves 🤣
Did you have disallow rule in robots.txt? (I think not because can google several twtxt.net posts)
@movq Yeah it's starting to piss me off too 🤣 Not nearly as much as that guy, but stil. Anyway I'm having fun! Now I just need to find a good IP/Subnet list that I can blacklist entirely, ideally one that's updated frequently so I can refresh firewall rules.
@movq Yeah it's starting to piss me off too 🤣 Not nearly as much as that guy, but stil. Anyway I'm having fun! Now I just need to find a good IP/Subnet list that I can blacklist entirely, ideally one that's updated frequently so I can refresh firewall rules.
@prologic You might (not) enjoy this blog post: https://pod.geraspora.de/posts/17342163
@prologic You might (not) enjoy this blog post: https://pod.geraspora.de/posts/17342163
@prologic You might (not) enjoy this blog post: https://pod.geraspora.de/posts/17342163
@prologic You might (not) enjoy this blog post: https://pod.geraspora.de/posts/17342163
Bloody fucking hell. I _think_ one of Google's GenAI crawlers was just hitting my Gitea instance quite hard. Fuck 🤬 Geez
Bloody fucking hell. I _think_ one of Google's GenAI crawlers was just hitting my Gitea instance quite hard. Fuck 🤬 Geez
On my blog: Free Culture Book Club — Trans Girl Project, part 2 https://john.colagioia.net/blog/2025/01/04/trans-girl-2.html #freeculture #bookclub
The fact that the official Python docs don’t *clearly* state what a function returns, grinds my gears. This has cost me so much time over the years. You always have to read through a huge block of text.



You could *at least* put a list of possible return values in there (always at the same location, please!), here’s a mockup:

The fact that the official Python docs don’t *clearly* state what a function returns, grinds my gears. This has cost me so much time over the years. You always have to read through a huge block of text.



You could *at least* put a list of possible return values in there (always at the same location, please!), here’s a mockup:

The fact that the official Python docs don’t *clearly* state what a function returns, grinds my gears. This has cost me so much time over the years. You always have to read through a huge block of text.



You could *at least* put a list of possible return values in there (always at the same location, please!), here’s a mockup:

The fact that the official Python docs don’t *clearly* state what a function returns, grinds my gears. This has cost me so much time over the years. You always have to read through a huge block of text.



You could *at least* put a list of possible return values in there (always at the same location, please!), here’s a mockup:

@movq Oh 🤦‍♂️
@movq Oh 🤦‍♂️
I just banned 41 bad user agents from accessing any of my services. 😱
I just banned 41 bad user agents from accessing any of my services. 😱
@prologic Ah, that’s not a photo, it’s a screenshot of Stellarium. I never managed to take actual photos of the sun in those two positions, I keep forgetting about it. 🥴
@prologic Ah, that’s not a photo, it’s a screenshot of Stellarium. I never managed to take actual photos of the sun in those two positions, I keep forgetting about it. 🥴
@prologic Ah, that’s not a photo, it’s a screenshot of Stellarium. I never managed to take actual photos of the sun in those two positions, I keep forgetting about it. 🥴
@prologic Ah, that’s not a photo, it’s a screenshot of Stellarium. I never managed to take actual photos of the sun in those two positions, I keep forgetting about it. 🥴
@movq How do you manage to get those skulines on your photos? 🤔
@movq How do you manage to get those skulines on your photos? 🤔
[47°09′46″S, 126°43′23″W] Wind speed: N/A -- Cannot comunicate
Moon and Venus were pretty close yesterday, but the photos didn’t turn out to be very good:

https://movq.de/v/b499494456/

(And Saturn was still faaaaar away.)
Moon and Venus were pretty close yesterday, but the photos didn’t turn out to be very good:

https://movq.de/v/b499494456/

(And Saturn was still faaaaar away.)
Moon and Venus were pretty close yesterday, but the photos didn’t turn out to be very good:

https://movq.de/v/b499494456/

(And Saturn was still faaaaar away.)
Moon and Venus were pretty close yesterday, but the photos didn’t turn out to be very good:

https://movq.de/v/b499494456/

(And Saturn was still faaaaar away.)
Noon in summer:



And noon in winter:



The difference never fails to make me go “whoa”. 😅
Noon in summer:



And noon in winter:



The difference never fails to make me go “whoa”. 😅
Noon in summer:



And noon in winter:



The difference never fails to make me go “whoa”. 😅
Noon in summer:



And noon in winter:



The difference never fails to make me go “whoa”. 😅
This evening, Saturn will show up right next to a crescent moon:



Let’s see if I can catch that in a photo.
This evening, Saturn will show up right next to a crescent moon:



Let’s see if I can catch that in a photo.
This evening, Saturn will show up right next to a crescent moon:



Let’s see if I can catch that in a photo.
This evening, Saturn will show up right next to a crescent moon:



Let’s see if I can catch that in a photo.
@eapl.me That's a nice quote. I like it.
@prologic Nah, it's really not necessary from my point of view. There's not enough math here that would justify it. In the spirit of simplicity, I'd leave it off. O:-)
@movq The rabbit hole deepens. :-D
@eapl.me

> Let’s work towards the future we want, not against the future we don’t want.

That would be nice.
@eapl.me

> Let’s work towards the future we want, not against the future we don’t want.

That would be nice.
@eapl.me

> Let’s work towards the future we want, not against the future we don’t want.

That would be nice.
@eapl.me

> Let’s work towards the future we want, not against the future we don’t want.

That would be nice.
@kat Static angles for too long get indeed a bit boring to watch in my opinion, but just experiment with it. What's the worst that could happen? Wasted disk space or people increase playback speed to time lapse or fast-forward. Hence, not a huge issue. Even if only you had fun recording it and learned something along the way, it's already a win. Everything else is a bonus on top.
@lyse Thanks. 😅

The good thing is, I wouldn’t have to write an Ethernet driver, because https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol is a thing, but TCP/IP? Not sure if I want to do that. 😂 I could, of course, come up with my own thing …
@lyse Thanks. 😅

The good thing is, I wouldn’t have to write an Ethernet driver, because https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol is a thing, but TCP/IP? Not sure if I want to do that. 😂 I could, of course, come up with my own thing …
@lyse Thanks. 😅

The good thing is, I wouldn’t have to write an Ethernet driver, because https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol is a thing, but TCP/IP? Not sure if I want to do that. 😂 I could, of course, come up with my own thing …
@lyse Thanks. 😅

The good thing is, I wouldn’t have to write an Ethernet driver, because https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol is a thing, but TCP/IP? Not sure if I want to do that. 😂 I could, of course, come up with my own thing …
@kat Yiha! I reckon the video is a bit squished together on the horizontal axis. Maybe your video site messed something up in postprocessing? No idea. Anyway, you're already better at guitar than I ever was.

If you don't wanna buy a tripod, you could make yourself a makeshift one with some sort of a sandbag, cherry pit pillow or an old, cut off and sewn shut trouser leg section filled with rice, lentils, etc. This gives you a shapeable surface where you can simply rest the camcorder on. It allows for some limited vertical up and down pitch. Obviously, that won't work for extreme angles, but might be just enough for your application of recording at your desk. You just have to watch out for the side to side roll, this could otherwise lead to a slanted sailboat video. ;-)
@doesnm No, it's only designed for yarnd. What did you have in mind here? 🤔
@doesnm No, it's only designed for yarnd. What did you have in mind here? 🤔
Yes, ik. But i can't use this api without yarn.social (feed is just file)
@doesnm It is the same API that yarnc the command-line client uses.
@doesnm It is the same API that yarnc the command-line client uses.
[47°09′02″S, 126°43′38″W] Weather forecast alert -- storm from SE
Want this API for Goryon or just Goryon with support to just twtxt.txt. I can't read timeline without visible replies and missing twts
dagum those are huge images.
[47°09′38″S, 126°43′21″W] --interrupted--
@prologic currently playing with:


NAME                 ID              SIZE      MODIFIED           
qwen2.5-coder:32b    4bd6cbf2d094    19 GB     About a minute ago 
qwq:latest           46407beda5c0    19 GB     10 minutes ago     
codestral:latest     0898a8b286d5    12 GB     14 minutes ago     
codellama:34b        685be00e1532    19 GB     17 minutes ago     
gemma2:27b           53261bc9c192    15 GB     29 minutes ago     
phi3:14b             cf611a26b048    7.9 GB    23 hours ago       


Which run really well on a regular (non-pro) M4.
i.e: Not much point in running a WAF on a static site. But OTOH if there's enough abuse from shitty assholes, there might be 🤔🤔
i.e: Not much point in running a WAF on a static site. But OTOH if there's enough abuse from shitty assholes, there might be 🤔🤔
I'm just basically learning now how ModSecurity rules work and how to write my own.

The builtin OWASP rules are already working nicely 👌 -- And yeah I won't include the WAF on every site block, probably just my main/primary domain where I tend to run demo services and other things.
I'm just basically learning now how ModSecurity rules work and how to write my own.

The builtin OWASP rules are already working nicely 👌 -- And yeah I won't include the WAF on every site block, probably just my main/primary domain where I tend to run demo services and other things.
@kat If you've been following my yarns the other day about me getting off of Clownflare and building my own WAF, Proxy and effectively my own Edge network, you'll know I'm doing this at the very edge 🤣🤣
@kat If you've been following my yarns the other day about me getting off of Clownflare and building my own WAF, Proxy and effectively my own Edge network, you'll know I'm doing this at the very edge 🤣🤣
@prologic oooh gonna have to look into this, doubt most of my sites need it but i'm thinking one or two could use it
@prologic oooh gonna have to look into this, doubt most of my sites need it but i'm thinking one or two could use it
Having a lot of fun with Coraza today. A Web Application Firewall library written in Go that also happens to have a Caddy module.
Having a lot of fun with Coraza today. A Web Application Firewall library written in Go that also happens to have a Caddy module.
@bender Hey ! 👋
@bender Hey ! 👋