41554 blogs · [
{
"id": "01a08786-31ca-71db-a6c4-d2af46b4c769",
"title": "The Cost of Failing Closed: What Shipped Across Nine PHP Extensions",
"url": "https://ilia.ws/blog/the-cost-of-failing-closed-what-shipped-across-nine-php-extensions",
"published_at": "2026-07-27T15:15:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d59329ed",
"title": "Malcolm X Is Not a Suffix",
"url": "https://ilia.ws/blog/malcolm-x-is-not-a-suffix",
"published_at": "2026-07-12T10:06:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d63792e2",
"title": "Failing Closed: What Shipped Across Seven PHP Extensions",
"url": "https://ilia.ws/blog/failing-closed-what-shipped-across-seven-php-extensions",
"published_at": "2026-07-10T09:20:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d6b005bd",
"title": "I objected to deprecating metaphone(). Then I read the RFC.",
"url": "https://ilia.ws/blog/phonetic-metaphone-deprecation",
"published_at": "2026-07-01T09:46:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d6c2246b",
"title": "I Forked a Dead PHP Name Parser Because It Couldn't Tell a Credential From a Surname",
"url": "https://ilia.ws/blog/casing-aware-php-name-parser",
"published_at": "2026-06-24T15:22:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d6c89f0a",
"title": "pdo_duckdb: DuckDB for PHP, Behind the PDO API You Already Know",
"url": "https://ilia.ws/blog/pdo-duckdb-a-pdo-driver-for-duckdb",
"published_at": "2026-06-19T14:31:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d70df3c6",
"title": "Lowering the Floor: What Shipped Across Five PHP Extensions",
"url": "https://ilia.ws/blog/lowering-the-php-floor-what-shipped-across-five-extensions",
"published_at": "2026-06-16T13:35:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d73554e7",
"title": "I Generate Too Many UUIDs. So I Wrote a Faster One.",
"url": "https://ilia.ws/blog/i-generate-too-many-uuids-so-i-wrote-a-faster-one",
"published_at": "2026-06-07T10:07:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d7fc8d87",
"title": "phpser: a fast, secure binary serializer for PHP cache workloads",
"url": "https://ilia.ws/blog/phpser-a-fast-secure-binary-serializer-for-php-cache-workloads",
"published_at": "2026-06-02T14:22:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d8ab7596",
"title": "Fastchart 1.X, why I rewrote it after 0.2 release",
"url": "https://ilia.ws/blog/fastchart-1-x-why-i-rewrote-it-after-0-2-release",
"published_at": "2026-05-21T14:39:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d9637717",
"title": "fastjson 0.3.0: A Faster Drop-In ext/json for PHP, Backed by yyjson",
"url": "https://ilia.ws/blog/fastjson-0-3-0-a-faster-drop-in-ext-json-for-php-backed-by-yyjson",
"published_at": "2026-05-20T07:27:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259d97a93ac",
"title": "fastchart 0.2.0: Native PHP Charts, Barcodes, and QR Codes in One Extension",
"url": "https://ilia.ws/blog/fastchart-0-2-0-native-php-charts-barcodes-and-qr-codes-in-one-extension",
"published_at": "2026-05-11T16:04:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259da181736",
"title": "php_clickhouse 0.8.1: Three Releases Later, Stable",
"url": "https://ilia.ws/blog/php-clickhouse-0-8-1-three-releases-later-stable",
"published_at": "2026-05-01T07:40:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259db105eb3",
"title": "Driving TradingView Desktop From an AI Agent",
"url": "https://ilia.ws/blog/driving-tradingview-desktop-from-an-ai-agent",
"published_at": "2026-04-29T17:56:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259db8487ab",
"title": "It's Alive! statgrab Returns After 20 Years",
"url": "https://ilia.ws/blog/its-alive-statgrab-returns-after-20-years",
"published_at": "2026-04-28T13:11:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259db857387",
"title": "php_clickhouse: a native ClickHouse client for PHP, picking up where SeasClick left off",
"url": "https://ilia.ws/blog/php-clickhouse-a-native-clickhouse-client-for-php-picking-up-where-seasclick-left-off",
"published_at": "2026-04-25T18:08:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259dc3fc927",
"title": "mdparser: a native CommonMark + GFM parser for PHP",
"url": "https://ilia.ws/blog/mdparser-a-native-commonmark-gfm-parser-for-php",
"published_at": "2026-04-12T10:01:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259dcba9263",
"title": "php_excel 2.0: The C Extension for Excel That PHP Should Have Had All Along",
"url": "https://ilia.ws/blog/php-excel-2-0-the-c-extension-for-excel-that-php-should-have-had-all-along",
"published_at": "2026-04-07T14:12:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259dd9a68ea",
"title": "Teaching AI Agents How to Engineer",
"url": "https://ilia.ws/blog/ai-agents-dont-lack-capability-they-lack-process",
"published_at": "2026-04-05T15:22:00+00:00"
},
{
"id": "01a08786-31cb-72d1-8db7-a259de046a25",
"title": "The Persistent Myth: Why Your PHP App Needs Persistent Connection",
"url": "https://ilia.ws/blog/the-persistent-myth-why-your-php-app-needs-persistent-connection",
"published_at": "2026-01-24T15:00:00+00:00"
}
] posts Claim your blog