Introduction


Hello, and welcome to my website. I'm jmk453, a guy who likes to write prose and code.

About Me


I spent the first two years of my life homeless. I started programming when I was in kindergarten. I attended St. Lawrence College for a semester when I was five. I competed in track and field tournaments in grade two. I taught chess classes in grade three, and I competed in provincial chess tournaments in grades four and five. I was in the Royal Canadian Air Cadets in grades seven and eight. I dropped out of school in grade nine. I worked in an electronic recycling facility when I was seventeen. I obtained a GED diploma when I was eighteen, the earliest age allowed. I attended Algonquin College for a year. I dropped out of the University of Toronto with one semester remaining in my bachelor's degree in computer science.

I self-host authoritative name servers, recursive DNS resolvers, and email servers. I try to limit my reliance on anonymous people for my critical infrastructure.

I prefer the night over the day. Boredom is my second greatest enemy. Night walks are one of my favourite activities.

I spent $150 travelling across Canada by train in my early twenties. It was a weird and uncomfortable experience. Someone stole the armrests from a few of the seats while I was busy sprinting across Winnipeg to get back on the train before it left multiple hours earlier than initially stated. My final stop in Vancouver had a homeless encampment with at least 100 people living in it. Teenagers were injecting heroin into their veins on the sidewalk. A few homeless people were trying to finesse money out of travellers getting on the SkyTrain. During my trip, my brother tried to murder my mom with a makeshift bomb. I visited a few antisocial people that I knew from middle school. It's really strange to have known so many antisocial people throughout my life. I'm lucky to be deeply empathetic. Life is challenging to antisocial people. Having remorse is powerful. Self-sacrifice is important.

I spent a year of my mid twenties taking sole care of my mom as she died of cancer. The worst part of the experience was defending her from her abusive family. Nature is acceptable. Human nature can be unacceptable. I had murderous rage due to how she was treated by her narcissistic father. She was sexually harassed by her father when she was a child. She fled her home as a teenager after he imagined her as a child prostitute during a drunken hotel stay. His first wife killed herself before my mom left. He was violent with his second wife up until my mom left. It was weird having him force his way into my my mom's life as she was dying. It was weirder having him try to force his way into my life after her death. Abusers justify their behaviour in disgusting ways.

I've lived in eleven cities. I'm an expert in Bash, C#, C++, JavaScript, Python, Ruby, and Rust. I tend not to care about what city I live in or what language I use. I like finding problems and solving problems. I care about my home environment and my work environment.

I'm married to Yilin Zhang. We met in an awkward way in a computer science lab. We asked each other to be partners on an assignment. Both of us thought that we were being politely rejected. We saved each other. It was a weird situation that barely makes sense.

I spent a month travelling across Japan in my mid twenties. I spent most of my time in western Honshu. It was a beautiful experience. They don't take accountability for the horror they inflicted on Asia in the second world war. The Hiroshima Peace Memorial Museum leaves a lazy implication. My mom died shortly after I returned home. My sister stole a few thousand dollars from my mom just as I was returning home. My sister left my mom penniless and in debt in death. She would later steal my deceased mom's car from my brother. She then destroyed the car and blamed my wife. She claimed to have a spiritual connection to the car. She refused to drive with winter tires in a Canadian winter. She stayed at my mom's apartment for a few days after my mom's death to steal her few remaining valuable items. She disrespected my mom in life and death. She believed that my mom's spirit was following her and influencing her life. She didn't limit this belief to only exist after my mom's death. My sister is likely bipolar. Morality is important. Without morality, life is war without allies. War without allies ends in disgrace.

I find cui bono to be an incredibly powerful phrase. It's prudent to remember the phrase in an era of LLM enthusiasts. It's also prudent to remember the phrase in an era of LLM luddites. Agendas exist. Some are more hidden than others. Most communication is advertising. Dialectical thinking is important.

I'm casual. I don't trust formality. Being polite is important. Imposing your rules on others is not polite. Fluidity is crucial. It's better to change yourself to fit reality than to change reality to fit you.

