# 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 235500
# self = https://watcher.sour.is?offset=235500
# prev = https://watcher.sour.is?offset=235400
Someone has started to run git pull on one of my repos – once every two minutes. This is a very pointless endeavour. I push new code a couple of times *per month*.

So far, this isn’t causing any issues. I *think* this is just a regular human being who misconfigured some automation. And I *hope* this doesn’t mean that the “AI” bots have finally discovered my page …
I will be adding the code in for yarnd very soon™ for this change, with a if the date is >= 2025-07-01 then compute_new_hashes else compute_old_hashes
We have 4 clients but this should be 6 I _believe_ with tt2 from @lyse and Twtxtory from @javivf?
@bender Same more or less 😅
Finally I propose that we increase the Twt Hash length from 7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (_oops_) 😅 And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That _ought_ to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! 😱 #Twtxt #Update~
And speaking of Twtxt (See: #xushlda, feeds should be treated as append-only. Your client(s) should be appending Twts to the bottom of the file. Edits should never modify the timestamp of the Twt being edited, nor should a Twt that was edited by deleted, unless you actually intended to delete it (_but that's more complicated as it's very hard to control or tell clients what to do in a truely decentralised ecosystem for the deletion case_). #Twtxt #Client #Recommendations
Just like we don't write emails by hand anymore (See: #a3adoka), we don’t manually write Twts or update our twtxt.txt feeds. Instead, we use modern Twtxt clients that conform to the specifications at Twtxt.dev for a seamless, automated experience. #Twtxt #Twt #UserExperience
Nobody writes emails by hand using RFC 5322 anymore, nor do we manually send them through telnet and SMTP commands. The days of crafting emails in raw format and dialing into servers are long gone. Modern email clients and services handle it all seamlessly in the background, making email easier than ever to send and receive—without needing to understand the protocols or formats behind it! #Email #SMTP #RFC #Automation
@bender Hehe good sleuthing 🤣 I swear it was an edit ✍️ Haha 😂 yarnd now "sees" both every single time, where-as before it would just obliterate the old Twt, but remain in archive. Now you get to see both 😅 Not sure if that's a good thing or not, but it certainly makes it much clearer how to write "code logic" for detecting edits and doing something more UX(y) about 'em 🤔
@bender It's pretty cool though 🤣
@sorenpeter Oh!
Wrote some serious Python for the first time in like 10 years 😱 I feel so dirty 🤣
@prologic it was not an edit but a double posting
@prologic it was not an edit but a double posting
@prologic it was not an edit but a double posting
On my blog: Developer Diary, Workers' Memorial Day https://john.colagioia.net/blog/2025/04/28/workers-memorial.html #programming #project #devjournal
A Aula do Visível - Obras da Coleção da Fundação Ilídio Pinho: https://noticias.up.pt/2025/02/07/edificio-abel-salazar-acolhe-exposicao-da-fundacao-ilidio-pinho/
How to think in the age of #AI: https://archive.is/YyIQX
@andros U2FsdGVkX1/p8YNjgA9LA0I+c2+BDKCm8qrUmBXkkjZz8G6gISTPSyRgrJAZqzh3waZ5OyEFM8N1BsHoDQ2qEA==
@javivf Go for it! You're free to use it.
It's been a community adventure to explore the whole DM/encryption thing. So the community can do with it whatever they want. 😎
https://pynews.com.br/@villares/114413536773436549
@lyse hey pascal bro! My first coding class was with an old Borland Turbo Pascal. I made my own little window manager for the assignments for class.

The teacher didn't appreciate it much since I had to print out the code to turn it in. My Yatzee game was a stack of pages. 🤪
@lyse Very nice! 👌 So lovely and green 😅 -- What's with the sign in 16? 🧐
Interesting edit observed by the new yarnd powering this pod twtxt.net 🧐
@movq I've tried and there's little interest so I've given up for now 😭
@bender Wut?! 😂
Maravilhosa live de aniversário da Live de Python do @dunossauro@dunossauro

https://www.youtube.com/live/IE8coapVoSk

Sensacional...

-> um comentário que conecta com o final da live, as contas do Mastodon todas geram feeds RSS, é só acrescentar .rss no final da url :)
🧮 USERS:1 FEEDS:2 TWTS:1324 ARCHIVED:86731 CACHE:2910 FOLLOWERS:22 FOLLOWING:14
so... maybe I should try a new fresh approach. I gave up avoiding adding a new data structure and created a drawing_dict to iterate and draw. At this point it contains a reference to a drawing function and the attributes to use... it should give me enough flexibility. I'm using shapes as keys,
I have to think about the case of the complex body...
so... maybe I should try a new fresh approach. I gave up avoiding adding a new data structure and created a drawing_dict to iterate and draw. At this point it contains a reference to a drawing function and the attributes to use... it should give me enough flexibility. I'm using shapes as keys,
I have to think about the case of the complex body... the body should be the key in that case. But then, removing stuff will be harder.

