# 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 235306
# self = https://watcher.sour.is?offset=232749
# next = https://watcher.sour.is?offset=232849
# prev = https://watcher.sour.is?offset=232649
[47°09′14″S, 126°43′59″W] Dosimeter malfunction
@movq "Thermometer must not be installed near aircraft turbine exhaust."
@xuu My layout looks like this:

* storage/
* storage.go: defines a Storage interface
* sqlite.go: implements the Storage interface
* sqlite_test.go: originally had a function to set up a test storage to test the SQLite storage implementation itself: newRAMStorage(testing.T, $initialData) *Storage
* controller/
* feeds.go: uses a Storage
* feeds_test.go: here I wanted to reuse the newRAMStorage(…) function

I then tried to relocate the newRAMStorage(…) into a

* teststorage/
* storage.go: moved here as NewRAMStorage(…)

so that I could just reuse it from both

* storage/
* sqlite_test.go: uses testutils.NewRAMStorage(…)
* controller/
* feeds_test.go: uses testutils.NewRamStorage(…)

But that results into an import cycle, because the teststorage package imports storage for storage.Storage and the storage package imports testutils for testutils.NewRAMStorage(…) in its test. I'm just screwed. For now, I duplicated it as newRAMStorage(…) in controller/feeds_test.go.

I could put NewRAMStorage(…) in storage/testutils.go, which could be guarded with //go:build testutils. With go test -tags testutils …, in storage/sqlite_test.go could just use NewRAMStorage(…) directly and similarly in controller/feeds_test.go I could call storage.NewRamStorage(…). But I don't know if I would consider this really elegant.

The more I think about it, the more appealing it sounds. Because I could then also use other test-related stuff across packages without introducing other dedicated test packages. Build some assertions, converters, types etc. directly into the same package, maybe even make them methods of types.

If I went that route, I might do the opposite with the build tag and make it something like !prod instead of testing. Only when building the final binary, I would have to specify the tag to exclude all the non-prod stuff. Hmmm.*
[47°09′17″S, 126°43′48″W] Waiting for carrier
"Feminism is about examining systems" — @Felienne@Felienne

Also brilliantly put: "[...] By the way, the image of feminists being complainers is not something that appeared out of thin air, but was constructed by people opposing feminism [...]"

https://www.felienne.com/archives/8470

UPDATE: Looks like posting on feminism attracts some ugly replies and I have blocked 3 users already... that's useful in a sense.
Roy Ayers: NPR Music Tiny Desk Concert

https://www.youtube.com/watch?v=CghK8iVUHBs
**** ⌘ Read more****
Hacer software código opensource es desafiante y paulatinamente desgasta a su autor. Todo comienza con pasión y entusiasmo, por supuesto. Si logras repercusión, te enfrentas a una carrera de fondo que muchos terminan abandonando por las demandas constantes de usuarios que, a menudo, no valoran el trabajo ni contribuyen de manera significativa. Por mencionar un caso reciente: Hector Martin. Líder del proyecto Asahi Linux, quien dedicó años a adaptar Linux para los procesadores Apple Silicon, un logro técnico impresionante. Sin embargo, terminó renunciando debido a la presión de usuarios que exigían soporte y mejoras como si fueran clientes pagos.

La mayoría de los mantenedores no reciben ningún soporte económico. Solo unos pocos proyectos logran sostenibilidad financiera a través de patrocinios, mientras que la mayoría de los desarrolladores terminan con un segundo empleo no remunerado.

Sin un cambio en la forma en que se valora y apoya los proyectos Opensource, y no solo hablo de las grandes empresas multimillonarias. Sería una perdida para todos si acabaremos con un ecosistema de software archivado y abandonado.

Ahora te paso la pelota a ti, ¿cuando fue la última vez que apoyaste a un mantenedor de software opensource?

#opensource #software #sostenibilidad
Hacer software código opensource es desafiante y paulatinamente desgasta a su autor. Todo comienza con pasión y entusiasmo, por supuesto. Si logras repercusión, te enfrentas a una carrera de fondo que muchos terminan abandonando por las demandas constantes de usuarios que, a menudo, no valoran el trabajo ni contribuyen de manera significativa. Por mencionar un caso reciente: Hector Martin. Líder del proyecto Asahi Linux, quien dedicó años a adaptar Linux para los procesadores Apple Silicon, un logro técnico impresionante. Sin embargo, terminó renunciando debido a la presión de usuarios que exigían soporte y mejoras como si fueran clientes pagos.

La mayoría de los mantenedores no reciben ningún soporte económico. Solo unos pocos proyectos logran sostenibilidad financiera a través de patrocinios, mientras que la mayoría de los desarrolladores terminan con un segundo empleo no remunerado.