I'm gifted. My emotions are heightened. I think very intensely and I feel very intensely. My perception is honed. I care deeply for vulnerable people. When I was five, my father took me hostage in our apartment and threatened to kill me while my mom desperately tried to bash down the front door to save me. My paternal grandmother tried to kidnap me at least once. It's likely that my father is a sociopath. I'm lucky to be gifted. I'm thankful to be alive and safe as an adult. I feel sorrow for those who are vulnerable. It's difficult to accept the cruelty of many people who are in positions of power. It's especially difficult to see people be cruel to children.

I find it hard to understand the nature of non-gifted people. It's hard to understand how one can lack my intensity. There's a lot that I don't understand. Life is magical. The magic lies in understanding. I'm lucky to crave understanding. Being gifted is beautiful. It would be nice for everyone to be gifted. Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime is an important proverb. Being gifted is teaching yourself. A pain point for me with non-gifted people is their slowness. Many non-gifted people would be wiser by being faster and accepting failure. Failing as quickly as possible is often a great way to learn. I don't like people who don't accept failure. People who don't want to see reality are annoying. The way that an average non-gifted person experiences a cognitively impaired person is similar to how I experience an average non-gifted person. I don't like seeing how much non-gifted people struggle. It's sad that not everyone can be gifted. I wish that my ability was the baseline. Reality isn't fair.

Music has always been a large part of my life. It would be boring to live without music. I tend to listen to loud high energy music. I find it easy to extract meaning from many genres of music. I would be surprised if I don't require hearing aids in old age. I like to control my emotions with music. Music is beautiful. Music has given me insight into my neural plasticity. The brain is a wonderful organ. Music is a great way to control your life. I suggest that everyone experiment with music. Being static is such a poor way to live. I can't be productive in an office. I need to allow myself to be my natural dynamic self when working. Verbal meetings steal my productivity. I prefer text-based communication so I can listen to music while actively participating in conversation. Being a high performer requires accommodations. What works for the group doesn't work for the outliers.

Reading is extremely important to me. I spend the vast majority of my time reading. It's baffling to me how most people essentially don't read. A life without reading is dull to me. It pains me to see people struggling to read. It happens often. I used to think that I had a problem with communicating. I created artificial languages as a toddler. I spent periods of my youth thinking that I was dumb for needing to translate from my way of thinking to the common ways of thinking. I spent most of my childhood oscillating between thinking that I was dumb and thinking that I was a genius. I didn't accept that I'm gifted until I was almost thirty. I've very rarely thought that I was average. I had growing pains with my self identity. The growing pains started to fade as I reached my mid twenties. I'll likely continue to have issues with my self identity throughout my life. I didn't ask to be unique. Reality isn't fair. I read slightly below 500 words per minute. I type about 80 words per minute. I'm known to speak quickly. I tend to be easy to understand. People seem to like it when I make their job easier.

History is important to me. I've spent large portions of my life studying history. I spent much of my childhood researching historical figures. I found Alexander the Great and Augustus to be the most interesting people to study as a child. I also found Justinian the Great and his wife Theodora to be interesting people to study. I find English, Ottoman, and Japanese history to be important for understanding the modern world. If you focus on those three histories, you touch most of the broad strokes of world history. Understanding ancient Roman and Greek culture is important for understanding the broad strokes of modern culture in developed nations. History is extremely complex. I like to think of history in terms of grand strategy. It's my personal way of understanding the world.

