đ Hi, the current time is about two oâ clock in the small hours đŽ.
In case you havenât seen it yet:
Matt Godboltâs âAdvent of Compiler Optimisationsâ!
https://www.youtube.com/playlist?list=PL2HVqYf7If8cY4wLk7JUQ2f0JXY_xMQm2
@movq@www.uninformativ.de Ooof thatâs chilly đ„¶
@prologic@twtxt.net And I froze my ass off yesterday at -5°C and strong winds. đ€Ł
thatâs a whopping 36°C today đ„”
@dce@hashnix.club merry Christmas to you too!
@thecanine@twtxt.net Is it because youâve used white pixels around it to sort of give it aht 3D look? đ Hmm? đ€
@bender@twtxt.net Itâs fun living in the future isnât it đ€Ł
@prologic@twtxt.net merry Christmas! I keep forgetting you live in our future. đ
đ Merry Xmas đ đ
This one is a slightly more 3D looking, as well as the first one, with the tail swirled.

@movq@www.uninformativ.de Hahaha, this is hilarious! :â-D
@prologic@twtxt.net đ Merry Christmas and stuff đ đ
@lyse@lyse.isobeef.org Lovely! We also just had some snow. đ Not a lot, but still. đ
(Lol, I totally read that as ârootfsâ. đ€Ș)
đ Merry (2025) Xmas yâall đ Ho ho ho! đ
@movq@www.uninformativ.de Only the roofs are a little white. Itâs also windy here. https://lyse.isobeef.org/weisse-weihnachten-2025-12-24/01.jpg
pĂŁo de lol
@lyse@lyse.isobeef.org Oooh, nice! â We only have cold stormy weather over here. đ„Ž
Indeed, tiny, tiny snowflakes coming down.
Oh, thatâs cute: https://movq.de/v/046fb6ee70/s.png DuckDuckGo puts a little helmet on the duck when you search for Skyrim. (Katria is a Skyrim character.)
@lyse@lyse.isobeef.org Thanks. đ (Do I say that? The WM canât answer. đ€Ł)
A cool new open/free #book on #CreativeCoding by Stig MĂžller Hansen is out!
https://stigmollerhansen.dk/resume/learning-creative-coding/
@zvava@twtxt.net I might misunderstand what you wrote, but only hashing the message once and storing the hash together with the message in the database seems a way better approch to me. Itâs fixed and doesnât change, so thereâs no need to recompute it during runtime over and over and over again. You just have it. And can easily look up other messages by hash.
Happy birthday Katrina! https://www.uninformativ.de/blog/postings/2025-12-23/0/POSTING-en.html :-)
Oh wow, there might be snow tomorrow! Probably not much, though. Letâs see.
@movq@www.uninformativ.de Maybe thereâs another meaning Iâm not aware of, but this doesnât look like a shitpost to me. Congrats, I guess. ;-)
Mastodon has a âWrapstodon 2025â now, showing you a âwrap upâ of the year. Of course, a pointless funny shitpost was my most âsuccessfulâ post in 2025. đ
I just had a closer look at https://git.mills.io/prologic/mu and it motivated me to do some compiler building myself again. Hopefully, I find some time in the next free days. Iâm bad at it, but itâs always great fun.
2025 end the year rewind:
Compared to only 3 new artworks in 2024 and next to no work, on other projects, this year I not only met the self-imposed goal of monthly pixelart, but exceeded it by 50%, with 18 additions in total.
Relicensed the majority of canine faction owned art and projects, under two less restrictive Creative Commons licensees*. This also applies retroactively, to everyone who used/archived our art and projects, back when the old license didnât allow it.
Disappointed by the current state of the Internet and continued lack of competition among browsers, completely reworked the main website* and made Smol Drive** (a new image gallery project), both made to be compatible with as many web and Gemini browsers, as possible.
*see https://thecanine.smol.pub
**see https://thecanine.smol.pub/smolbox
Oh great, I received an e-mail that my SMTP credentials have been exposed. Once again, just another shitty scanner that generates garbage reports from tests it doesnât understand. Thank you for nothing!
conf := &Config{
SMTPHost: "smtp.example.com",
SMTPPort: 587,
SMTPUser: "user",
SMTPPass: "hunter2",
SMTPFrom: "from@example.com",
}
@prologic@twtxt.net Iâve been awake at that time, didnât notice anything. đ€ Where was that BGP analyzer again ⊠đ Thereâs a tool that keeps track of these things, right? I forgot what it was.
@prologic@twtxt.net @movq@www.uninformativ.de A crocodile had bitten the big submarine internet cable that connects Australia to Europe. The investigations revealed that some construction work last week accidentally tore up the protective layer around it. That went unnoticed, unfortunately, so marine life had an easy job today. For just 40 minutes, they were quite fast in repairing the damage if you ask me! These communication cables are fricking large.
Just kidding, I completely made that up. :-D I didnât notice any outage either. But I didnât try to connect to Down Under at the time span in question.
@movq@www.uninformativ.de From 2:50 PM to 3:23 PM AEST (+10 UTC) there was an outage. Everything went âupâ on Down Detector, my EU region went offline, numerous sites were unavailable, and so on. Basically everything to/from the EU appeared to basically go kaput.
@prologic@twtxt.net Hm, I didnât notice anything. Perhaps I was asleep? đ
Hey EU friends đ wtf happened to the EU Internet today for about 40 minutes or so?
đŒ
@movq@www.uninformativ.de Very nice! I often wish other languages had something similar. Sometimes, I use lambdas, but that also looks ugly and feels a bit like a misuse. Other times, just the normal blocks are enough, but itâs not the same. Especially with the mutability aspects as the article explains. Typically, I just put it in a function or ignore it if itâs just a few lines.
@movq@www.uninformativ.de Ah, cool! :-) Yeah, itâs very wild what is happening under the hood all the time.
@prologic@twtxt.net You write so much code ⊠itâs incredible. đ
This feels useful: Rustâs Block Pattern
@lyse@lyse.isobeef.org These tables get shuffled around every time your OS switches to another process. Itâs crazy that so much is going on behind the scenes.
@lyse@lyse.isobeef.org I was surprised by that as well. đ I thought these were features that you can use, but no, you must do all this.
By the way, I now fixed the issue that I mentioned at the end and it works on the netbook now. đ„ł
https://www.uninformativ.de/blog/postings/2025-12-21/0/netbook.jpg
Wow, @movq@www.uninformativ.de, so many tables. No idea what I expected (Iâm totally clueless on this low-level stuff), but that was quite an interesting surprise to me. https://www.uninformativ.de/blog/postings/2025-12-21/0/POSTING-en.html
@kiwu@twtxt.net Ta, same to you!
There is a #Processing survey going on at:
https://docs.google.com/forms/d/e/1FAIpQLSduTT2cWlXzr7QG_g4LJ-Op6LwVTI7dtXHCGVH_FdI0BK00qg/viewform
Iâm happy it mentions #py5 at some point.
At the end there is this invitation for the Processing Discord server. I find it unfortunate that the Processing Foundation is moving the community towards a closed, opaque platform controlled by a corporation, when they have the open and searchable forum powered by Discourse. I wish I understood the reasoning. I know Discord can be âconvenientâ but IMHO the downsides are much bigger.
No fake lafufu
cc @shizamura
@movq@www.uninformativ.de @kiwu@twtxt.net it just so happens to be a happy coincidence that Iâm extending muâs capabilities to now include a native toolchain-free compiler (doesnât rely on any external gcc/clang or linkers, etc) that lowers the mu source code into an intermediate representation / IR (what @movq@www.uninformativ.de refers to as âthick layers of abstractionsââŠ) and finally to SSA + ARM64 + Mach-O encoder to produce native binary executables (at least for me on my Mac, Linux may some later?) đ€Ł
@shinyoukai@neko.laidback.moe But I thought Alpine was one of the good distroâs left. đą Whatâs it doing wrong?
@kiwu@twtxt.net Assembly is usually the most low-level programming language that you can get. Typical programming languages like Python or Go are a thick layer of abstraction over what the CPU actually does, but with Assembler you get to see it all and you get full control. (With lots of caveats and footnotes. đ )
Iâm interested in the boot process, i.e. what exactly happens when you turn on your computer. In that area, using Assembler is a must, because you really need that fine-grained control here.
Domingo agora 21/12, Ă tarde, o Edinho e eu vamos abrir o #GaroaHackerClube para uma oficina de solda!
Quem quiser aprender a soldar e/ou conhecer o Garoa e bater um papo conosco, a atividade começa 15h e vai até 18h.
(Vai ter também a oficina de solda såbado 20/12 mas vão ser outras pessoas associadas do Garoa que vão abrir).
#SĂŁoPaulo #Hackerspace
Domingo agora 21/12, à tarde, o Edinho e eu vamos abrir o #GaroaHackerClube para uma oficina de solda! (Vai ter também såbado 20/12 mas vão ser outras pessoas associadass que vão abrir).
Quem quiser aprender a soldar e/ou conhecer o Garoa e bater um papo conosco, começa 15h e vai até as 18h. #SãoPaulo #Hackerspace
Domingo agora 21/12, Ă tarde, o Edinho e eu vamos abrir o #GaroaHackerClube para uma oficina de solda!
Quem quiser aprender a soldar e/ou conhecer o Garoa e bater um papo conosco, a atividade começa 15h e vai até 18h. à só chegar! https://garoa.net.br
(Vai ter também a oficina de solda såbado 20/12 mas vão ser outras pessoas associadas do Garoa que vão abrir).
#SĂŁoPaulo #Hackerspace
@movq@www.uninformativ.de Oh, a table of contents is indeed a great idea!
Note to self: check if pygments can generate SVG, test and/or find another way to incorporate nicely formatted code into a py5 sketch⊠#python
@kiwu@twtxt.net Finally doing some Assembler again. đ Just a tiny little bit at least.
@lyse@lyse.isobeef.org Yeah, well, given that I didnât need this for such a long time, itâs probably not an essential tool. đ
Iâve often wanted to have an outline of text documents, though, and tagbar/ctags can do that as well:
https://movq.de/v/3c6d1a13d6/tagbar-md.png
https://movq.de/v/abc58e6d66/tagbar-latex.png
This isnât as powerful as the âNavigatorâ tool in StarOffice/LibreOffice (which can be used to rearrange the document), but still pretty useful:
https://www.uninformativ.de/blog/postings/2024-05-23/0/so31.mp4
@movq@www.uninformativ.de Interesting. I never found a big use for these kind of lists in general. But I might give it a shot again.
@movq@www.uninformativ.de Not sure what it had in its beak. It looked a wee bit like a large biscuit. But it must have been rock-hard.
@kiwu@twtxt.net Iâm doing great, howâre ya going? Just two more days and then I never have to work anymore. In this year.
I just baked two trays of gingerbread. One definitely good one and another experiment.
This morning was also super pretty: https://lyse.isobeef.org/morgensonne-2025-12-19/
NĂŁo fiz ainda um toot sobre a verdadeira obra-prima que Ă© o Blue Prince porque ando demasiado ocupado a jogar Blue Prince
@lyse@lyse.isobeef.org Awww, 03.jpg. đ Yeah, we also had a nice sunset. I was on the road, though, so no photos.
Ooooooooooh! If your .vimrc is as messy as mine, youâll be pleased to learn that Tagbar can show a sorted list of all key mappings:
https://movq.de/v/0f37d13a01/s.png
đ€Ż
Magpie and sunset: https://lyse.isobeef.org/waldspaziergang-2025-12-18/
o ĂĄlbum do vĂdeo Ă© este: https://mads-kjeldgaard.bandcamp.com/album/space-in-between
Ok mais logo faço aqui um fio com os pormenores, mas pra jĂĄ deixem-me mostrar-vos o setup que desde hĂĄ muito quis ter para escrever no computador, inspiradĂssimo no OmmWriter, usando sĂł ferramentas livres.
O editor Ă© o FocusWriter, a banda sonora Ă© do @mads100tist@mads100tist e os sons do teclado vĂȘm de uma biblioteca caseira que alinhei, usando samples do snd.dev
@zotero@zotero I noticed that some combinations of XFCE appearance (light) themes and Zotero made the menu âdisappearâ (black on black) as the window title was dark. Changing the Zotero to a dark theme or changing the XFCE theme worked (but then, I liked the dark window title on a light theme bestâŠ). Should I try to open an issue about this, or is it a XFCE issue? I donât want to burden the maintainers but it was a bit disturbing not to find the menusâŠ
@movq@www.uninformativ.de Pretty sure all my mu solutions are very slow, but not so slow as I optimized most of the implementations to avoid as much brute forcing as I could.
âAudazâ, PĂșblico, a palavra que procuram Ă© âaudazâ. NĂŁo vale de muito as regulares colunas de defesa da lĂngua portuguesa quando depois Ă© pontapĂ©s destes
all i want for christmas is labubu
but itâs esgotated everywhere
Anteontem concretizei finalmente uma ideia de hĂĄ anos â uma pequena biblioteca #python para emitir sons com cada tecla que pressionamos. Espero logo ter energia pra gravar um pequeno vĂdeo de demo e publicar o repositĂłrio
@prologic@twtxt.net It is, yes.
@movq@www.uninformativ.de This is the total amount of cpu time consumed right?
I rewrote all my solutions in Rust (except for day 10 part 2) and these are the runtimes on my i7-3770 from 2013 (this measures CLOCK_PROCESS_CPUTIME_ID, not wallclock):
day01/1 [ 00.000501311] Result: 1066
day01/2 [ 00.000400298] Result: 6223
day02/1 [ 00.000358848] Result: 12586854255
day02/2 [ 00.000750711] Result: 17298174201
day03/1 [ 00.000106537] Result: 17405
day03/2 [ 00.000404632] Result: 171990312704598
day04/1 [ 00.000257517] Result: 1626
day04/2 [ 00.007495342] Result: 9173
day05/1 [ 00.000237212] Result: 505
day05/2 [ 00.000142731] Result: 344423158480189
day06/1 [ 00.000229629] Result: 4076006202939
day06/2 [ 00.000279552] Result: 7903168391557
day07/1 [ 00.000204422] Result: 1622
day07/2 [ 00.000283816] Result: 10357305916520
day08/1 [ 00.029427421] Result: 84968
day08/2 [ 00.028089859] Result: 8663467782
day09/1 [ 00.000310304] Result: 4764078684
day09/2 [ 00.015512554] Result: 1652344888
day10/1 [ 00.000796663] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.000416804] Result: 753
day11/2 [ 00.000660528] Result: 450854305019580
day12/1 [ 00.000336081] Result: 577
day12/2 [ 00.000000695] Result: no part 2
A little under 90 ms total.
On my Samsung NC10 netbook from 2011 with its Intel Atom N455 at 1.6 GHz:
day01/1 [ 00.003771326] Result: 1066
day01/2 [ 00.003267317] Result: 6223
day02/1 [ 00.003902698] Result: 12586854255
day02/2 [ 00.006659479] Result: 17298174201
day03/1 [ 00.000747544] Result: 17405
day03/2 [ 00.002737587] Result: 171990312704598
day04/1 [ 00.001263892] Result: 1626
day04/2 [ 00.044985301] Result: 9173
day05/1 [ 00.001696761] Result: 505
day05/2 [ 00.000978962] Result: 344423158480189
day06/1 [ 00.001387660] Result: 4076006202939
day06/2 [ 00.001734248] Result: 7903168391557
day07/1 [ 00.001295528] Result: 1622
day07/2 [ 00.001809659] Result: 10357305916520
day08/1 [ 00.277251443] Result: 84968
day08/2 [ 00.284359332] Result: 8663467782
day09/1 [ 00.003152407] Result: 4764078684
day09/2 [ 00.071123459] Result: 1652344888
day10/1 [ 00.005279527] Result: 375
day10/2 [ --.---------] Result: 15377 (Z3)
day11/1 [ 00.003273342] Result: 753
day11/2 [ 00.005139719] Result: 450854305019580
day12/1 [ 00.002857552] Result: 577
day12/2 [ 00.000004421] Result: no part 2
A little over 700 ms total.
I like this. You get performance thatâs more or less in the ballpark of C, but without the footguns.
@movq@www.uninformativ.de Hmmm đ§
If your very popular project with lots of stars on GitHub is over 10 years old, and youâre still at a pre-1.0 version because youâre using SemVer and a 1.0 would mean making some kind of commitment and thatâs somehow not desirable for you, then I think youâre doing something wrong. đ€
«Our online catalogue comprises the largest media art collection in the Netherlands. Search through more than 3,500 works of art, from video-art pioneers from the 1960s to up-and-coming talents and well-known contemporary artists working with the latest technologies. New works are continuously added. The works are available for screenings, exhibitions and research.»
Via @ranoya@ranoya
@shinyoukai@neko.laidback.moe I think I never watched it. In any case, enjoy reading your books.
Got a nice conspiracy theory for you:
https://mastodon.social/@mcc/115670290552252848
Actually wait I just thought about this and realized that the precise timing of the ACTUAL GitHub seed bank, by which I mean the Arctic Code Vault, on 2020-02-02, makes it more or less a perfect snapshot of pre-Copilot GitHub. Also precisely timed before we all got brain damage from COVID. This is the only remaining archive of source code by people with a fully working sense of smell
(Bonus points because the Arctic World Archive is located in Svaldbard and thatâs the name of the AI in Stacey Kadeâs âCold Eternityâ.)
«⊠a #FAUUSP tem a satisfação de anunciar o inĂcio da disponibilização pĂșblica da coleção digital da revista #Habitat, com o lançamento das 15 primeiras ediçÔes, publicadas entre 1950 e 1954. Esta etapa marca mais um avanço no compromisso assumido com a difusĂŁo ampla e qualificada dessa revista fundamental para a histĂłria da arte, da arquitetura e do urbanismo no Brasil.
Desde o anĂșncio inicial, recebemos numerosos contatos de pesquisadoras e pesquisadores de diferentes regiĂ”es do paĂs, demonstrando a enorme expectativa em torno do acesso digital Ă Habitat. Tal interesse reforça a relevĂąncia deste projeto, viabilizado pela generosidade dos herdeiros da Habitat Editora Ltda. e pelo trabalho dedicado de profissionais da FAU-USP envolvidos em sua organização, digitalização e curadoria.
As demais ediçÔes serĂŁo publicadas, de forma gradual, atĂ© completarmos a coleção integral â 84 nĂșmeros no total. Enquanto isso, convidamos o pĂșblico a explorar as capas de todas as ediçÔes, que jĂĄ estĂŁo disponĂveis no portalâ dedicado Ă publicação, eâ que antecipam a riqueza grĂĄfica e editorial da revista: â
Me antecipando aqui, mas, salvo engano, sĂĄbado e domingo, dias 20 e 21 de dezembro, entre 15h e 18h de 2025 vai rolar oficina de solda no Garoa Hacker Clube em #SĂŁoPaulo!
[assim que estiver na agenda do clube e na wiki eu ponho o link aqui]
Vamos ter uns kits simpåticos à venda pra quem quiser comprar, pode também levar alguma coisa de casa que queira soldar⊠eu vou no domingo 21. #hackerspace
@movq@www.uninformativ.de Neither have I. :-D
na minha instùncia tem citação jå :)
#Processing & #py5 tip:
Remember the shapes you put on draw() will be redrawn over and over, and if they donât move (leaving a trail) you might want to either clean each frame with background(...), or stop the draw loop (noLoop() in Processing or no_loop() in py5), otherwise you kill the anti-aliasing of the lines/strokes/edges!
Iâm posting this tip because even using these tools for years and knowing this, today I briefly thought something was odd/broken because my lines were ugly with no âsmoothingâ :D
â`python
import py5
def setup():
py5.size(200, 200)
py5.stroke_weight(2)
# a line that will drawn once only
py5.line(10, 10, 190, 90)
def draw():
# you could clean the frame here with background(200)
# this other line will be redrawn many times
py5.line(10, 110, 190, 190)
def key_pressed():
py5.save('out.png')
py5.run_sketch()
â`
#Processing & #py5 tip:
Remember the shapes you put on draw() will be redrawn over and over, and if they donât move (leaving a trail) you might want to either clean each frame with background(...), or stop the draw loop (noLoop() in Processing or no_loop() in py5), otherwise you kill the anti-aliasing of the lines :D
â`python
import py5
def setup():
py5.size(200, 200)
py5.stroke_weight(2)
# a line that will drawn once only
py5.line(10, 10, 190, 90)
def draw():
# you could clean the frame here with background(200)
# this other line will be redrawn many times
py5.line(10, 110, 190, 190)
def key_pressed():
py5.save('out.png')
py5.run_sketch()
â`
@shinyoukai@neko.laidback.moe These are all Debian release names: https://www.debian.org/releases/
- Bookworm is current oldstable
- Trixie is current stable
- Forky is current testing
@kiwu@twtxt.net evening!!!
@prologic@twtxt.net How on earth did you do that so quickly, especially day 10? People were struggling with this a lot. đ€Ż
@movq@www.uninformativ.de Haha đ
@prologic@twtxt.net Jesus, that was quick. đ