<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/vendor/feed/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
                        <id>http://www.squarecone.com/rss</id>
                                <link href="http://www.squarecone.com/rss" rel="self"></link>
                                <title><![CDATA[Squarecone]]></title>
                    
                                <subtitle></subtitle>
                                                    <updated>2026-03-09T11:02:50+00:00</updated>
                        <entry>
            <title><![CDATA[Git from src on Debian]]></title>
            <link rel="alternate" href="https://www.squarecone.com/git-from-src-on-debian" />
            <id>https://www.squarecone.com/33</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Most linux distros have git packages available, but many are not the latest version. Due to this, and the fact the ones on Debian are often quite far behind, I like to build git from src. This is how we can do it...]]>
            </summary>
                                    <updated>2025-08-08T23:50:54+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Developer AI assistants]]></title>
            <link rel="alternate" href="https://www.squarecone.com/developer-ai-assistants" />
            <id>https://www.squarecone.com/32</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[# Developer AI Assistants

The story of AI is not new on the internet, with AI being a prodominant discussion currently. I sit on the fence regarding it's usefulness in some areas, being more form than function, in other areas, it has real potential.

This brings me to development, IDEs and AI code assistants. Specifically, [GitHub Copilot](https://github.com/features/copilot) and [Codeium](https://codeium.com/).]]>
            </summary>
                                    <updated>2024-10-22T08:40:51+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Custom docker image in AWS ECR used in GitHub Actions]]></title>
            <link rel="alternate" href="https://www.squarecone.com/custom-docker-image-in-aws-ecr-used-in-github-actions" />
            <id>https://www.squarecone.com/31</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Running a test suite in your CI pipeline is critical but I was recently tasked with getting a test suite running without having the luxury of using database factories or seeders for a variety of reasons. Another approach which I decided to use, was to pre-seed a database with test data and create a custom docker image.]]>
            </summary>
                                    <updated>2024-02-05T16:18:03+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Moving from GitLab pipeline to GitHub Actions for CI/CD]]></title>
            <link rel="alternate" href="https://www.squarecone.com/moving-from-gitlab-pipeline-to-github-actions-for-ci-cd" />
            <id>https://www.squarecone.com/30</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I've been using my self-hosted GitLab instance for my git repos and pipelines for 5 or so years now, but things have changed and I've decided I no longer want to run my self-hosted instance any more. It's purely for hobby/self projects and only accessed by myself, however, one bonus of this is that I also self-host a dockerised GitLab runner that performed all of my CI/CD duties, including the deployment stage, which is the important part.]]>
            </summary>
                                    <updated>2023-10-25T23:46:25+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Integrating HaveIBeenPwned into Laravel Fortify]]></title>
            <link rel="alternate" href="https://www.squarecone.com/integrating-haveibeenpwned-into-laravel-fortify" />
            <id>https://www.squarecone.com/29</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[The **HaveIBeenPwned** service provided by Troy Hunt contains a whole trove of breach information. It enables you to look up single email address, whole domains and whether a password has been seen in a data breach, for example. It's the latter one that we're interested in for this feature. Let's implement this using the `icawebdesign/hibp-php` framework-agostic composer package.]]>
            </summary>
                                    <updated>2023-10-25T23:41:57+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PhpStorm cannot find autoload.php in Docker container under WSL2]]></title>
            <link rel="alternate" href="https://www.squarecone.com/phpstorm-cannot-find-vendor-autoload-php-on-docker-wsl2-when-running-phpunit" />
            <id>https://www.squarecone.com/28</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Docker for Windows has recently improved by utilising the WSL2 backend rather than  Hyper-V. The performance gains with this are big, and seeing as I use Windows as my main dev environment, wanted to utilise this myself so made the swap.]]>
            </summary>
                                    <updated>2023-10-25T23:43:19+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PHP, Docker, Xdebug and the missing local variables]]></title>
            <link rel="alternate" href="https://www.squarecone.com/php-docker-xdebug-and-the-missing-local-variables" />
            <id>https://www.squarecone.com/25</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I've made a switch in the last 12 months to use Docker as my local development environment for my PHP applications. One of the greatest modules for PHP IMHO, is **Xdebug**. Many moons ago, I used to frantically hack in `var_dump(...); exit;` calls to see what a particular variable, object, array, etc contained.]]>
            </summary>
                                    <updated>2023-10-25T23:44:31+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Nginx behind Apache reverse proxy with access restrictions]]></title>
            <link rel="alternate" href="https://www.squarecone.com/nginx-behind-apache-reverse-proxy-with-access-restrictions" />
            <id>https://www.squarecone.com/24</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I have a couple of sites that are sitting behind Basic HTTP Authentication restrictions. They're simple applications that don't need full-blown built-in access control and are served over HTTPS, so Basic HTTP Auth serves just fine as a restriction control.]]>
            </summary>
                                    <updated>2023-10-25T23:45:18+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[GitLab CE, Docker, PHP7.1, Laravel 5.5, SQLite CI pipeline]]></title>
            <link rel="alternate" href="https://www.squarecone.com/gitlab-ce-docker-php7-1-laravel-5-5-ci-pipeline" />
            <id>https://www.squarecone.com/23</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I've been coding in PHP for more than 15 years using a variety of environments; Windows, FreeBSD, Linux, MacOS, VMWare+Vagrant+Linux, but more recently, I've been wanting to make the move to Docker.]]>
            </summary>
                                    <updated>2026-03-09T11:02:50+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[WoSign / StartCom SSL certs soon to be worthless in Google Chrome]]></title>
            <link rel="alternate" href="https://www.squarecone.com/wosign-startcom-ssl-certs-soon-to-be-worthless" />
            <id>https://www.squarecone.com/22</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA["Beginning with Chrome 61, the whitelist will be removed, resulting in full distrust of the existing WoSign and StartCom root certificates and all certificates they have issued," O'Brien said. "Based on the Chromium Development Calendar, this change should be visible in the Chrome Dev channel in the coming weeks, the Chrome Beta channel around late July 2017, and will be released to Stable around mid September 2017."

