Posts
5492
Following
347
Followers
543
.

Jarkko Sakkinen

Edited 1 month ago
I created a shitty Python script in 2011 for indexing my photos and it has stuck intact since.

Since I'm finding myself using the same script I created a new C version with:

- xxhash32 hashing. Previous had md5, which was not great choice. I dropped the support.
- For JPEG content hashing instead of opaque file hashing.
- For CR2 still file hashing but I will change this soon.
- cp alike semantics and behaviour. Skips on collision (instead of overwriting).
- I created Debian packaging files but no energy to move this forward.
- Neither sys_read nor sys_write calls ;-)

Not actually proud of the last bullet.

There's this weird "tape drive cult" still going on strong in the user space.

Now the torch has been taken by the agents and they carry worst of the 70s to the future generations and onward.

Future plans in less than five years:

1. Fix content hashing for CR2.
2. smb:// (with libsmbclient)
3. ssh:// (with libssh)

I'll put out my old backup tool adhoc-backup also out again. It was originally in bash but out of curiosity wrote the new version with Zig. It's not great but I use it all the time and release it soon'ish :-)
0
0
1

Jarkko Sakkinen

I don't know why I did not like it before but finally found a companion for mc: nnn :-)
0
0
0

Jarkko Sakkinen

It will be painful experience to switch my root 4096-bit RSA PGP key so better to time it for quantum safety.

What is the quantum safe mainstream PGP key type, which would be also kernel.org compatible pick?
0
1
1

Jarkko Sakkinen

Edited 2 months ago
MS-DOS indie gamedev, demoscene and similar "oldschool" forums usually recommend one of these options:

1. DJGPP
2. Turbo C++
3. Watcom C/C++

I possess MiSTeR FPGA with ao486 core so thought that would be a cool target to play a bit with but I need a development environment.

So... I created a development kit repository, providing tools to create MS-DOS COM an EXE files with the current GCC. It also provides ao486-simulation configs for dosbox-x and x86box. Finally it has a QEMU launcher emulating 486 SX 33 MHz, which matches ao486.

And yes, it's GCC + GAS thing plain and simple. I'm not really familiar with nasm etc. Before GAS it was TASM (Turbo Assembler) :-) Important thing here is that it has a C orchestrator and does not require FASM to provide MZ stub.

AKA edit-compiler-run delivered :-)

As a test run I have a test program does only some silly graphics but does give 486 a good test run given that:

1. 486 optimized codebase with a mentionable portion assembly (and I really did enjoy this).
2. Weird display mode in 320x240 256 color resolution and page flpping.
3. Configures memory to flat realmode (aka "unreal mode") and piggybacks lua-precalculated texture and palette to an additional .rodata_32 section.

Will be out in the foreseeable future...

#MiSTeR #FPGA #Ao486 #DOS #486
0
2
6

Jarkko Sakkinen

Edited 2 months ago
It's incredibly slow progress to get this basic UI stuff ongoing for a daw. That said, this will pay back with complex UI views daws tend to have such as track mixer and arrangement.

I've played mindgames what if I would leverage cairo or similar library, and really weighted that option with critical mindset. Then when looking deeper I cannot really guarantee same way latency as if I control rendering surface. The quality of the whole app would suffer by a factor.

Finally, a DAW can have however many data points on display animating at the same time, which is already with custom UI framework a technical challenge to render properly.

Based on these conclusions I rather spend hour or two a day doing basic UI stuff from scratch with no progress for few weeks, month or even longer than do that. It's sucks now but conditions at least increasingly will get better.

Leveragng feels attractive at first but is a route where conditions will only get increasingly worse.
0
0
2

Jarkko Sakkinen

It's awkward but all "similarity search" type of thing options are actually really bad. So I'll do my audio sample indexing engine. I.e. a search like e.g., in Splice.

It's not very complicated to do a basic one, and it can be easily implemented first as a separate application.
0
0
0

Jarkko Sakkinen

OK so you can without v4l2loopback.

Smoke test:

gst-launch-1.0 \
    videotestsrc ! \
    video/x-raw,format=YUY2 ! \
    pipewiresink mode=provide \
    stream-properties="properties,media.class=Video/Source,media.role=Camera"

iPhone/Airplay:

uxplay -vs 0 -vrtp "config-interval=1 ! udpsink host=127.0.0.1 port=6000"