https://github.com/villares/sketch-a-day/blob/main/2025/sketch_2025_04_27/sketch_2025_04_27.py
Prayer helps even if you don't believe in God: https://archive.is/OYCTV
Hahaha! https://blog.bofh.it/debian/id_471
#PyPodcats Hidden Figures of #Python #podcast @pypodcats@pypodcats

Episode 8, with Mojdeh Rastgoo:

https://pypodcats.live/episodes/ep-8/

«We interviewed Mojdeh Rastgoo, the newest member of PyPodcats!

Since discovering Python and the open-source community, Mojdeh has been actively involved in the Python ecosystem. She gave her first tutorial in 2018 at EuroSciPy and has since contributed in many ways. She is a member of the PSF Code of Conduct Working Group, a co-organizer of PyLadies Paris, and now a host of PyPodcats!

In this episode, Mojdeh shares more about herself and her passion for the community. We also take a look back at 2024, discuss our plans for 2025, and introduce a few new changes, including our Open Collective account, where you can support us.

Be sure to listen to the episode to hear about our plans and get to know your new host Mojdeh!»
@movq I started with Delphi in school, the book (that we never ever used even once and I also never looked at) taught Pascal. The UI part felt easy at first but prevented me from understanding fundamental stuff like procedures or functions or even begin and end blocks for ifs or loops. For example I always thought that I needed to have a button somewhere, even if hidden. That gave me a handler procedure where I could put code and somehow call it. Two or three years later, a new mate from the parallel class finally told me that this wasn't necessary and how to do thing better.

You know all too well that back in the day there was not a whole lot of information out there. And the bits that did exist were well hidden. At least from me. Eventually discovering planet-quellcodes.de (I don't remember if that was the original forum or if that got split off from some other board) via my best schoolmate was like finding the Amber Room. Yeah, reading the ITG book would have been a very good idea for sure. :-)

In hindsight, a console program without the UI overhead might have been better. At least for the very start. Much less things to worry about or get lost.

Hence, I'd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice, it doesn't require a lot of surrounding boilerplate like, say Java or Go. It also does exceptionally well in the principle of least surprise.
So far in 2025, I’ve had the privilege of peer-reviewing for these great journals: * Philosophia - A Global Journal of Philosophy, * American Catholic Philosophical Quarterly. Grateful to contribute to the academic community! #Philosophy #PeerReview
@sorenpeter I see, ta. The big spring cleaning continues. ;-)
Hi @lyse, I canceled the domain, so neotxt or my feed there are not coming back.
Hi @lyse, I canceled the domain, so neotxt or my feed there are not coming back.
Hi @lyse, I canceled the domain, so neotxt or my feed there are not coming back.
Hi @lyse, I canceled the domain, so neotxt is not coming back.
Hi @lyse, I canceled the domain, so neotxt is not coming back.
Hi @lyse, I canceled the domain, so neotxt is not coming back.
I went on a small hike, just 12-13km this time. The weather was great, blue sky, sunny 18°C, but with the wind it felt colder. Leaves and other green stuff is exploding like crazy. It looks super beautiful right now.

I came across an unfortunately dead salamander on the forest road, some fenced in deer, heaps of sheep, some unmagnetic cows (some were aligned very roughly north-south, but mainly with the axis of the best view I believe), a maybeetle and finally an awesome sunset. Not too shabby! The sheep were mehing all the time, that was really lovely to hear. And the crickets were already active, too. Didn't expect them to hear yet. I tried to record the concert, but the wind messed it all up. Oh well.

Sheep

