Blog Posts

Liam
Jul 18, 2018
Blogpost Cover

Angular is great again - making SSR app with high performance in google lighthouse

While exploring the option on making a blog with content management system, I give a try on making use of koa2 + Postgres + Angular and the result turns out quite good.

Using google lighthouse to test it, resulted in 91/100 performance, 100/100 progressive web app, 100/100 accessibility, 100/100 best practices, 100/100 SEO, with the main bundle size in 775.7KB.

View
Liam
Feb 01, 2018

Rust For Web Development Part 1

With the asynchronous I/O libraries of Rust is mostly ready, Rust can serve web traffic without being I/O bound. However, the only downside is that framework is not mature yet.

Edit on year Jun 19, 2018

Project has been discontinued due to Rust still does not support Async/Await which i think is crucial for web development

View
Liam
Feb 05, 2017

Introduce FawkesJs

It has been awhile since I have been inactive in open-source world. Although nowadays trend is in VR, AI and iOT, API development is still needed.

Edit on year Jun 19, 2018

Project has been discontinued due to Koa2 + Graphql basically can do what I plan to do

View
Liam
Jul 09, 2016
Blogpost Cover

Loopback for NodeJS

In a nutshell, loopback is a NodeJS framework for building rest API server

Edit on year Jun 19, 2018

Currently favor Koa2 more for NodeJS

View
Liam
Jun 11, 2016
Blogpost Cover

Lubuntu to replace Window

As a developer, you must have heard of ubuntu. FYI, Lubuntu is a light weight version of Ubuntu. Using Lubuntu, you can have more control on your PC.

View
Liam
May 20, 2016

Google Tensor Processing Unit

If you have seen the Google's I/O 2016, you might have known about Google Tensor Processing Unit, or TPU.

View
Liam
Apr 23, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 6

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Apr 16, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 5

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Apr 09, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 4

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Apr 02, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 3

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Mar 26, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 2

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Mar 19, 2016
Blogpost Cover

TensorFlow Udacity 1_notmnist - Part 1

Basically 1_notmnist is to learn how to display data in Jupyter Notebook. Besides, it also let us know on sklearn - a python machine library - so that we can then compare with TensorFlow. This is the exact ipynb file at Tensorflow Github Repo.

View
Liam
Mar 12, 2016
Blogpost Cover

AlphaGo Win Lee Sedol, New Milestone for AI

Quoting from wikipedia, as of 12 Mar 2016:

AlphaGo is a computer program developed by Google DeepMind in London to play the board game Go. In October 2015, it became the first computer Go program to beat a professional human Go player without handicaps on a full-sized 19×19 board. In March 2016, it beat Lee Sedol in the first three games in a five-game match, the first time a computer Go program has beaten a 9-dan professional without handicaps.

AlphaGo's algorithm uses a combination of machine learning and tree search techniques, combined with extensive training, both from human and computer play.

View
Liam
Mar 05, 2016
Blogpost Cover

Fixing Local Jekyll after Upgrade to 3.0

You Can see that in my repo commit:

And to have same jekyll version with Github Page my local has updated to Jekyll 3.0 with gem update jekyll too

View
Liam
Feb 27, 2016
Blogpost Cover

Sharing - Meatier - a meteor alternative

Meteor is awesome! But after 3 years, it's starting to show its age. This project is designed to showcase the exact same functionality as Meteor, but without the monolithic structure. It trades a little simplicity for a lot of flexibility.

View
Liam
Feb 20, 2016
Blogpost Cover

Golang Rest API

We will use gvm to install go for the current user. Note that we need to use go1.4 to compile go1.5 because go1.5 use go itself as compiler, therefore it need to have go installed.

Note that gvm is mainly for development use, IMHO using tar install or docker is a better way for production server.

View
Liam
Feb 12, 2016
Blogpost Cover

PostgreSQL [9.5.0] vs MariaDB [10.1.11] vs MySQL [5.7.0] year 2016

On Dec 2015 I have done a similar benchmark on postgres vs mariadb vs mysql, however I had done some serious mistake on the benchmark and caused the result to be biased towards MySQL.

Therefore I had enhanced the benchmark. The benchmark script and how to setup is at this Github Repo.

View
Liam
Feb 07, 2016
Blogpost Cover

Udacity Deep Learning Course By Google

FYI, the course link is https://www.udacity.com/course/deep-learning--ud730. This course takes approximately 3 months with assumption 6hrs/wk (work at your own pace).

View
Liam
Jan 30, 2016
Blogpost Cover

SaltStack Vagrant Part 3

Last week we talked about how to make use pillar to create users in our master-less salt server. Today will be about how to use salt-formula and grains. All SaltStack Article

