Satyajit Sarangi bio photo

Satyajit Sarangi

I am a software engineer currently residing in Bay Area.

Email Twitter LinkedIn Github Stackoverflow

All Posts

2017

2016

OpenStreetMap rendering and simple Routing.

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*.

ZNode - A Javascript Introspection module

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.

Adapting Luajit for Python 3

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.

Incremental text search using tries and ternary trees

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.

Constant Propagation & Folding.

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.

Debugger for PyVyM

PyVyM is a Virtual Machine for python and this post describes a debugger for that VM.

PyVyM - Part 2. Design description

Description of the design of a python based VM. This post details the model, exec_frame stack and other details sorrounding the implementation.