Houjun Liu

Projects Index

# index

Projects Index is a index that contains a list of almost all projects for which I have ever worked on. Major categories are highlighted from chapter titles.

Research Projects

I end up doing a lot of research these days, and so have isolated that to a different, academic homepage.

For a list of my recent research, please head to the Research Index.

Media Production Projects

I produce a lot of media (videos, podcasts, blogs, live events/talks) as a part of publicizing my work or for other purposes. For those types of projects, head on over to Production Index.

Large-Scale Endeavors

Condution

An open-source task management app. Website.

Motivation: I got really tired with most other to-do apps after swapping them out over and over again, until I got fed up and built one with some friends.

  • Role: Co-Founder, Lead Developer.
  • Technologies: React, Ionic, Firebase, Typescript, Swift, PostgreSQL
  • Key facts: 10,000+ users, 8-person team, featured in the Bay Area almanac, praised by Asana’s head of developer relations for “open-source advocacy”

MODAP

A R&D team for fireline safety during emergency fires. Repository.

Motivation: a friend approached me with an opportunity to help our local community, especially with the increased influx of fires.

  • Role: Team Lead
  • Technologies: Rust, Torch, ARM, electronics (i2C, UART, messaging protocols, etc.)
  • Key facts: coordinated 5 engineers in developing new technology, supported by Dr. Robert G. Gann, Deputy Director, Center of Excellence for Advanced Technology Aerial Firefighting at the state of Colorado as well as Captain Mason of CalFire

CMU batchalign

A pipeline for the automated preparation of annotated CHAT transcripts from raw audio. Repository.

Motivation: my work over the summer.

  • Role: Author
  • Technologies: Torch, Huggingface, NLTK, CLAN, computational linguistics
  • Key facts: work developed with and maintained under Prof. Brian MacWhinney at CMU’s psycolinguistics department.

AIBridge

A bootcamp for non-CS students in data science. Website

Motivation:

  • Role: Co-Founder, Lecturer
  • Technologies: Python, ScyPy, Scikit-learn, Pandas
  • Key facts: worked with Prof. Xin Liu at UC Davis to develop an introductary one-week bootcamp in ML. We piloted the program this summer at Davis to an in-person group of 20 PhD students in food science sponsored by AIFS.

Full-Stack Projects

Simon

Augmenting the functionality of large-language-models with Elastic. Repository.

Motivation: LLMs have become more and more prominent, and frameworks like ReAct is finally mature enough to produce coherent, well reasoned responses.

  • Role: Author
  • Technologies: Huggingface, GPT-3.5, ElasticSearch

tractotato

CommonLisp macroset for time tracking. Repo.

Motivation: I wanted to learn CommonLisp macros syntax after reading the Land of Lisp book.

  • Role: author
  • Technologies: CommonLisp

Scratchathon Portal

Portal to submit projects for a scratch hackathon I hosted. Repo.

Motivation: my friends McGuy and fuelvin, both content creators on Scratch on YouTube, put together a Scratch hackathon summer of 2020. This is the submission portal.

  • Role: author
  • Technologies: React, Vercel, Firebase

syzygy

Library rethinking to-do list dating to be more flexible and powerful. Repo.

Motivation: a friend and I wanted to innovate beyond the scope of Condution to see how we can abstract away a to-do list system to its bare minimum.

  • Role: co-founder, co-author
  • Technologies: Rust

positron

Library for building lightweight native apps using web tech. Repo.

Motivation: I wanted to re-make electron to be more lightweight using Suckless’ Surf browser concept.

  • Role: author
  • Technologies: C++, GTK

OS/Driver Development

Broadcom Wifi/Bluetooth 4377 Chip Linux Driver

A driver patchset to support cutting-edge Broadcom 4377 Wifi/Bluetooth chips. Repo.

Motivation: I needed to be able to use Wifi on my laptop while running Arch Linux.

  • Role: author
  • Technologies: C, (small amounts of) Assembly
  • Key facts: integrated into the t2linux pipeline used to make WiFi possible on Linux for most MacBooks released after 2018

Distributed Algorithms and Parallel Computing

coveather

