# 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 195122
# self = https://watcher.sour.is?offset=195122
# prev = https://watcher.sour.is?offset=195022
Confesso que tenho uma certa inveja dos amigos que não olham as mensagens no celular, são pessoas mais evoluídas que vivem uma vida com menos ansiedade, com mais momentos "desconectados". Queria conseguir ser um pouco mais assim.
@alexonit so, a PWA, right?
Wouldn’t a deleted post not show on the list, and if referred from elsewhere render a 404?
@prologic ready, set, goooooooo!
I _think_ I'm just about ready to go live with my new blog (_migrated from MicroPub_). I just finished migrating all of the content over, fixing up metadata, cleaning up, migrating media, optimizing media.

The new blog for prologic.blog soon to be powered by zs using the zs-blog-template is coming along very nicely 👌 It was _actually_ pretty easy to do the migration/conversation in the end. The results are not to shabby either.

Before:

- ~50MB repo
- ~267 files

After:

- ~20MB repo
- ~88 files
@movq Yeah I was gonna say 😅 The problem isn't that bad 🤣 But still we should fix this soon™ 🔜
@prologic I checked a while a ago and there were, like, 3-5 collisions or something like that. Not that many. 🤷 I have to specifically look for them – I don’t notice it in normal operation.
[This happened already and was recorded. Description from the YT recording]

«This year at PyCon UK, you’re warmly invited to a world premiere: Ada, a brand-new play inspired by Ada Lovelace, written by Emily Holyoake, and staged as a rehearsed reading by Nottingham-based theatre company Chronic Insanity

'You may turn the handle, and I will whirr and calculate without error!'

Decades before the first computers are built, Ada imagines machines that can do anything, even compose beautiful pieces of music. Far beyond Ada’s future, a learning machine called Ginny breaks free of her routine and tests the boundaries of what ought to be possible.

Ada is an intricate re-telling of the life and legacy of Ada Lovelace, pioneer of computing, paralleling her history with a contemporary story about the potential of artificial intelligence.

Cast and Crew:

Ada: Ruth Page
Babbage: Jamie Richard-Stewart
Lady Byron/Anna: Lynne Payne
Ginny: Natalie Patuzzo
Jasper: Ben Gilbert»

https://www.youtube.com/watch?v=CtrsssksCNU

#AdaLovelace #PyConUK #Theater
«This year at PyCon UK, you’re warmly invited to a world premiere: Ada, a brand-new play inspired by Ada Lovelace, written by Emily Holyoake, and staged as a rehearsed reading by Nottingham-based theatre company Chronic Insanity

'You may turn the handle, and I will whirr and calculate without error!'

Decades before the first computers are built, Ada imagines machines that can do anything, even compose beautiful pieces of music. Far beyond Ada’s future, a learning machine called Ginny breaks free of her routine and tests the boundaries of what ought to be possible.

Ada is an intricate re-telling of the life and legacy of Ada Lovelace, pioneer of computing, paralleling her history with a contemporary story about the potential of artificial intelligence.

Cast and Crew:

Ada: Ruth Page
Babbage: Jamie Richard-Stewart
Lady Byron/Anna: Lynne Payne
Ginny: Natalie Patuzzo
Jasper: Ben Gilbert»

https://www.youtube.com/watch?v=CtrsssksCNU

#AdaLovelace #PyConUK #Theater
@movq You were seeing that mayn hash collisions for you to notice this? 😱
The twtiverse appears to have shrunk. Among the 61 feeds that I follow, I don’t see any hash collisions anymore. 🤔
Atenção atenção!

Vocês sabem que é possível ler de graça a versão em português do Python Fluente do Luciano Ramalho, não é mesmo?
(https://pythonfluente.com)

Agora, se você sonhava com uma edição em papel, ajude o @lr a fazer ela acontecer contribuindo no:

https://www.catarse.me/pythonfluente

#Python #PythonFluente #Livro
@bender I've made several improvements today, tightened up the line height and density of the text plus a few other nice things too! I _think_ I'm ready to start migrating my blog over to this 😅
@prologic Ta! :-)
I'm for the first time over 1900 on #lichess puzzles...
@bender I agree ! I reckon the line height could be a bit smaller 👌
@prologic it is looking good! On mobile, I find that the line height is too large for my liking, and that text takes too much space. I would like it a bit more dense. But that’s just my taste.

