summaryrefslogtreecommitdiff
path: root/docs/projects/index.md
blob: f28afe3818a23bc42316bb73e73c0e3821dcfecc (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# 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).

## [I DONT KNOW HOW BUT I MADE A PCB](idkhow-pcb.md)

![A stack of bare-copper PCBs carrying a logo](img/idkhow-pcb/stack.jpg)

Imma hand them out at the IDKHOW show on April 5th.

## [blobcat PCB](blobcat-pcb.md)

![Yellow PCB standing, colorful LEDs in marquee mode. Printed on PCB:
"TechJI 2023" and "owo :blobcat:"](img/blobcat-pcb/marquee.gif)

Fun? Yes. Stupid? 100%. It has no value other than blinky blinky.

## [Byseekel](byseekel.md)

![Both sides of a soldered PCB](img/byseekel/rev3.jpg)

Sequel to [Bikeblinkers](#bikeblinkers), and a cautionary tale of why you
shouldn't overcomplicate your project.

## [Reflow Workshop: A Journal](reflow-workshop.md)

![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.md)

![Photo of workshop](img/bash-workshop/workshop.jpg)

My first workshop made from scratch. Well prepared tech-wise but not
social-wise.

## nand2tetris

### [Part 1](nand2tetris_1.md)

![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.md)

![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.md)

In nand2tetris 2.2 I built a tokenizer for a simple language, Jack.

## [SIRTET](sirtet.md)

![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.md)

![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.md)

![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.md)

[
    ![
        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.

## [fkfd.me](fkfdme.md)

![Grid of icons used on homepage](img/fkfdme/icons.png)

You're reading it right now!

The blogpost is on the history and design of my blog — how it came into
being, what changed, and how it's going.

## [Rickstodon](rickstodon.md)

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