O'Brien advised sites still using certificates issued by WoSign / StartCom to "consider replacing these certificates as a matter of urgency to minimize disruption for Chrome users.]]>
            </summary>
                                    <updated>2023-10-25T23:53:02+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Downgrade Yubioath Desktop from 4.x to 3.1.0 for Linux]]></title>
            <link rel="alternate" href="https://www.squarecone.com/downgrade-yubioath-desktop-from-4-x-to-3-1-0-for-linux" />
            <id>https://www.squarecone.com/21</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I love my [Yubikey Neo](https://www.yubico.com/products/yubikey-hardware/yubikey-neo/) and use it many, many times daily on all 3 platforms (Linux, Mac and Windows). My primary OSes are Linux for my personal Lenovo laptop and my work-issued Macbook Pro. I recently upgraded Yubioath Desktop on my Linux box running [Linux Mint](https://www.linuxmint.com/) to `v4.0.1`. This upgrade touted an improved user-interface amongst other fixes and improvements.. woohoo I thought to myself as although the previous version (`3.1.0`) was a fair improvement over 3.0.x, it wasn't without its issues.]]>
            </summary>
                                    <updated>2023-10-25T23:55:50+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[UniFi Video G3 Camera CCTV home setup]]></title>
            <link rel="alternate" href="https://www.squarecone.com/unifi-video-g3-camera-cctv-home-setup" />
            <id>https://www.squarecone.com/20</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Following on from a [recent post](/ubiquiti-unifi-in-the-home) on my new [Ubiquiti UniFi networking setup](/ubiquiti-unifi-in-the-home), I decided to write a separate post about my [UniFi G3 CCTV](https://www.ubnt.com/unifi-video/unifi-video-camera-g3/) home setup too.

I originally had an Annke system. This was “OK” for a while, but the cloud viewing component for my “iThings” used XmEye. This was apparently open to issues with the Mirai IoT botnet malware. I immediately disconnected the ethernet cable from the back of the control box and made sure that no wireless connection could be made from it to the outside world.