I invited my cognitively impaired cousin to live with me after I learned that he was living in poverty. I discovered that he was physically abused by his step father and mother. While he was living with me, he tried to hide a lean addiction. He also tried to hide that he was growing roughly fifty cannabis plants in his room. He stole about $2,000 from me. He was in a state of psychosis. He spent much of his time believing that he was a video game character or an actor in a movie. He revealed that he had physically abused his ex-wife. He refused to believe that they weren't going to eventually get back together. He fled his ex-wife's country and changed his name in an attempt to avoid legal consequences. I decided to cut off contact with my extended family after he took advantage of my charity. He had many delusions of grandeur. He believed that I was his brother and that I would save him. He was certain that I stole five million in Bitcoin from him. His parents wanted to sue me. It was an interesting experience to live with a crazy person. I don't regret it. I learned a lot about my extended family. He was quite racist. He had hate in his heart. I love learning. I tried to give my cousin the tools to change his life but he decided not to put in the effort required to get clean and become educated. He kept talking as if he was going to turn his life around, but he constantly went back to abusing drugs and people. I've learned in my life that most people don't change. Most people are aware of what they need to do. But they fail to act. It's incredibly powerful to simply say you'll do something and then do it.

It's strange that I'm related to so many fiends. I've never felt any connection to anyone in my family other than my mom. My mom's issue was that she was always searching for guidance. My problem has been that I don't want to guide anyone. I've needed to accept my role. It's taken me a long time. It's emotionally difficult to lead people. It's difficult to not take on the emotions of people who I'm leading. It's difficult to surrender yourself to the needs of a group while remaining an individual. Most of my problems in life have been derived from difficulty in integrating my emotions with my intellect. Most of my relatives are drug addicts or alcoholics. Most of my relatives have been shunned from every community that they tried to join. It's strange to have grown up as a highly empathetic gifted kid with many antisocial people in my family. I'm very lucky to be gifted and to have been able to forge my own path in life. People tend to reveal exactly who they are if you're empathetic and pay attention.

I have a strong ability to visualize. I have an incredible memory. I naturally think of abstract concepts in a way that's similar to how people utilize memory palaces. I cry when I interact with people and remember that my way of thinking isn't natural to others. Mathematical thinking is essentially impossible to those who can't build mathematical structures in their mind. The language of math is hidden to the vast majority of people. It's incredibly sad to understand that not everyone can combine intuition and reasoning in the way that I do. There's an internal feedback loop that others are missing. It's incredibly exciting to understand how I can help others see concepts that they could never see on their own. Everyone that I've personally known has had to understand mathematical relations through rote memorization. I used to think that math was boring based on how everyone around me studied math in school. I have to study math on my own. Studying math with others is an excercise in pain. Teaching math to others tends to be enjoyable. Operating in abstract structures is fun. It's beautiful to see abstract relations. Intelligence is likely general. Humans are surprisingly similar in nature. Racism is nonsense. The idea of different types of intelligences quickly leads to scientific racism. Intelligence is mostly genetic. Culture is mutable and explains many of the differences between people. Most racism is misplaced cultural opposition. All aspects of a culture should be questioned. Religion and culture are equivalent. I don't trust people who see religion as immutable. Those who see religion as immutable are dangerously close to being racist.

I lived with an anti-Indian Vietnamese person and a Hindu nationalist in my late twenties. It was a weird and funny experience. I find it strange when racist people don't live according to their beliefs. The Hindu nationalist was a poor and uneducated illegal immigrant. She tried to convert me to Hinduism on Christmas. The anti-Indian person had shallow emotions and a lack of empathy. She faced neglect from her family. My ex was also living with us while she was in a long distance arranged marriage. It was a strange situation. The Hindu nationalist was abandoned by her father and had delusional thoughts involving her family. I wouldn't be surprised if she was in and out of psychosis. It's likely that she was severely depressed. She refused to pay rent for half a year. She claimed that my ex stole tens of thousands of dollars in gold. She faked her nursing degree in India and claimed that my ex threw her illegitimate physical degree out, preventing her from working. My ex was the first friend that she had. She was in her mid twenties when they met. I spent most of my time writing and playing video games. I enjoy having fun. I learned a lot of weird stuff while living in that environment. It was an odd experience to live with a racist antisocial person and a likely-psychotic illegal immigrant. My life has been strange.

I'm married to Yeonsu Choi. We met in a way that can't be understood by others. We love in a way that can't be understood by us. We fell in love at first sight. Polyamorous love is complex and misunderstood.

