NAS
How to setup a home VPN with Synology NAS 31 Mar 2020
VPN
How to setup a home VPN with Synology NAS 31 Mar 2020
UniFi
How to adopt UniFi Security Gateway to an existing network 30 Mar 2020
DDNS
Dynamic DNS with CloudFlare 27 Mar 2020
Hacker News
Traffic from #1 post on Hacker News 02 Mar 2020
Git
Debugging with git bisect 18 Dec 2019
Pihole
Pi-hole 25 Sep 2019
Homelab
Using Synology NFS as external storage with Kubernetes 01 May 2020
Tips for first time rack buyer 01 Apr 2020
How to setup reverse proxy for homelab with Caddy server 01 Apr 2020
How to setup a home VPN with Synology NAS 31 Mar 2020
How to adopt UniFi Security Gateway to an existing network 30 Mar 2020
Dynamic DNS with CloudFlare 27 Mar 2020
Pi-hole 25 Sep 2019
Choosing a wireless router in 2019 27 May 2019
GraphQL
Notes on GraphQL 23 May 2018
Talk
Kubernetes Meetup #2 slide 01 May 2018
WebAssembly
Tips on reducing WASM file size with Emscripten 01 Jul 2019
Some lessons learnt after converting a native module to WebAssembly 22 May 2019
Getting started with WebAssembly 26 Jun 2017
Open source
An extremely fast streaming SAX parser for Node.js 01 Jun 2020
camaro v6 19 May 2020
Fastest way to transform XML to JSON in Node.js 30 Aug 2018
node-prune 18 Nov 2017
kompression - koa compression middleware with support for brotli 17 Nov 2017
camaro 31 May 2017
Parsing XML at the Speed of Light 29 May 2017
Docker
Building containers in pure Bash and C 25 Dec 2017
Docker Containers on the Desktop 27 Oct 2017
Minimal Node.js docker container 04 Oct 2017
Non-privileged containers FTW 05 Sep 2017
node-pre-gyp and CI 28 Jun 2017
minideb - a small base image based on Debian 16 Apr 2017
Using alpine as base Docker image 13 Apr 2017
AWS
The silence of the Lambda 15 Dec 2017
Spot instances best practices 15 Feb 2017
Kubernetes
kubectl run generators removed 12 May 2020
Using Synology NFS as external storage with Kubernetes 01 May 2020
Debugging Kubernetes: Unable to connect to the server: EOF 25 Apr 2020
Kubernetes Meetup #2 slide 01 May 2018
Kubernetes-hosted application checklist (part 2) 13 Oct 2017
Kubernetes-hosted application checklist (part 1) 13 Oct 2017
Running twemproxy on kubernetes 11 Apr 2017
Setting up traefik as Ingress controller for Kubernetes 04 Apr 2017
Spot instances best practices 15 Feb 2017
Debugging why k8s autoscaler wouldn't scale down 11 Jan 2017
Setting up fluentd log forwarding from Kubernetes to AWS Cloudwatch Logs 27 Dec 2016
Kubernetes spot termination notice handler 25 Dec 2016
GopherCon 2016: Kelsey Hightower - Building a custom Kubernetes scheduler 25 Dec 2016
Why we choose Kubernetes over ECS 17 Dec 2016
kube-monkey 08 Dec 2016
Automate Let's Encrypt certificate genernation for Kubernetes Ingress 20 Nov 2016
Sharing secret data in Kubernetes 15 Nov 2016
Distelli - Your DevOps Dashboard for Kubernetes 11 Nov 2016
Getting started with Kubernetes 28 Oct 2016
Book
No More Vietnam 07 Sep 2016
Redis
Advanced filtering and sorting with redis (part 2) 07 Oct 2019
How to delete Redis keys using pattern 09 May 2019
Autocomplete at speed of light 07 Feb 2019
Advanced filtering and sorting with redis (part 1) 12 Jun 2018
Redisearch - full text search with Redis 22 May 2017
codis - proxy based redis cluster 01 Apr 2017
Redis as a JSON store 22 Mar 2017
Using ioredis with twemproxy 11 Dec 2016
Implement autocomplete with redis 28 Mar 2016
iojs
Atom switches to io.js 04 Feb 2015
io.js v1.0.0 released 14 Jan 2015
AngularJS
Using AngularJS with jekyll 14 Jan 2015
AngularJS diary - Day 4 09 Jan 2015
The next bullet on my resume: AngularJS 08 Jan 2015
Machine learning
Shower thought about movie recommedation 01 Jan 2015
Node.js
kompression - koa compression middleware with support for brotli 17 Nov 2017
Minimal Node.js docker container 04 Oct 2017
n-api: add support for abi stable module API 03 Apr 2017
ES6 in Node.js 09 Oct 2015
Go Native - Calling C++ From NodeJS 01 Oct 2015
Official Oracle driver for Node.JS 05 Feb 2015
Some of the most useful tips I learn when working with NodeJS 29 Jan 2015
Install io.js on Mac OS X 28 Jan 2015
REST APIs made easy with StrongLoop 23 Jan 2015
Fuck callbacks! Let's use generators 18 Jan 2015
Scaling node.js application with cluster 15 Jan 2015
io.js v1.0.0 released 14 Jan 2015
Pretender - a mock server library 09 Jan 2015
nodejs: callback vs promise 23 Dec 2014
How to fix `Logon failed for login 'username' due to trigger execution` error with mssql 23 Dec 2014
Machine Learning
Awesome maching learning 26 Dec 2014
How to setup Sublime-IJulia with Sublime Text 22 Dec 2014
Review
Microsoft Sculpt Ergonomic Desktop review 01 Sep 2019
Filco Majestouch 2 Ninja Italian Red (TKL) review 18 Oct 2014
SQL
How to find table name when knowing column name and column value in Oracle 19 Sep 2014
Tip
Debugging with git bisect 18 Dec 2019
Tips on reducing WASM file size with Emscripten 01 Jul 2019
Some lessons learnt after converting a native module to WebAssembly 22 May 2019
Force Safari to refresh website's favicon 06 Sep 2014
Seedbox
How to setup your VPS as a seedbox in under 15 mins 04 Sep 2014
A poor man's seedbox for $15 a year 01 Sep 2014
Varnish
Fix unable to download huge files with varnish 19 Aug 2014
macOS
From Zsh to Fish on macOS 17 May 2020
My favorite tiling window manager for OS X 11 Aug 2014
Tiling window manager
The state of tiling window manager on Windows 10 01 Dec 2019
The state of tiling window manager for OS X 25 Oct 2016
My favorite tiling window manager for OS X 11 Aug 2014
Vagrant
How to setup Discourse local dev environment on OS X 09 Aug 2014
Discourse
How to setup Discourse local dev environment on OS X 09 Aug 2014
CloudFlare
Dynamic DNS with CloudFlare 27 Mar 2020
Thoughts on Workers KV 13 Feb 2020
reader 09 Feb 2020
Experiment with Cloudflare Workers 29 Jan 2020
CloudFlare to offer free-SSL by mid-October 08 Aug 2014
Plugin
A better sitemap for jekyll 23 Aug 2014
jekyll full-text search without jQuery or plugin 08 Aug 2014
jekyll plugin directory 07 Aug 2014
Paginated post plugin for jekyll 06 Aug 2014
Writing your first jekyll plugin 04 Aug 2014
How to use jekyll plugins with GitHub Pages 04 Aug 2014
Monthly/yearly post archive generator plugin for jekyll 02 Aug 2014
BetterTube - A jekyll plugin for embedding YouTube videos 31 Jul 2014
Web performance
Inline Google fonts to further reduce number of blocking CSS resources 28 Dec 2014
Deferred font loading and using localStorage as cache 24 Dec 2014
How to lazy-load CSS with JavaScript 28 Aug 2014
Optimizing the hell out of your site for PageSpeed 30 Jul 2014
JavaScript
Fuck callbacks! Let's use generators 18 Jan 2015
bluebird - a promise library with unmatched performance 17 Jan 2015
jQuery Tips and Tricks 22 Aug 2014
Things you may not know about JavaScript array 28 Jul 2014
Oracle
Official Oracle driver for Node.JS 05 Feb 2015
Returning query result as json array with Oracle 10G 27 Jul 2014
Programming
Sharding and IDs 06 Aug 2018
The Birth & Death of JavaScript 21 Jan 2018
Explicit over clever 19 Dec 2015
Some of the most useful tips I learn when working with NodeJS 29 Jan 2015
Things software developers wish they had known in their 20s 27 Jan 2015
REST APIs made easy with StrongLoop 23 Jan 2015
Fuck callbacks! Let's use generators 18 Jan 2015
bluebird - a promise library with unmatched performance 17 Jan 2015
The next bullet on my resume: AngularJS 08 Jan 2015
Shorter code is better? 27 Nov 2014
Some useful use cases for Java Reflection 14 Sep 2014
Clean code/dirty code 22 Jun 2014
How to code like a dick in JS 11 May 2014
Keyboard
Microsoft Sculpt Ergonomic Desktop review 01 Sep 2019
My keyboard layout 01 Dec 2018
Favorite QMK hacks 15 Nov 2018
Filco Majestouch 2 Ninja Italian Red (TKL) review 18 Oct 2014
Filco Majestouch 2 Italian Red (TKL) with blue switches 12 Oct 2014
Poker 2 keyboard with Granite and Dolch keycaps 13 Sep 2014
Matias Laptop Pro review 10 May 2014
Matias Quiet Pro black matte case mod 16 Feb 2014
Matias Ergo Pro 11 Jan 2014
GasMask keycap 19 Dec 2013
Jekyll
Markdown table sucks. Let's use jekyll's data files instead 11 Jun 2015
Incremental regeneration in latest jekyll build 31 Jan 2015
Create a contact form with jekyll 20 Jan 2015
Using AngularJS with jekyll 14 Jan 2015
Using GitHub issue tracker as comment system for your static blog 03 Jan 2015
A better sitemap for jekyll 23 Aug 2014
Localization with jekyll 13 Aug 2014
Post scheduling with jekyll 09 Aug 2014
jekyll full-text search without jQuery or plugin 08 Aug 2014
Make your jekyll blog a little bit more SEO-friendly 07 Aug 2014
jekyll plugin directory 07 Aug 2014
Paginated post plugin for jekyll 06 Aug 2014
Writing your first jekyll plugin 04 Aug 2014
How to use jekyll plugins with GitHub Pages 04 Aug 2014
Embedding Liquid code snippet with jekyll 03 Aug 2014
Monthly/yearly post archive generator plugin for jekyll 02 Aug 2014
Blogging with jekyll 01 Aug 2014
BetterTube - A jekyll plugin for embedding YouTube videos 31 Jul 2014
Static assets combine with jekyll 29 Jul 2014
Speed up jekyll site generation with rsync 26 Jul 2014
Setup custom error page for jekyll on nginx 26 Jul 2014
How to group posts by month in Jekyll archive page 12 Nov 2013
Link Post in Jekyll 02 Sep 2013