Revert "Update permalinks for old daily emails"
This reverts commit a99fa854e1
.
This commit is contained in:
parent
82f437a712
commit
d6d09ab172
|
@ -437,8 +437,8 @@ RewriteRule ^wp-tailwind-starter$ https://github.com/opdavies/wordpress-tailwind
|
|||
RewriteRule ^wp-tailwind-static$ https://wp-tailwind.oliverdavies.uk [R=301]
|
||||
RewriteRule ^yXhoS$ /presentations/things-you-should-know-about-php [R=301]
|
||||
|
||||
RewriteCond %{REQUEST_URI}$ !^/archive/?$
|
||||
RewriteRule ^archive/(.*)$ /daily/$1 [L,R=301]
|
||||
# ^ewriteCond %{REQUEST_URI}$ !^/archive/?$
|
||||
# RewriteRule ^archive/(.*)$$ /daily/$1 [L,R=301]
|
||||
|
||||
RewriteRule ^articles/(.*)$ /blog/$1 [L,R=301]
|
||||
RewriteRule ^talks/(.*)$ /presentations/$1 [L,R=301]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
title: "Mob programming at PHP South Wales"
|
||||
pubDate: 2022-09-28
|
||||
permalink: "daily/2022/09/28/mob-programming-php-south-wales"
|
||||
permalink: "archive/2022/09/28/mob-programming-php-south-wales"
|
||||
tags: []
|
||||
---
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ permalink: daily/2022/10/09/coding-defensively-implicit-explicit
|
|||
tags: [tailwindcss, php]
|
||||
---
|
||||
|
||||
As well as [being introduced to Astro](https://www.oliverdavies.uk/daily/2022/10/08/first-impressions-astro) in Simon's most recent Pro Tailwind workshop, something else that we discussed was implicit vs explicit coding, and coding defensively.
|
||||
As well as [being introduced to Astro](https://www.oliverdavies.uk/archive/2022/10/08/first-impressions-astro) in Simon's most recent Pro Tailwind workshop, something else that we discussed was implicit vs explicit coding, and coding defensively.
|
||||
|
||||
For example, if you had this code:
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@ title: >
|
|||
The open-source-first development workflow
|
||||
pubDate: 2022-10-29
|
||||
permalink: >-
|
||||
daily/2022/10/29/the-open-source-first-development-workflow
|
||||
archive/2022/10/29/the-open-source-first-development-workflow
|
||||
tags:
|
||||
- open-source
|
||||
---
|
||||
|
||||
Yesterday's email talked about [writing reusable, framework-agnostic packages](https://www.oliverdavies.uk/daily/2022/10/28/why-write-framework-agnostic-packages) but didn't mention where those packages could be located.
|
||||
Yesterday's email talked about [writing reusable, framework-agnostic packages](https://www.oliverdavies.uk/archive/2022/10/28/why-write-framework-agnostic-packages) but didn't mention where those packages could be located.
|
||||
|
||||
They could be kept within a private repository and still have the same benefits, such as re-usability for internal projects, but I like to open-source code as often as I can and make it available publicly to see and use.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Writing good automated test names
|
||||
pubDate: 2022-11-15
|
||||
permalink: >-
|
||||
daily/2022/11/15/writing-good-automated-test-names
|
||||
archive/2022/11/15/writing-good-automated-test-names
|
||||
tags:
|
||||
- testing
|
||||
---
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- git
|
||||
---
|
||||
|
||||
[Yesterday's email](https://www.oliverdavies.uk/daily/2022/11/20/version-controlled-commented-out-code) talked about whether commented-out code should be present if your code is version-controlled, but how do you avoid committing it in the first place?
|
||||
[Yesterday's email](https://www.oliverdavies.uk/archive/2022/11/20/version-controlled-commented-out-code) talked about whether commented-out code should be present if your code is version-controlled, but how do you avoid committing it in the first place?
|
||||
|
||||
You could make sure that you remove everything manually before you stage and commit your changes, or I like to use `git add --patch` (or `git add -p`) to interactively stage my changes, allowing me to select which parts of files I want to include in my commit and ignore anything else. The `--patch` option also works for other commands, including `checkout` and `reset`.
|
||||
|
||||
|
|
|
@ -3,20 +3,20 @@ title: >
|
|||
Automating all the things
|
||||
pubDate: 2023-03-14
|
||||
permalink: >-
|
||||
daily/2023/03/14/automating-all-the-things
|
||||
archive/2023/03/14/automating-all-the-things
|
||||
tags:
|
||||
- automation
|
||||
---
|
||||
|
||||
As a solo Developer and Consultant, I rely a lot on automation to get my tasks done.
|
||||
|
||||
I use tools like [Pulumi, Ansible and Terraform](https://www.oliverdavies.uk/daily/2023/03/09/in-what-language-should-i-write-my-automation) to automate creating and configuring infrastructure - recently creating new client GitHub repositories using a standard configuration with Pulumi.
|
||||
I use tools like [Pulumi, Ansible and Terraform](https://www.oliverdavies.uk/archive/2023/03/09/in-what-language-should-i-write-my-automation) to automate creating and configuring infrastructure - recently creating new client GitHub repositories using a standard configuration with Pulumi.
|
||||
|
||||
I use Nix and Home Manager to automate my local development environment, install packages I need and create files like `.gitconfig` for my needs. These are reusable and stored in my [dotfiles](https://github.com/opdavies/dotfiles) repository.
|
||||
|
||||
For projects, I use tools like Docker, Docker Compose and Nix flakes for consistency.
|
||||
|
||||
[I wrote a tool for generating configuration files for each project](https://www.oliverdavies.uk/daily/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) - reducing the time it takes me to set up, configure and maintain standard files for tools like Docker and Docker Compose that I always use. If I need to add a new feature or fix a bug in a configuration file, I can do that in my templated version and re-generate each project's files rather than making the same change manually.
|
||||
[I wrote a tool for generating configuration files for each project](https://www.oliverdavies.uk/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) - reducing the time it takes me to set up, configure and maintain standard files for tools like Docker and Docker Compose that I always use. If I need to add a new feature or fix a bug in a configuration file, I can do that in my templated version and re-generate each project's files rather than making the same change manually.
|
||||
|
||||
Today, I wrote a script that loops over all projects where I commit those files to GitHub, clones a fresh version of it, re-generates the files and pushes any new files or changes back to the repository. This means that any changes will be automatically applied and all of my projects will remain in sync.
|
||||
|
||||
|
|
|
@ -3,14 +3,14 @@ title: >
|
|||
The benefits of automation
|
||||
pubDate: 2023-03-15
|
||||
permalink: >-
|
||||
daily/2023/03/15/the-benefits-of-automation
|
||||
archive/2023/03/15/the-benefits-of-automation
|
||||
tags:
|
||||
- automation
|
||||
---
|
||||
|
||||
I've been working on a project with a client, using [Fractal](https://fractal.build) for our component library. I've been working on it locally but yesterday I needed to make it public for the client to review the work I've done.
|
||||
|
||||
I recently added `node` support to my [build configuration file generator](https://www.oliverdavies.uk/daily/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) and used that to generate and use a consistent set of configuration files for a Fractal project.
|
||||
I recently added `node` support to my [build configuration file generator](https://www.oliverdavies.uk/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) and used that to generate and use a consistent set of configuration files for a Fractal project.
|
||||
|
||||
I've used Terraform in [some codebases](https://github.com/opdavies/rebuilding-acquia) to create and configure AWS resources like S3 buckets and Cloudfront distributions, so I was able to use that to create what I needed as well as adding the DNS record for a new subdomain to access Cloudfront.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
CI pipelines should start locally
|
||||
pubDate: 2023-04-24
|
||||
permalink: >-
|
||||
daily/2023/04/24/ci-pipelines-should-start-locally
|
||||
archive/2023/04/24/ci-pipelines-should-start-locally
|
||||
tags:
|
||||
- development
|
||||
- devops
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Write the test backwards
|
||||
pubDate: 2023-04-27
|
||||
permalink: >-
|
||||
daily/2023/04/27/tdd-write-the-test-backwards
|
||||
archive/2023/04/27/tdd-write-the-test-backwards
|
||||
tags:
|
||||
- automated-testing
|
||||
- test-driven-development
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Only write enough code to get a failing test
|
||||
pubDate: 2023-05-08
|
||||
permalink: >-
|
||||
daily/2023/05/08/only-write-enough-code-to-get-a-failing-test
|
||||
archive/2023/05/08/only-write-enough-code-to-get-a-failing-test
|
||||
tags:
|
||||
- automated-testing
|
||||
- test-driven-development
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
- phpc
|
||||
---
|
||||
|
||||
Compared to Drupal 7, [which is almost at version 100](https://oliverdavies.dev/daily/2023/04/30/will-we-see-drupal-7-100), the release cycle from Drupal 9 onwards has been quite different.
|
||||
Compared to Drupal 7, [which is almost at version 100](https://oliverdavies.dev/archive/2023/04/30/will-we-see-drupal-7-100), the release cycle from Drupal 9 onwards has been quite different.
|
||||
|
||||
We've adopted semantic versioning with new feature releases every six months, and we've already sunsetted Drupal 8 and moved on to Drupal 9 and 10.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Drupal 9: almost end-of-life already
|
||||
pubDate: 2023-05-21
|
||||
permalink: >-
|
||||
daily/2023/05/21/drupal-9-almost-end-of-life-already
|
||||
archive/2023/05/21/drupal-9-almost-end-of-life-already
|
||||
tags:
|
||||
- drupal
|
||||
- php
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Should you feature flag everything?
|
||||
pubDate: 2023-06-13
|
||||
permalink: >-
|
||||
daily/2023/06/13/should-you-feature-flag-everything
|
||||
archive/2023/06/13/should-you-feature-flag-everything
|
||||
tags:
|
||||
- feature-flags
|
||||
---
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Pull requests are great for open-source, but not for teams
|
||||
pubDate: 2023-08-27
|
||||
permalink: >-
|
||||
daily/2023/08/27/pull-requests-are-great-for-open-source
|
||||
archive/2023/08/27/pull-requests-are-great-for-open-source
|
||||
tags:
|
||||
- code-review
|
||||
- git
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Do you proactively refactor your code?
|
||||
pubDate: 2023-09-08
|
||||
permalink: >-
|
||||
daily/2023/09/08/do-you-proactively-refactor-your-code
|
||||
archive/2023/09/08/do-you-proactively-refactor-your-code
|
||||
tags:
|
||||
- software-development
|
||||
- refactoring
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Buggy software causes reputational damage
|
||||
pubDate: 2023-09-21
|
||||
permalink: >-
|
||||
daily/2023/09/21/buggy-software-causes-reputational-damage
|
||||
archive/2023/09/21/buggy-software-causes-reputational-damage
|
||||
tags:
|
||||
- software-development
|
||||
- automated-testing
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Test to save your job
|
||||
pubDate: 2023-09-24
|
||||
permalink: >-
|
||||
daily/2023/09/24/test-to-save-your-job
|
||||
archive/2023/09/24/test-to-save-your-job
|
||||
tags:
|
||||
- software-development
|
||||
- automated-testing
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Separating environments with feature flags
|
||||
pubDate: 2023-09-27
|
||||
permalink: >-
|
||||
daily/2023/09/27/separating-environments-with-feature-flags
|
||||
archive/2023/09/27/separating-environments-with-feature-flags
|
||||
tags:
|
||||
- software-development
|
||||
- feature-flags
|
||||
|
|
|
@ -12,7 +12,7 @@ tags:
|
|||
|
||||
I've just added the hundredth test to a client project I'm developing.
|
||||
|
||||
I'm following [the outside-in approach](https://www.oliverdavies.uk/daily/2023/09/14/outside-in-or-inside-out), starting with functional tests and moving to kernel and unit tests where needed - meaning more functional tests and fewer unit tests - most of which cover some complex search functionality containing custom blocks, forms, endpoints for autocomplete lists, pattern matching and results pages, which is the core functionality of the project.
|
||||
I'm following [the outside-in approach](https://www.oliverdavies.uk/archive/2023/09/14/outside-in-or-inside-out), starting with functional tests and moving to kernel and unit tests where needed - meaning more functional tests and fewer unit tests - most of which cover some complex search functionality containing custom blocks, forms, endpoints for autocomplete lists, pattern matching and results pages, which is the core functionality of the project.
|
||||
|
||||
Here's the breakdown of the different types of tests:
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Why use Composer to manage Drupal dependencies?
|
||||
pubDate: 2023-10-10
|
||||
permalink: >-
|
||||
daily/2023/10/10/why-use-composer-to-manage-drupal-dependencies
|
||||
archive/2023/10/10/why-use-composer-to-manage-drupal-dependencies
|
||||
tags:
|
||||
- software-development
|
||||
- drupal
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Do you need to write tests for small or short-lived projects?
|
||||
pubDate: 2023-10-14
|
||||
permalink: >-
|
||||
daily/2023/10/14/do-you-need-to-write-tests-for-small-or-short-lived-projects
|
||||
archive/2023/10/14/do-you-need-to-write-tests-for-small-or-short-lived-projects
|
||||
tags:
|
||||
- software-development
|
||||
- automated-testing
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Automated tests prevent regressions when upgrading
|
||||
pubDate: 2023-10-25
|
||||
permalink: >-
|
||||
daily/2023/10/25/automated-tests-prevent-regressions-when-upgrading
|
||||
archive/2023/10/25/automated-tests-prevent-regressions-when-upgrading
|
||||
tags:
|
||||
- software-development
|
||||
- php
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Why your company should contribute to open-source software
|
||||
pubDate: 2023-11-03
|
||||
permalink: >-
|
||||
daily/2023/11/03/why-your-company-should-contribute-to-open-source-software
|
||||
archive/2023/11/03/why-your-company-should-contribute-to-open-source-software
|
||||
tags:
|
||||
- software-development
|
||||
- open-source
|
||||
|
|
|
@ -33,4 +33,4 @@ Rebuilding and re-inventing would mean immediately avoiding the technical debt a
|
|||
|
||||
There isn't a right and wrong answer, and it will depend on the thoughts and objectives of the team and business.
|
||||
|
||||
[yesterday]: https://www.oliverdavies.uk/daily/2023/12/08/dont-just-rewrite
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/12/08/dont-just-rewrite
|
||||
|
|
|
@ -3,7 +3,7 @@ title: >
|
|||
Building your own in-house Drupal distribution
|
||||
pubDate: 2023-12-15
|
||||
permalink: >-
|
||||
daily/2023/12/15/building-your-own-in-house-drupal-distribution
|
||||
archive/2023/12/15/building-your-own-in-house-drupal-distribution
|
||||
tags:
|
||||
- software-development
|
||||
- php
|
||||
|
@ -20,4 +20,4 @@ Alternatively, maybe keep a template composer.json file to base new projects on
|
|||
|
||||
That could declare the modules and themes you want to include, without the additional overhead.
|
||||
|
||||
[drupal distribution](https://www.oliverdavies.uk/daily/2023/12/14/save-time-and-effort-with-drupal-distributions)
|
||||
[drupal distribution](https://www.oliverdavies.uk/archive/2023/12/14/save-time-and-effort-with-drupal-distributions)
|
||||
|
|
|
@ -27,4 +27,4 @@ You can enable and disable rules as needed but, like setting the PHPStan level,
|
|||
It depends on the code being tested and the preference of the team, though I find the stricter the rules, the less bugs there are.
|
||||
|
||||
[extension]: https://github.com/phpstan/phpstan-strict-rules
|
||||
[yesterday]: {{site.url}}/daily/2024/05/04/strict-typing-in-php
|
||||
[yesterday]: {{site.url}}/archive/2024/05/04/strict-typing-in-php
|
||||
|
|
|
@ -36,4 +36,4 @@ And I learned something new about Git at the same time.
|
|||
[1]: https://git-scm.com/docs/git-merge#Documentation/git-merge.txt---allow-unrelated-histories
|
||||
[3]: https://github.com/opdavies/oliverdavies.uk
|
||||
[4]: {{site.url}}/daily/2024/07/31/why-i-use-linux
|
||||
[5]: {{site.url}}/daily/2023/08/08/8-years-of-dotfiles
|
||||
[5]: {{site.url}}/archive/2023/08/08/8-years-of-dotfiles
|
||||
|
|
|
@ -33,5 +33,5 @@ I'm not going to reset all my configuration files to their default values, but I
|
|||
|
||||
The same as in an application, I don't want to add modules or plugins that I'm not going to use or aren't adding value, and I want to ensure I'm making the most of what the software offers.
|
||||
|
||||
[0]: {{site.url}}/daily/2023/08/08/8-years-of-dotfiles
|
||||
[0]: {{site.url}}/archive/2023/08/08/8-years-of-dotfiles
|
||||
[1]: https://github.com/opdavies/dotfiles.nix
|
||||
|
|
|
@ -30,6 +30,6 @@ This means that I can easily generate diagrams and store in the codebase too, an
|
|||
[Here's one I did for the Build Configs tool][3], which I recently open-sourced, and that GitHub renders by default (you can click the 'Code' tab to see the code for the chart).
|
||||
|
||||
[0]: {{site.url}}/daily/2024/08/16/what-are-err--req-and-res
|
||||
[1]: {{site.url}}/daily/2022/09/23/adrs-technical-design-documents
|
||||
[1]: {{site.url}}/archive/2022/09/23/adrs-technical-design-documents
|
||||
[2]: https://github.com/mermaid-js/mermaid
|
||||
[3]: https://github.com/opdavies/build-configs/blob/f02fce7ff5b5cff202ec8b893a4b3c7e7c56f3c4/docs/diagram.mmd
|
||||
|
|
|
@ -29,4 +29,4 @@ Now, if anyone else wanted to use this script, or I wanted to share another scri
|
|||
|
||||
[0]: {{site.url}}/daily/2024/08/19/bash-scripting-for-fun-and-profit
|
||||
[1]: https://github.com/opdavies/dotfiles.nix/blob/a1ef2d1402c9c607e7a3e4427ce125d0cabeddcd/lib/shared/scripts/export-video-list.nix#L12-L31
|
||||
[2]: {{site.url}}/daily/2022/09/26/experimenting-with-the-nix-package-manager
|
||||
[2]: {{site.url}}/archive/2022/09/26/experimenting-with-the-nix-package-manager
|
||||
|
|
|
@ -30,6 +30,6 @@ All emails are sent from my personal email address, so you can press reply and c
|
|||
[email list]: /daily
|
||||
[tailwind css]: /presentations/taking-flight-with-tailwind-css
|
||||
[test driven drupal]: /presentations/tdd-test-driven-drupal
|
||||
[workshop]: /daily/2024/01/22/tailwind-css-workshop-recording
|
||||
[workshop]: /archive/2024/01/22/tailwind-css-workshop-recording
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -11,7 +11,7 @@ Thank you for attending my session at DrupalCamp Ghent.
|
|||
|
||||
You can view the slides and previous recordings of my [Test Driven Drupal](/talks/tdd-test-driven-drupal) and [Tailwind CSS](/talks/taking-flight-with-tailwind-css) talks on this website.
|
||||
|
||||
If you want to learn more, I released a video of the [Tailwind CSS workshop](/daily/2024/01/22/tailwind-css-workshop-recording) I gave for DrupalCamp Florida, and I've created a [free 10-day email course](/atdc) on automated testing in Drupal.
|
||||
If you want to learn more, I released a video of the [Tailwind CSS workshop](/archive/2024/01/22/tailwind-css-workshop-recording) I gave for DrupalCamp Florida, and I've created a [free 10-day email course](/atdc) on automated testing in Drupal.
|
||||
|
||||
## Can we work together?
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ faqs:
|
|||
-
|
||||
- Do you work with Drupal Commerce?
|
||||
- |-
|
||||
Yes, I have a lot of experience with Drupal Commerce and have used it for [various types of e-commerce applications](/daily/2024/03/19/drupal-commerce-not-just-for-selling-t-shirts-and-hats).
|
||||
Yes, I have a lot of experience with Drupal Commerce and have used it for [various types of e-commerce applications](/archive/2024/03/19/drupal-commerce-not-just-for-selling-t-shirts-and-hats).
|
||||
-
|
||||
- Is there a limit to how many requests I can have?
|
||||
- |-
|
||||
|
|
Loading…
Reference in a new issue