About & Projects
I write different kinds of code.
I participated in competitive programming as a teenager (NOI ‘08, ‘09 in China), and now I work as a full-stack developer for @microsoft.
I’ve been working on indie games, compilers, and regular full-stack developments.
I also translate tech materials and write short stories.
projects
Track HN
Data tracking and analysis project for Hacker News
Track HN is a project to track, archive, visualize and analyze data from Hacker News.
The project consists of web tracker, database, server-less functions, no-code dashboards, browser extension, and twitter bot.
Posts/Reports:
WeWord
AI-generated dictionary, thesaurus and crosswords
WeWord is an AI-generated dictionary, thesaurus and crossword puzzles.
It helps to see how the AI sees our world by letting it explain our language.
fiber note
a bi-directional networked note-taking app
fiber-note is a bi-directional networked note-taking app which is open and self-hosting, inspired by roam-research
, obsidian
and others.
I’m working on a series of dev diaries around the building of fiber-note:
ruby on rust
An implementation of ruby in rust
ruby-on-rust is an implementation of ruby language in pure rust, consists of (barely working) lexer and parser, and a WIP interpreter.
I started this project as a way to learn rust. Eventually, I’ve learned more than that, including lexer & parser, ragel
, and a lot of ruby’s hidden magic.
Lots of the grammar rules and AST conventions are ripped from the parser
gem. For lexer, I adapted some rules from parser
and ported from ragel-6 to ragel-7. For parser, I use syntax-cli
as the parser generator.
references.wiki
tracking pop culture references
I watched/played so many tv shows/video games that I have to build references.wiki to organize and visualize pop culture references between tv shows, video games, fictional characters, etc.
I composed scrappers to fetch and parse the occurrences of pop culture references in different wikia (fandom) sites. Currently I’ve parsed around 5000 references between 1000 works/celebrities.
I built my own knowledge base to cross-reference sources like wikidata, google kg, and wolfram alpha. I implemented a customized editor for user to create new references between works.
The next step will be UGC workflow (I’m considering a git-based one), editing history and data visualization.
project yoru
visual novel generator
Project yoru is a set of projects to build cross-platform visual novel games from only assets and scripts, without coding.
To build this project, I was using polymer
, lots of gulp
scripts, phonegap build
, which are all practically dead by now :|
tiny projects
- icons.land: to search icons from different packs like font-awesome, ionicons, etc.
- wiki flutter: a wikipedia client in flutter
- streaming guide: help to decide which streaming service (nf, hulu, disney+) should you subscribe to
packages/libraries/utilities
- raycast shiori extension : Raycast extension for shiori bookmark manager
- acts_as_reactable : emoji reactions support for rails
- actioncable_dart: action cable websocket protocol ported to dart
- flutter_html_widget: parse HTML dom into flutter widgets
publications
as a translator
- I’m a co-translater of the simplified Chinese version of MongoDB: The Definitive Guide from O’Reilly