Programming Projects

My favourite programming languages include Rust, Python, and the very original C. Most of my creations are fully open source and available on GitHub.

Chart showing the top eight programming languages that I use.

Rusty Penguin

Rusty Penguin is a redesigned substitute to chisel. It is, just like chisel, a fast TCP+UDP channel over WebSocket. The advantages Rusty Penguin offers include a better performance and optional lower fingerprintability, making it a better tool for firewall traversal. Read more here.

Monitor Previewer

As the Tech Crew, my job includes controlling the presentations on the screen. Imagine having two screens — one of which is almost invisible to you but visible to 200 audiences. I made this macOS application with Swift to be able to preview the “production” screen before deploying it to the projector. Here are the details.

codes

Everyone creates many snippets over time. This is my collection, grouped by programming languages. Head over to read more!

slib

As one of my first projects, it brought me to the world of C and programming. It may not look very useful, but it is very important in my heart. Click here to read more!

P Shell

Finding existing shells too complicated and hard to be ported to non-POSIX platforms, I started psh as not only a study project but also an approach to a modular UNIX shell. Read more here.

Z Cross Build Environment

This is a cross build manager. It has useful features like concurrent building and dependency tracking thanks to Python's asynchronous API. Here comes its usage.

Why did I start computer programming?

It’s really a long story. Long being known as the “science nerd” in the school, I got to know a magazine named 《无线电》[“The Wireless”], when I was addicted to making crystal radios in Grade Three. This magazine opened up the world of Linux and open-source hardware to me.

In 2014, Apple announced Swift, and that was what actually motivated me to learn to program — partly because of Apple’s engaging presentation. Nonetheless, I chose to learn C as my first language because of its closer relationship to the hardware, with which, I guess, I was more familiar back then.

Electronic Projects

Sensing, Automation, Radio Frequency, and just random curiosities.

RPi Pico Home Automation

This is the current iteration of my residence automation project. It started out as an Arduino-controlled solid-state relay, connected via serial to a computer. Then, it was gradually modified and refactored to become what it is now: a Raspberry Pi Pico W, with an integrated PWM light controller, GPS NTP server, and temperature sensor.

Relevant code is available in my GitHub repository, and this blog post of mine describes how I designed the PWM controller for this specific purpose.

40m CW Transceiver

This is heavily modified from a 40m CW QRP kit. I added a bunch of voltage regulators, filter networks, and an Arduino-based automatic keyer. Much more useful now.

Power Outage Response

Living in a forest has its pros and cons. In November 2022, an eleven-day power outage hit Pearson College. Some of my efforts to help the community:

  • Solar-powered charging stations (as depicted in the image above)
  • Generator connections to internet equipments
  • Battery-powered lamps for people in need