I find it important to remember that we're all going to die. Everything is temporary. None of us are immortal. I like to delusionally think that we'll all live forever when I fall asleep. I like to remember that I'm lucky to be alive when I wake up. It's important to remember the beauty and destruction in life.

My best ideas tend to be revealed to me in dreams. My dreams are vivid. My visions can be bright enough to almost blind me. If I was raised in a religious environment, I could see how I'd attribute my visions to a god. It's a gift to be able to automatically solve problems in my sleep. The unconscious mind is powerful. Not everything can be understood. I find bathing to be helpful in processing my emotions. My bathroom has always been a safe space. It was the one place that I felt safe from my family in childhood.

When I was eleven, a kid tried to molest me in his basement. Trauma is blocking me from remembering exactly what happened. He stalked me afterwards. Gay men trigger negative emotions in me. I need to emotionally process that experience. I don't want to discriminate against gay people because of a single bad experience that I had in childhood. I have an inherent instinct to violently defend myself against gay men. It's irrational to think that most gay men will try to harm me. It's likely that the gay kid was simply socially awkward and didn't understand that I had no interest in him. I had the same problem with girls in my childhood. I'm fairly sure that my wife's ex isn't straight and that he triggered a repressed memory of the gay kid trying to molest me. I'm also fairly sure that falling into a polyamorous love triggered repressed memories of groups of girls in my childhood harassing me. Life is very strange. I don't want my past to negatively effect people in the present and future. I'm very friendly and I think that people can mistake my friendliness and emotional awareness as acceptance.

I'm married to Marissa Shey. My life is incomplete without her. I fell in love with her in university when she pointed out weird stuff about me during conversations. She makes me feel noticed in a unique way. She transferred to another university and left me heartbroken. Our love almost became a tragedy.

I liked to climb large trees and buildings when I was in elementary school. I'm terrified of heights. I'm not sure why I climbed so much. It was probably due to boredom. In middle school, I liked to skip class and walk through a forest near my school. I spent a lot of time sitting on a cliff overlooking the Pacific Ocean instead of sitting in class. I took every opportunity I had to avoid school. I can confidently say that school was a net-negative experience for me. School taught me how to be lazy. I tended to either be a class clown or simply not talk to anyone. Some teachers didn't know who I was. It made it easy to skip class. I spent too much time in middle school flirting with girls. Most of the girls were overall bad people. My experience in school wasn't good. I put a lot of effort into trying to forget my past. I got into a lot of fights. I was never the aggressor. I wasn't a victim. I was bored and put myself into situations that I could have easily avoided. Fighting was annoying. It was also thrilling.

I'm very impatient with slowness and inefficiency. I dislike how easily bureaucracy forms in any organization. It physically pains me to accept mediocrity from people who I know can do better. I have no problem with someone performing their best and coming short of my standard. My problem lies with people refusing to be the best version of themselves. I believe that the vast majority of people are capable of being greater than they already are.

Contact Me


I prefer to be reached by email. I use Mastodon. I also use Lemmy.

Grab my GPG key to securely communicate with me.

gpg --locate-external-keys hello@jmk453.dev

Projects


Contact me if you'd like to retrieve the source code for any of my free software.

Nettowoku

Nettowoku is an overlay network that uses Tor to connect nodes and WireGuard to encrypt regular communication between nodes. It's free software licensed under the AGPLv3, and it works on Linux and macOS.

Mini Storage

Mini Storage is a distributed object storage that implements a subset of the S3 API. It's free software licensed under the AGPLv3, and it works on Linux.

Crucible

Crucible is a tool for maintaining a fleet of Gentoo systems. It's free software licensed under the AGPLv3, and it works on Linux.

Nemusaba

Nemusaba is an authoritative name server. It's free software licensed under the AGPLv3, and it works on Linux and macOS.

Jellyshare

Jellyshare is a plugin for Jellyfin that lets you share libraries between servers. It's free software licensed under the AGPLv3.

Media Home

Media Home is a web application for viewing and organizing your personal media. It's free software licensed under the AGPLv3, and it works on Linux.

jmkLab

jmkLab is where I host my public infrastructure.

