# 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 238018
# self = https://watcher.sour.is?offset=237509
# next = https://watcher.sour.is?offset=237609
# prev = https://watcher.sour.is?offset=237409
[47°09′27″S, 126°43′36″W] Dosimeter overflow
[47°09′11″S, 126°43′25″W] Dosimeter malfunction
[47°09′04″S, 126°43′44″W] Transfer aborted
🧮 USERS:1 FEEDS:2 TWTS:1374 ARCHIVED:87681 CACHE:2671 FOLLOWERS:22 FOLLOWING:14
La IA detrás de mí código
/https://duque-terron.cat/media/photos/camphoto_1297389768.jpeg) #catsoftwtxt
- Esta almohada me gusta. ¡Pa mi! -
/https://baldo.cat/media/photos/IMG_4714.jpeg) #catsoftwtxt
https://blog.garambrogne.net/kloset.html #kloset disséqué une histoire de #plakar un outil de sauvegarde qui utilise déduplication compression chiffrage et signature
Birds walking on the ground: it's the best.
[47°09′01″S, 126°43′47″W] Transfer 25% complete...
Me: I had a 7-day working sprint I should relax today before I teach a class in the evening...

My brain: Good, as you don't feel any obligation to work on your PhD today, you should just open the PhD working file and start working on it, no pressure. it will feel nice, I promise!
OpenBSD has the wonderful pledge() and unveil() syscalls:

https://www.youtube.com/watch?v=bXO6nelFt-E

Not only are they super useful (the program itself can drop privileges – like, it can initialize itself, read some files, whatever, and then tell the kernel that it will never do anything like that again; if it does, e.g. by being exploited through a bug, it gets killed by the kernel), but they are also extremely easy to use.

Imagine a server program with a connected socket in file descriptor 0. Before reading any data from the client, the program can do this:

unveil("/var/www/whatever", "r");
unveil(NULL, NULL);
pledge("stdio rpath", NULL);

Done. It’s now limited to reading files from that directory, communicating with the existing socket, stuff like that. But it cannot ever read any other files or exec() into something else.

I can’t wait for the day when we have something like this on Linux. There have been some attempts, but it’s not that easy. And it’s certainly not mainstream, yet.

I need to have a closer look at Linux’s Landlock soon (“soon”), but this is considerably more complicated than pledge()/unveil():

https://landlock.io/
Vocês traduzem "New York" para "Nova Iorque" nas citações bibliográficas (local de publicação)?
@prologic nice... had to look up "Lamarckian" :-)
@prologic nice... had to look up "Lamarckian" :-)
“Learn Something Old Every Day, Part XV: KEYB Is Half of Keyboard BIOS”

https://www.os2museum.com/wp/learn-something-old-every-day-part-xv-keyb-is-half-of-keyboard-bios/
@andros U2FsdGVkX18PSQ+Mk7cYagSzPXMXZ32goXv9FiHgnOeIRJG88R+5o5phWrec0w+DVfklNgKx1XIEIj7hqo9AaQ
[47°09′59″S, 126°43′45″W] Carrier too weak
Hm... Captura de ecrã a um navegador web a tentar visitar parlamento.pt e a falhar com ERR_EMPY_RESPONSE.
Hm... Captura de ecrã a um navegador web a tentar visitar parlamento.pt e a falhar com ERR_EMPY_RESPONSE.
I wish I had the time and energy to play with #pyodide more, I could try adding #shapely to #pyp5js ...

https://pyodide.org/en/stable/usage/packages-in-pyodide.html

#Python #CreativeCoding
[47°09′03″S, 126°43′33″W] Transponder still failing -- switching to analog communication
[47°09′37″S, 126°43′20″W] Transponder jammed
[47°09′56″S, 126°43′30″W] Resetting transponder
Spent an absurd amount of time searching for the "update fork" button on #gitlab's web interface.

Why? Because it turns out you can only see it if you are in landscape, in portrait view the button simply does not exist...

#ux #fail gitlab interface in landscape, an "update fork" button exists on the right side gitlab interface in portrait, no "update fork" button exists
Spent an absurd amount of time searching for the "update fork" button on #gitlab's web interface.

Why? Because it turns out you can only see it if you are in landscape, in portrait view the button simply does not exist...

#ux #fail gitlab interface in landscape, an "update fork" button exists on the right side gitlab interface in portrait, no "update fork" button exists
@birb@birb https://www.cm-lamego.pt/pages/321.rss
@birb@birb https://www.cm-lamego.pt/pages/321.rss
@birb@birb https://www.cm-lamego.pt/pages/322.rss
@birb@birb https://www.cm-lamego.pt/pages/322.rss
🧮 USERS:1 FEEDS:2 TWTS:1373 ARCHIVED:87677 CACHE:2676 FOLLOWERS:22 FOLLOWING:14
orb v0.1.0 - tiny metasearch | https://nilfm.cc/orb.html
[47°09′31″S, 126°43′03″W] Transponder still failing
As feiras medievais são "reconstruções históricas" do que nunca existiu - e ainda assim espalham-se pelo país como momentos de convívio e folia. Em Lamego tem a particular característica de ser promovida como contendo uma recriação histórica das #cortes de Lamego*, ainda que estas nunca tenham existido.