View
Liam
Jan 23, 2016
Blogpost Cover

SaltStack Vagrant Part 2

Last week we talked about creating a simple httpd service when we spin up our vagrant VM. This week I will continue to talk more about Salt.

View
Liam
Jan 16, 2016
Blogpost Cover

SaltStack Vagrant Part 1

  • SaltStack software orchestrates the build and ongoing management of any modern infrastructure.
  • SaltStack is also the most scalable and flexible configuration management software for event-driven automation of CloudOps, ITOps and DevOps.
  • SaltStack is one of the top configuration management framework among Chef, Puppet, Ansible and SaltStack.
View
Liam
Jan 09, 2016
Blogpost Cover

Git Merging or Combining Multiple Commits

  • many commits inside a feature branch
  • small enhancement or defect fix
  • not using git stash
View
Liam
Jan 02, 2016
Blogpost Cover

Year 2015 Review

This article write about how I review my 2015

View
Liam
Dec 26, 2015
Blogpost Cover

XMind Mind Mapping Software

XMind is one of the most popular mind mapping software.

View
Liam
Dec 19, 2015
Blogpost Cover

PostgreSQL vs MariaDB(MySQL) 2015

So recently I want to find benchmark for RDBMS between MySQL/MariaDB and PostgreSQL. To my surprise, most benchmark result is outdated, therefore I have decided to benchmark them, using MariaDB(MySQL) [10.0.22(5.6.26)] vs PostgreSQL [9.2.14]

View
Liam
Dec 12, 2015
Blogpost Cover

Seek Asia Hackathon 2015 website

It all begins from the day I play the role as seekasia hackathon committee. We have decided to create a single page application for our co-worker to view the latest information. After considering all the options, I have decided to put the website at seekasia-hackathon-2015.github.io, after review done we will then move the files to seekasia website.

View
Liam
Dec 05, 2015
Blogpost Cover

Laravel5 Productive Tips

With the news that PHP 7 had been released on December the 3th, I'll expect a spike in usage of laravel usage. PHP 7 is definitely the best tool for developing web application quickly.

View
Liam
Nov 28, 2015
Blogpost Cover

Laravel Git CentOS 7 Setup

Laravel currently is the most popular PHP framework. With the news that PHP 7 is going to release on December the 3th, I'll expect a spike in usage of laravel usage. PHP 7 is definitely the best tool for developing web application quickly.

View
Liam
Nov 21, 2015
Blogpost Cover

More About My Technology Stack 2015

My main job at JobStreet is working as a programmer that use PHP MVC framework. To be more detail, it is developing using the Linux Apache Mysql with PHP MVC (model view controller) framework.

View
Liam
Nov 14, 2015
Blogpost Cover

Tensorflow (Machine learning toolset Open Source by Google)

On 10th November, I saw the news that Google open sourced Tensorflow. As a programmer that is passionate towards AI, this is a thing that I must try out.

View
Liam
Nov 07, 2015
Blogpost Cover

Markdown Enhancer JS

Markdown Enhancer JS is a plugin to customize your markdown especially for static site generator such as Jekyll or Hugo. Main purpose to let the markdown support Github checkbox - [ ] or - [x] which is not officially supported.

View
Liam
Oct 31, 2015
Blogpost Cover

Kaggle titanic challenge with Julia commentary

Recently Julia is on the trend, due to its purpose of becoming an easy-to-use scripting language, while giving near to C performance speed. I always see it as combination of Python + R + C, while some might think it as Python + Matlab + C

View
Liam
Oct 24, 2015
Blogpost Cover

PHPStorm Xdebug Vagrant

Xdebug is a PHP extension which provides debugging and profiling capabilities. Most PHP IDE has built in integration with Xdebug, it works as below:

  • set breakpoints at IDE
  • click debug
  • resume and continue to next breakpoint
View
Liam
Oct 17, 2015
Blogpost Cover

React Native Part 3

In react native AwesomeProject example, it gets bundle files with 2 options:

  1. Load from development server
  2. Load from pre-bundled file on disk
View
Liam
Oct 13, 2015
Blogpost Cover

React Native iOS & Android

React Native is a hot topic recently in mobile app development world. It can be easily installed via Facebook guide.

View
Liam
Oct 10, 2015
Blogpost Cover

React Native Part 2

Last week we talk about react native, that is after I have go through a few days of environment setup and testing out react native.

View
Liam
Sep 26, 2015
Blogpost Cover

Go Concurrency (Google IO 2012)

Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.

View
Liam
Sep 19, 2015
Blogpost Cover

Goroutine