I had got quite accustomed to having the knowledge that CCTV was protecting my home to some degree and decided to put all my eggs in one basket for want of a better term and went with the G3 units from [Ubiquiti](https://www.ubnt.com/). The immediate specs of interest for these are:

- 1080p HD resolution
- 30fps
- Built-in microphone
- PoE installation
- IR night vision

The Annke system didn't have audio, so this was a bonus for me, plus they can record in full 1080p HD definition, better than the 720p of my previous setup. One other big bonus over the previous kit, was that they were powered via PoE so I could plug them directly into my [UniFi 8 port 150w switch](https://www.ubnt.com/unifi-switching/unifi-switch-8-150w/) without requiring any extra cables.]]>
            </summary>
                                    <updated>2020-05-28T14:25:29+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Blogging with Ghost]]></title>
            <link rel="alternate" href="https://www.squarecone.com/blogging-with-ghost" />
            <id>https://www.squarecone.com/19</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[After having used Wordpress for some time for Squarecone, I decided to look at alternatives as a basic blogging platform. Wordpress does what it says on the tin and provides blogging features, but it's become far more of a generalised CMS these days, that it's more complex and time consuming to work with, and to be honest, I also fancied playing with new software... welcome aboard [Ghost](https://ghost.org/).

I'd not looked into this before, neither had I ever worked with the [Handlebars](http://handlebarsjs.com/) template engine. It didn't take long to get acquainted with both. I've been wanting to build a custom theme for Squarecone for ages, but have never found the spare time due to heavy work / family commitments, but part of the attraction to Ghost for me, was its simplicity and the ability to write the posts as Markdown rather than using the WYSIWYG editor (which I normally disabled and wrote as plain HTML) in [Wordpress](https://wordpress.org).]]>
            </summary>
                                    <updated>2020-01-24T16:07:37+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Ubiquiti UniFi in the home]]></title>
            <link rel="alternate" href="https://www.squarecone.com/ubiquiti-unifi-in-the-home" />
            <id>https://www.squarecone.com/18</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Although I hadn’t heard of them before, I’d never thought to use a setup like Ubiquiti UniFi in the home. Initially I thought it might be overkill, despite many things connected to my home network. After poor wifi performance in some areas of the house, and some good reviews from people on Twitter, I decided to have a look.

I also wanted to replace the CCTV system at home as the system I had originally, ultimately had potential issues with the Mirai IoT malware.

My original core network simply contained a ***DrayTek Vigor 2850n*** router and a few Netgear gigabit switches.]]>
            </summary>
                                    <updated>2020-05-28T14:27:29+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Linux mouse speed adjustment]]></title>
            <link rel="alternate" href="https://www.squarecone.com/linux-mouse-speed-adjustment" />
            <id>https://www.squarecone.com/17</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[So I’ve recently switched semi-permanently over to using Linux Mint as my OS on my Lenovo W530. Using \*nix as a desktop OS isn’t new for me, back i the day I used to run [FreeBSD4.4](https://www.freebsd.org/) with [Window Maker](http://windowmaker.org/) on an IBM PII 350Mhz desktop box.

However, things have moved on nicely and when I have my laptop sitting in my dock, I have a mouse plugged in, namely a [Razer Mamba](http://www.razerzone.com/gaming-mice/razer-mamba). This is a great mouse, and one of only 2 mice I actually enjoy using (my other trusty steeds are a couple of [Logitech LX8s](https://support.logitech.com/en_us/product/lx8-cordless-laser-mouse)). The issue I have is that under [Linux Mint](https://linuxmint.com/) both the trackpad and mouse are waaaay too fast for my liking and the type of use I need them for, despite being adjusted to the lowest setting in the Mouse & Touchpad settings, so I use xinput to set them directly. The problem is, is that the mouse is listed twice; the first instance is for the mouse, and the second instance as a “keyboard” (I guess this is due to the programmable nature of the device, which means I need to set the properties by using the device ID instead of the name. Not too much of an issue if you do it manually, but I want to automate this at login as setting it manually each time will get very boring, very quickly, so I decided to use [PHP](https://php.net/) for this purpose as I already have it installed on the laptop.

I use the following script to set both the trackpad and mouse speeds according to the values I like. YMMV and the values can easily be adjusted from the constants at the top of the script.]]>
            </summary>
                                    <updated>2020-01-24T17:11:56+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[TalkTalk wi-fi router passwords stolen]]></title>
            <link rel="alternate" href="https://www.squarecone.com/talktalk-wi-fi-router-passwords-stolen" />
            <id>https://www.squarecone.com/16</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[## TalkTalk customers’ wi-fi passwords have been stolen following a malware attack that blocked their internet access last week, an expert has warned.

