Screaming into the void

Like a tweet, but more robotic

An RSS feed is available here

Most Recent Blips

Here are the 10 most recent blips:

bike – blip on 2026-03-06

Had a lovely bike ride through the rain just now; I'm quite tired, but it was fun.

stats for the bike ride: 4.14km long, max speed of 19.78kph, average speed of 8.93kph, and duration of 00:27:49

Definitely much faster than walking, and a good exercise as well.


chill – blip on 2026-03-06

I really like my corridor this year; it's a lot quieter and more chill than where I was last year, and I roughly know most of the guys here and get along with them.


yay – blip on 2026-02-26

got basic tokenisation working!

absinhcos5-67
Got input: absinhcos5-67
Tokenised input: ((undefined "ab") "sinh" "cos" (number 5) (number -67))

(for MCSP #0)

Time posted: 17:17 SAST

insane – blip on 2026-02-26

People are insane...

I really recommend giving it a watch, and staying for the translation.

Time posted: 07:07 SAST

returning – blip on 2026-02-24

And I've got return values working! Well, all except floats and pointers, which should be pretty trivial, and structures, which I don't know how difficult it'll be. But I can query the width of a Raylib window!

screenshot of a test raylib window

In the above example, I had rl-call defined as (defn rl-call (name ret () args) (call !ffi-call (cons (!ffi-sym raylib name) (cons ret args)))).

Time posted: 08:08 SAST

lisp-ffi – blip on 2026-02-24

Finally I have working ffi in rholisp! Well, almost working. Return types other than void isn't implemented, and support for floats, doubles, and pointers are not implemented either, but I have enough to open and close a window using Raylib!

> (def raylib (!ffi-load "../ffi_playground/raylib-5.5_linux_amd64/lib/libraylib.so"))
()
> raylib
(clib 94797688994320)
> (def InitWindow (!ffi-sym raylib "InitWindow"))
()
> InitWindow
(csym 139655444555879)
> (!ffi-call InitWindow () ' i32 800 ' i32 600 ' u64 0)
INFO: Initializing raylib 5.5
INFO: Platform backend: DESKTOP (GLFW)
INFO: Supported raylib modules:
INFO:     > rcore:..... loaded (mandatory)
INFO:     > rlgl:...... loaded (mandatory)
INFO:     > rshapes:... loaded (optional)
INFO:     > rtextures:. loaded (optional)
INFO:     > rtext:..... loaded (optional)
INFO:     > rmodels:... loaded (optional)
INFO:     > raudio:.... loaded (optional)
INFO: DISPLAY: Device initialized successfully
INFO:     > Display size: 1920 x 1080
INFO:     > Screen size:  800 x 600
INFO:     > Render size:  800 x 600
INFO:     > Viewport offsets: 0, 0
INFO: GLAD: OpenGL extensions loaded successfully
INFO: GL: Supported extensions count: 233
INFO: GL: OpenGL device information:
INFO:     > Vendor:   Intel
INFO:     > Renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
INFO:     > Version:  4.6 (Core Profile) Mesa 25.3.5-arch1.1
INFO:     > GLSL:     4.60
INFO: GL: VAO extension detected, VAO functions loaded successfully
INFO: GL: NPOT textures extension detected, full NPOT textures supported
INFO: GL: DXT compressed textures supported
INFO: GL: ETC2/EAC compressed textures supported
INFO: PLATFORM: DESKTOP (GLFW - X11): Initialized successfully
INFO: TEXTURE: [ID 1] Texture loaded successfully (1x1 | R8G8B8A8 | 1 mipmaps)
INFO: TEXTURE: [ID 1] Default texture loaded successfully
INFO: SHADER: [ID 1] Vertex shader compiled successfully
INFO: SHADER: [ID 2] Fragment shader compiled successfully
INFO: SHADER: [ID 3] Program shader loaded successfully
INFO: SHADER: [ID 3] Default shader loaded successfully
INFO: RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)
INFO: RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)
INFO: RLGL: Default OpenGL state initialized successfully
INFO: TEXTURE: [ID 2] Texture loaded successfully (128x128 | GRAY_ALPHA | 1 mipmaps)
INFO: FONT: Default font loaded successfully (224 glyphs)
INFO: SYSTEM: Working Directory: /home/ruan/Documents/programmeering/c/rholisp
()
> (!ffi-call (!ffi-sym raylib "CloseWindow") ())
INFO: TEXTURE: [ID 2] Unloaded texture data from VRAM (GPU)
INFO: SHADER: [ID 3] Default shader unloaded successfully
INFO: TEXTURE: [ID 1] Default texture unloaded successfully
INFO: Window closed successfully
()
>
screenshot of the above code running, creating a blank raylib window without a title

Above you can see a demonstration of the current ffi capabilities

Time posted: 07:07 SAST

almost-ffi – blip on 2026-02-23

I've been working a few hours a day to get a foreign function interface implemented for rholisp, and at last I have something which can load a library, find a symbol in said library, and parse (at least in theory) the arguments and return type for the function. All that remains is to call it!

> (!ffi-load "libm.so.6")
(clib 94310737492496)
> (def libm _)
()
> (!ffi-sym libm "sin")
(csym 139683202493344)
> (def sin _)
()
> (!ffi-call sin ' i64 ' i64 1024) ; yes, this is incorrect, but floats will trigger an assertion for now, so I'm just going to pretend it takes and returns integers
Calling function 0x7f0a87aa6ba0 with 1 arguments...
()
> (!ffi-unload libm)
()
>

Above is some output demonstrating a seemingly working implementation

Time posted: 23:23 SAST

libffi – blip on 2026-02-21

Finally got a working command-line interface for interacting with dynamically loaded libraries! Inspired by a tsoding video I watched a few months ago.

screenshot of a test raylib window

Time posted: 13:13 SAST

done – blip on 2026-02-20

And finally I have a preliminary working implementation of blips! We'll see if and how much I use this...
Honestly, I might just use it quite a bit, but just update the website every second or third day.

...and now I wanna make an rss feed for this. That'd be fun. But who's gonna subscribe to essentially just the one dude's tweets? Idk. Probably nobody's gonna subscribe to my blog either, so I might as well

Time posted: 16:16 SAST

hi – blip on 2026-02-19

hello world

Time posted: 17:17 SAST