Hobby Programming

Some software I have made always for fun, sometimes for work too.

casioRPN (2016)

Casio script

In the fall of 2015 when I started high schoool, I got my uncles old HP 48S RPN calculator. It was amazing. With the RPN interface, I could do the calculations in my Physics 101 class with ease and even graph functions in 3D when I was bored. Unfortunately after a lovely 2 months, someone stepped on my backpack and the screen broke. I was devastated but I decied to make the best of it. I got instead a Casio fx-9750GII and programmed an RPN calculator inside it. The interface was kind of bad and it ran much slower than the HP, but it was kinda fun.
The RPN program running.

ogl (2017)

C++

A fractal landscape generator using the diamond-square method and a rendered using OpenGL. Github

tomb (2018)

Haskell

A very elementary ray tracer using Haskell. Github
Two spheres rendered by tomb

cjeeq (2021)

C

Reimplementation of jeeq in C using the OpenSSL library. In order to encrypt messages on the blockchain, we want to encrypt and decrypt with users' ECDSA key-pairs. It uses the ElGamal encryption scheme to encrypt short messages with the receiver's public key and the receiver can then decrypt them with their private key. Github.

schapl (2022)

Scheme

An APL-like vector calculator. Mainly a project to play around with Lisp. Rob Pike and others are working on something similar in Go called Ivy, but much more advanced. Github.

Goulden-Jackson cluster method (2022)

Sage

For my BS project, I implemented the Goulden-Jackson cluster method in Sage which you can use it to count permutations that avoid center types of patterns. This can be used to compute odds in Penney's game. Github

This website (2025)

HTML and CSS

Self-evident.