Use environment-specific URLs instead of
...hard-coded ones
This commit is contained in:
parent
6ca5704c21
commit
1b05e63a20
|
@ -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/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.
|
||||
As well as [being introduced to Astro]({{site.url}}/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:
|
||||
|
||||
|
|
|
@ -23,6 +23,6 @@ There are other advantages too - clients or product owners are generally happier
|
|||
|
||||
If you're familiar with the DevOps Research and Assessment (DORA) team, three of their key metrics are deployment frequency, lead time for changes, and time to restore service. All of these are improved by small and frequent releases.
|
||||
|
||||
In my [Deployments with Ansible and Ansistrano talk](https://www.oliverdavies.uk/presentations/deploying-php-ansible-ansistrano), I mention that there is a separate rollback role, but I don't think that I've ever used it.
|
||||
In my [Deployments with Ansible and Ansistrano talk]({{site.url}}/presentations/deploying-php-ansible-ansistrano), I mention that there is a separate rollback role, but I don't think that I've ever used it.
|
||||
|
||||
Because I'm deploying small changes often, it's usually much easier to fix forward than it is to rollback, and knowing this makes me a lot less anxious when deploying changes.
|
||||
|
|
|
@ -6,7 +6,7 @@ permalink: 'archive/2022/10/18/pair-mob-programming'
|
|||
|
||||
As well as my recent session at PHP South Wales, I've also been involved with a lot more mob programming recently with members of my team.
|
||||
|
||||
We recently added a new feature to our codebase that we completed over a couple of mob sessions - starting by describing the problem and some potential solutions within a [technical design document](https://www.oliverdavies.uk/archive/2022/09/23/adrs-technical-design-documents) before moving on to the implementation.
|
||||
We recently added a new feature to our codebase that we completed over a couple of mob sessions - starting by describing the problem and some potential solutions within a [technical design document]({{site.url}}/archive/2022/09/23/adrs-technical-design-documents) before moving on to the implementation.
|
||||
|
||||
I was already familiar with the existing code that we needed to extend, so had some ideas of how to approach parts of the solution which we discussed - but there were other parts that I hadn't thought of.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ permalink: daily/2022/10/19/run-vs-task-runners
|
|||
# -
|
||||
---
|
||||
|
||||
[I've written a few earlier emails](https://www.oliverdavies.uk/archive/2022/08/15/using-run-file-simplify-project-tasks) about `run` files - a simple bash file that I add to my projects to simplify or combine common commands that I need to run often.
|
||||
[I've written a few earlier emails]({{site.url}}/archive/2022/08/15/using-run-file-simplify-project-tasks) about `run` files - a simple bash file that I add to my projects to simplify or combine common commands that I need to run often.
|
||||
|
||||
Recently, I've looked at a couple of alternatives to see how they compare.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
|
||||
A few months ago, TJ DeVries (a Neovim core team member) coined the phrase "Personalised Development Environment" or PDE.
|
||||
|
||||
[I've been using Neovim full-time](https://www.oliverdavies.uk/blog/going-full-vim) since July 2021 - starting with no configuration to configuring it with Vimscript and later with Lua - setting options like line numbers and relative numbers, tabs and spaces, and indent and fold levels.
|
||||
[I've been using Neovim full-time]({{site.url}}/blog/going-full-vim) since July 2021 - starting with no configuration to configuring it with Vimscript and later with Lua - setting options like line numbers and relative numbers, tabs and spaces, and indent and fold levels.
|
||||
|
||||
|
||||
I evaluated and installed some initial plugins to add functionality that I needed. Some of them I still use, and some I've replaced with alternative plugins or built-in solutions that have been included in newer versions of Neovim.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- open-source
|
||||
---
|
||||
|
||||
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.
|
||||
Yesterday's email talked about [writing reusable, framework-agnostic packages]({{site.url}}/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.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ permalink: >-
|
|||
|
||||
I’m happy to have had a conference talk proposal accepted for what will be my first in-person conference since DrupalCamp London in February 2020.
|
||||
|
||||
I’ll be giving my "[Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/presentations/taking-flight-with-tailwind-css)" talk for the first time since February 2021, and in front of an in-person audience since June 2019.
|
||||
I’ll be giving my "[Taking Flight with Tailwind CSS]({{site.url}}/presentations/taking-flight-with-tailwind-css)" talk for the first time since February 2021, and in front of an in-person audience since June 2019.
|
||||
|
||||
The talk itself will need some updating. The last time I gave it, Tailwind CSS was on version 2.0.3. It’s now on version 3.2.2 and includes features like the just-in-time engine, arbitrary values and variants, container queries, and a load of new utility classes.
|
||||
|
||||
|
|
|
@ -12,6 +12,6 @@ Some only run continuous integration checks, like automated tests and static ana
|
|||
|
||||
Each tool has its configuration file with different settings and formats.
|
||||
|
||||
Rather than being too tightly coupled to a particular tool, I like to keep things as agnostic as possible and [use a run file](https://www.oliverdavies.uk/archive/2022/08/15/using-run-file-simplify-project-tasks) with separate `ci:build` and `ci:deploy` tasks.
|
||||
Rather than being too tightly coupled to a particular tool, I like to keep things as agnostic as possible and [use a run file]({{site.url}}/archive/2022/08/15/using-run-file-simplify-project-tasks) with separate `ci:build` and `ci:deploy` tasks.
|
||||
|
||||
This means that all the logic is within the run file rather than the CI tool-specific configuration file, so the file is shorter and cleaner; I can make changes to the CI tasks locally and quickly test changes and iterate, and also, as the logic is within the run file, I can easily switch to a different CI tool if needed without making changes to the tasks themselves.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- git
|
||||
---
|
||||
|
||||
[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?
|
||||
[Yesterday's email]({{site.url}}/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`.
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ After reading this, my question is, "Should you, or do you need to, create branc
|
|||
|
||||
These days, I use trunk-based development as much as possible, so I hardly ever create new branches, whether working on a project myself or with a team.
|
||||
|
||||
[I used to use Git Flow](https://www.oliverdavies.uk/presentations/git-flow) and create branches for every new feature and bug fix, but I remember, whilst demonstrating two work-in-progress features to a client, switching between the different branches caused my local site to break. Whilst it wasn’t a major issue, it wouldn't have seemed professional.
|
||||
[I used to use Git Flow]({{site.url}}/presentations/git-flow) and create branches for every new feature and bug fix, but I remember, whilst demonstrating two work-in-progress features to a client, switching between the different branches caused my local site to break. Whilst it wasn’t a major issue, it wouldn't have seemed professional.
|
||||
|
||||
In a team environment, feature branches are intended to keep different changes and different people's work separate.
|
||||
|
||||
|
|
|
@ -12,13 +12,13 @@ It doesn't need to be a whole feature. It could be a new class with its passing
|
|||
|
||||
It could be a small refactor - renaming a variable or class name that makes some code easier to read or removing some commented-out code that isn't doing anything other than adding visual clutter.
|
||||
|
||||
It could be updating some documentation or [writing a technical document](https://www.oliverdavies.uk/archive/2022/09/23/adrs-technical-design-documents); if you keep those in your version control repository, that would help you implement the following change or to make the documentation clearer for the next reader - whether that's you or someone else.
|
||||
It could be updating some documentation or [writing a technical document]({{site.url}}/archive/2022/09/23/adrs-technical-design-documents); if you keep those in your version control repository, that would help you implement the following change or to make the documentation clearer for the next reader - whether that's you or someone else.
|
||||
|
||||
Committing something at least once a day creates a different mindset to "I'll write everything and push it when it's done".
|
||||
|
||||
It makes you break up large tasks into multiple smaller ones and set mini-deadlines for yourself. I used to do the same when I commuted to work on a train and had a task for a freelance project to complete before I arrived. I used to think, "What can I start, finish and commit before I get there?" instead of leaving something incomplete.
|
||||
|
||||
You don't need to push your change to mainline. If you use the ["Ship, Show, Ask" approach](https://www.oliverdavies.uk/archive/2022/11/30/ship-show-or-ask) then you could commit to a temporary branch that you either merge yourself once you know it passes the checks, or to show or get feedback from other team members.
|
||||
You don't need to push your change to mainline. If you use the ["Ship, Show, Ask" approach]({{site.url}}/archive/2022/11/30/ship-show-or-ask) then you could commit to a temporary branch that you either merge yourself once you know it passes the checks, or to show or get feedback from other team members.
|
||||
|
||||
Practicing this becomes a habit, and if you're doing test-driven development and committing after every passing test or refactor, you'll find yourself pushing numerous changes a day.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ permalink: >-
|
|||
archive/2022/12/03/what-to-do-with-todo-comments
|
||||
---
|
||||
|
||||
[In a previous email](https://www.oliverdavies.uk/archive/2022/11/20/version-controlled-commented-out-code), I wrote about commented-out code and whether it should remain in a codebase - especially if it's version controlled and there's a commit log of all changes.
|
||||
[In a previous email]({{site.url}}/archive/2022/11/20/version-controlled-commented-out-code), I wrote about commented-out code and whether it should remain in a codebase - especially if it's version controlled and there's a commit log of all changes.
|
||||
|
||||
But what about TODO comments that remind you to do something?
|
||||
|
||||
|
|
|
@ -20,4 +20,4 @@ If my feature is incomplete, if it's feature flagged, I can commit and deploy it
|
|||
|
||||
If you wanted, you could enable a feature flag for a subset or a certain subsection of your users - allowing them to test it before making it available to everyone.
|
||||
|
||||
Another way I use feature flags is within a [multi-site Drupal application](https://www.oliverdavies.uk/archive/2022/11/13/how-i-manage-multiple-drupal-websites-using-the-same-codebase) to enable a different feature set per site and allow me to keep one version of the code for all sites to keep this easy to manage and maintain.
|
||||
Another way I use feature flags is within a [multi-site Drupal application]({{site.url}}/archive/2022/11/13/how-i-manage-multiple-drupal-websites-using-the-same-codebase) to enable a different feature set per site and allow me to keep one version of the code for all sites to keep this easy to manage and maintain.
|
||||
|
|
|
@ -15,7 +15,7 @@ I've written scripts to simplify common complex tasks and automated my local dev
|
|||
|
||||
Another main piece of automation I use is to create and manage the infrastructure my applications run in.
|
||||
|
||||
I've talked about it in my [Deploying PHP applications with Ansible and Ansistrano talk](https://www.oliverdavies.uk/talks/deploying-php-ansible-ansistrano), that before you can deploy an application, you need a server with the required packages installed to run it. You may also need a CDN endpoint, SSL certificate, DNS records, CORS policy, database server, container registry, object storage bucket or a number of various other things.
|
||||
I've talked about it in my [Deploying PHP applications with Ansible and Ansistrano talk]({{site.url}}/talks/deploying-php-ansible-ansistrano), that before you can deploy an application, you need a server with the required packages installed to run it. You may also need a CDN endpoint, SSL certificate, DNS records, CORS policy, database server, container registry, object storage bucket or a number of various other things.
|
||||
|
||||
Using automation tools like Terraform, Pulumi or Ansible, you can run a single command to create, update or destroy resources or your entire stack.
|
||||
|
||||
|
|
|
@ -12,12 +12,12 @@ I had some early presents this month and have been accepted to present talks at
|
|||
|
||||
## PHP Stoke
|
||||
|
||||
The first PHP Stoke meetup will be held at Genr8 Smithfield Works on the 12th of January. I'll be presenting "[Things you should know about PHP](https://www.oliverdavies.uk/presentations/things-you-should-know-about-php)". It'll be great to be the first speaker at this new meetup.
|
||||
The first PHP Stoke meetup will be held at Genr8 Smithfield Works on the 12th of January. I'll be presenting "[Things you should know about PHP]({{site.url}}/presentations/things-you-should-know-about-php)". It'll be great to be the first speaker at this new meetup.
|
||||
|
||||
## nor(DEV):con
|
||||
|
||||
The Norfolk Developers conference is in Norwich on the 23rd and 24th of February.
|
||||
|
||||
I'll be presenting "[Taking Flight about Tailwind CSS](https://www.oliverdavies.uk/presentations/taking-flight-with-tailwind-css)". It's been a while since I last gave this talk so I'm looking forward to updating it with the latest changes and new features in Tailwind CSS.
|
||||
I'll be presenting "[Taking Flight about Tailwind CSS]({{site.url}}/presentations/taking-flight-with-tailwind-css)". It's been a while since I last gave this talk so I'm looking forward to updating it with the latest changes and new features in Tailwind CSS.
|
||||
|
||||
It'll be great to be speaking at these events and hopefully others in 2023.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- tailwind-css
|
||||
---
|
||||
|
||||
It's been almost five years since I gave the first version of my "[Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/talks/taking-flight-with-tailwind-css)" talk at the Drupal Bristol meetup in January 2018.
|
||||
It's been almost five years since I gave the first version of my "[Taking Flight with Tailwind CSS]({{site.url}}/talks/taking-flight-with-tailwind-css)" talk at the Drupal Bristol meetup in January 2018.
|
||||
|
||||
It's a talk that I've updated every time I've given it, showing new rebuilt example UIs and the new features in the framework, as well as tweaking content like installation steps for different audiences.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- tailwind-css
|
||||
---
|
||||
|
||||
A great thing about [Tailwind CSS plugins](https://www.oliverdavies.uk/archive/2023/01/03/tailwind-css-extensibility-is-one-of-its-best-features) being written in JavaScript is that they can be tested using tools like Jest.
|
||||
A great thing about [Tailwind CSS plugins]({{site.url}}/archive/2023/01/03/tailwind-css-extensibility-is-one-of-its-best-features) being written in JavaScript is that they can be tested using tools like Jest.
|
||||
|
||||
Here's an example from https://github.com/opdavies/tailwindcss-plugin-jest-example (it may need updating to work with the latest Tailwind versions or to use the latest best practices):
|
||||
|
||||
|
|
|
@ -10,11 +10,11 @@ tags:
|
|||
|
||||
Tailwind CSS is based on the "utility-first" approach, where the majority of styling is done using utility CSS classes. You can still add additional custom styles if needed if there is something that can't be achieved with utilities or would be better placed in a custom CSS stylesheet.
|
||||
|
||||
Utility-last is the opposite approach, where a small number of utilities are used alongside other CSS styles or another framework. This is common when [adding a utility-based framework like Tailwind CSS](https://www.oliverdavies.uk/archive/2023/01/05/adding-tailwind-to-an-existing-project) to an existing project and you want to use it for a new page or component whilst keeping the existing styles.
|
||||
Utility-last is the opposite approach, where a small number of utilities are used alongside other CSS styles or another framework. This is common when [adding a utility-based framework like Tailwind CSS]({{site.url}}/archive/2023/01/05/adding-tailwind-to-an-existing-project) to an existing project and you want to use it for a new page or component whilst keeping the existing styles.
|
||||
|
||||
This is what I did when I started learning Tachyons, and later Tailwind CSS. My project already had styling from another CSS framework, I started using utility classes and over time refactored until only utilities were used and the other styles could be removed.
|
||||
|
||||
You could do the opposite too, and refactor groups of utilities into a CSS component, either by using Tailwind's `@apply` directive or [writing a plugin](https://www.oliverdavies.uk/archive/2023/01/03/tailwind-css-extensibility-is-one-of-its-best-features).
|
||||
You could do the opposite too, and refactor groups of utilities into a CSS component, either by using Tailwind's `@apply` directive or [writing a plugin]({{site.url}}/archive/2023/01/03/tailwind-css-extensibility-is-one-of-its-best-features).
|
||||
|
||||
If you did want to use Tailwind for a small number of utilities, by default, it will only generate classes that are used within HTML or template files, but it can also be configured to only use the core modules that you specify - preventing Developers from using unwanted utility based on the rules for that project.
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ I took a bit of time off from these emails whilst I was preparing for the first
|
|||
|
||||
It was a great event with around 35 attendees and two other speakers as well as myself.
|
||||
|
||||
The [latest version of my slides are online](https://www.oliverdavies.uk/presentations/things-you-should-know-about-php) as well [some updated resources](https://www.oliverdavies.uk/things-about-php).
|
||||
The [latest version of my slides are online]({{site.url}}/presentations/things-you-should-know-about-php) as well [some updated resources]({{site.url}}/things-about-php).
|
||||
|
||||
My next talk will be at the Norfolk Developers conference next month where I'll be presenting an updated version of [Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/presentations/taking-flight-with-tailwind-css).
|
||||
My next talk will be at the Norfolk Developers conference next month where I'll be presenting an updated version of [Taking Flight with Tailwind CSS]({{site.url}}/presentations/taking-flight-with-tailwind-css).
|
||||
|
||||
If you have a topic idea for a talk or would like me to speak at your meetup or conference, please get in touch.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- php
|
||||
---
|
||||
|
||||
The talk that I gave last week at PHP Stoke was [Things to know about PHP](https://www.oliverdavies.uk/presentations/things-you-should-know-about-php) - a talk that I was originally asked to give at the Swansea Software Development Meetup (SSDC) in January 2019, and this was the second time that I've been asked to give this talk at a PHP meetup.
|
||||
The talk that I gave last week at PHP Stoke was [Things to know about PHP]({{site.url}}/presentations/things-you-should-know-about-php) - a talk that I was originally asked to give at the Swansea Software Development Meetup (SSDC) in January 2019, and this was the second time that I've been asked to give this talk at a PHP meetup.
|
||||
|
||||
Originally to give a group of various Software Developers an introduction to PHP, I didn't want the talk to be focused just on the language itself and be a walkthough the PHP manual.
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Last month, I started my first Drupal 10 project for a client.
|
|||
|
||||
I'm proud that over a year of that time was spent working for the Drupal Association where I improved the Drupal.org websites and resolved issues that would have blocked the Drupal 8 release in 2015.
|
||||
|
||||
I'm also happy to have [presented talks and workshops](https://www.oliverdavies.uk/presentations) at events like DrupalCamps, Drupal Developer Days and twice at DrupalCon. I've also organised Drupal events such as the Drupal Bristol meetup and DrupalCamp Bristol conference.
|
||||
I'm also happy to have [presented talks and workshops]({{site.url}}/presentations) at events like DrupalCamps, Drupal Developer Days and twice at DrupalCon. I've also organised Drupal events such as the Drupal Bristol meetup and DrupalCamp Bristol conference.
|
||||
|
||||
I've had opportunities to contribute to open-source by having patches committed to Drupal core and maintaining modules and themes like [Override Node Options](https://www.drupal.org/project/override_node_options) and the [Tailwind CSS starter kit](https://www.drupal.org/project/tailwindcss). I've also mentored and helped others to get their first commits to Drupal core and open-source.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
|||
- tailwind-css
|
||||
---
|
||||
|
||||
In my [Taking Flight with Tailwind CSS talk](https://www.oliverdavies.uk/talks/taking-flight-with-tailwind-css), I've described Tailwind as a CSS utility class generator. You write a configuration file that Tailwind reads and generates the appropriate classes.
|
||||
In my [Taking Flight with Tailwind CSS talk]({{site.url}}/talks/taking-flight-with-tailwind-css), I've described Tailwind as a CSS utility class generator. You write a configuration file that Tailwind reads and generates the appropriate classes.
|
||||
|
||||
Yesterday I mentioned the [PHP South West user group](https://phpsw.uk) website. It's a project that [I worked on in November 2017](https://twitter.com/opdavies/status/934488762276564993) and uses Tailwind 0.5.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
|||
- tailwind-css
|
||||
---
|
||||
|
||||
Previously when I gave my [Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/presentations/taking-flight-with-tailwind-css) talk, I created examples that relate to the event such as something related to that technology or event.
|
||||
Previously when I gave my [Taking Flight with Tailwind CSS]({{site.url}}/presentations/taking-flight-with-tailwind-css) talk, I created examples that relate to the event such as something related to that technology or event.
|
||||
|
||||
The nor(DEV):con website already uses Tailwind CSS so I've been looking for other examples and have started to build some of the [Bootstrap CSS components](https://getbootstrap.com/docs/4.0/examples) with Tailwind CSS.
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- git
|
||||
---
|
||||
|
||||
An important thing when using a tool like [git bisect](https://www.oliverdavies.uk/archive/2023/01/23/debugging-with-git-bisect) as well as reviewing pull/merge requests and commits is to have small (aka "atomic") commits.
|
||||
An important thing when using a tool like [git bisect]({{site.url}}/archive/2023/01/23/debugging-with-git-bisect) as well as reviewing pull/merge requests and commits is to have small (aka "atomic") commits.
|
||||
|
||||
Commits with small changes make them easier to review and, if needed, to revert and debug with bisect. If a commit has ten new or changed lines, it's much easier to see and fix a bug than if the commit had a hundred lines.
|
||||
|
||||
|
@ -20,4 +20,4 @@ Also take some time to write good, informative commit messages.
|
|||
|
||||
As well as the short one-line subject, you can add as much detail as you need to the body of the message about the change that's being committed, why it's needed, what other approaches were considered or tried, as well as links to supporting documentation such as ADRs, technical design documents or diagrams.
|
||||
|
||||
Having as much information as possible makes it much easier when someone needs to review or fix a specific commit. I like to use the [conventional commits specification](https://www.oliverdavies.uk/archive/2022/09/01/conventional-commits-changelogs), though the main objective is to have all of the information documented so it's available in the future.
|
||||
Having as much information as possible makes it much easier when someone needs to review or fix a specific commit. I like to use the [conventional commits specification]({{site.url}}/archive/2022/09/01/conventional-commits-changelogs), though the main objective is to have all of the information documented so it's available in the future.
|
||||
|
|
|
@ -16,10 +16,10 @@ But should you do it?
|
|||
|
||||
The answer will be "it depends" based on the project or team, but I'm personally not a fan of squashing commits.
|
||||
|
||||
Even though I commit small changes often, I put quite a bit of effort into [crafting commits and writing detailed commit messages](https://www.oliverdavies.uk/archive/2023/01/24/small-commits-and-good-commit-messges) that capture the reason for each change. If the commits are squashed, either the messages will be combined into one extra-long commit message or I've seen them be deleted completely.
|
||||
Even though I commit small changes often, I put quite a bit of effort into [crafting commits and writing detailed commit messages]({{site.url}}/archive/2023/01/24/small-commits-and-good-commit-messges) that capture the reason for each change. If the commits are squashed, either the messages will be combined into one extra-long commit message or I've seen them be deleted completely.
|
||||
|
||||
One large commit message would be very difficult to read and connect specific messages with their changes, and deleting the commit body would lose the history completely and waste the time it took to write the messages and craft the commits. It may be available within the pull or merge request page but there's no guarantee that you'll continue to use the same repository hosting service in the future.
|
||||
|
||||
One large commit would also be difficult to debug if there was an error. If the whole feature was added in a single commit, tools like [git bisect](https://www.oliverdavies.uk/archive/2023/01/23/debugging-with-git-bisect) would no longer work and a single commit couldn't be simply reverted if it contained a bug.
|
||||
One large commit would also be difficult to debug if there was an error. If the whole feature was added in a single commit, tools like [git bisect]({{site.url}}/archive/2023/01/23/debugging-with-git-bisect) would no longer work and a single commit couldn't be simply reverted if it contained a bug.
|
||||
|
||||
I prefer to keep the original small commits and instead prefer to use rebasing and only fast-forward merges to avoid merge commits and keep a simple, linear history in my Git log, and be able to easily read, find and, if needed, fix the code that's been committed.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- astro
|
||||
---
|
||||
|
||||
Since first setting it first during Simon Vrachliotis' workshops, I've started evaluating [Astro](https://astro.build) as an option for building static websites alongside PHP options like Sculpin and Jigsaw, and used it to rebuild [my personal website](https://www.oliverdavies.uk).
|
||||
Since first setting it first during Simon Vrachliotis' workshops, I've started evaluating [Astro](https://astro.build) as an option for building static websites alongside PHP options like Sculpin and Jigsaw, and used it to rebuild [my personal website]({{site.url}}).
|
||||
|
||||
As well as being a good opportunity to get more experience with JavaScript, TypeScript and JSX templating, Astro includes a number of features that were useful for my website, such as code syntax highlighting and markdown support out of the box, as well as integrations to set up Tailwind CSS, sitemaps and images that I needed.
|
||||
|
||||
|
@ -16,4 +16,4 @@ Its file-based routing is very familiar to what I'd been working with in Next.js
|
|||
|
||||
A static HTML version of the site can be generated which can be uploaded to a web server - like with other static site generators - with the advantage that Astro includes no JavaScript by default.
|
||||
|
||||
As well as my personal website, I've been using Astro for some other mini-projects including [building Bootstrap components with Tailwind](https://www.oliverdavies.uk/archive/2023/01/22/building-bootstrap-css-examples-with-tailwind), and I'm using it for the updated examples for my Tailwind CSS talk at nor(DEV):con in a couple of weeks time.
|
||||
As well as my personal website, I've been using Astro for some other mini-projects including [building Bootstrap components with Tailwind]({{site.url}}/archive/2023/01/22/building-bootstrap-css-examples-with-tailwind), and I'm using it for the updated examples for my Tailwind CSS talk at nor(DEV):con in a couple of weeks time.
|
||||
|
|
|
@ -8,7 +8,7 @@ tags:
|
|||
- astro
|
||||
---
|
||||
|
||||
As well as [fetching API data](https://www.oliverdavies.uk/archive/2023/02/08/fetching-api-data-with-astro), you can also use Astro to generate your own API endpoints.
|
||||
As well as [fetching API data]({{site.url}}/archive/2023/02/08/fetching-api-data-with-astro), you can also use Astro to generate your own API endpoints.
|
||||
|
||||
This is an example of an endpoint that I recently created as part of a demo application:
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ tags:
|
|||
|
||||
Tonight I was lucky to speak at the first [Bristol Software Development Meetup event](https://www.meetup.com/south-wales-tech/events/291092930), organised by South Wales Tech.
|
||||
|
||||
Following a great talk from Tom Vaughan, I gave an updated version of my [Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/talks/taking-flight-with-tailwind-css) talk.
|
||||
Following a great talk from Tom Vaughan, I gave an updated version of my [Taking Flight with Tailwind CSS]({{site.url}}/talks/taking-flight-with-tailwind-css) talk.
|
||||
|
||||
It's a talk that I first gave in January 2018 and one that I need to continuously update so that it's up to date with the latest version of the framework. The last time I gave this talk was in February 2021 so there was quite a lot of new things to cover.
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ tags:
|
|||
|
||||
Last week, I was at the Norfolk Developer's Conference, aka `nor(DEV):con` - my first in-person conference since DrupalCamp London in February 2020.
|
||||
|
||||
I've been excited about this conference since I received the acceptance email in November, inviting me to give my [Taking Flight with Tailwind CSS](https://www.oliverdavies.uk/talks/taking-flight-with-tailwind-css) talk.
|
||||
I've been excited about this conference since I received the acceptance email in November, inviting me to give my [Taking Flight with Tailwind CSS]({{site.url}}/talks/taking-flight-with-tailwind-css) talk.
|
||||
|
||||
The talk itself went well and included some changes following the Bristol Software Development meetup last month. The last time I gave this talk prior to that was remotely for Nashville PHP in February 2021 and a lot of new things have been added to Tailwind CSS since then for me to include.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
|||
- localgov-drupal
|
||||
---
|
||||
|
||||
After [previously looking at the LocalGov Drupal distribution](https://www.oliverdavies.uk/archive/2022/10/24/looking-at-localgov-drupal), today I added a LocalGov Drupal example to my [Docker Examples repository](https://github.com/opdavies/docker-examples/tree/main/drupal-localgov).
|
||||
After [previously looking at the LocalGov Drupal distribution]({{site.url}}/archive/2022/10/24/looking-at-localgov-drupal), today I added a LocalGov Drupal example to my [Docker Examples repository](https://github.com/opdavies/docker-examples/tree/main/drupal-localgov).
|
||||
|
||||
Based on the Drupal 10 example, the LocalGov Drupal example used Composer's `create-project` command to scaffold the project plus some additional configuration files such as the `Dockerfile`, `docker-compose.yaml` and a `justfile`.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ I'm always working on various personal and client projects, and they contain a l
|
|||
|
||||
The majority of those files are the same with some slight configuration for each project - such as whether it uses `web` or `docroot`, or which paths are checked with static analysis or for coding standards issues.
|
||||
|
||||
I've given a talk called [Working with Workspace](https://www.oliverdavies.uk/presentations/working-with-workspace) - a tool that we used at an agency I worked at. It had two functions - to execute project tasks and to generate configuration files from templates.
|
||||
I've given a talk called [Working with Workspace]({{site.url}}/presentations/working-with-workspace) - a tool that we used at an agency I worked at. It had two functions - to execute project tasks and to generate configuration files from templates.
|
||||
|
||||
I use a `justfile` to execute tasks and commands but needed to write my own tool to generate the configuration files.
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@ tags:
|
|||
|
||||
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/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 tools like [Pulumi, Ansible and Terraform]({{site.url}}/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/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.
|
||||
[I wrote a tool for generating configuration files for each project]({{site.url}}/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.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
|
||||
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/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 recently added `node` support to my [build configuration file generator]({{site.url}}/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.
|
||||
|
||||
|
|
|
@ -14,6 +14,6 @@ Whether it's using a standard component like a navbar or card, or it's using the
|
|||
|
||||
As Tailwind includes no components (other than the `container`) and only has low-level utility classes for things like spacing and colours (amongst many other things), you can build radically different-looking websites with the same classes.
|
||||
|
||||
There are some [examples of UIs that I've rebuilt](https://www.oliverdavies.uk/blog/uis-ive-rebuilt-tailwind-css) and some websites that I show in my [Taking Flight with Tailwind CSS talk](https://www.oliverdavies.uk/talks/taking-flight-with-tailwind-css).
|
||||
There are some [examples of UIs that I've rebuilt]({{site.url}}/blog/uis-ive-rebuilt-tailwind-css) and some websites that I show in my [Taking Flight with Tailwind CSS talk]({{site.url}}/talks/taking-flight-with-tailwind-css).
|
||||
|
||||
If you take a look, you'll see what I mean.
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
- vim
|
||||
---
|
||||
|
||||
Since [July 2021](https://www.oliverdavies.uk/blog/going-full-vim), I've used Neovim full-time for my development work and writing.
|
||||
Since [July 2021]({{site.url}}/blog/going-full-vim), I've used Neovim full-time for my development work and writing.
|
||||
|
||||
Whilst Vim and Neovim are minimal by default, its functionality can be extended by adding plugins.
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ permalink: >-
|
|||
tags: []
|
||||
---
|
||||
|
||||
Yesterday, I wanted to make a breaking change to my [build-configs project](https://www.oliverdavies.uk/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) - changing the default database credentials that are used by Docker Compose.
|
||||
Yesterday, I wanted to make a breaking change to my [build-configs project]({{site.url}}/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) - changing the default database credentials that are used by Docker Compose.
|
||||
|
||||
As I have several projects based on generated files by the tool, changing the values could cause issues in those projects in the future and this is something that I wanted to avoid.
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
- docker
|
||||
---
|
||||
|
||||
A side effect of [using a tool to generate build configuration files](https://www.oliverdavies.uk/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) with templates is the consistency that it introduces.
|
||||
A side effect of [using a tool to generate build configuration files]({{site.url}}/archive/2023/03/04/why-i-built-a-tool-to-generate-configuration-files) with templates is the consistency that it introduces.
|
||||
|
||||
The majority of my projects use a PHP-FPM or PHP CLI container. In my Docker Compose file, the service was mostly named `php` but sometimes it was `php-fpm`. In the templated file, it's always named `php`.
|
||||
|
||||
|
|
|
@ -37,4 +37,4 @@ $entity_type_manager = \Drupal::entityTypeManager();
|
|||
|
||||
I prefer not to have to consistently think about which to use and, if possible, like to use standard approaches in different codebases whether I'm working on a Drupal project, a Symfony project, or a PHP library.
|
||||
|
||||
Plus, I get to use new PHP features like [promoted constructor properties](https://www.oliverdavies.uk/archive/2023/04/12/cleaner-php-code-with-promoted-constructor-properties) if everything is named in the same format.
|
||||
Plus, I get to use new PHP features like [promoted constructor properties]({{site.url}}/archive/2023/04/12/cleaner-php-code-with-promoted-constructor-properties) if everything is named in the same format.
|
||||
|
|
|
@ -16,7 +16,7 @@ He says that micro-refactors are safer than big refactors and have less chance o
|
|||
|
||||
## What's the issue?
|
||||
|
||||
I agree with what Peter says and also encourage people to make small refactors to the code they're working on and follow the "[Boy Scout rule](https://www.oliverdavies.uk/archive/2022/12/22/the-boy-scout-rule)".
|
||||
I agree with what Peter says and also encourage people to make small refactors to the code they're working on and follow the "[Boy Scout rule]({{site.url}}/archive/2022/12/22/the-boy-scout-rule)".
|
||||
|
||||
The main blocker to this I've seen is Git workflows that require people to work in separate branches that need to be reviewed before being merged, as this slows down the process.
|
||||
|
||||
|
|
|
@ -17,4 +17,4 @@ I can provide an initial Drupal project skeleton built using `build-configs`, an
|
|||
|
||||
I can retrofit it to an existing codebase, but as this will be different every time, I'll need more information to give a price.
|
||||
|
||||
See https://www.oliverdavies.uk/build-configs for more information and, as a list subscriber, use the code `dailyconfigs` to get an early-bird discount.
|
||||
See {{site.url}}/build-configs for more information and, as a list subscriber, use the code `dailyconfigs` to get an early-bird discount.
|
||||
|
|
|
@ -28,4 +28,4 @@ It's definitely work upgrading, in my opinion, as the updates between Drupal 8,
|
|||
|
||||
Hit reply and let me know what you think.
|
||||
|
||||
P.S. Are you still using Drupal 7 and don’t know what’s involved to upgrade to Drupal 10? Book a [Drupal 7 upgrade consultation call](https://www.oliverdavies.uk/call).
|
||||
P.S. Are you still using Drupal 7 and don’t know what’s involved to upgrade to Drupal 10? Book a [Drupal 7 upgrade consultation call]({{site.url}}/call).
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
- phpc
|
||||
---
|
||||
|
||||
The answer to "[Should Drupal 7 support be extended again?](https://www.oliverdavies.uk/archive/2023/05/01/should-drupal-7-support-be-extended-again)" might depend on who you ask.
|
||||
The answer to "[Should Drupal 7 support be extended again?]({{site.url}}/archive/2023/05/01/should-drupal-7-support-be-extended-again)" might depend on who you ask.
|
||||
|
||||
If you ask a Developer or agency, the answer would likely be that it shouldn't be extended again, and D7 should be sunsetted.
|
||||
|
||||
|
@ -22,4 +22,4 @@ Some people won't upgrade regardless and will continue until their site breaks.
|
|||
|
||||
That would be messy (and costly) to fix, though!
|
||||
|
||||
P.S. Are you still using Drupal 7 and don’t know what’s involved to upgrade to Drupal 10? Book a [Drupal 7 upgrade consultation call](https://www.oliverdavies.uk/call).
|
||||
P.S. Are you still using Drupal 7 and don’t know what’s involved to upgrade to Drupal 10? Book a [Drupal 7 upgrade consultation call]({{site.url}}/call).
|
||||
|
|
|
@ -16,4 +16,4 @@ Whilst there's no official announcement yet, it seems this is the final extensio
|
|||
|
||||
Of course, it doesn't mean all of the contributed modules, themes and distributions will be supported or updated until then, but this will give additional time to plan and migrate the remaining Drupal 7 websites whilst still giving clarity by setting a final date that will not be extended again.
|
||||
|
||||
If you're still on Drupal 7 and need to learn more about upgrading to Drupal 10, [book an advisory call](https://www.oliverdavies.uk/call) or [an upgrade roadmap](https://www.oliverdavies.uk/drupal7) for your Drupal 7 project.
|
||||
If you're still on Drupal 7 and need to learn more about upgrading to Drupal 10, [book an advisory call]({{site.url}}/call) or [an upgrade roadmap]({{site.url}}/drupal7) for your Drupal 7 project.
|
||||
|
|
|
@ -33,4 +33,4 @@ Other quality tools like static analysis can also be considered testing tools.
|
|||
|
||||
## Want to learn more?
|
||||
|
||||
If you want to learn more about automated testing in Drupal, [I have a talk about that](https://www.oliverdavies.uk/talks/tdd-test-driven-drupal).
|
||||
If you want to learn more about automated testing in Drupal, [I have a talk about that]({{site.url}}/talks/tdd-test-driven-drupal).
|
||||
|
|
|
@ -22,4 +22,4 @@ In that case, those modules will have no new features, bug fixes or security upd
|
|||
|
||||
You may have a lot of custom code that needs to be ported to Drupal 10 or a complex data structure that needs to be migrated, These things will take time, so it's best not to leave it until the last minute.
|
||||
|
||||
If you're stuck on Drupal 7, book an [upgrade consultation call](https://www.oliverdavies.uk/call) with me or purchase an [upgrade roadmap for your project](https://www.oliverdavies.uk/drupal7) and I'll get you unstuck.
|
||||
If you're stuck on Drupal 7, book an [upgrade consultation call]({{site.url}}/call) with me or purchase an [upgrade roadmap for your project]({{site.url}}/drupal7) and I'll get you unstuck.
|
||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
|||
- open-source
|
||||
---
|
||||
|
||||
Note: The numbers within this post are taken from my [Test-Driven Drupal talk](https://www.oliverdavies.uk/presentations/tdd-test-driven-drupal), in which I also talk about this.
|
||||
Note: The numbers within this post are taken from my [Test-Driven Drupal talk]({{site.url}}/presentations/tdd-test-driven-drupal), in which I also talk about this.
|
||||
|
||||
My first commit to the 7.x-1.x branch of the Override Node Options module was in March 2012. According to Drupal.org, the module was used on 9,212 websites then.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ tags:
|
|||
- test-driven-development
|
||||
---
|
||||
|
||||
If you have multiple implementations of a service, as I [mentioned in yesterday's email](https://www.oliverdavies.uk/archive/2023/08/23/dont-use-third-party-services-directly), you need to ensure they all provide the same functionality.
|
||||
If you have multiple implementations of a service, as I [mentioned in yesterday's email]({{site.url}}/archive/2023/08/23/dont-use-third-party-services-directly), you need to ensure they all provide the same functionality.
|
||||
|
||||
You need to be able to run the same tests against each implementation and have them pass.
|
||||
|
||||
|
|
|
@ -22,4 +22,4 @@ Tests written outside-in are slower to run as they need to perform tasks like HT
|
|||
|
||||
Which do you prefer? Reply and let me know.
|
||||
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/09/13/which-type-of-test-should-i-use
|
||||
[yesterday]: {{site.url}}/archive/2023/09/13/which-type-of-test-should-i-use
|
||||
|
|
|
@ -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/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.
|
||||
I'm following [the outside-in approach]({{site.url}}/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:
|
||||
|
||||
|
|
|
@ -11,4 +11,4 @@ tags:
|
|||
|
||||
This week, I'll be in Lille, France for DrupalCon Europe, where I'm presenting a session on automated testing and test-driven development in Drupal.
|
||||
|
||||
I'll be taking a short break from these emails to enjoy the conference, focus on my talk, and finish my <a href="https://www.oliverdavies.uk/atdc">free email course on automated testing in Drupal</a>.
|
||||
I'll be taking a short break from these emails to enjoy the conference, focus on my talk, and finish my <a href="{{site.url}}/atdc">free email course on automated testing in Drupal</a>.
|
||||
|
|
|
@ -31,4 +31,4 @@ If not, or if you've moved back to a more traditional approach, why?
|
|||
|
||||
Reply and let me know.
|
||||
|
||||
[talk]: https://www.oliverdavies.uk/talks/decoupling-drupal-vuejs
|
||||
[talk]: {{site.url}}/talks/decoupling-drupal-vuejs
|
||||
|
|
|
@ -35,4 +35,4 @@ If the Association or Drupal weren't there, I wouldn't be able to provide those
|
|||
|
||||
[association]: https://www.drupal.org/association
|
||||
[staff]: https://www.drupal.org/association/staff
|
||||
[team coaching]: https://www.oliverdavies.uk/team-coaching
|
||||
[team coaching]: {{site.url}}/team-coaching
|
||||
|
|
|
@ -19,4 +19,4 @@ After sending [yesterday's email][yesterday], Dave Hall replied [with a LinkedIn
|
|||
Just because you can do something, it doesn't mean you should.
|
||||
|
||||
[comment]: https://www.linkedin.com/feed/update/urn:li:activity:7124401304315027456
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/10/28/can-you-move-faster-without-tests
|
||||
[yesterday]: {{site.url}}/archive/2023/10/28/can-you-move-faster-without-tests
|
||||
|
|
|
@ -29,5 +29,5 @@ If you have an existing solution, I don't think it will be removed or abandoned
|
|||
|
||||
But, for new Drupal users and teams, one official development environment would be a big plus.
|
||||
|
||||
[mine]: https://www.oliverdavies.uk/archive/2022/08/21/2022-08-21
|
||||
[mine]: {{site.url}}/archive/2022/08/21/2022-08-21
|
||||
[post]: https://kevinquillen.com/ddev-being-considered-official-drupal-development-environment
|
||||
|
|
|
@ -23,4 +23,4 @@ There will be no further releases of Drupal 9 so you need to upgrade.
|
|||
|
||||
If you're stuck on Drupal 9, 8, or 7, get unstuck with a [Drupal upgrade roadmap][roadmap] and get directions how to upgrade to Drupal 10.
|
||||
|
||||
[roadmap]: https://www.oliverdavies.uk/drupal-upgrade
|
||||
[roadmap]: {{site.url}}/drupal-upgrade
|
||||
|
|
|
@ -23,4 +23,4 @@ I've had paid development work directly from my open-source code contributions,
|
|||
|
||||
Like companies, if you make money from open-source software - either a salary or from paid projects or courses - it's in your interest to contribute so the software you use is maintained and improved so it's the best it can be.
|
||||
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/11/03/why-your-company-should-contribute-to-open-source-software
|
||||
[yesterday]: {{site.url}}/archive/2023/11/03/why-your-company-should-contribute-to-open-source-software
|
||||
|
|
|
@ -18,4 +18,4 @@ I have the first guests lined up, including some speakers from last month's Drup
|
|||
If you'd like to be a guest, [get in touch][form] and let me know what you'd like to discuss.
|
||||
|
||||
[form]: https://forms.gle/wdVqmEyQSWUx8cnm8
|
||||
[podcast]: https://www.oliverdavies.uk/podcast
|
||||
[podcast]: {{site.url}}/podcast
|
||||
|
|
|
@ -21,4 +21,4 @@ Thank you, Matt, for being the first guest on the Beyond Blocks podcast.
|
|||
|
||||
I have other guests booked for this week, so the episode with Matt will be [published soon][podcast].
|
||||
|
||||
[podcast]: https://www.oliverdavies.uk/podcast
|
||||
[podcast]: {{site.url}}/podcast
|
||||
|
|
|
@ -24,5 +24,5 @@ If you have any questions, hit reply and let me know!
|
|||
|
||||
[commerce_example]: https://github.com/opdavies/docker-example-drupal-commerce-kickstart
|
||||
[example]: https://github.com/opdavies/docker-example-drupal
|
||||
[slides]: https://www.oliverdavies.uk/presentations/building-build-configs
|
||||
[video]: https://www.oliverdavies.uk/build-configs
|
||||
[slides]: {{site.url}}/presentations/building-build-configs
|
||||
[video]: {{site.url}}/build-configs
|
||||
|
|
|
@ -12,7 +12,7 @@ tags:
|
|||
- beyond-blocks
|
||||
---
|
||||
|
||||
Today, I released [the first episode of the "Beyond Blocks" podcast](https://www.oliverdavies.uk/podcast/1-retrofit).
|
||||
Today, I released [the first episode of the "Beyond Blocks" podcast]({{site.url}}/podcast/1-retrofit).
|
||||
|
||||
I spoke with Matt Glaman - Principal Software Engineer at Acquia and author of Retrofit.
|
||||
|
||||
|
@ -20,4 +20,4 @@ Retrofit makes it easier to upgrade from Drupal 7 by adding compatibility layers
|
|||
|
||||
I've been aware of Matt and his work for some time, including his work on Drupal Commerce, so it was great to speak with him and for him to be the first guest on the podcast.
|
||||
|
||||
Future episodes will be [published online](https://www.oliverdavies.uk/podcast) weekly, so feel free to subscribe and let me know if you have feedback, suggestions for future guests and topics, or want to be a guest.
|
||||
Future episodes will be [published online]({{site.url}}/podcast) weekly, so feel free to subscribe and let me know if you have feedback, suggestions for future guests and topics, or want to be a guest.
|
||||
|
|
|
@ -16,4 +16,4 @@ tags:
|
|||
|
||||
We discuss his first time DrupalCon and, more specifically, his session "Drupal's Alternate Realities" - a "Birds of a Feather" (BoF) session presenting some history, but mainly the different ways to tackle a problem in Drupal using different methodologies.
|
||||
|
||||
[episode]: https://www.oliverdavies.uk/podcast/2-alternate-realities
|
||||
[episode]: {{site.url}}/podcast/2-alternate-realities
|
||||
|
|
|
@ -47,6 +47,6 @@ It's quicker to create and onboard projects using existing configurations instea
|
|||
|
||||
If you want to see an example, [watch this video][video] where I set up a new Drupal 10 project from nothing to running website in less than a minute.
|
||||
|
||||
[build configs]: https://www.oliverdavies.uk/build-configs
|
||||
[talk]: https://www.oliverdavies.uk/presentations/building-build-configs
|
||||
[build configs]: {{site.url}}/build-configs
|
||||
[talk]: {{site.url}}/presentations/building-build-configs
|
||||
[video]: https://www.youtube.com/watch?v=LkhsdmxReUc
|
||||
|
|
|
@ -20,4 +20,4 @@ In this episode, Niklas and I discussed his first experience of DrupalCon, prese
|
|||
|
||||
[Listen to the episode now][episode].
|
||||
|
||||
[episode]: https://www.oliverdavies.uk/podcast/3-non-technical-contribution
|
||||
[episode]: {{site.url}}/podcast/3-non-technical-contribution
|
||||
|
|
|
@ -49,4 +49,4 @@ Again, if you haven't used PHPStan or static analysis before, maybe stick with a
|
|||
|
||||
If you start with a lower level, you can increase it later.
|
||||
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/11/27/finding-the-best-test-base
|
||||
[yesterday]: {{site.url}}/archive/2023/11/27/finding-the-best-test-base
|
||||
|
|
|
@ -22,5 +22,5 @@ Level 0 includes:
|
|||
|
||||
P.S. If you want to utilise PHPStan and static analysis on your development team and get fewer bugs, I have [availability for team coaching][coaching]. I'll show you how!
|
||||
|
||||
[coaching]: https://www.oliverdavies.uk/team-coaching
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/11/28/which-phpstan-level-should-you-use
|
||||
[coaching]: {{site.url}}/team-coaching
|
||||
[yesterday]: {{site.url}}/archive/2023/11/28/which-phpstan-level-should-you-use
|
||||
|
|
|
@ -44,4 +44,4 @@ We didn't need to clean them up or refactor them beforehand. We didn't need to d
|
|||
|
||||
[null user module]: https://www.drupal.org/project/null_user
|
||||
[system user module]: https://www.drupal.org/project/system_user
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/12/04/writing-contrib-modules-as-glue-between-your-custom-code
|
||||
[yesterday]: {{site.url}}/archive/2023/12/04/writing-contrib-modules-as-glue-between-your-custom-code
|
||||
|
|
|
@ -10,7 +10,7 @@ tags:
|
|||
- contribution
|
||||
---
|
||||
|
||||
An argument against the [contribution-first and open-source-first approach](https://www.oliverdavies.uk/archive/2023/12/01/the-contribution-first-workflow) is that it takes longer than writing custom code.
|
||||
An argument against the [contribution-first and open-source-first approach]({{site.url}}/archive/2023/12/01/the-contribution-first-workflow) is that it takes longer than writing custom code.
|
||||
|
||||
I think that this is due to thinking that you need to cover all use cases within the code if it's open-sourced, whereas, in custom code, you only write the code you need.
|
||||
|
||||
|
|
|
@ -17,4 +17,4 @@ We discussed focussing on delivering value, prioritising based on usefulness to
|
|||
|
||||
[Listen to the episode now][listen].
|
||||
|
||||
[listen]: https://www.oliverdavies.uk/podcast/4-ed-crompton-oxfam-case-study
|
||||
[listen]: {{site.url}}/podcast/4-ed-crompton-oxfam-case-study
|
||||
|
|
|
@ -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/archive/2023/12/08/dont-just-rewrite
|
||||
[yesterday]: {{site.url}}/archive/2023/12/08/dont-just-rewrite
|
||||
|
|
|
@ -60,5 +60,5 @@ Thanks to everyone who completed the survey for their feedback.
|
|||
|
||||
P.S. If you'd like your own software development training or coaching, including automated testing and test-driven development, I currently have availability for [team coaching] and [private talks and workshops][workshops].
|
||||
|
||||
[team coaching]: https://www.oliverdavies.uk/team-coaching
|
||||
[workshops]: https://www.oliverdavies.uk/pricing
|
||||
[team coaching]: {{site.url}}/team-coaching
|
||||
[workshops]: {{site.url}}/pricing
|
||||
|
|
|
@ -25,4 +25,4 @@ If you're starting a new project, try starting with an appropriate distribution
|
|||
|
||||
Don't know if using a distribution could help for you? [Book a 1-on-1 consulting call][call], and I'll help you out.
|
||||
|
||||
[call]: https://www.oliverdavies.uk/call
|
||||
[call]: {{site.url}}/call
|
||||
|
|
|
@ -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/archive/2023/12/14/save-time-and-effort-with-drupal-distributions)
|
||||
[drupal distribution]({{site.url}}/archive/2023/12/14/save-time-and-effort-with-drupal-distributions)
|
||||
|
|
|
@ -19,5 +19,5 @@ I use one of Dan's other open-source projects - Phpactor - within Neovim, and he
|
|||
|
||||
[Listen to the episode now][episode], and I'll be back with more in the New Year.
|
||||
|
||||
[episode]: https://www.oliverdavies.uk/podcast/6-dan-leech-php-tui
|
||||
[podcast]: https://www.oliverdavies.uk/podcast
|
||||
[episode]: {{site.url}}/podcast/6-dan-leech-php-tui
|
||||
[podcast]: {{site.url}}/podcast
|
||||
|
|
|
@ -25,4 +25,4 @@ Start small, keep things simple, and add what you need.
|
|||
|
||||
You don't need to go all in on one option, you can pick the pieces you like and that work for you.
|
||||
|
||||
[yesterday]: https://www.oliverdavies.uk/archive/2023/12/22/best-language-cms-or-framework
|
||||
[yesterday]: {{site.url}}/archive/2023/12/22/best-language-cms-or-framework
|
||||
|
|
|
@ -203,4 +203,4 @@ From this, you can hopefully see that automated testing doesn't need to be diffi
|
|||
|
||||
I hope you enjoyed this sneak peek, and if you'd like to receive the course once it's complete, [register here for free][atdc].
|
||||
|
||||
[atdc]: https://www.oliverdavies.uk/atdc
|
||||
[atdc]: {{site.url}}/atdc
|
||||
|
|
|
@ -35,4 +35,4 @@ Having automated tests, using tools like static analysis, and minimising technic
|
|||
|
||||
P.S. Is your New Year's resolution to deliver better software faster? [I have availability for team coaching][team coaching] starting in January 2024 and can help you avoid issues like this in your applications.
|
||||
|
||||
[team coaching]: https://www.oliverdavies.uk/team-coaching
|
||||
[team coaching]: {{site.url}}/team-coaching
|
||||
|
|
Loading…
Reference in a new issue