Krzosa Karol :: Linkedin | Github

Hi, I'm a programmer from Kraków, Poland. Feel free to shoot me an email: krzosa@pm.me, I'm usually happy to talk about stuff, even if I don't know you!


Demo :: Editing 1GB+ files in my text editor

250 million columns, 2.5 milion lines and 0 problems.

Tool :: JBlow video browser

I made a small tool that allows you to browse through everything that was said over 100s of hours of Jonathan Blow's streams and videos (works only on PCs, no idea how to make mobile popup the keyboard):

Demo :: Transcript browser

Browsing over 500 hours of lectures at lightning speed. Warning: sudden sound!

Demo :: Data visualization tool

Visualizing program data, the data points are sent from a running program (through shared memory) to the plotting app.

Tool :: Single header library search

Small javascript tool that converts a markdown table of single header C libraries with a permissive license into a fuzzy searched list.

Demo :: Multi-cursor text editor

Demo :: Programming language | Online playground

Small, statically compiled, embeddable language. Here is a small code snippet:

import "raylib";

main :: proc(): int {
    InitWindow(800, 600, "Thing");
    SetTargetFPS(60);

    for !WindowShouldClose() {
        BeginDrawing();
        ClearBackground(RAYWHITE);
        DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);
        EndDrawing();
    }
    CloseWindow();
    return 0;
}

Demo :: Optimized software rasterizer

I got inspired by Handmade Hero and decided to do a fun CPU rasterization project. Code is public. It uses AVX2 instructions and multi threading and the result is that you can walk at 30FPS/1080P through the Sponza palace. A little of that 90s game development vibe.

Demo :: Path finding visualizer

I wanted to write a little something with my programming language before I abandon it. So I wrote a small path-finding visualizer:

Demo :: Rendering 2 million circles

Here in the video I'm presenting a result of optimizing my OpenGL renderer. It can render 2 million circles, 36 triangles per circle, couple times per second. For reference if you tried plotting 2 million points in python/matplotlib you would have died of age before the plot got rendered.

Demo :: Programming language overview

When I was looking for a job I decided to make a showcase video of the programming language I was working on. It goes over bunch of examples, programs and features. At this point the language is abandoned but it was a pretty cool project.

Library :: args.h

Single header argument parser for C in the style of python argparse module.

args_t args = {
	.program = argv[0],
	.description = "this program does very cool things on many files and outputs it somewhere",
	.epilogue = "it also shows cool epilogue text in it's help",
};
args_add(&args, (args_desc_t){"filenames",         .nargs = "+"                            });
args_add(&args, (args_desc_t){"--output",    "-o"                                          });
args_add(&args, (args_desc_t){"--force",     "-f", .store_value = "1", .default_value = "0"});
args_add(&args, (args_desc_t){"--help",      "-h", .store_value = "1", .default_value = "0"});
args_parse(&args, argc, argv);
    
const char **filenames = args_get(&args, "filenames");
const char **output = args_get(&args, "--output");
int force = atoi(args_get(&args, "-f")[0]);
int recursive = atoi(args_get(&args, "--recursive")[0]);
int help = atoi(args_get(&args, "--help")[0]);

if (help) {
	args_print_help(&args);
	return;
}

// ..

for (int i = 0; filenames[i]; i += 1) {
	// ..
}

Demo :: Generics, programming language demo

Stepping through generics (templates) implemented in my programming language.