https://lyse.isobeef.org/waldspaziergang-2025-04-27/
The Manifesto for Teaching and Learning in a Time of Generative #AI: https://openpraxis.org/articles/777/files/6749b446d17e9.pdf
I should probably clarify: Which language/platform? Something graphical or web-based right from the beginning or do you start with a console program?
@bender Must be the US tariffs, it's working reasonably quick in Europe. :-D
@movq Your next experiment should be triangles. :-)
I want to simplify #pymunk + #py5 use for my students but I struggle with finding good strategies… Pymunk has two types of (linked) objects for each simulated object: body and shape. For complex objects (like concave shapes) you can use more than one convex shape linked to the same body. In these cases I usually want to have an extra shape to draw and hide the triangulation.
I don't want to keep extra data structures to track the simulation objects to draw. I tried both extending and monkey patching either body or shape objects to be "drawable" so I can just iterate the native pymunk structures and ask stuff to draw themselves (would be nice, huh?), but there is always some snag. If I extend shape classes, I stumble on the complex objects with many shapes drawn with divisions. If I extend the Body class, the problem is static objects have shapes but share a virtual constant body, more of a flag, so I can't add anything to it, so back to keeping track of a separate list of static shapes… Then performance & serialization issues, I want to be able to easily pickle simulations, but if I add Py5Shape objects to the extended/modified classes they become unpickable...
I have bigger fishes to fry right now (the paralyzing PhD) but this is something I would like to pair with someone more experienced to work on.
To the parents or teachers: How do you teach kids to program these days? 🤔
https://helderman.github.io/htpataic/htpataic01.html How to program a text adventure in #C
If you just do a square, the score is still surprisingly high … https://movq.de/v/68eb406e17/s.png 😅
Os planos para o #TGV mudaram, assim sem se falar muito do assunto - uma mudança que inclui a deslocação da estação de TGV, para... uma área de Reserva Ecológica Nacional.

É só mais um caso em que o #governo, em plena #CriseClimática, continua a optar por não ter uma política ecológica.

O @LIVRE@LIVRE escreveu sobre esta alteração, aqui: https://partidolivre.pt/comunicado/sobre-a-alteracao-do-tracado-do-tgv-e-a-construcao-de-novas-pontes-em-gaia-e-porto

#ptpol
Why Pale Blue Dot generates feelings of cosmic insignificance: https://aeon.co/essays/why-pale-blue-dot-generates-feelings-of-cosmic-insignificance
@bender Oh 🤣🤣🤣
Should ink to this
Hmm not sure how that link is 404'kng for you 🧐 It doesn't here 🤦‍♂️
@bender What you talk'n about 🤣 It's not broken, it's perfectly functional 🤣
@lyse Seems legit 😅
I have a great idea for fixing the US economy. Get rid of all the nuclear weapons 🤣
Fiz alguns toots ao longo dos dias, a comentar o que diz cada programa eleitoral no que diz respeito ao #digital. Cingi-me aos programas que já foram publicados, e acho que não vou fazer a mais nenhum. Aqui fica um link para cada um desses toots:

#ADN: https://ciberlandia.pt/@marado/114387801741556979
#ND: https://ciberlandia.pt/@marado/114348377182888840
#IL: https://ciberlandia.pt/@marado/114347354072140841
#AD: https://ciberlandia.pt/@marado/114392455216165982
#PAN: https://ciberlandia.pt/@marado/114324690217343729
#Volt: https://ciberlandia.pt/@marado/114358606266556238
#PS: https://ciberlandia.pt/@marado/114287187178316531
@LIVRE@LIVRE: https://ciberlandia.pt/@marado/114359377128866906
@BlocodeEsquerda@BlocodeEsquerda: https://ciberlandia.pt/@marado/114309601123227991
#CDU: https://ciberlandia.pt/@marado/114325507241653084

#ptpol #legislativas #legislativas2025
@prologic In few weeks for sure, I have a couple of features in mind that I would like to implement (DM extension for example but I'll ask for permission to @arne to use his PoC or ask him to contribute to twtxtory directly)
@javivf Wanna list it on twtxt.dev? 🧐
@prologic Yup! :)
@javivf Ahh! So this is your client implementation? 🧐
@twtxtory is the demo instance for Twtxtory just in case someone would like to have a look (password is in the README file of the project) sorry for the confusion! O:)

@prologic I started to write it in order to understand better how twtxt works and I thought it could be useful for non-geek people but they like to host their own data
I just fixed a bug in tt's reply to parent feature. Previously, when the message tree looked like the following


Message
├╴Reply 1
│ └╴Subreply
└╴Reply 2


and "Reply 2" was selected, pressing A to reply to the parent should have picked "Message". However, a reply to "Reply 2" was composed instead. The reason was a precausiously introduced safety guard to abort the parent search which stopped at "Subreply", because its subject didn't match "Reply 2"'s. It was originally intended to abort on a completely different message conversation root. Just in case. Turns out that this thoght was flawed.