I haven’t checked in desktop; I try not to touch desktop on weekends. 😂
🧮 USERS:1 FEEDS:2 TWTS:1477 ARCHIVED:90160 CACHE:2714 FOLLOWERS:22 FOLLOWING:14
#Python is for artists too!

I made some #Python #numpy, #shapely, #trimesh & #py5 stickers!

PS: I asked the PSF to check if the logos were alright: "you can change the colors and add elements inside, but not change the shape or position of the snakes". So I had to change my original Python Reading Club logo... A sheet of stickers: "Python is for artists too" and a few others.
#Python is for artists too!

I made some #Python #numpy, #shapely, #trimesh & #py5bot stickers!

PS: I asked the PSF to check if the logos were alright: "you can change the colors and add thing inside, but not change the shape or position of the snakes". So I had to change my original Python reading club logo... A sheet of stickers: "Python is for artists too" and a few others.
Pretty happy with my zs-blog-template starter kit for creating and maintaining your own blog using zs 👌 Demo of what the starter kit looks like here -- Basic features include:

- Clean layout & typography
- Chroma code highlighting (aligned to your site palette)
- Accessible copy-code button
- “On this page” collapsible TOC
- RSS, sitemap, robots
- Archives, tags, tag cloud
- Draft support (hidden from lists/feeds)
- Open Graph (OG) & Twitter card meta (default image + per-post overrides)
- Ready-to-use 404 page

As well as custom routes (_redirects, rewrites, etc_) to support canonical URLs or redirecting old URLs as well as new zs external command capability itself that now lets you do things like:


$ zs newpost


to help kick-start the creation of a new post with all the right "stuff"™ ready to go and then pop open your $EEDITOR 🤞

#awesome #zs
@movq It's an ancient 1.22.4. :-)
@lyse Thanks!

The way I have it setup right now would take me more work to integrate with your script though.

I'm keeping things dumb on purpose, I just have to finish my client to have all the cool buttons that do it for me.
Day 19 was a really nice puzzle. 😊
@prologic I too, self-host various services on a VPS (and considering buying a mini PC to keep at home instead).

I use most of it as a hosting platform for personal use only and as a remote development environment (I do share a couple of tools with a friend though).

But given the costant risks of DDoS, hacking, bots, etc. I keep any of my public facing resources purely static and on separate hosting providers (without lock-ins of course).

Lately, I began using homebrew PWAs with CouchDB as a sync database, this way I get a fantastic local-first experience and also have total control of my data, that also sync in a locally hosted backup instance in real-time.

Also, I was already aware of Salty.im, but what I'm thinking is a more feature complete solution that even my family can use quickly, Delta.chat with the new chatmail provider (self-hostable) might be the solution for my needs.

But I'm still thinking if it's worth the trouble. I might just drop everything and only use safe channels to speak with them (free 24/7 family tech-support is easy to manage 😆).

Also, I'll be waiting for the day you'll share with us your story, I'm pretty curious about it!
@prologic I think nobody will stop you if you replace the current hashing with SHA-256 if you call it *improvement™* 😉*
Scavenger's reign is child play next to this.... https://mastodon.social/@adhd_coffee/115235689271906711
@lyse That looks like an older bug report. Which groff version is that (groff --version)?
@lyse Very cool! 😎
@movq I got an empty line through the table, similarly to one of the linked bug reports, just at a different location:

https://lyse.isobeef.org/tmp/screenshot-2025-09-27-13-56-13.png
@bender @movq Thank you! Not sure what I end up putting in there, but I'm sure I will find some tools to go in. :-)

Yes, this was a flat piece of sheet metal. It went together like a cardboard box, just much slower and with timbers clamped down to get a straight folding line. I don't have a sheet metal brake, so I just carefully hammered the piece bit by bit. Like in this video by the Sheet Metal Dude: https://www.youtube.com/watch?v=WYgEfWEMXk0
Phlog is a blog for gopher. Web Log - Blog, Gopher log - Phlog.
Speaking of groff: I’ve been following their mailing list for a while now and this G. Branden Robinson person invests an *insane* amount of energy into that project. 🤯
Okay, now that I knew what to look for, I found existing bug reports:

- https://lists.gnu.org/archive/html/groff/2023-04/msg00400.html
- https://savannah.gnu.org/bugs/?63960