Sin un cambio en la forma en que se valora y apoya los proyectos Opensource, y no solo hablo de las grandes empresas multimillonarias. Sería una perdida para todos si acabaremos con un ecosistema de software archivado y abandonado.

Ahora te paso la pelota a ti, ¿cuando fue la última vez que apoyaste a un mantenedor de software opensource?

#opensource #software #sostenibilidad
Palavras de Francisco Ferreira na mais recente newsletter da #ZERO :

"Há poucas semanas, esta nova Comissão (apesar da mesma Presidente Ursula von der Leyen), apresentou o chamado pacote legislativo “omnibus”. [...]
A proposta #Omnibus pretende alterar três pilares fundamentais do Pacto Ecológico Europeu - a Diretiva de Dever de Diligência das Empresas em Sustentabilidade (#CSDDD), a Diretiva de Comunicação de Informações de Sustentabilidade das Empresas (#CSRD) e o Regulamento de Taxonomia. Tal pode comprometer os objetivos climáticos e sociais da União Europeia. O argumento da simplificação regulatória, usado pela Comissão Europeia, vai, na prática, resultar no enfraquecimento de regras fundamentais que garantem transparência empresarial, redução de emissões e proteção dos direitos humanos nas cadeias de fornecimento globais. Além disso, essa revisão legislativa ameaça as empresas que já investiram na transição sustentável, favorecendo aquelas que ainda não se adaptaram às exigências ambientais e sociais.

Quando a Europa deveria ser um farol à escala mundial, num mundo ameaçado por enormes crises ambientais, estamos afinal a retroceder em áreas fundamentais para o futuro."
Palavras de Francisco Ferreira na mais recente newsletter da #ZERO :

"Há poucas semanas, esta nova Comissão (apesar da mesma Presidente Ursula von der Leyen), apresentou o chamado pacote legislativo “omnibus”. [...]
A proposta #Omnibus pretende alterar três pilares fundamentais do Pacto Ecológico Europeu - a Diretiva de Dever de Diligência das Empresas em Sustentabilidade (#CSDDD), a Diretiva de Comunicação de Informações de Sustentabilidade das Empresas (#CSRD) e o Regulamento de Taxonomia. Tal pode comprometer os objetivos climáticos e sociais da União Europeia. O argumento da simplificação regulatória, usado pela Comissão Europeia, vai, na prática, resultar no enfraquecimento de regras fundamentais que garantem transparência empresarial, redução de emissões e proteção dos direitos humanos nas cadeias de fornecimento globais. Além disso, essa revisão legislativa ameaça as empresas que já investiram na transição sustentável, favorecendo aquelas que ainda não se adaptaram às exigências ambientais e sociais.

Quando a Europa deveria ser um farol à escala mundial, num mundo ameaçado por enormes crises ambientais, estamos afinal a retroceder em áreas fundamentais para o futuro."
Para a #musiquinta de #carnaval uma foto mas sem link, que não encontro estas músicas online.

"Gande Carnaval de Verão 1974" é um disco de Carnaval em que as letras foram alteradas para promover a #Tupperware :-P Foto do disco a ser tocado
Para a #musiquinta de #carnaval uma foto mas sem link, que não encontro estas músicas online.

"Gande Carnaval de Verão 1974" é um disco de Carnaval em que as letras foram alteradas para promover a #Tupperware :-P Foto do disco a ser tocado
Pinellas County - 4 miles: 4.05 miles, 00:08:21 average pace, 00:33:46 duration
the morning is so much better to run. just the getting up part sucks. legs tired from such a quick turn around but felt fine.
#running
Pinellas County - 4 miles: 4.05 miles, 00:08:21 average pace, 00:33:46 duration
the morning is so much better to run. just the getting up part sucks. legs tired from such a quick turn around but felt fine.
#running
Pinellas County - 4 miles: 4.05 miles, 00:08:21 average pace, 00:33:46 duration
the morning is so much better to run. just the getting up part sucks. legs tired from such a quick turn around but felt fine.
#running
[47°09′06″S, 126°43′52″W] --no signal--
In unserer neuen Folge von Service Side Stories haben wir über Tailwindcss gesprochen. Wir sprachen darüber, in welchen Fällen wir es einsetzen und wann lieber nicht.https://maurice-renck.de/en/notes/2025/tailwindcss-vs-css
[47°09′56″S, 126°43′58″W] Transfer aborted
TIL that RFC means Request For Comments
[47°09′10″S, 126°43′11″W] Bad satellite signal -- switching to analog communication
Pinellas County - 5 miles: 5.03 miles, 00:08:58 average pace, 00:45:03 duration
late run do to work and life. had my daughters field trip this morning which was fun. definitely going to sleep hard tonight.
#running
Pinellas County - 5 miles: 5.03 miles, 00:08:58 average pace, 00:45:03 duration
late run do to work and life. had my daughters field trip this morning which was fun. definitely going to sleep hard tonight.
#running
Pinellas County - 5 miles: 5.03 miles, 00:08:58 average pace, 00:45:03 duration
late run do to work and life. had my daughters field trip this morning which was fun. definitely going to sleep hard tonight.
#running
maybe even an internal that has the shared test stuff
oof that sucks man. does it make sense to have a separate testutils package to import from?
🧮 USERS:1 FEEDS:2 TWTS:1267 ARCHIVED:85061 CACHE:2808 FOLLOWERS:18 FOLLOWING:14
it seems to be confused with the subject right next to it.. it works better at the end of the twt string.
Yarn won't display anything. but the parser does add it to the AST in a way that you can parse it out using twt.Attrs().Get("lang")

