Add talks pages
This commit is contained in:
parent
09ca6183a4
commit
af093718de
|
@ -7,3 +7,5 @@ sculpin_content_types:
|
|||
permalink: /podcast/:basename/
|
||||
posts:
|
||||
enabled: false
|
||||
talks:
|
||||
permalink: /talks/:basename/
|
||||
|
|
52
source/_layouts/talk.html.twig
Normal file
52
source/_layouts/talk.html.twig
Normal file
|
@ -0,0 +1,52 @@
|
|||
{% extends 'page' %}
|
||||
|
||||
{% block content_wrapper %}
|
||||
{{ parent() }}
|
||||
|
||||
{% if page.speakerdeck.id %}
|
||||
<section>
|
||||
<h2>Slides</h2>
|
||||
|
||||
<div>
|
||||
<noscript>**Please enable JavaScript to view slides.**</noscript>
|
||||
<script
|
||||
class="speakerdeck-embed"
|
||||
data-id="{{ page.speakerdeck.id }}"
|
||||
data-ratio="{{ page.speakerdeck.ratio ?? '1.29456384323641' }}"
|
||||
src="//speakerdeck.com/assets/embed.js"
|
||||
></script>
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% if page.video.type == 'youtube' and page.video.id %}
|
||||
<section>
|
||||
<h2>Video</h2>
|
||||
|
||||
{% include 'youtube-video.html.twig' with { id: page.video.id } %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% if page.events %}
|
||||
<section>
|
||||
<h2>Events</h2>
|
||||
|
||||
<ul>
|
||||
{% for event in page.events|reverse %}
|
||||
<li>
|
||||
{% if event.url %}
|
||||
<a href="{{ event.url }}">{{ event.name }}</a>
|
||||
{% else %}
|
||||
{{ event.name }}
|
||||
{% endif %}
|
||||
|
||||
in {{ event.location }}
|
||||
- {{ event.date|date('F jS, Y') }}
|
||||
|
||||
{{ event.online ? '(online)' }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
20
source/_pages/talks.md
Normal file
20
source/_pages/talks.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: Talks and Workshops
|
||||
talk_count: 94
|
||||
use:
|
||||
- talks
|
||||
---
|
||||
|
||||
Starting with my first talk in September 2012, I have given {{ page.talk_count }} public presentations and workshops at various conferences and meetups, in-person and remotely, on topics including PHP, Drupal, automated testing, Git, CSS, and systems administration.
|
||||
|
||||
{% for talk in data.talks|sort((a, b) => a.events|last.date > b.events|last.date ? -1 : 1) %}
|
||||
<article>
|
||||
<div class="not-prose">
|
||||
<h2 class="text-xl font-bold">
|
||||
<a class="font-bold text-blue-primary dark:text-blue-400" href="{{ talk.url|trim('/', 'right') }}">{{ talk.title }}</a>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<p>{{ talk.description }}</p>
|
||||
</article>
|
||||
{% endfor %}
|
10
source/_talks/about-drupal-association.md
Normal file
10
source/_talks/about-drupal-association.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: About the Drupal Association
|
||||
description: An impromptu talk about what the Drupal Association is, and what work I’ve been doing since I joined the Association staff.
|
||||
events:
|
||||
- name: South Wales Drupal user group (SWDUG)
|
||||
location: Cardiff, UK
|
||||
date: "2014-08-19"
|
||||
---
|
||||
|
||||
An impromptu talk about what the Drupal Association is, and what work I’ve been doing since I joined the Association staff.
|
14
source/_talks/automated-testing-lightning-talk.md
Normal file
14
source/_talks/automated-testing-lightning-talk.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: Automated testing crash course
|
||||
description: A crash course in automated testing with Drupal and test-driven development (lightning talk).
|
||||
events:
|
||||
- name: NWDUG
|
||||
location: Manchester, UK
|
||||
date: "2023-08-08"
|
||||
url: https://www.meetup.com/nwdrupal/events/293429104
|
||||
online: true
|
||||
---
|
||||
|
||||
A short talk introducing automated testing with Drupal and test-driven development.
|
||||
|
||||
Example repository: <https://github.com/opdavies/nwdug-testing-talk>
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: Automated testing and Test-Driven Development in Drupal 8
|
||||
description: A workshop that I gave about automated testing and test driven development in Drupal 8.
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
date: "2018-06-27"
|
||||
|
||||
- name: DrupalCamp London 2020
|
||||
location: London, UK
|
||||
url: https://drupalcamp.london/training/Automated-Testing-and-Test-Driven-Development-in-Drupal-8
|
||||
date: "2020-03-13"
|
||||
|
||||
- name: DrupalCamp NYC
|
||||
location: New York, USA
|
||||
url: https://2020.drupalcamp.nyc/training/automated-testing-and-test-driven-development-drupal-8
|
||||
date: "2020-11-14"
|
||||
online: true
|
||||
---
|
19
source/_talks/building-build-configs.md
Normal file
19
source/_talks/building-build-configs.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: Building "Build Configs"
|
||||
description: In this lightning talk, I discuss the "Build Configs" tool I've built to create configuration files.
|
||||
speakerdeck:
|
||||
id: e1403f0dfd8245e5a71df9761dc6bc7b
|
||||
ratio: "1.78343949044586"
|
||||
url: https://speakerdeck.com/opdavies/building-build-configs
|
||||
video: ~
|
||||
image: ~
|
||||
events:
|
||||
- name: PHP South West (PHPSW)
|
||||
location: Bristol, UK
|
||||
date: 2023-11-08
|
||||
url: https://www.meetup.com/php-sw/events/296917370
|
||||
---
|
||||
|
||||
[Build Configs](/build-configs) is a tool I've created for creating and managing customised per-project configuration files, such as Docker, Docker Compose, Nix Flakes, and PHPUnit and PHPStan configuration.
|
||||
|
||||
In this lightning talk, I'll discuss why I created it, what problem it solves, more about what it does, and how it works.
|
22
source/_talks/building-presenting-slide-decks-rst2pdf.md
Normal file
22
source/_talks/building-presenting-slide-decks-rst2pdf.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title: Building and presenting slide decks with rst2pdf
|
||||
description: A short talk on using reStructuredText and rst2pdf to build presentation slides, built with rst2pdf.
|
||||
|
||||
speakerdeck:
|
||||
id: 80498c7b5e7448f194091461cb14f1c1
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/building-and-presenting-slide-decks-with-rst2pdf
|
||||
|
||||
video:
|
||||
id: KZ89tGG-p6M
|
||||
type: youtube
|
||||
|
||||
events:
|
||||
- name: PHP South Wales
|
||||
location: Cardiff, UK
|
||||
url: https://www.meetup.com/PHP-South-Wales/events/275625320
|
||||
date: "2021-01-28"
|
||||
online: true
|
||||
---
|
||||
|
||||
I've recently used [rst2pdf](https://rst2pdf.org) for building presentation slides. This short talk will show some examples of how I built and presented a slide deck using reStructuredText and rst2pdf.
|
49
source/_talks/building-static-websites-sculpin.md
Normal file
49
source/_talks/building-static-websites-sculpin.md
Normal file
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
title: Building Static Websites with Sculpin
|
||||
description: How to use Sculpin to generate static HTML websites.
|
||||
speakerdeck:
|
||||
id: 6c9c4be1a1344f1291ff13a391674a66
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/building-static-websites-with-sculpin
|
||||
code: https://github.com/opdavies/sculpin-demo
|
||||
tags: [meetups, phpsw, sculpin]
|
||||
tweets: yes
|
||||
video:
|
||||
type: youtube
|
||||
id: xRTiWR9nBSA
|
||||
events:
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
date: "2015-10-14"
|
||||
url: https://phpsw.uk/events/2015-10-lightning-talks
|
||||
joindin: https://joind.in/talk/view/15486
|
||||
|
||||
- name: Drupal Yorkshire
|
||||
date: "2021-08-19"
|
||||
location: Leeds, UK
|
||||
url: https://www.meetup.com/DrupalYorkshire/events/280100968
|
||||
online: true
|
||||
|
||||
- name: PHP North West (PHPNW)
|
||||
date: "2021-09-07"
|
||||
location: Manchester, UK
|
||||
url: https://www.phpnw.org.uk
|
||||
online: true
|
||||
|
||||
- name: GroningenPHP
|
||||
date: "2021-12-09"
|
||||
location: Groningen, Netherlands
|
||||
url: https://www.meetup.com/GroningenPHP/events/281648855
|
||||
online: true
|
||||
---
|
||||
|
||||
[Sculpin][0] is a static site generator written in PHP. It converts Markdown
|
||||
files, Twig templates and standard HTML into a static HTML site that can be
|
||||
easily deployed.
|
||||
|
||||
This talk will cover a little of the background to Sculpin and what it is, and
|
||||
then will move into some demonstrations of how to build a Sculpin site and what
|
||||
it can do!
|
||||
|
||||
[0]: http://sculpin.io
|
||||
[1]: https://opdavies.github.io/slides-phpsw-sculpin
|
21
source/_talks/communities-contribution.md
Normal file
21
source/_talks/communities-contribution.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: Communities and contribution
|
||||
description: Why I mentor, why I've organised meetups and conferences, why I give talks, and why I maintain and contribute to open-source software.
|
||||
|
||||
speakerdeck:
|
||||
id: 63c2fcc2294641688f433d062282a968
|
||||
ratio: "1.78343949044586"
|
||||
url: https://speakerdeck.com/opdavies/building-and-presenting-slide-decks-with-rst2pdf
|
||||
|
||||
events:
|
||||
- name: TechConnect London
|
||||
location: London, UK
|
||||
date: "2023-09-28"
|
||||
url: https://www.eventbrite.co.uk/e/techconnect-london-tickets-698416712187
|
||||
---
|
||||
|
||||
I'm a self-taught Developer who's been writing code since 2007, working with and contributing to open-source technologies. I've been a mentor at events like DrupalCon and for bootcamps, including School of Code.
|
||||
|
||||
I'm part of different open-source and tech communities, organised meetups and conferences, and have given nearly 100 presentations.
|
||||
|
||||
In this talk, I'll speak more about the communities I'm part of, my contributions, how I started, why I do it, and who benefits and how.
|
19
source/_talks/configuring-all-the-things-drupal-8.md
Normal file
19
source/_talks/configuring-all-the-things-drupal-8.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: "Configuring all the Things (in Drupal 8)"
|
||||
description: A short notice talk on configuration management in Drupal 8, and things I’ve learned working on my current Drupal 8 project.
|
||||
|
||||
speakerdeck:
|
||||
id: 6de3fe8947a34727b79eb9d9dcc66bf2
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/configuring-all-the-things-in-drupal-8
|
||||
|
||||
video: ~
|
||||
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2018-07-25"
|
||||
---
|
||||
|
||||
A short notice talk on configuration management in Drupal 8, and things I’ve learned working on my current Drupal 8 project.
|
33
source/_talks/dancing-for-drupal.md
Normal file
33
source/_talks/dancing-for-drupal.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: Dancing for Drupal
|
||||
description: A talk on Drupal, presented alongside others representing Umbraco, Sitecore and Episerver.
|
||||
tags: [meetup, umbristol, drupal]
|
||||
tweets: yes
|
||||
|
||||
speakerdeck:
|
||||
id: ffa9b6dea6dc4a8eb207b9982ed6e1bd
|
||||
ratio: "1.33333333333333"
|
||||
url: https://speakerdeck.com/opdavies/umbristol-dancing-for-drupal
|
||||
|
||||
events:
|
||||
- name: umBristol
|
||||
location: Bristol, UK
|
||||
url: http://umbristol.co.uk
|
||||
date: "2015-08-25"
|
||||
---
|
||||
|
||||
As part of their [CMS Dance-Off][1], I was selected to speak about Drupal alongside other speakers representing Umbraco, Sitecore and Episerver.
|
||||
|
||||
The points to cover were:
|
||||
|
||||
- How does your CMS store configuration data, 'structure' and content?
|
||||
- How do you manage source-control, versioning and deployment?
|
||||
- How do you manage multiple simultaneous editors and/or developers?
|
||||
- How do you manage upgrades?
|
||||
- What are the 3 best things about your CMS?
|
||||
- What are the 3 worst things about your CMS?
|
||||
- What does the future of your CMS look like?
|
||||
|
||||
In each point, tried to cover the differences between Drupal core and developing a project using Drupal, as well as between Drupal 7 and Drupal 8, as things like source control and versioning would be approached differently.
|
||||
|
||||
[1]: http://www.meetup.com/umBristol/events/223807592
|
22
source/_talks/decoupling-drupal-vuejs.md
Normal file
22
source/_talks/decoupling-drupal-vuejs.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title: Decoupling Drupal with Vue.js
|
||||
description: Decoupling Drupal with Vue.js.
|
||||
code: https://github.com/opdavies/blue-conf-2019
|
||||
|
||||
speakerdeck:
|
||||
id: 60c8b7abdf194946b7a78a1bb74a0982
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/decoupling-drupal-with-vue-dot-js
|
||||
|
||||
events:
|
||||
- name: Blue Conf 2019
|
||||
location: Cardiff, UK
|
||||
url: https://blueconf.co.uk
|
||||
date: "2019-06-07"
|
||||
---
|
||||
|
||||
Decoupled or headless Drupal has been a trend for a number of years, with modules like RESTful Web Services available for Drupal 7 to expose data, and Drupal 8 becoming more API-first with JSON:API module now included as part of core. This makes it easier for third party systems or alternative front-end applications to consume and work with the data provided by Drupal.
|
||||
|
||||
In this talk, we’ll look at how to build progressively and fully decoupled applications - passing data from a Drupal 8 back-end to a Vue.js front-end.
|
||||
|
||||
The demo code used in the talk is [available on GitHub](https://github.com/opdavies/blue-conf-2019 "View the demo code for this talk on GitHub.").
|
34
source/_talks/deploying-drupal-fabric.md
Normal file
34
source/_talks/deploying-drupal-fabric.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Deploying Drupal with Fabric"
|
||||
description: How to use Fabric, a Python command line based library, to deploy your Drupal applications.
|
||||
meta:
|
||||
og:
|
||||
title: Deploying Drupal with Fabric
|
||||
description: "You've built your Drupal site, now learn how to deploy it with Fabric."
|
||||
type: website
|
||||
|
||||
speakerdeck:
|
||||
id: 40d1eca4bd484afc86295924fff5dd41
|
||||
ratio: "1.77777777777778"
|
||||
url: "https://speakerdeck.com/opdavies/deploying-drupal-and-anything-else-with-fabric"
|
||||
embed: '<script async class="speakerdeck-embed" data-id="" data-ratio="" src="//speakerdeck.com/assets/embed.js"></script>'
|
||||
|
||||
events:
|
||||
- name: DrupalCamp Dublin 2017
|
||||
location: Dublin, Ireland
|
||||
url: http://2017.drupal.ie
|
||||
date: "2017-10-20"
|
||||
time: "15:00 - 15:40"
|
||||
|
||||
- name: Drupal Somerset
|
||||
location: Glastonbury, UK
|
||||
date: "2017-10-26"
|
||||
---
|
||||
|
||||
You’ve built your website, and now you just need to deploy it. There are various ways that this could be done - from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended).
|
||||
|
||||
My favourite deployment tool of late is [Fabric][1] - a Python based command line tool for running commands locally as well as on remote servers. It’s language and framework agnostic, and unopinionated so you define the steps and workflow that you need - from a basic few-step deployment to a full Capistrano style zero-downtime deployment.
|
||||
|
||||
This talk will cover some introduction to Fabric and how to write your own fabfiles, to then covering some examples and demos of different use case deployments for your Drupal project.
|
||||
|
||||
[1]: http://www.fabfile.org
|
98
source/_talks/deploying-php-ansible-ansistrano.md
Normal file
98
source/_talks/deploying-php-ansible-ansistrano.md
Normal file
|
@ -0,0 +1,98 @@
|
|||
---
|
||||
title: Deploying PHP applications with Ansible, Ansible Vault and Ansistrano
|
||||
description: |
|
||||
How to use Ansible and Ansistrano to perform robust, secure deployments of
|
||||
your PHP applications.
|
||||
speakerdeck:
|
||||
id: c11fe635ed8f4741b35bf3ebe53e8323
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/deploying-php-applications-with-ansible-ansible-vault-and-ansistrano
|
||||
video:
|
||||
type: youtube
|
||||
id: dQL-gOnxXCM
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
date: "2019-01-23"
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
|
||||
- name: PHP South Wales
|
||||
date: "2019-07-23"
|
||||
location: Cardiff, UK
|
||||
url: https://www.phpsouthwales.uk
|
||||
|
||||
- name: DrupalCon Europe 2019
|
||||
date: "2019-10-30"
|
||||
location: Amsterdam, NL
|
||||
url: https://events.drupal.org/amsterdam2019
|
||||
|
||||
- name: Bristol Cloud Native & DevOps
|
||||
date: "2020-01-30"
|
||||
location: Bristol, UK
|
||||
url: https://www.meetup.com/Bristol-Cloud-Native-DevOps/events/266609627
|
||||
|
||||
- name: Drupal Edinburgh
|
||||
date: "2020-03-12"
|
||||
location: Edinburgh, UK
|
||||
url: https://www.meetup.com/Drupal-Edinburgh/events/267905594
|
||||
online: true
|
||||
|
||||
- name: CMS Philly
|
||||
date: "2020-05-01"
|
||||
location: Philadelphia, USA
|
||||
url: https://cmsphilly.org
|
||||
online: true
|
||||
|
||||
- name: Drupal Yorkshire
|
||||
date: "2020-05-21"
|
||||
location: Leeds, UK
|
||||
url: https://www.meetup.com/DrupalYorkshire/events/zwzsfpybchbcc
|
||||
online: true
|
||||
|
||||
- name: PHP London
|
||||
date: "2020-06-04"
|
||||
location: London, UK
|
||||
url: https://www.meetup.com/phplondon/events/270930524
|
||||
online: true
|
||||
|
||||
- name: PHP North East
|
||||
date: "2020-06-16"
|
||||
location: Newcastle Upon Tyne, UK
|
||||
url: https://www.meetup.com/phpnortheast
|
||||
online: true
|
||||
|
||||
- name: PHP Sussex
|
||||
date: "2020-07-01"
|
||||
location: Brighton, UK
|
||||
url: https://www.meetup.com/PHP-Sussex/events/271472628
|
||||
online: true
|
||||
|
||||
- name: Midwest PHP
|
||||
date: "2021-04-23"
|
||||
url: https://midwestphp.org/talks/1q5XUF2tTdXXLYOoujMkpF/Deploying_PHP_applications_with_Ansible_Ansible_Vault_and_Ansistrano
|
||||
online: true
|
||||
|
||||
- name: PHP Oxford
|
||||
date: "2021-04-28"
|
||||
location: Oxford, UK
|
||||
url: https://www.meetup.com/PHP-Oxford/events/qmbkfsyccgblc
|
||||
online: true
|
||||
|
||||
- name: Ansible London
|
||||
date: "2021-05-25"
|
||||
location: London, UK
|
||||
url: https://www.meetup.com/Ansible-London/events/278093392
|
||||
online: true
|
||||
|
||||
- name: DrupalNYC
|
||||
date: "2021-06-15"
|
||||
location: New York, USA
|
||||
url: https://ti.to/drupalnyc/lunch-learn-2021-06-15
|
||||
online: true
|
||||
---
|
||||
|
||||
Great! You’ve built your website, and now you just need to deploy it. There are various ways that this could be done - from (S)FTP, to SCP and rsync, to running commands like `git pull` and `composer install` directly on the server which is not ideal.
|
||||
|
||||
As well provisioning and maintaining your server configuration and running commands, you can also use [Ansible](https://www.ansible.com) to deploy your PHP application - leveraging relevant Ansible modules such as Git and Composer, custom Ansible roles, [Ansible Vault](https://docs.ansible.com/ansible/latest/user_guide/vault.html) for managing secrets, and features such as idempotency out of the box to build a simple deployment playbook. We can then extend that and make it more robust by adding [Ansistrano](https://ansistrano.com) - a port of [Capistrano](https://capistranorb.com) - which adds extra features such as storing multiple builds for each project and the ability to roll-back if needed, customising your build steps using built-in hooks, multi-stage environments and more.
|
||||
|
||||
I've been using Ansible and Ansistrano to deploy a variety of PHP projects - including Drupal 7 & 8, Symfony, Laravel and Sculpin, as well as basic HTML websites, and found it to be very flexible and easy to install and use, and by the end of this talk we will have a fully working deployment playbook, deploying real code onto a real server.
|
46
source/_talks/deploying-php-fabric.md
Normal file
46
source/_talks/deploying-php-fabric.md
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
title: Deploying PHP Applications with Fabric
|
||||
description: How to use Fabric, a Python command line based library, to deploy your PHP applications.
|
||||
speakerdeck:
|
||||
id: c147618ce07546ca92f92983c52d6a41
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/deploying-php-applications-with-fabric
|
||||
tags: [meetup, conference, php, fabric]
|
||||
meta:
|
||||
og:
|
||||
title: Deploying PHP Applcations with Fabric
|
||||
description: "You've built your PHP application, now learn how to deploy it with Fabric."
|
||||
type: website
|
||||
image:
|
||||
url: /images/talks/deploying-php-fabric.png
|
||||
width: 2560
|
||||
height: 1440
|
||||
type: image/png
|
||||
events:
|
||||
- name: Nomad PHP
|
||||
date: "2017-04-20"
|
||||
time: "19:00 (CET)"
|
||||
url: https://nomadphp.com
|
||||
online: true
|
||||
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://phpsw.uk
|
||||
date: "2017-09-13"
|
||||
joindin: https://joind.in/talk/a5ff3
|
||||
|
||||
- name: PHP North West 2017
|
||||
location: Manchester, UK
|
||||
date: "2017-10-01"
|
||||
time: "09:00 - 09:45"
|
||||
url: http://conference.phpnw.org.uk/phpnw17
|
||||
joindin: https://joind.in/talk/4e35d
|
||||
---
|
||||
|
||||
You’ve built your application, and now you just need to deploy it. There are various ways that this could be done – from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended).
|
||||
|
||||
My favourite deployment tool of late is [Fabric][1] – a Python based command line tool for running commands locally as well as on remote servers. It’s language and framework agnostic, and unopinionated so you define the steps and workflow that you need – from a basic few-step deployment to a full Capistrano style zero-downtime deployment.
|
||||
|
||||
This talk will cover some introduction to Fabric and how to write your own fabfiles, and then look at some examples of different use case deployments for your PHP project.
|
||||
|
||||
[1]: http://www.fabfile.org
|
41
source/_talks/drupal-8-module-development.md
Normal file
41
source/_talks/drupal-8-module-development.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
title: Getting Started with Drupal 8 Module Development
|
||||
description: How to build your first module for Drupal 8.
|
||||
tags: [conference, php, drupal, drupalcamp, drupal-8]
|
||||
tweets: yes
|
||||
code: https://github.com/opdavies/dclondon16-d8-module
|
||||
speakerdeck:
|
||||
id: 0041804e52664d12a8e31cd118264813
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/getting-started-with-drupal-8-module-development
|
||||
video:
|
||||
type: youtube
|
||||
id: qO_Wh5WE3VA
|
||||
meta:
|
||||
og:
|
||||
title: Getting Started with Drupal 8 Module Development
|
||||
image:
|
||||
url: /images/talks/dclondon16.png
|
||||
type: "image/png"
|
||||
height: 540
|
||||
width: 960
|
||||
events:
|
||||
- name: DrupalCamp London 2016
|
||||
location: London, UK
|
||||
date: "2016-03-05"
|
||||
---
|
||||
|
||||
New to object-orientated PHP, Symfony or YAML, and want to get started building modules in Drupal 8? This is the session for you!
|
||||
|
||||
In this session, we’ll cover:
|
||||
|
||||
- Where Drupal 8 modules are located, and how they are structured.
|
||||
- How to build a simple module, including our own permissions and routes.
|
||||
- How to add your own controller and service classes.
|
||||
- What is the service/dependency injection container, and how do we use it?
|
||||
- How we can use tools such as PhpStorm and Drupal Console to speed up the process.
|
||||
|
||||
What we won’t be covering:
|
||||
|
||||
- Automated testing in PHPUnit or Simpletest.
|
||||
- Adding third party libraries and external dependencies via Composer.
|
56
source/_talks/drupal-8-php-libraries-drupalorg-api.md
Normal file
56
source/_talks/drupal-8-php-libraries-drupalorg-api.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: Having Fun with Drupal 8, PHP libraries and the Drupal.org API
|
||||
description: A crash course in developing PHP packages and Drupal 8 modules, based on the Drupal.org API.
|
||||
speakerdeck:
|
||||
id: 6e42ae9620bb4e91b3955f8c30d66934
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/having-fun-with-drupal-8-php-libraries-and-the-drupal-dot-org-api
|
||||
image:
|
||||
url: /images/talks/having-fun-drupalorg-api.png
|
||||
width: 2000
|
||||
height: 1125
|
||||
type: image/png
|
||||
video:
|
||||
type: youtube
|
||||
id: JyDjC7gGDpU
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2018-04-18"
|
||||
joindin: https://joind.in/talk/14851
|
||||
|
||||
- name: DrupalCamp London 2019
|
||||
location: London, UK
|
||||
url: http://drupalcamp.london
|
||||
date: "2019-03-03"
|
||||
time: "12:05 - 12:50"
|
||||
---
|
||||
|
||||
A overview and demo of some of the open source projects that I’ve been working on lately that are based on information from the Drupal.org API, including a PHP library for the API itself as well as some Drupal 8 modules that use it.
|
||||
|
||||
This session will cover various topics including:
|
||||
|
||||
- Why would you want to separate your code into reusable packages
|
||||
- An overview of how to structure a PHP package (e.g. an API for interacting with Drupal.org)
|
||||
- How to add a PHP package as a dependency for a Drupal module using Composer
|
||||
- How to create routes and services, and use dependency injection in Drupal 8
|
||||
- How to use Drupal to configure the packages
|
||||
- How to increase performance and reliability by using Drupal's cache system to store API results
|
||||
|
||||
## Links
|
||||
|
||||
- [Drupal.org API library][2]
|
||||
- [Drupal.org API documentation][3]
|
||||
- [Laravel Collections][4]
|
||||
- Example module: [Drupal.org project statistics][5]
|
||||
- Example module: [Drupalversary][6]
|
||||
- Talk: [Using Laravel Collections outside Laravel][7]
|
||||
|
||||
[0]: https://www.drupalbristol.org.uk
|
||||
[2]: https://github.com/opdavies/drupalorg-api-php
|
||||
[3]: https://www.drupal.org/drupalorg/docs/api
|
||||
[4]: https://laravel.com/docs/collections
|
||||
[5]: https://github.com/opdavies/drupal-module-drupalorg-project-statistics
|
||||
[6]: https://github.com/opdavies/drupal-module-drupalversary
|
||||
[7]: /talks/using-laravel-collections-outside-laravel/
|
21
source/_talks/drupal-8-rejoining-the-herd.md
Normal file
21
source/_talks/drupal-8-rejoining-the-herd.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: "Drupal 8: Rejoining the Herd"
|
||||
description: A talk highlighting some of the recent technical and non-technical changes in Drupal 8.
|
||||
tags: [conference, php, drupal, drupal-8]
|
||||
speakerdeck:
|
||||
id: 440fd6592f474741bc606c96bc32c104
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/drupal-rejoining-the-herd
|
||||
events:
|
||||
- name: PHP South Coast 2016
|
||||
location: Portsmouth, UK
|
||||
url: http://2016.phpsouthcoast.co.uk
|
||||
date: "2016-06-11"
|
||||
joindin: https://joind.in/talk/41d0f
|
||||
---
|
||||
|
||||
[Drupal 8][0] was (finally) released on November 19th 2015, after almost 4 years of work and code commits by over 3,200 different contributors. Whilst it’s pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood!
|
||||
|
||||
In this talk, I'll highlight some of the new features and improvements in Drupal 8, and discuss some of the benefits to Drupal site builders, themers, and module developers. I'll also talk about some of the non-technical changes and the cultural shift from "not invented here" to "proudly found elsewhere", and how we are rejoining the PHP herd.
|
||||
|
||||
[0]: https://www.drupal.org/8
|
26
source/_talks/drupal-8.md
Normal file
26
source/_talks/drupal-8.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Drupal 8
|
||||
description:
|
||||
A lightning talk presented to the PHPSW user group, highlighting some of the
|
||||
relevant changes in Drupal 8.
|
||||
speakerdeck:
|
||||
url: https://speakerdeck.com/opdavies/drupal-8
|
||||
id: 46ba4ba577d94a32b7abdade610ceb69
|
||||
ratio: "1.29456384323641"
|
||||
video:
|
||||
type: youtube
|
||||
id: 36zCxPrOOzM
|
||||
tweets: yes
|
||||
events:
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://phpsw.uk
|
||||
date: "2015-04-08"
|
||||
---
|
||||
|
||||
This was a ten minute lightning talk, designed to highlight the major changes
|
||||
coming in Drupal 8.
|
||||
|
||||
I categorised the technical changes into groups for site builders, developers
|
||||
and themers, and also highlighted the cultural shift from "not invented here" to
|
||||
"proudly found elsewhere" and the benefits that brings.
|
10
source/_talks/drupal-ldap-module.md
Normal file
10
source/_talks/drupal-ldap-module.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Drupal and the LDAP module
|
||||
description: A review and demonstration of some of the recent single sign-on work that I did using Drupal’s LDAP module.
|
||||
events:
|
||||
- name: South Wales Drupal user group (SWDUG)
|
||||
location: Cardiff, UK
|
||||
date: "2013-07-10"
|
||||
---
|
||||
|
||||
A review and demonstration of some of the recent single sign-on work that I did using Drupal’s LDAP module.
|
27
source/_talks/drupal-vm-generator.md
Normal file
27
source/_talks/drupal-vm-generator.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
title: Drupal VM Generator
|
||||
description: Announcing the Drupal VM Generator CLI tool.
|
||||
type: Lightning talk
|
||||
code: https://github.com/opdavies/drupal-vm-generator
|
||||
tags: [drupal-vm, drupal-vm-generator, meetup, symfony]
|
||||
speakerdeck:
|
||||
id: a27ee1d2bfed4a209dc395fa455acb41
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/bristol-dug-drupal-vm-generator
|
||||
video:
|
||||
type: youtube
|
||||
id: U1pbKAAO2Wo
|
||||
events:
|
||||
- name: NWDUG
|
||||
url: http://nwdrupal.org.uk
|
||||
location: Manchester, UK
|
||||
date: "2016-03-08"
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2016-04-02"
|
||||
---
|
||||
|
||||
An short talk about the [Drupal VM Generator][1] project.
|
||||
|
||||
[1]: https://github.com/opdavies/drupal-vm-generator
|
24
source/_talks/drupal-vm-meet-symfony-console.md
Normal file
24
source/_talks/drupal-vm-meet-symfony-console.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: Drupal VM, Meet Symfony Console
|
||||
description: How to develop command line applications using Symfony Console, using the Drupal VM CLI as an example.
|
||||
speakerdeck:
|
||||
id: 56c79770f73f4e47a542a30243437c49
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/drupal-vm-meet-symfony-console
|
||||
image: drupal-vm-meet-symfony-console.png
|
||||
events:
|
||||
- name: DrupalCamp Bristol 2016
|
||||
location: Bristol, UK
|
||||
date: "2016-07-23"
|
||||
---
|
||||
|
||||
_TL;DR - Come and learn about Symfony Console, with examples from a real-world
|
||||
project._
|
||||
|
||||
The [Drupal VM Generator][2] is a CLI application, built on [Symfony Console][0], that generates configuration files for [Drupal VM][1] based on personal settings and user interaction.
|
||||
|
||||
After an introduction to Drupal VM itself and the Drupal VM Generator, we’ll jump into the code and see how Symfony Console applications are structured, how to write new commands, and how to integrate additional libraries like Guzzle, Twig and other Symfony components - whilst referencing code from the Drupal VM Generator project.
|
||||
|
||||
[0]: http://symfony.com/doc/current/components/console/introduction.html
|
||||
[1]: https://www.drupalvm.com
|
||||
[2]: https://www.drupalvmgenerator.com
|
18
source/_talks/drupalorg-2015.md
Normal file
18
source/_talks/drupalorg-2015.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: "Drupal.org in 2015: What's Coming Next"
|
||||
description: A retrospective of the Drupal Association’s work in 2014 and a look forward to what we’ll be working on in 2015.
|
||||
tags: [conference, drupalcamp, drupalcamp-london, drupal-association]
|
||||
speakerdeck:
|
||||
id: 0cf8d7b647c94ae289e9db2b46a9e8f2
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/drupal-dot-org-in-14
|
||||
events:
|
||||
- name: DrupalCamp Brighton
|
||||
location: Brighton, UK
|
||||
date: "2015-01-18"
|
||||
- name: DrupalCamp London 2015
|
||||
location: London, UK
|
||||
date: "2015-02-28"
|
||||
---
|
||||
|
||||
A retrospective of the Drupal Association’s work in 2014 and a look forward to what we’ll be working on in 2015.
|
15
source/_talks/drush-make-drupalbristol.md
Normal file
15
source/_talks/drush-make-drupalbristol.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: drush make drupalbristol
|
||||
description: How to Drush Make to build your Drupal websites.
|
||||
speakerdeck:
|
||||
id: 42605700f102013198de5a5f6f23ab67
|
||||
ratio: "1.29456384323641"
|
||||
url: https://speakerdeck.com/opdavies/drush-make-drupalbristol
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2014-08-19"
|
||||
---
|
||||
|
||||
An introduction to Drush Make and how to use it to build reusable custom installation profiles or entire websites.
|
38
source/_talks/getting-your-data-into-drupal-8.md
Normal file
38
source/_talks/getting-your-data-into-drupal-8.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
title: Getting (Your Data) Into Drupal 8
|
||||
description: An overview of Drupal’s Migrate functionality, and a look at how to write your own migrations.
|
||||
speakerdeck:
|
||||
id: 63e5dfce996e46699e304d50e896477b
|
||||
ratio: "1.77777777777778"
|
||||
url: "https://speakerdeck.com/opdavies/getting-your-data-into-drupal-8-drupal_bristol"
|
||||
video:
|
||||
type: youtube
|
||||
id: jtmARTuYhp8
|
||||
tags: [drupalcamp, migration, drupal-8]
|
||||
meta:
|
||||
og:
|
||||
title: Getting (Your Data) into Drupal 8
|
||||
description: "How I migrated the Drupal Bristol website onto Drupal 8."
|
||||
type: website
|
||||
image:
|
||||
url: /images/talks/getting-your-data-into-drupal-8.png
|
||||
width: 2560
|
||||
height: 1440
|
||||
type: image/png
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
date: "2017-01-18"
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
|
||||
- name: DrupalCamp London 2017
|
||||
date: "2017-03-04"
|
||||
time: "12:05 - 12:50"
|
||||
location: London, UK
|
||||
---
|
||||
|
||||
If you’ve moved a site from Drupal 6 to 7, the chances are that you’ve either used the upgrade path to update your old site in-place, or you built a new site from scratch and used the Migrate module from contrib to migrate your data from the old database.
|
||||
|
||||
In Drupal 8, things have changed as there’s no upgrade path from Drupal 7 and the Migrate module has been moved into core, though there are still migration related modules available in contrib.
|
||||
|
||||
This talk will look at the core Migrate module and how it implements Drupal 8 features such as YAML and the plugin and configuration systems, and how to write your own migrations to get your data into Drupal 8.
|
18
source/_talks/git-flow.md
Normal file
18
source/_talks/git-flow.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: Never Commit to Master - An Introduction to Git Flow
|
||||
description: An introduction to and demonstration of the Git Flow branching model.
|
||||
speakerdeck:
|
||||
id: 201559e0f103013198dd5a5f6f23ab67
|
||||
ratio: "1.29456384323641"
|
||||
url: https://speakerdeck.com/opdavies/never-commit-to-master-an-introduction-to-git-flow
|
||||
video:
|
||||
type: youtube
|
||||
id: T-miCpHxfds
|
||||
tweets: yes
|
||||
events:
|
||||
- name: DrupalCamp London 2014
|
||||
location: London, UK
|
||||
date: "2014-03-01"
|
||||
---
|
||||
|
||||
An introduction to the Git Flow branching model and the git-flow plugin, and how I’ve used them to manage a Drupal development project.
|
32
source/_talks/goodbye-drush-make-hello-composer.md
Normal file
32
source/_talks/goodbye-drush-make-hello-composer.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: Goodbye Drush Make. Hello Composer!
|
||||
description: How to use Composer to manage your Drupal applications.
|
||||
tags: ["meetup", "drupal", "composer"]
|
||||
speakerdeck:
|
||||
id: 1c1e0e129ab34816bd4c4edb5f6642c2
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/goodbye-drush-make-hello-composer
|
||||
video:
|
||||
type: youtube
|
||||
id: ZL2FtRTX9Y8
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2016-11-17"
|
||||
|
||||
- name: PHP UK Conference 2018
|
||||
location: London, UK
|
||||
date: "2018-02-16"
|
||||
time: "14:40 - 15:40"
|
||||
url: https://www.phpconference.co.uk
|
||||
joindin: https://joind.in/talk/650ab
|
||||
---
|
||||
|
||||
One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem - including [Composer][1], PHP’s dependency manager.
|
||||
|
||||
Included to manage core’s dependencies, it has also gained traction in the contrib space with the creation of the Drupal Composer project, and the Drupal Packagist and now native endpoints on Drupal.org exposing contrib project metadata.
|
||||
|
||||
In this session, I'll show how to fully manage a Drupal 7 or Drupal 8 website including contributed modules and themes and external libraries with Composer.
|
||||
|
||||
[1]: https://getcomposer.org
|
18
source/_talks/introduction-to-mob-programming.md
Normal file
18
source/_talks/introduction-to-mob-programming.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: An introduction to mob programming
|
||||
description: |
|
||||
What is mob programming, how does it work, and why should we do it?
|
||||
speakerdeck:
|
||||
id: f37b16f915d64bc0b4a20f9f965e5353
|
||||
ratio: '1.77725118483412'
|
||||
url: https://speakerdeck.com/opdavies/an-introduction-to-mob-programming
|
||||
events:
|
||||
- name: PHP South Wales
|
||||
location: Cardiff, Wales
|
||||
date: '2022-09-28'
|
||||
url: https://www.meetup.com/php-south-wales/events/288359737
|
||||
---
|
||||
|
||||
Pair and mob programming are collaborative approaches to software development where tasks are completed in small groups instead of by individuals.
|
||||
|
||||
In this talk, I’ll explain more about mob programming, its benefits and how it works, and then we’ll put it into practice with an interactive mob session where we add a feature to a codebase.
|
18
source/_talks/it-all-started-with-a-patch.md
Normal file
18
source/_talks/it-all-started-with-a-patch.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: It All Started With A Patch
|
||||
description: A lightning talk on how and why to get involved with open source.
|
||||
speakerdeck:
|
||||
id: 5862bdecb7a24cfaa5fc844696fafa0c
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/it-all-started-with-a-patch-phpsw
|
||||
video:
|
||||
type: youtube
|
||||
id: 5FYMRR61sdo
|
||||
events:
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://phpsw.uk
|
||||
date: "2017-02-08"
|
||||
---
|
||||
|
||||
A crash course of why and how to get involved with open source.
|
24
source/_talks/modern-drupal-development-with-composer.md
Normal file
24
source/_talks/modern-drupal-development-with-composer.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: Modern Drupal Development with Composer
|
||||
description: A lightning talk on how to use Composer to manage your Drupal projects.
|
||||
type: Lightning talk
|
||||
tags: ["meetups", "phpsw", "drupal", "composer"]
|
||||
speakerdeck:
|
||||
id: 7a1358502526425a9cfd288f85fb32f3
|
||||
ratio: "1.37081659973226"
|
||||
url: https://speakerdeck.com/opdavies/modern-drupal-development-with-composer
|
||||
video:
|
||||
type: youtube
|
||||
id: Yi_FPI3xHwc
|
||||
events:
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://phpsw.uk
|
||||
date: "2016-11-09"
|
||||
---
|
||||
|
||||
Building a Drupal application? You no longer need to download archives to add new modules or update core, or deal with Drupal specific tools to manage your codebase.
|
||||
|
||||
With Drupal "getting off the island" there has been an increase in the adoption of common PHP tools within the Drupal ecosystem.
|
||||
|
||||
In this lightning talk, I’ll show how to build a Drupal application using Composer for dependency management.
|
26
source/_talks/out-of-the-box-initiative-update.md
Normal file
26
source/_talks/out-of-the-box-initiative-update.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Out of the Box Initiative Update
|
||||
description: An update on Drupal’s "out of the box" initiative, and core’s new Umami installation profile.
|
||||
speakerdeck:
|
||||
id: 3f66c48653f44ed4867fc3cc05c1db06
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/out-of-the-box-initiative-update
|
||||
video: ~
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
date: "2019-03-27"
|
||||
---
|
||||
|
||||
From the [DrupalCamp London website](https://drupalcamp.london/session/out-box-initiative-update):
|
||||
|
||||
> Since the last DrupalCamp London, the Umami Demo install profile is now one of the options shown to anyone installing Drupal. But this doesn't mean we've finished.
|
||||
|
||||
> There are many existing Drupal features that we want to showcase, and new features stabilising with each minor release. Join the Out of the Box initiative leads Keith Jay (kjay) and Gareth Goodwin (smaz) for this session, where we'll talk about:
|
||||
|
||||
> - Where we are, and how we got here
|
||||
|
||||
- Our targets for inclusion in Drupal 8.7.0
|
||||
- How you can help!
|
||||
- Plans for the more distant future
|
14
source/_talks/so-what-is-this-drupal-thing.md
Normal file
14
source/_talks/so-what-is-this-drupal-thing.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: So, what is this Drupal thing?
|
||||
description: My first talk, where I talk about Drupal, what it is and what it can do.
|
||||
video:
|
||||
type: vimeo
|
||||
id: '49827006'
|
||||
events:
|
||||
- name: unified.diff
|
||||
location: Cardiff, UK
|
||||
url: http://unifieddiff.co.uk
|
||||
date: "2012-09-05"
|
||||
---
|
||||
|
||||
My very first talk, where I talk about Drupal, what it is and what it can do.
|
118
source/_talks/taking-flight-with-tailwind-css.md
Normal file
118
source/_talks/taking-flight-with-tailwind-css.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
title: Taking Flight with Tailwind CSS
|
||||
description:
|
||||
An introduction to the utility-first approach to writing CSS with a focus on the Tailwind CSS framework.
|
||||
speakerdeck:
|
||||
id: 10ca51f23560443d83b898a92929b4b3
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/taking-flight-with-tailwind-css
|
||||
video:
|
||||
id: C20QZbGlmZ8
|
||||
type: youtube
|
||||
tags: [css, tailwind, meetup]
|
||||
events:
|
||||
- name: Drupal Bristol
|
||||
location: Bristol, UK
|
||||
date: "2018-01-17"
|
||||
url: https://www.drupalbristol.org.uk
|
||||
|
||||
- name: PHP South Wales
|
||||
location: Cardiff, UK
|
||||
date: "2018-07-31"
|
||||
url: https://www.phpsouthwales.uk
|
||||
|
||||
- name: Cheltenham WordPress Meetup
|
||||
location: Cheltenham, UK
|
||||
date: "2019-04-17"
|
||||
url: https://www.meetup.com/Cheltenham-WordPress-Meetup
|
||||
|
||||
- name: WordCamp Bristol 2019
|
||||
location: Bristol, UK
|
||||
date: "2019-05-18"
|
||||
url: https://2019.bristol.wordcamp.org
|
||||
|
||||
- name: Blue Conf 2019
|
||||
location: Cardiff, UK
|
||||
date: "2019-06-07"
|
||||
url: https://blueconf.co.uk
|
||||
|
||||
- name: CMS Philly
|
||||
location: Philadelphia, USA
|
||||
date: "2020-05-01"
|
||||
url: https://cmsphilly.org
|
||||
online: true
|
||||
|
||||
- name: PHP Hampshire
|
||||
location: Portsmouth, UK
|
||||
date: "2020-07-08"
|
||||
url: https://www.meetup.com/meetup-group-yzpbvTYv/events/271430269
|
||||
online: true
|
||||
|
||||
- name: Drupal Yorkshire
|
||||
location: Leeds, UK
|
||||
date: "2020-08-20"
|
||||
url: https://www.meetup.com/DrupalYorkshire/events/zwzsfpybclbbc
|
||||
online: true
|
||||
|
||||
- name: DigitalCamp Atlanta 2020
|
||||
location: Atlanta, GA
|
||||
date: "2020-09-11"
|
||||
url: https://www.drupalcampatlanta.com/2020/sessions/taking-flight-tailwind-css
|
||||
online: true
|
||||
|
||||
- name: Bristol JS
|
||||
location: Bristol, UK
|
||||
date: "2020-09-30"
|
||||
url: https://techtalks.io/events/f8e26038-2561-484e-8a74-7a1e3a0369b8
|
||||
online: true
|
||||
|
||||
- name: "Drupal Virtual Cafe #3"
|
||||
location: Kyiv, Ukraine
|
||||
date: "2020-10-15"
|
||||
url: https://groups.drupal.org/ukraine
|
||||
online: true
|
||||
|
||||
- name: PHP Cambridge
|
||||
location: Cambridge, UK
|
||||
date: "2021-01-19"
|
||||
url: https://www.meetup.com/phpcambridge
|
||||
online: true
|
||||
|
||||
- name: Nashville PHP
|
||||
location: Nashville, TN, USA
|
||||
date: "2021-02-09"
|
||||
url: https://www.meetup.com/nashvillephp/events/kzkdwryccdbmb
|
||||
online: true
|
||||
|
||||
- name: Bristol Software Development Meetup
|
||||
location: Bristol, UK
|
||||
date: "2023-02-16"
|
||||
url: https://www.meetup.com/south-wales-tech/events/291092930
|
||||
|
||||
- name: Norfolk Developers Conference
|
||||
location: Norwich, UK
|
||||
date: "2023-02-23"
|
||||
url: https://nordevcon.com
|
||||
meta:
|
||||
og:
|
||||
title: Taking Flight with Tailwind CSS
|
||||
description: An introduction to utility CSS and Tailwind.
|
||||
type: website
|
||||
image:
|
||||
url: "/images/talks/taking-flight-tailwind.jpg"
|
||||
width: 2560
|
||||
height: 1440
|
||||
type: "image/png"
|
||||
---
|
||||
|
||||
An introduction to utility class and component-based styling, and how to soar with [Tailwind CSS][1].
|
||||
|
||||
Things we'll cover:
|
||||
|
||||
- Advantages and disadvantages to utility-based styling and Tailwind CSS.
|
||||
- How to add Tailwind CSS to your project and configure and customise it.
|
||||
- How to avoid duplication by moving repeating classes into re-usable components for better maintainability.
|
||||
- How to extend Tailwind CSS and add extra classes with community-written plugins.
|
||||
- How to write and test your own custom project-specific plugins.
|
||||
|
||||
[1]: https://tailwindcss.com
|
83
source/_talks/tdd-test-driven-drupal.md
Normal file
83
source/_talks/tdd-test-driven-drupal.md
Normal file
|
@ -0,0 +1,83 @@
|
|||
---
|
||||
title: TDD - Test-Driven Drupal
|
||||
description: How to write automated tests for Drupal, and how to create a new Drupal module using test driven development.
|
||||
speakerdeck:
|
||||
id: 088cb18033064f5cb18d1079795294a1
|
||||
ratio: "1.77777777777778"
|
||||
url: "https://speakerdeck.com/opdavies/tdd-test-driven-drupal"
|
||||
video:
|
||||
type: youtube
|
||||
id: 81J0dPvqG-g
|
||||
image:
|
||||
url: /images/talks/test-driven-drupal-development.png
|
||||
width: 2560
|
||||
height: 1440
|
||||
type: image/png
|
||||
use: [talks]
|
||||
events:
|
||||
- name: DrupalCamp London 2017
|
||||
location: London, UK
|
||||
date: "2017-03-04"
|
||||
time: "16:15 - 17:00"
|
||||
|
||||
- name: DrupalCamp Dublin 2017
|
||||
location: Dublin, Ireland
|
||||
date: "2017-10-21"
|
||||
time: "12:00 - 12:40"
|
||||
url: http://2017.drupal.ie
|
||||
|
||||
- name: Drupal Bristol
|
||||
date: "2017-11-22"
|
||||
location: Bristol, UK
|
||||
url: https://www.drupalbristol.org.uk
|
||||
|
||||
- name: Drupal Somerset
|
||||
date: "2018-06-14"
|
||||
location: Glastonbury, UK
|
||||
|
||||
- name: Drupal Developer Days 2018
|
||||
date: "2018-07-05"
|
||||
time: "12:15 - 13:00"
|
||||
location: Lisbon, Portugal
|
||||
url: http://lisbon2018.drupaldays.org
|
||||
|
||||
- name: DrupalCamp London 2019
|
||||
date: "2019-03-02"
|
||||
time: "14:00 - 14:45"
|
||||
location: London, UK
|
||||
url: http://drupalcamp.london
|
||||
|
||||
- name: NWDUG
|
||||
date: "2020-05-12"
|
||||
location: Manchester, UK
|
||||
url: http://nwdrupal.org.uk
|
||||
online: true
|
||||
|
||||
- name: Bay Area Drupal Camp (BADCamp)
|
||||
date: "2020-10-14"
|
||||
url: https://2020.badcamp.org/session/tdd-test-driven-drupal
|
||||
online: true
|
||||
|
||||
- name: DrupalCon Europe 2020
|
||||
date: "2020-12-08"
|
||||
url: https://events.drupal.org/europe2020/sessions/tdd-test-driven-drupal
|
||||
online: true
|
||||
|
||||
- name: DrupalCon Lille 2023
|
||||
location: Lille, France
|
||||
date: "2023-10-17"
|
||||
time: "15:00 - 15:45"
|
||||
url: https://events.drupal.org/lille2023/session/tdd-test-driven-drupal-introduction-automated-testing-and-test-driven-development
|
||||
---
|
||||
|
||||
Testing is important.
|
||||
|
||||
Why? It allows developers to add new features and edit and refactor existing code without the worry of adding regressions, reduces the reliance on manual testing to discover bugs, and by taking a test driven approach, your implementation code is leaner as you only write what is needed for your tests to pass.
|
||||
|
||||
Drupal 7 includes the SimpleTest module for unit and functional testing, whilst Drupal 8 onwards uses PHPUnit - the defacto PHP testing framework, used by other PHP projects including Symfony and Laravel - making it easier for people to test their code. And with testing being one of the Drupal core gates with tests needing to be included with every new feature or bug fix, and core’s 100% pass rate policy, testing has become an essential skill when contributing to core, or when working on your own projects.
|
||||
|
||||
In this talk, we’ll cover the methodology and terminology involved with automated testing, and then take a test driven approach to creating a new Drupal module.
|
||||
|
||||
P.S. If you want to learn more about automated testing and test-driven development in Drupal, [register for my free 7-day email course][course].
|
||||
|
||||
[course]: /atdc
|
24
source/_talks/test-drive-twig-with-sculpin.md
Normal file
24
source/_talks/test-drive-twig-with-sculpin.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
title: Test Drive Twig with Sculpin
|
||||
description: With Drupal 8 just around the corner, see how you can develop your Twig skills with Sculpin - a static site generator based on Symfony components and Twig.
|
||||
speakerdeck:
|
||||
id: 54589d2e50a3476a9a75aed809e9edf1
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/test-drive-twig-with-sculpin
|
||||
code: https://github.com/opdavies/sculpin-demo
|
||||
tweets: yes
|
||||
events:
|
||||
- name: DrupalCamp North 2015
|
||||
location: Sunderland, UK
|
||||
url: http://drupalcampnorth.org
|
||||
date: "2015-07-25"
|
||||
---
|
||||
|
||||
[Sculpin][1] is a static site generator written in PHP, and based on [Symfony components][2]. It uses [YAML][3] and [Twig][4], which makes it very appealing to Drupal people wanting to learn these in preparation for Drupal 8.
|
||||
|
||||
This session covered how to install Sculpin itself, as well as how to use it to build a static site from Markdown, HTML and Twig templates. We also covered Sculpin concepts such as content types, themes and partials, and Twig layouts, blocks and inheritance, as well as some tips and tricks that I've found whilst developing with Sculpin.
|
||||
|
||||
[1]: https://sculpin.io
|
||||
[2]: http://symfony.com/doc/current/components/index.html
|
||||
[3]: http://yaml.org
|
||||
[4]: http://twig.sensiolabs.org
|
32
source/_talks/things-you-should-know-about-php.md
Normal file
32
source/_talks/things-you-should-know-about-php.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
title: Things you should know about PHP
|
||||
description: An introduction to PHP, presented to the Swansea Software Development Community (SSDC) meetup and PHPSW.
|
||||
speakerdeck:
|
||||
id: fe360f1030f34bdb9eb14cdab907bb3c
|
||||
ratio: "1.78343949044586"
|
||||
url: https://speakerdeck.com/opdavies/things-you-should-know-about-php-a58cd83b-e10c-40df-9ab4-3ed5d55827e7
|
||||
video:
|
||||
id: NH1mVSwCzWs
|
||||
type: youtube
|
||||
meta:
|
||||
og:
|
||||
image:
|
||||
url: /images/talks/things-you-should-know-about-php.png
|
||||
events:
|
||||
- name: Swansea Software Development Meetup (SSDC)
|
||||
location: Swansea, UK
|
||||
url: https://www.meetup.com/Swansea-Software-Development-Meetup
|
||||
date: "2019-01-28"
|
||||
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://www.meetup.com/php-sw/events/284341510
|
||||
date: "2022-03-09"
|
||||
|
||||
- name: PHP Stoke
|
||||
location: Stoke-on-Trent, UK
|
||||
url: https://www.eventbrite.com/e/php-stoke-tickets-429043128547
|
||||
date: "2023-01-12"
|
||||
---
|
||||
|
||||
An introduction to PHP, presented to the Swansea Software Development Community (SSDC) meetup and PHP South West.
|
42
source/_talks/upgrading-your-site-drupal-9.md
Normal file
42
source/_talks/upgrading-your-site-drupal-9.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: Upgrading your site to Drupal 9
|
||||
description:
|
||||
How to update your site to Drupal 9, and why it's much different to any
|
||||
major Drupal version upgrade before!
|
||||
speakerdeck:
|
||||
id: 19f439b7a9a4450baa79bb73ec3dd117
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/deploying-php-applications-with-ansible-ansible-vault-and-ansistrano
|
||||
video:
|
||||
type: youtube
|
||||
id: AcYMXiom0o8
|
||||
events:
|
||||
- name: DrupalNYC
|
||||
location: New York, USA
|
||||
url: https://ti.to/drupalnyc/meetup-2020-09-02
|
||||
date: "2020-09-02"
|
||||
online: true
|
||||
|
||||
- name: Leeds PHP
|
||||
location: Leeds, UK
|
||||
url: https://www.meetup.com/leedsphp/events/272504993
|
||||
date: "2020-09-23"
|
||||
online: true
|
||||
|
||||
- name: Midwest PHP
|
||||
url: https://midwestphp.org/talks/7C0m4I87vq72cDoXvsHFRp/Upgrading_your_site_to_Drupal_9
|
||||
date: "2021-04-22"
|
||||
online: true
|
||||
---
|
||||
|
||||
For most Drupal Developers and users, the idea of moving a project from one
|
||||
major version of Drupal to another can be daunting, with modules and themes
|
||||
having to being changed significantly or rebuilt completely, and data being
|
||||
migrated from the old site to the new one.
|
||||
|
||||
This was no more so than the move from Drupal 7 to 8, but luckily this has
|
||||
changed for Drupal 9 and an upgrade can be done with minimal changes and not a
|
||||
data migration in sight!
|
||||
|
||||
In this talk, we'll look at some of the changes to Drupal's tools and processes
|
||||
that have made this possible, and how to move your Drupal site to Drupal 9.
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
title: Using Illuminate Collections... Outside Laravel
|
||||
description: How to include and use Laravel’s Illuminate Collections in your non-Laravel PHP projects.
|
||||
speakerdeck:
|
||||
id: 76f1718a75a74940b0b028aac8b9f78b
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/using-laravel-collections-dot-dot-dot-outside-laravel-php-south-wales-august-2018
|
||||
video:
|
||||
type: youtube
|
||||
id: 1l0kO-iaN_o
|
||||
tags: [nomad-php, lightning-talk, laravel, collections]
|
||||
type: Lightning talk
|
||||
events:
|
||||
- name: Nomad PHP
|
||||
url: https://nomadphp.com
|
||||
online: true
|
||||
date: "2017-12-21"
|
||||
time: 19:00 CET
|
||||
- name: PHP South Wales
|
||||
location: Cardiff, UK
|
||||
url: https://www.phpsouthwales.uk
|
||||
date: "2018-08-28"
|
||||
---
|
||||
|
||||
Laravel's Illuminate Collections are a powerful object-orientated way of interacting with PHP arrays, but did you know that they can be used outside of Laravel, in any PHP project?
|
||||
|
||||
This short talk shows how we can use Composer to include Illuminate Collections within a non-Laravel project and put them to use within your own code.
|
30
source/_talks/working-with-workspace.md
Normal file
30
source/_talks/working-with-workspace.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
title: Working with Workspace
|
||||
description: Workspace is an open-source local development tool from Inviqa. This talk covers what it is, what it does, and how to use it in your PHP project.
|
||||
speakerdeck:
|
||||
id: e87103bd5f8b4f16bbed73a9d4d2a592
|
||||
ratio: "1.77777777777778"
|
||||
url: https://speakerdeck.com/opdavies/taking-flight-with-tailwind-css
|
||||
video:
|
||||
type: youtube
|
||||
id: oO0-E_FBS-U
|
||||
events:
|
||||
- name: NWDUG
|
||||
location: Manchester, UK
|
||||
url: https://www.meetup.com/nwdrupal/events/272098270
|
||||
date: "2020-08-11"
|
||||
online: true
|
||||
- name: PHP South West
|
||||
location: Bristol, UK
|
||||
url: https://www.meetup.com/php-sw/events/272787346
|
||||
date: "2020-09-09"
|
||||
online: true
|
||||
- name: PHP North West
|
||||
url: https://www.phpnw.org.uk
|
||||
date: "2021-02-02"
|
||||
online: true
|
||||
---
|
||||
|
||||
[Workspace](https://github.com/my127/workspace) is an open source tool developed by [Inviqa](https://inviqa.com), as a way to create custom commands for your project environments, and an alternative to a bash script or a Makefile.
|
||||
|
||||
In this short talk and demo, we'll look at what Workspace does, some of its features including attributes, generating configuration files and managing secrets, and and how it can be added to and used on a project.
|
15
source/_talks/working-without-workspace.md
Normal file
15
source/_talks/working-without-workspace.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: Working without Workspace
|
||||
description: |
|
||||
A look at how I configure my development environments and the tools I use with PHP, such as Nix, Home Manager, Docker, Neovim and tmux.
|
||||
speakerdeck:
|
||||
id: dd406a45f04047fda765346b75efa3c3
|
||||
ratio: "1.77798682972719"
|
||||
url: https://speakerdeck.com/opdavies/working-without-workspace
|
||||
video: ~
|
||||
events:
|
||||
- name: PHP London
|
||||
location: London, UK
|
||||
url: https://www.meetup.com/phplondon/events/292657869
|
||||
date: "2023-04-06"
|
||||
---
|
Loading…
Reference in a new issue