The researcher said other details had also been taken that would let attackers pinpoint where the equipment was being used, making more targeted hacks possible.

Pen Test Partners’ Ken Munro wants thousands of routers to be replaced.

But a TalkTalk spokeswoman said it had not see evidence to confirm the thefts.

“As is widely known, the Mirai worm is affecting many ISPs [internet service providers] around the world and it has affected a small number of TalkTalk customers,” she said.

“We continue to take steps to review any potential impacts and have deployed a variety of solutions to ensure customers’ routers remain safe.

“We have also employed additional network-level controls to further protect our customers.”

[Read the full article](http://www.bbc.co.uk/news/technology-38208958) at the BBC.]]>
            </summary>
                                    <updated>2020-01-24T15:33:13+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Git commit signing issue]]></title>
            <link rel="alternate" href="https://www.squarecone.com/git-commits-with-gpg-signing-issue" />
            <id>https://www.squarecone.com/15</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I, like many others, sign my Git commits with GPG. This had been working fine for a while, but when updating to Git 2.10.0, I was always presented with an error when trying to sign a commit

```bash
error: gpg failed to sign the data fatal: failed to write commit object
```

On my windows box, I appear to have both GPG1 and GPG2 installed. Git didn’t like trying to sign with GPG1, so this needed to be forced to use GPG2. Thankfully, this solution is simple:
```bash
git config --global gpg.program gpg2
```

Then sign your commit as usual and voila! No more errors.]]>
            </summary>
                                    <updated>2020-01-24T15:32:01+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Send mail via SMTP with self-signed certificate with Laravel 5.2]]></title>
            <link rel="alternate" href="https://www.squarecone.com/email-via-smtp-self-signed-certificate-laravel-5-2" />
            <id>https://www.squarecone.com/14</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I’m currently writing an application using [Laravel 5.2](https://laravel.com/) but needed to send mail via SMTP with self-signed certificate. I didn’t want to edit the SwiftMailer library directly for obvious reasons.

The version of Laravel currently being used for this application is 5.2.6, which comes with [SwiftMailer](http://swiftmailer.org/) `5.4.1`. We need version `5.4.2` or higher so we can use the `setStreamOptions() method of `Swift_SmtpTransport`, so I updated this via [Composer](https://getcomposer.org/).]]>
            </summary>
                                    <updated>2022-10-12T01:04:09+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[ownCloud and PHP7 update on Debian Jessie]]></title>
            <link rel="alternate" href="https://www.squarecone.com/owncloud-and-php7-update-on-debian-jessie" />
            <id>https://www.squarecone.com/13</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[## ownCloud and PHP7 update coolness

I wanted to upgrade my [Debian](htps://debian.org/) box so I could run [ownCloud](https://owncloud.org/) and [PHP7](https://secure.php.net/archive/2015.php#id2015-12-03-1) to check out the speed increases, and well, because it’s cool.

## Determine previous PHP installed modules

I generated a list of previously installed PHP5.6 modules to make easy reference to what to install under PHP7:
```bash
# dpkg -l | grep -i php
```

## Remove PHP5.x

You should remove your PHP5.x install before upgrading to PHP7. From the list generated from the `dpkg` output, remove the modules, eg:
```bash
# apt-get purge php php5-dev php5-curl
```

## Install PHP7 from dotdeb repo

If you’re not already using the dotdeb repo, add this to your `/etc/apt/sources.list` file:
```bash
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
```]]>
            </summary>
                                    <updated>2020-05-28T14:30:23+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Installing Homestead on Windows]]></title>
            <link rel="alternate" href="https://www.squarecone.com/installing-homestead-on-windows" />
            <id>https://www.squarecone.com/12</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[It seems that a fair few people have queried and had issues on getting Homestead installed on Windows nicely. This guide for installing Homestead on Windows will hopefully help things go smoothly.]]>
            </summary>
                                    <updated>2020-01-24T14:59:34+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[ownCloud 8.1 update - SMB shares broken]]></title>
            <link rel="alternate" href="https://www.squarecone.com/owncloud-8-1-update-smb-shares-broken" />
            <id>https://www.squarecone.com/11</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I’ve been an avid user of ownCloud for some time now currently running 3 instances, and it’s a great platform, especially as I’m somewhat draconian about privacy and allowing 3rd-parties access to my data.