An encrypted, anonymized system for protected health information verification. Preprint, Repo, and internal note.

Motivation: I wanted to be able to make vaccine passports more feasible because the current COVID testing/vaccine verification scheme is really bad.

  • Role: author
  • Technologies: Clojure, core.async concurrency, Monte-Carlo simulations, blockchain, PGP
  • Key facts: project won first place at the California STEM Fair, and got special recognition from the Yale Science and Engineering assoc. Total award $3000.

multischedule

A multiple-asynchronous scheduling and delegation algorithm. Repo.

Motivation: (didn’t even come close to getting there) I wanted to create a way to solve or simplify debugging loop overrun problems in robotics codebases.

  • Role: author
  • Technologies: Clojure, core.async concurrency

rotifer

A work-in-progress distributed algorithm for taproot. Repo.

Motivation: I wanted to make taproot even more distributed if possible.

  • Role: author
  • Technologies: Clojure, XML, UDP, ICE

simian

Exploring OT/CRDT and collaborative text editing for taproot. Repo.

Motivation: I wanted to learn about how apps like Google Docs work, and explore Operational Transformation/CRDT, in hopes of putting it into taproot.

  • Role: author
  • Technologies: Clojure, OT, CRDT

aron

A distributed multi-dimensional optimization tool. Repo.

Motivation: Nueva’s course scheduling was quite a mess, and I wanted to help. It is a very complex problem and this project is in the freezer at the moment.

  • Role: author
  • Technologies: CommonLisp

mitte

Easy UDP sockets. Repo, Docs.

Motivation: a friend and I wanted to explore UDP.

  • Role: co-author
  • Technologies: Rust, UDP, ICE (connection)

Cryptography and security

See also: coveather.

jrainbow

An implementation of a MD5 rainbow table. Repo, Crate.

Motivation: I wanted to understand how Rainbow Tables worked.

  • Role: author
  • Technologies: Rust, MD5

Note-taking Systems and \(\LaTeX\) improvements

taproot

A shared zettlekasten of notes and learning resources put together by some friends and I. there has been a few iterations. Current Repo, Current Site, Legacy Site, Even More Legacy Site.

Motivation: I started writing nice \(\LaTeX\) PDFs of my homework, and some friends wanted to have access to it. Later when I mentioned it, another friend had a similar need; so we asked many people to pool our notes and work together to share.

  • Role: co-founder, co-lead, developer
  • Technologies: Next.JS, XeLaTeX, GNU Make, Firn, Hugo, Emacs Org, Org-Publish, Markdown

blag

The zettlekasten you are currently in! My currently maintained personal knowledgebase. Repo, Site.

Motivation: I wanted to experiment with more advanced note-taking techniques after developing taproot, and it ended up superseeding the note-taking abilities of taproot.

  • Role: author
  • Technologies: Next.js, Emacs Org, Hugo

gdoc.el

A utility to enable GNU Emacs to edit Google Doc documents based on the gdrive utility. Repo.

Motivation: I wanted to edit Google Docs in Emacs!

  • Role: author
  • Technologies: GNU Emacs, elisp

interesting

Things that my friends and I find interesting, chucked on the web and builds itself. Repo, Site. No longer maintained.

Motivation: many text channels were too clogged with stuff my friend group found interesting, so I wanted to take initiative to collect them.

  • Role: co-founder, author
  • Technologies: Next.js, Vercel, remark, CommonMark Markdown

Public Configurations

borg

Automatically configure terminals. Repo.

Motivation: I needed a way to copy my system terminal config onto a system quickly.

  • Role: author
  • Technologies: Bash, Zsh, OhMyZsh

.config

A group of sane configuration files. Repo.

Motivation: some Redditors asked for my Config, and I thought I’d share it to benefit the community; also for personal backup.

  • Role: author, maintainer
  • Technologies: Unix administration, Perl, Ruby, LISP

.emacs.d

Simple, powerful, and semantic GNU Emacs configuration for personal use. Repo.

Motivation: I wanted to track my progress in developing a working Emacs config.

  • Role: author, maintainer
  • Technologies: GNU Emacs, elisp