Posts
5488
Following
346
Followers
543
.

Jarkko Sakkinen

Vim 9.2 :----) let's go...

The lightline theme called (drumroll) monochrome is the only theme I've ever made.
0
0
1

Jarkko Sakkinen

Edited 13 days ago
There it is: the AI monster.

Grace Blackwell is the cultural icon of this decade delivering the slop.
0
0
0

Jarkko Sakkinen

has been a long time, at least two years, but making some music with bitwig. let's see what this turns into :-) just early drafting...
1
0
1

Jarkko Sakkinen

I like spreadsheets. They are a great help for figuring out stuff. For Google's services I use exactly the spreadsheet, Keep and YouTube, and that's it.

I've been wanting a TUI spreadsheet for a while but I only recently found sc-im. This is superb :-)

I need to figure out at some point how can I replicate something like GOOGLEFINANCE with Lua scripting capabilitie. I use it all the time in Google's spreadsheet.
0
0
1

Jarkko Sakkinen

Edited 14 days ago
I'm developing my own ostree and BuildRoot based operatingy system:

- https://codeberg.org/puu
- There will be puu-desktop and puu-llm builds.
- puu-desktop uses ext4.
- puu-llm uses ext4 + xfs for the models.
- puu-llm hosts k3s, llm-d and generally very latest of stack for running local LLM modesl.
- GNOME build is tough and I'm working on it but I have plan how to make in happen on BuildRoot.
- Given being BR2_EXTERNAL, builds and configures with beloved kbuild :-)

Despite having puu-llm build this project disregards AI contributions.

That said. I don't see it as a crime that you generate some initial code with LLM.

I do that sometimes too especially when I need to get an idea of e.g. alien projec. However, usually I do also spend week or few applying hard manual labor to make the actual code change I want to do despite having some random slop that functionality fits the bill.

This is what I do accept but it is generally best just to say plain no in README.md as most people will likely not be able to do such weighting.

[The logo image artwork is copyrighted by me (drawn with Inkscape) and licensed with CA BY-SA 4.0]
1
0
2

Jarkko Sakkinen

can browse also inside archive files
0
0
1

Jarkko Sakkinen

Edited 28 days ago
Mind the overlapping scrollbar but looks every day more polished.

As can be figured out from screenshot, despite Ranger-alike appearance, this does not share vim-like navigation but instead has prompt always at bottom and mc-style shortcuts.

I'm a heavy vim-user myself but having less speedrun-logic in the file manager gives my brain a healthy context switch. Managing files should not be done in fast turns anyhow :-)
0
0
2

Jarkko Sakkinen

PDF viewing is till very experimental and broken feature but getting there...
1
0
1

Jarkko Sakkinen

Edited 1 month ago
Caffeine Commander (ccd) is a terminal file manager written in C, based on non-blocking file I/O.

All I/O operations are asynchronous, and UI and CPU tasks share a single thread, making the most of the available resources :-) And this obviously minimizes context switch latency while at it.
1
0
3

Jarkko Sakkinen

Edited 1 month ago
For caffeine command the only included themes are Catpuccin variations, as it fits to the brand :-)

It uses https://codeberg.org/jarkko/nippu to bundle the default themes. I hate dangling files at ../share.

Started to post about ccd because it suddenly starts to look like an app. Has been totally unintentional and off-topic project :-)

Powered by C.
0
0
1

Jarkko Sakkinen

leveled up my localhost git hosting from ssh-to-NAS to separate git-account and forgejo :-)

life quality++
1
2
4

Jarkko Sakkinen

xterm - still holding it ;-)
0
0
1

Jarkko Sakkinen

Edited 1 month ago
Pakki - a sample browser i'm putting together :-) it has also AI and interference run with CPU/GPU (works fine on my X390 Thinkpad).

The only AI app I've made so far...

If there's a magic button that generates all the code in the world, I can only assume that everyone is pushing that button. How I adjust my focus on topics such as AI is to look into smaller scale not as crowded areas such as local AI, which has the similar optimization challenge as all optimization challenges I love :-)

1. pfffft for FFT
2. libonnxruntime for inference
3. https://github.com/LAION-AI/CLAP/ for epoch models.
0
0
1

Jarkko Sakkinen

I’ve had so much fun with the 486 SX-33 lately that I haven’t even touched the Switch 2 I got over the weekend.

