summaryrefslogtreecommitdiff
path: root/docs/projects/index.md
blob: a252b907d1300ebd66075d9069adf7020981100f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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)

![Two PCBs with a cat printed on the silkscreen](img/reflow-workshop/kliments_vs_mine.jpg)

My first DIY workshop, adapted from [CyberSaturday: SMD for terrified
beginners](https://tkkrlab.nl/en/cybersaturdays/2021_11_20_smd_for_terrified_beginners__kliment_yanev/).

First I watched the video and taught myself. One month later, I taught two
friends. Another 2 days hence, we taught 17 people. In total, 20 terrified
beginners are now ex-terrified beginners.

## [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?