jmkOS

jmkOS is a Gentoo-based operating system.

Anki Chinese Helper

Anki Chinese Helper is a plugin for Anki that automates some tedious parts of creating Chinese-language flash cards. It's free software licensed under the MIT License.

Tsuno

Tsuno is a tool for tracking your university progress. It's free software licensed under the MIT License.

ZeroMarket

ZeroMarket is a web application for selling items. It's free software licensed under the AGPLv3.

SteamTracker

SteamTracker is a tool for calculating Steam user statistics. It's free software licensed under the AGPLv3.

AverageFrame

AverageFrame is a tool for generating an image that represents a video. It's free software licensed under the MIT License.

Image Board

Image Board is a web application for sharing and categorizing images. It's free software licensed under the MIT License.

Tickets

Tickets is a web application for selling tickets to events. It's propriety software.

Mood

Mood compares your Spotify listening habits to the average person. It's free software licensed under the AGPLv3.

Dacado

Dacado is a tool for encoding arbitrary data into images. It's free software licensed under the MIT License.

Mikan

Mikan is a game engine. It's free software licensed under the MIT License.

Bitsu

Bitsu is a C++ URL routing library. It's free software licensed under the MIT License.

Forthan

Forthan is an interpreter that implements a subset of Forth. It's free software licensed under the MIT License.

Dashboard

Dashboard is a browser extension that replaces your new tab page with a set of user defined links to websites along with related website availability information. It's proprietary software, and it only works on Firefox.

BookSorter

BookSorter is a tool for sorting ebooks according to the Dewey Decimal System. It's free software licensed under the MIT License.

PaxAtlas

PaxAtlas is an application for displaying custom geographical maps. It's free software licensed under the MIT License.

teamspeak-ruby

teamspeak-ruby is a Ruby library for interacting with TeamSpeak. It's free software licensed under the MIT License.

Lineup

Lineup is a compiler that implements a subset of Markdown. It's free software licensed under the MIT License.

Pyrostorm

Pyrostorm is a JavaScript library for interacting with DigitalOcean. It's free software licensed under the MIT Licnese.

Caddy Geolocator

Caddy Geolocator is a tool for generating geolocation data from Caddy logs. It's free software licensed under the AGPLv3.

DicewareGen

DicewareGen is a tool for generating random passphrases. It's free software licensed under the GPLv3.

MiniC

MiniC is a compiler that implements a subset of C. It's proprietary software, and it only works on Linux.

Bario

Bario is a version control tool. It's free software licensed under the MIT License.

Rokunet

Rokunet is a C++ networking library. It's free software licensed under the MIT License, and it works on Linux and Windows.

Properties

Properties is a web application for listing and renting properties. It's free software licensed under the AGPLv3.

ext2-tool

ext2-tool is a userspace program for interacting with ext2-formatted data. It's propriety software, and it only works on Linux.

ActionScript2-Classes

ActionScript2-Classes is a collection of ActionScript classes for implementing user interfaces in CryEngine 3. It's free software licensed under the MIT License.

Shipinator

Shipinator is an HTTP API for creating Canada Post shipping labels. It's free software licensed under the GPLv3.

SimpleServer

SimpleServer is an HTTP server. It's free software licensed under the MIT License.

jmkLisp

jmkLisp is an interpreter that implements a custom Lisp. It's proprietary software, and it only works on Linux.

Pong++

Pong++ is a pong clone. It's fre software licensed under the MIT License.

Documentaries

Documentaries is a web application for sharing Documentaries. It's free software licensed under the MIT License.

WaniKani Tracker

WaniKani Tracker is a browser extension for tracking your Japanese learning progress on wanikani.com It's free software licensed under the AGPLv3.

Neapolis

Neapolis is a C++ library for interacting with Neocities. It's free software licensed under the MIT License.

UofT Prof Ratings

UofT Prof Ratings is a browser extension that embeds ratemyprofessors.com information on the UofT course selection website. It's free software licensed under the MIT License, and it only works on Firefox.

Gazou