Most importantly:

> This is resolved in the groff trunk.

🥳
@prologic No, this is a Linux manpage from the man-pages project: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/man/man7/ascii.7

I do have an idea what’s going on. Could be an unfortunate interaction between the table preprocessor `tbl` and the `man` macro package. 🤔
@movq Is this for your own OS? 🤔
Task for this weekend:

https://movq.de/v/b05a7ce782/vid-1758959332.mp4

When you call man ascii, you get this nice table, but there’s a weird vertical line at the bottom. That line is supposed to be a vertical rule and is supposed to go from the bottom of the table all the way to the top.

Let’s see if I can debug this. (Not getting my hopes up at this point, but I’ll try.)
Salve @elmoneto@elmoneto !

Acho que quero fazer algo parecido com isso aqui, mas a minha incompetência / inexperiência me derruba...

Tenho um geodataframe com praças e parques, e um com massa de vegetação significativa (que peguei no geosampa), queria saber calcular em uma coluna o quanto cada praça está coberta de vegetação significativa...

https://gis.stackexchange.com/questions/421888/getting-the-percentage-of-how-much-areas-intersects-with-another-using-geopandas

Eu soube fazer um overlay de instersecção, filtrar as com área menor que 100m2 e usar o .explore() pra colorir as massas por área, já fiquei feliz, mas queria mais rsrsrs.

#python #geopandas #geoPython #GIS
Salve @elmoneto@elmoneto !

Acho que quero fazer algo parecido com isso aqui, mas a minha incompetência / inexperiência me derruba...

Tenho um geodataframe com praças e parques, e um com massa de vegetação significativa (que peguei no geosampa), queria saber calcular o quanto de cada praça está coberto de vegetação significativa...

https://gis.stackexchange.com/questions/421888/getting-the-percentage-of-how-much-areas-intersects-with-another-using-geopandas

Eu soube fazer um overlay de instersecção, filtrar as com área menor que 100m2 e usar o .explore() pra colorir as massas por área, já fiquei feliz, mas queria mais rsrsrs.

#python #geopandas #geoPython #GIS
🧮 USERS:1 FEEDS:2 TWTS:1476 ARCHIVED:90118 CACHE:2724 FOLLOWERS:22 FOLLOWING:14
Demos uma atividade de macramê, jogo rápido, para fazer um chaveiro. Meu colega Danilo fez um diagrama massa do nó base. Se fizer sempre pro mesmo lado ele torce todo, se alternar os lados fica reto o resultado (ambas as opções são legais). Diagrama do nó de macramê
What does phlog mean?
@lyse Not bad. 🤔 So this started out as a flat sheet and then you cut and folded it, like paper (more or less)?
@lyse very nice! What's the intended usage?
For a very first attempt, I'm extremely happy how this tray turned out: https://lyse.isobeef.org/tmp/blechschachtel/ The photos look rougher than in person. The 0.5mm aluminium sheet was 300x200mm to begin with. Now, the accidental outside dimensions are 210x110mm. It took me about an hour to make. Tomorrow, I gotta build a simple folder, so I don't have to hammer it anymore, but can simply bend it a little at a time.
Quelqu'un a-t-il déjà compilé UnNethack sur #openbsd?
@movq You didn't miss anything. Just time for more useful stuff. ;-)
@bender Shh yes 🤣 this is the problem with politics 😆 by that definition; I'm not conservative 🤣
@prologic well, multiculturalism, immigration, and race (to mention a few, there is more) are key points on conservative's agendas. That's why I asked what you thought of it. You haven't replied yet. Of course, no answer is an answer, right?
@bender Yes but I guess what I'm saying is; "so what about it?" Aren't most places in the world these days "multicultural" to some degree or another? 🤔
@prologic growing up in a multicultural country has nothing to do with what you think about it, does it?
@bender Well see that's just what the freak'n tests say about me haha 🤣

> immigration and multiculturalism

