đ Hi, the current time is about a quarter past three in the small hours đŽ.
Camiseta infantil com entrega para todo o Brasil? EstĂĄ tendo!
https://umapenca.com/villares/camiseta-infantil/aviao-290863.html
âPirahĂŁ, determinismo linguĂstico e balelaâ https://www.youtube.com/watch?v=s-sWYaC4Yyw
@movq@www.uninformativ.de :-D LOL!
@klaxzy@klaxzy.net Hahaha, thatâs funny! :-D
When people âmake plansâ, I always respond like this:
https://movq.de/v/9a8712846d/at-night.jpg
Finally found the clip where this is from:
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!
@prologic@twtxt.net Reminds me to have another look at LSP. Last time I checked, it was super messy in Vim. đ€
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.
Also, somewhere along the way, I picked up a very bad (Python) programming style. (Actually, I know exactly where I picked that up, but I donât want to point the finger now.) This style makes heavy use of dicts and tuples instead of proper classes. That works for small scripts, but it very quickly turns into an absolute mess once the program grows. Prime example: jenny. đ©
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.)
@shinyoukai@yume.laidback.moe Yeah, I avoided that issue as well. I moved everything on the website except for the twtxt stuff.
@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!
@javivf@adn.org.es Oh! Thanks, should be fixed now. đ
@klaxzy@klaxzy.net really?! đ€ Thatâs hilseriosu đ€Ł
@movq@www.uninformativ.de I barely noticed đ
There are the two poles: https://www.openstreetmap.org/directions?from=48.735473%2C9.718418
Pessoal nas mesas de voto, atenção à falsa informação sobre os boletins de voto: na segunda volta haverå novos boletins, os da primeira não vão ser reaproveitados
(na minha mesa achavam que era assim)
https://cne.pt/news/2a-volta-boletins-de-voto-com-dois-candidatos_8767
@movq@www.uninformativ.de YeahâŠ
@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. :-)
@lyse@lyse.isobeef.org All that short brown grass, almost looks like Scotland. đ€ (Iâve never been there. đ )
What the heck is 06.jpg?
@prologic@twtxt.net Changed the domain of my website (except for twtxt).
@movq@www.uninformativ.de What worked? đ
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.
@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. đ )
@lyse@lyse.isobeef.org Oh, right. Forgot about that. đ«€
Well, the Atom feed entry IDs changed, too. I had to mark everything as read again.
@movq@www.uninformativ.de I still think that your original domain is cool as fuck! :-)
I didnât change any subscriptions, and I still see your messages, so whatever you did worked fine. :-)
Did it work? Am I still here? đ€Ł
@prologic@twtxt.net I think I found an easy way to redirect anything except the twtxt stuff. Thatâs probably better. đ€
I love using #ThonnyIDE, and, on Linux, I can use !pip install, !jupyter lab, and !py5-live-coding mysketch.py on the interactive shell console, I wish this would work on Windows too :(
@movq@www.uninformativ.de Right đ
So, are you guys up for an experiment?
Iâm really not happy with the domain âuninformativ.deâ anymore. Iâm going to switch to âmovq.deâ soon (or maybe something else if I get another fancy idea).
If I keep the url = field in my twtxt file, nothing should break, right? Right? đ€Ł
@prologic@twtxt.net Yup. đ
Fark me OS Dev is hard đ€Ł
@movq@www.uninformativ.de thatâs just đ đŻïž.
@movq@www.uninformativ.de infinite interaction!
./bin/mu -B -o ... -p muos/amd64 ... target.
@lyse@lyse.isobeef.org Thanks!
Wow, as I anticipated, this is waaay out of my capabilities to really understand it. But Iâm quite happy to just have spotted a mistake in an explanatory comment in section 4.5.2 âThe icode Arrayâ. Of course, it should be /e + tc + /i + ni + t\0. Letâs hope that my e-mail with the patch actually makes it into Briamâs inbox. I fear GMail just hides it in the spam folder.
@bender@twtxt.net gemini-cli, something something https://github.com/google-gemini/gemini-cli/issues/16723
I recently got an email with this byte sequence:
\xf0\x9f\x8e\x81\xf0\x9f\x95\xaf\xef\xb8\x8f
Thatâs U+1F381, U+1F56F, U+FE0F. The last one is a âvariation selectorâ:
https://unicodeplus.com/U+FE0F
My toolkit renders this incorrectly â and so do tmux and GNU screen.
Unicode ainât easy. đ„Ž
/me clones the repository, calls gemini-cli, and asks for an executive summary. Gemini-CLI replies âDonât bother!â LOL.
@movq@www.uninformativ.de Just 323 pages! Thatâs cool, letâs have a look. :-)
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Tada! Maybe one day I might look into this lowlevel stuff, too. But I canât see it on the horizon yet. Happy hacking! :-)
https://github.com/unix-v4-commentary/unix-v4-source-commentary
A comprehensive, line-by-line commentary on the UNIX Fourth Edition source code (released November 1973; tape recovered from June 1974 distribution).
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Iâd love to take a look at the code. đ
Iâm kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (”)? đ€
Canât really answer that, because I only made a working kernel for 16-bit real mode yet. That is 99% C, though, only syscall entry points are Assembly. (The OpenWatcom compiler provides C wrappers for triggering software interrupts, which makes things easier.)
But in long mode? No idea yet. đ At least changing the page tables will require a tiny little bit of Assembly.
./bin/mu -B -o ... -p muos/amd64 ... target.
Iâm kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (”)? đ€
./bin/mu -B -o ... -p muos/amd64 ... target.
Iâve only got a handful of syscalls working right now. Taking inspiration from the calling convention of the Linux kernel and even made the service/interrupt handler int 0x80h đ€Ł Iâve only got read, write, alloc and exit working righ tnow đ„Č
./bin/mu -B -o ... -p muos/amd64 ... target.
@movq@www.uninformativ.de Yes!
Did you do the whole dance with BIOS boot and everything?
Yup! Farkân LBA shit and all, loading up the GDT, TSS and switching to x86_64 long mode đ€Ł
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Damn, nice! I know exactly what you mean â the output/screenshot looks trivial, but thereâs so much going on behind the scenes. đ
Did you do the whole dance with BIOS boot and everything?
./bin/mu -B -o ... -p muos/amd64 ... target.
Whohoo! đ„ł
You have no idea how great a feeling this is! This includes the Mu stdlib and runtime as well, not just some simple stupid program, this means a significant portion of the runtime and stdlib âjust worksââą đ€Ł
Btw @movq@www.uninformativ.de youâve inspired me to try and have a good âol crack at writing a bootloader, stage1 and customer microkernel (”Kernel) that will eventually load up a Mu (”) program and run it! đ€Ł I will teach Mu (”) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.
@eldersnake@we.loveprivacy.club haha! I read as Golang the first time too. It is just the way our minds work. :-P
@kiwu@twtxt.net problems are aplenty everywhere, Kiwu. As we all know, ups and downs flare often times when we least expect them. When downs come, donât despair: nothing lasts forever, and ups will soon come, one way or another. Paâlante!
@kiwu@twtxt.net me too, me too! Thank you for sharing! đ«¶
Took me nearly all week (in my spare time), but Mu (”) finally officially support linux/amd64 đ„ł I completely refactored the native code backend and borrowed a lot of the structure from another project called wazero (the zero dependency Go WASM runtime/compiler). This is amazing stuff because now Mu (”) runs in more places natively, as well as running everywhere Go runs via the bytecode VM interpreter đ€
Could it be that Source Sans Pro changed recently? No⊠Somehow at some point âł was replaced with âč in my markdown files⊠I have no idea how this happened.
#Unicode #Typography
@kiwu@twtxt.net Always stay positive! đ
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
@movq@www.uninformativ.de I guess so, yes. I read something about that in some ticket. In v3 the terminfo support was dropped, though. Iâm still on v2 at the moment.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
@lyse@lyse.isobeef.org ⊠I sure hope that they generate these files from the general terminfo database instead of maintaining their own DB. đł
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
And tcell seems to support my urxvt in general: https://github.com/gdamore/tcell/blob/v2/terminfo/r/rxvt/term.go#L144
@movq@www.uninformativ.de Woah, thatâs really amazing progress! :-)
@bender@twtxt.net Iâm already using it for tracktivity (meant for tracking activities and events, like weather, food consumption, stuff like that), which is basically a somewhat-fancy CSV editor:
https://movq.de/v/f26eb836ee/s.png
I have a couple of other projects where I could use it, because they are plain curses at the moment. Like, one of them has an âedit boxâ, but you canât enter Unicode, because it was too complicated. That would benefit from the framework.
Either way, itâs the most satisfying project in a long time and Iâm learning a ton of stuff.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
@movq@www.uninformativ.de Yeah, I know that terminals are super weird and messy. In both the KDE Konsole (identifying itself as TERM=xterm-256color) and xterm (TERM=xterm) it just works flawlessly. My urxvt (TERM=rxvt-unicode-256color) just doesnât. I also tried messing with TERM in urxvt, but no luck so far.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
@lyse@lyse.isobeef.org Unix terminals are quite limited in that regard. đ«€ You know how Ctrl works? The XOR 0x40 thing? And Alt doesnât exist at all, itâs just a prefixed ESC byte.
I was surprised to see curses knowing about âShift+Tabâ, wondering how that is supposed to work. Well, itâs an escape sequence, of course (depending on the terminal, of course).
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
Well, in Xterm, I actually do get key combinations with the Shift modifier. Also, combinations of several modifiers just work exactly as I expect. But not in URXvt. Hmm.
@movq@www.uninformativ.de that some lovely development from the initial one. Curious to know where this will lead!
Here am I looking at the different tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace⊠:-D Yep, suddenly there went my XâŠ
So far, it appears as if I can have either only Ctrl or Alt as modifiers. But not in combination. And Shift is just never ever set at all. Interesting.
Some work on the menu system to brighten my mood a little bit. No mouse support yet.
@prologic@twtxt.net Probably not, but thanks. đ Itâll get better.
@movq@www.uninformativ.de Anything we can do? Lend a listening ear? đ
Ainda ando pasmado com o facto de uma sĂ©rie cheia de body horror, violĂȘncia contra crianças, gore e violĂȘncia gratuita (#StrangerThings) estar a ser agressivamente marketizada para um pĂșblico infantil
Ontem um amigo de 9 anos do meu filho estava a contar-me como Ă© a melhor sĂ©rie de sempre, e eu ainda estou burro de como hĂĄ miĂșdos que estejam a ver isto
Btw nĂŁo tenho problemas com a sĂ©rie (acabei ontem a 5ÂȘ temp e acho profundamente meh), Ă© este esforço em vendĂȘ-la a crianças quando Ă© claramente uma sĂ©rie 16+ no mĂnimo
@prologic@twtxt.net Work and the general state of (gestures broadly) everything.
AmanhĂŁ vou rolar uma demo de Tidalcycles no primeiro meetup de livecoding do Porto :szterminal:
@movq@www.uninformativ.de Whatâs up? hmm đ§
Frustration level: Through the roof.
tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
Ha, I just stumbled across https://codeberg.org/tslocum/cbind, perfect!
@movq@www.uninformativ.de I figure thatâs exactly what it is.
@bender@twtxt.net ICQ, yeah, I vaguely remember these times, despite I still know my ICQ number like it was yesterday. :-D
@shinyoukai@neko.laidback.moe No, itâs not dead. The one account in question actually is on jabber.org.
@bender@twtxt.net I vaguely remember this, some leftover from the old-style hashtags? The (#foo) stuff? đ€
Heh I thought I fixed that bug? (is it s abug?!)
@bender@twtxt.net it works fine under jenny. Maybe it is a bug on Yarn?
Yes, if a twtxt contains something like â(This is a test. Will this work as it should?)â, it will show empty on Yarn.
@prologic@twtxt.net it really is not blank. It reads:
2026-01-12T23:34:11+01:00 (you must be root)
This week, Mu (”) get s bit more serious and starts to refactor the native backend (a lot). Soonâą we will support darwin/arm64, linux/arm64 and linux/amd64 (Yes, other forms of BSD will come!) â Mu (”) also last week grew concurrency support too! đ€Ł
@klaxzy@klaxzy.net nothing like a blank twt eh? đ
@shinyoukai@yume.laidback.moe Jabber = XMPP.
Iâm trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:
- maybe a predefined compound key sequence, like Ctrl+A
- maybe some modifiers, such as Shift, Ctrl, etc.
- maybe a rune if neither modifiers are present nor a predefined compound key exists
Itâs hardcoded usage results in code like this:
func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyUp:
t.moveUp()
case tcell.KeyDown:
t.moveDown()
case tcell.KeyHome:
t.moveTop()
case tcell.KeyEnd:
t.moveBottom()
case tcell.KeyCtrlE:
t.moveScrollOffsetDown()
case tcell.KeyCtrlY:
t.moveScrollOffsetUp()
case tcell.KeyTab, tcell.KeyBacktab:
if t.finished != nil {
t.finished(event.Key())
}
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
t.moveUp()
case 'j':
t.moveDown()
case 'g':
t.moveTop()
case 'G':
t.moveBottom()
}
}
}
})
}
This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o
I just checked k9s and theyâre extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101
This seems to be much nicer to use. However, I fear this will break eventually. And itâs more fragile in general, because itâs rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an âextendedâ one.
I will see if I can find some other programs that provide configurable tcell key bindings.
@movq@www.uninformativ.de Sorry, I meant the builtin module:
$ python3 -m pep8 file.py
/usr/lib/python3/dist-packages/pep8.py:2123: UserWarning:
pep8 has been renamed to pycodestyle (GitHub issue #466)
Use of the pep8 tool will be removed in a future release.
Please install and use `pycodestyle` instead.
$ pip install pycodestyle
$ pycodestyle ...
I canât seem to remember the name pycodestyle for the life of me. Maybe thatâs why I almost never use it.
Pep8 is deprecated, I think
Hmm, I donât think it is, this still says âStatus: Activeâ: https://peps.python.org/pep-0008/ đ€
@lyse@lyse.isobeef.org I even got spam on ICQ, back when ICQ was a thing. I see spam as an innate thing. đ
Oh no, spam via Jabber is new for me. Fuck them!
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de @prologic@twtxt.net Thatâs what I like about Go, too. However, every now and then I really dislike the result, e.g. when removing spaces from a column layout. Doesnât happen often, but when it does, I hate it.
I think I should have a look at Python formatters, too. Pep8 is deprecated, I think, itâs been some time that I looked at it.
@kiwu@twtxt.net whatâs going on, Kiwu?
@kiwu@twtxt.net Oh? đ€ Whatâs up? Can you share? Or just having a hrd time? đ€
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de Welcome to the dark side đ€Ł
Since I used so much Rust during the holidays, I got totally used to rustfmt. I now use similar tools for Python (black and isort).
What have I been doing all these years?! I never want to format code manually again. đ€Łđ
@shinyoukai@yume.laidback.moe Hopefully, yes. Havenât tried it yet.