RSSAmplifier

Blog

houqp

Recent content on houqp

about.houqp.meRSS feed ↗5 posts

Latest posts

Write your own Go static analysis tool

Writing a static analysis tool for a programming language could be daunting for those who hasn’t done it before. The good news is for Golang, it’s actually very straight forward if you know how to leverage existing packages exposed by the Go compiler itself. In this series of blog posts, I would like to share some of tips I learned from building my first Go static analysis tool:…

How to make your C codebase rusty: rewriting keyboard firmware keymap in Rust

Recently, my colleague introduced me to QMK 1, an open-source keyboard firmware. Like many non-trivia C projects, macro is heavily used everywhere, especially in keymap files 2. It didn’t bother me much since I have been programming C for many years. But I kept thinking to myself, “what would it look like if I can start from scratch and redesign everything using Rust’s more…

About

I spend majority of my time hacking on engineering projects. When I am not engineering, I love to: Read books and news. Workout and practice martial arts, Muay Thai and BJJ. Play guitar, finger style. Cook. I used to paint a lot, some of my digital works can be found here. You can contact me through YUc5MWNYQXVhVzVuUUdkdFlXbHNMbU52YlE9PQo=.

Painting

I started practicing traditional painting at the age of 7. Now I mainly paint with my Wacom. Painted with a mouse in Painter My first try with Wacom. Just a copy from a master’s work Another copy from a master’s work Adapted from World of Warcraft CG

Projects

See my github page for more activities. As Maintainer KOReader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices. ROAPI Create full-fledged APIs for static datasets without writing a single line of code. SQLVet Go fearless SQL. Sqlvet performs static analysis on raw SQL queries in your Go code base.…