Blog

Here you can find all my previous posts:

Nix for Coq Development
Nix is a great package manager that can be used to control various complex environments easily, such as Coq development with ocaml extraction with various dependencies.
MSR PhD Workshop on Next-Generation Cloud Infrastructure
Summary of the microsoft talks and posters presented at the MSR PhD Workshop on Next-Generation Cloud Infrastructure.
Verismith
Verilog Fuzzer to test the major verilog compilers by generating random, valid Verilog.
Realistic Graphics
Environment maps can be used to render objects with realistic lighting by indexing into the map.
Jekyll to create a Portfolio website
Jekyll can be effectively used to publish a static website, even containing multiple pages such as a portfolio.
Noise Silencer
A real-time noise cancelling processor that reduces noise from audio.
FMark
FMark is a markdown engine in F#, supporting various extensions such as latex rendered math and macros.
Emotion Classification using Images
A convolutional neural network was trained to classify images based on 6 emotions, achieving an accuracy of about 60%.
YAGE
YAGE is a game engine that was built in C++ using OpenGL as a back end.
Emacs as an Email Client
Emacs can be used effectively as an email client to quickly write emails using familiar keybindings, as well as easily linking emails to org files for reminders.
C to MIPS32 Compiler
Implemented a C compiler to MIPS assembly code using flex and bison as the frontend. An abstract syntax tree is built from the parser and code generation is implemented as part of the AST.
CPU Introduction
Introduction to how a CPU works, following the MIPS I architecture and explaining properties such as pipelining.
Mips Processor
Implemented a MIPS I CPU simulator in C++ which can execute assembly code.
FPGA Note Reader
We built a real-time music note reader using an FPGA and a camera. It can read custom sheet music and play it back in real-time. The pitch is also adjustable using a blue marker placed anywhere in front of the camera.