@movq@www.uninformativ.de well, emojis in the TTY (as in, what weāre used to now, not actual teletypes) are simply rendered as tofu boxes or not at all
@movq@www.uninformativ.de thatās a huge no about the last part, but you know what will happen?
The 20th anniversary of the Haruhi Suzumiya anime series, thatās what!
(Also I was told YOTLD was actually 11 years ago and everyone joining it after that is pretty much late)
@lyse@lyse.isobeef.org I havenāt spoken to a single person yet who was a fan of all this. Not even the more conservative family members.
Some people have detonated several really loud bombs yesterday. This wasnāt a āBƶllerā. It shook my walls, doors, windows. Family members in other parts of the country reported the same ⦠Is this a new trend?
@javivf@adn.org.es Happy New Year! Letās hope so. š
Itās that time again, Iāve just rotated my #twtxt feed!
Find last quarterās twts at the feed, or see them on the web.
fib(35) doesn't regress too badly as I continue to evolve the language.
@lyse@lyse.isobeef.org Itās actually not nearly as half bad as I really thought it would be. Just having to eventually deal with the ālowering downā to machine code / ARM64 assembly in the end once youāve verified the semantics in the VM.
fib(35) doesn't regress too badly as I continue to evolve the language.
@prologic@twtxt.net Not bad for a start, ey! Looking forward to see you going down these rabbit holes and opening one can of worms after the other. :ā-D Very, very impressive, hats off to you. :-)
println("Hello World"):
@lyse@lyse.isobeef.org A āHello Worldā binary is ~372KB in size. I currently have peephole optimization and deac code optimizations in play, and a few other performance related ones, but nothing too fancy. I have a test case that ensures fib(35) doesnāt regress too badly as I continue to evolve the language.
@prologic@twtxt.net Can you just make them optional? :-) But that of course complicates things.
println("Hello World"):
@prologic@twtxt.net Thatās impressive. How large are the resulting binaries? You donāt have any optimizations in place yet, do you?
@movq@www.uninformativ.de I hid in the workshop with earmuffs for the absolute worst part.
@javivf@adn.org.es Heck yeah, letās do this! :-) Welcome to 2026.
println("Hello World"):
@prologic@twtxt.net Not bad. š
@prologic@twtxt.net Anything by Charlotte de Witte. š For example:
@shinyoukai@neko.laidback.moe Happy New Year to you too! š„³
@movq@www.uninformativ.de This is fuckān great shit⢠Where did you find this? š¤ Got any more shit⢠like this? š
@dce@hashnix.club Happy New Year to you too! š„³
@ionores@twtxt.net Very nice! š Happy New Year to you too!
@lyse@lyse.isobeef.org Ooh, lovely! š
Iām drowning the noise with this: https://www.youtube.com/watch?v=tgivYC2s6hs š
@shinyoukai@neko.laidback.moe We finally abandoned our GitLab. I publicly mirrored my code in the Mills Data Center a few days ago: https://git.mills.io/lyse/tt2
@movq@www.uninformativ.de Well, just a very limited subset thereof:
- inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
- markdown links using using
[text](url)
- markdown media links using

