HACKER Q&A
📣 ZevsVultAveHera

What was the most complicated program you ever implemented on your own?


What was the most complicated program you ever implemented on your own?


  👤 hpaone Accepted Answer ✓
A "visual" component for the Kitty terminal emulator. That is, a program meant to imitate the "selection" mode in Tmux, which is also akin to Vim's visual mode. To put it simply, it allows for the selection of text in the Kitty terminal using only the keyboard, while using Nvim in the backend to process the keystrokes and do the actual text selection which I then replicate in the terminal.

Link here: https://notabug.org/paone/kitty-visual

Granted, I'm pretty sure most people here have made far more complex tools (including ones that I use on the daily). But this was not only my first "serious" program, as it also was my first Ruby program. And I was pretty proud of it when finally got it done, especially the code that allowed for calling Nvim API functions as if they were just normally declared methods.

There is probably some rough edges on it still, as I don't really use it anymore (have since switched back to using Tmux), but for a good while it saved me a lot of hassle when copy-pasting inside Kitty. And it even supports block selection, something that, as far I know, Tmux visual mode can't do.

Oh, and please don't mind the Git commit messages, as I said, I was starting out and have since adopted a much better style.


👤 overu589
ACL: the trickiest part was the surprisingly few lines of dense code that performed inclusions and exclusions of various lists (allow, deny, omit). Sure it was complicated also in the way it interfaces everywhere as seamlessly and unobtrusively while still being eminently useful.

Configuration management stack: this I got multiple cracks at throughout my time, ultimately what it sounds like. From fs through db and cache; cascading layers from defaults, installation, instance, profile, and running settings. And acts like an ordinary associative array everywhere used.

Though there are other examples of self rolling solutions for heterogeneous systems deployment (before ansible and piper).

What was most complex in all of this was keeping things in the end very simple.


👤 999900000999
My music visualizer.

Unity for the actual visualizer.

Song uploads via flutter web.

Firebase for storing content, AWS for transcribing lyrics.

I think I have 3 different programming languages in this stack. C#, Dart, JavaScript. Might have a bit of python for the aws lambdas too.

I don't know if I'd build this again today.


👤 rikroots
My 2d canvas JS library[1][2]. It has no direct package dependencies, uses no web workers or WASM code, and operates entirely on 2D canvas elements (no WebGL or WebGPU).

The most complicated part to code up was (probably) the text layout engine. But special shoutouts also have to go the filters functionality and the particle engine. Compared to those things, making the element in the web page responsive and (hopefully a little bit more) accessible was the easy part!

[1] tl;dr: "Responsive, interactive and more accessible HTML5 canvas elements. Scrawl-canvas is a JavaScript library designed to make using the HTML5 canvas element easier, and more fun"

[2] GitHub - https://github.com/KaliedaRik/Scrawl-canvas