Fixing bugs by only removing code is always cool. :-)
An end to all this prostate trouble?
https://yarchive.net/blog/prostate/
@movq Bwahahaahaaa, this is fucking brilliant, I love it! :-D What a wonderful thing to start my Sunday.
@prologic This was like 20 minutes, but yeah 🤣
Today I added support for Let's Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarn's cache to support # type = bot and optionally # retention = N so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd to be IMO "better", with queue depth, queue time and last processing time for feeds.
Also you have too much time on your hands 🙌 Haha 😂
@movq Only 99.9% pfffft 🤣
Can you automate the drawing with a script? On X11, you can:


#!/bin/sh

# Position the pointer at the center of the dot, then run this script.

sleep 1

start=$(xdotool getmouselocation --shell)
eval $start

r=400
steps=100
down=0

for step in $(seq $((steps + 1)) )
do
    # pi = 4 * atan(1)
    new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
    new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)

    xte "mousemove ${new_x%%.*} ${new_y%%.*}"
    if ! (( down ))
    then
        xte 'mousedown 1'
        down=1
    fi
done

xte 'mouseup 1'
xte "mousemove $X $Y"




Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse *jumps* to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate – but the result looks funny:



🥴
⭐️⭐️⭐️⭐️ Revolução (sem) sangue 🎬: https://www.max.com/pt/pt/movies/revolucao-sem-sangue/dba8c8c5-5512-4e01-bdae-0e758d5516f0
Aqui diz que dá pra acessar vários jornais e revistas pelo serviço BibliON, mas eu acho que é tudo mentira, não achei nenhum jornal ou revista :(
Was just looking at the client you're using Twtxtory 🤔 Very nice! 👍 is this your client, did you write it? I'd not come across it before!
@twtxtory Hello 👋 Welcome to Yarn.social / Twtxt 😅
🧮 USERS:1 FEEDS:2 TWTS:1323 ARCHIVED:86698 CACHE:2903 FOLLOWERS:22 FOLLOWING:14
Watching o3 guess a photo's location is surreal, dystopian and entertaining
https://simonwillison.net/2025/Apr/26/o3-photo-locations/
Just checking...
@twtxtory this is a mention :)
Reply!
This is just a test...
When #AIs do science, it will be strange and incomprehensible: https://aeon.co/essays/when-ais-do-science-it-will-be-strange-and-incomprehensible
ICE Deports 3 U.S. Citizen Children Held Incommunicado Prior to the Deportation
https://www.aclu.org/press-releases/ice-deports-3-u-s-citizen-children-held-incommunicado-prior-to-the-deportation
#AI as Normal Technology: https://knightcolumbia.org/content/ai-as-normal-technology
@javivf pretty much 👌
I would guess useragent tool does the trick, isn't it?
@quark I do have an idea for syncing this 🤞
If you enjoy anything #chess related, @lichess@lichess is a fantastic, and #FLOSS, platform.

As I recover from yesterday's viral episode (ugh!) I'm getting some distraction playing the wonderful (and often hard for me) #lichess puzzles: https://lichess.org/training
@aelaraji 😂
Wikipedia's nonprofit status threatened by DC U.S. Attorney Ed Martin
https://www.washingtonpost.com/technology/2025/04/25/wikipedia-nonprofit-ed-martin-letter/
On my blog: Free Culture Book Club — Pilogy, part 1 https://john.colagioia.net/blog/2025/04/26/pilogy-1.html #freeculture #bookclub

$ bat https://twtxt.net/twt/edgwjcq | jq '.subject'
"(#yarnd)"


hahahahaha 🤣 Does your client allow you to do this or what? 🤔
Bahahahaha 🤣
@bmallred Hehe, @bender is gonna be upset with you for "making up a thread/subject" 🤣
@bmallred No! Never 😆
"New industry standards require that digital albums be priced at $7.99 or more to be eligible to chart."

#LetsMakeChartsFakeAgain
Interesting factoid... By inspecting my "followers" list every now and again, I can tell who uses a client like jenny, tt or any other client where fetches are driven by user interactions of invoking the app. What do we call this type of client? Hmmm 🤔 Then I can tell who uses yarnd because they are "seen" more frequently 🤣
First draft of yarnd 0.16 release notes. 📝 -- Probably needs some tweaking and fixing, but it's sounding alright so far 👌 #yarnd