And thatās it. No bold, italics, lists, quotes, headlines, etc.
Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. Theyāre also colored differently, similarly to code segments.
I definitely should write some documentation and provide screenshots.
tt that was bugging me for a long time. Previously, when there were empty lines in a markdown multiline code block, the background color of the code block had not been used for the empty lines. So, this then looked as if there were actually several code blocks instead of a single one.
@lyse@lyse.isobeef.org You actually have a Markdown parser/renderer in there? Oh dear. I would have been (well, I am) way too lazy for that. š
@prologic@twtxt.net Happy New Year š„³š
@lyse@lyse.isobeef.org Do you have your clientās code hosted anywhere?
@lyse@lyse.isobeef.org ā¢Ģā Ā ā Ā ā āæā Ā ā ,ā ā¢Ģ
@movq@www.uninformativ.de Because theyāre just boxes. :-D
@movq@www.uninformativ.de Yeah, I see. Just crudely checked on my computer, with around 0.013 seconds, Python 2.7 seems a tad faster than Python 3.14ās 0.023 seconds in this little program.
The lazy imports sound not too bad, but I just skimmed over them. There are surprisingly many exceptions, but yeah, no way around them. :-)
@movq@www.uninformativ.de Mu (µ)ās startup latency appears to be ~10ms on my machine:
$ time ./bin/mu ./foo.mu
real 0m0.011s
user 0m0.004s
sys 0m0.006s
@lyse@lyse.isobeef.org to be fair, thatās nothing, really
the logo used to be way larger and occupied the entire header, up to obfuscating the menu at my computerā¦
I do have a nitpick though, the logo isnāt transparent so it will look off in dark themes.
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.
I can track usersā feeds now
@prologic@twtxt.net Iād happily write API documentation for go.yarn.social/client
@movq@www.uninformativ.de the āwriting a Yarn clientā thought goes all the way back to my ānovaburstā days in Yarn.social, but with the other pod apparently being gone, thereās no proof of it, except on everyoneās minds.
@movq@www.uninformativ.de Thatās cool! I also like the name of your library. :-) I assume you made the thing load quickly, didnāt you?
@prologic@twtxt.net No, thatās Python/curses on Linux. š
@movq@www.uninformativ.de Is this on yout little toy OS? š¤
Btw, @shinyoukai@neko.laidback.moe, thatās a super cool logo on your yarnd. I like it a lot!
It just doesnāt look aligned properly:
Could be a yarnd issue, though, it might not expect a logo this large. Just wildguessing, no idea.
git add everything!? Is it not enough for the file(s) to be already checked in from the get go?
@shinyoukai@neko.laidback.moe Because you might not want to commit all changed files in a single commit. I very often make use of this and create several commits. In fact, I like to git add --patch to interactively select which parts of a file go in the next commit. This happens most likely when refactoring during a feature implementation or bug fix. I couldnāt live without that anymore. :-)
If you have a much more organized way of working where this does not come up, you can just git commit --all to include all changed files in the next commit without git adding them first. But new files still have to be git added manually once.
@shinyoukai@neko.laidback.moe Do we now need ad filters in twtxt clients, too? O_o I hope not! Personally, I cannot stand the āSent with my crappy $phone/$appā e-mail footers.
But congrats on your client. :-)
os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
@shinyoukai@neko.laidback.moe Yeah, they donāt truly support XDG. In fact, I looked in the Go stdlib source code to notice all the differences and shortcomings.
os.UserCacheDir(), it seems that the Go devs hasn't acknowledged the $XDG_DATA_DIR yet
@lyse@lyse.isobeef.org You could always take a peek at the Go source
Posted from mikuru/0.0.3 @ NetBSD amd64
os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
@lyse@lyse.isobeef.org the funny thing about it? Thereās os.UserCacheDir(), it seems that the Go devs hasnāt acknowledged the $XDG_DATA_DIR yet
@shinyoukai@neko.laidback.moe Cool, I didnāt know about os.UserConfigDir() up until a few seconds ago! I always implemented that myself.
@movq@www.uninformativ.de Thanks! Iāll have a look at SnipMate. Currently, Iām (mis)using the abbreviation mechanism to expand a code snippet inplace, e.g.
autocmd FileType go inoreab <buffer> testfunc func Test(t *testing.T) {<CR>}<ESC>k0wwi
or this monstrosity:
autocmd FileType go inoreab <buffer> tabletest for _, tt := range []struct {<CR> name string<CR><CR><BS>}{<CR> {<CR> name: "",<CR><BS>},<CR><BS>} {<CR> t.Run(tt.name, func(t *testing.T) {<CR><CR>})<CR><BS>}<ESC>9ki<TAB>
But this of course has the disadvantage that I still have to remove the last space or tab to trigger the expansion by hand again. Itās a bit annoying, but better than typing it out by hand.
@movq@www.uninformativ.de Vim 9 (script) From Outer Space
@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.)
lldb or gdb š
@prologic@twtxt.net Debugging this stuff on bare metal hardware (without an underlying OS) is a nightmare. š¤£
@movq@www.uninformativ.de Yeah. I had that in my Python implementation and was really missing that.
@movq@www.uninformativ.de I see. Yeah, all the Unicode stuff certainly doesnāt help here, thatās for sure.
Maybe āspeedcursesā could be a name. Or just select any Palatinate curse. ;-)
lldb or gdb š
@prologic@twtxt.net Oh yeah, I bet it is horrible to troubleshoot.
tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:
@lyse@lyse.isobeef.org That sounds useful. š¤