Why have these Unicode smilies never caught on, I wonder? š¤Ŗ
š²¦š²© š²Øš²© š²¦š²§
š²Ŗš²« š²®š²Æ š²°š²±
#hivf4vq
If this user/feed is violating this Pod's (yarn.meff.me) community guidelines as set out in the Abuse Policy, please report them immediately!
You are also free to Unfollow or Mute this user or feed. Muting will also remove that user/feed's content from your view and you will no longer see content from that user/feed anywhere.
@movq does not follow you (they may not see your replies!)
Why have these Unicode smilies never caught on, I wonder? š¤Ŗ
š²¦š²© š²Øš²© š²¦š²§
š²Ŗš²« š²®š²Æ š²°š²±
(#2p27wba) The baseline here is about 55 ms for nothing, btw. Python aināt fast to start up.
$ time python -c 'exit(0)'
real 0m0.055s
user 0m0.046s
sys 0m0.007s
(#2p27wba) @lyse@lyse.isobeef.org
I assume you made the thing load quickly, didnāt you?
Thatās the problem with Python. If you have a couple of files to import, it will take time.
I want this to be reasonably fast on my old Intel NUC from 2016 (Celeron N3050 @ 1.60GHz) and I already notice that the program startup takes about 95 ms (or 125 ms when there are no .pyc files yet). Thatās still fine, but it shows that Iāll have to be careful and keep this thing very small ā¦
Python 3.14 will bring lazy imports, maybe that can help in some cases.
(#yiihgta) @prologic@twtxt.net No, thatās Python/curses on Linux. š
Well, you girls and guys are making cool things, and I have some progress to show as well. š
https://movq.de/v/c0408a80b1/movwin.mp4
Scrolling widgets appears to work now. This is (mostly) Unicode-aware: Note how emojis like āš ā are double-width ācharactersā and the widget system knows this. It doesnāt try to place a āš ā in a location where thereās only one cell available.
Same goes for that weird āƤā thingie, which is actually āaā followed by U+0308 (a combining diacritic). Python itself thinks of this as two ācharactersā, but they only occupy one cell on the screen. (Assuming your terminal supports this ā¦)
This library does the heavy Unicode lifting: https://github.com/jquast/wcwidth (Take a look at its implementation to learn how horrible Unicode and human languages are.)
The program itself looks like this, itās a proper widget hierarchy:
https://movq.de/v/1d155106e2/s.png
(There is no input handling yet, hence some things are hardwired for the moment.)
(#xwn45gq) @lyse@lyse.isobeef.org Well, I used SnipMate years ago (until 2012). IIRC, itās more than just āinsert a bit of text hereā, it can also jump to the correct next location(s) and stuff like that. Donāt remember why I stopped using it.
Then I used nothing for a long time. Just before Christmas, I made my own plugin (⦠of course ā¦), which does everything I need at the moment (and nothing more).
It can insert simple templates and then jump to the next location:
https://movq.de/v/67cdf7c827/sisni%2Dpython.mp4
And replace a string after insertion:
https://movq.de/v/67cdf7c827/sisni%2Dheader.mp4
(Itās not public (yet?) and it also uses vim9script, so I guess it wouldnāt work on your system.)
(#tackqqq) @prologic@twtxt.net Debugging this stuff on bare metal hardware (without an underlying OS) is a nightmare. š¤£
(#sd722yq) @lyse@lyse.isobeef.org That sounds useful. š¤
This was the scariest movie Iāve seen in a long time, jesus. 𤣠https://en.wikipedia.org/wiki/Fall_(2022_film)
(#j5s5khq) @lyse@lyse.isobeef.org Iām toying with the idea of making a widget/window system on top of Pythonās ncurses. Iāve never really been happy with the existing ones (like urwid, textual, pytermgui, ā¦). I mean, theyāre not horrible, itās mostly the performance thatās bugging me ā I donāt want to wait an entire second for a terminal program to start up.
Not sure if Iāll actually see it through, though. Unicode makes this kind of thing extremely hard. š«¤
(#7tsxwnq) @lyse@lyse.isobeef.org Bwahaha. š¤£
Trying to come up with a name for a new project and every name is already taken. 𤣠The internet is full!
(#kaiqxgq) @prologic@twtxt.net This is a really cool project, thatās for sure. š
(#p4hxpnq) @lyse@lyse.isobeef.org ⦠I was about to write āit really is worse where you liveā, then I heard the first bang out on the street. š¤£
(#gslvc3q) @prologic@twtxt.net Oh! š¤
(#gslvc3q) @prologic@twtxt.net That might be a challenge, at least in 16-bit Real Mode: The OS follows the model of COM files on DOS, i.e. the size of the binary cannot exceed 64 KiB and heap+stack of the running program will have to fit into that same 64 KiB. š (The memory layout is very rigid, each process gets such a 64 KiB slice.)
And in 64-bit Long Mode, there is no ākernelā yet. The thing in the video is literally just a small bare-metal program.
But some day, maybe. š
(#gslvc3q) Seeing this run on real hardware is so satisfying, even if itās just a small example. š
My little toy operating system from last year runs in 16-bit Real Mode (like DOS). Since Iāve recently figured out how to switch to 64-bit Long Mode right after BIOS boot, I now have a little program that performs this switch on my toy OS. It will load and run any x86-64 program, assuming itās freestanding, a flat binary, and small enough (< 128 KiB code, only uses the first 2 MiB of memory).
Here Iām running a little C program (compiled using normal GCC, no Watcom trickery):
https://movq.de/v/b27ced6dcb/los86%2D64.mp4
https://movq.de/v/b27ced6dcb/c.png
Next steps could include:
In case you havenāt seen it yet:
Matt Godboltās āAdvent of Compiler Optimisationsā!
https://www.youtube.com/playlist?list=PL2HVqYf7If8cY4wLk7JUQ2f0JXY_xMQm2
(#axubhsq) @prologic@twtxt.net And I froze my ass off yesterday at -5°C and strong winds. š¤£
(#xpo7apa) @prologic@twtxt.net š Merry Christmas and stuff š š
(#h2bah2a) @lyse@lyse.isobeef.org Lovely! We also just had some snow. š Not a lot, but still. š
(Lol, I totally read that as ārootfsā. š¤Ŗ)
(#h2bah2a) @lyse@lyse.isobeef.org Oooh, nice! ā We only have cold stormy weather over here. š„“
(#vmmzfia) 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.)
(#jsy4ega) @lyse@lyse.isobeef.org Thanks. š (Do I say that? The WM canāt answer. š¤£)
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. š
(#c6rrdzq) @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.
(#c6rrdzq) @prologic@twtxt.net Hm, I didnāt notice anything. Perhaps I was asleep? š
(#dddn3ja) @prologic@twtxt.net You write so much code ⦠itās incredible. š
This feels useful: Rustās Block Pattern
(#jta6w7a) @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.
(#jta6w7a) @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