# 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 196228
# self = https://watcher.sour.is?offset=184038
# next = https://watcher.sour.is?offset=184138
# prev = https://watcher.sour.is?offset=183938
* 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(…)
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*
* 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(…)
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.*
"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 [...]"
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?
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?
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."
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
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
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")
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")
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?
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?
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. :-(
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. :-)
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. :-)
[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.
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...
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...
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 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! :-)
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 :(
@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.
@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.