41554 blogs · [ { "id": "01a0c503-f620-7261-9ecd-c91d03005511", "title": "Reduce AWS SDK Bundle Size in PHP with Composer", "url": "https://www.conroyp.com/articles/reduce-aws-sdk-bundle-size-modular-packages", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7976c720", "title": "Charging AI Agents Per Request: A Practical Guide to the Machine Payments Protocol", "url": "https://www.conroyp.com/articles/practical-guide-machine-payments-protocol", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7a523503", "title": "PHP[tek] 2026: Practical PHP, Chicago Hot Dogs and All The Elephpants", "url": "https://www.conroyp.com/articles/php-tek-2026", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7a535b0a", "title": "phpday Verona 2026", "url": "https://www.conroyp.com/articles/phpday-verona-2026", "published_at": "2026-05-17T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7b3ca547", "title": "Stripe Sessions 2026: The Year the Bot Became the Customer", "url": "https://www.conroyp.com/articles/stripe-sessions-2026-the-year-the-bot-became-the-customer", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7b4f658c", "title": "Custom Stripe Payment Notifications with Workflows - No Code Required!", "url": "https://www.conroyp.com/articles/custom-stripe-payment-notifications-with-workflows", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7b6bfc1c", "title": "Screen Portal: sharing a partial screen region in Google Meet", "url": "https://www.conroyp.com/articles/screen-portal-share-partial-screen-region-google-meet", "published_at": "2026-03-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7bb62d84", "title": "Dutch PHP Conference 2026: Notes from a Cinema Full of PHP Developers", "url": "https://www.conroyp.com/articles/dutch-php-conference-2026-notes-from-a-cinema-full-of-php-developers", "published_at": "2026-03-20T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7c63efd4", "title": "ConFoo 2026, Montréal", "url": "https://www.conroyp.com/articles/confoo-montreal-2026", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7cb41a0e", "title": "Migrating Subscriptions to Stripe Billing: A Guide to the Migration Toolkit", "url": "https://www.conroyp.com/articles/stripe-billing-migration-toolkit-import-subscriptions", "published_at": "2026-02-07T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7d05035d", "title": "From Tailwind CDN to Production: Generate an Optimised CSS Bundle", "url": "https://www.conroyp.com/articles/tailwind-cdn-to-production-optimised-css-bundle", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7de01dcd", "title": "Build Stuff 2025, Vilnius, Lithuania", "url": "https://www.conroyp.com/articles/build-stuff-conference-vilnius-lithuania-2025", "published_at": "2025-12-08T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7e45395b", "title": "Predictable Cross-Currency Payments with Stripe's FX Quotes API", "url": "https://www.conroyp.com/articles/predictable-cross-currency-payments-with-stripes-fx-quotes-api", "published_at": "2025-12-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7e9bff00", "title": "How to Change YouTube Playback Speed with a Simple Bookmarklet", "url": "https://www.conroyp.com/articles/how-to-change-youtube-playback-speed-with-a-simple-bookmarklet", "published_at": "2025-11-22T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7efe90a6", "title": "Why Your Average Position in Google Improved But Your Traffic Didn't", "url": "https://www.conroyp.com/articles/why-your-average-position-in-google-improved-but-your-traffic-didnt", "published_at": "2025-11-04T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7f7d18f8", "title": "Turning Off LinkedIn's \"Missed Notification\" Alert", "url": "https://www.conroyp.com/articles/turning-off-linkedins-missed-notifications-alert", "published_at": "2025-10-16T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b7fd00353", "title": "Redirecting Test Emails Safely in Laravel", "url": "https://www.conroyp.com/articles/redirecting-test-emails-safely-in-laravel", "published_at": "2025-10-11T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b809b681e", "title": "Automated Takedowns, Manual Headaches: When DMCA Bots Go Bad", "url": "https://www.conroyp.com/articles/automated-takedowns-manual-headaches-when-dmca-bots-go-bad", "published_at": "2025-07-23T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b80da2130", "title": "Creating favicons from emojis and SVGs", "url": "https://www.conroyp.com/articles/creating-favicons-from-emojis-and-svgs", "published_at": "2025-07-08T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b815be9fa", "title": "Avoiding Déjà Vu: Building Resilient APIs with Idempotency", "url": "https://www.conroyp.com/articles/avoiding-deja-vu-building-resilient-apis-with-idempotency", "published_at": "2025-06-18T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b819e1a7d", "title": "International PHP Conference, Berlin 2025", "url": "https://www.conroyp.com/articles/international-php-conference-ipc-berlin-2025", "published_at": "2025-06-13T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b81f0a9b8", "title": "Exporting Google Slides to PDF on Mac without losing Emojis or Custom Images", "url": "https://www.conroyp.com/articles/exporting-google-slides-pdf-losing-emojis-images-on-mac", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b82719716", "title": "CyberwiseCon / DevDays Europe, Vilnius, May 2025", "url": "https://www.conroyp.com/articles/cyberwise-con-dev-days-vilnius-may-2025", "published_at": "2025-05-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b82e0c5c0", "title": "Project Yellow Brick Road: Fighting Scrapers with 10 Downing Street, the White House, and Some Mildly Plausible Nonsense", "url": "https://www.conroyp.com/articles/project-yellow-brick-road-using-white-house-downing-street-fight-scrapers", "published_at": "2025-05-23T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b83cca305", "title": "Stripe Sessions 2025 Review", "url": "https://www.conroyp.com/articles/stripe-sessions-2025-san-francisco", "published_at": "2025-05-12T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b841b745e", "title": "Creating Animated Gifs from MP4 and WebM files using ffmpeg", "url": "https://www.conroyp.com/articles/creating-animated-gifs-from-mp4-webm-ffmpeg", "published_at": "2025-05-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8436e0b8", "title": "Upgrading Chrome in Ubuntu - Fixing the \"Dependency is not satisfiable: libglib2.0-0\" error", "url": "https://www.conroyp.com/articles/upgrading-chrome-ubuntu-dependency-is-not-satisfiable-libglib", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b847e3181", "title": "Stripe Is My DNS Provider Now: When Good APIs Meet Bad Ideas", "url": "https://www.conroyp.com/articles/stripe-dns-provider-metadata-bad-ideas-meet-good-apis", "published_at": "2025-04-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b84fbc5a0", "title": "Solving AWS Lambda's \"Cannot find module 'index'\" Problem", "url": "https://www.conroyp.com/articles/lambda-undefined-error-cannot-find-module-index", "published_at": "2025-03-28T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8597be51", "title": "Dutch PHP Conference, Amsterdam 2025", "url": "https://www.conroyp.com/articles/dutch-php-conference-2025-amsterdam", "published_at": "2025-03-24T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b85d0e5cd", "title": "Running Ollama on Ubuntu with an Unsupported AMD GPU: A Performance Guide", "url": "https://www.conroyp.com/articles/running-ollama-ubuntu-unsupported-amd-gpu-performance-guide", "published_at": "2025-01-27T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8606d7e9", "title": "Avoiding 'Route [filament.admin.auth.login] not defined' when customising Filament root", "url": "https://www.conroyp.com/articles/avoiding-route-filament-admin-auth-login-not-defined", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b86ede479", "title": "Fixing 'A Facade Root Has Not Been Set' when testing Laravel with Pest", "url": "https://www.conroyp.com/articles/fixing-facade-root-has-not-been-set-testing-laravel-pest", "published_at": "2025-01-13T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8779d29e", "title": "Serverless caching and proxying with Cloudflare Workers", "url": "https://www.conroyp.com/articles/serverless-api-caching-cloudflare-workers-json-cors-proxy", "published_at": "2024-12-18T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b88154742", "title": "Using Google Sheets as a RESTful JSON API", "url": "https://www.conroyp.com/articles/using-google-sheets-json-rest-api", "published_at": "2024-12-07T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8874dfb0", "title": "International PHP Conference, Munich 2024", "url": "https://www.conroyp.com/articles/international-php-conference-ipc-munich-2024", "published_at": "2024-11-30T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b88f2fd67", "title": "Persistent WiFi failure on Ubuntu 24.04", "url": "https://www.conroyp.com/articles/ubuntu-wifi-failure-powersave-problem", "published_at": "2024-09-18T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b89cac3ae", "title": "PHPers Summit 2024", "url": "https://www.conroyp.com/articles/phpers-summit-poznan-poland-2024", "published_at": "2024-07-04T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8ac3cd77", "title": "The Price of Privacy: How Paywalled Cookie Banners are Redefining Digital Revenue Streams", "url": "https://www.conroyp.com/articles/the-price-of-privacy-how-paywalls-are-redefining-digital-revenue-streams", "published_at": "2024-05-25T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8b6ec919", "title": "Monitoring Domain Expiration Dates using Laravel's Process Facade", "url": "https://www.conroyp.com/articles/monitoring-domain-expiration-dates-using-laravels-process-facade", "published_at": "2024-04-13T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8c248977", "title": "Upgrading PHPUnit - \"metadata in doc-comments is deprecated [...] use attributes instead\"", "url": "https://www.conroyp.com/articles/phpunit-deprecated-metadata-doc-comments-use-attributes-instead", "published_at": "2024-03-22T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8d0ef516", "title": "From Backend Dev to Front and Center: A First-Time Speaker's Journey to PHP UK 2024", "url": "https://www.conroyp.com/articles/from-backend-dev-to-front-and-centre-first-time-speakers-journey-to-php-uk-2024", "published_at": "2024-02-22T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8d657ff7", "title": "Slack Mobile Problems After Enabling 2FA", "url": "https://www.conroyp.com/articles/slack-mobile-problems-after-enabling-2fa", "published_at": "2024-02-21T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8e328193", "title": "Idempotency - what is it, and how can it help our Laravel APIs?", "url": "https://www.conroyp.com/articles/what-is-idempotency-add-to-laravel-apis", "published_at": "2024-01-02T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b8f2310cf", "title": "Juggling Databases When Testing With Laravel: Tackling the Lock Wait Timeout Error", "url": "https://www.conroyp.com/articles/juggling-databases-testing-laravel-multi-tenancy-lock-wait-timeout", "published_at": "2023-10-23T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b90027c14", "title": "Navigating the Shift from Developer to Leader - Decrypt Podcast Round-up", "url": "https://www.conroyp.com/articles/navigating-shift-from-developer-to-leader-decrypt-podcast-round-up", "published_at": "2023-09-07T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b90087428", "title": "Streamlining YouTube Integration: Icon Techniques & Best Practices for Optimised Video Loading", "url": "https://www.conroyp.com/articles/streamlining-youtube-integration-icon-techniques-best-practices-for-optimised-video-loading", "published_at": "2023-08-01T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b90d37d6e", "title": "Building Resilient Code: Harnessing the Power of Value Objects", "url": "https://www.conroyp.com/articles/building-resilient-code-harnessing-the-power-of-value-objects", "published_at": "2023-07-12T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9179b942", "title": "Streamline SEPA Bank Detail Collection: A Serverless Approach with Stripe and Cloudflare Workers", "url": "https://www.conroyp.com/articles/sepa-bank-details-stripe-cloudflare-workers-serverless", "published_at": "2023-06-16T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b917f0779", "title": "A/B testing your content on social media", "url": "https://www.conroyp.com/articles/ab-testing-headlines-on-social-media", "published_at": "2023-04-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b91b5eb4b", "title": "Calculating rolling averages with Laravel Collections", "url": "https://www.conroyp.com/articles/calculating-rolling-averages-in-laravel-collections", "published_at": "2023-03-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b91c04b74", "title": "Lazy loading background images to improve load time performance", "url": "https://www.conroyp.com/articles/improve-load-time-performance-lazily-loading-background-images", "published_at": "2023-02-16T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b91cb1627", "title": "Using a TV-style background blur to showcase portrait images in landscape layouts", "url": "https://www.conroyp.com/articles/blurred-background-tv-portrait-images", "published_at": "2023-02-01T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b92c9f329", "title": "Adding tenancy-awareness to Laravel queues and artisan commands", "url": "https://www.conroyp.com/articles/adding-tenancy-to-laravel-queues-artisan-commands", "published_at": "2023-01-26T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b92e91568", "title": "Attack of the clones - removing copied websites from the internet", "url": "https://www.conroyp.com/articles/removing-cloned-content-from-the-internet", "published_at": "2023-01-12T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9395b145", "title": "Embedding Google Drive videos", "url": "https://www.conroyp.com/articles/embedding-google-drive-videos", "published_at": "2023-01-04T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b93a32b6b", "title": "Font Subsetting - shrink down font files to speed up page loads", "url": "https://www.conroyp.com/articles/speeding-up-page-loads-with-font-subsetting", "published_at": "2022-12-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9455e303", "title": "First World Cup - Celebrations Cut Short", "url": "https://www.conroyp.com/articles/first-world-cup-celebrations-cut-short", "published_at": "2022-12-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b94a7e0a0", "title": "Minimising Cumulative Layout Shift (CLS) When Loading Responsive Ads", "url": "https://www.conroyp.com/articles/minimising-cls-when-loading-responsive-ads", "published_at": "2021-05-14T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b94f35361", "title": "Diagnosing a sudden jump in \"Direct\" traffic in Google Analytics", "url": "https://www.conroyp.com/articles/diagnosing-sudden-increase-direct-google-analytics", "published_at": "2021-05-13T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9595eee4", "title": "Avoiding The Google Ads Two-Click Penalty", "url": "https://www.conroyp.com/articles/avoiding-google-ads-two-click-penalty", "published_at": "2021-02-22T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b95dc094c", "title": "Improving Page Speed - Optimising for Core Web Vitals", "url": "https://www.conroyp.com/articles/optimising-for-core-web-vitals", "published_at": "2021-02-19T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b96d62eae", "title": "Using the Measurement Protocol API to find the impact of a Consent Management Platform", "url": "https://www.conroyp.com/articles/measurement-protocol-to-measure-cmp-impact", "published_at": "2021-01-19T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b977d9403", "title": "Toolbar colour customisation in Chrome with theme-color", "url": "https://www.conroyp.com/articles/toolbar-colour-customisation-chrome-theme-color", "published_at": "2014-12-05T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b97eb2689", "title": "Internet connection problems with eircom efibre fixed", "url": "https://www.conroyp.com/articles/internet-connection-problems-with-eircom-efibre-fixed", "published_at": "2014-11-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b98ea6b27", "title": "Jumping off the waterfall - lessons learned from an agile transition", "url": "https://www.conroyp.com/articles/jumping-off-the-waterfall-lessons-from-agile-transition", "published_at": "2014-10-21T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b99e4eb25", "title": "Picture perfect – useful code visualisation tools", "url": "https://www.conroyp.com/articles/picture-perfect-code-visualisation-tools", "published_at": "2014-10-20T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9a766940", "title": "Mailcatcher, Vagrant & Laravel: Email testing made easy", "url": "https://www.conroyp.com/articles/mailcatcher-vagrant-laravel-email-testing-made-easy", "published_at": "2014-09-02T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9b4f9977", "title": "Schrödinger’s Mysql table – does it exist?", "url": "https://www.conroyp.com/articles/schrodingers-mysql-table-does-it-exist", "published_at": "2014-02-23T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9b650a5c", "title": "Encoding a euro symbol in email subject lines", "url": "https://www.conroyp.com/articles/encoding-a-euro-symbol-in-email-subject-lines", "published_at": "2014-02-03T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9b752c60", "title": "Mysqldump syntax error fixed", "url": "https://www.conroyp.com/articles/mysqldump-syntax-error-fixed", "published_at": "2013-12-30T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9bce2c86", "title": "CSS & Javascript truncated by nginx", "url": "https://www.conroyp.com/articles/css-javascript-truncated-by-nginx-sendfile", "published_at": "2013-04-25T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9c39cd6d", "title": "Symlink shenanigans - node.js, npm, express and vagrant", "url": "https://www.conroyp.com/articles/symlink-shenanigans-nodejs-npm-express-vagrant", "published_at": "2013-04-13T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9cd40b62", "title": "Share and share alike – Facebook Tags and Twitter Cards", "url": "https://www.conroyp.com/articles/share-and-share-alike-facebook-tags-and-twitter-cards", "published_at": "2013-04-01T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9d17b3d6", "title": "The Daft.ie Property Tax Calculator – how does it work?", "url": "https://www.conroyp.com/articles/the-daft-property-tax-calculator-how-does-it-work", "published_at": "2013-03-23T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9d5eb35c", "title": "Talking to Joe: What’s a mention by Joe Duffy worth?", "url": "https://www.conroyp.com/articles/talking-to-joe-whats-a-mention-by-joe-duffy-worth", "published_at": "2013-03-14T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9dd8dcc4", "title": "Will valid markup now help your Google ranking?", "url": "https://www.conroyp.com/articles/will-valid-markup-now-help-your-google-ranking", "published_at": "2012-01-29T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9e5561e2", "title": "Geeks on the run", "url": "https://www.conroyp.com/articles/geeks-on-the-run", "published_at": "2011-08-21T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9e7f05b6", "title": "What's the best time to renew an ad on Daft.ie?", "url": "https://www.conroyp.com/articles/whats-the-best-time-to-renew-an-ad-on-daft-ie", "published_at": "2010-09-17T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9f0a43d3", "title": "Bookmarklets – a quick introduction!", "url": "https://www.conroyp.com/articles/bookmarklets-a-quick-introduction", "published_at": "2010-04-04T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582b9fb3d35f", "title": "DeCluttering Twitter, Part Deux", "url": "https://www.conroyp.com/articles/decluttering-twitter-part-deux", "published_at": "2010-03-20T00:00:00+00:00" }, { "id": "01a08763-5a89-73d2-9e39-582ba09a32fe", "title": "DeClutter Twitter", "url": "https://www.conroyp.com/articles/declutter-twitter", "published_at": "2010-03-11T00:00:00+00:00" } ] posts Claim your blog
Back to conroyp.com
Blog · corpus.blog/blogs/conroyp.com/posts

conroyp.com

conroyp.com

2026

2025

2024

2023

2022

2021

2014

2013

2012

2011

2010