About

So, tell me about yourself...

Contents

Welcome
This is the personal site of Sherman Chann (aka 152334H)

Stuff I’ve done

Weakly sorted by chronology

Psst...

Each section starts with a few logos like these:

They indicate, roughly speaking, what technologies I used for a specific project. If you’re confused about their relevance, try hovering over them (or long press on mobile): some of these icons have titles explaining what they’re used for:

/about/hover_example.png

This blog

You’re looking at it!

This blog is hosted by Github Pages. I upload the source files for this blog (developed in Hugo) to a repository, triggering a Github Action that compiles everything into a bundle minified HTML/CSS/JS. This produces the static page you’re reading right now.

Previously, I used Jekyll (instead of Hugo), but there were many unfortunate problems with that setup. More on that here.

I use Obsidian to draft out posts, before settling the post metadata && final checks in neovim while running hugo server -D. This isn’t the greatest workflow, and I’m working on a file sync system to smoothen the process.

Disco Narrator

A simple web app (demo) that uses AI to emulate the voices of a few video game characters. Forked from the Controllable TalkNet project. More information available in the following series:

react-viewer-viewer

A small React.js Tauri App (full demo here, if the one below doesn’t work) I developed to learn the basics of modern Full Stack development. Keywords: typescript, material-ui, create-react-app.

Some screenshots:

/about/Screenshot_2022_0817_102526.jpg
Not very complex
/about/Screenshot_2022_0817_102654.jpg
Matryoshka screenshot

I started the project while I was midway through the Full Stack Open course online, so some of the design decisions in the app are regrettable. I’ve also developed a small backend API for the app (keywords: NodeJS, Express, MongoDB, docker-compose), but I’ve yet to publish its source.

Sieberrsec CTF 3.0 (2021)

Together with my friends at IRS Cybersec, we hosted Sieberrsec CTF 3.01, an online competition with >200 players, targeting Singaporeans in Secondary/Pre-Teritary Education.

/about/Sieberrsec_CTF_3.0.png
Promotional image from 2021.
The link works as of 08/2022, but won’t stay up forever.

I was personally responsible for:

  • Challenge development: I made the most number of challenges, tested even more of them, and did my best to simplify/balance them in favour of the participants. I also handled the hosting/testing for most remote challenge microservices.
  • QA/Admin details: CTF Platform testing, Discord announcements/organisation, post-event cleanup && writeup collection.

It takes a lot more than that to run a CTF, but I’ll leave that information to a future post.

1 - 1.0 was a school event, 2.0 was nominally public but primarily catered to a few schools.

CVEs (at Star Labs)

CVE-2021-34978

CVE-2021-34979

pwnscripts (2020-2021)

pwnscripts is a deprecated Python package I developed as a personal extension of pwntools.

https://github.com/152334H/pwnscripts/workflows/Python%20package/badge.svg https://badge.fury.io/py/pwnscripts.svg https://img.shields.io/pypi/pyversions/pwnscripts

This was the first serious project I created. It’s not big – a few thousand Lines of Code in total – but it got me working with technologies that I had felt were for Real™ Developers Only. To summarise:

  • I experienced the process of creating, developing, and publishing Python libraries to PyPi
  • I went through Test Driven Development with the pytest framework.
  • I made use of Github Actions to do the two things above automatically after pushing commits.
  • I tried switching to vscode because I realised plain old vim wasn’t enough for modern development (although later I switched back to neovim after understanding its plugin ecosystem better).
  • I got to understand first-hand why people don’t recommend using Python for large projects (spoiler: __magic_methods__ are exceedingly bad for code readability!)

And I learned a lot about programming in general, along the way. But I’m not working on this project anymore, because…

CTF player (2019-2021)

I used to be very active in the CTF scene. My old CTFTime profile and my team’s writeup repository is full of hundreds of challenges I’ve covered over the years. I won prizes for several local competitions in that time period, including:

  • 1st in CDDC 2020 (Junior Category)
  • 1st in Cyberthon 2020
  • 2nd in Whitehacks 2020
  • 1st in STACK The Flags 2020 (Junior Category)
  • 1st in Whitehacks 2021
  • 3rd in DSO-NUS CTF 2021
  • 1st in CTF.SG CTF 2021

I am no longer a CTF player. I’m happy to assist juniors/newcomers in learning the fundamentals, but I’m effectively retired from the local cadre of CTF professionals.

Advent of Code

Advent of Code was my introduction to the world of programming puzzles. My secondary school didn’t offer much in the way of programming (beyond the regrettable Hello World tutorials), and I might not have become the programmer I am today without Eric Wastl’s work.

YearPoints (global)Languages
20180 :(Python, C
201937Python, JS, C
202028Python
2021372Python

Although I started playing Advent of Code to learn programming, I mostly do it for the fun of it, nowadays.

Other programming problems

https://cp-logo.vercel.app/codeforces/152334H https://img.shields.io/badge/Leetcode-2181-blue.svg Kattis

While I’m not a Real™ Competitive Programmer, I play contests every now and then for fun, as well as to keep myself qualified for basic coding interviews.

Open source contributions

/about/Screenshot_2022_0817_104846.jpg

I’ve made minor contributions to other people’s repositories. See my GitHub profile for more info.

Academics

I’m an alumnus of Hwa Chong Institution (College), and spent most of my free time there helping out the Cybersecurity Section of the Infocomm and Robotics Society (IRS).

Some info that will only make sense to Singaporean eggheads: PCMH+H3 Chem, AAAA/AD+Dist, SSEF, SChO. I include this for completion’s sake; most readers probably don’t care about this.

My religious beliefs

Ubuntu, neovim, tabs > splits, tmux, docker, python3 (4 spaces per indent), Rust > C*, typescript, printf-debugging, Casing_doesNotMatter, iterators > indexing, Copilot, industry collapse by 2030.