RSS.Social

Paul Conroy

follow: @[email protected]

Posts

Automated Takedowns, Manual Headaches: When DMCA Bots Go Bad

Creating favicons from emojis and SVGs

Avoiding Déjà Vu: Building Resilient APIs with Idempotency

International PHP Conference, Berlin 2025

Exporting Google Slides to PDF on Mac without losing Emojis or Custom Images

CyberwiseCon / DevDays Europe, Vilnius, May 2025

Project Yellow Brick Road: Fighting Scrapers with 10 Downing Street, the White House, and Some Mildly Plausible Nonsense

Stripe Sessions 2025 Review

Creating Animated Gifs from MP4 and WebM files using ffmpeg

Upgrading Chrome in Ubuntu - Fixing the "Dependency is not satisfiable: libglib2.0-0" error

Stripe Is My DNS Provider Now: When Good APIs Meet Bad Ideas

Solving AWS Lambda's "Cannot find module 'index'" Problem

Dutch PHP Conference, Amsterdam 2025

Running Ollama on Ubuntu with an Unsupported AMD GPU: A Performance Guide

Avoiding 'Route [filament.admin.auth.login] not defined' when customising Filament root

Fixing 'A Facade Root Has Not Been Set' when testing Laravel with Pest

Serverless caching and proxying with Cloudflare Workers

Using Google Sheets as a RESTful JSON API

International PHP Conference, Munich 2024

Persistent WiFi failure on Ubuntu 24.04

PHPers Summit 2024

The Price of Privacy: How Paywalled Cookie Banners are Redefining Digital Revenue Streams

Monitoring Domain Expiration Dates using Laravel's Process Facade

Upgrading PHPUnit - "metadata in doc-comments is deprecated [...] use attributes instead"

From Backend Dev to Front and Center: A First-Time Speaker's Journey to PHP UK 2024

Slack Mobile Problems After Enabling 2FA

Idempotency - what is it, and how can it help our Laravel APIs?

Juggling Databases When Testing With Laravel: Tackling the Lock Wait Timeout Error

Navigating the Shift from Developer to Leader - Decrypt Podcast Round-up

Streamlining YouTube Integration: Icon Techniques & Best Practices for Optimised Video Loading

Building Resilient Code: Harnessing the Power of Value Objects

Streamline SEPA Bank Detail Collection: A Serverless Approach with Stripe and Cloudflare Workers

A/B testing your content on social media

Calculating rolling averages with Laravel Collections

Lazy loading background images to improve load time performance

Using a TV-style background blur to showcase portrait images in landscape layouts

Adding tenancy-awareness to Laravel queues and artisan commands

Attack of the clones - removing copied websites from the internet

Embedding Google Drive videos

Font Subsetting - shrink down font files to speed up page loads

First World Cup - Celebrations Cut Short

Minimising Cumulative Layout Shift (CLS) When Loading Responsive Ads

Diagnosing a sudden jump in "Direct" traffic in Google Analytics

Avoiding The Google Ads Two-Click Penalty

Improving Page Speed - Optimising for Core Web Vitals

Using the Measurement Protocol API to find the impact of a Consent Management Platform

Toolbar colour customisation in Chrome with theme-color

Internet connection problems with eircom efibre fixed

Jumping off the waterfall - lessons learned from an agile transition

Picture perfect – useful code visualisation tools

Mailcatcher, Vagrant & Laravel: Email testing made easy

Schrödinger’s Mysql table – does it exist?

Encoding a euro symbol in email subject lines

Mysqldump syntax error fixed

CSS & Javascript truncated by nginx

Symlink shenanigans - node.js, npm, express and vagrant

Share and share alike – Facebook Tags and Twitter Cards

The Daft.ie Property Tax Calculator – how does it work?

Talking to Joe: What’s a mention by Joe Duffy worth?

Will valid markup now help your Google ranking?

Geeks on the run

What's the best time to renew an ad on Daft.ie?

Bookmarklets – a quick introduction!

DeCluttering Twitter, Part Deux

DeClutter Twitter