Kaggle - Facial Expression Recognizer
This post talks about the kaggle challenge of Facial Expression Recognizer
This post talks about the kaggle challenge of Facial Expression Recognizer
This post talks about vehicle detection from video stream
This post talks about the Advanced Lane Finding algorithm for extracting lane lines
This post talks about the Behavior Cloning project from Udacity where a car is trained to drive in a simulator.
This post talks about the Traffic Sign Classification Problem with Tensorflow
This post talks about the lane finding algorithm used for Project 1
This post is about a small experiment of loading Openstreetmap files and rendering them with both matplotlib and vispy. Also tried a simple routing with dijkstra and A*.
Diagram creator for my blog
ZNode is a minimalistic browser based flowchart module. I took this project and modified it heavily so that it could do some basic javascript introspection and show them as blocks. Think of it like UML diagram generation.
Regular expressions or regex are pretty popular for text searching and replacing. They are widely used and in this post I will basically link my implementation in python.
I have looked at spidermonkey and a few other JIT engines and kept on reading about LuaJit over and over again. I finally decided to look at Luajit closely and realized that it is a pretty complex piece of engineering but done single-handedly by Mike Pall. The number of source files is way smaller compared to spidermonkey or v8 but that's probably because Lua is much simpler than javascript. Since is fairly closer to python I wanted to try my hands out to modify Luajit's code to experiment if I could run basic python on it.
While brushing up on algorithms, I decided to reimplement tries and ternary trees and in the process thought it would be a good idea to write a UI accompanying the code so its easier to see. Could further add timing code to this to see the performance too.
A structurizer is used when the IR is unstructured but the code to be generated needs to be structured. A structured control flow represents idioms which are generally present in higher-level languages such as if-else, for-loop, while-loop, do-while etc.
A Dominator Tree is a CFG analysis which is used in compilers to aid in other optimizations. This is useful when doing optimizations like code-hoisting or code sinking etc.
Constant propagation and folding are generic optimizations which can greatly simplify the intermediate representation. It is the basis for other optimizations like loop unrolling, loop simplification, function inlining etc.
A Compiler intermediate representation - consideration and implementation details.
PyVyM is a Virtual Machine for python and this post describes a debugger for that VM.
A simple python based JIT with a C module backend which uses mmap to execute arbitrary x86 code.
A Simple Type Verifier for Python Functions using Decorators. Type verification is useful in debugging or when code is written to handle only a specific set of types.
Description of the design of a python based VM. This post details the model, exec_frame stack and other details sorrounding the implementation.
A virtual machine for python designed in python. It also has an accompanying debugger which will be described in a later post.