Mas para mim a feira #medieval de #Lamego é aquela altura do ano em que vou até à praça e bebo #hidromel. E quem diz que essa não é uma boa tradição a manter e celebrar? ;-)

* https://pt.m.wikipedia.org/wiki/Cortes_de_Lamego Um maralhal de gente na praça do comércio em Lamego, a ver um qualquer dos espectáculos a decorrer na Feira Medieval de Lamego 2025.
As feiras medievais são "reconstruções históricas" do que nunca existiu - e ainda assim espalham-se pelo país como momentos de convívio e folia. Em Lamego tem a particular característica de ser promovida como contendo uma recriação histórica das #cortes de Lamego*, ainda que estas nunca tenham existido.

Mas para mim a feira #medieval de #Lamego é aquela altura do ano em que vou até à praça e bebo #hidromel. E quem diz que essa não é uma boa tradição a manter e celebrar? ;-)

* https://pt.m.wikipedia.org/wiki/Cortes_de_Lamego Um maralhal de gente na praça do comércio em Lamego, a ver um qualquer dos espectáculos a decorrer na Feira Medieval de Lamego 2025.
new icon! the girl is manon from KATSEYE because i'm mega obsessed with them
new icon! the girl is manon from KATSEYE because i'm mega obsessed with them
[47°09′39″S, 126°43′36″W] Transponder malfunction
@kat i linked the normal length edit instead of the full 15 minute music video because i'm not gonna subject you all to that amount of my bullshit

(...15 minute version is a great watch though)
@kat i linked the normal length edit instead of the full 15 minute music video because i'm not gonna subject you all to that amount of my bullshit

(...15 minute version is a great watch though)
REBORN LIKE A PHOENIX WING ❤️‍🔥 👼 https://www.youtube.com/watch?v=D-w2HwG18vg
REBORN LIKE A PHOENIX WING ❤️‍🔥 👼 https://www.youtube.com/watch?v=D-w2HwG18vg
@kat thats awesome. my kids still love playing it.
@kat thats awesome. my kids still love playing it.
@prologic what do we have here?
@prologic what do we have here?
@lyse those are so annoying. except when they're idol tiktoks then they're fine to me
@lyse those are so annoying. except when they're idol tiktoks then they're fine to me
O Zé do Pipo devia ser um gajo meio frito das ideias: quem é que um dia se lhe ocorre "deixa pôr maionese e levar ao forno"?
O Zé do Pipo devia ser um gajo meio frito das ideias: quem é que um dia se lhe ocorre "deixa pôr maionese e levar ao forno"?
[47°09′09″S, 126°43′17″W] Storm recedes -- back to normal work
STOP! this is a dambara ruru video checkpoint. you must watch this video or else i will find you
STOP! this is a dambara ruru video checkpoint. you must watch this video or else i will find you
woke up so early that i have nothing to do
woke up so early that i have nothing to do
Who have old version Konquerror browser for WinXP?

fn sub(foo: &String) {
    println!("We got this string: [{}]", foo);
}

fn main() {
    // "Hello", 0x00, 0x00, "!"
    let buf: [u8; 8] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x00, 0x21];

    // Create a string from the byte array above, interpret as UTF-8, ignore decoding errors.
    let lossy_unicode = String::from_utf8_lossy(&buf).to_string();

    sub(&lossy_unicode);
}


Create a string from a byte array, but the result isn’t a string, it’s a cow 🐮, so you need another to_string() to convert your “string” into a string.

- https://doc.rust-lang.org/std/string/struct.String.html#method.from_utf8_lossy
- https://doc.rust-lang.org/std/borrow/enum.Cow.html

I still have a lot to learn.

(into_owned() instead of to_string() also works and makes more sense to me, it’s just that the compiler suggested to_string() first, which led to this funny example.)
@lyse Rust is *so* different and, at the same time, *so complex* – it’s not far fetched to assume that I simply don’t understand what’s going on here. The docs appear to be clear, but alas … is it a bugs in the docs? Is it a lack of experience on my part? Who knows.

By the way, looks like there was a bit of a discussion regarding that name:

https://github.com/rust-lang/rust/issues/120048
@bender @prologic meanwhile i want to try microblog but can't because not able to pay for it. They have trial but...
[47°09′55″S, 126°43′06″W] Working impossible due to blizzard
@andros U2FsdGVkX1+Qxk53S86ugBkGl7mMqj5EAfdlgwsVtpfkXvP97VL/SgWM269KG+Hsrh0JCsVtqj8FUVfLLLbGoA==
So I was using this function in Rust:

