Skip to content
Avatar
🎰
Randomized
🎰
Randomized

Highlights

  • Arctic Code Vault Contributor
  • Pro
Block or Report
SOF3/README.md

Undergraduate Computing & Data Analytics major in the University of Hong Kong.

My Interests

  • My primary language is Rust.
  • My primary scripting languages are Bash, PHP, NodeJS and Python (in order of preference).
  • My primary JVM language is Kotlin.
  • My primary OS is Ubuntu (Alpine Linux for containers).
  • I deploy everything with Docker.
  • Most documents I produce are written in LaTeX or Markdown + Graphviz.
  • My primary IDE is Vim. (Yes, it is an IDE provided sufficient configuration)
    • Nevertheless, I do write IntelliJ plugins.
  • I like reviewing API and language designs.
    • I develop and contribute a number of general-purpose libraries.

"Primary" means "default choice" here, not "only choice"

Highlighted projects

I have started a lot of open-source projects for personal interest, but many are incomplete because of lack of time and financial support. Incomplete projects are marked as .

Some of these projects were not created or maintained by me, but I included them here as I believe I have contributed a substantial amount of code to them.

Programming languages

  • await-generator, a PHP library that enables async/await pattern
  • dirmod, a Rust macro to smartly detect modules to include
  • rwlock-promise, a JavaScript library that implements mutually-exclusive and shared-exclusive locks with a Promise API
  • thisrc, a PHP extension that observes the refcount of the $this object without inducing side effects
  • libglocal-idea-plugin, an intellij plugin for editing libglocal language files

I have also created numerous tiny macros and libraries in Rust, but those generally have very ad-hoc purposes and are not known to have any other users. Examples include serde-iter, count-write, qualify-derive, etc.

Game development

My programming career started from reverse engineering the game "Minecraft: Bedrock Edition". As a result, more than half of my repositories and contributions were related to the third-party server software PocketMine-MP, including its various modules and external plugin ecosystem. Most of my recent PHP projects are related to modernizing PocketMine-MP by adopting design approaches (such as dependency injection, asynchronous programming, MVC, etc.) from other programming languages and ecosystems.

Operating systems

  • gping, a command-line visualization of the ping command
  • include-flate, a Rust macro for attaching constants as deflated strings in the executable.
  • phar.rs, a Rust library for the PHAR (PHp ARchive) format. Also includes a WASM app and a CLI command for phar manipulation.
  • enclavlow, my final year project that performs Java flow analysis to verify SGX data security.
  • signed-vimrc, a vim plugin that loads PGP-signed .vimrc files in cwd
  • pathetique, an object-oriented abstraction of OS paths in PHP

Robotics

I am a member of the HKU Robocon Team.

Web development

  • octorest, generated Rust bindings for the GitHub API (can adapt to other OpenAPI implementations too)
  • webcord, a webapp + discord bot that mirrors a discord chat

Android development

Discord bots

The Discord bots I write follow minimalistic approach and rarely have sophisticated framework.

  • bthint, a bot that tries to extract syntactically correct code from chat messages
  • boredphoton, a minimalistic bot for alerting spam raids
  • orbs.bot, a fan project that reverse engineers the API of the webgame orbs.it and mirrors live games
  • webcord, a webapp + discord bot that mirrors a discord chat

Other accounts

Pinned

  1. A server software for Minecraft: Bedrock Edition in PHP

    PHP 2.3k 1.4k

  2. A library to use async/await in PHP using generators.

    PHP 38 7

  3. Automatic `mod` declaration with visibility/re-export customization, conditional compilation and more.

    Rust 8

  4. A variant of include_bytes!/include_str! with compile-time deflation and runtime lazy inflation

    Rust 88 2

  5. 1
    ### Keybase proof
    2
    
                  
    3
    I hereby claim:
    4
    
                  
    5
      * I am sof3 on github.

Contribution activity

April 2021

Created 3 repositories

Created a pull request in dktapps-pm-pl/pmforms that received 4 comments

Add composer.json

For convenience of pulling from composer for phpstan

+14 −0 4 comments
Reviewed 2 pull requests in 2 repositories
pmmp/PocketMine-MP 1 pull request
poggit/libasynql 1 pull request

Created an issue in matcracker/BedcoreProtect that received 10 comments

Enforcement of new Poggit rule against SQL injection

Dear plugin developer, We have updated the Poggit plugin rules, and your plugin BedcoreProtect appears to be affected. The new rule is as follows: B…

10 comments
Opened 15 other issues in 13 repositories
poggit/libasynql
2 open
SOF3/refactored-spoon
2 open
BlockHorizons/FactionsPE
1 closed
Seyz123/InventorySynchronizer
1 open
TPEimperialPE/Prisons
1 open
HiroshimaTeam/Drawer-HiroTeam
1 open
HiroshimaTeam/SafeServer-HiroTeam
1 open
AntiCores/EasyHomes
1 open
HiroshimaTeam/Exchange-HiroTeam
1 open
AyzrixYTB/SimpleFaction
1 open
PatheticMing/WhatTheServer
1 open
IvanCraft623/Ranks
1 open
superbobby2000/SocialSpy
1 closed
Started 1 discussion in 1 repository
84 contributions in private repositories Apr 1 – Apr 19

Seeing something unexpected? Take a look at the GitHub profile guide.