Tuan Anh

container nerd. k8s || GTFO


NAS

How to setup a home VPN with Synology NAS

VPN

How to setup a home VPN with Synology NAS

UniFi

How to adopt UniFi Security Gateway to an existing network

DDNS

Dynamic DNS with CloudFlare

Hacker News

Traffic from #1 post on Hacker News

The story behind my talk: Cloud Cost Optimization at Scale: How we use Kubernetes and spot instances to reduce EC2 billing up to 80%

Git

Debugging with git bisect

Pihole

Pi-hole

Homelab

Using Synology NFS as external storage with Kubernetes

Tips for first time rack buyer

How to setup reverse proxy for homelab with Caddy server

How to setup a home VPN with Synology NAS

How to adopt UniFi Security Gateway to an existing network

Dynamic DNS with CloudFlare

Pi-hole

Choosing a wireless router in 2019

GraphQL

Notes on GraphQL

Talk

The story behind my talk: Cloud Cost Optimization at Scale: How we use Kubernetes and spot instances to reduce EC2 billing up to 80%

Kubernetes Meetup #2 slide

WebAssembly

Tips on reducing WASM file size with Emscripten

Some lessons learnt after converting a native module to WebAssembly

Getting started with WebAssembly

Open source

Fastest way to transform XML to JSON in Node.js

node-prune

kompression - koa compression middleware with support for brotli

camaro

Parsing XML at the Speed of Light

Docker

Building containers in pure Bash and C

Docker Containers on the Desktop

Minimal Node.js docker container

Non-privileged containers FTW

node-pre-gyp and CI

minideb - a small base image based on Debian

Using alpine as base Docker image

AWS

The silence of the Lambda

Spot instances best practices

Kubernetes

kubectl run generators removed

Using Synology NFS as external storage with Kubernetes

Debugging Kubernetes: Unable to connect to the server: EOF

Kubernetes Meetup #2 slide

Kubernetes-hosted application checklist (part 2)

Kubernetes-hosted application checklist (part 1)

Running twemproxy on kubernetes

Setting up traefik as Ingress controller for Kubernetes

Spot instances best practices

Debugging why k8s autoscaler wouldn't scale down

Setting up fluentd log forwarding from Kubernetes to AWS Cloudwatch Logs

Kubernetes spot termination notice handler

GopherCon 2016: Kelsey Hightower - Building a custom Kubernetes scheduler

Why we choose Kubernetes over ECS

kube-monkey

Automate Let's Encrypt certificate genernation for Kubernetes Ingress

Sharing secret data in Kubernetes

Distelli - Your DevOps Dashboard for Kubernetes

Getting started with Kubernetes

Book

No More Vietnam

Redis

Advanced filtering and sorting with redis (part 2)

How to delete Redis keys using pattern

Autocomplete at speed of light

Advanced filtering and sorting with redis (part 1)

Redisearch - full text search with Redis

codis - proxy based redis cluster

Redis as a JSON store

Using ioredis with twemproxy

Implement autocomplete with redis

iojs

Atom switches to io.js

io.js v1.0.0 released

AngularJS

Using AngularJS with jekyll

AngularJS diary - Day 4

The next bullet on my resume: AngularJS

Machine learning

Shower thought about movie recommedation

Node.js

kompression - koa compression middleware with support for brotli

Minimal Node.js docker container

n-api: add support for abi stable module API

ES6 in Node.js

Go Native - Calling C++ From NodeJS

Official Oracle driver for Node.JS

Some of the most useful tips I learn when working with NodeJS

Install io.js on Mac OS X

REST APIs made easy with StrongLoop

Fuck callbacks! Let's use generators

Scaling node.js application with cluster

io.js v1.0.0 released

Pretender - a mock server library

nodejs: callback vs promise

How to fix `Logon failed for login 'username' due to trigger execution` error with mssql

Machine Learning

Awesome maching learning

How to setup Sublime-IJulia with Sublime Text

Review

Microsoft Sculpt Ergonomic Desktop review

Filco Majestouch 2 Ninja Italian Red (TKL) review

SQL

How to find table name when knowing column name and column value in Oracle

Tip

Debugging with git bisect

Tips on reducing WASM file size with Emscripten

Some lessons learnt after converting a native module to WebAssembly

Force Safari to refresh website's favicon

Seedbox

How to setup your VPS as a seedbox in under 15 mins

A poor man's seedbox for $15 a year

Varnish

Fix unable to download huge files with varnish

macOS

My favorite tiling window manager for OS X

Tiling window manager

The state of tiling window manager on Windows 10

The state of tiling window manager for OS X

My favorite tiling window manager for OS X

Vagrant

How to setup Discourse local dev environment on OS X

Discourse

How to setup Discourse local dev environment on OS X

CloudFlare

Dynamic DNS with CloudFlare

Thoughts on Workers KV

reader

Experiment with Cloudflare Workers

CloudFlare to offer free-SSL by mid-October

Plugin

A better sitemap for jekyll

jekyll full-text search without jQuery or plugin

jekyll plugin directory

Paginated post plugin for jekyll

Writing your first jekyll plugin

How to use jekyll plugins with GitHub Pages

Monthly/yearly post archive generator plugin for jekyll

BetterTube - A jekyll plugin for embedding YouTube videos

Web performance

Inline Google fonts to further reduce number of blocking CSS resources

Deferred font loading and using localStorage as cache

How to lazy-load CSS with JavaScript

Optimizing the hell out of your site for PageSpeed

JavaScript

Fuck callbacks! Let's use generators

bluebird - a promise library with unmatched performance

jQuery Tips and Tricks

Things you may not know about JavaScript array

Oracle

Official Oracle driver for Node.JS

Returning query result as json array with Oracle 10G

Programming

Sharding and IDs

The Birth & Death of JavaScript

Explicit over clever

Some of the most useful tips I learn when working with NodeJS

Things software developers wish they had known in their 20s

REST APIs made easy with StrongLoop

Fuck callbacks! Let's use generators

bluebird - a promise library with unmatched performance

The next bullet on my resume: AngularJS

Shorter code is better?

Some useful use cases for Java Reflection

Clean code/dirty code

How to code like a dick in JS

Keyboard

Microsoft Sculpt Ergonomic Desktop review

My keyboard layout

Favorite QMK hacks

Filco Majestouch 2 Ninja Italian Red (TKL) review

Filco Majestouch 2 Italian Red (TKL) with blue switches

Poker 2 keyboard with Granite and Dolch keycaps

Matias Laptop Pro review

Matias Quiet Pro black matte case mod

Matias Ergo Pro

GasMask keycap

Jekyll

Markdown table sucks. Let's use jekyll's data files instead

Incremental regeneration in latest jekyll build

Create a contact form with jekyll

Using AngularJS with jekyll

Using GitHub issue tracker as comment system for your static blog

A better sitemap for jekyll

Localization with jekyll

Post scheduling with jekyll

jekyll full-text search without jQuery or plugin

Make your jekyll blog a little bit more SEO-friendly

jekyll plugin directory

Paginated post plugin for jekyll

Writing your first jekyll plugin

How to use jekyll plugins with GitHub Pages

Embedding Liquid code snippet with jekyll

Monthly/yearly post archive generator plugin for jekyll

Blogging with jekyll

BetterTube - A jekyll plugin for embedding YouTube videos

Static assets combine with jekyll

Speed up jekyll site generation with rsync

Setup custom error page for jekyll on nginx

How to group posts by month in Jekyll archive page

Link Post in Jekyll