I’m putting together a devkit for the MiSTeR FPGA ao486 core, and more generally an environment for retro game and demo-style projects. Toolchains in this space have been fairly grim so far: DJGPP, Turbo C++, or Watcom C/C++.

AO486 DEVKIT
  • GCC and LLVM support. COM output is supported through a linker script, and EXE output is supported as well. A Lua script prepends an MZ header to the EXE.
  • A chain loader switches to protected mode and loads the program into extended memory.
  • Rather than relying on DOSBox or 86Box, I tuned QEMU very carefully. It now feels surprisingly close to the ao486 core in practice.
  • If this were a 386 SX devkit, I would probably have gone with flat real mode or so-called “unreal mode”. On a 486, though, the 0x66 and 0x67 prefixes used for 32-bit instructions already eat into performance on what is still a fairly modest CPU. The pipeline is only 16 bytes long.
  • There is a small proof of concept included, but only the bare minimum. I’m saving the more interesting material for my own retro projects. The idea is to provide a blank canvas built on a much better SDK.
  • 486.md covers 486-specific assembly optimisation details. In practice, it is quite a different beast from either a 386 or a Pentium. This is the sort of material that is fun to read on its own, so it felt worth writing.
  • The package includes the Unscii font, apparently pulled from GitHub, though I can no longer find the exact source URL. The original project is here: http://viznut.fi/gfx/fonts/
  • It also includes tmodplay, a MOD player. Unfortunately, the Sound Blaster 16 implementation in ao486 is pretty awful. For that era of PC hardware, the only really good option was the Gravis Ultrasound.
  • The target configuration has 16 MiB of RAM. That would have been an unusual combination back in the day, but those are the ao486 defaults, so I’m leaning into a kind of retro-modern setup. The other default was some completely absurd number.
  • There is also a proof-of-concept demo with a four-layer parallax scroller and various informational texts.

I’m not really a game or demo developer myself, but I can at least provide much better SDKs, so I felt like fixing one long-standing problem in the retro scene. It is released under the MIT license so people can do whatever they like with it.

I should also check whether that FPGA core supports VESA 2.0, because that would allow 320x240 with chunky pixels. VESA 1.x was awful.

#Intel #486 #ao486 #MiSTeR #FPGA

1
0
2

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
In 2024, Octamed 8 was released after 25 year break. It's pretty amazing, at least to me, that there can be 25 year gap, and still have a vibrant and loyal following and committed user base.
1
0
1

Jarkko Sakkinen

This my main UI reference or something I will taken now a lot of inspiration from at least because Octamed is superb and nice to use. And stands time just like Vim :-)

1. Octamed was made by a Finn Teijo Kinnunen.
2. Had major share on invention of such electronic music genres at their epoch such as breakbeat, jungle and drum'n'bass.
3. Still widely used as it does the job and has predictability unreachable on a signal chain with adaptive latency prevention algorithms, and especially with hardware samplers and such this makes ones life better.
4. I like it too a lot, it's great for what it does :-)

That is next 6 months at least because I want my tracker to level that I can do a full track with no other tools, and it is surprising how bottomless pit different usage patterns are (and not necessarily bugs, something just works or doesn't). And now that I actually have really good design and implementation for the engine it makes me less eager to less, it's fun to try things out :---)

#octamed #amiga
2
0
4

Jarkko Sakkinen

Edited 2 months ago
Tracker will take some time and especially since I'm doing C rewrite, which is right now completely broken (literally a start from scratch).

However, the elegant C implementation will motivate me more as a developer as I enjoy it more, and thus will eventually get the project there.

With Rust implementation I know I would give up at some point. E.g., in this type of project you want to leave space for downscaling to very low-end computers, and more towards 80s/90s hardware we go, more opcodes cost relative to memory access costs. Thus I don't want compiler to do any memory safety stuff for instance. Software must have full control of generated opcodes.

The code base looks in style a lot like kernel code and utilizes its popular patterns such as ops structs and container_of macros. And coding style is of course kernel coding style.
1
0
0

Jarkko Sakkinen

Edited 2 months ago
Old school file browsing experience :-) Rendered as a single GLSL shader program (except top and bottom bar). There's now 1:1 correspondence between shader programs and screens. Most importantly this stabilizes latency for each tick in audio playback (smaller CPU time variance).

#tracker #polyend #chiptune
0
1
0
Show older