On one of my home instances, I also have my desktop box running various SMB shares so that I can access the likes of video and music via my Raspberry Pi media streaming systems, and also my ebooks and applications repository for easy network installs or reading in various rooms… ownCloud has performed great for accessing these and I’ve been able to share those SMB shares via the ***external storage*** feature so that I can access things on the go too from the likes of my iPhone.

So, like many others, when ownCloud 8.1 was released, I upgraded. Whilst the main upgrade itself went smoothly (2 of my instances are installed via Debian packages, the other via ownCloud / manually on a CentOS box), I found that I was unable to login to 2 of my instances from the official iOS ownCloud app with a `It is not possible to connect to the server at this time` error message.]]>
            </summary>
                                    <updated>2020-01-24T14:53:42+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Reflection in PHP]]></title>
            <link rel="alternate" href="https://www.squarecone.com/reflection-in-php" />
            <id>https://www.squarecone.com/10</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Sometimes, it’s useful to set properties within a PHP class, but also return those same properties if perhaps, they’re public so can be accessed directly without exposing the rest of the class. The most accurate way of doing this IMO, is by using ***Reflection*** via PHP’s [ReflectionClass](http://php.net/manual/en/class.reflectionclass.php).]]>
            </summary>
                                    <updated>2020-01-24T14:49:04+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[ICA Web Design launches its new website!]]></title>
            <link rel="alternate" href="https://www.squarecone.com/ica-web-design-launches-its-new-website" />
            <id>https://www.squarecone.com/9</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[After what seems like forever, I’ve finally launched the [new version](https://icawebdesign.co.uk/) of [ICA Web Design](https://icawebdesign.co.uk/), incorporating a new fresh look and responsive design suitable for all screen sizes and forcing secure HTTPS access.]]>
            </summary>
                                    <updated>2023-05-09T00:07:31+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Wordpress plugin 'Yoast SEO' vulnerable to blind SQL attacks]]></title>
            <link rel="alternate" href="https://www.squarecone.com/wordpress-plugin-yoast-seo-vulnerable-to-blind-sql-attacks" />
            <id>https://www.squarecone.com/8</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[The extremely popular [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/) for [WordPress](https://wordpress.org/) has had a Blind SQL vulnerability discovered.

More information can be found at [Hacker News](http://thehackernews.com/2015/03/wordpress-seo-by-yoast-plugin.html).]]>
            </summary>
                                    <updated>2020-01-24T14:44:33+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[JIRA - ictime plugin worklog]]></title>
            <link rel="alternate" href="https://www.squarecone.com/jira-ictime-plugin-worklog" />
            <id>https://www.squarecone.com/7</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[[JIRA](https://www.atlassian.com/software/jira) is my preference in issue trackers, it’s well designed, flexible, well priced and integrates nicely into my other [Atlassian](https://www.atlassian.com/) products such as [Confluence](https://www.atlassian.com/en/software/confluence) and [Stash](https://www.atlassian.com/software/stash) and also 3rd party products, for example [Jenkins Continuous Integration](http://jenkins-ci.org/) server.

Another bonus is the external plugins that can be installed either for free or for a varying sum normally dependent on number of users. One of the plugins I had been using was [ictime](https://marketplace.atlassian.com/plugins/de.iconcept.ictime.jira-ictime) as it enabled me to see a bigger picture of what hours I’d spent working on a project.]]>
            </summary>
                                    <updated>2020-01-24T14:43:17+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Git and Mercurial vulnerability]]></title>
            <link rel="alternate" href="https://www.squarecone.com/git-mercurial-vulnerability" />
            <id>https://www.squarecone.com/6</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[A [vulnerability](http://git-blame.blogspot.com.au/2014/12/git-1856-195-205-214-and-221-and.html) has been discovered in the [Git](http://www.git-scm.com/) and [Mercurial](http://mercurial.selenic.com/) clients for the Windows and Mac operating systems that could allow critical files to be overwritten, including executables.