A goroutine is a lightweight thread managed by the Go runtime to support concurrency. It is considered a better mechanism than nodejs event event loop or normal thread.

View
Liam
Sep 12, 2015
Blogpost Cover

Atom Tips Extension Base Setting

Previously when coding with Atom, there is a thing really irritating - when I code for php I have to set tab length 4 but for python or jade, I need tab length of 2.

Normally we set the tab length at File > Settings.

View
Liam
Sep 05, 2015
Blogpost Cover

Unconditional Basic Income

An UBI - unconditional basic income (also called basic income, basic income guarantee, universal basic income, universal demogrant, or citizen's income) is a form of social security system in which all citizens or residents of a country regularly receive an unconditional sum of money, either from a government or some other.

View
Liam
Aug 29, 2015
Blogpost Cover

Autoclicker with python

This autoclicker is mainly for the game realm grinder, however this autocicker should be easily applied to other clicking game as well.

View
Liam
Aug 21, 2015
Blogpost Cover

PHPStorm 9.0 Review

As for the first glance, I still like Atom UI more. However phpstorm has some nice feature more such as code navigation, better debugging tool and less crash happen(however PHPStorm uses more memory).

View
Liam
Aug 15, 2015
Blogpost Cover

Fix vagrant connect to wrong box - Windows

So there is a strange behavior in using vagrant for my work. That is when I start vagrant before starting vmware, it will not find the correct path to the vagrant box and thus create a new VM.

View
Liam
Aug 08, 2015
Blogpost Cover

Coursera course review - Algorithms

Quite like this course as I have not take standard algorithm course in my university. In this course, I've learn how the algorithm works and its theory.

The course coding assignment is not bad though. I've been using python to solve this 6 week code assignment.

View
Liam
Aug 01, 2015
Blogpost Cover

Atom Review After 2 Weeks

You can view back my previous related article about atom first use review.

View
Liam
Jul 25, 2015
Blogpost Cover

84 days transformation

Inspired by the result of Kris Gethin 84 days transformation, I will also try to archive huge process in 84 days.

View
Liam
Jul 18, 2015
Blogpost Cover

Atom First Use Review

It comes with lots of nice packages as default. For example PHP, git source control and etc. It also comes with spell checking, word autocomplete for writing normal blog post. It has increase my productivity when writing small project or blog post.

View
Liam
Jul 11, 2015
Blogpost Cover

Trying to use Torch7 CUDA

CUDA® is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit.

View
Liam
Jul 04, 2015
Blogpost Cover

Coursera course review - Machine Learning by Andrew Ng

This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include:

  • Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks).
  • Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning).
  • Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).
View
Liam
Jun 27, 2015
Blogpost Cover

Real time chat with Mongodb Express AngularJS Node.js

What I am going to write about is a real time chat proof of concept which I have done in 2014. It is now at Github. A demo can be found at http://nodejslim.herokuapp.com/

View
Liam
Jun 20, 2015
Blogpost Cover

Kaggle titanic challenge with torch7

Kaggle titanic challenge is a famous knowledge competition which many new Kaggler will try their first Kaggle competition. Since there are currently no tutorial to solve this challenge with artificial neural network, I decided to use torch7 to compete in this competition. FYI, click here to get the data.

View
Liam
Jun 05, 2015
Blogpost Cover

Kaggle contest review - Bike Sharing Demand

Bike sharing systems are a means of renting bicycles where the process of obtaining membership, rental, and bike return is automated via a network of kiosk locations throughout a city. Using these systems, people are able rent a bike from a one location and return it to a different place on an as-needed basis. Currently, there are over 500 bike-sharing programs around the world.

View
Liam
May 30, 2015
Blogpost Cover

Coursera course review - From Nand to Tetris

Build a modern computer system, starting from first principles. The course consists of six weekly hands-on projects that take you from constructing elementary logic gates all the way to building a fully functioning general purpose computer. In the process, you will learn -- in the most direct and intimate way -- how computers work, and how they are designed.

View
Liam
May 25, 2015
Blogpost Cover

Coursera course review - Android

This course full name is Programming Mobile Applications for Android Handheld Systems, and it contains part 1 and part 2. It is taught by Dr.Adam Porter from University of Maryland.

View
Liam
May 24, 2015
Blogpost Cover

Paper reading - Weight Uncertainty in Neural Networks

Backpropagation, is a well known learning algorithm in neural network. In the algorithm, the weight calculated is based on the out put of the result. To prevent overfitting and introduce more uncertainty, its often comes with L1 and L2 regularization.

Weights with greater uncertainty introduce more variability into the decisions made by the network, leading naturally to exploration

View