<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Pier — Blog</title>
    <link>https://pier.abn.company/nl/blog/</link>
    <atom:link href="https://pier.abn.company/nl/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Praktisch schrijven over verouderde websites, FTP, MySQL en AI-bewerkingen.</description>
    <language>nl</language>
    <copyright>© 2026 A Brand New Company B.V.</copyright>
    <lastBuildDate>Fri, 12 Jun 2026 01:23:38 GMT</lastBuildDate>
    <generator>pier-blog-bot</generator>
    <image>
      <url>https://pier.abn.company/logo.svg</url>
      <title>Pier — Blog</title>
      <link>https://pier.abn.company/nl/blog/</link>
    </image>
    
    <item>
      <title>Joomla 4 geeft 500 na Akeeba-restore: action_logs-fix</title>
      <link>https://pier.abn.company/nl/blog/joomla-akeeba-action-logs-fix/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/joomla-akeeba-action-logs-fix/</guid>
      <description>Een gewone Akeeba-restore. Een blanco 500. Veertig minuten grep, schema-reconstructie en één stille INSERT later draaide de Joomla 4-site weer.</description>
      <category>Joomla</category>
      <pubDate>Fri, 12 Jun 2026 01:23:37 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>PHP 7.4 naar 8.2 upgrade: pre-flight audit-checklist</title>
      <link>https://pier.abn.company/nl/blog/php-74-to-82-audit-checklist/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/php-74-to-82-audit-checklist/</guid>
      <description>Je hebt ja gezegd tegen de PHP 8.2-sprong op een tien jaar oude WordPress. Voordat het onderhoudsvenster opengaat, dit is de audit die het saai houdt.</description>
      <category>PHP</category>
      <pubDate>Fri, 12 Jun 2026 00:27:57 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Drupal watchdog handmatig: severity, type, vier queries</title>
      <link>https://pier.abn.company/nl/blog/drupal-watchdog-severity-queries/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/drupal-watchdog-severity-queries/</guid>
      <description>De dblog-adminpagina toont 50 rijen en aggregeert niets. De watchdog-tabel zelf beantwoordt wat de UI niet kan. Drie kolommen en vier queries.</description>
      <category>Drupal</category>
      <pubDate>Thu, 11 Jun 2026 23:37:44 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>wp-config.php debug-constanten: de negen die wij altijd zetten</title>
      <link>https://pier.abn.company/nl/blog/wp-config-debug-constants/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/wp-config-debug-constants/</guid>
      <description>Een site valt in je inbox: SFTP-creds, vage symptomen, geen documentatie. Voor we ook maar één regel pluginbroncode lezen, zetten we negen wp-config-constanten.</description>
      <category>WordPress</category>
      <pubDate>Thu, 11 Jun 2026 22:49:41 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>WordPress multisite migreren in één zondag: playbook</title>
      <link>https://pier.abn.company/nl/blog/wordpress-multisite-plesk-vps-migration/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/wordpress-multisite-plesk-vps-migration/</guid>
      <description>Een Plesk-bak op PHP 7.4 met een multisite van 12 sites, een verse VPS bij Hetzner, en een zondag van 09:00 tot 17:00 om alles om te zetten voor maandag.</description>
      <category>WordPress</category>
      <pubDate>Thu, 11 Jun 2026 22:01:03 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Symfony 6-intranetmigratie: elf weekenden, nul downtime</title>
      <link>https://pier.abn.company/nl/blog/symfony-6-intranet-migration/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/symfony-6-intranet-migration/</guid>
      <description>Elf weekenden, één strangler-proxy en een urenformulier dat nooit uitviel. Hoe een intern team een PHP-intranet uit 2011 op Symfony 6 zette.</description>
      <category>Migration</category>
      <pubDate>Thu, 11 Jun 2026 21:05:12 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Magento 2 cron_schedule op 14M rijen: een vrijdagpostmortem</title>
      <link>https://pier.abn.company/nl/blog/magento-2-cron-schedule-bloat/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/magento-2-cron-schedule-bloat/</guid>
      <description>Een Magento 2-shop zag zijn cron_schedule op vrijdagmiddag 14 miljoen rijen halen. Hier de prune, de lock die we accepteerden, en de config die het stopte.</description>
      <category>Magento</category>
      <pubDate>Thu, 11 Jun 2026 20:13:18 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Spammend contactformulier: 30 minuten incidentrespons</title>
      <link>https://pier.abn.company/nl/blog/contact-form-spam-incident-response/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/contact-form-spam-incident-response/</guid>
      <description>23:41 op een dinsdag. Een oud WordPress-formulier werd een open relay en de hosting heeft vijftien minuten geduld. Hier is een IR van dertig minuten.</description>
      <category>Security</category>
      <pubDate>Thu, 11 Jun 2026 19:20:22 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>WordPress nonces: wat wp_verify_nonce werkelijk doet</title>
      <link>https://pier.abn.company/nl/blog/wordpress-nonces-fundamentals/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/wordpress-nonces-fundamentals/</guid>
      <description>Het formulier werkt &#39;s ochtends, breekt &#39;s middags, niemand kan het reproduceren. De bug zit in hoe je leest wat wp_verify_nonce teruggeeft.</description>
      <category>WordPress</category>
      <pubDate>Thu, 11 Jun 2026 18:25:54 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Van osCommerce naar WooCommerce: zes weekenden, SEO intact</title>
      <link>https://pier.abn.company/nl/blog/oscommerce-to-woocommerce-migration/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/oscommerce-to-woocommerce-migration/</guid>
      <description>Een osCommerce-shop van 14 jaar oud in zes weekenden omgezet naar WooCommerce. De URL-map, de specials-naar-sale-price brug en de SEO die bleef staan.</description>
      <category>Migration</category>
      <pubDate>Thu, 11 Jun 2026 17:38:22 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>PHP-FPM pools afstemmen: 2GB, 4GB en 8GB VPS vergeleken</title>
      <link>https://pier.abn.company/nl/blog/php-fpm-pool-sizing-vps/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/php-fpm-pool-sizing-vps/</guid>
      <description>Een WooCommerce shop crasht om lunchtijd. PHP-FPM zit op 100% poolcapaciteit en je host wil je VPS opschalen. Voor je klikt: hier is de rekensom.</description>
      <category>Operations</category>
      <pubDate>Thu, 11 Jun 2026 16:49:40 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Magento 1 AI-productteksten: staging die standhoudt</title>
      <link>https://pier.abn.company/nl/blog/magento-ai-copy-staging-shape/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/magento-ai-copy-staging-shape/</guid>
      <description>Een read-only staging-kopie is de goedkoopste verzekering tegen AI-teksten die de verkeerde SKU overschrijven in een Magento 1-shop uit 2014.</description>
      <category>AI</category>
      <pubDate>Thu, 11 Jun 2026 15:59:34 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Een verouderde site overnemen: de overdracht-audit op één pagina</title>
      <link>https://pier.abn.company/nl/blog/legacy-site-handover-audit/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/legacy-site-handover-audit/</guid>
      <description>Je neemt een WordPress-site over van een ander bureau. De code oogt prima. Dan faalt het SSL stilletjes op een server die niemand noemde. Dit is de audit die wij draaien.</description>
      <category>Workflow</category>
      <pubDate>Thu, 11 Jun 2026 15:07:35 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Cache-Control-lek: het woord dat PHP-sessies liet lekken</title>
      <link>https://pier.abn.company/nl/blog/cache-control-leaked-php-sessions/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/cache-control-leaked-php-sessions/</guid>
      <description>Om 16:47 zag een klant andermans bestelhistorie in zijn eigen dashboard. De bug: een Cache-Control-header op de PHP-accountpagina, één woord te kort.</description>
      <category>PHP</category>
      <pubDate>Thu, 11 Jun 2026 14:18:55 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>De Joomla 3 #__extensions-tabel: een veldgids in zes kolommen</title>
      <link>https://pier.abn.company/nl/blog/joomla-extensions-table-field-guide/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/joomla-extensions-table-field-guide/</guid>
      <description>Zes kolommen in #__extensions vertellen je wat Joomla daadwerkelijk laadt. Een veldgids voor het moment dat je een site overneemt waarvan de admin niet opent.</description>
      <category>Joomla</category>
      <pubDate>Thu, 11 Jun 2026 13:28:09 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>mysqldump-flags voor legacy MySQL: de .my.cnf cheatsheet</title>
      <link>https://pier.abn.company/nl/blog/mysqldump-flags-legacy-mysql/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/mysqldump-flags-legacy-mysql/</guid>
      <description>De .my.cnf en mysqldump-flags die we op elke legacy MySQL-server zetten voor een export, plus de drie die om twee uur &#39;s nachts een restore hebben gered.</description>
      <category>Databases</category>
      <pubDate>Thu, 11 Jun 2026 12:36:41 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Drupal 7 naar static op Cloudflare Pages: 2-uur draaiboek</title>
      <link>https://pier.abn.company/nl/blog/drupal-7-static-cloudflare-pages-playbook/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/drupal-7-static-cloudflare-pages-playbook/</guid>
      <description>Drupal 7 is end of life. Je hebt er eentje geërfd. Hier is een route van twee uur naar een static export op Cloudflare Pages met het contactformulier nog werkend.</description>
      <category>Drupal</category>
      <pubDate>Thu, 11 Jun 2026 11:47:38 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Magento sales_order_grid: zo krimpten we &#39;m met 4GB</title>
      <link>https://pier.abn.company/nl/blog/magento-sales-order-grid-shrink/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/magento-sales-order-grid-shrink/</guid>
      <description>Een NL-bureau zat na Black Friday met een sales_order_grid van 4GB. Hier is de gefaseerde krimp die &#39;m terugbracht, met elke order intact.</description>
      <category>Magento</category>
      <pubDate>Thu, 11 Jun 2026 10:57:12 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>WooCommerce schrijft twee keer af: dubbele Stripe-hook</title>
      <link>https://pier.abn.company/nl/blog/woocommerce-stripe-double-charge-hook/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/woocommerce-stripe-double-charge-hook/</guid>
      <description>Twee payment intents, drie seconden uit elkaar, dezelfde order, dezelfde kaart. Een incident-walkthrough van een dubbele hook verstopt in mu-plugins.</description>
      <category>WordPress</category>
      <pubDate>Thu, 11 Jun 2026 10:04:47 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Legacy-sites bewaken: vier signalen voor solo-shops</title>
      <link>https://pier.abn.company/nl/blog/legacy-site-monitoring-stack/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/legacy-site-monitoring-stack/</guid>
      <description>Dertig legacy sites, één persoon, en een zondagochtend die begon met een Slack: &#39;checkout kapot sinds vrijdag&#39;. Vier signalen hadden het donderdag al gevangen.</description>
      <category>Operations</category>
      <pubDate>Thu, 11 Jun 2026 09:10:05 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Statamic-migratie: het vijfdaagse content-freeze draaiboek</title>
      <link>https://pier.abn.company/nl/blog/statamic-migration-freeze-playbook/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/statamic-migration-freeze-playbook/</guid>
      <description>Gefaseerd content-freeze draaiboek voor een vijfdaagse Statamic-cutover: redactionele lock, drie diff-checkpoints en de .htaccess die meegaat.</description>
      <category>Workflow</category>
      <pubDate>Thu, 11 Jun 2026 08:18:43 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>PHP session race: de verkeerde factuur-PDF in de mail</title>
      <link>https://pier.abn.company/nl/blog/php-session-race-invoice-pdf/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/php-session-race-invoice-pdf/</guid>
      <description>Een Nederlands bureau belde om 23:41. Hun custom-PHP factuurportaal had de verkeerde factuur-PDF gemaild. We gaven session_start zes uur de schuld.</description>
      <category>PHP</category>
      <pubDate>Thu, 11 Jun 2026 07:27:28 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Magento 1 chatbot: de read-only vorm die blijft staan</title>
      <link>https://pier.abn.company/nl/blog/magento-1-chatbot-read-only-shape/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/magento-1-chatbot-read-only-shape/</guid>
      <description>Een klant wil een chatbot op een Magento 1-shop uit 2017 schroeven. De kunst: read-only houden, weg van de checkout en uit de order-tabellen.</description>
      <category>AI</category>
      <pubDate>Thu, 11 Jun 2026 06:33:03 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Xdebug 3 via een SSH-tunnel: opzet voor SFTP-only hosts</title>
      <link>https://pier.abn.company/nl/blog/xdebug-3-ssh-tunnel-sftp/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/xdebug-3-ssh-tunnel-sftp/</guid>
      <description>Een werkende Xdebug 3-opzet tegen een externe SFTP-only host, met de tunnelrichting, padmapping en idekey-valkuilen die anders je middag kosten.</description>
      <category>PHP</category>
      <pubDate>Thu, 11 Jun 2026 05:41:34 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Curl-recon op legacy sites: zeven one-liners voor je offerte</title>
      <link>https://pier.abn.company/nl/blog/curl-recon-legacy-hardening/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/curl-recon-legacy-hardening/</guid>
      <description>Een bureau dropt om 23:41 een URL en vraagt morgenvroeg een hardening-offerte. Zeven curl one-liners kosten vijf minuten en wegen het werk eerlijk.</description>
      <category>Security</category>
      <pubDate>Thu, 11 Jun 2026 04:51:26 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Joomla 3-beeldbibliotheek naar S3: 22GB-migratielog</title>
      <link>https://pier.abn.company/nl/blog/joomla-image-library-to-s3/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/joomla-image-library-to-s3/</guid>
      <description>Hoe we in één weekend een Joomla 3-beeldbibliotheek van 22GB naar S3 verplaatsten, zonder één artikelreferentie te breken of een trilling in het access log.</description>
      <category>Migration</category>
      <pubDate>Thu, 11 Jun 2026 03:58:08 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>WordPress functions.php hack: opruimen in vier rondes</title>
      <link>https://pier.abn.company/nl/blog/wordpress-functions-php-hack-cleanup/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/wordpress-functions-php-hack-cleanup/</guid>
      <description>Een gehackte theme functions.php komt zelden alleen. Dit is de cleanup in vier rondes die we draaien voor iemand wp-options of wp-posts aanraakt.</description>
      <category>WordPress</category>
      <pubDate>Thu, 11 Jun 2026 03:03:44 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>mysqlbinlog row events lezen: een praktische veldgids</title>
      <link>https://pier.abn.company/nl/blog/reading-mysqlbinlog-row-events/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/reading-mysqlbinlog-row-events/</guid>
      <description>Om 23:41 pingt een agency-lead: iemand swapte wp_options.siteurl, de weblogs zijn schoon. Zo lees je mysqlbinlog row events en vind je ze terug.</description>
      <category>Databases</category>
      <pubDate>Thu, 11 Jun 2026 02:12:44 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>Drupal 9 502 alleen voor redacteuren: sessions-tabel vol</title>
      <link>https://pier.abn.company/nl/blog/drupal-9-session-table-outage/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/drupal-9-session-table-outage/</guid>
      <description>Een Drupal 9-site gaf op een donderdagmiddag 502&#39;s, maar alleen voor ingelogde redacteuren. De oorzaak: een sessions-tabel die ibdata1 had volgegeten.</description>
      <category>Drupal</category>
      <pubDate>Thu, 11 Jun 2026 01:20:50 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>

    <item>
      <title>TLS-overdracht: cert, chain, cron en vier verborgen valkuilen</title>
      <link>https://pier.abn.company/nl/blog/tls-handover-checklist/</link>
      <guid isPermaLink="true">https://pier.abn.company/nl/blog/tls-handover-checklist/</guid>
      <description>Een eenpaginige TLS-overdrachtchecklist voor overgenomen sites: de leaf, de chain, de cron en de vier verborgen valkuilen die hosts vergeten te noemen.</description>
      <category>Security</category>
      <pubDate>Thu, 11 Jun 2026 00:28:09 GMT</pubDate>
      <dc:creator>Pier-redactie</dc:creator>
    </item>
  </channel>
</rss>
