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:…
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…
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=.
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
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.…