CAT: dev



Isn't this confusing — ECMAScript, ES2015, ES6, Javascript, JScript, CoffeeScript, TypeScript... what the heck!?

Feng's view of how these confusing Javascript words are linked together


The mother of all is the ECMAScript, which is the spec. It has some wild release notion and cycles. The important one for ...


Dev structure

If the Bible story happens today

This is a common question any team/project will have to address — how to structure the knowledge we know of a project so that we are not missing things? Each project/application, of course, is different. But the overall is actually quite common. Here ...


Pandoc workflow

Pandoc is awesome. I have been using it for the last six months now writing a reference architecture document for work. Here is some tips of how I'm using it.

doc header

Things that are specific to that document. This, thus, is context sensitive — title, subtitle, author, bibliography, abstract ...


Browser proxy

This is a common trick. Say we have local machine (A), and a remote machine (B). If we can SSH from A→B, we can reroute browser traffic from A to B, much quicker than X-windows.

  1. On A, ssh -vv -ND ...


Reveal slides

reveal.js is pretty awesome. I have been using it for the last 9 months now and love it. It was a bit of hassle to set it up initially. Once you have an example, yo can replicate and be productive ...



Finally a book on UML that makes sense to me (and is short enough so I was willing to read it, in one morning).

Milestone 1: requirement review

Everything starts with an analysis of the problem at hand. One thing learned and I'd like to clarify is requirement — it ...



Introduce tools to create screencast.


Netbox revised

Netbox is a nice level 1 tool (for levels, see capability model). But we need more. Managing a lab or a rack is more than level 1. On top of all these, we talk about automation, which implies capabilities at least to level 4. Therefore, we used Netbox code as ...


Django to REST

I have been building Django based web application for a while now. One design/request I get often is a REST API. Once the model data is exposed in REST, one can truly build a complete separate frontend ...



KVM is something new to me, and it sounds awesome. The experience I want to have is a local dev that I can copy & paste from some base image in case I forgot to take a snapshot at milestone. This way I feel comfortable to stand up a sandbox, try ...


Sensitive touchpad

The symptom is that typing jumps all over the place.

Tune sensitivity

The idea here is to use xinput command to tune finger sensitivity values so to find a good balance. Also, we are to disable touch point (the little read dot rubber thingy on Lenovo's laptops) since I ...


Bye Bye GFW

The GFW is nothing but an anti-humanity instance that blocks knowledge transfer and information sharing in the 21st century when brain is the competition advantage and this gov decides to sacrifice all the future with a vain hope that creativity can continue to flourish while its citizens are excluded from ...


You got mail

After becoming an Emacs user for the last few months, I acquired a burning desire to migrate as much as my daily text editing activities into Emacs environment, in particular, emails.

Having tried offlineimap for a bit, I ended up battling its ...



What a wonderful editor!

I wouldn't even call it an editor because it can do so much beyond text editing. Still on the learning curve to get a grasp of what it can do in my daily development workflow. Here is to document the init.el that I'm ...



My favourate desktop manage which tiles windows neatly so I never worry about cluttered view while opening and closing windows.

Here is the config file I'm using.


# colors for focussed and unfocussed window ...


Deployment architecture

Deployment strategy for system architecture is centered around AWS services: EC2 for application server, RDS for database, and S3 for static files and media files. AWS does have message service as well. But to maintain a fair level of portability, I am not using that. Instead, vanilla message broker such ...


General system architecture

The word "system architect" has been puzzling to me. I was hired to be one at one point. But it was not a comfortable position. How much do we understand the business? What is the problem we are to solve? How does ...


DIY Pelican theme

As a Python house, Pelican is definitely a winner for our blog site. But like any software engineer who hold a high standard to his work, I got turned off by all the available themes. "Ugly", "Where is the document?", "Why my translation is not shown?", I felt running in ...


Buildbot continuous integration setup

The whole point of quick development cycle is to shorten the path between a verbal or written requirement, and an actionable application that reflects an implementation of this requirement. Therefore, it becomes crucial to set up an CI environment not only to facilitate development and testing, but to enforce our ...


Crawler, TOR, and be a good web citizen

Many projects I have done involved harvesting data from public sites. Data crawling is an exciting business. On one hand, it is easy to develop a crawler these days. In the Python world, plenty tutorials will show you how to build a simple crawler using the Python urllib, or building ...