Latest Posts
A guide to continuous learning
2 Sep 2026After the merge: a DNS-01 lab, a UDP trap, and TXT that actually expires 23 Aug 2026From two containers to one: acme-dns and the operator UI in a single Nuxt process 23 Aug 2026From three containers to two: folding Certbot into the acme-dns client 15 Aug 2026TSDProxy without exposing containers to the hostTSDProxy does not need host port mappings. Put it on a named Docker network, attach the other stacks, and label the container port. Tailscale sees the service; the host does not. 14 Aug 2026A café on this blogI wanted a café on the blog — a place to linger after a post, or sit in the lobby with no article in mind. Not a comment thread. A small room that talks back. 14 Aug 2026The MoE Frontier: Evaluating Runtime Implementations for Consumer LLMsMoE sounds great on paper, but lives or dies on the runtime. This post looks at what it actually takes to run MoE models on consumer GPUs, and where projects like Swiftlet, Colibri, and Soup currently fit in. 12 Aug 2026Three Unsloth Studios on one AMD GPUThree Unsloth Studio containers on one Radeon 8060S — planner, builder, and a light daily driver — sharing one install, separate state, and different GGUFs. 7 Aug 2026Docker Images Do Not Bring a Kernel (and Synology Taught Me the Hard Way)Docker images are userspace only — they never ship a kernel. Building Bun on Synology DSM 4.4 fails; build on a modern host, pull and run on the NAS. 4 Aug 2026Why I like FileSystem-as-DatabaseContent lives as Markdown on disk. A query index sits on top when the app needs it. Why I prefer that setup, and where it gets awkward. 1 Aug 2026One Docker image for Bun, PHP 8.5, Laravel, and NodeTired of juggling Bun, PHP, Laravel, and Node separately, I packed them into one Docker image. Here is what is inside, how to run it, and the sharp edges along the way. 31 Jul 2026Gitignore is not a backup — how I almost lost my content/I moved content/ out of Git, merged the branch with a custom merge-delete helper, and watched years of posts shrink to two files. Here is the trap, and how I prevent it now. 31 Jul 2026Bringing Vue-style state back to KnockoutKnockout’s ko.observable({}) does not make nested properties reactive. Here is how I bring Vue-style state and setup() back into Knockout with the mapping plugin. 24 Sep 2025AI Development Guidelines: Cursor RAG Integration and Project StandardsComprehensive development guidelines for AI-assisted coding with Cursor, including RAG integration, project structure, and workflow standards 29 Aug 2025Setting Up Cloudflare Tunnel with Docker Compose on macOSLearn how to use Cloudflare Tunnel with Docker Compose on macOS for secure, zero-trust access to your local services, including network configuration and practical examples 21 Aug 2025Working with Multiple Branches Using Shallow Clones: A Company Workflow GuideLearn how to efficiently work with multiple branches (main, development, feature, bug) using shallow clones in a company environment 21 Aug 2025Why My Disk is Always Full: The Hidden Cost of Company Git RepositoriesA real-world story about how company projects can silently consume your disk space, and how shallow clones could have saved the day 21 Aug 2025Working with Massive Git Repositories When Disk Space is LimitedLearn how to contribute to massive open source projects like Linux kernel and Chromium when you can't afford the disk space for full clones 21 Aug 2025Working with Git Shallow Clones: From Clone to Commit and PushLearn how to efficiently work with git shallow clones, make changes, and push your work back to the repository 6 Aug 2025How I Built a Package Tracker That Bypasses Anti-Bot Security (And You Can Too!)A deep dive into building a sophisticated package tracking system that bypasses modern anti-bot security using puppeteer-extra and stealth plugins 5 May 2025Mylky Amandelkoekjes: Homemade Almond Cookies RecipeLearn how to make delicious homemade almond cookies using Mylky almond milk maker. A simple recipe with 9 ingredients and 45 minutes prep time. 9 Apr 2025Automating Package Publishing with GitHub Actions: A Vue.js Library JourneyLearn how to set up automated versioning and npm publishing for Vue.js libraries using GitHub Actions 8 Apr 2025From Local Library to Published Package: Building Vue Notification CenterA journey of transforming a local Vue.js notification library into a fully-fledged npm package 6 Apr 2025From IIFE to Rollup - Modernizing a Vue Visitor CounterA detailed journey of transforming a self-contained IIFE script into a modern, maintainable Vue component using Rollup, covering dependency management, code organization, and build process optimization. 31 Mar 2025Integrating Fastify with VitePressLearn how to create a custom Vite plugin to integrate Fastify.js with your VitePress documentation site 30 Mar 2025Integrating Express with VitePressLearn how to create a custom Vite plugin to integrate Express.js with your VitePress documentation site 29 Mar 2025Lightweight Store with Vue ReactiveA simple yet powerful state management solution using Vue’s reactive system 26 Mar 2025Setting Up Central Databases with DockerA guide to setting up and managing central databases with Docker, including PostgreSQL, MariaDB, RethinkDB, and CouchDB 25 Mar 2025Using Nginx Proxy Manager with Docker ComposerA guide to setting up and connecting Nginx Proxy Manager with other Docker services using docker-composer 24 Mar 2025My Failed Journey: Running Ollama on Synology NASA tale of ambition, Docker, and hardware limitations when trying to run Ollama on a Synology DS920+ 20 Mar 2025How to Generate PDF from Your CV in Nuxt 3 20 Mar 2025My Journey to Perfect PDF Generation for My CV 10 Mar 2025Serving Static Files Securely with MinIO Object StorageHow to configure MinIO for secure public read-only access to static files without allowing unauthorized modifications 10 Mar 2025Setting Up PrimeVue with Auto Imports and Tailwind v4 in VitepressA step-by-step guide on how I integrated PrimeVue components with auto-imports and Tailwind CSS v4 in my Vitepress blog 8 Mar 2025Learning VitePress and Integrating with ObsidianMy journey of building a blog with VitePress and connecting it to my Obsidian knowledge base 21 Feb 2025Starting with AstroI am diving into the world of Astro and custimize my own blog 19 Oct 2024Making ACME-DNS self-host workSo you‘ve got a VPS and want to self-host ACME-DNS for your new domain CA certificates 14 Oct 2024Never buy items without PayPal or Klarna 13 Oct 2024My Sieve script 3 Oct 2024Installing Alpine Linux on TransIP VPSA comprehensive guide to installing Alpine Linux v3.20.3 on a TransIP VPS using GRUB and ISO booting 28 Aug 2024Created my own Nuxt 3 template 26 Aug 2024@harianto/axioscancelable 13 Mar 2024Unlocking NVMe SSDs as Storage Volumes in Synology DS920+A comprehensive guide to configuring NVMe SSDs as dedicated storage volumes instead of cache in Synology DS920+, significantly improving performance for Docker containers and applications. 23 Feb 2024Create Vite Vue SSR with DockerCreate a project from a command-line and build Docker 22 Feb 2024Say NO to TypeScript 4 Dec 2023Created `EventBus` libraryI’ve created small library that I use for Vue 3 apps 1 Dec 2023Revise my code from Vue 2 to Vue 3Try to understand Vue 3 Advanced things what I’ve known from Vue 2. And migrate some of my codes 27 Feb 2022Setting up `MacBook Air M1 2020` in 2022 8 Feb 2022Use NVME SSD as storage volume instead of cache in DS920+ 25 Mar 2021Upgrading this blog to Ghost 4was very easy with my current docker setup. 21 Jan 2021Setting up Node Mail StackExperimenting anything to do with Haraka SMTP NodeJS server and moving away from postfix to all node with Wildduck together with Redis and MongoDB. 19 Dec 2020Created Dockerfile PHP 8 FPM Ext AlpineWorking PHP 8.0.0 Modules on Alpine 3 Nov 2020Remove Sponsored Feed from FacebookJavascript you can inject to remove Sponsored HTML elements from feed with MutationObserver. 23 Jun 2020Page visitorsTracking my visitors 18 Jun 2020Dockerize Node App 14 Jun 2020Guide Create Chat Socket.io SSR Nuxt appUnderstanding under the hood without installing plugins. 12 Jun 2020Automate script with wildcard domains to refresh Letsencrypt certificatesAutomate to refresh Letsencrypt certificates 7 Jun 2020Pass Socket.io as ArgumentPass argument in ExpressJS 7 Jun 2020Bootstrap socket.ioPass socket.io as argument 6 Jun 2020Getting Started ExpressJS 2020Generate Express Application for SCSS (Sass) HBS (Handlebars) Git 3 Jun 2020Storing Images and Demos in your Repo 17 May 2020Pre configuration after generating Nuxt projectPersonal guide for tedious work before actually starting a project and make a boostrap to save time on new projects. 16 May 2020Auto import Vue directives from directoryMake your life easy 16 May 2020Can not login docker account 14 May 2020Make gTile work again on PopOS 20.04Re-enable GNOME extensions again 13 May 2020Replace Vuex with Vue.observable 5 May 2020Planning to write own infinite-scroll.js 5 May 2020Edit your Ghost Post with Shortcut Ctrl+Shift+Alt+ClickA quick way to edit your Post by clicking an Post element with keyboard combination that redirects you to Admin post editor. 1 May 2020Set Default HDMI audio on PopOSGuide to find out which audio on your HDMI device is running and set which ones as default. 30 Apr 2020Generate init.d script for Node appsFor people that wants to run node on start-up on Debian/Ubuntu. 30 Apr 2020Web Component slots only exist in Shadow Dom 23 Apr 2020Handy Docker commandsCommands I use for experimenting and after creating docker images 17 Apr 2020Create quick prototype with Vue and Less (2020) 17 Apr 2020Shared library axiosBluebirdTwo beautiful libraries into one to cancel Ajax call with Promise 16 Apr 2020Make Disqus comment counting work on Infinite ScrollWith MutationObserver you can check which child-elements been mutated 16 Apr 2020Get Posts exclude tagsExclude Posts from specific tags 16 Apr 2020Just created zero tools Vue component PageIndex for this blog 14 Apr 2020Selft-host Ghost with Docker and Filestorage with MinioDocker Compose configuration 13 Apr 2020Web Component: PageIndexCreate Web Component and add to your page 5 Apr 2020Just created Ghost Search Vue Web ComponentGhost Blog short comings and you want to create Search only JavaScript solution. 27 Mar 2020Guide to install Nginx + Php + MariaDB + Phpmyadmin in Docker (XNMP-VHOST)(XNMP-VHOST) Replace MAMP/XAMP with Docker Containers and keep you system clean. 23 Mar 2020Upgraded and fully restyled this blogWhile a company doesn’t give you space to grow and do your own things, you had to make up for lost years and things you really want to experiment and build. 19 Jul 2018GIT: When files are deleted in some commit in the past 19 Aug 2016Create NPM Developer environment in Docker 13 Aug 2016My CSS 3 Flex BoxPersonal Flex Box utility in LESS 10 Aug 2016Use global variable for socket.io 9 Aug 2016Quick Embedded CSS with LESS (2016) 7 Aug 2016How many chocolates can you get? 4 Aug 2016Reset Git Repository 22 Jul 2016Connect an existing database from Docker network 19 Jul 2016Manual: Docker MySQL AlpineI created Custom Docker with MySQL on Alpine 19 Jul 2016Test a Node application with Docker (while understanding Docker functions) 17 Jul 2016Build Docker (Alpine) Nginx PHP7 Vhosts for developmentCreate a development vhosts (virtual host) system with Docker (Nginx and PHP7) on Mac. 12 Jul 2016Valid SSL Certificate with letsencrypt (example) 11 Jul 2016Configuring Debian 8 (Jessie) VPS 27 Jan 2016When you’re testing but your develop branch seems off between master branch 7 Jan 2016Deploy Vue.js, ExpressJS, Bootstrap, LESS, Gulp, Browserify (2016) 31 Dec 2015Node init.d script example 24 Aug 2015Installing Brew with Nginx and LUA 4 Aug 2015My Front End Deployment on Fresh install MacBook Yosemite 17 Jul 2015Deploy Vue.js, ExpressJS, Bootstrap, LESS, Gulp, Browserify (2015) 26 Jun 2015Deploy Vue.js, Laravel 5, Bootstrap, LESS/SCSS, Gulp, Browserify 25 Jun 2015Create a quick page with Less CSS on the fly 25 Jun 2015Createdomain.js 24 Jun 2015Start build-in web server with PHP 24 Jun 2015Finished a guide 'Windows 8 on old MacBook' 24 Jun 2015Purge log files in `/var/log` directory 22 Jun 2015Migrating my home Ubuntu server 20 Jun 2015Upgrading my blog 12 Jun 2015Terminal: Copy recursive directory from remote with SSH and TAR 20 Feb 2015Making new tutorial for KnockoutJS and Browserify 18 Nov 2014Scale Image and Reposition on Canvas element 30 Aug 2014Using Laravel, Gulp, Bootstrap and LESS 11 Jun 2014Auto reboot Zyxel Gateway/Router from home server 27 May 2014Windows 8 on old MacBook 27 May 2014A journey to install Windows 8 on an old MacBook 26 Apr 2014Created Anime Player 3 Apr 2014HTML5 Form validation w/out JavaScript 11 Mar 2014Tar a directory 8 Mar 2014Converting Ubuntu 12.04 LTS desktop to server 6 Mar 2014How my base.less structure look like 4 Mar 2014Grunt-Laravel own repository 3 Mar 2014Using Laravel, Grunt, Bootstrap and LESS 3 Mar 2014Create some vhosts domain structure in ruby script 28 Feb 2014Setup local wildcard domains 28 Feb 2014Things I need for fresh Mac install 27 Feb 2014Fresh install Ghost on Apache dockerised-nuxt-orchestrator