(#vx4rw2q) Has a bit of a long history story behind this, where last year at work we were reading this book called Engineering a Safer World and initially came across a service called Speech Reply that allowed me to upload a PDF copy of the book and start to read it, but unfortunately, the free trial right now before I can finish reading it turns out that Speech Reply service cost a whopping US$30 a month and expected me to pay a full year upfront, which was well over US$300 just for one fucking book! So I sent their sales and support staff a message kindly asking if it were possible to just pay for the audio transcription of just a single book or to change to a monthly subscription fee, to which they refused, so basically in the end I got very angry and told them to go fuck themselves and built my own service. A year later here we are :-)
This weekend, Iām building a service that turns PDFs into chaptered, audiobookāquality narration in minutesāupload, listen in a builtāin player, and download MP3/M4B files with clean metadata.
Another project where Iām going to use my terminal widget toolkit is a hex editor. This is still very young, obviously, and thereās a lot of work to do (both in the toolkit and this particular application), but Iām making some progress:
Since this program is UTF-8 clean (I hope), you can do things like enter multi-byte UTF-8 sequences or paste them from the system clipboard (another hex editor I just tried failed to do this correctly):
Under the hood, Iām using mmap() with MAP_PRIVATE, which is really cool: I get the entire file as a byte array, no matter how large it is, no need to actually read it upfront; and MAP_PRIVATE means that I can write to this area however I like without changing the underlying file. The kernel does copy-on-write for me. Only when you hit Save, it will write to the filesystem. And itās just a couple lines of code. The kernel does all the magic. š„³
(#mx4fpvq) @bender@twtxt.net I love that you set your alarm. :-D Lucky for my new teammates (or maybe not) Iām not gonna leave them. No week has passed where my old mates didnāt consult me, so I reckon Iām still a secret service agent in the old team. :-P
(#wnd6iwa) @bender@twtxt.net Hahaha! It was already too dark for this poor camera. Yes, this pond was frozen solid. I will check it out tomorrow during daylight and have another attempt.
(#bb54rfq) @movq@www.uninformativ.de Maybe ask the guys at CERN whether you can quickly put your soaking wet stuff in their Laundry deHumidifying Centrifuge every so often.
My washing machine is making funny noises and Iām this š¤ close to just throwing it out and washing everything by hand, instead of buying another expensive enshittified product thatās designed to break down in a couple of years.
Washing is easy anyway, the spin cycle to dry that stuff is the important part ā¦
(#6d4mo2a) @shinyoukai@yume.laidback.moe š with extra 24/7 noise from the construction site outside (construction guys live in a little ācontainerā and they need power, so they have a diesel generator running 24/7)
(#3szczeq) @bender@twtxt.net Only missing roots would trigger that kind of sync IIRC. And that only works if another peering pod has the root twt. What youāre remembering, possibly, is an attempt to do what you were thinking of⦠But I tried it, turned out to be too expensive of an operation to do auotmatically.
Spent basically the entire day (except for the mandatory walk) fighting with Pythonās type hints. But, the result is that my widget toolkit now passes mypy --strict.
I really, really donāt want to write larger pieces of software without static typing anymore. With dynamic typing, you must test every code path in your program to catch even the most basic errors. pylint helps a bit (doesnāt need type hints), but thatās really not enough.
I have a love-hate relationship with Pythonās type hints, because they are meaningless at runtime, so they can be utterly misleading. Iām beginning to like them as an additional safety-net, though.
(But really, if correctness is the goal, you either need to invest a ton of time to get 100% test coverage ā or donāt use Python.)
(#5sx3vhq) @lyse@lyse.isobeef.org The thing is thatās hard to avoid if TYPE_CHECKING, but documentation tools such as pdoc donāt support that ⦠so itās either type hints or API docs. š¤·
I hope I can eventually find a way out of this mess ā¦
yes, yes thatās right. Mu (µ) now has a built-in LSP server for fans of VS Code / VSCodium š You just go install ./cmd/mu-lsp/... and install the VS extension and hey presto š„³ You get outlines of any Mu source, Find References and Go to Definition!
(#3egmgba) @movq@www.uninformativ.de Hehe. :-) This steep footpath connects a hiking parking lot outside the village and the edge of the village in a fairly straight line. Garden owners are allowed to drive their vehicles down from the village to their lots on this pathway and up again. These two poles are placed about a third up from the botton on a short, comparatively flat section to stop people from taking this shortcut to get down to the country road. Said road goes through the village but there are hairpins getting up and down. The road markings have been added recentlyish. I suspect to warn shooting down cyclists of the danger ahead. I havenāt seen something like this anywhere else either. :-)
My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. Iām quite tired now, completely out of shape.
(#6acyh5q) @lyse@lyse.isobeef.org (At least I didnāt break all the links again. In late 2015, I switched from a PHP backend to the current static website, which changed just about everything. I hope doing a disruptive change like this one every 10 years is tolerable. š )