# 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 238010
# self = https://watcher.sour.is?offset=227736
# next = https://watcher.sour.is?offset=227836
# prev = https://watcher.sour.is?offset=227636
@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.
Acabo de descubrir este software y está genial https://kristall.random-projects.net/
@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.
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 ! 👋
@prologic good evening, future man! 😂😂😂
@eapl.me And here I always lived by:

> Problems are solved by method.
-- Dr. Don Abel.
@eapl.me And here I always lived by:

> Problems are solved by method.
-- Dr. Don Abel.
🥱 morning y'all 👋 Soo tired 🥱 Need coffee!!! ☕️☕️☕️☕️
🥱 morning y'all 👋 Soo tired 🥱 Need coffee!!! ☕️☕️☕️☕️
@lyse It does not 🤣 Shsll I enable it? 🤣
@lyse It does not 🤣 Shsll I enable it? 🤣
🧮 USERS:1 FEEDS:2 TWTS:1204 ARCHIVED:83223 CACHE:2725 FOLLOWERS:17 FOLLOWING:14
having a cry to birdhouse in your soul
> If you want a problem solved, you give it to someone as a project. If you don’t want a problem to be solved, you give it to someone as a job

Why you shouldn't build your career around existential risk
https://guzey.com/existential-risk/
@ here it is :) https://memoria.sayitditto.net/view?m=UyMOOoiOy
@ here it is :) https://memoria.sayitditto.net/view?m=UyMOOoiOy
On my blog: Toots 🦣 from 12/30 to 01/03 https://john.colagioia.net/blog/2025/01/03/week.html #linkdump #socialmedia #quotes #week
i recorded my first camcorder video!!!! it's just me practicing guitar after sooo long of not playing it. my acoustic, to be specific (well, it's an electric acoustic thing but i can play it without plugging it in lol, i do have a stratocaster though). it's capped at ~30 minutes because i used one mini DVD for it and decided i wasn't gonna use another one to extend the run time. so yeah. it was super fun! i hope i can share it soon, i'm ripping the disc with make MKV right now, then i'll re-encode to a web friendly format, and upload to my site and hope that works well~
i recorded my first camcorder video!!!! it's just me practicing guitar after sooo long of not playing it. my acoustic, to be specific (well, it's an electric acoustic thing but i can play it without plugging it in lol, i do have a stratocaster though). it's capped at ~30 minutes because i used one mini DVD for it and decided i wasn't gonna use another one to extend the run time. so yeah. it was super fun! i hope i can share it soon, i'm ripping the disc with make MKV right now, then i'll re-encode to a web friendly format, and upload to my site and hope that works well~
@lyse it'd be a blast to record too with my camcorder! i'd have to figure out positioning and stuff like you said but i could probably figure something out with a bit of testing :P yeah it probably does make the project itself longer than it should be but i feel like if you make it a cozy kinda "sew with me" video where people watch you sew and film it with a static angle instead of like, showing every step? i think that'd be nice even if a bit boring. so i could absolutely try that.

magnetic tape camcorders omg!!! mine is digital but i'd LOVE to get a tape camcorder
@lyse it'd be a blast to record too with my camcorder! i'd have to figure out positioning and stuff like you said but i could probably figure something out with a bit of testing :P yeah it probably does make the project itself longer than it should be but i feel like if you make it a cozy kinda "sew with me" video where people watch you sew and film it with a static angle instead of like, showing every step? i think that'd be nice even if a bit boring. so i could absolutely try that.

magnetic tape camcorders omg!!! mine is digital but i'd LOVE to get a tape camcorder
My #fridayreads is CBA vol 58, the "C'est Bon Anthology" entitled "Modern Glossolalia or the Erosion of Meaning".

How do we talk when words that used to mean certain things have become so vague that they can be freely appropriated by anyone, for any purpose? And what's up with the currently so prevalent flirting with war, fascism and the dehumanization of anyone who doesn't fit into the unspoken and conveniently unspecified national identity?

Released in 2022, it feels even more up-to-date today.

##bookstodon A picture of CBA vol 58
My #fridayreads is CBA vol 58, the "C'est Bon Anthology" entitled "Modern Glossolalia or the Erosion of Meaning".

How do we talk when words that used to mean certain things have become so vague that they can be freely appropriated by anyone, for any purpose? And what's up with the currently so prevalent flirting with war, fascism and the dehumanization of anyone who doesn't fit into the unspoken and conveniently unspecified national identity?

Released in 2022, it feels even more up-to-date today.

##bookstodon A picture of CBA vol 58