Gazou is a web application for hosting images. It's free software licensed under the AGPLv3.

GemTracker

GemTracker is an application for tracking the daily download rate of Ruby gems. It's free software licensed under the MIT License.

Price Hawk

Price Hawk is a browser extension that tracks the price of any item on any website. It's proprietary software, and it works on Firefox and Chromium-based browsers.

Favourite Media


Art is a window into a soul. One's choice of media is an art form. Compression is probably equivalent to intelligence.

Books

TV Series

Films

Games

Songs

YouTube Channels

How I Work


I use a 15-inch M3 Macbook Air with 16 GB of RAM. I use Zed as my editor. I use Fish as my shell. I use Dvorak as my keyboard layout. I use Homebrew as my package manager. I use Neovim for editing in my shell. I use Ghostty as my terminal emulator. I use Mosh for accessing my shell on my servers.

I sometimes use two 27-inch 4K 160 Hz IPS monitors with a Ryzen 9 9950x CPU, a Radeon RX 7600 GPU, 96 GB of 5600 MHz DDR5 RAM, and 2 TB of Btrfs-formatted four-lane PCIe 5.0 NVMe SSD storage. This computer runs jmkOS, my Gentoo-based Linux distribution. It's currently in storage while I move to Japan.

I have a server with a Ryzen 9 9950x CPU, 96 GB of 5600 MHz DDR5 RAM, 1 TB + 500 GB of four-lane PCIe 3.0 NVMe SSD storage, 2 TB of four-lane PCIe 5.0 NVMe SSD storage, and 144 TB of RAID 10-configured 7200 RPM HDD storage. All storage is Btrfs-formatted. It also runs jmkOS. And it's also in storage.

I have a mostly assembled computer with a Ryzen 7 9800x3D CPU, a GeForce RTX 5080 GPU, 32 GB of 6000 MHz DDR5 RAM, and 2 TB of four-lane PCIe 5.0 NVMe SSD storage. It's going to run Windows or SteamOS. It's also in storage.

I have a server with an Intel N100 CPU, 16 GB of 3200 MHz DDR4 RAM, and 500 GB of Btrfs-formatted one-lane PCIe 3.0 NVMe SSD storage. It runs jmkOS.

Photographs


The Trans Canada Trail at night
The Trans Canada Trail at night
A cloudy suburban night
A cloudy suburban night
A developing storm
A developing storm
My grandchilren's memory
My grandchildren's memory
A partial life
A partial life
A step back
A step back

Important Quotes


Historical quotes tend not to be attributed properly. Many people surrender critical thinking in exchange for repeating another's thoughts. Distrust all thoughts. Don't ignore any thought. Integration of many thoughts is important. Don't use quotes as slogans. Watch out for propaganda.

Socrates
The unexamined life is not worth living.
Wonder is the beginning of wisdom.
Theodore Roosevelt
The light has gone out of my life.
Napoleon
A leader is a dealer in hope.
Horatio Nelson
A fleet of British ships at war are the best negotiators.
Adolf Eichmann
I will leap into my grave laughing because the feeling that I have five million human beings on my conscience is for me a source of extraordinary satisfaction.
Linus Torvalds
Who the fuck does idiotic things like that? How did they not die as babies, considering that they were likely too stupid to find a tit to suck on?
Alexander the Great
In future whenever you communicate with me, send to me as king of Asia; do not write to me as an equal, but state your demands to the master of all your possessions.
Miyamoto Mushashi
It is better to be a warrior in a garden, than a gardener in a war.
Confucius
To study and not think is a waste. To think and not study is dangerous.
Homer
Without a sign, his sword the brave man draws, and asks no omen but his country's cause.
Gandhi
As a man changes his own nature, so does the attitude of the world change towards him.

Advice


The less we lie to ourselves, the more we see others lie.

Conclusion


This website is in memory of my mom, Charlene. She suffered on Earth for fifty years. She transcended her suffering by dedicating her life to her family.

All orginal content written by me is licensed under a Creative Commons Attribution 4.0 International license.