Home • AboutUses
Hi, I'm Smitop. 👋
I like programming and technology. This is my personal website. More about me.

Things I've done (more)

Web app

Segme

October 4, 2021
Unicode text segmentation online.
Stack Exchange post

How do I programmatically taint the Linux kernel?

September 24, 2021
Is it possible to taint a running Linux kernel programatically? I want to be able to test things with a tainted kernel, without recompiling it to make …
Stack Exchange post

Is it possible to check if `panic` is set to `abort` while a library is compiling?

September 21, 2021
You can use this unstable code in your binary or library to cause an error when -C panic=abort is specified:
Stack Exchange post

Rust: Including dependenies in LLVM Bitcode

September 3, 2021
Expanding on Aiden4s comment: Delete the current target directory to prevent any old artifacts …
Blog post

How good is Codex?

August 17, 2021
I evaluate Codex, a large-scale language generation model intended to generate programming source code from OpenAI. (continue reading)
Blog post

Accidentally causing a Switch rumor

July 31, 2021
Nintendo's website wasn't updated because of a big update, but because I asked them to. (continue reading)
Stack Exchange post

Remove default linker flags in Rust

July 23, 2021
Start by making sure that you are passing the right linker-flavor. rustc …
Blog post

Using Colemak for a year

July 17, 2021
Around a year ago, I started using Colemak, an alternative keyboard layout. (continue reading)
Blog post

Security​Classification​Level in email headers

May 17, 2021
Recently I got a non-automated email from a government agency. While the email was interesting, what was more interesting was the email headers. (continue reading)
Stack Exchange post

Why doesn't converting a raw pointer to a u8 into a raw pointer to an array of 8 booleans print the right result?

May 5, 2021
The behavior of that program is undefined (so the output is meaningless). From Miri: error: Undefined Behavior: memory access failed: …
Stack Exchange post

Rust - Is repr(C) a preprocessor directive?

April 23, 2021
#[repr(C)] is not a preprocessor directive, since Rust doesn't use a preprocessor 1. It is an …
Blog post

Interesting things in Nintendo's OSS code

March 25, 2021
The Nintendo Switch has some open source parts, and Nintendo very kindly allows the source code for these parts to be viewed. (continue reading)
Stack Exchange post

Destructuring an Option<Box<_>> inside a match statement in Rust

March 15, 2021
Dereference the box after matching: if let Some(inner) = self.pending_removal.take() { let (temp_structure, some_boolean) = *inner; …
Blog post

Writing a Boolean expression parser in Rust

March 15, 2021
Let's write some Rust to parse and evaluate Boolean expressions. (continue reading)
Web app

Linear transformation playground

March 13, 2021
Play with some linear transformations in your browser!
Stack Exchange post

How to run a single doc test in Rust?

March 1, 2021
You can run doc-tests at the granularity of individual documented items. If you have some source code like this: /// ## Example /// ``` …
Video

How big is the set of subsets?

January 19, 2021
Video

What's the Pareto frontier?

January 4, 2021
Video

Rubies spinning

November 17, 2020
Video

How HOTP and TOTP work

October 31, 2020
Video

Balls falling down stairs

October 7, 2020
Video

How Snowflake IDs work

October 1, 2020
Video

3 shuffling algorithms with sound

September 16, 2020
Video

Ship lock

September 15, 2020
Blog post

TagTime Web: my stochastic time tracking web app

August 26, 2020
It randomly samples what you are doing (continue reading)
Video

TagTime Web - basic usage

August 19, 2020
Itch game

Time Freezer

August 18, 2020
You can freeze time for a few seconds
Video

UUIDv4 in 40 seconds

August 10, 2020
Blog post

Reddit's website uses DRM for fingerprinting

July 8, 2020
But hey, at least Reddit gets less ad fraud! (continue reading)
Blog post

Data WhiteOps collects

July 8, 2020
A long list of data collected by WhiteOps (continue reading)
Blog post

Gmail's fake loading indicator

July 4, 2020
Gmail's loading progress bar doesn't *actually* measure the progress of loading. (continue reading)
Video

UUIDv3/5 generation

July 3, 2020
Blog post

How I improved this blog

June 16, 2020
How I improved this blog a bunch. (continue reading)
Blog post

Generating our own knowledge panels

June 14, 2020
About how I made a simple clone of Google's knowledge graph. (continue reading)
Itch game

Pencil Defense

May 25, 2020
Defend the pencil in the middle!
Itch game

Doubleshoot

May 11, 2020
Shoot the red enemies with your duel-sided laser, while avoiding the good guys!
Itch game

Use your distance

May 2, 2020
You have a limited amount of movement to beat 4 levels.
Game

Mova

January 3, 2020
A game where you avoid tiny squares.
Video

The Rendezvous Problem

December 18, 2019
Blog post

A bookmarklet to amplify YouTube

November 15, 2019
A bookmarlet to amplify YouTube videos. (continue reading)
Web app

Is your shift key pressed?

October 24, 2019
Wondering if your shift key is pressed? Not anymore.
Blog post

How to use private JS class variables

September 30, 2019
A short tutorial on using private class variables in JavaScript. (continue reading)
Game

0friction

September 8, 2019
A game with slippery controls.
Game

Square game

September 1, 2019
A game that involves squares.
Blog post

AlertReady To Retire Ku Band Alerts

July 5, 2019
Pelmorex, the company that runs AlertReady will stop providing alerts over the satellite Ku band on August 31. (continue reading)
Web app

SpeakScribe

June 27, 2019
A dictation website that uses Web APIs.
Blog post

Easily upload files to IPFS, online

June 5, 2019
Easily upload files to IPFS with my new online tool! (continue reading)
Web app

Upload2IPFS

June 4, 2019
Upload files to the IPFS network online.
Blog post

How to watch YouTube video frame-by-frame

April 14, 2019
Watching YouTube videos frame-by-frame is simple: here's how. (continue reading)
Blog post

Next Canada-wide emergency alert test announced for May 8

April 9, 2019
Pelmorex has announced the test alert, which will be played across phones, TV shows, and radios. (continue reading)
Blog post

Nim: How to use a cstringArray

February 6, 2019
A overview of how to use a cstringArray in Nim. (continue reading)
Blog post

New Blog!

February 2, 2019
Welcome to my new blog. (continue reading)
Website

Nini

January 14, 2019
Tools for the Nimiq blockchain.
Game

LearnLake

April 13, 2018
A small educational website.
(view the source code for this site)