about me
I do systems programming and web development (devops/fullstack). In short, I like lower level languages, but I can also center a div. I daily drive mutliple Linux distros (currently NixOS and Arch), and Vim (neovim) as my IDE, check my dotfiles below to see my configurations. I also indulge in DIY split keyboards as a side hobby.
Interested in FOSS, webdev or split keyboards? Let's chat.
// contact
- email: him@nugs.top
- github: @arsmoriendy
projects
Click on any of these badges to filter tags (click here to reset filters):
// pretfs
[ 1] mountpoint/ ├── [ 3] #Documents │ ├── [ 6] downloaded-document.pdf │ ├── [ 5] #Downloads │ │ ├── [ 6] downloaded-document.pdf │ │ └── [ 7] Images │ │ └── [ 9] img.png │ └── [ 7] Images │ └── [ 9] img.png ├── [ 2] #Downloads │ ├── [ 4] #Documents │ │ ├── [ 6] downloaded-document.pdf │ │ └── [ 7] Images │ │ └── [ 9] img.png │ ├── [ 6] downloaded-document.pdf │ └── [ 7] Images │ └── [ 9] img.png └── [ 8] Images 10 directories, 8 files
Prefixed tag based, hierarchic file system.
A file system in userspace (FUSE) implemented in Rust that allows better semantic categorization. File content and metadata is stored in an SQLite database. Prefixing directory names (e.g., #) allow files to be accessed through any directory with the same name throughout the entire file system. Nested prefixed directories represent semantic tag intersections.
// phantomports

Lookup unregistered ports.
Caches IANA's ports registry every x minutes. Useful when choosing which port you want to host your project on, ensuring no port conflicts with other running services. The subsequent and previous unregistered ports (if any) is shown for every request in the web app. The backend is written in go, exposing a graphql API. The frontend is a simple React SPA hosted with Github pages that fetches the API on every request.
// themata

A canonical theme registry with dynamic formats and schema.
The web frontend is written using solidjs, while astro is used as a meta-framework. Users can login using their Github account using Github's oauth2 API. Themata also has a REST API written in rust, and fetches from a serverless postgres database hosted on neon. A redis cache is used to aggregate view counts periodically.
// dotfiles

A collection of my configuration files.
At the time of writing this, I am running NixOS on my t480 laptop and Arch on my desktop. I use sway as my window manager along with many other smaller components to facilitate my desktop environment.
// mato

A TUI pomodoro timer.
Just another terminal pomodoro timer with dynamic timers and cross-platform desktop notifications. Written in rust using ratatui as an immediate mode TUI framework.
// glass crkbd

A transparent RGB split keyboard with an OLED display.
My first split keyboard, the corne cherry keyboard with a transparent case. A usb-c pro micro knock-off is used as the microcontroller, which unfortunately stopped functioning correctly after a year or so. The OLED display on the right shows capslock, wpm, and layer mode; whilst the left one shows the key that is being pressed on every keystroke. Maybe OLED wasn't the best idea for semi-static indicators, since after a lot of usage "burn-in" starts to set in, and parts of the display were brighter than the others. Also, I didn't like how bright it gets at night, because of the RGB LED under every key, plus 6 underglow RGB LEDS on each side and in addition to its transparent case. All the reasons why I switched to my next split keyboard, the frost piantor.
// frost priantor

A blue on white split keyboard, with 3 RGB LED indicators on each side.
Learning from my past mistakes; the glass crkbd, I tuned down the unnecessary light noise (i.e., the OLED display and most of the RGB LEDs) down to 3 LED indicators on each side. The blue LED serves as a caps lock indicator, the red one indicates power, and the bottom RGB maps a color to represent each layer. Compared to crkbd, this keyboard provides a more aggresive pinky stagger, which improves typing ergonomy a little bit. Most parts of this keyboard were 3d printed. The plates and cases for each side were FDM printed, whilst the keycaps and the mcu cover were SLA (resin) printed to achieve higher precision. However, I think this keyboard can be improved. Mainly, the choc brown switches are to heavy, and the slight tilt of the top and bottom KLP Lamé keycaps makes every keypress an awkward, vertically non-straight-forward movement.