It’s recommended that you update your [Git](http://www.git-scm.com/) client with one of the [maintenance releases](http://www.git-scm.com/download/) (`1.8.5.6`, `1.9.5`, `2.1.4` and `2.2.1`) and/or your Mercurial client with the [latest release](http://mercurial.selenic.com/wiki/Download).]]>
            </summary>
                                    <updated>2020-01-24T14:38:35+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[vsftpd - 530: Login incorrect]]></title>
            <link rel="alternate" href="https://www.squarecone.com/vsftpd-530-login-incorrect" />
            <id>https://www.squarecone.com/5</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I needed to configure an FTP server on my [Debian](https://debian.org/) backup box due to some remote windows backup configurations. I initially edited the config files by hand with [Vim](https://www.vim.org/), but installed a [Webmin](http://www.webmin.com/) module to test too. I enabled the `virtual users` option, but then decided that this wasn’t actually required as I only needed a single login for the purpose. The problem now, **no user** was able to login, virtual or otherwise, all I kept getting was the dreaded `530 Login incorrect` message.]]>
            </summary>
                                    <updated>2020-01-24T14:35:39+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[PEAR shaped!]]></title>
            <link rel="alternate" href="https://www.squarecone.com/pear-shaped" />
            <id>https://www.squarecone.com/4</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[Pecl extensions, some great, some OK… I was looking to install `Pecl_Http` on my CentOS box, except this kept throwing errors.]]>
            </summary>
                                    <updated>2020-01-25T00:26:31+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Undoing Photoshop]]></title>
            <link rel="alternate" href="https://www.squarecone.com/undoing-photoshop" />
            <id>https://www.squarecone.com/3</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I’ve used Photoshop to some degree or other for many years now, since version 5 and the one thing that always bugged me, was hitting `Ctrl+Z` only undoing the last operation and would toggle that undo as an undo / redo function.

I was working on a sketch earlier and for some reason, while `Ctrl+Z`ing, I hit also `Alt`; what happened? It started to undo not just the last action, but the one before last too, and the one before that and so on!.. so whilst this might be common knowledge for professional Photoshoppers, for myself (and possibly others), this was a most pleasant surprise and makes working with a graphics tablet especially, a lot simpler!]]>
            </summary>
                                    <updated>2020-01-24T11:52:24+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[HTTP Basic Authentication unless accessing from specified IP address]]></title>
            <link rel="alternate" href="https://www.squarecone.com/http-basic-authentication-unless-accessing-from-specified-ip-address" />
            <id>https://www.squarecone.com/2</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[I have a portal site providing quick links to public, private and development projects. I wanted to access this without hindrance from my internal network and one other specified IP address, but also wanted to be able to access this site from anywhere else on the internet, but to keep the access private. A .htaccess file and Basic HTTP Authentication can be combined to specify an IP address to allow access straight through, and to require login credentials for all other access.]]>
            </summary>
                                    <updated>2020-01-23T16:16:49+00:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Custom SPL Iterators]]></title>
            <link rel="alternate" href="https://www.squarecone.com/custom-spl-iterators" />
            <id>https://www.squarecone.com/1</id>
            <author>
                <name><![CDATA[Ian]]></name>
                <email><![CDATA[ian.h@digiserv.net]]></email>

            </author>
            <summary type="html">
                <![CDATA[While working on a mobile website for ***Safelite® AutoGlass***, I needed to filter out some objects held within an array. This could have simply been hacked with a basic `foreach()` loop and some `if() / else()` statements, but this wouldn’t have resulted in the most reusable code, so I decided to look at the [SPL](https://www.php.net/manual/en/book.spl.php) and its many Iterators.

I opted for the [RegexIterator](https://www.php.net/manual/en/class.regexiterator.php) and [FilterIterator](https://www.php.net/manual/en/class.filteriterator.php) as bases to extend. This allowed me to easily filter objects based on one or more of their properties.]]>
            </summary>
                                    <updated>2020-01-23T12:36:01+00:00</updated>
        </entry>
    </feed>