What about it? I grew up in a multicultural country.
@lyse I give up. Just doesn’t give me a 360° video. 🥴 Maybe I’m just having bad luck with YouTube’s randomized stuff (maybe I’m getting “experiments”, who knows) …
@alexonit You might wanna have a look at this: https://lyse.isobeef.org/tmp/twthash.py
@prologic this is 90 degrees fork. Now that you mention being conservative socialist (first I heard of the term, had to read some to grasp what's all about), what do think about immigration and multiculturalism?
Exactly, @zvava, I agree. (Although, in my client at least, I wouldn't use hashes anywhere.)
@movq I'm glad it make sense for you 😅 I will never understand it. All I know is that I'm a conservative socialist and there's a lot of "stupid shit"™ happening in the world (_including my own country_). I still blame extreme Capitalism.
Okay @bender I _think_ I've made enough improvements now...

https://zsblog.mills.io/

🤞
Hey @itsericwoodward, I just wanna let you know that twtstrm/0.4.0 sends a broken User-Agent header. Instead of the URL, the nick is repeated.
@prologic Hm, I don’t know. Over here, we have parties that we would call “left” or “right”, one of them even calls themselves “The Left”. No idea about your political landscape, but it still makes sense for us. 🤔 For me, at least.
@bender 🤣
@zvava Hahaha, I love it! <3 This illustrates the contradiction very well.
@prologic how dare you! (read it with Greta emphasis, and accent)
repo-bisect RIP 🪦
I hope no-one here is a "nutter" 🤣
@movq See here's the thing... I just don't fucking gt this whole "left" vs. "right" shit™ anymore. None of it makes any sense whatsoever. When my wife tries to explain it to me it's completely the opposite to what you just said just now 😱 -- So from here on, I'm just going to keep things simple" nutters" and "normal" 🤣
@bender I feel you buddy 🤗 At one point we have quite a vibrant community. Phil was great, jlj too and Adi was well just Ado 😅
I meant, "jlj". He used to be at https://twt.nfld.uk/, long gone now too. I wonder...
@prologic Germany was listed as “opposing” on https://fightchatcontrol.eu/ for a while, now it’s back to “undecided”. According to netzpolitik.org, it’s still debated. Also according to that page, there could be an important vote on the EU level on October 13/14.

The green party and the (far) left are opposing this (at least in Germany). Sadly, Germany is leaning more right with every year … As for young people: The (far) left is the strongest party among young people, with the (far) right being the second strongest one. (https://www.tagesschau.de/wahl/archiv/2025-02-23-BT-DE/umfrage-alter.shtml) Is there cause for hope? I don’t know.
@prologic you doing this reminded me of mkws, and Adi. Good times, we have seeing so many people come and go. It is kind of sad, when I think about "jjl", and Phil, and the many others...

I am feeling "mushy" today. Ugh, ageing sucks.
@bender Yup! Fixing that now! 👌 Also the Tags page and the size of the trags is intentional, as more posts are tagged with the same tag, those will result in larger size rendered tags in a kind of "tag cloud" -- At this this is the intention.
@prologic yup, that's what I meant. The lack of it on the URL is fine, but on the post itself it is always a good idea. Time frames matter.
Test.

@bender Ahh yes I see what you mean. no indicate of when the post was made right? That should be ideally displayed on the page somewhere? Would you expect it in the url as well, because not having /posts/yyyy/mm/dd/.... was _actually_ intentional. But yeah I should figure out where to put some additional metadata on the page.
@bender hopeful of the same 🤞
@prologic I can't upload a screenshot (tried, but Yarnd simple "ate" my reply). See https://zsblog.mills.io/posts/hello-zs-blog.html. Is has no date/time on it.
I will try to improve the CSS 🙏
> the single posts have no date (intended?)

What do you mean by this? 🤔
@movq LOL. I wish and hope they keep proposing it until the proposers die of natural causes, and then it vanishes. Hopeful thinking, I know...
@movq Kill it with fire 🔥
@prologic need to work on the CSS. For example, the tags are too big, the code blocks (and the inline ones) are too small, the single posts have no date (intended?), and so on. It's an alpha start!
@prologic They have not rolled it out (yet), they are “just” discussing it (for the n-th time).
https://zsblog.mills.io/ for anyone interested. I _think_ I still have some small tweaking to do befor eI use this for realz.
@alexonit Yeah I think we're overstating the UNIX principles a bit here 🤣 I get what you're trying to say though @zvava 😅 If I could go back in time and do it all over again, I would have gotten the Hash length correct and I _would_ have used SHA-256 instead. But someone way smarter than me designed the Twt Hash spec, we adopted it and well here we are today, it works™ 😅
@alexonit Yes well I'm pretty big on self-hosting. I've even tried to start a small business/company around it (_but that's another story for another day!_) -- Meanwhile I would encourage you to have a look at the work we've done in Salty.im 👌
@alexonit Well we have to really use the same spec or threading doesn't really work in a truly decentralized manner 😉
I once worked with a guy
That wrote a cool script
But since, he left github
Deleted all his repos with it.

Now the cool script is gone
remaining this poem I wrote instead
Doesn't rhyme, isn't cool, sounds bad.
That's what I'm using right now, while my own client is still in the making.

A simple bash script to write a post in a mktemp file then clean it with regex.
I don't even bother to hash the replies, I just open https://twtxt.net and copy the hash by hand since I'm checking the new posts from there anyway (temporarily, as I might end up DoS-ing everyone's feed in my client right now).
@prologic Don't worry about it!

I also getting angry thinking how this Chat Control crap will escalate to.

I'm already thinking of countermeasures and self-hosted alternatives, while searching lists of affected apps and services to replace/drop in the worst scenario (and probably devices).
@zvava Amazing! I would love to see all the specs described this way. 🤩
@prologic Well, personally I would, as I already do for user feeds in my client.

That's why part of my proposal was to allow custom strings and be free from a specific format that need periodical upgrades, but it's not much of a problem in the end.

I'll adapt to what we can get out of this.
@zvava I axtually latest did and I wasn't the only one 🤣
@zvava That's what I'm leaning towards yeah🤞
A análise do PCP* está um bocadinho melhor articulada que a minha:

* https://www.pcp.pt/insistencia-do-governo-em-medidas-fiscais-agrava-injusticas-promove-precariedade-na-habitacao

"Até agora, a redução da taxa para 10% estava condicionada à celebração de contratos com a duração mínima de dez anos, com esta alteração, passa a ser aplicada a taxa de 10% mesmo a contratos de apenas um ano (com rendas até 2300 euros). Na verdade, o Governo incentiva a conversão de contratos de longa duração em contratos de curta duração, desprotegendo os inquilinos e contribuindo para uma nova espiral de aumento das rendas."

"quer o alargamento das deduções com as despesas de arrendamento por parte dos inquilinos em sede de IRS – medida que deixa de fora mais de 40% dos inquilinos, pois não pagam IRS – , quer em particular a descida do IVA na construção para imóveis até 648 mil euros inserem-se numa orientação que privilegia e favorece um tipo de construção cujos valores não respondem às necessidades de quem procura arrendar ou comprar habitação"

"O País precisa [...] da regulação do mercado de arrendamento que coloque limites ao valor das rendas e force a sua descida. Precisa da promoção da estabilidade dos contratos de arrendamento assumindo os dez anos como referência."
plus, if hashv2 was implemented in combination with text fragments the way you proposed that would solve both scripting and human readability woes!!

...though, the presence of the text fragments then makes reversing the replied-to twt (and therefore its hash) trivial, which could allow clients to tolerate the omission of the hash — and while it would be 'non-standard' this would be the best of both worlds; potential to *tolerate* (or pave a glacial path toward? :o) human writable twts whilst keeping a unique id for twts that is universal across all pods
plus, if hashv2 was implemented in combination with text fragments the way you proposed that would solve both scripting and human readability woes!!

...though, the presence of the text fragments then makes reversing the replied-to twt (and therefore its hash) trivial, which could allow clients to tolerate the omission of the hash — and while it would be 'non-standard' this would be the best of both worlds; potential to *tolerate* (or pave a glacial path toward? :o) human writable replies whilst keeping a unique id for twts that is universal across all pods
@prologic to clarify the i meant the ability to parse feeds using unix command line utilities, as a prinicpal of twtxtv1's design. im not sure how feasible it is to build a simple feed reader out of common scripting utilities when hashing is in play, and;

i concede, it does make a lot of sense to fix up the hashing spec rather than completely supplant it at this point, just thinking about what the rewrite would be like is dreadful in and of itself x.x
@prologic to clarify: i meant the ability to parse feeds using unix command line utilities, as a principal of twtxtv1's design. im not sure how feasible it is to build a simple feed reader out of common scripting utilities when hashing is in play, and;

i concede, it does make a lot of sense to fix up the hashing spec rather than completely supplant it at this point, just thinking about what the rewrite would be like is dreadful in and of itself x.x
@zvava Haha 🤣