#Tips
23 articles
Structure of My System Specification Document
Learn to structure system specification documents with sections for architecture, data models, APIs, and sequence diagrams for design clarity.
One-liner to Unlock Password-Protected PDFs
Decrypt password-protected PDFs using QPDF—a powerful command-line tool for removing PDF password restrictions securely.
One-Liner for Self-Signed Certificates in Go
Generate a self-signed TLS certificate in Go with one command using the built-in generate_cert.go tool. Produces cert.pem and key.pem for local HTTPS without openssl or mkcert.
Side Effects of Go's response.WriteHeader
Learn why calling Go response.WriteHeader multiple times triggers the superfluous call warning. Covers how the first status code wins and how to fix duplicate WriteHeader in HTTP handlers.
Runner Technique for Linked Lists
Summarizing the runner technique useful for traversing linked lists.
How to Use pprof Without DefaultServeMux
A note on using net/http/pprof with routers other than Go's default router.
Prevent URL Encoding in Go's html/template
Learn why Go html/template auto-encodes URLs and how to use template.URL to pass raw URLs in templates without triggering automatic HTML encoding. Includes a minimal working example.
Obtaining SSL Certificates from Let's Encrypt Using DNS-01 with Lego
Obtain Let's Encrypt SSL certificates efficiently using DNS-01 challenge method with Lego client tool and Conoha API provider integration.
How to Stream Keynote Presenter Display with StreamYard
A guide on streaming Keynote presentations using StreamYard while displaying the presenter view.
Encountered 'Permission denied' Error When Starting MySQL Container on Ubuntu 20.04.2 LTS
Fix MySQL container permission denied errors on Ubuntu 20.04 by properly configuring docker-compose user UID/GID mappings.
Cannot Start MySQL 8.0.17 Container on M1 Mac
Fix the MySQL container startup failure on Apple M1 Mac (failed to create new OS thread errno=22). Use MySQL 8.0.26+ with --platform=linux/amd64 in the Dockerfile for ARM architecture support.
Stuck with ReadOnlyTransaction in Go's Spanner Client
Fix session pool exhaustion caused by missing tx.Close() on Cloud Spanner ReadOnlyTransaction in Go. Learn proper transaction lifecycle management and issue detection with zagane.
Environment Variables Specified in docker-compose.yml Not Accessible During Container Build
Fix environment variables in docker-compose.yml being unavailable during Docker image build. Use ARG in Dockerfile and build.args in docker-compose.yml to pass values at build time.
Code Definition Jump Disabled After Enabling Go Language Server in VSCode
Fix VSCode Go language server issues with gopls by placing go.mod file correctly for code definition jumping.
Handling Docker 'Operation not permitted' Error
Fix the Docker Operation not permitted error in docker-compose by adding privileged: true or using cap_add: SYS_ADMIN with seccomp:unconfined to grant required Linux capabilities.
How to Restore Hosts Removed from Monitoring in Mackerel
Recover accidentally excluded monitoring hosts in Mackerel by updating hostId after host migration or removal from monitoring system.
Encountered Path Issues When Installing Bundler with rbenv via anyenv
Fix Bundler /usr/local/bin path issue with rbenv and anyenv by running rbenv exec gem install command.
Addressing Slow Mounting Issues in Docker for Mac
Resolve slow Docker for Mac volume mount performance caused by the macOS filesystem API. Workarounds: delegated/cached mount options, docker-sync, or using a Linux-based VM.
Encountering '[BABEL] Note: The code generator has deoptimised the styling of' in React
Fix Babel's code generator deoptimization warnings in React through strategic file size optimization and compression techniques.
Encountering 'Uncaught (in promise) error' with redux-form Server-side Validation
Fix 'Uncaught (in promise) error' in redux-form server-side validation by returning promises and properly throwing SubmissionError.