https://doc.rust-lang.org/std/path/struct.Path.html#method.display

Note the little 1.0.0 in the top right corner, which means that this function has been “stable since Rust version 1.0.0”. We’re at 1.87 now, so we’re good.

Then I compiled my program on OpenBSD with Rust 1.86, i.e. just one version behind, but well ahead of 1.0.0.

The compiler said that I was using an unstable library feature.

Turns out, that function internally uses this:

https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.display

And that is only available since Rust 1.87.

How was I supposed to know this? 🤨🫩
[47°09′56″S, 126°43′00″W] Wind speed: 65kph
reading the mensajes from 1740 days ago. miss you guys
you wouldn't believe the number of times ive clicked on blankpage.gmi expecting something other than a blank page=
🧮 USERS:1 FEEDS:2 TWTS:1372 ARCHIVED:87663 CACHE:2673 FOLLOWERS:22 FOLLOWING:14
@movq I HOPE SO TOO!!! when i found out there were boxes on ebay i just had to jump on it!!
@movq I HOPE SO TOO!!! when i found out there were boxes on ebay i just had to jump on it!!
@lyse hell yeah!
@lyse hell yeah!
Hey, Europe: Congratulations, we now have radioactive contamination in Iran. Are we going to continue selling weapons to Israel?

https://www.kurdistan24.net/en/story/845550/iran-confirms-contamination-at-natanz-nuclear-facility-following-israeli-strike
Hey, Europe: Congratulations, we now have radioactive contamination in Iran. Are we going to continue selling weapons to Israel?

https://www.kurdistan24.net/en/story/845550/iran-confirms-contamination-at-natanz-nuclear-facility-following-israeli-strike
[47°09′43″S, 126°43′09″W] Wind speed: N/A -- Cannot comunicate
Ou

"Avançar na disseminação da interação por via digital e remota com os serviços administrativos do Estado, mas sempre garantindo a assistência pessoal (incluindo através dos Espaços do Cidadão, apoio telefónico e Assistentes Virtuais/IA) aos que têm dificuldades técnicas, económicas ou de info-exclusão;"

Porque já se sabe que quem tem dificuldades em interagir por via digital vai conseguir sem problemas ser atendido e ver o seu problema resolvido por um assistente virtual de Inteligência artificial... *suspiro*
Ou

"Avançar na disseminação da interação por via digital e remota com os serviços administrativos do Estado, mas sempre garantindo a assistência pessoal (incluindo através dos Espaços do Cidadão, apoio telefónico e Assistentes Virtuais/IA) aos que têm dificuldades técnicas, económicas ou de info-exclusão;"

Porque já se sabe que quem tem dificuldades em interagir por via digital vai conseguir sem problemas ser atendido e ver o seu problema resolvido por um assistente virtual de Inteligência artificial... *suspiro*
Em passos concretos, o Governo propõe-se a fazer coisas como:

"Criar um modelo de número único de identificação para as pessoas e em-
presas, assim evitando que a mesma pessoa tenha de ter número de utente,
de cartão de cidadão, de contribuinte, de Segurança Social, de eleitor, etc;"

Só que a Constituição Portuguesa, no artigo 35º, nº5, estabelece que "É proibida a atribuição de um número nacional único aos cidadãos". Quer dizer, eles podem estar a dizer que querem mudar este número na constituição, mas também foram eles que disseram que uma revisão constitucional não é uma prioridade deste governo... em que ficamos?
Em passos concretos, o Governo propõe-se a fazer coisas como:

"Criar um modelo de número único de identificação para as pessoas e em-
presas, assim evitando que a mesma pessoa tenha de ter número de utente,
de cartão de cidadão, de contribuinte, de Segurança Social, de eleitor, etc;"

Só que a Constituição Portuguesa, no artigo 35º, nº5, estabelece que "É proibida a atribuição de um número nacional único aos cidadãos". Quer dizer, eles podem estar a dizer que querem mudar este número na constituição, mas também foram eles que disseram que uma revisão constitucional não é uma prioridade deste governo... em que ficamos?
#ptpol

A #desburocratização prometida pelo novo #Governo é o que já se suspeitava, agora vertida na sua proposta de programa de governo. Esta frase resume bem o que se pretende fazer:

"Tudo isto assenta num princípio essencial: o da confiança. O Estado deve confiar
nos cidadãos, reduzindo exigências injustificadas, adotando regras como o deferimento tácito e mecanismos de controlo eficazes e justos. A confiança é a base de uma administração mais ágil, mais humana e mais justa – e o antídoto contra a
corrupção que se alimenta da opacidade e da lentidão."