gst-launch-1.0 -v \
  udpsrc port=6000 caps="application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96" ! \
  rtph264depay ! decodebin ! videoconvert ! \
  video/x-raw,format=YUY2 ! \
  pipewiresink mode=provide \
  stream-properties="properties,media.class=Video/Source,media.role=Camera,node.description=iPhone Camera"

Test page used: mozilla.github.io/webrtc-landing/gum_test.html

In Firefox the config option youโ€™re looking for is called media.webrtc.camera.allow-pipewire.

3
1
2

Jarkko Sakkinen

Does kernel.org have Matrix? This use would be really mainly for kernel stuff.

And actually if I want personal Matrix, I'd like to create a separate one for that.
1
0
1

Jarkko Sakkinen

RISC-V with MMU has neither complete spec: https://marcin.juszkiewicz.com.pl/2026/03/10/risc-v-is-sloooow/
0
0
0

Jarkko Sakkinen

Edited 2 months ago
For open source to surive, I think there should be radical shift towards wider use of copyleft licenses. This is the reality now, and it is better to accept it. And BTW, I was never a huge GPL advocate before.

How to tackle this with Rust and especially cargo, is an open question that needs to be resolved.

Throwing one potential solution: theoretically cargo could detect LGPL in dependency chains and make DSOs of these crates, which would be piggybacked into a virtual filesystem in the executable.

I'm not sure tho does that still comply for LGPL 2.1 when used e.g., in proprietary context.

There's also ABI work ongoing to get a stable DSO ABI for Rust but perhaps distribution problem could be resolved without resolving the ABI problem?
2
1
4

Jarkko Sakkinen

I totally get now why Logic Pro is AU-only. Having multiple plugin hosts in a DAW has devastative effect on latency compensation.

By having only CLAP latency compensation becomes a problem, which is elegant to resolve, not least because the standard has this inevitable reality recognized and addressed.

Thus, in my world everything is CLAP :-)
0
1
0

is dropping pcr-oracle in Full Disk Encryption . systemd-pcrlock now handles policy, fixing rollback attacks and simplifying maintenance. Migration is just two commands! ๐Ÿ”’๐Ÿง Find out more. https://news.opensuse.org/2026/03/11/dropping-pcr-oracle/

0
5
0

Jarkko Sakkinen

It has finally crystalized me what I'm really doing with my leisure time activity since early Fall :-)

"A Linux-focused DAW built from scratch around its own desktop-like UI, deterministic rendering and input handling, a CLAP-only plugin architecture, and persistent CoW snapshot-based history โ€” all aimed at delivering extremely accurate low-latency behavior and eventually industry-leading audio/MIDI routing."

It makes total sense to me now that it is on paper.

#linux #audio #dsp #musicproduction
1
1
8

-0.8309720144822054 + -0.18479928945814048i at zoom 1.1482443609e+12.

0
2
0

Jarkko Sakkinen

Last glitches fixed. I've fully realized a binary DAW project format, which does not have concept of "saving" or "backup files".

Combining the best features of tracker modules and modern developments of file system snapshots. I like how opposite poles these topics are but this actually works :-)
0
0
2

Jarkko Sakkinen

daw making is sick if you get into it. like model railroads type of madness.

i find myself happily making little knob and slider widgets to my UI framework for the use of my clap plugins. and still not bored.

I did read some recentish publications on latency compensaiton, studied clap, and realized that if I fix up to everything is clap I can make things sync really well. Worts case is when you have multiple hosts and bridges and whanot.
0
0
1

How much water do the data centres use? It's a secret.

Do you want Immortan Joes? Because this is how you get Immortan Joes. Roanoke gets its drinking water from Carvins Cove Reservoir. The locals tried to find out just how much water Google would be...
https://jwz.org/b/yk4G

2
7
0

Jarkko Sakkinen

Edited 2 months ago
My new guidelines for a new open source project in 2026:

1. Do not publish your test suite.
2. Delay the initial public repository as far away towards future as possible.
3. Do not aim for cross-os portability. Aim for cross-os non-portability.
4. Do not provide any other documentation except minimal man page and README. Less detailed documentation is better documentation.

In my DAW project I apply these best practices and levaraging Pipewire and Linux without any shim layers and at full scale will address the bullet three :-)
0
1
1

Jarkko Sakkinen

Dropped macOS/CoreAudio support from my DAW because of limited time and I want to see what you can accomplish with Linux-exclusive e.g., by taking full advantage of syscalls and Pipewire. Cross-architecture on the other hand is a high priority.
0
0
0
Show older