-
Archives
- June 2026
- May 2026
- April 2026
- November 2025
- December 2024
- November 2024
- June 2024
- September 2023
- March 2023
- August 2022
- April 2022
- September 2021
- September 2020
- March 2019
- March 2018
- June 2017
- May 2017
- November 2016
- September 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- April 2015
- December 2014
- October 2014
- September 2014
- May 2014
- April 2014
- March 2014
- January 2014
- November 2013
- October 2013
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
-
Meta
Author Archives: ronaldpringadi
Block Countries by IP on Debian Trixie with nftables and xtables-addons
Debian Trixie uses nftables as its default firewall. If you’re used to iptables, the commands still work — but they go through an iptables-nft compatibility shim that translates them to nftables rules under the hood. For country-based IP blocking, the … Continue reading
How to Set Up Google Analytics 4 (GA4) — Step-by-Step Guide
If you’ve been putting off setting up Google Analytics because you’re still on the old “Universal Analytics” (UA) — it’s time to act. UA is officially dead: Standard UA properties stopped collecting data on July 1, 2023 UA 360 (premium) … Continue reading
Posted in Analytics
Tagged ga4, google analytics
Comments Off on How to Set Up Google Analytics 4 (GA4) — Step-by-Step Guide
Using PHP with Mustache: Practical Examples and Gotchas
If you want clean templates in PHP without pulling in a full framework, Mustache is a great fit. It keeps logic out of views, which forces you to prepare data in PHP first and makes templates easier to scan later. … Continue reading
Scribe for Laravel: API Docs That Stay Fresh, and a Calm Way to Upgrade Them
Most Laravel teams reach a point where their API documentation is either out of date, written somewhere it shouldn’t be (Confluence, anyone?), or just doesn’t exist. Scribe is the package that quietly fixes this — it reads your routes, controllers, … Continue reading
Three Years of the AI Boom: The Stocks That Ran
A short personal note on the 2023-2026 AI boom and the handful of companies whose stocks went vertical: NVIDIA, Palantir, Broadcom, TSMC, AMD, Microsoft, Meta. Continue reading
Posted in Uncategorized
Tagged AI, Investing, Stocks
Comments Off on Three Years of the AI Boom: The Stocks That Ran
Reading Laravel Config From a Queued Job — and the env() Trap That Bites You in Production
Today’s lesson came from a perfectly innocent-looking change in a Laravel app. We had a magic number — a chunk size — sprinkled across three call sites: 123foreach (array_chunk($userIds, 100) as $chunk) { SendOnboardingEmailJob::dispatch($chunk); } One reviewer flagged … Continue reading
When the third-party PPA goes down: replacing a Dockerfile with a pre-built image on Docker Hub
Three days, three CI failures, all rooted in the same place: the Dockerfile our build runs from rebuilds the world from scratch every single CI run, and every external source it touches is somebody else’s reliability problem. Here’s what that … Continue reading
Posted in DevOps
Tagged ci-cd, docker, docker-hub, dockerfile, gitlab
Comments Off on When the third-party PPA goes down: replacing a Dockerfile with a pre-built image on Docker Hub
When a Composer package vanishes from GitHub: don’t panic, and don’t delete vendor/
Today our CI/CD pipeline went red on a job that hadn’t been touched in months. The .gitlab-ci.yml was untouched. The branch built fine yesterday. composer install exploded. The relevant chunk of the failure log: 12345678Failed to download acme/some-nova-tool from dist: … Continue reading
Local HTTPS in 5 minutes with Caddy 🔒
I used to dread setting up https for local development. Self-signed certs got the browser to scream. Editing nginx.conf for two hostnames felt like building a cathedral. Caddy changed all that for me — it’s a tiny single-binary web server … Continue reading
Posted in Web Development
Tagged Java, Java, tls
Comments Off on Local HTTPS in 5 minutes with Caddy 🔒
Spatie activity_log: which method writes to which column? 🐘
If you’re using spatie/laravel-activitylog, you’ve probably written something like activity()->event(…)->log(…) a hundred times without thinking about where each piece lands in the database. The fluent API is friendly, but the column mapping isn’t obvious until you go look — so … Continue reading
Posted in PHP
Tagged activity-log, laravel, php, spatie
Comments Off on Spatie activity_log: which method writes to which column? 🐘