<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Andrew McCombe's Blog</title>
        <description>RSS Feed for euperia.com - the personal blog of Andrew McCombe.</description>
        <link>https://www.euperia.com</link>
        <atom:link href="https://www.euperia.com/feed" rel="self" type="application/rss+xml"/>
        <lastBuildDate>Sun, 26 Jul 2026 14:08:08 +0000</lastBuildDate>
        <language>en</language>
        <copyright>Copywright for all content owned by Andrew McCombe</copyright>
        <generator>Feedamic: the Atom and RSS Feed generator for Statamic</generator>
        <item>
            <title><![CDATA[RSS feed added]]></title>
            <link>https://www.euperia.com/wrote/rss-feed-added</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/rss-feed-added</guid>
            <pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvcnNzLWZlZWQtYWRkZWQucG5n/rss-feed-added.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="RSS feed added"></p>
                                                <p>I realised last week that the RSS feed on this site wasn't enabled.  It is now.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[A week off, bonding over bikes.]]></title>
            <link>https://www.euperia.com/wrote/a-week-off-bonding-over-bikes</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/a-week-off-bonding-over-bikes</guid>
            <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzLzIwMjYwNzIwXzExMjE0OH4yLmpwZw/20260720_112148~2.jpg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="A week off, bonding over bikes."></p>
                                                <p>A week off work spent bonding with my son, and learning a lot about mountain bikes.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Happy Hardcore Day]]></title>
            <link>https://www.euperia.com/wrote/happy-hardcore-day</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/happy-hardcore-day</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvaGFwcHktaGFyZGNvcmUud2VicA/happy-hardcore.webp?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Happy Hardcore Day"></p>
                                                <p>Today I'm raising the tempo with Spotify's Happy Hardcore Mix. It definitely has me bouncing in my chair!</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to Clear Stuck Tasks in PHPStorm]]></title>
            <link>https://www.euperia.com/wrote/how-to-clear-stuck-tasks-in-phpstorm</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-clear-stuck-tasks-in-phpstorm</guid>
            <pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL2NsZWFuc2hvdC0yMDI1LTA2LTMwLWF0LTEzLjU1LjE3LnBuZw/cleanshot-2025-06-30-at-13.55.17.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="How to Clear Stuck Tasks in PHPStorm"></p>
                                                <p>Here's how I cleared older issues from PHPStom's Task Management.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to hot-reload your browser on file changes without needing JS]]></title>
            <link>https://www.euperia.com/wrote/how-to-hot-reload-your-browser-on-file-changes-without-needing-js</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-hot-reload-your-browser-on-file-changes-without-needing-js</guid>
            <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvY2hhcmxlc2RlbHV2aW8tcGphaDJheDR1d2stdW5zcGxhc2guanBn/charlesdeluvio-pjah2ax4uwk-unsplash.jpg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="How to hot-reload your browser on file changes without needing JS"></p>
                                                <p>Here's how to trigger hot-reloading of your browser when you make changes in any file.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Laravel File Upload fails with "The file failed to upload."]]></title>
            <link>https://www.euperia.com/wrote/laravel-file-upload-fails-with-the-file-failed-to-upload</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/laravel-file-upload-fails-with-the-file-failed-to-upload</guid>
            <pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL2RlYnVnZ2luZy1sYXJhdmVsLWZpbGUtZmFpbGVkLXRvLXVwbG9hZC5wbmc/debugging-laravel-file-failed-to-upload.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Laravel File Upload fails with &quot;The file failed to upload.&quot;"></p>
                                                <p>How to fix "The file failed to upload" issues with Laravel.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Fix for mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')...]]></title>
            <link>https://www.euperia.com/wrote/fix-for-mysqldump-couldn-t-execute-select-column_name-json_extract-histogram-usd-number-of-buckets-specified</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/fix-for-mysqldump-couldn-t-execute-select-column_name-json_extract-histogram-usd-number-of-buckets-specified</guid>
            <pubDate>Thu, 11 May 2023 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzLzNoamJ1eW53NzlobGhrNXJkbXdpLndlYnA/3hjbuynw79hlhk5rdmwi.webp?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Fix for mysqldump: Couldn&#039;t execute &#039;SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, &#039;$.&quot;number-of-buckets-specified&quot;&#039;)..."></p>
                                                <p>Recent updates to the `mysqldump`command may cause the error `SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS...` on MySQL 5.7.

