# 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 196082
# self = https://watcher.sour.is?offset=195085
# next = https://watcher.sour.is?offset=195185
# prev = https://watcher.sour.is?offset=194985
Haha, turns out, it's the perfect size to fit hankies: https://lyse.isobeef.org/tmp/blechschachtel/07.jpg
Thank you, @alexonit! It's not sealed at all. If you were pouring in a liquid, it would run out on all four corners. It's just folded over and carefully hammered shut as best as possible. 03 is a bit blurred, but you can see the tab from the right (the short side) tucking in on the left (the long side). The hem on top clamps it in place fairly decently.

I decided against blind rivets, because they leave ugly looking and sharp backsides, which can also interfer with the contents of the box. However, they would be an easy solution to make the corners more rigid and prevent any movement from the short sides.

Unfortunately, I can't weld or solder, so that's not an option. It would be the by far best solution. I wanna learn it one day, though.

Yes, Ken is a really great dude. He's the reason I gave this a shot in the first place. :-)
@itsericwoodward No worries, all good, mate! We all have to start somewhere. Other software requests my feed several orders of magnitude more often.

I can confirm, the User-Agent header appears to be fixed. \o/

Two other things I noticed, though:

1. There's now an OPTIONS request for my feed coming from something that claims to be Firefox, pointing to your feed URL in the query. No clue what this is about. In any case, it's rejected with a 405 Method Not Allowed.

2. Not that these few requests bother me at all, but you might wanna implement caching next with either the If-Modified-Since or If-None-Match request headers. This way, if the feed hasn't changed, the web server can reply with a 304 Not Modified and no body at all, saving unnecessary traffic. But again, this is really not an issue for me at all. I just wanted to make sure you're aware of it, that's all. It might be even already on your agenda. Or you might decide to never do anything about it, which is also fine for me. :-)
As pessoas ciclistas, em princípio, combatem a ideologia da carrocracia (a colonização mental pelo automóvel).
No entanto, muitos nutrem uma tóxica noção de superioridade em relação aos pedestres: furam a sinalização, cruzam de qualquer jeito a faixa de pedestre, assustam a gente e tiram finas. É detestável isso.
Não seja ciclista com a mente carrocrata.
[47°09′25″S, 126°43′44″W] Automatic systems disengaged due to blizzard
****
Bueno bueno, como no se atreve a quitarme el día de teletrabajo que pacté con él, me pone las reuniones ese día.

Bien jugado Boss!

#felizLunesRead more****
****
Si alguien quiere prepararse unas oposiciones, y no puede permitirse academias privadas, está esta maravillosa iniciativa:

Funcionarios públicos dando formación gratis para que haya más opositores de clase obrera:

https://www.eldiario.es/sociedad/academia-prepara-opositores-forma-gratuita-hay-evitar-haya-funcionarios-clase-social\_1\_12622767.htmlRead more****
[47°09′20″S, 126°43′35″W] Automatic systems disengaged due to thunderstorm
[47°09′45″S, 126°43′27″W] Automatic systems disengaged due to heavy rain
@itsericwoodward Cool! 😎
It still needs some cleaning (and some slight UX improvements), but overall, I'm happy with it.

BTW - I promise, I intended it to be pronounced like "TweetStream" (or as written, "TwtStrm"), rather than "TweetStorm". Sorry again. 😊
I _finally_ solved the loading issue in my WIP reader, TwtStrm (and apologies again to anyone that got spammed while I was diagnosing the issue).

After another round of coding this weekend, I'm happy to report that it now renders _all_ the twts (with markdown parsing), complete with localstorage and server-based file caching.
@prologic That zs looks pretty cool! I love simple static site generators, and look forward to trying it on my next web site project. Kudos!
I prefer "glog" over "phlog." Phlog sounds like a character from Spy Kids
@bender Yes! What you're seeing in the demo is just demoing the routes file and redirects, etc/. Pathing more.
@lyse Thanks, I think I fixed it now. Sorry for the spam.
🧮 USERS:1 FEEDS:2 TWTS:1478 ARCHIVED:90172 CACHE:2715 FOLLOWERS:22 FOLLOWING:14
@bender Yes and no.

To build a compliant PWA you need to provide a webmanifest json and a service worker.

Those requirements are not directly part of this project.

You can build the client as a standalone PWA or even as a widget inside an existing page.

The general steps are closer to how you would include a third-party library in an existing project, by importing it as a dependency and using it in your website.

I'm pretty sure most users would expect a PWA (me included) so I plan to provide a ready-made template ready to be deployed as is.
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.
****
Después de días incubando, el resfriado/gripe se ha manifestado con toda su fuerza.

Me alegro que me haya dado tiempo para disfrutar de la manifestación en Zgz. ⌘ Read more****
[47°09′44″S, 126°43′36″W] Weather forecast alert -- storm from W
@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!
[47°09′25″S, 126°43′03″W] --white noise--
Hi everyone, here's a little introduction of my twtxt client (still WIP).

The client I'm developing is a single tenant project that runs entirely in the browser (it might use an optional backend).

It's entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to "DIY" their own interface with pure html or plain javascript functions.

Users can also build their own *engines* by including a global javascript object that implement the defined internal API (TBD).

I'm planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (I'll be also providing some pre-made templates too).

Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).

It will be probably named something like TxtCraft or craf.txt but I'm not really sure yet... 🤔 (Maybe some suggestions could help)

I'm still in the experimental phase, so there's no decent source-code to share yet, but it will soon enough!
@lyse Beautiful handwork, how did you seal the corners? I don't see and hole or anything.

BTW, That Sheet Metal Dude is something else himself, skilled enough to teach others, can work properly with self-imposed contraints, care about safety and is humble enough to be wiling to learn from others, a true craftman worthy of respect.
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.
@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. 🤔
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
[47°09′08″S, 126°43′30″W] --interrupted--
@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! :-)
[47°09′32″S, 126°43′29″W] Reading: 1.16000 PPM
https://online-go.com/learn-to-play-go #game
siempre aparece algo que hace que me enamore de IRC #soju #senpai #IRC
[47°09′18″S, 126°43′22″W] Reading: 1.29000 PPM
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
****
Lo que más me ha gustado de la manifestación de resistencia contra los #CentrosDeDatos en Aragón organizada por @nocentrosdedatosaragon han sido los cánticos.

En concreto: "Vergüenza me daría, usar tanto la IA". ⌘ Read more****
[47°09′40″S, 126°43′01″W] Raw reading: 0x68D83431, offset +/-5
@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. 😊
Day 19 was a really nice puzzle. 😊
[47°09′19″S, 126°43′19″W] Transfer 75% complete...
@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 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
[47°09′57″S, 126°43′52″W] Transfer 50% complete...
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. 🤯
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.

🥳
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. 🤔
@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.)
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.)
[47°09′34″S, 126°43′09″W] Non-significative results -- sampling finished
[47°09′43″S, 126°43′46″W] Taking samples
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ê
[47°09′50″S, 126°43′46″W] --bad checksum--
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 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.
[47°09′39″S, 126°43′55″W] Reading: 1.70000 PPM
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) …
@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) …