Se acham que isto não parece muito mal, porque afinal só se fala em tirar as exigências que não são justificadas, e que apesar da ideia central é no de confiar que ninguém vai agir mal continuam a haver mecanismos de controlo eficazes... note-se que esses são "mecanismos de controlo e fiscalização a posteriori" - isto é, só depois do mal estar feito é que se vai ver se o Governante submeteu os dados que devia, se o concurso público não era para uma obra que até já estava feita, ou uma dessas muitas coisas que temos de confiar que não vão acontecer.

Em suma: vamos ter menos corrupção porque vamos ter menos e piores mecanismos para detectar a corrupção, e como é tudo mais simples e rápido e algumas coisas até passam a ser legais, pode ser que isto funcione.
#ptpol

A #desburocratização prometida pelo novo #Governo é o que já se suspeitava, agora vertida na sua proposta de programa de governo. Esta frase resume bem o que se pretende fazer:

"Tudo isto assenta num princípio essencial: o da confiança. O Estado deve confiar
nos cidadãos, reduzindo exigências injustificadas, adotando regras como o deferimento tácito e mecanismos de controlo eficazes e justos. A confiança é a base de uma administração mais ágil, mais humana e mais justa – e o antídoto contra a
corrupção que se alimenta da opacidade e da lentidão."

Se acham que isto não parece muito mal, porque afinal só se fala em tirar as exigências que não são justificadas, e que apesar da ideia central é no de confiar que ninguém vai agir mal continuam a haver mecanismos de controlo eficazes... note-se que esses são "mecanismos de controlo e fiscalização a posteriori" - isto é, só depois do mal estar feito é que se vai ver se o Governante submeteu os dados que devia, se o concurso público não era para uma obra que até já estava feita, ou uma dessas muitas coisas que temos de confiar que não vão acontecer.

Em suma: vamos ter menos corrupção porque vamos ter menos e piores mecanismos para detectar a corrupção, e como é tudo mais simples e rápido e algumas coisas até passam a ser legais, pode ser que isto funcione.
@bender Yeah, well, it’s a bit like twtxt. There *is* a Gopher community, but it’s small. I actually don’t like that HTTP is so easily accessible. I don’t like it that much when people post links to my site on HackerNews or something like that. Too much exposure.

Gopher is a small world. It’s slow and cozy.

And much like twtxt, the protocol is simple(r), so it’s easier to tinker with it.
@andros U2FsdGVkX1+PZsDENcB+eritBGxLcoZct7MiLkA2h4yQQD1lAXd4jKHNVERjCg6HYMVlVgBO0yRAPoYy8qgIIw
[47°09′57″S, 126°43′20″W] Wind speed: 92kph -- batteries low
#MaradoWeekly #WeeklyPlant Week 23 Baby tomatoes starting to get red
#MaradoWeekly #WeeklyPlant Week 23 Baby tomatoes starting to get red
[47°09′01″S, 126°43′47″W] Weather forecast alert -- storm from SE
[47°09′49″S, 126°43′52″W] --interrupted--
[47°09′36″S, 126°43′31″W] Dosimeter fixed
@prologic Yeah, I’m very glad twtxt/Yarn doesn’t have this. ✌️
@kat Oh, ah, I didn’t even know they sold boxes. 🤯 I hope it still works!
@quark It’s as close as coffee as you can get. 😅 They take the beans, apply magic, and then most of the caffeine is gone. You can also buy whole decaf’d beans and then grind them yourself. It *does* kill some of the flavor – but it’s not like you’re drinking black water.
@andros U2FsdGVkX18sglm/Jg5k5H0+8/FA4vTx/qu8AvyCXYOv8nhLsqe74ka/7wcvJ6ci3hOgrti0ZWk917kEskMr3A==
@prologic That isn’t really my strong suit. 😅
🏀 OKC vs IND 🔥 #NBA #Finals
meee mueeeroooooo del calooooooooorrrr!!!! #BCN
🧮 USERS:1 FEEDS:2 TWTS:1371 ARCHIVED:87645 CACHE:2661 FOLLOWERS:22 FOLLOWING:14
https://galusik.fr/fridayrockmetal/2025-06-13-frm.m3u Tonight #FridayRockMetal playlist
@lyse i'll find out tonight LMFAO!
@lyse i'll find out tonight LMFAO!
FRIENDS I GOT A PHYSICAL COPY OF A TUX GAME LOOK AT ITTTTTTTTTT

the physical copy of the 2000s game tux racer from the front, showing box art of tux racing on his stomach with the game's logo above him
FRIENDS I GOT A PHYSICAL COPY OF A TUX GAME LOOK AT ITTTTTTTTTT

the physical copy of the 2000s game tux racer from the front, showing box art of tux racing on his stomach with the game's logo above him
[47°09′53″S, 126°43′29″W] Dosimeter still failing