diff --git a/source/_redirects b/source/_redirects deleted file mode 100644 index c4779fee..00000000 --- a/source/_redirects +++ /dev/null @@ -1,601 +0,0 @@ -10-useful-drupal-6-modules-i-use-every-project /blog/10-useful-drupal-6-modules -2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery /blog/style-drupal-6s-taxonomy-lists-php-css-jquery -2010/04/28/using-imagecache-and-imagecrop-for-my-portfolio /blog/using-imagecache-imagecrop-my-portfolio -2010/05/29/importing-images-using-the-imagefieldimport-module /blog/quickly-import-multiples-images-using-imagefieldimport-module -2010/06/23/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue /blog/create-block-social-media-icons-using-cck-views-nodequeue -2010/07/05/thanks /blog/thanks -2010/08/17/create-a-better-photo-gallery-in-drupal-part-2 /blog/create-better-photo-gallery-drupal-part-2 -2014/05/21/git-format-patch /blog/git-format-patch-your-friend -2PxmyqP /articles/examples-of-laravel-collections-in-drupal -39CoG /articles/drupalcamp-london-testing-workshop -3eGQr https://github.com/howToCodeWell/howToCodeWellFM/blob/c927e0b3589f1d7375002f7fd70f0bfc9fc90449/composer.json#L17 -6UhLN https://github.com/opdavies/sculpin-twig-markdown-bundle/pull/1 -6i3YZ https://www.youtube.com/watch?v=vUK5sEbd-dk -9rv0Z https://www.drupal.org/project/override_node_options/issues/3109852 -BhMZi https://git.drupalcode.org/search?utf8=%E2%9C%93&snippets=&scope=&repository_ref=8.x-1.x&search=baz&project_id=23203 -NBi5h https://git.drupalcode.org/search?utf8=%E2%9C%93&search=bar&group_id=&project_id=23203&search_code=true&repository_ref=8.x-1.x&nav_source=navbar -P5KQ5 https://www.npmjs.com/package/tailwindcss-skip-link -S8ZDA /articles/rebuilding-bartik-with-vuejs-tailwind-css-part-2 -Wh48P https://github.com/opdavies/oliverdavies.uk/blob/master/source/_partials/talk/video.html.twig -XbzS2 https://github.com/opdavies/gmail-filter-builder -YK1VH /articles/psr4-autoloading-test-cases-drupal-7 -YilTZ https://drupalcamp.london/tickets/training -about / -about/speaker-information /speaker-information -acquia-certifications https://certification.acquia.com/registry?fname=Oliver&lname=Davies&city=&state=&country=United+Kingdom&org=&exam=All -acquia-certified https://certification.acquia.com/?fname=Oliver&lname=Davies -ansible https://galaxy.ansible.com/opdavies -ansible-molecule /articles/test-driven-ansible-role-development-molecule -ansistrano-code https://github.com/opdavies/dransible -ansistrano-demo https://www.youtube.com/watch?v=PLS4ET7FAcU -ansistrano-slides /talks/deploying-php-ansible-ansistrano -articles/10-useful-drupal-6-modules /blog/10-useful-drupal-6-modules -articles/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery /blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery -articles/2010/04/28/using-imagecache-and-imagecrop-my-portfolio /blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio -articles/2010/05/06/conditional-email-addresses-webform /blog/2010/05/06/conditional-email-addresses-webform -articles/2010/05/10/quickly-create-zen-subthemes-using-zenophile /blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile -articles/2010/05/25/create-slideshow-multiple-images-using-fancy-slide /blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide -articles/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module /blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module -articles/2010/06/02/improve-jpg-quality-imagecache-and-imageapi /blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi -articles/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue /blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue -articles/2010/06/25/10-useful-drupal-6-modules /blog/2010/06/25/10-useful-drupal-6-modules -articles/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views /blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views -articles/2010/07/01/change-content-type-multiple-nodes-using-sql /blog/2010/07/01/change-content-type-multiple-nodes-using-sql -articles/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx /blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx -articles/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql /blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql -articles/2010/07/12/review-teleport-module /blog/2010/07/12/review-teleport-module -articles/2010/07/create-virtual-hosts-mac-os-x-using-virtualhostx /blog/create-virtual-hosts-mac-os-x-using-virtualhostx -articles/2010/08/10/review-adminhover-module /blog/2010/08/10/review-adminhover-module -articles/2010/08/11/create-better-photo-gallery-drupal-part-1 /blog/2010/08/11/create-better-photo-gallery-drupal-part-1 -articles/2010/08/17/create-better-photo-gallery-drupal-part-2 /blog/2010/08/17/create-better-photo-gallery-drupal-part-2 -articles/2010/08/20/review-image-caption-module /blog/2010/08/20/review-image-caption-module -articles/2010/09/26/south-wales-drupal-user-group /blog/2010/09/26/south-wales-drupal-user-group -articles/2010/10/10/create-and-apply-patches /blog/2010/10/10/create-and-apply-patches -articles/2010/10/13/create-better-photo-gallery-drupal-part-3 /blog/2010/10/13/create-better-photo-gallery-drupal-part-3 -articles/2010/10/22/create-better-photo-gallery-drupal-part-21 /blog/2010/10/22/create-better-photo-gallery-drupal-part-21 -articles/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate /blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate -articles/2011/02/14/easily-embed-typekit-fonts-your-drupal-website /blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website -articles/2011/03/15/display-number-facebook-fans-php /blog/2011/03/15/display-number-facebook-fans-php -articles/2011/03/31/proctor-stevenson /blog/2011/03/31/proctor-stevenson -articles/2011/05/20/proctors-hosting-next-drupal-meetup /blog/2011/05/20/proctors-hosting-next-drupal-meetup -articles/2011/05/23/imagefield-import-archive /blog/2011/05/23/imagefield-import-archive -articles/2011/08/28/create-multigroups-drupal-7-using-field-collections /blog/2011/08/28/create-multigroups-drupal-7-using-field-collections -articles/2011/10/19/install-and-configure-subversion-svn-server-ubuntu /blog/2011/10/19/install-and-configure-subversion-svn-server-ubuntu -articles/2012/01/04/site-upgraded-drupal-7 /blog/2012/01/04/site-upgraded-drupal-7 -articles/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection /blog/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection -articles/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush /blog/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush -articles/2012/04/17/installing-nagios-centos /blog/2012/04/17/installing-nagios-centos -articles/2012/04/19/adding-custom-theme-templates-drupal-7 /blog/2012/04/19/adding-custom-theme-templates-drupal-7 -articles/2012/05/23/add-date-popup-calendar-custom-form /blog/2012/05/23/add-date-popup-calendar-custom-form -articles/2012/05/23/checkout-specific-revision-svn-command-line /blog/2012/05/23/checkout-specific-revision-svn-command-line -articles/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess /blog/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess -articles/2012/05/23/prevent-apache-displaying-text-files-within-web-browser /blog/2012/05/23/prevent-apache-displaying-text-files-within-web-browser -articles/2012/05/23/writing-info-file-drupal-7-theme /blog/2012/05/23/writing-info-file-drupal-7-theme -articles/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files /blog/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files -articles/2012/07/12/my-new-drupal-modules /blog/2012/07/12/my-new-drupal-modules -articles/2012/07/14/install-nomensa-media-player-drupal /blog/2012/07/14/install-nomensa-media-player-drupal -articles/2012/07/27/writing-article-linux-journal /blog/2012/07/27/writing-article-linux-journal -articles/2012/08/18/display-custom-menu-drupal-7-theme-template-file /blog/2012/08/18/display-custom-menu-drupal-7-theme-template-file -articles/2012/09/06/reflections-speaking-unifieddiff /blog/2012/09/06/reflections-speaking-unifieddiff -articles/2012/10/25/my-sublime-text-2-settings /blog/2012/10/25/my-sublime-text-2-settings -articles/2012/11/15/accessible-bristol-site-launched /blog/2012/11/15/accessible-bristol-site-launched -articles/2012/11/17/open-sublime-text-2-mac-os-x-command-line /blog/2012/11/17/open-sublime-text-2-mac-os-x-command-line -articles/2012/12/06/use-sass-and-compass-drupal-7-using-sassy /blog/2012/12/06/use-sass-and-compass-drupal-7-using-sassy -articles/2013/01/09/checking-if-user-logged-drupal-right-way /blog/2013/01/09/checking-if-user-logged-drupal-right-way -articles/2013/02/16/creating-and-using-custom-tokens-drupal-7 /blog/2013/02/16/creating-and-using-custom-tokens-drupal-7 -articles/2013/03/02/quickest-way-install-sublime-text-2-ubuntu /blog/2013/03/02/quickest-way-install-sublime-text-2-ubuntu -articles/2013/04/20/leaving-nomensa-joining-precedent /blog/2013/04/20/leaving-nomensa-joining-precedent -articles/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt /blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt -articles/2013/06/13/some-useful-links-using-simpletest-drupal /blog/2013/06/13/some-useful-links-using-simpletest-drupal -articles/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled /blog/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled -articles/2013/07/26/going-drupalcon /blog/2013/07/26/going-drupalcon -articles/2013/09/06/create-a-zen-sub-theme-using-drush /blog/2013/09/06/create-a-zen-sub-theme-using-drush -articles/2013/11/19/dont-bootstrap-drupal-use-drush /blog/2013/11/19/dont-bootstrap-drupal-use-drush -articles/2013/11/27/useful-vagrant-commands /blog/2013/11/27/useful-vagrant-commands -articles/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget /blog/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget -articles/2013/12/31/download-different-versions-drupal-drush /blog/2013/12/31/download-different-versions-drupal-drush -articles/2013/12/quickly-apply-patches-using-git-and-curl-or-wget /blog/quickly-apply-patches-using-git-curl-or-wget -articles/2014/01/15/some-useful-git-aliases /blog/2014/01/15/some-useful-git-aliases -articles/2014/02/09/drupalcamp-london-2014 /blog/2014/02/09/drupalcamp-london-2014 -articles/2014/03/03/what-git-flow /blog/2014/03/03/what-git-flow -articles/2014/05/03/drupal-association /blog/2014/05/03/drupal-association -articles/2014/05/06/thanks /blog/2014/05/06/thanks -articles/2014/05/21/git-format-patch /blog/2014/05/21/git-format-patch -articles/2014/07/02/drush-make-drupalbristol /blog/2014/07/02/drush-make-drupalbristol -articles/2014/10/06/fix-vagrant-loading-wrong-virtual-machine /blog/2014/10/06/fix-vagrant-loading-wrong-virtual-machine -articles/2014/10/21/updating-features-and-adding-components-using-drush /blog/2014/10/21/updating-features-and-adding-components-using-drush -articles/2014/11/18/include-css-fonts-using-sass-each-loop /blog/2014/11/18/include-css-fonts-using-sass-each-loop -articles/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module /blog/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module -articles/2014/11/27/pantheon-settings-files /blog/2014/11/27/pantheon-settings-files -articles/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides /blog/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides -articles/2015/04/03/how-to-define-a-minimum-drupal-core-version /blog/2015/04/03/how-to-define-a-minimum-drupal-core-version -articles/2015/06/18/updating-forked-repositories-on-github /blog/2015/06/18/updating-forked-repositories-on-github -articles/2015/07/19/sculpin-twig-resources /blog/2015/07/19/sculpin-twig-resources -articles/2015/07/21/automating-sculpin-jenkins /blog/2015/07/21/automating-sculpin-jenkins -articles/2015/12/22/programmatically-load-an-entityform-in-drupal-7 /blog/2015/12/22/programmatically-load-an-entityform-in-drupal-7 -articles/2016/02/15/announcing-the-drupal-vm-generator /blog/2016/02/15/announcing-the-drupal-vm-generator -articles/2016/05/03/simplifying-drupal-migrations-with-xautoload /blog/2016/05/03/simplifying-drupal-migrations-with-xautoload -articles/2016/07/15/building-gmail-filters-with-php /blog/2016/07/15/building-gmail-filters-with-php -articles/2016/12/30/drupal-vm-generator-291-released /blog/2016/12/30/drupal-vm-generator-291-released -articles/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts /blog/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts -articles/2017/01/31/nginx-redirects-with-query-string-arguments /blog/2017/01/31/nginx-redirects-with-query-string-arguments -articles/2017/05/05/fixing-drupal-simpletest-docker /blog/2017/05/05/fixing-drupal-simpletest-docker -articles/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers /blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers -articles/2017/05/20/turning-drupal-module-into-feature /blog/turning-your-custom-drupal-module-feature -articles/2017/06/09/introducing-the-drupal-meetups-twitterbot /blog/2017/06/09/introducing-the-drupal-meetups-twitterbot -articles/2017/11/07/tdd-test-driven-drupal /blog/2017/11/07/tdd-test-driven-drupal -articles/2017/11/07/writing-drupal-module-test-driven-development-tdd /blog/2017/11/07/writing-drupal-module-test-driven-development-tdd -articles/2018/01/30/drupalcamp-bristol-2018 /blog/2018/01/30/drupalcamp-bristol-2018 -articles/2018/02/05/using-tailwind-css-in-your-drupal-theme /blog/2018/02/05/using-tailwind-css-in-your-drupal-theme -articles/2018/02/27/looking-forward-to-drupalcamp-london /blog/2018/02/27/looking-forward-to-drupalcamp-london -articles/2018/02/27/queuing-private-messages-in-drupal-8 /blog/2018/02/27/queuing-private-messages-in-drupal-8 -articles/2018/02/28/building-the-new-phpsw-website /blog/2018/02/28/building-the-new-phpsw-website -articles/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back /blog/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back -articles/2018/03/04/tweets-from-drupalcamp-london /blog/2018/03/04/tweets-from-drupalcamp-london -articles/2018/05/06/creating-a-custom-phpunit-command-for-docksal /blog/2018/05/06/creating-a-custom-phpunit-command-for-docksal -articles/accessible-bristol-site-launched /blog/accessible-bristol-site-launched -articles/add-date-popup-calendar-custom-form /blog/add-date-popup-calendar-custom-form -articles/add-taxonomy-term-multiple-nodes-using-sql /blog/add-taxonomy-term-multiple-nodes-using-sql -articles/adding-custom-theme-templates-drupal-7 /blog/adding-custom-theme-templates-drupal-7 -articles/announcing-the-drupal-vm-generator /blog/announcing-the-drupal-vm-generator -articles/automating-sculpin-jenkins /blog/automating-sculpin-jenkins -articles/building-gmail-filters-with-php /blog/building-gmail-filters-with-php -articles/building-the-new-phpsw-website /blog/building-the-new-phpsw-website -articles/change-content-type-multiple-nodes-using-sql /blog/change-content-type-multiple-nodes-using-sql -articles/checking-if-user-logged-drupal-right-way /blog/checking-if-user-logged-drupal-right-way -articles/checkout-specific-revision-svn-command-line /blog/checkout-specific-revision-svn-command-line -articles/conditional-email-addresses-webform /blog/conditional-email-addresses-webform -articles/create-a-zen-sub-theme-using-drush /blog/create-a-zen-sub-theme-using-drush -articles/create-and-apply-patches /blog/create-and-apply-patches -articles/create-better-photo-gallery-drupal-part-1 /blog/create-better-photo-gallery-drupal-part-1 -articles/create-better-photo-gallery-drupal-part-2 /blog/create-better-photo-gallery-drupal-part-2 -articles/create-better-photo-gallery-drupal-part-21 /blog/create-better-photo-gallery-drupal-part-21 -articles/create-better-photo-gallery-drupal-part-3 /blog/create-better-photo-gallery-drupal-part-3 -articles/create-block-social-media-icons-using-cck-views-and-nodequeue /blog/create-block-social-media-icons-using-cck-views-and-nodequeue -articles/create-flickr-photo-gallery-using-feeds-cck-and-views /blog/create-flickr-photo-gallery-using-feeds-cck-and-views -articles/create-multigroups-drupal-7-using-field-collections /blog/create-multigroups-drupal-7-using-field-collections -articles/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush /blog/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush -articles/create-slideshow-multiple-images-using-fancy-slide /blog/create-slideshow-multiple-images-using-fancy-slide -articles/create-virtual-hosts-mac-os-x-using-virtualhostx /blog/create-virtual-hosts-mac-os-x-using-virtualhostx -articles/creating-a-custom-phpunit-command-for-docksal /blog/creating-a-custom-phpunit-command-for-docksal -articles/creating-and-using-custom-tokens-drupal-7 /blog/creating-and-using-custom-tokens-drupal-7 -articles/creating-local-and-staging-sites-drupals-domain-module-enabled /blog/creating-local-and-staging-sites-drupals-domain-module-enabled -articles/display-custom-menu-drupal-7-theme-template-file /blog/display-custom-menu-drupal-7-theme-template-file -articles/display-git-branch-or-tag-names-your-bash-prompt /blog/display-git-branch-or-tag-names-your-bash-prompt -articles/display-number-facebook-fans-php /blog/display-number-facebook-fans-php -articles/dividing-drupals-process-and-preprocess-functions-separate-files /blog/dividing-drupals-process-and-preprocess-functions-separate-files -articles/dont-bootstrap-drupal-use-drush /blog/dont-bootstrap-drupal-use-drush -articles/download-different-versions-drupal-drush /blog/download-different-versions-drupal-drush -articles/drupal-association /blog/drupal-association -articles/drupal-vm-generator-291-released /blog/drupal-vm-generator-291-released -articles/drupalcamp-bristol-2018 /blog/drupalcamp-bristol-2018 -articles/drupalcamp-london-2014 /blog/drupalcamp-london-2014 -articles/drush-make-drupalbristol /blog/drush-make-drupalbristol -articles/easier-sculpin-commands-with-composer-and-npm-scripts /blog/easier-sculpin-commands-with-composer-and-npm-scripts -articles/easily-embed-typekit-fonts-your-drupal-website /blog/easily-embed-typekit-fonts-your-drupal-website -articles/fix-vagrant-loading-wrong-virtual-machine /blog/fix-vagrant-loading-wrong-virtual-machine -articles/fixing-drupal-simpletest-issues-inside-docker-containers /blog/fixing-drupal-simpletest-issues-inside-docker-containers -articles/forward-one-domain-another-using-mod-rewrite-and-htaccess /blog/forward-one-domain-another-using-mod-rewrite-and-htaccess -articles/git-format-patch /blog/git-format-patch -articles/going-drupalcon /blog/going-drupalcon -articles/how-to-define-a-minimum-drupal-core-version /blog/how-to-define-a-minimum-drupal-core-version -articles/imagefield-import-archive /blog/imagefield-import-archive -articles/improve-jpg-quality-imagecache-and-imageapi /blog/improve-jpg-quality-imagecache-and-imageapi -articles/include-css-fonts-using-sass-each-loop /blog/include-css-fonts-using-sass-each-loop -articles/include-local-drupal-settings-file-environment-configuration-and-overrides /blog/include-local-drupal-settings-file-environment-configuration-and-overrides -articles/install-and-configure-subversion-svn-server-ubuntu /blog/install-and-configure-subversion-svn-server-ubuntu -articles/install-nomensa-media-player-drupal /blog/install-nomensa-media-player-drupal -articles/installing-nagios-centos /blog/installing-nagios-centos -articles/introducing-the-drupal-meetups-twitterbot /blog/introducing-the-drupal-meetups-twitterbot -articles/leaving-nomensa-joining-precedent /blog/leaving-nomensa-joining-precedent -articles/looking-forward-to-drupalcamp-london /blog/looking-forward-to-drupalcamp-london -articles/my-new-drupal-modules /blog/my-new-drupal-modules -articles/my-sublime-text-2-settings /blog/my-sublime-text-2-settings -articles/nginx-redirects-with-query-string-arguments /blog/nginx-redirects-with-query-string-arguments -articles/open-sublime-text-2-mac-os-x-command-line /blog/open-sublime-text-2-mac-os-x-command-line -articles/pantheon-settings-files /blog/pantheon-settings-files -articles/prevent-apache-displaying-text-files-within-web-browser /blog/prevent-apache-displaying-text-files-within-web-browser -articles/proctor-stevenson /blog/proctor-stevenson -articles/proctors-hosting-next-drupal-meetup /blog/proctors-hosting-next-drupal-meetup -articles/programmatically-load-an-entityform-in-drupal-7 /blog/programmatically-load-an-entityform-in-drupal-7 -articles/queuing-private-messages-in-drupal-8 /blog/queuing-private-messages-in-drupal-8 -articles/quickest-way-install-sublime-text-2-ubuntu /blog/quickest-way-install-sublime-text-2-ubuntu -articles/quickly-apply-patches-using-git-and-curl-or-wget /blog/quickly-apply-patches-using-git-and-curl-or-wget -articles/quickly-create-zen-subthemes-using-zenophile /blog/quickly-create-zen-subthemes-using-zenophile -articles/quickly-import-multiples-images-using-imagefieldimport-module /blog/quickly-import-multiples-images-using-imagefieldimport-module -articles/reflections-speaking-unifieddiff /blog/reflections-speaking-unifieddiff -articles/review-adminhover-module /blog/review-adminhover-module -articles/review-image-caption-module /blog/review-image-caption-module -articles/review-teleport-module /blog/review-teleport-module -articles/sculpin-twig-resources /blog/sculpin-twig-resources -articles/simplifying-drupal-migrations-with-xautoload /blog/simplifying-drupal-migrations-with-xautoload -articles/site-upgraded-drupal-7 /blog/site-upgraded-drupal-7 -articles/some-useful-git-aliases /blog/some-useful-git-aliases -articles/some-useful-links-using-simpletest-drupal /blog/some-useful-links-using-simpletest-drupal -articles/south-wales-drupal-user-group /blog/south-wales-drupal-user-group -articles/style-drupal-6s-taxonomy-lists-php-css-and-jquery /blog/style-drupal-6s-taxonomy-lists-php-css-and-jquery -articles/tdd-test-driven-drupal /blog/tdd-test-driven-drupal -articles/thanks /blog/thanks -articles/tweets-from-drupalcamp-london /blog/tweets-from-drupalcamp-london -articles/updating-features-and-adding-components-using-drush /blog/updating-features-and-adding-components-using-drush -articles/updating-forked-repositories-on-github /blog/updating-forked-repositories-on-github -articles/use-authorized-keys-create-passwordless-ssh-connection /blog/use-authorized-keys-create-passwordless-ssh-connection -articles/use-regular-expressions-search-and-replace-coda-or-textmate /blog/use-regular-expressions-search-and-replace-coda-or-textmate -articles/use-sass-and-compass-drupal-7-using-sassy /blog/use-sass-and-compass-drupal-7-using-sassy -articles/useful-vagrant-commands /blog/useful-vagrant-commands -articles/using-imagecache-and-imagecrop-my-portfolio /blog/using-imagecache-and-imagecrop-my-portfolio -articles/using-remote-files-when-developing-locally-with-stage-file-proxy-module /blog/using-remote-files-when-developing-locally-stage-file-proxy-module -articles/using-remote-files-when-developing-locally-with-stage-file-proxy-module /blog/using-remote-files-when-developing-locally-with-stage-file-proxy-module -articles/using-tailwind-css-in-your-drupal-theme /blog/using-tailwind-css-in-your-drupal-theme -articles/what-git-flow /blog/what-git-flow -articles/writing-article-linux-journal /blog/writing-article-linux-journal -articles/writing-info-file-drupal-7-theme /blog/writing-info-file-drupal-7-theme -articles/yay-the-mediacurrent-contrib-half-hour-is-back /blog/yay-mediacurrent-contrib-half-hour-back -articles/yay-the-mediacurrent-contrib-half-hour-is-back /blog/yay-the-mediacurrent-contrib-half-hour-is-back -atNOQ https://youtu.be/r41dkD2EOo8 -automatically-updating-talk-created-date https://gist.github.com/opdavies/4e75e1753d8603113f07f8264bb783d6 -blog.xml /feed -blog/10-useful-drupal-6-modules /blog/useful-drupal-6-modules -blog/10-years-working-full-time-drupal /blog/10-years-working-full-time-drupal-php -blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery /blog/style-drupal-6s-taxonomy-lists-php-css-and-jquery -blog/2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery /blog/style-drupal-6s-taxonomy-lists-php-css-jquery -blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio /blog/using-imagecache-and-imagecrop-my-portfolio -blog/2010/05/06/conditional-email-addresses-webform /blog/conditional-email-addresses-webform -blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile /blog/quickly-create-zen-subthemes-using-zenophile -blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide /blog/create-slideshow-multiple-images-using-fancy-slide -blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module /blog/quickly-import-multiples-images-using-imagefieldimport-module -blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi /blog/improve-jpg-quality-imagecache-and-imageapi -blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue /blog/create-block-social-media-icons-using-cck-views-and-nodequeue -blog/2010/06/25/10-useful-drupal-6-modules /blog/10-useful-drupal-6-modules -blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views /blog/create-flickr-photo-gallery-using-feeds-cck-and-views -blog/2010/07/01/change-content-type-multiple-nodes-using-sql /blog/change-content-type-multiple-nodes-using-sql -blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx /blog/create-virtual-hosts-mac-os-x-using-virtualhostx -blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql /blog/add-taxonomy-term-multiple-nodes-using-sql -blog/2010/07/07/quickly-adding-taxonomy-term-multiple-nodes-using-sql /blog/add-taxonomy-term-multiple-nodes-using-sql -blog/2010/07/12/overview-teleport-module /blog/review-teleport-module -blog/2010/07/12/review-teleport-module /blog/review-teleport-module -blog/2010/08/10/review-adminhover-module /blog/review-adminhover-module -blog/2010/08/11/create-better-photo-gallery-drupal-part-1 /blog/create-better-photo-gallery-drupal-part-1 -blog/2010/08/11/how-create-better-photo-gallery-drupal-part-1 /blog/create-better-photo-gallery-drupal-part-1 -blog/2010/08/17/create-better-photo-gallery-drupal-part-2 /blog/create-better-photo-gallery-drupal-part-2 -blog/2010/08/20/review-image-caption-module /blog/review-image-caption-module -blog/2010/09/26/south-wales-drupal-user-group /blog/south-wales-drupal-user-group -blog/2010/10/10/create-and-apply-patches /blog/create-and-apply-patches -blog/2010/10/13/create-better-photo-gallery-drupal-part-3 /blog/create-better-photo-gallery-drupal-part-3 -blog/2010/10/22/create-better-photo-gallery-drupal-part-21 /blog/create-better-photo-gallery-drupal-part-21 -blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate /blog/use-regular-expressions-search-and-replace-coda-or-textmate -blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website /blog/easily-embed-typekit-fonts-your-drupal-website -blog/2011/03/15/display-number-facebook-fans-php /blog/display-number-facebook-fans-php -blog/2011/03/31/proctor-stevenson /blog/proctor-stevenson -blog/2011/05/20/proctors-hosting-next-drupal-meetup /blog/proctors-hosting-next-drupal-meetup -blog/2011/05/23/imagefield-import-archive /blog/imagefield-import-archive -blog/2011/08/28/create-multigroups-drupal-7-using-field-collections /blog/create-multigroups-drupal-7-using-field-collections -blog/2011/10/19/install-and-configure-subversion-svn-server-ubuntu /blog/install-and-configure-subversion-svn-server-ubuntu -blog/2012/01/04/site-upgraded-drupal-7 /blog/site-upgraded-drupal-7 -blog/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection /blog/use-authorized-keys-create-passwordless-ssh-connection -blog/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush /blog/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush -blog/2012/04/17/installing-nagios-centos /blog/installing-nagios-centos -blog/2012/04/19/adding-custom-theme-templates-drupal-7 /blog/adding-custom-theme-templates-drupal-7 -blog/2012/05/23/add-date-popup-calendar-custom-form /blog/add-date-popup-calendar-custom-form -blog/2012/05/23/checkout-specific-revision-svn-command-line /blog/checkout-specific-revision-svn-command-line -blog/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess /blog/forward-one-domain-another-using-mod-rewrite-and-htaccess -blog/2012/05/23/forward-one-domain-another-using-modrewrite-and-htaccess /blog/forward-one-domain-another-using-modrewrite-htaccess -blog/2012/05/23/prevent-apache-displaying-text-files-within-web-browser /blog/prevent-apache-displaying-text-files-within-web-browser -blog/2012/05/23/writing-info-file-drupal-7-theme /blog/writing-info-file-drupal-7-theme -blog/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files /blog/dividing-drupals-process-and-preprocess-functions-separate-files -blog/2012/05/forward-one-domain-another-using-modrewrite-and-htaccess /blog/forward-one-domain-another-using-modrewrite-htaccess -blog/2012/07/12/my-new-drupal-modules /blog/my-new-drupal-modules -blog/2012/07/14/install-nomensa-media-player-drupal /blog/install-nomensa-media-player-drupal -blog/2012/07/27/writing-article-linux-journal /blog/writing-article-linux-journal -blog/2012/07/install-and-configure-nomensa-accessible-media-player-drupal /blog/install-configure-nomensa-accessible-media-player-drupal -blog/2012/07/nomensa-accessible-media-player-drupal /blog/install-configure-nomensa-accessible-media-player-drupal -blog/2012/08/18/display-custom-menu-drupal-7-theme-template-file /blog/display-custom-menu-drupal-7-theme-template-file -blog/2012/09/06/reflections-speaking-unifieddiff /blog/reflections-speaking-unifieddiff -blog/2012/10/25/my-sublime-text-2-settings /blog/my-sublime-text-2-settings -blog/2012/11/15/accessible-bristol-site-launched /blog/accessible-bristol-site-launched -blog/2012/11/17/open-sublime-text-2-mac-os-x-command-line /blog/open-sublime-text-2-mac-os-x-command-line -blog/2012/12/06/use-sass-and-compass-drupal-7-using-sassy /blog/use-sass-and-compass-drupal-7-using-sassy -blog/2013/01/09/checking-if-user-logged-drupal-right-way /blog/checking-if-user-logged-drupal-right-way -blog/2013/02/16/creating-and-using-custom-tokens-drupal-7 /blog/creating-and-using-custom-tokens-drupal-7 -blog/2013/03/02/quickest-way-install-sublime-text-2-ubuntu /blog/quickest-way-install-sublime-text-2-ubuntu -blog/2013/04/20/leaving-nomensa-joining-precedent /blog/leaving-nomensa-joining-precedent -blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt /blog/display-git-branch-or-tag-names-your-bash-prompt -blog/2013/06/13/some-useful-links-using-simpletest-drupal /blog/some-useful-links-using-simpletest-drupal -blog/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled /blog/creating-local-and-staging-sites-drupals-domain-module-enabled -blog/2013/07/26/going-drupalcon /blog/going-drupalcon -blog/2013/09/06/create-a-zen-sub-theme-using-drush /blog/create-a-zen-sub-theme-using-drush -blog/2013/09/create-zen-sub-theme-using-drush /blog/create-zen-sub-theme-using-drush -blog/2013/11/19/dont-bootstrap-drupal-use-drush /blog/dont-bootstrap-drupal-use-drush -blog/2013/11/27/useful-vagrant-commands /blog/useful-vagrant-commands -blog/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget /blog/quickly-apply-patches-using-git-and-curl-or-wget -blog/2013/12/31/download-different-versions-drupal-drush /blog/download-different-versions-drupal-drush -blog/2014/01/15/some-useful-git-aliases /blog/some-useful-git-aliases -blog/2014/02/09/drupalcamp-london-2014 /blog/drupalcamp-london-2014 -blog/2014/03/03/what-git-flow /blog/what-git-flow -blog/2014/05/03/drupal-association /blog/drupal-association -blog/2014/05/06/thanks /blog/thanks -blog/2014/05/21/git-format-patch /blog/git-format-patch -blog/2014/07/02/drush-make-drupalbristol /blog/drush-make-drupalbristol -blog/2014/10/06/fix-vagrant-loading-wrong-virtual-machine /blog/fix-vagrant-loading-wrong-virtual-machine -blog/2014/10/21/updating-features-and-adding-components-using-drush /blog/updating-features-and-adding-components-using-drush -blog/2014/11/18/include-css-fonts-using-sass-each-loop /blog/include-css-fonts-using-sass-each-loop -blog/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module /blog/using-remote-files-when-developing-locally-with-stage-file-proxy-module -blog/2014/11/27/pantheon-settings-files /blog/pantheon-settings-files -blog/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides /blog/include-local-drupal-settings-file-environment-configuration-and-overrides -blog/2015/04/03/how-to-define-a-minimum-drupal-core-version /blog/how-to-define-a-minimum-drupal-core-version -blog/2015/06/18/updating-forked-repositories-on-github /blog/updating-forked-repositories-on-github -blog/2015/07/19/sculpin-twig-resources /blog/sculpin-twig-resources -blog/2015/07/21/automating-sculpin-jenkins /blog/automating-sculpin-jenkins -blog/2015/12/22/programmatically-load-an-entityform-in-drupal-7 /blog/programmatically-load-an-entityform-in-drupal-7 -blog/2016/02/15/announcing-the-drupal-vm-generator /blog/announcing-the-drupal-vm-generator -blog/2016/05/03/simplifying-drupal-migrations-with-xautoload /blog/simplifying-drupal-migrations-with-xautoload -blog/2016/07/15/building-gmail-filters-with-php /blog/building-gmail-filters-with-php -blog/2016/12/30/drupal-vm-generator-291-released /blog/drupal-vm-generator-291-released -blog/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts /blog/easier-sculpin-commands-with-composer-and-npm-scripts -blog/2017/01/31/nginx-redirects-with-query-string-arguments /blog/nginx-redirects-with-query-string-arguments -blog/2017/05/05/fixing-drupal-simpletest-docker /blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers -blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers /blog/fixing-drupal-simpletest-issues-inside-docker-containers -blog/2017/05/20/turning-drupal-module-into-feature /blog/turning-your-custom-drupal-module-feature -blog/2017/06/09/introducing-the-drupal-meetups-twitterbot /blog/introducing-the-drupal-meetups-twitterbot -blog/2017/07/13/publishing-sculpin-sites-with-github-pages /blog/publishing-sculpin-sites-github-pages -blog/2017/11/07/tdd-test-driven-drupal /blog/tdd-test-driven-drupal -blog/2017/11/07/writing-drupal-module-test-driven-development-tdd /blog/2017/11/07/tdd-test-driven-drupal -blog/2018/01/30/drupalcamp-bristol-2018 /blog/drupalcamp-bristol-2018 -blog/2018/02/05/using-tailwind-css-in-your-drupal-theme /blog/using-tailwind-css-in-your-drupal-theme -blog/2018/02/27/looking-forward-to-drupalcamp-london /blog/looking-forward-to-drupalcamp-london -blog/2018/02/27/queuing-private-messages-in-drupal-8 /blog/queuing-private-messages-in-drupal-8 -blog/2018/02/28/building-the-new-phpsw-website /blog/building-the-new-phpsw-website -blog/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back /blog/yay-the-mediacurrent-contrib-half-hour-is-back -blog/2018/03/04/tweets-from-drupalcamp-london /blog/tweets-from-drupalcamp-london -blog/2018/04/23/back-to-the-future-git-diff-apply /blog/back-future-gits-diff-apply-commands -blog/2018/05/06/creating-a-custom-phpunit-command-for-docksal /blog/creating-a-custom-phpunit-command-for-docksal -blog/add-date-popup-calendar-custom-form /blog/how-add-date-popup-calendar-custom-form -blog/adding-methods-decorating-entity-metadata-wrapper /blog/decorating-entity-metadata-wrapper-add-refactor-methods -blog/announcing-drupal-vm-generator /blog/announcing-the-drupal-vm-generator -blog/announcing-the-drupal-vm-config-generator /blog/announcing-the-drupal-vm-generator -blog/back-to-the-future-git-diff-apply /blog/back-future-gits-diff-apply-commands -blog/building-gmail-filters-in-php /blog/building-gmail-filters-php -blog/building-new-phpsw-website /blog/building-the-new-phpsw-website -blog/building-presentation-slides-reveal-js-tailwind-css /blog/building-presentation-slides-rst2pdf -blog/building-speaker-leaderboard-php-south-wales-using-drupal-symfony /blog/building-speaker-leaderboard-php-south-wales-drupal-symfony -blog/create-and-apply-patches /blog/how-create-apply-patches -blog/create-flickr-photo-gallery-using-feeds-cck-and-views /blog/create-flickr-photo-gallery-using-feeds-cck-views -blog/creating-and-using-custom-tokens-drupal-7 /blog/creating-using-custom-tokens-drupal-7 -blog/creating-custom-docksal-commands /blog/creating-custom-phpunit-command-docksal -blog/creating-custom-docksal-commands /blog/creating-custom-phpunit-command-docksal -blog/debugging-drupal-commerce-promotions-illiminate-collections /blog/debugging-drupal-commerce-illuminate-collections -blog/decorating-entity-metadata-wrapper-add-add-refactor-methods /blog/decorating-entity-metadata-wrapper-add-refactor-methods -blog/dev-book-club-refactoring-chapter-1 /blog/dev-book-club-notes-refactoring-chapter-1 -blog/dividing-drupals-process-preprocess-functions-separate-files /blog/dividing-drupals-process-and-preprocess-functions-separate-files -blog/drupal-8-commerce-fixing-no-such-customer-error-checkout /blog/drupal-8-commerce-fixing-error-on-user-checkout -blog/drupal-8-commerce-fixing-no-such-customer-error-on-checkout /blog/drupal-8-commerce-fixing-no-such-customer-error-checkout -blog/drupal-vm-generator-291-released /blog/drupal-vm-generator-updates -blog/drupalcamp-london-2019-tickets /blog/drupalcamp-london-2019-tickets-available-call-sessions -blog/drush-make-drupalbristol /talks/drush-make-drupalbristol -blog/easier-git-repository-cloning-with-insteadof /blog/easier-git-repository-cloning-insteadof -blog/easier-sculpin-commands-with-composer-and-npm-scripts /blog/easier-sculpin-commands-composer-npm-scripts -blog/editing-meetup-videos-kdenlive /blog/editing-meetup-videos-linux-kdenlive -blog/examples-of-laravel-collections-in-drupal /blog/using-laravel-collections-drupal -blog/examples-of-laravel-collections-in-drupal /blog/using-laravel-collections-drupal -blog/experimenting-with-events-in-drupal-8 /blog/experimenting-events-drupal-8 -blog/fix-vagrant-loading-wrong-virtual-machine /blog/how-fix-vagrant-loading-wrong-virtual-machine -blog/fixing-drupal-simpletest-docker /blog/fixing-drupal-simpletest-issues-inside-docker-containers -blog/fixing-drupal-simpletest-docker /blog/fixing-drupal-simpletest-issues-inside-docker-containers -blog/forward-one-domain-another-using-modrewrite-and-htaccess /blog/forward-one-domain-another-using-modrewrite-htaccess -blog/git-format-patch /blog/git-format-patch-your-friend -blog/how-easily-embed-typekit-fonts-your-drupal-website /blog/easily-embed-typekit-fonts-your-drupal-website -blog/how-split-new-drupal-contrib-project-within-another-repository /blog/splitting-new-drupal-project-from-repo -blog/how-style-drupal-6s-taxonomy-lists-php-css-and-jquery /blog/style-drupal-6s-taxonomy-lists-php-css-jquery -blog/include-local-drupal-settings-file-environment-configuration-overrides /blog/include-local-drupal-settings-file-environment-configuration-and-overrides -blog/install-and-configure-subversion-svn-server-ubuntu /blog/how-install-configure-subversion-svn-server-ubuntu -blog/live-blogging-symfonylive-london /blog/live-blogging-symfonylive-london-2019 -blog/minimum-core-version /blog/how-define-minimum-drupal-core-version -blog/nginx-redirects-with-query-string-arguments /blog/nginx-redirects-query-string-arguments -blog/null-users-and-system-users-in-drupal /blog/null-users-system-users-drupal -blog/overridding-phpcs-configuration-drupal-ci /blog/overriding-phpcs-configuration-drupal-ci -blog/pantheon-settings-files /blog/include-environment-specific-settings-files-pantheon -blog/pdfpc-pdf-presenter-console-notes /blog/presenting-pdf-slides-using-pdfpc-pdf-presenter-console -blog/php-apps-subdirectory-nginx /blog/how-put-your-php-application-subdirectory-another-site-nginx -blog/php-apps-subdirectory-nginx /blog/how-put-your-php-application-subdirectory-another-site-nginx -blog/presenting-tailwind-css-ansible-cms-philly /blog/presenting-on-tailwind-css-and-ansible-at-cms-philly -blog/published-my-first-docker-images-docker-hub /blog/published-my-first-docker-images-docker-hub-adr-tools-sculpin-rst2pdf -blog/publishing-sculpin-sites-github-pages /blog/publishing-sculpin-sites-with-github-pages -blog/publishing-sculpin-sites-with-github-pages /blog/publishing-sculpin-sites-github-pages -blog/queuing-private-messages-in-drupal-8 /blog/queuing-private-messages-drupal-8 -blog/quick-project-switching-in-phpstorm /blog/quick-project-switching-phpstorm -blog/quick-project-switching-in-phpstorm /blog/quick-project-switching-phpstorm -blog/quickly-apply-patches-using-git-and-curl-or-wget /blog/quickly-apply-patches-using-git-curl-or-wget -blog/rebuilding-bartik-with-vuejs-tailwind-css /blog/rebuilding-bartik-drupals-default-theme-vuejs-tailwind-css -blog/rebuilding-bartik-with-vuejs-tailwind-css-part-2 /blog/rebuilding-bartik-drupals-default-theme-vuejs-tailwind-css-part-2 -blog/rebuilding-uis-tailwind-css /blog/uis-ive-rebuilt-tailwind-css -blog/restructuring-my-tailwindjs-config-files /blog/restructuring-my-tailwindjs-configuration-files -blog/retrieving-profile-data-user-using-entity-metadata-wrapper /blog/cleanly-retrieving-user-profile-data-using-entity-metadata-wrapper -blog/running-drupal-with-symfony-local-server /blog/running-drupal-88-symfony-local-server -blog/running-phpunit-tests-docksal-phpstorm /blog/how-run-drupal-8-phpunit-tests-within-docksal-phpstorm -blog/simplifying-drupal-migrations-with-xautoload /blog/simplifying-drupal-migrations-xautoload -blog/speaking-drupalcon-barcelona-2020 /blog/speaking-drupalcon-europe-2020 -blog/speaking-during-lockdown /blog/speaking-remotely-during-covid-19 -blog/speaking-remotely-during-lockdown /blog/speaking-remotely-during-covid-19 -blog/survey-results-my-drupalcon-europe-session /blog/survey-results-my-drupalcon-europe-session-test-driven-drupal -blog/system-users-null-users /blog/null-users-and-system-users-in-drupal -blog/test-driven-drupal-gitstore-leanpub /blog/test-driven-drupal-on-gitstore-leanpub -blog/test-driven-drupal-presentation-drupalcon-europe-0 /blog/test-driven-drupal-presentation-drupalcon-europe -blog/test-driven-drupal-session-drupalcon-europe /blog/test-driven-drupal-presentation-drupalcon-europe -blog/test-driven-drupal-session-video-drupalcon-europe /blog/test-driven-drupal-presentation-drupalcon-europe -blog/testing-tailwind-css-plugins-with-jest /blog/testing-tailwind-css-plugins-jest -blog/tweets-from-drupalcamp-london /blog/tweets-drupalcamp-london -blog/updating-features-and-adding-components-using-drush /blog/updating-features-adding-components-using-drush -blog/updating-forked-repositories-github /blog/updating-forked-github-repos -blog/use-regular-expressions-search-and-replace-coda-or-textmate /blog/use-regular-expressions-search-replace-coda-or-textmate -blog/using-environment-variables-settings-docksal /blog/how-use-environment-variables-your-drupal-settings-docksal -blog/using-psr-4-autoloading-your-drupal-7-test-cases /blog/psr4-autoloading-test-cases-drupal-7 -blog/using-tailwind-css-in-your-drupal-theme /blog/using-tailwind-css-your-drupal-theme -blog/using-the-pcss-extension-postcss-webpack-encore /blog/using-pcss-extension-postcss-webpack-encore -blog/weeknotes-june-5th /blog/weeknotes-2021-06-05 -blog/writing-drupal-module-test-driven-development-tdd /blog/writing-new-drupal-8-module-using-test-driven-development-tdd -book /test-driven-drupal -calendar https://savvycal.com/opdavies/chat -cms-philly /articles/presenting-on-tailwind-css-and-ansible-at-cms-philly -code-enigma-interview https://blog.codeenigma.com/interview-with-a-drupal-expert-9fcd8e0fad28 -contrib-half-hour https://www.youtube.com/playlist?list=PLu-MxhbnjI9rHroPvZO5LEUhr58Yl0j_F -contribution-day https://github.com/microserve-io/contribution-day/ -cv https://cv.oliverdavies.uk -d0P5z /talks/drupal-8-php-libraries-drupalorg-api -dcbristol-cfp https://www.papercall.io/drupalcamp-bristol-2019 -dcbristol17-videos https://www.youtube.com/playlist?list=PLOwPvExSyLLngtd6R4PUD9MCXa6QL_obA -dcbristol19-announced /articles/drupalcamp-bristol-2019-speakers-sessions-announced -dclondon-sat https://drupalcamp.london/schedule/saturday -dclondon-sun https://drupalcamp.london/schedule/sunday -dclondon20 /articles/drupalcamp-london-testing-workshop -ddev-phpunit-command /blog/creating-custom-phpunit-command-ddev -deploying-php-ansible /talks/deploying-php-ansible-ansistrano -dks7E https://www.youtube.com/watch?v=PLS4ET7FAcU -do-library https://github.com/opdavies/drupalorg-api-php -do-projects https://github.com/opdavies/drupal-module-drupalorg-projects -docksal-phpunit-phpstorm /articles/running-phpunit-tests-docksal-phpstorm -docksal-posts /articles/tags/docksal -dransible https://github.com/opdavies/dransible -dransible-drupal-9 /blog/upgrading-dransible-project-drupal-9 -drupal-bristol-march-19 https://docs.google.com/presentation/d/1pk9LIN-hHX73kvDdo-lzgmKlAeH33_K_uvI0t7A-rvY/edit?usp=sharing -drupal-core-live-stream https://www.youtube.com/watch?v=OK4FWwh1gQU -drupal-core-testing-gate https://www.drupal.org/core/gates#testing -drupal-first-time-issues https://www.drupal.org/project/issues/search?text=&projects=&assigned=&submitted=&project_issue_followers=&status%5B%5D=Open&issue_tags_op=%3D&issue_tags=Novice -drupal-forum-post http://www.webmaster-forums.net/webmasters-corner/developing-my-website-using-php-and-mysql#comment-1231537 -drupal-marketplace-uk https://www.drupal.org/drupal-services?offices%5B%5D=24460 -drupal-meetups-twitterbot /articles/introducing-the-drupal-meetups-twitterbot -drupal-novice-issues https://www.drupal.org/project/issues/search?text=&projects=&assigned=&submitted=&project_issue_followers=&status%5B%5D=Open&issue_tags_op=%3D&issue_tags=Novice -drupal-php-developer-consultant-uk /drupal-php-developer -drupal-tailwind-demo https://www.youtube.com/watch?v=1eM-Gw6GI4g -drupal-tailwindcss https://www.drupal.org/project/tailwindcss -drupal-vuejs /talks/decoupling-drupal-vuejs/ -drupalcamp-london-2019-tickets /articles/drupalcamp-london-2019-tickets -drupalcamp-nyc-training https://www.youtube.com/watch?v=3M9c4UUzKm0 -drupalorg https://www.drupal.org/u/opdavies -drupalorg-project-issues https://www.drupal.org/project/issues/search?projects=Override+Node+Options%2C+Tailwind+CSS+Starter+Kit%2C+Block+ARIA+Landmark+Roles%2C+Copyright+Block+module%2C+System+User%2C+Null+User%2C+Collection+class%2C+Pathauto+Menu+Link%2C+Webform+ARIA&project_issue_followers=&status%5B%5D=1&status%5B%5D=13&status%5B%5D=8&status%5B%5D=14&status%5B%5D=15&issue_tags_op=%3D -drupalversary https://github.com/opdavies/drupal-module-drupalversary -elewant https://elewant.com/shepherd/admire/opdavies -first-drupal-core-issue https://www.drupal.org/project/drupal/issues/753898 -first-npm-package https://www.npmjs.com/package/tailwindcss-vuejs -freeagent https://opdavies.freeagent.com -git-flow /talks/git-flow -gitlab https://gitlab.com/opdavies -gitstore https://enjoy.gitstore.app/maintainers/opdavies -gmail-filters https://gitlab.com/opdavies/gmail-filters -images/me-precedent.jpg /sites/default/files/images/social-avatar.jpg -inviqa-tailwind-demo https://play.tailwindcss.com/Yfmw8O5UNN -inviqa-tailwind-notes https://gist.github.com/opdavies/e6f0f4938506a6859acf1aca8b4e1a74 -join-php-south-wales-slack https://join.slack.com/t/phpsouthwales/shared_invite/zt-4vuetc43-AvtEK1WqNzp5k1w4yWKOJA -jy6rW https://www.meetup.com/PHP-South-Wales/events/264731393 -kB6Jd /articles/running-drupal-with-symfony-local-server/ -kmDRA https://www.bbc.co.uk/news/uk-46561779 -leeds-php-drupal-9 https://www.meetup.com/leedsphp/events/272504993 -links / -london-half-term-map https://www.google.com/maps/d/u/0/viewer?mid=1d-7ruqjlm2vKF_Fwhu_-5CDfr2TyUuhB&hl=en&ll=51.50411420613797%2C-0.12409831347656564&z=13 -luke-dinosaurs https://luke-dinosaurs.netlify.com/ -luke-recycling https://luke-recycling.netlify.com/ -microserve-issues https://www.drupal.org/project/issues/search?status[]=Open&issue_tags=Microserve -microserve-issues-need-review https://www.drupal.org/project/issues/search?projects=&project_issue_followers=&status%5B%5D=8&issue_tags_op=%3D&issue_tags=Microserve -npm https://www.npmjs.com/~opdavies -oFlkS /articles/test-driven-drupal-on-gitstore-leanpub -oliver-davies-uk-based-drupal-symfony-developer /oliver-davies-uk-based-drupal-php-developer -photo-lab-fun-family-portraits https://www.apple.com/uk/today/event/photo-lab-fun-family-portraits/6512343695143329889 -php-ansible /talks/deploying-php-ansible-ansistrano -php-south-wales-sept-19 https://joind.in/event/php-south-wales---september-2019-double-docker -php-south-wales-slack-invite https://join.slack.com/t/phpsouthwales/shared_invite/zt-4vuetc43-AvtEK1WqNzp5k1w4yWKOJA -php-south-wales-videos https://www.youtube.com/channel/UCzQRSSaIV2Ajvl81BxPQDZA -pv176 https://www.sainsburys.co.uk/shop/gb/groceries/paper---notebooks-44/sainsburys-home-midnight-opulence-a4-floral-notebook-133870966-p -qSHAl /articles/published-my-first-npm-package/ -qT1Rb https://github.com/opdavies/drupal-meetups-twitterbot -rebuilding-acquia https://rebuilding-acquia.oliverdavies.uk -rebuilding-bartik /articles/rebuilding-bartik-with-vuejs-tailwind-css -rebuilding-bristol-js https://github.com/opdavies/rebuilding-bristol-js -rebuilding-pantheon https://play.tailwindcss.com/LND98XihGI?layout=horizontal -rebuilding-platformsh https://rebuilding-platformsh.oliverdavies.uk -rebuilding-symfony https://github.com/opdavies/rebuilding-symfony -rk29B https://www.meetup.com/PHP-South-Wales/events/268422525 -rss /feed -ruralelec-slider https://www.youtube.com/watch?v=-x80ymicm5E -s9MjJ https://symfonycasts.com/screencast/symfony -sIGnJ https://microserve.io -sculpin-encore-versioning https://github.com/opdavies/oliverdavies.uk/commit/d192b04aefa6e7a21bfc1f2e0fe0a16111e0e8a2 -skills https://opdavies-skills-tailwindcss.netlify.com/ -slides-drupal-9 https://slides-upgrading-to-drupal-9.oliverdavies.uk -slides-upgrading-to-drupal-9 https://slides-upgrading-to-drupal-9.oliverdavies.uk -slides-upgrading-to-drupal-9/index.html https://slides-upgrading-to-drupal-9.oliverdavies.uk -slides-working-with-workspace https://slides-working-with-workspace.oliverdavies.uk -speaker-info /about/speaker-information -speaking-videos https://www.youtube.com/playlist?list=PLHn41Ay7w7kfAzczswrANch5oHAPZBlvu -sprint-day https://github.com/microserve-io/contribution-day/ -sprint-setup https://github.com/microserve-io/contribution-day/ -stream https://www.youtube.com/channel/UCkeK0qF9HHUPQH_fvn4ghqQ/live -swap-markdown-parser https://github.com/opdavies/sculpin-twig-markdown-bundle-example/tree/swap-markdown-parser -symfony https://connect.symfony.com/profile/opdavies -symfony-server /articles/running-drupal-with-symfony-local-server -symfonylive /articles/live-blogging-symfonylive-london -symposium https://symposiumapp.com/u/opdavies -tailwind-css-talk /talks/taking-flight-tailwind-css -tailwind-repos https://github.com/opdavies?utf8=%E2%9C%93&tab=repositories&q=tailwindcss -tailwind-talk /talks/taking-flight-with-tailwind-css -tailwindcss-demo http://tailwindcss-demo.oliverdavies.uk/ -talks-offer-tweet https://twitter.com/opdavies/status/1250870367712935938 -talks/2012/09/05/what-is-this-drupal-thing-unified-diff /talks/what-is-this-drupal-thing -talks/2013/07/10/drupal-ldap-swdug /talks/drupal-ldap -talks/2014/03/01/git-flow-drupalcamp-london-2014 /talks/git-flow -talks/2014/07/02/drush-make-drupalbristol-drupal-bristol /talks/drush-make-drupalbristol -talks/2014/08/19/drupal-association-swdug /talks/drupal-association -talks/2015/01/18/drupalorg-2015-drupalcamp-brighton-2015 /talks/drupalorg-in-2015-whats-coming-next -talks/2015/02/28/drupalorg-2015-drupalcamp-london-2015 /talks/drupalorg-in-2015-whats-coming-next -talks/2015/04/08/drupal-8-phpsw /talks/drupal-8 -talks/2015/07/25/test-drive-twig-with-sculpin-drupalcamp-north-2015 /talks/test-drive-twig-with-sculpin -talks/2015/08/25/dancing-for-drupal-umbristol /talks/dancing-for-drupal -talks/2015/10/14/sculpin-phpsw /talks/sculpin -talks/2016/03/05/drupal-8-module-development-drupalcamp-london-2016 /talks/getting-started-with-drupal-8-module-development -talks/2016/03/09/drupal-vm-generator-nwdug /talks/drupal-vm-generator -talks/2016/04/02/drupal-vm-generator-drupal-bristol /talks/drupal-vm-generator -talks/2016/06/11/drupal-8-rejoining-the-herd-php-south-coast-2016 /talks/drupal-8-rejoining-the-herd -talks/2016/07/23/drupal-vm-meet-symfony-console-drupalcamp-bristol-2016 /talks/drupal-vm-meet-symfony-console -talks/2016/11/09/drupal-development-with-composer-phpsw /talks/drupal-development-with-composer -talks/2016/11/17/goodbye-drush-make-hello-composer-drupal-bristol /talks/goodbye-drush-make-hello-composer -talks/2017/01/18/getting-your-data-into-drupal-8-drupal-bristol /talks/getting-your-data-into-drupal-8 -talks/2017/03/04/getting-your-data-into-drupal-8-drupalcamp-london-2017 /talks/getting-your-data-into-drupal-8 -talks/ansible-ansistrano https://www.oliverdavies.uk/talks/deploying-php-ansible-ansistrano -talks/archive /talks -talks/deploying-php-applications-with-fabric /talks/deploying-php-fabric -talks/drupal-vm-generator-2 /talks/drupal-vm-generator -talks/drupalorg-2015-2 /talks/drupalorg-2015 -talks/drupalorg-in-2015-whats-coming-next /talks/drupalorg-2015 -talks/getting-started-with-drupal-8-module-development /drupal-8-module-development -talks/having-fun-drupal-8-php-libraries-drupalorg-api /talks/drupal-8-php-libraries-drupalorg-api -talks/never-commit-master-introduction-git-flow /talks/git-flow -talks/sculpin /talks/building-static-websites-sculpin -talks/tailwind /talks/taking-flight-with-tailwind-css/ -talks/using-laravel-collections-outside-laravel /talks/using-illuminate-collections-outside-laravel -talks/working-workspace /talks/working-with-workspace -tdd-blog https://github.com/opdavies/drupal-module-tdd-blog -tdd-test-driven-drupal /talks/tdd-test-driven-drupal/ -test-driven-drupal-book /test-driven-drupal -testing-drupal https://www.oliverdavies.uk/talks/tdd-test-driven-drupal -testing-drupal-intro https://inviqa.com/blog/drupal-automated-testing-introduction -testing-tailwind-plugins /articles/testing-tailwindcss-plugins-with-jest -testing-workshop https://github.com/opdavies/workshop-drupal-automated-testing -testing-workshop-code https://github.com/opdavies/workshop-drupal-automated-testing-code -todoist-filters https://gist.github.com/opdavies/6709fbdac5c3babbd94137bcc8b8e3c2 -twitter-tweaks https://github.com/opdavies/chrome-extension-twitter-tweaks -upgrading-to-drupal-9 /talks/upgrading-your-site-drupal-9 -uxbjV https://www.drupal.org/project/copyright_block -vyTEF https://www.npmjs.com/package/tailwindcss-vuejs -webpack-encore-pcss-regex https://regexr.com/51iaf -wordcamp-bristol-tailwindcss https://2019.bristol.wordcamp.org/session/taking-flight-with-tailwind-css -wordpress-tailwind https://github.com/opdavies/wordcamp-bristol-2019 -working-with-workspace /talks/working-with-workspace -workshop-drupal-testing https://github.com/opdavies/workshop-drupal-automated-testing -workspace-demo https://github.com/opdavies/working-with-workspace-demo -wp-tailwind https://wp-tailwind.oliverdavies.uk -wp-tailwind-repo https://github.com/opdavies/wordcamp-bristol-2019 -wp-tailwind-starter https://github.com/opdavies/wordpress-tailwindcss-startker-kit -wp-tailwind-static https://wp-tailwind.oliverdavies.uk -yXhoS /talks/things-you-should-know-about-php - -https://oliverdavies.uk/* https://www.oliverdavies.uk/:splat 301! -https://romantic-williams-0ab86a.netlify.com/* https://www.oliverdavies.uk/:splat 301! -https://www.oliverdavies.uk/articles/* https://www.oliverdavies.uk/blog/:splat 301! diff --git a/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf b/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf index c7716993..177159ce 100644 --- a/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf +++ b/tools/docker/images/nginx/root/etc/nginx/conf.d/default.conf @@ -9,5 +9,598 @@ server { } error_page 404 /404.html; + + rewrite ^/10-useful-drupal-6-modules-i-use-every-project$ /blog/10-useful-drupal-6-modules; + rewrite ^/2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery$ /blog/style-drupal-6s-taxonomy-lists-php-css-jquery; + rewrite ^/2010/04/28/using-imagecache-and-imagecrop-for-my-portfolio$ /blog/using-imagecache-imagecrop-my-portfolio; + rewrite ^/2010/05/29/importing-images-using-the-imagefieldimport-module$ /blog/quickly-import-multiples-images-using-imagefieldimport-module; + rewrite ^/2010/06/23/creating-a-block-of-social-media-icons-using-cck-views-and-nodequeue$ /blog/create-block-social-media-icons-using-cck-views-nodequeue; + rewrite ^/2010/07/05/thanks$ /blog/thanks; + rewrite ^/2010/08/17/create-a-better-photo-gallery-in-drupal-part-2$ /blog/create-better-photo-gallery-drupal-part-2; + rewrite ^/2014/05/21/git-format-patch$ /blog/git-format-patch-your-friend; + rewrite ^/2PxmyqP$ /articles/examples-of-laravel-collections-in-drupal; + rewrite ^/39CoG$ /articles/drupalcamp-london-testing-workshop; + rewrite ^/3eGQr$ https://github.com/howToCodeWell/howToCodeWellFM/blob/c927e0b3589f1d7375002f7fd70f0bfc9fc90449/composer.json#L17; + rewrite ^/6UhLN$ https://github.com/opdavies/sculpin-twig-markdown-bundle/pull/1; + rewrite ^/6i3YZ$ https://www.youtube.com/watch?v=vUK5sEbd-dk; + rewrite ^/9rv0Z$ https://www.drupal.org/project/override_node_options/issues/3109852; + rewrite ^/BhMZi$ https://git.drupalcode.org/search?utf8=%E2%9C%93&snippets=&scope=&repository_ref=8.x-1.x&search=baz&project_id=23203; + rewrite ^/NBi5h$ https://git.drupalcode.org/search?utf8=%E2%9C%93&search=bar&group_id=&project_id=23203&search_code=true&repository_ref=8.x-1.x&nav_source=navbar; + rewrite ^/P5KQ5$ https://www.npmjs.com/package/tailwindcss-skip-link; + rewrite ^/S8ZDA$ /articles/rebuilding-bartik-with-vuejs-tailwind-css-part-2; + rewrite ^/Wh48P$ https://github.com/opdavies/oliverdavies.uk/blob/master/source/_partials/talk/video.html.twig; + rewrite ^/XbzS2$ https://github.com/opdavies/gmail-filter-builder; + rewrite ^/YK1VH$ /articles/psr4-autoloading-test-cases-drupal-7; + rewrite ^/YilTZ$ https://drupalcamp.london/tickets/training; + rewrite ^/about$ /; + rewrite ^/about/speaker-information$ /speaker-information; + rewrite ^/acquia-certifications$ https://certification.acquia.com/registry?fname=Oliver&lname=Davies&city=&state=&country=United+Kingdom&org=&exam=All; + rewrite ^/acquia-certified$ https://certification.acquia.com/?fname=Oliver&lname=Davies; + rewrite ^/ansible$ https://galaxy.ansible.com/opdavies; + rewrite ^/ansible-molecule$ /articles/test-driven-ansible-role-development-molecule; + rewrite ^/ansistrano-code$ https://github.com/opdavies/dransible; + rewrite ^/ansistrano-demo$ https://www.youtube.com/watch?v=PLS4ET7FAcU; + rewrite ^/ansistrano-slides$ /talks/deploying-php-ansible-ansistrano; + rewrite ^/articles/10-useful-drupal-6-modules$ /blog/10-useful-drupal-6-modules; + rewrite ^/articles/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery$ /blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery; + rewrite ^/articles/2010/04/28/using-imagecache-and-imagecrop-my-portfolio$ /blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio; + rewrite ^/articles/2010/05/06/conditional-email-addresses-webform$ /blog/2010/05/06/conditional-email-addresses-webform; + rewrite ^/articles/2010/05/10/quickly-create-zen-subthemes-using-zenophile$ /blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile; + rewrite ^/articles/2010/05/25/create-slideshow-multiple-images-using-fancy-slide$ /blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide; + rewrite ^/articles/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module$ /blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module; + rewrite ^/articles/2010/06/02/improve-jpg-quality-imagecache-and-imageapi$ /blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi; + rewrite ^/articles/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue$ /blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue; + rewrite ^/articles/2010/06/25/10-useful-drupal-6-modules$ /blog/2010/06/25/10-useful-drupal-6-modules; + rewrite ^/articles/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views$ /blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views; + rewrite ^/articles/2010/07/01/change-content-type-multiple-nodes-using-sql$ /blog/2010/07/01/change-content-type-multiple-nodes-using-sql; + rewrite ^/articles/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx$ /blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx; + rewrite ^/articles/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql$ /blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql; + rewrite ^/articles/2010/07/12/review-teleport-module$ /blog/2010/07/12/review-teleport-module; + rewrite ^/articles/2010/07/create-virtual-hosts-mac-os-x-using-virtualhostx$ /blog/create-virtual-hosts-mac-os-x-using-virtualhostx; + rewrite ^/articles/2010/08/10/review-adminhover-module$ /blog/2010/08/10/review-adminhover-module; + rewrite ^/articles/2010/08/11/create-better-photo-gallery-drupal-part-1$ /blog/2010/08/11/create-better-photo-gallery-drupal-part-1; + rewrite ^/articles/2010/08/17/create-better-photo-gallery-drupal-part-2$ /blog/2010/08/17/create-better-photo-gallery-drupal-part-2; + rewrite ^/articles/2010/08/20/review-image-caption-module$ /blog/2010/08/20/review-image-caption-module; + rewrite ^/articles/2010/09/26/south-wales-drupal-user-group$ /blog/2010/09/26/south-wales-drupal-user-group; + rewrite ^/articles/2010/10/10/create-and-apply-patches$ /blog/2010/10/10/create-and-apply-patches; + rewrite ^/articles/2010/10/13/create-better-photo-gallery-drupal-part-3$ /blog/2010/10/13/create-better-photo-gallery-drupal-part-3; + rewrite ^/articles/2010/10/22/create-better-photo-gallery-drupal-part-21$ /blog/2010/10/22/create-better-photo-gallery-drupal-part-21; + rewrite ^/articles/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate$ /blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate; + rewrite ^/articles/2011/02/14/easily-embed-typekit-fonts-your-drupal-website$ /blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website; + rewrite ^/articles/2011/03/15/display-number-facebook-fans-php$ /blog/2011/03/15/display-number-facebook-fans-php; + rewrite ^/articles/2011/03/31/proctor-stevenson$ /blog/2011/03/31/proctor-stevenson; + rewrite ^/articles/2011/05/20/proctors-hosting-next-drupal-meetup$ /blog/2011/05/20/proctors-hosting-next-drupal-meetup; + rewrite ^/articles/2011/05/23/imagefield-import-archive$ /blog/2011/05/23/imagefield-import-archive; + rewrite ^/articles/2011/08/28/create-multigroups-drupal-7-using-field-collections$ /blog/2011/08/28/create-multigroups-drupal-7-using-field-collections; + rewrite ^/articles/2011/10/19/install-and-configure-subversion-svn-server-ubuntu$ /blog/2011/10/19/install-and-configure-subversion-svn-server-ubuntu; + rewrite ^/articles/2012/01/04/site-upgraded-drupal-7$ /blog/2012/01/04/site-upgraded-drupal-7; + rewrite ^/articles/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection$ /blog/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection; + rewrite ^/articles/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush$ /blog/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush; + rewrite ^/articles/2012/04/17/installing-nagios-centos$ /blog/2012/04/17/installing-nagios-centos; + rewrite ^/articles/2012/04/19/adding-custom-theme-templates-drupal-7$ /blog/2012/04/19/adding-custom-theme-templates-drupal-7; + rewrite ^/articles/2012/05/23/add-date-popup-calendar-custom-form$ /blog/2012/05/23/add-date-popup-calendar-custom-form; + rewrite ^/articles/2012/05/23/checkout-specific-revision-svn-command-line$ /blog/2012/05/23/checkout-specific-revision-svn-command-line; + rewrite ^/articles/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess$ /blog/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess; + rewrite ^/articles/2012/05/23/prevent-apache-displaying-text-files-within-web-browser$ /blog/2012/05/23/prevent-apache-displaying-text-files-within-web-browser; + rewrite ^/articles/2012/05/23/writing-info-file-drupal-7-theme$ /blog/2012/05/23/writing-info-file-drupal-7-theme; + rewrite ^/articles/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files$ /blog/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files; + rewrite ^/articles/2012/07/12/my-new-drupal-modules$ /blog/2012/07/12/my-new-drupal-modules; + rewrite ^/articles/2012/07/14/install-nomensa-media-player-drupal$ /blog/2012/07/14/install-nomensa-media-player-drupal; + rewrite ^/articles/2012/07/27/writing-article-linux-journal$ /blog/2012/07/27/writing-article-linux-journal; + rewrite ^/articles/2012/08/18/display-custom-menu-drupal-7-theme-template-file$ /blog/2012/08/18/display-custom-menu-drupal-7-theme-template-file; + rewrite ^/articles/2012/09/06/reflections-speaking-unifieddiff$ /blog/2012/09/06/reflections-speaking-unifieddiff; + rewrite ^/articles/2012/10/25/my-sublime-text-2-settings$ /blog/2012/10/25/my-sublime-text-2-settings; + rewrite ^/articles/2012/11/15/accessible-bristol-site-launched$ /blog/2012/11/15/accessible-bristol-site-launched; + rewrite ^/articles/2012/11/17/open-sublime-text-2-mac-os-x-command-line$ /blog/2012/11/17/open-sublime-text-2-mac-os-x-command-line; + rewrite ^/articles/2012/12/06/use-sass-and-compass-drupal-7-using-sassy$ /blog/2012/12/06/use-sass-and-compass-drupal-7-using-sassy; + rewrite ^/articles/2013/01/09/checking-if-user-logged-drupal-right-way$ /blog/2013/01/09/checking-if-user-logged-drupal-right-way; + rewrite ^/articles/2013/02/16/creating-and-using-custom-tokens-drupal-7$ /blog/2013/02/16/creating-and-using-custom-tokens-drupal-7; + rewrite ^/articles/2013/03/02/quickest-way-install-sublime-text-2-ubuntu$ /blog/2013/03/02/quickest-way-install-sublime-text-2-ubuntu; + rewrite ^/articles/2013/04/20/leaving-nomensa-joining-precedent$ /blog/2013/04/20/leaving-nomensa-joining-precedent; + rewrite ^/articles/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt$ /blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt; + rewrite ^/articles/2013/06/13/some-useful-links-using-simpletest-drupal$ /blog/2013/06/13/some-useful-links-using-simpletest-drupal; + rewrite ^/articles/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled$ /blog/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled; + rewrite ^/articles/2013/07/26/going-drupalcon$ /blog/2013/07/26/going-drupalcon; + rewrite ^/articles/2013/09/06/create-a-zen-sub-theme-using-drush$ /blog/2013/09/06/create-a-zen-sub-theme-using-drush; + rewrite ^/articles/2013/11/19/dont-bootstrap-drupal-use-drush$ /blog/2013/11/19/dont-bootstrap-drupal-use-drush; + rewrite ^/articles/2013/11/27/useful-vagrant-commands$ /blog/2013/11/27/useful-vagrant-commands; + rewrite ^/articles/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget$ /blog/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget; + rewrite ^/articles/2013/12/31/download-different-versions-drupal-drush$ /blog/2013/12/31/download-different-versions-drupal-drush; + rewrite ^/articles/2013/12/quickly-apply-patches-using-git-and-curl-or-wget$ /blog/quickly-apply-patches-using-git-curl-or-wget; + rewrite ^/articles/2014/01/15/some-useful-git-aliases$ /blog/2014/01/15/some-useful-git-aliases; + rewrite ^/articles/2014/02/09/drupalcamp-london-2014$ /blog/2014/02/09/drupalcamp-london-2014; + rewrite ^/articles/2014/03/03/what-git-flow$ /blog/2014/03/03/what-git-flow; + rewrite ^/articles/2014/05/03/drupal-association$ /blog/2014/05/03/drupal-association; + rewrite ^/articles/2014/05/06/thanks$ /blog/2014/05/06/thanks; + rewrite ^/articles/2014/05/21/git-format-patch$ /blog/2014/05/21/git-format-patch; + rewrite ^/articles/2014/07/02/drush-make-drupalbristol$ /blog/2014/07/02/drush-make-drupalbristol; + rewrite ^/articles/2014/10/06/fix-vagrant-loading-wrong-virtual-machine$ /blog/2014/10/06/fix-vagrant-loading-wrong-virtual-machine; + rewrite ^/articles/2014/10/21/updating-features-and-adding-components-using-drush$ /blog/2014/10/21/updating-features-and-adding-components-using-drush; + rewrite ^/articles/2014/11/18/include-css-fonts-using-sass-each-loop$ /blog/2014/11/18/include-css-fonts-using-sass-each-loop; + rewrite ^/articles/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module$ /blog/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module; + rewrite ^/articles/2014/11/27/pantheon-settings-files$ /blog/2014/11/27/pantheon-settings-files; + rewrite ^/articles/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides$ /blog/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides; + rewrite ^/articles/2015/04/03/how-to-define-a-minimum-drupal-core-version$ /blog/2015/04/03/how-to-define-a-minimum-drupal-core-version; + rewrite ^/articles/2015/06/18/updating-forked-repositories-on-github$ /blog/2015/06/18/updating-forked-repositories-on-github; + rewrite ^/articles/2015/07/19/sculpin-twig-resources$ /blog/2015/07/19/sculpin-twig-resources; + rewrite ^/articles/2015/07/21/automating-sculpin-jenkins$ /blog/2015/07/21/automating-sculpin-jenkins; + rewrite ^/articles/2015/12/22/programmatically-load-an-entityform-in-drupal-7$ /blog/2015/12/22/programmatically-load-an-entityform-in-drupal-7; + rewrite ^/articles/2016/02/15/announcing-the-drupal-vm-generator$ /blog/2016/02/15/announcing-the-drupal-vm-generator; + rewrite ^/articles/2016/05/03/simplifying-drupal-migrations-with-xautoload$ /blog/2016/05/03/simplifying-drupal-migrations-with-xautoload; + rewrite ^/articles/2016/07/15/building-gmail-filters-with-php$ /blog/2016/07/15/building-gmail-filters-with-php; + rewrite ^/articles/2016/12/30/drupal-vm-generator-291-released$ /blog/2016/12/30/drupal-vm-generator-291-released; + rewrite ^/articles/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts$ /blog/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts; + rewrite ^/articles/2017/01/31/nginx-redirects-with-query-string-arguments$ /blog/2017/01/31/nginx-redirects-with-query-string-arguments; + rewrite ^/articles/2017/05/05/fixing-drupal-simpletest-docker$ /blog/2017/05/05/fixing-drupal-simpletest-docker; + rewrite ^/articles/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers$ /blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers; + rewrite ^/articles/2017/05/20/turning-drupal-module-into-feature$ /blog/turning-your-custom-drupal-module-feature; + rewrite ^/articles/2017/06/09/introducing-the-drupal-meetups-twitterbot$ /blog/2017/06/09/introducing-the-drupal-meetups-twitterbot; + rewrite ^/articles/2017/11/07/tdd-test-driven-drupal$ /blog/2017/11/07/tdd-test-driven-drupal; + rewrite ^/articles/2017/11/07/writing-drupal-module-test-driven-development-tdd$ /blog/2017/11/07/writing-drupal-module-test-driven-development-tdd; + rewrite ^/articles/2018/01/30/drupalcamp-bristol-2018$ /blog/2018/01/30/drupalcamp-bristol-2018; + rewrite ^/articles/2018/02/05/using-tailwind-css-in-your-drupal-theme$ /blog/2018/02/05/using-tailwind-css-in-your-drupal-theme; + rewrite ^/articles/2018/02/27/looking-forward-to-drupalcamp-london$ /blog/2018/02/27/looking-forward-to-drupalcamp-london; + rewrite ^/articles/2018/02/27/queuing-private-messages-in-drupal-8$ /blog/2018/02/27/queuing-private-messages-in-drupal-8; + rewrite ^/articles/2018/02/28/building-the-new-phpsw-website$ /blog/2018/02/28/building-the-new-phpsw-website; + rewrite ^/articles/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back$ /blog/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back; + rewrite ^/articles/2018/03/04/tweets-from-drupalcamp-london$ /blog/2018/03/04/tweets-from-drupalcamp-london; + rewrite ^/articles/2018/05/06/creating-a-custom-phpunit-command-for-docksal$ /blog/2018/05/06/creating-a-custom-phpunit-command-for-docksal; + rewrite ^/articles/accessible-bristol-site-launched$ /blog/accessible-bristol-site-launched; + rewrite ^/articles/add-date-popup-calendar-custom-form$ /blog/add-date-popup-calendar-custom-form; + rewrite ^/articles/add-taxonomy-term-multiple-nodes-using-sql$ /blog/add-taxonomy-term-multiple-nodes-using-sql; + rewrite ^/articles/adding-custom-theme-templates-drupal-7$ /blog/adding-custom-theme-templates-drupal-7; + rewrite ^/articles/announcing-the-drupal-vm-generator$ /blog/announcing-the-drupal-vm-generator; + rewrite ^/articles/automating-sculpin-jenkins$ /blog/automating-sculpin-jenkins; + rewrite ^/articles/building-gmail-filters-with-php$ /blog/building-gmail-filters-with-php; + rewrite ^/articles/building-the-new-phpsw-website$ /blog/building-the-new-phpsw-website; + rewrite ^/articles/change-content-type-multiple-nodes-using-sql$ /blog/change-content-type-multiple-nodes-using-sql; + rewrite ^/articles/checking-if-user-logged-drupal-right-way$ /blog/checking-if-user-logged-drupal-right-way; + rewrite ^/articles/checkout-specific-revision-svn-command-line$ /blog/checkout-specific-revision-svn-command-line; + rewrite ^/articles/conditional-email-addresses-webform$ /blog/conditional-email-addresses-webform; + rewrite ^/articles/create-a-zen-sub-theme-using-drush$ /blog/create-a-zen-sub-theme-using-drush; + rewrite ^/articles/create-and-apply-patches$ /blog/create-and-apply-patches; + rewrite ^/articles/create-better-photo-gallery-drupal-part-1$ /blog/create-better-photo-gallery-drupal-part-1; + rewrite ^/articles/create-better-photo-gallery-drupal-part-2$ /blog/create-better-photo-gallery-drupal-part-2; + rewrite ^/articles/create-better-photo-gallery-drupal-part-21$ /blog/create-better-photo-gallery-drupal-part-21; + rewrite ^/articles/create-better-photo-gallery-drupal-part-3$ /blog/create-better-photo-gallery-drupal-part-3; + rewrite ^/articles/create-block-social-media-icons-using-cck-views-and-nodequeue$ /blog/create-block-social-media-icons-using-cck-views-and-nodequeue; + rewrite ^/articles/create-flickr-photo-gallery-using-feeds-cck-and-views$ /blog/create-flickr-photo-gallery-using-feeds-cck-and-views; + rewrite ^/articles/create-multigroups-drupal-7-using-field-collections$ /blog/create-multigroups-drupal-7-using-field-collections; + rewrite ^/articles/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush$ /blog/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush; + rewrite ^/articles/create-slideshow-multiple-images-using-fancy-slide$ /blog/create-slideshow-multiple-images-using-fancy-slide; + rewrite ^/articles/create-virtual-hosts-mac-os-x-using-virtualhostx$ /blog/create-virtual-hosts-mac-os-x-using-virtualhostx; + rewrite ^/articles/creating-a-custom-phpunit-command-for-docksal$ /blog/creating-a-custom-phpunit-command-for-docksal; + rewrite ^/articles/creating-and-using-custom-tokens-drupal-7$ /blog/creating-and-using-custom-tokens-drupal-7; + rewrite ^/articles/creating-local-and-staging-sites-drupals-domain-module-enabled$ /blog/creating-local-and-staging-sites-drupals-domain-module-enabled; + rewrite ^/articles/display-custom-menu-drupal-7-theme-template-file$ /blog/display-custom-menu-drupal-7-theme-template-file; + rewrite ^/articles/display-git-branch-or-tag-names-your-bash-prompt$ /blog/display-git-branch-or-tag-names-your-bash-prompt; + rewrite ^/articles/display-number-facebook-fans-php$ /blog/display-number-facebook-fans-php; + rewrite ^/articles/dividing-drupals-process-and-preprocess-functions-separate-files$ /blog/dividing-drupals-process-and-preprocess-functions-separate-files; + rewrite ^/articles/dont-bootstrap-drupal-use-drush$ /blog/dont-bootstrap-drupal-use-drush; + rewrite ^/articles/download-different-versions-drupal-drush$ /blog/download-different-versions-drupal-drush; + rewrite ^/articles/drupal-association$ /blog/drupal-association; + rewrite ^/articles/drupal-vm-generator-291-released$ /blog/drupal-vm-generator-291-released; + rewrite ^/articles/drupalcamp-bristol-2018$ /blog/drupalcamp-bristol-2018; + rewrite ^/articles/drupalcamp-london-2014$ /blog/drupalcamp-london-2014; + rewrite ^/articles/drush-make-drupalbristol$ /blog/drush-make-drupalbristol; + rewrite ^/articles/easier-sculpin-commands-with-composer-and-npm-scripts$ /blog/easier-sculpin-commands-with-composer-and-npm-scripts; + rewrite ^/articles/easily-embed-typekit-fonts-your-drupal-website$ /blog/easily-embed-typekit-fonts-your-drupal-website; + rewrite ^/articles/fix-vagrant-loading-wrong-virtual-machine$ /blog/fix-vagrant-loading-wrong-virtual-machine; + rewrite ^/articles/fixing-drupal-simpletest-issues-inside-docker-containers$ /blog/fixing-drupal-simpletest-issues-inside-docker-containers; + rewrite ^/articles/forward-one-domain-another-using-mod-rewrite-and-htaccess$ /blog/forward-one-domain-another-using-mod-rewrite-and-htaccess; + rewrite ^/articles/git-format-patch$ /blog/git-format-patch; + rewrite ^/articles/going-drupalcon$ /blog/going-drupalcon; + rewrite ^/articles/how-to-define-a-minimum-drupal-core-version$ /blog/how-to-define-a-minimum-drupal-core-version; + rewrite ^/articles/imagefield-import-archive$ /blog/imagefield-import-archive; + rewrite ^/articles/improve-jpg-quality-imagecache-and-imageapi$ /blog/improve-jpg-quality-imagecache-and-imageapi; + rewrite ^/articles/include-css-fonts-using-sass-each-loop$ /blog/include-css-fonts-using-sass-each-loop; + rewrite ^/articles/include-local-drupal-settings-file-environment-configuration-and-overrides$ /blog/include-local-drupal-settings-file-environment-configuration-and-overrides; + rewrite ^/articles/install-and-configure-subversion-svn-server-ubuntu$ /blog/install-and-configure-subversion-svn-server-ubuntu; + rewrite ^/articles/install-nomensa-media-player-drupal$ /blog/install-nomensa-media-player-drupal; + rewrite ^/articles/installing-nagios-centos$ /blog/installing-nagios-centos; + rewrite ^/articles/introducing-the-drupal-meetups-twitterbot$ /blog/introducing-the-drupal-meetups-twitterbot; + rewrite ^/articles/leaving-nomensa-joining-precedent$ /blog/leaving-nomensa-joining-precedent; + rewrite ^/articles/looking-forward-to-drupalcamp-london$ /blog/looking-forward-to-drupalcamp-london; + rewrite ^/articles/my-new-drupal-modules$ /blog/my-new-drupal-modules; + rewrite ^/articles/my-sublime-text-2-settings$ /blog/my-sublime-text-2-settings; + rewrite ^/articles/nginx-redirects-with-query-string-arguments$ /blog/nginx-redirects-with-query-string-arguments; + rewrite ^/articles/open-sublime-text-2-mac-os-x-command-line$ /blog/open-sublime-text-2-mac-os-x-command-line; + rewrite ^/articles/pantheon-settings-files$ /blog/pantheon-settings-files; + rewrite ^/articles/prevent-apache-displaying-text-files-within-web-browser$ /blog/prevent-apache-displaying-text-files-within-web-browser; + rewrite ^/articles/proctor-stevenson$ /blog/proctor-stevenson; + rewrite ^/articles/proctors-hosting-next-drupal-meetup$ /blog/proctors-hosting-next-drupal-meetup; + rewrite ^/articles/programmatically-load-an-entityform-in-drupal-7$ /blog/programmatically-load-an-entityform-in-drupal-7; + rewrite ^/articles/queuing-private-messages-in-drupal-8$ /blog/queuing-private-messages-in-drupal-8; + rewrite ^/articles/quickest-way-install-sublime-text-2-ubuntu$ /blog/quickest-way-install-sublime-text-2-ubuntu; + rewrite ^/articles/quickly-apply-patches-using-git-and-curl-or-wget$ /blog/quickly-apply-patches-using-git-and-curl-or-wget; + rewrite ^/articles/quickly-create-zen-subthemes-using-zenophile$ /blog/quickly-create-zen-subthemes-using-zenophile; + rewrite ^/articles/quickly-import-multiples-images-using-imagefieldimport-module$ /blog/quickly-import-multiples-images-using-imagefieldimport-module; + rewrite ^/articles/reflections-speaking-unifieddiff$ /blog/reflections-speaking-unifieddiff; + rewrite ^/articles/review-adminhover-module$ /blog/review-adminhover-module; + rewrite ^/articles/review-image-caption-module$ /blog/review-image-caption-module; + rewrite ^/articles/review-teleport-module$ /blog/review-teleport-module; + rewrite ^/articles/sculpin-twig-resources$ /blog/sculpin-twig-resources; + rewrite ^/articles/simplifying-drupal-migrations-with-xautoload$ /blog/simplifying-drupal-migrations-with-xautoload; + rewrite ^/articles/site-upgraded-drupal-7$ /blog/site-upgraded-drupal-7; + rewrite ^/articles/some-useful-git-aliases$ /blog/some-useful-git-aliases; + rewrite ^/articles/some-useful-links-using-simpletest-drupal$ /blog/some-useful-links-using-simpletest-drupal; + rewrite ^/articles/south-wales-drupal-user-group$ /blog/south-wales-drupal-user-group; + rewrite ^/articles/style-drupal-6s-taxonomy-lists-php-css-and-jquery$ /blog/style-drupal-6s-taxonomy-lists-php-css-and-jquery; + rewrite ^/articles/tdd-test-driven-drupal$ /blog/tdd-test-driven-drupal; + rewrite ^/articles/thanks$ /blog/thanks; + rewrite ^/articles/tweets-from-drupalcamp-london$ /blog/tweets-from-drupalcamp-london; + rewrite ^/articles/updating-features-and-adding-components-using-drush$ /blog/updating-features-and-adding-components-using-drush; + rewrite ^/articles/updating-forked-repositories-on-github$ /blog/updating-forked-repositories-on-github; + rewrite ^/articles/use-authorized-keys-create-passwordless-ssh-connection$ /blog/use-authorized-keys-create-passwordless-ssh-connection; + rewrite ^/articles/use-regular-expressions-search-and-replace-coda-or-textmate$ /blog/use-regular-expressions-search-and-replace-coda-or-textmate; + rewrite ^/articles/use-sass-and-compass-drupal-7-using-sassy$ /blog/use-sass-and-compass-drupal-7-using-sassy; + rewrite ^/articles/useful-vagrant-commands$ /blog/useful-vagrant-commands; + rewrite ^/articles/using-imagecache-and-imagecrop-my-portfolio$ /blog/using-imagecache-and-imagecrop-my-portfolio; + rewrite ^/articles/using-remote-files-when-developing-locally-with-stage-file-proxy-module$ /blog/using-remote-files-when-developing-locally-stage-file-proxy-module; + rewrite ^/articles/using-remote-files-when-developing-locally-with-stage-file-proxy-module$ /blog/using-remote-files-when-developing-locally-with-stage-file-proxy-module; + rewrite ^/articles/using-tailwind-css-in-your-drupal-theme$ /blog/using-tailwind-css-in-your-drupal-theme; + rewrite ^/articles/what-git-flow$ /blog/what-git-flow; + rewrite ^/articles/writing-article-linux-journal$ /blog/writing-article-linux-journal; + rewrite ^/articles/writing-info-file-drupal-7-theme$ /blog/writing-info-file-drupal-7-theme; + rewrite ^/articles/yay-the-mediacurrent-contrib-half-hour-is-back$ /blog/yay-mediacurrent-contrib-half-hour-back; + rewrite ^/articles/yay-the-mediacurrent-contrib-half-hour-is-back$ /blog/yay-the-mediacurrent-contrib-half-hour-is-back; + rewrite ^/atNOQ$ https://youtu.be/r41dkD2EOo8; + rewrite ^/automatically-updating-talk-created-date$ https://gist.github.com/opdavies/4e75e1753d8603113f07f8264bb783d6; + rewrite ^/blog.xml$ /feed; + rewrite ^/blog/10-useful-drupal-6-modules$ /blog/useful-drupal-6-modules; + rewrite ^/blog/10-years-working-full-time-drupal$ /blog/10-years-working-full-time-drupal-php; + rewrite ^/blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery$ /blog/style-drupal-6s-taxonomy-lists-php-css-and-jquery; + rewrite ^/blog/2010/04/05/styling-drupal-6s-taxonomy-lists-with-php-css-and-jquery$ /blog/style-drupal-6s-taxonomy-lists-php-css-jquery; + rewrite ^/blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio$ /blog/using-imagecache-and-imagecrop-my-portfolio; + rewrite ^/blog/2010/05/06/conditional-email-addresses-webform$ /blog/conditional-email-addresses-webform; + rewrite ^/blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile$ /blog/quickly-create-zen-subthemes-using-zenophile; + rewrite ^/blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide$ /blog/create-slideshow-multiple-images-using-fancy-slide; + rewrite ^/blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module$ /blog/quickly-import-multiples-images-using-imagefieldimport-module; + rewrite ^/blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi$ /blog/improve-jpg-quality-imagecache-and-imageapi; + rewrite ^/blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue$ /blog/create-block-social-media-icons-using-cck-views-and-nodequeue; + rewrite ^/blog/2010/06/25/10-useful-drupal-6-modules$ /blog/10-useful-drupal-6-modules; + rewrite ^/blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views$ /blog/create-flickr-photo-gallery-using-feeds-cck-and-views; + rewrite ^/blog/2010/07/01/change-content-type-multiple-nodes-using-sql$ /blog/change-content-type-multiple-nodes-using-sql; + rewrite ^/blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx$ /blog/create-virtual-hosts-mac-os-x-using-virtualhostx; + rewrite ^/blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql$ /blog/add-taxonomy-term-multiple-nodes-using-sql; + rewrite ^/blog/2010/07/07/quickly-adding-taxonomy-term-multiple-nodes-using-sql$ /blog/add-taxonomy-term-multiple-nodes-using-sql; + rewrite ^/blog/2010/07/12/overview-teleport-module$ /blog/review-teleport-module; + rewrite ^/blog/2010/07/12/review-teleport-module$ /blog/review-teleport-module; + rewrite ^/blog/2010/08/10/review-adminhover-module$ /blog/review-adminhover-module; + rewrite ^/blog/2010/08/11/create-better-photo-gallery-drupal-part-1$ /blog/create-better-photo-gallery-drupal-part-1; + rewrite ^/blog/2010/08/11/how-create-better-photo-gallery-drupal-part-1$ /blog/create-better-photo-gallery-drupal-part-1; + rewrite ^/blog/2010/08/17/create-better-photo-gallery-drupal-part-2$ /blog/create-better-photo-gallery-drupal-part-2; + rewrite ^/blog/2010/08/20/review-image-caption-module$ /blog/review-image-caption-module; + rewrite ^/blog/2010/09/26/south-wales-drupal-user-group$ /blog/south-wales-drupal-user-group; + rewrite ^/blog/2010/10/10/create-and-apply-patches$ /blog/create-and-apply-patches; + rewrite ^/blog/2010/10/13/create-better-photo-gallery-drupal-part-3$ /blog/create-better-photo-gallery-drupal-part-3; + rewrite ^/blog/2010/10/22/create-better-photo-gallery-drupal-part-21$ /blog/create-better-photo-gallery-drupal-part-21; + rewrite ^/blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate$ /blog/use-regular-expressions-search-and-replace-coda-or-textmate; + rewrite ^/blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website$ /blog/easily-embed-typekit-fonts-your-drupal-website; + rewrite ^/blog/2011/03/15/display-number-facebook-fans-php$ /blog/display-number-facebook-fans-php; + rewrite ^/blog/2011/03/31/proctor-stevenson$ /blog/proctor-stevenson; + rewrite ^/blog/2011/05/20/proctors-hosting-next-drupal-meetup$ /blog/proctors-hosting-next-drupal-meetup; + rewrite ^/blog/2011/05/23/imagefield-import-archive$ /blog/imagefield-import-archive; + rewrite ^/blog/2011/08/28/create-multigroups-drupal-7-using-field-collections$ /blog/create-multigroups-drupal-7-using-field-collections; + rewrite ^/blog/2011/10/19/install-and-configure-subversion-svn-server-ubuntu$ /blog/install-and-configure-subversion-svn-server-ubuntu; + rewrite ^/blog/2012/01/04/site-upgraded-drupal-7$ /blog/site-upgraded-drupal-7; + rewrite ^/blog/2012/02/01/use-authorize-keys-create-passwordless-ssh-connection$ /blog/use-authorized-keys-create-passwordless-ssh-connection; + rewrite ^/blog/2012/04/16/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush$ /blog/create-omega-subtheme-less-css-preprocessor-using-omega-tools-and-drush; + rewrite ^/blog/2012/04/17/installing-nagios-centos$ /blog/installing-nagios-centos; + rewrite ^/blog/2012/04/19/adding-custom-theme-templates-drupal-7$ /blog/adding-custom-theme-templates-drupal-7; + rewrite ^/blog/2012/05/23/add-date-popup-calendar-custom-form$ /blog/add-date-popup-calendar-custom-form; + rewrite ^/blog/2012/05/23/checkout-specific-revision-svn-command-line$ /blog/checkout-specific-revision-svn-command-line; + rewrite ^/blog/2012/05/23/forward-one-domain-another-using-mod-rewrite-and-htaccess$ /blog/forward-one-domain-another-using-mod-rewrite-and-htaccess; + rewrite ^/blog/2012/05/23/forward-one-domain-another-using-modrewrite-and-htaccess$ /blog/forward-one-domain-another-using-modrewrite-htaccess; + rewrite ^/blog/2012/05/23/prevent-apache-displaying-text-files-within-web-browser$ /blog/prevent-apache-displaying-text-files-within-web-browser; + rewrite ^/blog/2012/05/23/writing-info-file-drupal-7-theme$ /blog/writing-info-file-drupal-7-theme; + rewrite ^/blog/2012/05/24/dividing-drupals-process-and-preprocess-functions-separate-files$ /blog/dividing-drupals-process-and-preprocess-functions-separate-files; + rewrite ^/blog/2012/05/forward-one-domain-another-using-modrewrite-and-htaccess$ /blog/forward-one-domain-another-using-modrewrite-htaccess; + rewrite ^/blog/2012/07/12/my-new-drupal-modules$ /blog/my-new-drupal-modules; + rewrite ^/blog/2012/07/14/install-nomensa-media-player-drupal$ /blog/install-nomensa-media-player-drupal; + rewrite ^/blog/2012/07/27/writing-article-linux-journal$ /blog/writing-article-linux-journal; + rewrite ^/blog/2012/07/install-and-configure-nomensa-accessible-media-player-drupal$ /blog/install-configure-nomensa-accessible-media-player-drupal; + rewrite ^/blog/2012/07/nomensa-accessible-media-player-drupal$ /blog/install-configure-nomensa-accessible-media-player-drupal; + rewrite ^/blog/2012/08/18/display-custom-menu-drupal-7-theme-template-file$ /blog/display-custom-menu-drupal-7-theme-template-file; + rewrite ^/blog/2012/09/06/reflections-speaking-unifieddiff$ /blog/reflections-speaking-unifieddiff; + rewrite ^/blog/2012/10/25/my-sublime-text-2-settings$ /blog/my-sublime-text-2-settings; + rewrite ^/blog/2012/11/15/accessible-bristol-site-launched$ /blog/accessible-bristol-site-launched; + rewrite ^/blog/2012/11/17/open-sublime-text-2-mac-os-x-command-line$ /blog/open-sublime-text-2-mac-os-x-command-line; + rewrite ^/blog/2012/12/06/use-sass-and-compass-drupal-7-using-sassy$ /blog/use-sass-and-compass-drupal-7-using-sassy; + rewrite ^/blog/2013/01/09/checking-if-user-logged-drupal-right-way$ /blog/checking-if-user-logged-drupal-right-way; + rewrite ^/blog/2013/02/16/creating-and-using-custom-tokens-drupal-7$ /blog/creating-and-using-custom-tokens-drupal-7; + rewrite ^/blog/2013/03/02/quickest-way-install-sublime-text-2-ubuntu$ /blog/quickest-way-install-sublime-text-2-ubuntu; + rewrite ^/blog/2013/04/20/leaving-nomensa-joining-precedent$ /blog/leaving-nomensa-joining-precedent; + rewrite ^/blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt$ /blog/display-git-branch-or-tag-names-your-bash-prompt; + rewrite ^/blog/2013/06/13/some-useful-links-using-simpletest-drupal$ /blog/some-useful-links-using-simpletest-drupal; + rewrite ^/blog/2013/07/17/creating-local-and-staging-sites-drupals-domain-module-enabled$ /blog/creating-local-and-staging-sites-drupals-domain-module-enabled; + rewrite ^/blog/2013/07/26/going-drupalcon$ /blog/going-drupalcon; + rewrite ^/blog/2013/09/06/create-a-zen-sub-theme-using-drush$ /blog/create-a-zen-sub-theme-using-drush; + rewrite ^/blog/2013/09/create-zen-sub-theme-using-drush$ /blog/create-zen-sub-theme-using-drush; + rewrite ^/blog/2013/11/19/dont-bootstrap-drupal-use-drush$ /blog/dont-bootstrap-drupal-use-drush; + rewrite ^/blog/2013/11/27/useful-vagrant-commands$ /blog/useful-vagrant-commands; + rewrite ^/blog/2013/12/24/quickly-apply-patches-using-git-and-curl-or-wget$ /blog/quickly-apply-patches-using-git-and-curl-or-wget; + rewrite ^/blog/2013/12/31/download-different-versions-drupal-drush$ /blog/download-different-versions-drupal-drush; + rewrite ^/blog/2014/01/15/some-useful-git-aliases$ /blog/some-useful-git-aliases; + rewrite ^/blog/2014/02/09/drupalcamp-london-2014$ /blog/drupalcamp-london-2014; + rewrite ^/blog/2014/03/03/what-git-flow$ /blog/what-git-flow; + rewrite ^/blog/2014/05/03/drupal-association$ /blog/drupal-association; + rewrite ^/blog/2014/05/06/thanks$ /blog/thanks; + rewrite ^/blog/2014/05/21/git-format-patch$ /blog/git-format-patch; + rewrite ^/blog/2014/07/02/drush-make-drupalbristol$ /blog/drush-make-drupalbristol; + rewrite ^/blog/2014/10/06/fix-vagrant-loading-wrong-virtual-machine$ /blog/fix-vagrant-loading-wrong-virtual-machine; + rewrite ^/blog/2014/10/21/updating-features-and-adding-components-using-drush$ /blog/updating-features-and-adding-components-using-drush; + rewrite ^/blog/2014/11/18/include-css-fonts-using-sass-each-loop$ /blog/include-css-fonts-using-sass-each-loop; + rewrite ^/blog/2014/11/20/using-remote-files-when-developing-locally-with-stage-file-proxy-module$ /blog/using-remote-files-when-developing-locally-with-stage-file-proxy-module; + rewrite ^/blog/2014/11/27/pantheon-settings-files$ /blog/pantheon-settings-files; + rewrite ^/blog/2014/12/20/include-local-drupal-settings-file-environment-configuration-and-overrides$ /blog/include-local-drupal-settings-file-environment-configuration-and-overrides; + rewrite ^/blog/2015/04/03/how-to-define-a-minimum-drupal-core-version$ /blog/how-to-define-a-minimum-drupal-core-version; + rewrite ^/blog/2015/06/18/updating-forked-repositories-on-github$ /blog/updating-forked-repositories-on-github; + rewrite ^/blog/2015/07/19/sculpin-twig-resources$ /blog/sculpin-twig-resources; + rewrite ^/blog/2015/07/21/automating-sculpin-jenkins$ /blog/automating-sculpin-jenkins; + rewrite ^/blog/2015/12/22/programmatically-load-an-entityform-in-drupal-7$ /blog/programmatically-load-an-entityform-in-drupal-7; + rewrite ^/blog/2016/02/15/announcing-the-drupal-vm-generator$ /blog/announcing-the-drupal-vm-generator; + rewrite ^/blog/2016/05/03/simplifying-drupal-migrations-with-xautoload$ /blog/simplifying-drupal-migrations-with-xautoload; + rewrite ^/blog/2016/07/15/building-gmail-filters-with-php$ /blog/building-gmail-filters-with-php; + rewrite ^/blog/2016/12/30/drupal-vm-generator-291-released$ /blog/drupal-vm-generator-291-released; + rewrite ^/blog/2017/01/07/easier-sculpin-commands-with-composer-and-npm-scripts$ /blog/easier-sculpin-commands-with-composer-and-npm-scripts; + rewrite ^/blog/2017/01/31/nginx-redirects-with-query-string-arguments$ /blog/nginx-redirects-with-query-string-arguments; + rewrite ^/blog/2017/05/05/fixing-drupal-simpletest-docker$ /blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers; + rewrite ^/blog/2017/05/05/fixing-drupal-simpletest-issues-inside-docker-containers$ /blog/fixing-drupal-simpletest-issues-inside-docker-containers; + rewrite ^/blog/2017/05/20/turning-drupal-module-into-feature$ /blog/turning-your-custom-drupal-module-feature; + rewrite ^/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot$ /blog/introducing-the-drupal-meetups-twitterbot; + rewrite ^/blog/2017/07/13/publishing-sculpin-sites-with-github-pages$ /blog/publishing-sculpin-sites-github-pages; + rewrite ^/blog/2017/11/07/tdd-test-driven-drupal$ /blog/tdd-test-driven-drupal; + rewrite ^/blog/2017/11/07/writing-drupal-module-test-driven-development-tdd$ /blog/2017/11/07/tdd-test-driven-drupal; + rewrite ^/blog/2018/01/30/drupalcamp-bristol-2018$ /blog/drupalcamp-bristol-2018; + rewrite ^/blog/2018/02/05/using-tailwind-css-in-your-drupal-theme$ /blog/using-tailwind-css-in-your-drupal-theme; + rewrite ^/blog/2018/02/27/looking-forward-to-drupalcamp-london$ /blog/looking-forward-to-drupalcamp-london; + rewrite ^/blog/2018/02/27/queuing-private-messages-in-drupal-8$ /blog/queuing-private-messages-in-drupal-8; + rewrite ^/blog/2018/02/28/building-the-new-phpsw-website$ /blog/building-the-new-phpsw-website; + rewrite ^/blog/2018/03/02/yay-the-mediacurrent-contrib-half-hour-is-back$ /blog/yay-the-mediacurrent-contrib-half-hour-is-back; + rewrite ^/blog/2018/03/04/tweets-from-drupalcamp-london$ /blog/tweets-from-drupalcamp-london; + rewrite ^/blog/2018/04/23/back-to-the-future-git-diff-apply$ /blog/back-future-gits-diff-apply-commands; + rewrite ^/blog/2018/05/06/creating-a-custom-phpunit-command-for-docksal$ /blog/creating-a-custom-phpunit-command-for-docksal; + rewrite ^/blog/add-date-popup-calendar-custom-form$ /blog/how-add-date-popup-calendar-custom-form; + rewrite ^/blog/adding-methods-decorating-entity-metadata-wrapper$ /blog/decorating-entity-metadata-wrapper-add-refactor-methods; + rewrite ^/blog/announcing-drupal-vm-generator$ /blog/announcing-the-drupal-vm-generator; + rewrite ^/blog/announcing-the-drupal-vm-config-generator$ /blog/announcing-the-drupal-vm-generator; + rewrite ^/blog/back-to-the-future-git-diff-apply$ /blog/back-future-gits-diff-apply-commands; + rewrite ^/blog/building-gmail-filters-in-php$ /blog/building-gmail-filters-php; + rewrite ^/blog/building-new-phpsw-website$ /blog/building-the-new-phpsw-website; + rewrite ^/blog/building-presentation-slides-reveal-js-tailwind-css$ /blog/building-presentation-slides-rst2pdf; + rewrite ^/blog/building-speaker-leaderboard-php-south-wales-using-drupal-symfony$ /blog/building-speaker-leaderboard-php-south-wales-drupal-symfony; + rewrite ^/blog/create-and-apply-patches$ /blog/how-create-apply-patches; + rewrite ^/blog/create-flickr-photo-gallery-using-feeds-cck-and-views$ /blog/create-flickr-photo-gallery-using-feeds-cck-views; + rewrite ^/blog/creating-and-using-custom-tokens-drupal-7$ /blog/creating-using-custom-tokens-drupal-7; + rewrite ^/blog/creating-custom-docksal-commands$ /blog/creating-custom-phpunit-command-docksal; + rewrite ^/blog/debugging-drupal-commerce-promotions-illiminate-collections$ /blog/debugging-drupal-commerce-illuminate-collections; + rewrite ^/blog/decorating-entity-metadata-wrapper-add-add-refactor-methods$ /blog/decorating-entity-metadata-wrapper-add-refactor-methods; + rewrite ^/blog/dev-book-club-refactoring-chapter-1$ /blog/dev-book-club-notes-refactoring-chapter-1; + rewrite ^/blog/dividing-drupals-process-preprocess-functions-separate-files$ /blog/dividing-drupals-process-and-preprocess-functions-separate-files; + rewrite ^/blog/drupal-8-commerce-fixing-no-such-customer-error-checkout$ /blog/drupal-8-commerce-fixing-error-on-user-checkout; + rewrite ^/blog/drupal-8-commerce-fixing-no-such-customer-error-on-checkout$ /blog/drupal-8-commerce-fixing-no-such-customer-error-checkout; + rewrite ^/blog/drupal-vm-generator-291-released$ /blog/drupal-vm-generator-updates; + rewrite ^/blog/drupalcamp-london-2019-tickets$ /blog/drupalcamp-london-2019-tickets-available-call-sessions; + rewrite ^/blog/drush-make-drupalbristol$ /talks/drush-make-drupalbristol; + rewrite ^/blog/easier-git-repository-cloning-with-insteadof$ /blog/easier-git-repository-cloning-insteadof; + rewrite ^/blog/easier-sculpin-commands-with-composer-and-npm-scripts$ /blog/easier-sculpin-commands-composer-npm-scripts; + rewrite ^/blog/editing-meetup-videos-kdenlive$ /blog/editing-meetup-videos-linux-kdenlive; + rewrite ^/blog/examples-of-laravel-collections-in-drupal$ /blog/using-laravel-collections-drupal; + rewrite ^/blog/experimenting-with-events-in-drupal-8$ /blog/experimenting-events-drupal-8; + rewrite ^/blog/fix-vagrant-loading-wrong-virtual-machine$ /blog/how-fix-vagrant-loading-wrong-virtual-machine; + rewrite ^/blog/fixing-drupal-simpletest-docker$ /blog/fixing-drupal-simpletest-issues-inside-docker-containers; + rewrite ^/blog/forward-one-domain-another-using-modrewrite-and-htaccess$ /blog/forward-one-domain-another-using-modrewrite-htaccess; + rewrite ^/blog/git-format-patch$ /blog/git-format-patch-your-friend; + rewrite ^/blog/how-easily-embed-typekit-fonts-your-drupal-website$ /blog/easily-embed-typekit-fonts-your-drupal-website; + rewrite ^/blog/how-split-new-drupal-contrib-project-within-another-repository$ /blog/splitting-new-drupal-project-from-repo; + rewrite ^/blog/how-style-drupal-6s-taxonomy-lists-php-css-and-jquery$ /blog/style-drupal-6s-taxonomy-lists-php-css-jquery; + rewrite ^/blog/include-local-drupal-settings-file-environment-configuration-overrides /blog/include-local-drupal-settings-file-environment-configuration-and-overrides; + rewrite ^/blog/install-and-configure-subversion-svn-server-ubuntu$ /blog/how-install-configure-subversion-svn-server-ubuntu; + rewrite ^/blog/live-blogging-symfonylive-london$ /blog/live-blogging-symfonylive-london-2019; + rewrite ^/blog/minimum-core-version$ /blog/how-define-minimum-drupal-core-version; + rewrite ^/blog/nginx-redirects-with-query-string-arguments$ /blog/nginx-redirects-query-string-arguments; + rewrite ^/blog/null-users-and-system-users-in-drupal$ /blog/null-users-system-users-drupal; + rewrite ^/blog/overridding-phpcs-configuration-drupal-ci$ /blog/overriding-phpcs-configuration-drupal-ci; + rewrite ^/blog/pantheon-settings-files$ /blog/include-environment-specific-settings-files-pantheon; + rewrite ^/blog/pdfpc-pdf-presenter-console-notes$ /blog/presenting-pdf-slides-using-pdfpc-pdf-presenter-console; + rewrite ^/blog/php-apps-subdirectory-nginx$ /blog/how-put-your-php-application-subdirectory-another-site-nginx; + rewrite ^/blog/presenting-tailwind-css-ansible-cms-philly$ /blog/presenting-on-tailwind-css-and-ansible-at-cms-philly; + rewrite ^/blog/published-my-first-docker-images-docker-hub$ /blog/published-my-first-docker-images-docker-hub-adr-tools-sculpin-rst2pdf; + rewrite ^/blog/publishing-sculpin-sites-github-pages$ /blog/publishing-sculpin-sites-with-github-pages; + rewrite ^/blog/publishing-sculpin-sites-with-github-pages$ /blog/publishing-sculpin-sites-github-pages; + rewrite ^/blog/queuing-private-messages-in-drupal-8$ /blog/queuing-private-messages-drupal-8; + rewrite ^/blog/quick-project-switching-in-phpstorm$ /blog/quick-project-switching-phpstorm; + rewrite ^/blog/quickly-apply-patches-using-git-and-curl-or-wget$ /blog/quickly-apply-patches-using-git-curl-or-wget; + rewrite ^/blog/rebuilding-bartik-with-vuejs-tailwind-css$ /blog/rebuilding-bartik-drupals-default-theme-vuejs-tailwind-css; + rewrite ^/blog/rebuilding-bartik-with-vuejs-tailwind-css-part-2$ /blog/rebuilding-bartik-drupals-default-theme-vuejs-tailwind-css-part-2; + rewrite ^/blog/rebuilding-uis-tailwind-css$ /blog/uis-ive-rebuilt-tailwind-css; + rewrite ^/blog/restructuring-my-tailwindjs-config-files$ /blog/restructuring-my-tailwindjs-configuration-files; + rewrite ^/blog/retrieving-profile-data-user-using-entity-metadata-wrapper$ /blog/cleanly-retrieving-user-profile-data-using-entity-metadata-wrapper; + rewrite ^/blog/running-drupal-with-symfony-local-server$ /blog/running-drupal-88-symfony-local-server; + rewrite ^/blog/running-phpunit-tests-docksal-phpstorm$ /blog/how-run-drupal-8-phpunit-tests-within-docksal-phpstorm; + rewrite ^/blog/simplifying-drupal-migrations-with-xautoload$ /blog/simplifying-drupal-migrations-xautoload; + rewrite ^/blog/speaking-drupalcon-barcelona-2020$ /blog/speaking-drupalcon-europe-2020; + rewrite ^/blog/speaking-during-lockdown$ /blog/speaking-remotely-during-covid-19; + rewrite ^/blog/speaking-remotely-during-lockdown$ /blog/speaking-remotely-during-covid-19; + rewrite ^/blog/survey-results-my-drupalcon-europe-session$ /blog/survey-results-my-drupalcon-europe-session-test-driven-drupal; + rewrite ^/blog/system-users-null-users$ /blog/null-users-and-system-users-in-drupal; + rewrite ^/blog/test-driven-drupal-gitstore-leanpub$ /blog/test-driven-drupal-on-gitstore-leanpub; + rewrite ^/blog/test-driven-drupal-presentation-drupalcon-europe-0$ /blog/test-driven-drupal-presentation-drupalcon-europe; + rewrite ^/blog/test-driven-drupal-session-drupalcon-europe$ /blog/test-driven-drupal-presentation-drupalcon-europe; + rewrite ^/blog/test-driven-drupal-session-video-drupalcon-europe$ /blog/test-driven-drupal-presentation-drupalcon-europe; + rewrite ^/blog/testing-tailwind-css-plugins-with-jest$ /blog/testing-tailwind-css-plugins-jest; + rewrite ^/blog/tweets-from-drupalcamp-london$ /blog/tweets-drupalcamp-london; + rewrite ^/blog/updating-features-and-adding-components-using-drush$ /blog/updating-features-adding-components-using-drush; + rewrite ^/blog/updating-forked-repositories-github$ /blog/updating-forked-github-repos; + rewrite ^/blog/use-regular-expressions-search-and-replace-coda-or-textmate$ /blog/use-regular-expressions-search-replace-coda-or-textmate; + rewrite ^/blog/using-environment-variables-settings-docksal$ /blog/how-use-environment-variables-your-drupal-settings-docksal; + rewrite ^/blog/using-psr-4-autoloading-your-drupal-7-test-cases$ /blog/psr4-autoloading-test-cases-drupal-7; + rewrite ^/blog/using-tailwind-css-in-your-drupal-theme$ /blog/using-tailwind-css-your-drupal-theme; + rewrite ^/blog/using-the-pcss-extension-postcss-webpack-encore$ /blog/using-pcss-extension-postcss-webpack-encore; + rewrite ^/blog/weeknotes-june-5th$ /blog/weeknotes-2021-06-05; + rewrite ^/blog/writing-drupal-module-test-driven-development-tdd$ /blog/writing-new-drupal-8-module-using-test-driven-development-tdd; + rewrite ^/book$ /test-driven-drupal; + rewrite ^/calendar$ https://savvycal.com/opdavies/chat; + rewrite ^/cms-philly$ /articles/presenting-on-tailwind-css-and-ansible-at-cms-philly; + rewrite ^/code-enigma-interview$ https://blog.codeenigma.com/interview-with-a-drupal-expert-9fcd8e0fad28; + rewrite ^/contrib-half-hour$ https://www.youtube.com/playlist?list=PLu-MxhbnjI9rHroPvZO5LEUhr58Yl0j_F; + rewrite ^/contribution-day$ https://github.com/microserve-io/contribution-day/; + rewrite ^/cv$ https://cv.oliverdavies.uk; + rewrite ^/d0P5z$ /talks/drupal-8-php-libraries-drupalorg-api; + rewrite ^/dcbristol-cfp$ https://www.papercall.io/drupalcamp-bristol-2019; + rewrite ^/dcbristol17-videos$ https://www.youtube.com/playlist?list=PLOwPvExSyLLngtd6R4PUD9MCXa6QL_obA; + rewrite ^/dcbristol19-announced$ /articles/drupalcamp-bristol-2019-speakers-sessions-announced; + rewrite ^/dclondon-sat$ https://drupalcamp.london/schedule/saturday; + rewrite ^/dclondon-sun$ https://drupalcamp.london/schedule/sunday; + rewrite ^/dclondon20$ /articles/drupalcamp-london-testing-workshop; + rewrite ^/ddev-phpunit-command$ /blog/creating-custom-phpunit-command-ddev; + rewrite ^/deploying-php-ansible$ /talks/deploying-php-ansible-ansistrano; + rewrite ^/dks7E$ https://www.youtube.com/watch?v=PLS4ET7FAcU; + rewrite ^/do-library$ https://github.com/opdavies/drupalorg-api-php; + rewrite ^/do-projects$ https://github.com/opdavies/drupal-module-drupalorg-projects; + rewrite ^/docksal-phpunit-phpstorm$ /articles/running-phpunit-tests-docksal-phpstorm; + rewrite ^/docksal-posts$ /articles/tags/docksal; + rewrite ^/dransible$ https://github.com/opdavies/dransible; + rewrite ^/dransible-drupal-9$ /blog/upgrading-dransible-project-drupal-9; + rewrite ^/drupal-bristol-march-19$ https://docs.google.com/presentation/d/1pk9LIN-hHX73kvDdo-lzgmKlAeH33_K_uvI0t7A-rvY/edit?usp=sharing; + rewrite ^/drupal-core-live-stream$ https://www.youtube.com/watch?v=OK4FWwh1gQU; + rewrite ^/drupal-core-testing-gate$ https://www.drupal.org/core/gates#testing; + rewrite ^/drupal-first-time-issues$ https://www.drupal.org/project/issues/search?text=&projects=&assigned=&submitted=&project_issue_followers=&status%5B%5D=Open&issue_tags_op=%3D&issue_tags=Novice; + rewrite ^/drupal-forum-post$ http://www.webmaster-forums.net/webmasters-corner/developing-my-website-using-php-and-mysql#comment-1231537; + rewrite ^/drupal-marketplace-uk$ https://www.drupal.org/drupal-services?offices%5B%5D=24460; + rewrite ^/drupal-meetups-twitterbot$ /articles/introducing-the-drupal-meetups-twitterbot; + rewrite ^/drupal-novice-issues$ https://www.drupal.org/project/issues/search?text=&projects=&assigned=&submitted=&project_issue_followers=&status%5B%5D=Open&issue_tags_op=%3D&issue_tags=Novice; + rewrite ^/drupal-php-developer-consultant-uk$ /drupal-php-developer; + rewrite ^/drupal-tailwind-demo$ https://www.youtube.com/watch?v=1eM-Gw6GI4g; + rewrite ^/drupal-tailwindcss$ https://www.drupal.org/project/tailwindcss; + rewrite ^/drupal-vuejs$ /talks/decoupling-drupal-vuejs/; + rewrite ^/drupalcamp-london-2019-tickets$ /articles/drupalcamp-london-2019-tickets; + rewrite ^/drupalcamp-nyc-training$ https://www.youtube.com/watch?v=3M9c4UUzKm0; + rewrite ^/drupalorg$ https://www.drupal.org/u/opdavies; + rewrite ^/drupalorg-project-issues$ https://www.drupal.org/project/issues/search?projects=Override+Node+Options%2C+Tailwind+CSS+Starter+Kit%2C+Block+ARIA+Landmark+Roles%2C+Copyright+Block+module%2C+System+User%2C+Null+User%2C+Collection+class%2C+Pathauto+Menu+Link%2C+Webform+ARIA&project_issue_followers=&status%5B%5D=1&status%5B%5D=13&status%5B%5D=8&status%5B%5D=14&status%5B%5D=15&issue_tags_op=%3D; + rewrite ^/drupalversary$ https://github.com/opdavies/drupal-module-drupalversary; + rewrite ^/elewant$ https://elewant.com/shepherd/admire/opdavies; + rewrite ^/first-drupal-core-issue$ https://www.drupal.org/project/drupal/issues/753898; + rewrite ^/first-npm-package$ https://www.npmjs.com/package/tailwindcss-vuejs; + rewrite ^/freeagent$ https://opdavies.freeagent.com; + rewrite ^/git-flow$ /talks/git-flow; + rewrite ^/gitlab$ https://gitlab.com/opdavies; + rewrite ^/gitstore$ https://enjoy.gitstore.app/maintainers/opdavies; + rewrite ^/gmail-filters$ https://gitlab.com/opdavies/gmail-filters; + rewrite ^/images/me-precedent.jpg$ /sites/default/files/images/social-avatar.jpg; + rewrite ^/inviqa-tailwind-demo$ https://play.tailwindcss.com/Yfmw8O5UNN; + rewrite ^/inviqa-tailwind-notes$ https://gist.github.com/opdavies/e6f0f4938506a6859acf1aca8b4e1a74; + rewrite ^/join-php-south-wales-slack$ https://join.slack.com/t/phpsouthwales/shared_invite/zt-4vuetc43-AvtEK1WqNzp5k1w4yWKOJA; + rewrite ^/jy6rW$ https://www.meetup.com/PHP-South-Wales/events/264731393; + rewrite ^/kB6Jd$ /articles/running-drupal-with-symfony-local-server/; + rewrite ^/kmDRA$ https://www.bbc.co.uk/news/uk-46561779; + rewrite ^/leeds-php-drupal-9$ https://www.meetup.com/leedsphp/events/272504993; + rewrite ^/links$ /; + rewrite ^/london-half-term-map$ https://www.google.com/maps/d/u/0/viewer?mid=1d-7ruqjlm2vKF_Fwhu_-5CDfr2TyUuhB&hl=en&ll=51.50411420613797%2C-0.12409831347656564&z=13; + rewrite ^/luke-dinosaurs$ https://luke-dinosaurs.netlify.com/; + rewrite ^/luke-recycling$ https://luke-recycling.netlify.com/; + rewrite ^/microserve-issues$ https://www.drupal.org/project/issues/search?status[]=Open&issue_tags=Microserve; + rewrite ^/microserve-issues-need-review$ https://www.drupal.org/project/issues/search?projects=&project_issue_followers=&status%5B%5D=8&issue_tags_op=%3D&issue_tags=Microserve; + rewrite ^/npm$ https://www.npmjs.com/~opdavies; + rewrite ^/oFlkS$ /articles/test-driven-drupal-on-gitstore-leanpub; + rewrite ^/oliver-davies-uk-based-drupal-symfony-developer$ /oliver-davies-uk-based-drupal-php-developer; + rewrite ^/photo-lab-fun-family-portraits$ https://www.apple.com/uk/today/event/photo-lab-fun-family-portraits/6512343695143329889; + rewrite ^/php-ansible$ /talks/deploying-php-ansible-ansistrano; + rewrite ^/php-south-wales-sept-19$ https://joind.in/event/php-south-wales---september-2019-double-docker; + rewrite ^/php-south-wales-slack-invite$ https://join.slack.com/t/phpsouthwales/shared_invite/zt-4vuetc43-AvtEK1WqNzp5k1w4yWKOJA; + rewrite ^/php-south-wales-videos$ https://www.youtube.com/channel/UCzQRSSaIV2Ajvl81BxPQDZA; + rewrite ^/pv176$ https://www.sainsburys.co.uk/shop/gb/groceries/paper---notebooks-44/sainsburys-home-midnight-opulence-a4-floral-notebook-133870966-p; + rewrite ^/qSHAl$ /articles/published-my-first-npm-package/; + rewrite ^/qT1Rb$ https://github.com/opdavies/drupal-meetups-twitterbot; + rewrite ^/rebuilding-acquia$ https://rebuilding-acquia.oliverdavies.uk; + rewrite ^/rebuilding-bartik$ /articles/rebuilding-bartik-with-vuejs-tailwind-css; + rewrite ^/rebuilding-bristol-js$ https://github.com/opdavies/rebuilding-bristol-js; + rewrite ^/rebuilding-pantheon$ https://play.tailwindcss.com/LND98XihGI?layout=horizontal; + rewrite ^/rebuilding-platformsh$ https://rebuilding-platformsh.oliverdavies.uk; + rewrite ^/rebuilding-symfony$ https://github.com/opdavies/rebuilding-symfony; + rewrite ^/rk29B$ https://www.meetup.com/PHP-South-Wales/events/268422525; + rewrite ^/rss$ /feed; + rewrite ^/ruralelec-slider$ https://www.youtube.com/watch?v=-x80ymicm5E; + rewrite ^/s9MjJ$ https://symfonycasts.com/screencast/symfony; + rewrite ^/sIGnJ$ https://microserve.io; + rewrite ^/sculpin-encore-versioning$ https://github.com/opdavies/oliverdavies.uk/commit/d192b04aefa6e7a21bfc1f2e0fe0a16111e0e8a2; + rewrite ^/skills$ https://opdavies-skills-tailwindcss.netlify.com/; + rewrite ^/slides-drupal-9$ https://slides-upgrading-to-drupal-9.oliverdavies.uk; + rewrite ^/slides-upgrading-to-drupal-9$ https://slides-upgrading-to-drupal-9.oliverdavies.uk; + rewrite ^/slides-upgrading-to-drupal-9/index.html$ https://slides-upgrading-to-drupal-9.oliverdavies.uk; + rewrite ^/slides-working-with-workspace$ https://slides-working-with-workspace.oliverdavies.uk; + rewrite ^/speaker-info$ /about/speaker-information; + rewrite ^/speaking-videos$ https://www.youtube.com/playlist?list=PLHn41Ay7w7kfAzczswrANch5oHAPZBlvu; + rewrite ^/sprint-day$ https://github.com/microserve-io/contribution-day/; + rewrite ^/sprint-setup$ https://github.com/microserve-io/contribution-day/; + rewrite ^/stream$ https://www.youtube.com/channel/UCkeK0qF9HHUPQH_fvn4ghqQ/live; + rewrite ^/swap-markdown-parser$ https://github.com/opdavies/sculpin-twig-markdown-bundle-example/tree/swap-markdown-parser; + rewrite ^/symfony$ https://connect.symfony.com/profile/opdavies; + rewrite ^/symfony-server$ /articles/running-drupal-with-symfony-local-server; + rewrite ^/symfonylive$ /articles/live-blogging-symfonylive-london; + rewrite ^/symposium$ https://symposiumapp.com/u/opdavies; + rewrite ^/tailwind-css-talk$ /talks/taking-flight-tailwind-css; + rewrite ^/tailwind-repos$ https://github.com/opdavies?utf8=%E2%9C%93&tab=repositories&q=tailwindcss; + rewrite ^/tailwind-talk$ /talks/taking-flight-with-tailwind-css; + rewrite ^/tailwindcss-demo$ http://tailwindcss-demo.oliverdavies.uk/; + rewrite ^/talks-offer-tweet$ https://twitter.com/opdavies/status/1250870367712935938; + rewrite ^/talks/2012/09/05/what-is-this-drupal-thing-unified-diff$ /talks/what-is-this-drupal-thing; + rewrite ^/talks/2013/07/10/drupal-ldap-swdug$ /talks/drupal-ldap; + rewrite ^/talks/2014/03/01/git-flow-drupalcamp-london-2014$ /talks/git-flow; + rewrite ^/talks/2014/07/02/drush-make-drupalbristol-drupal-bristol$ /talks/drush-make-drupalbristol; + rewrite ^/talks/2014/08/19/drupal-association-swdug$ /talks/drupal-association; + rewrite ^/talks/2015/01/18/drupalorg-2015-drupalcamp-brighton-2015$ /talks/drupalorg-in-2015-whats-coming-next; + rewrite ^/talks/2015/02/28/drupalorg-2015-drupalcamp-london-2015$ /talks/drupalorg-in-2015-whats-coming-next; + rewrite ^/talks/2015/04/08/drupal-8-phpsw$ /talks/drupal-8; + rewrite ^/talks/2015/07/25/test-drive-twig-with-sculpin-drupalcamp-north-2015$ /talks/test-drive-twig-with-sculpin; + rewrite ^/talks/2015/08/25/dancing-for-drupal-umbristol$ /talks/dancing-for-drupal; + rewrite ^/talks/2015/10/14/sculpin-phpsw$ /talks/sculpin; + rewrite ^/talks/2016/03/05/drupal-8-module-development-drupalcamp-london-2016$ /talks/getting-started-with-drupal-8-module-development; + rewrite ^/talks/2016/03/09/drupal-vm-generator-nwdug$ /talks/drupal-vm-generator; + rewrite ^/talks/2016/04/02/drupal-vm-generator-drupal-bristol$ /talks/drupal-vm-generator; + rewrite ^/talks/2016/06/11/drupal-8-rejoining-the-herd-php-south-coast-2016$ /talks/drupal-8-rejoining-the-herd; + rewrite ^/talks/2016/07/23/drupal-vm-meet-symfony-console-drupalcamp-bristol-2016$ /talks/drupal-vm-meet-symfony-console; + rewrite ^/talks/2016/11/09/drupal-development-with-composer-phpsw$ /talks/drupal-development-with-composer; + rewrite ^/talks/2016/11/17/goodbye-drush-make-hello-composer-drupal-bristol$ /talks/goodbye-drush-make-hello-composer; + rewrite ^/talks/2017/01/18/getting-your-data-into-drupal-8-drupal-bristol$ /talks/getting-your-data-into-drupal-8; + rewrite ^/talks/2017/03/04/getting-your-data-into-drupal-8-drupalcamp-london-2017$ /talks/getting-your-data-into-drupal-8; + rewrite ^/talks/ansible-ansistrano$ https://www.oliverdavies.uk/talks/deploying-php-ansible-ansistrano; + rewrite ^/talks/archive$ /talks; + rewrite ^/talks/deploying-php-applications-with-fabric$ /talks/deploying-php-fabric; + rewrite ^/talks/drupal-vm-generator-2$ /talks/drupal-vm-generator; + rewrite ^/talks/drupalorg-2015-2$ /talks/drupalorg-2015; + rewrite ^/talks/drupalorg-in-2015-whats-coming-next$ /talks/drupalorg-2015; + rewrite ^/talks/getting-started-with-drupal-8-module-development$ /drupal-8-module-development; + rewrite ^/talks/having-fun-drupal-8-php-libraries-drupalorg-api$ /talks/drupal-8-php-libraries-drupalorg-api; + rewrite ^/talks/never-commit-master-introduction-git-flow$ /talks/git-flow; + rewrite ^/talks/sculpin$ /talks/building-static-websites-sculpin; + rewrite ^/talks/tailwind$ /talks/taking-flight-with-tailwind-css/; + rewrite ^/talks/using-laravel-collections-outside-laravel$ /talks/using-illuminate-collections-outside-laravel; + rewrite ^/talks/working-workspace$ /talks/working-with-workspace; + rewrite ^/tdd-blog$ https://github.com/opdavies/drupal-module-tdd-blog; + rewrite ^/tdd-test-driven-drupal$ /talks/tdd-test-driven-drupal/; + rewrite ^/test-driven-drupal-book$ /test-driven-drupal; + rewrite ^/testing-drupal$ https://www.oliverdavies.uk/talks/tdd-test-driven-drupal; + rewrite ^/testing-drupal-intro$ https://inviqa.com/blog/drupal-automated-testing-introduction; + rewrite ^/testing-tailwind-plugins$ /articles/testing-tailwindcss-plugins-with-jest; + rewrite ^/testing-workshop$ https://github.com/opdavies/workshop-drupal-automated-testing; + rewrite ^/testing-workshop-code$ https://github.com/opdavies/workshop-drupal-automated-testing-code; + rewrite ^/todoist-filters$ https://gist.github.com/opdavies/6709fbdac5c3babbd94137bcc8b8e3c2; + rewrite ^/twitter-tweaks$ https://github.com/opdavies/chrome-extension-twitter-tweaks; + rewrite ^/upgrading-to-drupal-9$ /talks/upgrading-your-site-drupal-9; + rewrite ^/uxbjV$ https://www.drupal.org/project/copyright_block; + rewrite ^/vyTEF$ https://www.npmjs.com/package/tailwindcss-vuejs; + rewrite ^/webpack-encore-pcss-regex$ https://regexr.com/51iaf; + rewrite ^/wordcamp-bristol-tailwindcss$ https://2019.bristol.wordcamp.org/session/taking-flight-with-tailwind-css; + rewrite ^/wordpress-tailwind$ https://github.com/opdavies/wordcamp-bristol-2019; + rewrite ^/working-with-workspace$ /talks/working-with-workspace; + rewrite ^/workshop-drupal-testing$ https://github.com/opdavies/workshop-drupal-automated-testing; + rewrite ^/workspace-demo$ https://github.com/opdavies/working-with-workspace-demo; + rewrite ^/wp-tailwind$ https://wp-tailwind.oliverdavies.uk; + rewrite ^/wp-tailwind-repo$ https://github.com/opdavies/wordcamp-bristol-2019; + rewrite ^/wp-tailwind-starter$ https://github.com/opdavies/wordpress-tailwindcss-startker-kit; + rewrite ^/wp-tailwind-static$ https://wp-tailwind.oliverdavies.uk; + rewrite ^/yXhoS$ /talks/things-you-should-know-about-php; }