# Projects Of all the peojects I've made over the years, not many deserve their own standing blogpost either because (a) it is too ephemeral and a thread of 512-character long microblogs is enough or (b) it is more fitting to write proper documentation for it instead (ironic when I build my blog with MkDocs). But the few that do, are here. Projects below are sorted reverse chronologically (most recent first). ## [Reflow Workshop: A Journal](reflow-workshop) I'm working on it! ## [bash workshop](bash-workshop) ![Photo of workshop](img/bash-workshop/workshop.jpg) My first workshop made from scratch. Well prepared tech-wise but not social-wise. ## [Early Sunsets Over Monroeville](early-sunsets-over-monroeville) ![Editor window in Ardour DAW](img/early_sunsets_over_monroeville/editor.png) Unlike previous engineering projects, this one is musical. I recorded the ukulele, did the vocals, and mixed them in Ardour. Result is an acoustic cover of "Early Sunsets Over Monroeville". ## nand2tetris ### [Part 1](nand2tetris_1) ![Diagram of a simple computer](img/nand2tetris_1/computer_registers.png) In July 2022 I enrolled in a course called nand2tetris. In part one of this course I built a computer from NAND gates and ran assembly on it. It was great fun. ### [Part 2.1](nand2tetris_2.1/) ![Diagram of a stack](img/nand2tetris_2.1/stack_before_add.png) A few days after Part 1 was finished, I entered Part 2. There were so many things ahead of me that I decided to split it into multiple blogposts. In Part 2.1 I learned about the stack machine and wrote a VM translator. ### [Part 2.2](nand2tetris_2.2/) In nand2tetris 2.2 I built a tokenizer for a simple language, Jack. ## [SIRTET](sirtet) ![Screenshot of SIRTET mid-game](img/sirtet/sirtet.png) In June 2022 I made a game in C. It was my first time using ncurses. Also, I no longer fear pointers (although I'd still keep away from them). ## [One tøp song](one_top_song) ![Screenshot of desktop UI](img/one_top_song/ui_desktop.png) On April 19, 2022, I released a web game made out of words that only appear in one twenty øne piløts song. It involves automation using curl, Python, and Unix utilities, but on top of it there's a lot of manual work. Here are the steps I took over the course of this project, from downloading the lyrics, to generating a dataset, and finally making a game. ## [Kanvas](kanvas) ![Screenshot of Kanvas 0.1.1](img/kanvas/screenshot_0.1.1.png) In April 2022 my friend released a Canvas LMS desktop widget for the Wallpaper Engine. I feel happy for him, but I'm disappointed that I can't use it. So I went ahead and wrote my own Plasma widget (or applet, or plasmoid). ## [Bikeblinkers](bikeblinkers) [ ![ All PCBs, soldered and unsoldered, and 3D printed case all laid out on the desk ](img/bikeblinkers/bikeblinkers.jpg) ](img/bikeblinkers/fullsize/bikeblinkers.jpg) In September 2021 I broke my wrist in a (fairly stupid) cycling accident. This led to a two-month-long quest for a pair of blinkers for my bicycle. I made all sorts of mistakes along the way, as I always do, and this blogpost has all that yelling-at-past-myself covered. It also covers _some_ actual project details. ## [Rickstodon](rickstodon) ![Demo](img/rickstodon/rickstodon.webp) On April Fool's Day, 2020, I launched a mock Mastodon login page at `https://social.fkfd.me` (now defunct) that rickrolled anyone that clicked the links or buttons. It was more sophisticatedly designed than most other rickrolling attempts (it's weird to compare trolling technique, I know) in that hovering your cursor over the links doesn't immediately reveal your evil intent; the URL shown is totally legit, and it takes another round of carefully set-up nginx configs to redirect you to the classic music video. Because of restrictions in AGPL that Mastodon is distributed under, I decided not to release the code itself but rather to write a guide on how I made it. The codeberg repo that came along was unlicensed. As I said, this was a impulse project that's faded into the past. It is 2022 as I write this. Isn't this crazy?