https://git.mills.io/yarnsocial/go-lextwt/src/branch/main/ast.go#L1270-L1272

https://git.mills.io/yarnsocial/go-types/src/branch/main/twt.go#L473-L478
Já se percebeu que o CDS quer voltar a ir a votos coligado com o PSD, em Maio, mas a grande questão política do momento agora é: será que o PPM continua a querer apoiar Montenegro?

#ptpol
Já se percebeu que o CDS quer voltar a ir a votos coligado com o PSD, em Maio, mas a grande questão política do momento agora é: será que o PPM continua a querer apoiar Montenegro?

#ptpol
Dang it! I ran into import cycles with shared test utilities again. :-( Either I have to copy this function to set up an in-memory test storage across packages or I have to put it in the storage package itself and guard it with a build tag that is only used in tests (otherwise I end up with this function in my production binary as well). I don't like any of the alternatives. :-(
Thank you, @eapl.me, this is awesome! I'm curious to see if we find some more advantages with the current approach. It seems there should be some more, but I can only think disadvantages right now. :-)
@eapl.me Great, thanks for organizing this! 👍
@eapl.me Great, thanks for organizing this! 👍
[47°09′16″S, 126°43′03″W] Working impossible due to heavy rain
@lyse No, it’s always in the shadow. But there’s not a lot of wind, maybe other things around it heat up … 🤔
@lyse No, it’s always in the shadow. But there’s not a lot of wind, maybe other things around it heat up … 🤔
Damn! Stay safe mate...
[lang=en] (#jwfdkuq) @xuu gotcha!
From that PR #17 I think it was reverted? We could discuss about metadata later this month, as it seems that I'm the only person using it.

I've added a [lang=en] to this twt to see current yarn behaviour.
@prologic Best wishes!
Excelentíssimo mestre @elmoneto@elmoneto
(em carta aberta),

Vi que o Marcelo Prates adotou uma lib meio "abandonada" chamada elevation para fazer o sombreamento da topografia nessa versão nova que saiu do PrettyMaps...

Mas o que eu queria mesmo (e não consigo fazer) era acrescentar as elevações aos grafos para uma visualização 3D simpática ou para calcular rotas de pedestres como este exemplo sofisticado aqui: https://aetperf.github.io/2024/01/31/Create-a-routable-pedestrian-network-with-elevation.html

ou https://github.com/gboeing/osmnx-examples/blob/main/notebooks/12-node-elevations-edge-grades.ipynb

Mas eu patino com o lance de baixar os tiles com as elevações... suspiro...
@movq Did you place it in the sun? We only got 15°C today.
Hi everyone,
I've drafted a Request for Comments (RFC) to improve how threads work in twtxt:
https://git.mills.io/yarnsocial/twtxt.dev/issues/18

I’d love your feedback! Please share your thoughts on anything that could be better explained, check if the proposed dates work for everyone, and I invite you to join the discussion...
I have released new updates to the twtxt.el client.

- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.

In the next version you will be able to see all your mentions.

Enjoy!

#emacs #twtxt #twtxtel

I have released new updates to the twtxt.el client.

- New feature: View and interact with threads.
- Optimisation of ordering for long feeds.
- Minor fixes.

In the next version you will be able to see all your mentions.

Enjoy!

#emacs #twtxt #twtxtel

Oh my god! 😵
Oh my god! 😵
@movq Toowoomba! I love that name. LOL. Sorry, digressing big time.
[47°09′31″S, 126°43′36″W] Wind speed: 91kph
Demorou demasiado, mas a próxima versão do yt-dlp vai voltar a suportar a RTP! Quer isto dizer que já podem facilmente aceder aos conteúdos diferidos da RTP, bastando para isso usar o yt-dlp. Enquanto a nova versão (com esta e outras alterações) não sai, podem já usá-lo através da versão git, disponível em https://github.com/yt-dlp/yt-dlp .
Demorou demasiado, mas a próxima versão do yt-dlp vai voltar a suportar a RTP! Quer isto dizer que já podem facilmente aceder aos conteúdos diferidos da RTP, bastando para isso usar o yt-dlp. Enquanto a nova versão (com esta e outras alterações) não sai, podem já usá-lo através da versão git, disponível em https://github.com/yt-dlp/yt-dlp .
@prologic Ouch, that’s heading right towards you, eh? 🙈

@prologic Ouch, that’s heading right towards you, eh? 🙈

Boom. 24°C. No spring? I think my thermometer is wrong.
Boom. 24°C. No spring? I think my thermometer is wrong.
@prologic stay safe, close windows, have sand sacks ready, check flashlights, make sure to have some canned food, and bottled water, fill up the bathtubs, etc., and enjoy the ride! :-)
❤️ 🎶: The Youngest Day by Kim Na Young
[47°09′40″S, 126°43′13″W] Storm recedes -- back to normal work
Update:
Hope you stay safe mate!
via: mthie® spaceshttps://maurice-renck.de/en/notes/2025/keine-herausforderungen-mehr
[47°09′42″S, 126°43′32″W] Wind speed: 78kph
[47°09′32″S, 126°43′25″W] Automatic systems disengaged due to thunderstorm
this is epic!
Another view!
This is what I'll be facing into in the next few hours and over the next couple of days! Cyclone Alfred 🌀
TwtAttrs
https://git.mills.io/yarnsocial/go-lextwt/pulls/17

Actually it was your old feed on eapl.mx
TwtAttrs
https://git.mills.io/yarnsocial/go-lextwt/pulls/17

Actually it was your old feed on eapl.mx
"Detecting simultaneous keystrokes with #py5"

https://github.com/villares/python-visual-context/blob/main/Processing-Python-py5/simultaneous_keys.md

This is a machine translated version of a tutorial I made for my classes (from https://abav.lugaralgum.com/material-aulas)... I'd like to translate more stuff into English this year, but I'd need more support (donations) in order to have the time to do this. Things have been tough lately: I should be trying to find more classes to teach, but I'm somewhat overworked already :(

If you'd like to support my work:
- https://liberapay.com/villares
- https://www.paypal.com/donate/?hosted_button_id=5B4MZ78C9J724

#Processing #Python #CreativeCoding
@eapl.me@eapl.me I saw a few a while back.
really? I think I haven't seen it being used in the wild
🧮 USERS:1 FEEDS:2 TWTS:1266 ARCHIVED:85045 CACHE:2795 FOLLOWERS:18 FOLLOWING:14
Um texto em uma lingua estranha que poucos entenderão
For point 1 and others using the metadata tags. we have implemented them in yarnd as [lang=en][meta=data]
Yeah so disappointed. Brother was one of the last good ones.
oetkenpurveyorofcode.github.io
gnampf
@lyse Same I think it's not worth it either
https://github.com/ZaneA/HashTWM/issues
https://github.com/ZaneA/HashTWM/issues
https://github.com/prabirshrestha/dwm-win32
https://github.com/prabirshrestha/dwm-win32
[47°09′58″S, 126°43′47″W] Wind speed: 84kph
@prologic Damn! :-( Yeah, I won't build that into my client. Not worth it for the many things that are still undetectable and the low frequency it happens.
@bmallred Oh, I hear you! It's always after carefully proofreading and publishing that a typo suddenly pops up. :-) Not sure if amending your edit implementation is really worth it, but happy hacking in case you do.
@movq Luckily, they're not made of steel as I would not have made it home with such heavy weights. :-D
@movq Fuck! So there aren't any non-criminal printer vendors out there anymore. Very sad. I really don't understand why this is not highly illegal in the entire world.
[47°09′08″S, 126°43′02″W] Wind speed: N/A -- Cannot comunicate
#MaradoWeekly #WeeklyPlant Week 09 For the first time, this year this "japanese quince" flowered. I only think it is a japanese quince now due to the red flower with yellow stems in this picture, I had no clue what it was previously.
#MaradoWeekly #WeeklyPlant Week 09 For the first time, this year this "japanese quince" flowered. I only think it is a japanese quince now due to the red flower with yellow stems in this picture, I had no clue what it was previously.
@xuu Awww thanks bro 😎
@prologic Got you bro.
❤️ 🎶: But I Love You by Ingyeong Choi
"99. Memorandum From Director of Central Intelligence Colby to Secretary of State Kissinger —Decision by Brazilian President Ernesto Geisel To Continue the Summary Execution of Dangerous Subversives Under Certain Conditions"

https://history.state.gov/historicaldocuments/frus1969-76ve11p2/d99

via Matias Spektor
@movq I know right? 🤣 Fuck this geoip blocking censored shit™ 💩
@prologic What the heck. 🫠
@prologic What the heck. 🫠