Book: PHP to TypeScript — A Bridge for Modern PHP 8+ Developers Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A PHP developer opens a TypeScript codebase, finds three classes that all need a timestamps() behaviour, types trait, and gets a red
Metasploitable2 - FTP Exploitation using vsftpd 2.3.4 Backdoor 1. Objective To identify and exploit a known vulnerability in an FTP service running on a vulnerable target machine using industry-standard reconnaissance and exploitation techniques. 2. Lab Environment Component Description Attacker Machine Kali Linux Target Machine Metasploitable2 Network Type Host-only / NAT
This is Part 1 of a two-part series. Part 2 (coming soon): Connecting to spoke clusters from a controller using multicluster-runtime, driven by ClusterProfile. The Cluster Inventory API (multicluster.x-k8s.io) is driven by SIG-Multicluster and centered on the ClusterProfile resource. It only delivers value when something produces those ClusterProfiles. That something is a cluster manager. Today, t
When developers travel, we usually prepare the obvious things. Laptop charger. But there is one dependency that is easy to underestimate until it breaks: mobile internet. A trip to China makes this especially obvious. Not because China is hard to travel in, but because so many basic interactions are mobile-first: navigation, translation, ride-hailing, hotel communication, ticket confirmations, pay
As developers, we often have a problematic relationship with primitives. We use a string for an email, a float for a price, and an int for a status. This is what we call Primitive Obsession—and it’s one of the common reasons why PHP codebases gradually become hard to maintain. If you’ve been following my series on Refactoring & Patterns, you know I’m a fan of the Introduce Parameter Object pattern
We've been there. JSON Schema gets hard to write as soon as your payload is non-trivial. Conditional logic, cross-field rules, business invariants, and at some point we stop writing contracts at all. We go code-first, generate the schema from annotations, and end up with 200 lines very few understand, and error messages referencing paths like #/properties/items/allOf/0/then/Then that map to nothin
A few months ago I started with a simple goal: have a solid, reusable base for my PHP projects without pulling in a full framework every time. What I ended up with is something I'm genuinely proud of, and today I'm making it public. php-template is a PHP 8.2 MVC starter template with serious tooling, full testing stack, and something I haven't seen in other PHP templates: native support for AI age
Metric Value Django Average Response Time 287ms Node.js Average Response Time 193ms Django Memory Usage (1000 users) 1.8GB We tested Django 4.2 and Node.js 18.16 under identical conditions to measure their performance for reporting dashboard workloads. The test environment consisted of AWS EC2 m5.2xlarge instances (8 vCPUs, 32GB RAM) running Ubuntu 22.04. Both frameworks connected to th