Here's how to fix that.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Remote Debugging Local Websites on Android Phones]]></title>
            <link>https://www.euperia.com/wrote/remote-debugging-local-sites-on-android-phones</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/remote-debugging-local-sites-on-android-phones</guid>
            <pubDate>Sat, 08 Oct 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvbGUtYnV6ei1hbTlzajk4ZGkyYS11bnNwbGFzaC5qcGVn/le-buzz-am9sj98di2a-unsplash.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Remote Debugging Local Websites on Android Phones"></p>
                                                <p>How to test and inspect local development websites on Android phones.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How To Get The Last Entry In A Javascript Array - The Modern Way]]></title>
            <link>https://www.euperia.com/wrote/how-to-get-the-last-entry-in-a-javascript-array-the-modern-way</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-get-the-last-entry-in-a-javascript-array-the-modern-way</guid>
            <pubDate>Thu, 29 Sep 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[Getting the last item in a Javascript array can feel a bit yukky.  Luckily for us, there's now a new way of doing it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Laravel: Update created_at and updated_at timestamps manually]]></title>
            <link>https://www.euperia.com/wrote/laravel-update-created_at-and-updated_at-timestamps-manually</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/laravel-update-created_at-and-updated_at-timestamps-manually</guid>
            <pubDate>Tue, 30 Aug 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[Ever needed to manually set the `created_at` and `updated_at` fields in a Laravel Model?  By default the `updated_at` field will be overridden with the current date and time.  To get around this you need to pass `false` to the `timestamps` key when saving the model.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Git Ignore File Mode]]></title>
            <link>https://www.euperia.com/wrote/git-ignore-file-mode</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/git-ignore-file-mode</guid>
            <pubDate>Thu, 25 Aug 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvZ2l0LWZpbGVtb2RlLnBuZw/git-filemode.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Git Ignore File Mode"></p>
                                                <p>Here's how to tell git to ignore file mode changes.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How To Fix The Footer To The Bottom Of The Page With Tailwind CSS]]></title>
            <link>https://www.euperia.com/wrote/how-to-fix-the-footer-to-the-bottom-of-the-page-with-tailwind-css</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-fix-the-footer-to-the-bottom-of-the-page-with-tailwind-css</guid>
            <pubDate>Mon, 21 Feb 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvdGFpbHdpbmQuanBlZw/tailwind.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="How To Fix The Footer To The Bottom Of The Page With Tailwind CSS"></p>
                                                <p>Here's how I fixed the footer to the bottom of the page with Tailwind CSS.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to install and start Mailhog on Ubuntu 20.04]]></title>
            <link>https://www.euperia.com/wrote/install-mailhog-on-ubuntu</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-mailhog-on-ubuntu</guid>
            <pubDate>Fri, 14 Jan 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvZXJpY2Etc3RlZXZlcy1nX2x3YXAwdGYzOC11bnNwbGFzaC5qcGVn/erica-steeves-g_lwap0tf38-unsplash.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="How to install and start Mailhog on Ubuntu 20.04"></p>
                                                <p>Testing email on development sites can be hard but we can use Mailhog to make it easier. Here's how to install and start Mailhog on Ubuntu 20.04.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Sylius: How to add position to product images]]></title>
            <link>https://www.euperia.com/wrote/sylius-how-to-add-position-to-product-images</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/sylius-how-to-add-position-to-product-images</guid>
            <pubDate>Wed, 05 Jan 2022 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvY2hyaXMtemhhbmctbXBrXzhla3BmdTgtdW5zcGxhc2guanBlZw/chris-zhang-mpk_8ekpfu8-unsplash.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Sylius: How to add position to product images"></p>
                                                <p>Sylius doesn't come with functionality to change the ordering of images in the admin area but it would be great if we could do it ourselves. Here's how to add a position to the product images tab.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Vue Not Updating When Changing Array]]></title>
            <link>https://www.euperia.com/wrote/vue-not-updating-when-changing-array</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/vue-not-updating-when-changing-array</guid>
            <pubDate>Sun, 11 Jul 2021 00:00:00 +0000</pubDate>
            <description><![CDATA[Today I had a problem with Vue.js not updating when I changed content in an array. Here's how I resolved it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Feature Estimation: What is the real cost of adding a feature to a website?]]></title>
            <link>https://www.euperia.com/wrote/feature-estimation-real-cost</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/feature-estimation-real-cost</guid>
            <pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate>
            <description><![CDATA[When a client requests a feature, how do you provide a reasonable estimate? What do you base your estimate on. How much contingency do you add?]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How To Create a New User in MySQL 8]]></title>
            <link>https://www.euperia.com/wrote/how-to-create-a-new-user-in-mysql-8</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-create-a-new-user-in-mysql-8</guid>
            <pubDate>Fri, 27 Nov 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[The command to create a new user on MySQL version 8 has changed.  Heres how to do it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Solved: Installing composer V1 with Ansible]]></title>
            <link>https://www.euperia.com/wrote/solved-installing-composer-v1-with-ansible</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/solved-installing-composer-v1-with-ansible</guid>
            <pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how I solved installing Composer V1 with Ansible]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento 2: How to disable the Admin Two Factor Auth (2FA) Feature]]></title>
            <link>https://www.euperia.com/wrote/magento-2-how-to-disable-the-admin-two-factor-auth-2fa-feature</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-2-how-to-disable-the-admin-two-factor-auth-2fa-feature</guid>
            <pubDate>Thu, 17 Sep 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[Today I installed Magento 2 for the first time in about a year.  Once installed I navigated to the admin area and was presented with a two factor auth warning.  Heres how I disabled it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Symfony: Open file in VSCode or PHPStorm from the browser]]></title>
            <link>https://www.euperia.com/wrote/symfony-open-in-ide-phpstorm-vscode</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/symfony-open-in-ide-phpstorm-vscode</guid>
            <pubDate>Thu, 30 Apr 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvc3ltZm9ueS1leGNlcHRpb24uZ2lm/symfony-exception.gif?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Symfony: Open file in VSCode or PHPStorm from the browser"></p>
                                                <p>Did you know you can open files in your IDE direct from Symfony's exception pages?</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to Set a User Agent for PHP fopen() calls]]></title>
            <link>https://www.euperia.com/wrote/set-a-user-agent-for-php-fopen-calls</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/set-a-user-agent-for-php-fopen-calls</guid>
            <pubDate>Tue, 21 Jan 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[How to set a user agent when using PHP's fopen() with an URL]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How To Create A Multi-Page PDF From Images]]></title>
            <link>https://www.euperia.com/wrote/creating-a-multi-page-pdf-from-images</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/creating-a-multi-page-pdf-from-images</guid>
            <pubDate>Tue, 14 Jan 2020 00:00:00 +0000</pubDate>
            <description><![CDATA[Recently I needed to send someone a PDF of a bunch of scanned documents.  Here's how I did it]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Using Docker with Laravel]]></title>
            <link>https://www.euperia.com/wrote/using-docker-with-laravel</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/using-docker-with-laravel</guid>
            <pubDate>Sun, 21 Jul 2019 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvaWFuLXRheWxvci1qb3FqYnZvMXA5Zy11bnNwbGFzaC5qcGVn/ian-taylor-joqjbvo1p9g-unsplash.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Using Docker with Laravel"></p>
                                                <p>When developing on a Laravel project I've used Homebrew for my web server and database, or used a Vagrant box. Whilst these work well most of the time there's an alternative that is quickly becoming the de-facto standard: Docker. Fortunately, getting Laravel to work with Docker is quite straightforward.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to disable a payment method on the frontend with Magento 1]]></title>
            <link>https://www.euperia.com/wrote/magento-disable-payment-method-on-frontend</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-disable-payment-method-on-frontend</guid>
            <pubDate>Fri, 24 May 2019 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to disable a payment method on the front-end of a Magento 1 site whilst making it available in the admin area.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Apache: Use .htaccess to redirect http to https]]></title>
            <link>https://www.euperia.com/wrote/apache-use-htaccess-to-redirect-http-to-https</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/apache-use-htaccess-to-redirect-http-to-https</guid>
            <pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[I'm forever having to lookup how to use Apache's .htaccess to redirect http to https so here it is.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Apache: Use .htaccess to redirect non-www to www]]></title>
            <link>https://www.euperia.com/wrote/apache-use-htaccess-to-redirect-non-www-to-www</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/apache-use-htaccess-to-redirect-non-www-to-www</guid>
            <pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to redirect a non-www sub-domain request to the www subdomain using Apache's .htaccess file]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How To Clear Google Chrome’s 301 Redirect Cache]]></title>
            <link>https://www.euperia.com/wrote/how-to-clear-google-chromes-301-redirect-cache</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-clear-google-chromes-301-redirect-cache</guid>
            <pubDate>Wed, 30 May 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[Ever had a dev site set up and had it 301 redirect to 'https', only to find that Google Chrome caches this and you can't get the 'http://' version after?]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento Admin Invalid Form Key]]></title>
            <link>https://www.euperia.com/wrote/magento-admin-invalid-form-key</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-admin-invalid-form-key</guid>
            <pubDate>Wed, 30 May 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[I Recently came across a situation where I couldn't log in to the Magento admin area, getting 'invalid form key on admin'. Here's how to fix it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to import a Google Sitemap into a MySQL table]]></title>
            <link>https://www.euperia.com/wrote/how-to-import-a-google-sitemap-into-mysql</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-import-a-google-sitemap-into-mysql</guid>
            <pubDate>Wed, 30 May 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a quick snippet showing how to import a Google Sitemap file into a MySQL table.  This is useful if you need to do anything with the urls such as scrape the pages or check for 301/302/404 results.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Google Analytics WordPress Plugin]]></title>
            <link>https://www.euperia.com/wrote/google-analytics-wordpress-plugin</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/google-analytics-wordpress-plugin</guid>
            <pubDate>Wed, 03 Jan 2018 00:00:00 +0000</pubDate>
            <description><![CDATA[I wanted to learn now to create a basic plugin for WordPress and have made this very basic WordPress plugin that adds Google Analytics tracking code to your WordPress Site.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to use htaccess to password protect your website]]></title>
            <link>https://www.euperia.com/wrote/how-to-use-htaccess-to-password-protect-your-website</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-use-htaccess-to-password-protect-your-website</guid>
            <pubDate>Wed, 29 Nov 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[There are many reasons why you would want to password protect your website, or a section of your website.  Here's how to setup a .htaccess file to password protect your website.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento: remove admin mass action for specific role]]></title>
            <link>https://www.euperia.com/wrote/magento-remove-admin-mass-action-specific-role</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-remove-admin-mass-action-specific-role</guid>
            <pubDate>Tue, 15 Aug 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[I had a use case where a Magento admin user was limited to viewing the orders only.  They should be able to view orders but not perform any actions on an order.  The best way to do this with Magento is to remove admin mass actions for a specific user role.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento: Remove specific tabs from product edit in admin]]></title>
            <link>https://www.euperia.com/wrote/magento-remove-specific-tabs-product-edit-admin</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-remove-specific-tabs-product-edit-admin</guid>
            <pubDate>Tue, 08 Aug 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to remove specific tabs from Magento's admin product edit pages.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to upgrade Magento 2 to a later version]]></title>
            <link>https://www.euperia.com/wrote/upgrade-magento-2-later-version</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/upgrade-magento-2-later-version</guid>
            <pubDate>Fri, 09 Jun 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to upgrade Magento 2 to a later version. For example, if you are currently running 2.1.6 and you need to upgrade to 2.1.7.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to get the URL of a CMS page or a static block in Magento]]></title>
            <link>https://www.euperia.com/wrote/get-url-cms-page-static-block-magento</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/get-url-cms-page-static-block-magento</guid>
            <pubDate>Wed, 19 Apr 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to get the URL of a CMS page or a static block in Magento.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to use a different SSH port with rsync]]></title>
            <link>https://www.euperia.com/wrote/use-different-ssh-port-rsync</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/use-different-ssh-port-rsync</guid>
            <pubDate>Tue, 18 Apr 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[I'm forever forgetting how to use a different ssh port with rsync, so here's how to do it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[HEAD request with PHP]]></title>
            <link>https://www.euperia.com/wrote/head-request-php</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/head-request-php</guid>
            <pubDate>Thu, 30 Mar 2017 00:00:00 +0000</pubDate>
            <description><![CDATA[If you want to perform a HEAD request with PHP on an URL you can use the `stream` functionality...]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Cheat Sheet: Magento Collection Snippets]]></title>
            <link>https://www.euperia.com/wrote/magento-collection-cheat-sheet</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-collection-cheat-sheet</guid>
            <pubDate>Thu, 18 Aug 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[A cheat sheet containing useful Magento Collection snippets.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento Snippet: Use a Group By clause on a collection model]]></title>
            <link>https://www.euperia.com/wrote/magento-snippet-use-group-clause-collection-model</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-snippet-use-group-clause-collection-model</guid>
            <pubDate>Wed, 17 Aug 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a Magento snippet showing how to use a Group By clause on a Magento collection model.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Managing Homebrew Services]]></title>
            <link>https://www.euperia.com/wrote/managing-homebrew-services</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/managing-homebrew-services</guid>
            <pubDate>Fri, 05 Aug 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Homebrew is easy to use and makes installing services such as MySQL or Elasticsearch a breeze. Here's how to manage those services.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[I’m a Magento Certified Developer!]]></title>
            <link>https://www.euperia.com/wrote/magento-certified-developer</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-certified-developer</guid>
            <pubDate>Thu, 04 Aug 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvbWFnZW50by1jZXJ0aWZpZWQtZGV2ZWxvcGVyLmpwZWc/magento-certified-developer.jpeg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="I’m a Magento Certified Developer!"></p>
                                                <p>I'm pleased to announce that I have recently passed the Magento Certified Developer exam.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Solved: Fix for PHP Composer “????%” issue]]></title>
            <link>https://www.euperia.com/wrote/fix-php-composer-issue</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/fix-php-composer-issue</guid>
            <pubDate>Thu, 28 Jul 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[I've had a problem on a few older projects where composer dies with "????%" after running `composer update`.  Here's the fix.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento Custom Variables]]></title>
            <link>https://www.euperia.com/wrote/magento-custom-variables</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-custom-variables</guid>
            <pubDate>Tue, 12 Jul 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Magento provides an interface for you to define your own custom variables. You can use these in CMS pages, static blocks, email templates and phtml templates. Here's how to use them.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[MySQL Foreign Key Tutorial]]></title>
            <link>https://www.euperia.com/wrote/mysql-foreign-key-tutorial</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/mysql-foreign-key-tutorial</guid>
            <pubDate>Sat, 09 Jul 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a quick tutorial on creating foreign keys with MySQL.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Testing Magento Email with Mailtrap.io]]></title>
            <link>https://www.euperia.com/wrote/testing-magento-email-with-mailtrap-io</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/testing-magento-email-with-mailtrap-io</guid>
            <pubDate>Thu, 26 May 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Have you discovered how hard it is when testing Magento email? Have you ever tried getting Magento to use a separate SMTP server to send emails? I have, and got very frustrated with it. My solution to testing magento email is to use Mailtrap.io.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to backup and restore with Magento 2]]></title>
            <link>https://www.euperia.com/wrote/backup-restore-magento-2</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/backup-restore-magento-2</guid>
            <pubDate>Tue, 01 Mar 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Magento 2 comes with built-in functionality to backup and restore the code, media, and database. You can choose to backup and restore code, media, or database separately. Here's how to backup and restore with Magento 2.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Product and Breadcrumb Rich Snippets in Magento]]></title>
            <link>https://www.euperia.com/wrote/product-breadcrumb-rich-snippets-magento</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/product-breadcrumb-rich-snippets-magento</guid>
            <pubDate>Mon, 29 Feb 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to add products and breadcrumb Rich Snippets in Magento.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento Snippet: How to set and get cookies in Magento]]></title>
            <link>https://www.euperia.com/wrote/how-to-set-and-get-cookies-in-magento</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-set-and-get-cookies-in-magento</guid>
            <pubDate>Mon, 22 Feb 2016 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to get and set cookies in Magento 1.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Solved: PHP Imagick ‘unable to open image’ PDF]]></title>
            <link>https://www.euperia.com/wrote/solved-php-imagick-unable-to-open-image-pdf</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/solved-php-imagick-unable-to-open-image-pdf</guid>
            <pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[I've recently stumbled across an issue where PHP Imagick can't open a PDF file despite the file being there and readable. This is using Mac OSX El Capitan with Homebrewed PHP5, Imagemagick, Ghostscript and the PHP55-imagick module. After a bit of searching I found the fix.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento Snippet: Admin grid currency type with currency symbol]]></title>
            <link>https://www.euperia.com/wrote/magento-snippet-admin-grid-currency-type-currency-symbol</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-snippet-admin-grid-currency-type-currency-symbol</guid>
            <pubDate>Tue, 06 Oct 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a snippet for using a currency column type with the currency symbol prefix in Magento admin grids.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[TIL: MySQL FLUSH PRIVILEGES isn’t needed]]></title>
            <link>https://www.euperia.com/wrote/til-mysql-flush-privileges-isnt-needed</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/til-mysql-flush-privileges-isnt-needed</guid>
            <pubDate>Fri, 17 Jul 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[Today I learned that `FLUSH PRIVILEGES` isn't needed by Scott Lindsey in the comments.  After double checking locally that Scott was correct I looked it up and found a great explanation why MySQL FLUSH PRIVILEGES isn't needed]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Solved: MySQL fix for  "Field ‘xxxx’ doesn’t have a default value"]]></title>
            <link>https://www.euperia.com/wrote/mysql-fix-field-doesnt-default-value</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/mysql-fix-field-doesnt-default-value</guid>
            <pubDate>Mon, 22 Jun 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[If you're using MySQL and getting the following error "SQLSTATE[HY000]: General error: 1364 Field 'delivery_address_id' doesn't have a default value" then this is how to fix it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[20 years of PHP #20yearsofphp]]></title>
            <link>https://www.euperia.com/wrote/20yearsofphp</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/20yearsofphp</guid>
            <pubDate>Tue, 09 Jun 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[On 8th June 1995, Rasmus Lerdorf announced the release of Personal Home Page Tools Version 1.0. To celebrate the 20th anniversary, Ben Ramsey has asked the PHP community to share their PHP experiences and share them on Twitter using the hashtag #20yearsofphp.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Useful Oh-My-Zsh plugins]]></title>
            <link>https://www.euperia.com/wrote/useful-oh-zsh-plugins</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/useful-oh-zsh-plugins</guid>
            <pubDate>Sun, 03 May 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[Oh-My-Zsh describes itself as a 'community driven framework for managing your zsh configuration' and comes with lots of zsh plugins (189 currently) but none are enabled by default. Some zsh plugins are tailored for your specific operating system whilst others are aimed at helping improve developers workflow. Wether you're using Ruby, Python, PHP or Javascript as your main language or you're a systems administrator, there will be a plugin to help.  Here are the zsh plugins I'm currently using.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install Beanstalkd on Ubuntu 12.04]]></title>
            <link>https://www.euperia.com/wrote/install-beanstalkd-on-ubuntu-12-04</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-beanstalkd-on-ubuntu-12-04</guid>
            <pubDate>Wed, 22 Apr 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[A simple guide on how to install Beanstalkd on Ubuntu 12.04.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[PHP: How to pear install HTTP2 and HTTP_Request2]]></title>
            <link>https://www.euperia.com/wrote/pear-install-http2</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/pear-install-http2</guid>
            <pubDate>Thu, 16 Apr 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[Whilst working on a project recently I've found the need to install the HTTP2 package from the pear repository. I couldn't find any useful notes on how to install HTTP2 via pear so here's my notes on how to pear install HTTP2.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Staffs Web Meetup February 2015]]></title>
            <link>https://www.euperia.com/wrote/staffs-web-meetup-february-2015</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/staffs-web-meetup-february-2015</guid>
            <pubDate>Sat, 21 Feb 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvcnViYmVyLWR1Y2stZGV2ZWxvcG1lbnQuanBn/rubber-duck-development.jpg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Staffs Web Meetup February 2015"></p>
                                                <p>On Thursday night I attended the Staffs Web Meetup, a monthly event aimed at providing an informal environment for people involved in all aspects of the web industry to meet up.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[You may need to re-run your boot loader[grub]]]></title>
            <link>https://www.euperia.com/wrote/you-may-need-to-re-run-your-boot-loader-grub</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/you-may-need-to-re-run-your-boot-loader-grub</guid>
            <pubDate>Thu, 19 Feb 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[After updating an Ubuntu server I occasionally see the message `you may need to re-run your boot loader[grub]` after updating the kernel.  Here's how to actually update Grub.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Exim Command Cheat Sheet]]></title>
            <link>https://www.euperia.com/wrote/exim-command-cheat-sheet</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/exim-command-cheat-sheet</guid>
            <pubDate>Fri, 13 Feb 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[I've had this Exim command cheat sheet in Evernote for a while and thought it would prove useful to others.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to use different PHP versions on OSX with Apache and Homebrew]]></title>
            <link>https://www.euperia.com/wrote/using-different-php-versions-osx-apache-homebrew</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/using-different-php-versions-osx-apache-homebrew</guid>
            <pubDate>Wed, 04 Feb 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[By default Apple's OSX (Mavericks) comes with PHP 5.4 installed but if you want to work on a different version you're pretty stuck. 
My solution to this is to use homebrew to install PHP5.3, 5.4, 5.5 and 5.6 and then simply change the PHP module loaded by apache.  Here how to do it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Sample xdebug.ini file]]></title>
            <link>https://www.euperia.com/wrote/sample-xdebug-ini-file</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/sample-xdebug-ini-file</guid>
            <pubDate>Wed, 28 Jan 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[I use Xdebug when working on PHP websites and often have to manually install it before starting and debugging. I usually find myself searching the internet for a sample xdebug.ini file to use after installing.  So here's a sample xdebug.ini file for my future self (and anyone else it may help).]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to forward a domain to a Vagrant VM with Apache on OSX]]></title>
            <link>https://www.euperia.com/wrote/how-to-forward-domain-to-vagrant-vm-apache-osx</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-forward-domain-to-vagrant-vm-apache-osx</guid>
            <pubDate>Tue, 27 Jan 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[I do a lot of my development work using Virtual Machines and Vagrant. This provides an easy way for me to get a working environment up and running locally on the many projects I work on daily. However, one of the problems with this is that these VMs aren't accessible externally. This can be a problem when you need to show your work or use a third party service that needs access to the site. Here's how to forward a domain to a Vagrant VM using Apache's mod_proxy.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Using a Standing Desk for Work:  Week 1]]></title>
            <link>https://www.euperia.com/wrote/using-standing-desk-work-week-1</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/using-standing-desk-work-week-1</guid>
            <pubDate>Mon, 19 Jan 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[Its been a week since my post last week, "Using a standing desk for work: Day 1" so I thought I'd write a update.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Using a Standing Desk for Work: Day 1]]></title>
            <link>https://www.euperia.com/wrote/using-standing-desk-work-day-1</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/using-standing-desk-work-day-1</guid>
            <pubDate>Tue, 13 Jan 2015 00:00:00 +0000</pubDate>
            <description><![CDATA[We've been toying with the idea of using a standing desk for work quite a while after we had read about them on the internet. The benefits of using them are still unproven but after experiencing back-ache, abdominal issues and muscular pain I tried using a makeshift setup to see if using a standing desk for work would improve things.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Scriptaculous Ajax Autocomplete callback example]]></title>
            <link>https://www.euperia.com/wrote/scriptaculous-ajax-autocomplete-callback-example</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/scriptaculous-ajax-autocomplete-callback-example</guid>
            <pubDate>Sat, 06 Dec 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Recently, whilst working on an old website at work, I found a need to add additional parameters to a Script.aculo.us Ajax.autocomplete call The documentation show that this is possible via the callback function but unfortunately there isn't an example provided.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Apache htaccess password authentication, optimisation, and caching]]></title>
            <link>https://www.euperia.com/wrote/apache-htaccess</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/apache-htaccess</guid>
            <pubDate>Sun, 30 Nov 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a few Apache snippets for password authentication, allowing acces via an IP (else requesting password), optimising and caching assets, turning og PHP processing, and more.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Job Control Commands: fg, bg and ctrl-z]]></title>
            <link>https://www.euperia.com/wrote/job-control-commands-fg-bg-ctrl-z</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/job-control-commands-fg-bg-ctrl-z</guid>
            <pubDate>Tue, 16 Sep 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[I have a script polling a Beanstalkd queue and needed to put it into the background, and bring it to the front whilst debugging it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Solved: Fix for MySQL error Code 1217 – A foreign key constraint fails]]></title>
            <link>https://www.euperia.com/wrote/fix-for-mysql-error-code-1217-a-foreign-key-constraint-fails</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/fix-for-mysql-error-code-1217-a-foreign-key-constraint-fails</guid>
            <pubDate>Wed, 13 Aug 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[If you're getting the following from MySQL: 'Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails' - this is how to fix it]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Inspecting jQuery event handlers]]></title>
            <link>https://www.euperia.com/wrote/inspect-jquery-event-handlers</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/inspect-jquery-event-handlers</guid>
            <pubDate>Tue, 05 Aug 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Ever had issues finding where a JQuery click handler is defined? Got a project with LOTS of Javascript and can't find where an event is handled? Here's how to find out using Google Chrome.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Grep Apache access log for browser and OS version]]></title>
            <link>https://www.euperia.com/wrote/grep-apache-access-log-for-browser-os-version</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/grep-apache-access-log-for-browser-os-version</guid>
            <pubDate>Thu, 05 Jun 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Today I've needed to find out if it was worth testing a client's website with Safari 5 on Windows.  Here's some shell foo to find out from an access log]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install NodeJS and Bower on Ubuntu 12.04 Precise]]></title>
            <link>https://www.euperia.com/wrote/install-nodejs-and-bower-on-ubuntu-12-04-precise</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-nodejs-and-bower-on-ubuntu-12-04-precise</guid>
            <pubDate>Tue, 29 Apr 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[I'm using Bower on a few projects at work to manage the JavaScript dependencies and it works perfectly for my needs. The only issue is that the websites are currently deployed on Ubuntu 12.04 and the packaged version of NodeJs is too old to install Bower.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Ignore PHP Strict Errors and Warnings]]></title>
            <link>https://www.euperia.com/wrote/ignore-php-strict-errors-warnings</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/ignore-php-strict-errors-warnings</guid>
            <pubDate>Mon, 31 Mar 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[After upgrading to PHP5.4 on one of our older code-bases I'm finding the error logs full of PHP Strict Errors and warnings. As this code is old and not financially viable to fix all these issues I needed to ignore the errors and warnings.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How I use Git for Web Development]]></title>
            <link>https://www.euperia.com/wrote/how-i-use-git-with-web-development</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-i-use-git-with-web-development</guid>
            <pubDate>Thu, 13 Mar 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[I have a few steps I usually follow when I find myself working on one of these websites so here's how I use Git with Web Development.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Quick Tip: PHPstorm Find and Replace Regex Dollar Sign ($)]]></title>
            <link>https://www.euperia.com/wrote/phpstorm-find-replace-regex-dollar-sign</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/phpstorm-find-replace-regex-dollar-sign</guid>
            <pubDate>Sat, 01 Mar 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[If you need to perform a Find and Replace with a Regex in PHPStorm and want to replace a dollar sign ($) you'll need to escape it with a double slash]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Fix for PHP ‘ Warning: Invalid argument supplied for foreach() in …’]]></title>
            <link>https://www.euperia.com/wrote/fix-php-warning-invalid-argument-supplied-foreach</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/fix-php-warning-invalid-argument-supplied-foreach</guid>
            <pubDate>Fri, 14 Feb 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[I'm getting lots of pages with the PHP warning "Warning: Invalid argument supplied for foreach() in ...".  The warning is showing because I like to develop with error reporting turned on.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Can’t find VirtualBox Guest Additions ISO?]]></title>
            <link>https://www.euperia.com/wrote/cant-find-virtualbox-guest-additions-iso</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/cant-find-virtualbox-guest-additions-iso</guid>
            <pubDate>Thu, 13 Feb 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Can't find the VirtualBox Guest Additions ISO? Here's a link to the VirtualBox downloads server.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Why NPR’s intern didn’t like Public Enemy’s ‘It Takes A Nation Of Millions To Hold Us Back’]]></title>
            <link>https://www.euperia.com/wrote/why-nprs-intern-didnt-like-public-enemys-it-takes-nation-millions-hold-us-back</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/why-nprs-intern-didnt-like-public-enemys-it-takes-nation-millions-hold-us-back</guid>
            <pubDate>Thu, 23 Jan 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[Today I read a well written blog post over at NPR Music called ‘You’ve never heard Public Enemy’s ‘It Takes a Nation of Millions To Hold Us Back’ in which one of their young interns, Austin Cooper, listens to Public Enemy’s classic album for the first time, and hated it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[My Musical Journey: From Glam Rock to Hip-Hop (and Beyond) – Part Two]]></title>
            <link>https://www.euperia.com/wrote/musical-journey-glam-rock-hip-hop-beyond-part-two</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/musical-journey-glam-rock-hip-hop-beyond-part-two</guid>
            <pubDate>Wed, 08 Jan 2014 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvZ2hldHRvLWJsYXN0ZXIucG5n/ghetto-blaster.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="My Musical Journey: From Glam Rock to Hip-Hop (and Beyond) – Part Two"></p>
                                                <p>So the 1980s had introduced me to Hip-Hop - a new, exciting and fresh sound straight from the USA and I loved it. But there was a new buzz growing in the UK at the time and I'll admit that I hated it - at first.  House had been growing for a couple of years and I'd first</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[My Musical Journey: From Glam Rock to Hip-Hop (and Beyond) – Part One]]></title>
            <link>https://www.euperia.com/wrote/musical-journey-glam-rock-hip-hop-beyond-part-one</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/musical-journey-glam-rock-hip-hop-beyond-part-one</guid>
            <pubDate>Sun, 10 Nov 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvZ2hldHRvLWJsYXN0ZXIucG5n/ghetto-blaster.png?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="My Musical Journey: From Glam Rock to Hip-Hop (and Beyond) – Part One"></p>
                                                <p>I seem to have been born at a pretty good time for music.  My parents aren’t big music fans; my Mother used to be into Glam Rock and bits of Hendrix whilst my Father used to play Country music on Sunday mornings. How that mix started my musical journey from Glam Rock to Hip-Hop and beyond is anyones guess.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to configure postfix to deliver all mail to one mailbox]]></title>
            <link>https://www.euperia.com/wrote/how-to-configure-postfix-to-deliver-all-mail-to-one-mailbox</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-configure-postfix-to-deliver-all-mail-to-one-mailbox</guid>
            <pubDate>Sat, 19 Oct 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[How to configure postfix to deliver all mail to a local user account]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Filter Apache logs to exclude js, css and images]]></title>
            <link>https://www.euperia.com/wrote/filter-apache-logs-to-exclude-js-css-and-images</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/filter-apache-logs-to-exclude-js-css-and-images</guid>
            <pubDate>Wed, 07 Aug 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[Quite often I find myself having to filter Apache logs to exclude JS, CSS and images.   I use a combination of cat and egrep to achieve this.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[MySQL Create Database with UTF8 Character Set Syntax]]></title>
            <link>https://www.euperia.com/wrote/mysql-create-database-with-utf8-character-set-syntax</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/mysql-create-database-with-utf8-character-set-syntax</guid>
            <pubDate>Fri, 21 Jun 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[I always forget the MySQL create database with UTF8 character set syntax, so here it is.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[PHP Imagick / ImagickException: "no decode delegate for postscript or PDF files"]]></title>
            <link>https://www.euperia.com/wrote/php-imagick-imagickexception-no-decode-delegate-for-postscript-or-pdf-files</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/php-imagick-imagickexception-no-decode-delegate-for-postscript-or-pdf-files</guid>
            <pubDate>Fri, 17 May 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[This morning I had an issue with a PHP imagick ImagickException when converting a PDF/postscript file to a thumbnail.  I have PHP Imagick, Imagemagick and Ghostscript installed and everything verifies as OK in phpinfo output.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Magento admin login problem in Chrome – with solution]]></title>
            <link>https://www.euperia.com/wrote/magento-admin-login-problem-in-chrome-with-solution</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/magento-admin-login-problem-in-chrome-with-solution</guid>
            <pubDate>Wed, 10 Apr 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[Recently I've been experiencing a Magento admin login problem in Chrome which was caused by an invalid domain name and cookies.  Here's how I fixed it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Routing requests to index.php with Apache]]></title>
            <link>https://www.euperia.com/wrote/route-requests-to-index-php-with-apache</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/route-requests-to-index-php-with-apache</guid>
            <pubDate>Mon, 25 Mar 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to go about routing requests to index.php with Apache.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[PHP backtick gotcha]]></title>
            <link>https://www.euperia.com/wrote/php-backtick-gotcha</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/php-backtick-gotcha</guid>
            <pubDate>Tue, 12 Mar 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[I got caught out using bacticks in a PHP script.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install PHP 5.4 and Nginx on Ubuntu 12.04]]></title>
            <link>https://www.euperia.com/wrote/install-nginx-and-php5-4-on-ubuntu-12-04</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-nginx-and-php5-4-on-ubuntu-12-04</guid>
            <pubDate>Wed, 13 Feb 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[Whilst the LAMP stack is easy to install (sudo tasksel & select 'LAMP'), installing PHP 5.4 and Nginx on Ubuntu 12.04 isn't as straightforward.  For a start, the packaged Nginx is out of date and PHP5.4 isn't currently available at all out of the box.  Luckily there are PPA's for installing PHP 5.4 and Nginx.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Developer Tools: Vim keyboard shortcuts]]></title>
            <link>https://www.euperia.com/wrote/vim-keyboard-shortcuts</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/vim-keyboard-shortcuts</guid>
            <pubDate>Sat, 05 Jan 2013 00:00:00 +0000</pubDate>
            <description><![CDATA[I regularly use Vim but have to confess that I'm not a 'power' user.  To help me learn Vim keyboard shortcuts I have noted them down here.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install PHP and Mysql on OSX Mountain Lion]]></title>
            <link>https://www.euperia.com/wrote/install-php-mysql-on-osx-moutain-lion</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-php-mysql-on-osx-moutain-lion</guid>
            <pubDate>Wed, 19 Dec 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a useful snippet to help install PHP and MySQL on OSX Mountain Lion.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to highlight keywords when using tail]]></title>
            <link>https://www.euperia.com/wrote/how-to-highlight-keywords-when-using-tail</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-highlight-keywords-when-using-tail</guid>
            <pubDate>Tue, 16 Oct 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Wouldn't it be really great if you could highlight a keyword or phrase when using `tail`? Here's How to do it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Restart Apache on Mac OS X]]></title>
            <link>https://www.euperia.com/wrote/restart-apache-on-mac-os-x</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/restart-apache-on-mac-os-x</guid>
            <pubDate>Mon, 15 Oct 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[This is here for reference as I keep forgetting how to restart apache on Mac OS X.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Change the cursor with JQuery]]></title>
            <link>https://www.euperia.com/wrote/change-the-cursor-with-jquery</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/change-the-cursor-with-jquery</guid>
            <pubDate>Mon, 24 Sep 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Occasionally I use JQueryUI components to display dialogs and I like to set the cursor to the 'timer' when the event is triggered and back to 'auto' afterwards. Here's how to change the cursor with JQuery.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Detect iPad and iPhone with PHP]]></title>
            <link>https://www.euperia.com/wrote/detect-ipad-and-iphone-with-php</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/detect-ipad-and-iphone-with-php</guid>
            <pubDate>Wed, 25 Jul 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[If you ever have the need to detect iPad and iPhone with PHP, or any other mobile/tablet device, you can use the excellent php-mobile-detect library.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to find the Magento version]]></title>
            <link>https://www.euperia.com/wrote/how-to-find-the-magento-version</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-find-the-magento-version</guid>
            <pubDate>Wed, 11 Jul 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Often you will need to know which version of Magento you are running in order to install an extension or apply a security patch. Heres how to find the Magento version you are running.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Gzip javascript and css with NGinx]]></title>
            <link>https://www.euperia.com/wrote/gzip-javascript-css-nginx</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/gzip-javascript-css-nginx</guid>
            <pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Nginx by default will only compress text/html content types. Heres how to gzip javascript and css with NGinx.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Sending HTML Mail via SMTP with PHP Pear Mail]]></title>
            <link>https://www.euperia.com/wrote/sending-html-mail-via-smtp-with-php-pear-mail</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/sending-html-mail-via-smtp-with-php-pear-mail</guid>
            <pubDate>Wed, 30 May 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to send html email via remote SMTP using PHP and Pear Mail / Mime.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to add APC cache to Magento]]></title>
            <link>https://www.euperia.com/wrote/how-to-add-apc-cache-to-magento</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/how-to-add-apc-cache-to-magento</guid>
            <pubDate>Thu, 10 May 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. It can help speed up your Magento installations.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Speed testing your website with Siege: Part two]]></title>
            <link>https://www.euperia.com/wrote/speed-testing-your-website-with-siege-part-two</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/speed-testing-your-website-with-siege-part-two</guid>
            <pubDate>Thu, 29 Mar 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Part 2 of 2]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Speed testing your website performance with Siege: Part One]]></title>
            <link>https://www.euperia.com/wrote/speed-testing-your-website-with-siege-part-one</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/speed-testing-your-website-with-siege-part-one</guid>
            <pubDate>Wed, 28 Mar 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Your website performance is crucial to your business and you need tools to measure the response times and number of requests your website can handle. Siege is perfect for this. A tool to test and report on website performance.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[WordPress auto update ‘Unable to locate WordPress Content directory’ or ‘Could not copy file’ fix]]></title>
            <link>https://www.euperia.com/wrote/wordpress-auto-update-unable-to-locate-wordpress-content-directory-or-could-not-copy-file-fix</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/wordpress-auto-update-unable-to-locate-wordpress-content-directory-or-could-not-copy-file-fix</guid>
            <pubDate>Sat, 04 Feb 2012 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how I fixed 'Could not copy file &#8230;'  when updating WordPress via FTP.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Test SMTP with a dummy server in Python]]></title>
            <link>https://www.euperia.com/wrote/test-smtp-with-a-dummy-server-in-python</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/test-smtp-with-a-dummy-server-in-python</guid>
            <pubDate>Thu, 13 Oct 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to test SMTP with a dummy server in python]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Viewing the PHP APC  cache in Ubuntu 10.10]]></title>
            <link>https://www.euperia.com/wrote/viewing-the-php-apc-cache-in-ubuntu</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/viewing-the-php-apc-cache-in-ubuntu</guid>
            <pubDate>Tue, 11 Oct 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[APC is a great tool for caching in PHP and once installed it is very easy to use. However, what do you do about viewing the PHP APC cache in Ubuntu? Well, there is a fantastic PHP page provided by APC that allows you to inspect the cache via a web page.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Debugging your vimrc]]></title>
            <link>https://www.euperia.com/wrote/debugging-your-vimrc</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/debugging-your-vimrc</guid>
            <pubDate>Fri, 12 Aug 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[I made some changes to my ~/.vimrc file that didn't seem to work and so I needed to see what was happening when vim loaded my ~/.vimrc file.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Do PHP objects use getters and setters internally?]]></title>
            <link>https://www.euperia.com/wrote/do-php-objects-use-getters-and-setters-internally</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/do-php-objects-use-getters-and-setters-internally</guid>
            <pubDate>Tue, 26 Jul 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[I just came across something that made me wonder wether a PHP object uses the magic getter and setter methods inside the object itself.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[10 Skills A Web Developer Needs To Have]]></title>
            <link>https://www.euperia.com/wrote/10-skills-a-web-developer-needs-to-have</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/10-skills-a-web-developer-needs-to-have</guid>
            <pubDate>Tue, 14 Jun 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Knowing a programming language just isn't enough these days to be a full time Web Developer.  
Here are ten other skills a modern web developer needs to have.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[10 Skills A Web Developer Needs To Have]]></title>
            <link>https://www.euperia.com/wrote/10-things-a-programmer-needs-to-be</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/10-things-a-programmer-needs-to-be</guid>
            <pubDate>Tue, 14 Jun 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Knowing a programming language just isn't enough these days to be a full time Web Developer.  Here are ten other skills required to 'do the job'.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to: Disable php processing in wordpress upload folder.]]></title>
            <link>https://www.euperia.com/wrote/howto-disable-php-processing-in-wordpress-upload-folder</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/howto-disable-php-processing-in-wordpress-upload-folder</guid>
            <pubDate>Wed, 18 May 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[If you host a WordPress site and have enabled writeable permissions on any of the folders it is recommended that you disable php processingin those folders.  Here's how to do this.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Howto: Get the IP address of a domain in a one liner]]></title>
            <link>https://www.euperia.com/wrote/howto-get-the-ip-address-of-a-domain-in-a-one-liner</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/howto-get-the-ip-address-of-a-domain-in-a-one-liner</guid>
            <pubDate>Thu, 12 May 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to get the public IP address of a domain name with a simple one-line cli command.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Important cron gotcha: Cron not being updated.]]></title>
            <link>https://www.euperia.com/wrote/important-cron-gotcha-cron-not-being-updated</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/important-cron-gotcha-cron-not-being-updated</guid>
            <pubDate>Thu, 12 May 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[I was recently caught out by a crontab running even after I had edited the crontab and commented out the line.   Here's why it happened.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Subversion TortoiseSVN menu in Ubuntu Nautilus]]></title>
            <link>https://www.euperia.com/wrote/subversion-tortoisesvn-menu-in-ubuntu-nautilus</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/subversion-tortoisesvn-menu-in-ubuntu-nautilus</guid>
            <pubDate>Thu, 12 May 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Windows developers using Subversion generally use TortoiseSVN to administer their repositories and when moving to Ubuntu Linux they find using the CLI (Command Line, Terminal, black box - whatever your phrase) alien. However, there is a way  to have a menu in the file manager for performing Subversion administration, just like with TortoiseSVN. 

Here's how to  install it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Hack to play minesweeper on Amazon Kindle]]></title>
            <link>https://www.euperia.com/wrote/hack-to-play-minesweeper-on-amazon-kindle</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/hack-to-play-minesweeper-on-amazon-kindle</guid>
            <pubDate>Wed, 05 Jan 2011 00:00:00 +0000</pubDate>
            <description><![CDATA[Did you know that you can use your Amazon Kindle to play a minesweeper game?]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Amazon Kindle white screen of death issue (and how to fix it)]]></title>
            <link>https://www.euperia.com/wrote/amazon-kindle-white-screen-of-death-crash</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/amazon-kindle-white-screen-of-death-crash</guid>
            <pubDate>Fri, 31 Dec 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[<p><img src="https://www.euperia.com/img/asset/YXNzZXRzL3dyaXRpbmcvamFtZXMtdGFyYm90dG9uLWdtMThrcXU5dHhxLXVuc3BsYXNoLmpwZw/james-tarbotton-gm18kqu9txq-unsplash.jpg?w=1280&amp;h=720&amp;fit=crop" width="1280" height="720" alt="Amazon Kindle white screen of death issue (and how to fix it)"></p>
                                                <p>Whilst the Kindle is an excellent device, I have experienced a blank 'white screen of death'. Here's how to solve it.</p>]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Tutorial: Setting up Varnish with Apache]]></title>
            <link>https://www.euperia.com/wrote/setting-up-varnish-with-apache-tutorial</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/setting-up-varnish-with-apache-tutorial</guid>
            <pubDate>Fri, 24 Dec 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[Varnish is an HTTP accelerator designed for content-heavy dynamic web sites. Here's how to set up varnish with Apache on Ubuntu.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Portsmouth Tilt Shifted]]></title>
            <link>https://www.euperia.com/wrote/portsmouth-tilt-shifted</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/portsmouth-tilt-shifted</guid>
            <pubDate>Mon, 20 Sep 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's a picture of the dockyard at Portsmouth I took from the top of Spinnaker Tower.  I've experimented with tilt shifting and think the result is pretty good.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Constraining resizable textareas]]></title>
            <link>https://www.euperia.com/wrote/constraining-resizable-textareas</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/constraining-resizable-textareas</guid>
            <pubDate>Fri, 16 Jul 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[The new crop of web browsers such as Safari, Chrome(ium) and Firefox 4 allow the user to resize textareas by using a handle at the bottom right.   It is possible to restrict the size that the user can resize the textarea to using css min/max width/heights.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0 Fix]]></title>
            <link>https://www.euperia.com/wrote/php-warning-xdebug-must-be-loaded-as-a-zend-extension-in-unknown-on-line-0-fix</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/php-warning-xdebug-must-be-loaded-as-a-zend-extension-in-unknown-on-line-0-fix</guid>
            <pubDate>Fri, 02 Jul 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[When I upgraded my desktop to Ubuntu 10.04 (Lucid Lynx) I also upgraded my PHP version to 5.3 and got a PHP warning about Xdebug.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[IDE Tip: Mouse-wheel on Netbeans tabbed pane]]></title>
            <link>https://www.euperia.com/wrote/netbeans-tip-mouse-wheel-on-tabbed-pane</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/netbeans-tip-mouse-wheel-on-tabbed-pane</guid>
            <pubDate>Wed, 03 Mar 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[How to browse lots of files in Netbeans' tabbed pane.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Netbeans PHP Autocomplete stopped]]></title>
            <link>https://www.euperia.com/wrote/netbeans-php-autocomplete-stopped</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/netbeans-php-autocomplete-stopped</guid>
            <pubDate>Thu, 25 Feb 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[I had an issue with Netbeans 6.8 where the auto-complete for PHP functions stopped working.  Here's how I fixed it.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[CLI Autologin and autostart a program with Ubuntu 9.10 karmik]]></title>
            <link>https://www.euperia.com/wrote/cli-autologin-and-autostart-a-program-with-ubuntu-9-10-karmik</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/cli-autologin-and-autostart-a-program-with-ubuntu-9-10-karmik</guid>
            <pubDate>Fri, 12 Feb 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[My old laptop is used as a music server and so I haven't installed a desktop on it. I use MPD as my music server and ncmpd as the front-end.  However, I'm finding it a pain to enter my username, password, wait (its an old, slow lappy) and then enter ncmpd, so I looked for a way to do this automatically.  And guess what? It can be done!]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install Ubuntu from Grub over Network]]></title>
            <link>https://www.euperia.com/wrote/install-ubuntu-from-grub-over-network</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-ubuntu-from-grub-over-network</guid>
            <pubDate>Fri, 08 Jan 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[How do you install Ubuntu if you have no external drive and no USB boot option?  Luckily for me its possible to install over the network.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Mashups and Music]]></title>
            <link>https://www.euperia.com/wrote/mashups-and-music</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/mashups-and-music</guid>
            <pubDate>Wed, 06 Jan 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[On my old site I had a couple of tracks that I have mashed up in the past and one track created with fruityloops.  Since the blog has gone in these tracks have disappeared.  Time to put 'em back.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Performing VAT calculations in PHP]]></title>
            <link>https://www.euperia.com/wrote/correct-vat-calculations-in-php</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/correct-vat-calculations-in-php</guid>
            <pubDate>Mon, 04 Jan 2010 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to calculate VAT on a value using PHP.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Bulk rename files in CLI]]></title>
            <link>https://www.euperia.com/wrote/bulk-rename-files-in-cli</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/bulk-rename-files-in-cli</guid>
            <pubDate>Sat, 19 Dec 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[A quick snippet showing how to bulk rename files on a terminal.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[PHP number_format gotcha]]></title>
            <link>https://www.euperia.com/wrote/php-number_format-gotcha</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/php-number_format-gotcha</guid>
            <pubDate>Sat, 19 Dec 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[One of our client sites had an issue when a payment was attempted for over £1,000 and the problem was caused by PHP's `number_format()` function.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Unicode PHP functions and files]]></title>
            <link>https://www.euperia.com/wrote/unicode-php-functions-and-files</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/unicode-php-functions-and-files</guid>
            <pubDate>Wed, 04 Nov 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[One of the more useful features of the upcoming PHP6 is full unicode support throughout.  However, did you know that PHP supports unicode already and can be used for variable, method and function names?]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Set Fixed IP Address on Ubuntu]]></title>
            <link>https://www.euperia.com/wrote/set-fixed-ip-address-on-ubuntu</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/set-fixed-ip-address-on-ubuntu</guid>
            <pubDate>Thu, 13 Aug 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to set a fixed IP address in Ubunti.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Timesheet Prompt]]></title>
            <link>https://www.euperia.com/wrote/timesheeting-prompt</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/timesheeting-prompt</guid>
            <pubDate>Fri, 31 Jul 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[A simple script to prompt for a Timesheet entry on Ubuntu]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Share mouse and keyboard across computers]]></title>
            <link>https://www.euperia.com/wrote/share-mouse-and-keyboard-across-computers</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/share-mouse-and-keyboard-across-computers</guid>
            <pubDate>Thu, 30 Jul 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[To save me from having to switch between the Linux Desktop and my Vista laptop everytime I wanted to reload the Vista browser I use a unix utility called x2vnc. Here's how to install and use  x2vnc.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[MySQL Stored Procedure tutorial]]></title>
            <link>https://www.euperia.com/wrote/mysql-stored-procedure-tutorial</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/mysql-stored-procedure-tutorial</guid>
            <pubDate>Thu, 30 Jul 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[An example of how to create and use a stored procedure with MySQL.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[A day in the life of Spinnaker Tower, Portsmouth]]></title>
            <link>https://www.euperia.com/wrote/a-day-in-the-life-of-spinnaker-tower-portsmouth</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/a-day-in-the-life-of-spinnaker-tower-portsmouth</guid>
            <pubDate>Fri, 17 Jul 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's an animation covering 24 hours of a day in the live of Portsmouth Harbour and Spinnaker tower in 2009]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Install PDFLib with PHP]]></title>
            <link>https://www.euperia.com/wrote/install-pdflib-with-php</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/install-pdflib-with-php</guid>
            <pubDate>Thu, 09 Jul 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's how to install PDFlib with PHP using pecl.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Drawing an Arc in Imagick]]></title>
            <link>https://www.euperia.com/wrote/drawing-an-arc-in-imagick</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/drawing-an-arc-in-imagick</guid>
            <pubDate>Fri, 19 Jun 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[Here's an example of how to draw an arc using PHP and Imagemagick.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[How to use Zend_Cache to cache an object]]></title>
            <link>https://www.euperia.com/wrote/zend_cache-to-cache-an-object</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/zend_cache-to-cache-an-object</guid>
            <pubDate>Thu, 18 Jun 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[How to use the Zend Framework (v1) Zend_Cache  library to cache an object.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Installing and using PHP ImageMagick (Imagick) Module]]></title>
            <link>https://www.euperia.com/wrote/installing-and-using-php-imagemagick-imagick-module</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/installing-and-using-php-imagemagick-imagick-module</guid>
            <pubDate>Tue, 09 Jun 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[How to install and use PHP's Imagick Module.]]></description>
            <author>Andrew McCombe</author>
        </item>
        <item>
            <title><![CDATA[Upload files with ncftpput]]></title>
            <link>https://www.euperia.com/wrote/upload-files-with-ncftpput</link>
            <guid isPermaLink="true">https://www.euperia.com/wrote/upload-files-with-ncftpput</guid>
            <pubDate>Mon, 18 May 2009 00:00:00 +0000</pubDate>
            <description><![CDATA[ncftp is a great set of command line ftp utilities. Here's how to use ncftpput to upload a file]]></description>
            <author>Andrew McCombe</author>
        </item>
    </channel>
</rss>
