My Random Garbage Collection

Some Blog Posts

  • io_uring-based file hashing using my asynchronous ring buffer implementation
  • The libc++ implementation of the STL deque push_front function has O(log n) amortized time complexity
  • Why gcc and clang sometimes emit an extra mov instruction for std::clamp on x86
  • Proof my base53 checksum detects all single-character changes and adjacent transpositions
  • Clearing up a common misconception about sequential consistency
  • Unspecified Behavior in a C++ Exam Question
  • Faraday bag test results using NESDR Mini 2+ and gqrx
  • gf_invert_matrix is very slow - takes up 99% of the total running time...
  • Soft realtime ticker on Linux
  • How my old edge detector works
  • More Random Garbage

  • bolgefuck - an esoteric programming language I invented. It is designed to be as hard to program in as possible, even harder than malbolge!!!!!
  • zc - an improved version of Real Time Risk with additional features such as: multi-tile-select via click-and-drag with mouse, you can now tell your armies to move to arbitrary tiles instead of only the adjacent tile (your armies will move according to a route calculated via a shortest path algorithm), armies now take time to move from one tile to another instead of instantaneously (I also added visualization for army movement, so that players can now see armies moving from one tile to another) and can now collide mid-flight in which case the bigger army will annihilate the smaller one, waypoints (i.e. you can tell your armies to visit a sequence of points in order - for each point, the tile that is closest to the point will be selected as the waypoint), and some other QoL improvements.
  • SimpleBlogPage - an improved version of the BlogPage MediaWiki extension. I created this after I noticed numerous bugs and security vulnerabilities in the original BlogPage extension. For example, I discovered and fixed a vulnerability whereby a user could create blog posts under another user's name, got rid of the cache which was coded incorrectly and was causing the home page to be always 15 minutes stale, got rid of tons of duplicate code, removed all the dependencies, changed the getAuthors function to grab the author out of the basetext rather than parsing it out of categories using some hacky regex, implemented the "read more" tag, added word count, and much more.
  • I wrote a tutorial on how to implement an edge detector to achieve Antichamber style graphics in Unreal Engine 4 wherein I demonstrate the proper way to use the Laplacian operator and its superiority to 1st derivative filter kernels for edge detection.
  • sedit - automatically encrypting text editor. It writes only the encrypted data to disk. However, your plaintext may still end up on your disk due to swap or core dump. If you are concerned about this, then use full disk encryption and make sure your swap is encrypted. Using this tool means you don't have to manually run gpg or age to encrypt the text file before backing it up.
  • I wrote my own URL shortener for fun. Of course I didn't use a database. I used only the Go standard library, because it's fun to implement everything from scratch. While writing the util library for the URL shortener, I found and fixed a bug in the Go standard library. I've open sourced the util library that I wrote for this, you can find it here:
  • ltt - Linux Time Tracker an improved version of latte with added support for URL logging (currently Chromium only) and downloads a text copy of every web page you visit so that you can search through them later. I created this tool because sometimes I remember reading something somewhere but I can't remember where I read it and Chromium no longer has that feature where you can full-text-search through all the websites you've ever visited.
  • - multithreaded downloader, pass in a list of URLs and it will download them for you in parallel.
  • More random garbage

  • Earley parser with nullable fix from Practical Earley Parsing by Aycock & Horspool
  • Proof of correctness for Knuth shuffle
  • Sets with distinct subset sums
  • Proof of algorithm to detect cycles in a directed graph
  • Proof of function to normalize angles using why3
  • St. Petersburg paradox simulator
  • Crib search for one-time pad with reused key
  • incrementing XOR decryptor
  • Passing struct and accessing member variable vs passing member variable directly, which is faster?
  • xkcd password generator using random.SystemRandom()
  • Unbeatable Tic Tac Toe AI (with custom heuristic)
  • Theseus solver with nice user-friendly GUI for input
  • Other links

    My Github
    My old blog
    My new blog
    Click here for a javascript encryption service (entirely clientside)