Use tables again for talks

This commit is contained in:
Oliver Davies 2018-05-10 00:17:07 +01:00
parent 4fa5cd767d
commit 135de801bc
47 changed files with 186 additions and 476 deletions

View file

@ -15,6 +15,11 @@ jobs:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}
- run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml
- store_test_results:
path: ~/phpunit
- store_artifacts:
path: ~/phpunit
deploy:
docker:

View file

@ -0,0 +1,8 @@
<div class="mt-8">
<h2>Events</h2>
{% include "talks-table" with {
talks: getAllTalks([page], site.events),
talk_page: true
} %}
</div>

View file

@ -2,11 +2,8 @@
{% block content_wrapper %}
<div>
<div class="mb-4 text-grey">
{{ page.date|date('jS F Y') }}
</div>
<div>
<h2>Abstract</h2>
{{ page.summary|markdown }}
{% block content %}{% endblock %}
</div>
@ -14,4 +11,5 @@
{% include 'talk/slides' %}
{% include 'talk/video' %}
{% include 'talk/events' %}
{% endblock %}

View file

@ -1,7 +0,0 @@
---
title: So, what is this Drupal thing?
summary: My very first talk, where I talk about Drupal, what it is and what it can do.
vimeo:
id: 49827006
---
Presented at the [unified.diff meetup](http://unifieddiff.co.uk) in September 2012.

View file

@ -1,11 +0,0 @@
---
title: Never Commit to Master - An Introduction to Git Flow
summary: An introduction to the Git Flow branching model and the git-flow plugin, and how Ive used them to manage a Drupal development project.
speakerdeck:
id: 201559e0f103013198dd5a5f6f23ab67
ratio: 1.29456384323641
youtube:
id: T-miCpHxfds
image: git-flow.png
---
Presented at [DrupalCamp London 2014](http://drupalcamp.london).

View file

@ -1,9 +0,0 @@
---
title: drush make drupalbristol
summary: An introduction to Drush Make and how to use it to build reusable custom installation profiles or entire websites.
speakerdeck:
id: 42605700f102013198de5a5f6f23ab67
ratio: 1.29456384323641
image: drush-make-drupalbristol.png
---
Presented at the [Drupal Bristol user group](https://www.drupalbristol.org.uk) in August 2014.

View file

@ -1,9 +0,0 @@
---
title: 'Drupal.org in 2015: Whats Coming Next'
summary: A retrospective of the Drupal Associations work in 2014 and a look forward to what well be working on in 2015.
speakerdeck:
id: 0cf8d7b647c94ae289e9db2b46a9e8f2
ratio: 1.77777777777778
image: drupalorg-2014-retrospective.png
---
Presented at [DrupalCamp Brighton](http://www.drupalcampbrighton.co.uk) and [DrupalCamp London](https://drupalcamp.london) 2015.

View file

@ -1,13 +0,0 @@
---
title: Drupal 8
summary: This was a ten minute lightning talk, designed to highlight the major changes coming in Drupal 8.
speakerdeck:
id: 46ba4ba577d94a32b7abdade610ceb69
ratio: 1.29456384323641
youtube:
id: 36zCxPrOOzM
image: drupal-8.png
---
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.
Presented at the [PHPSW user group](https://phpsw.uk) in April 2015.

View file

@ -1,12 +0,0 @@
---
title: Test Drive Twig with Sculpin
summary: Sculpin is a static site generator written in PHP, and based on Symfony components. It uses YAML and Twig, which makes it very appealing to Drupal people wanting to learn these in preparation for Drupal 8.
speakerdeck:
id: 54589d2e50a3476a9a75aed809e9edf1
ratio: 1.77777777777778
image: test-drive-twig-sculpin.png
---
This session covers 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.
Presented at [DrupalCamp North](http://drupalcampnorth.org) 2015.

View file

@ -1,21 +0,0 @@
---
title: Dancing for Drupal
speakerdeck:
id: ffa9b6dea6dc4a8eb207b9982ed6e1bd
ratio: 1.33333333333333
summary: As part of their CMS Dance-Off event, I was selected to speak about Drupal alongside other speakers representing Umbraco, Sitecore and Episerver.
image: dancing-for-drupal.png
---
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.
Presented at the [umBristol user group](http://umbristol.co.uk) in August 2015.

View file

@ -1,14 +0,0 @@
---
title: Building Static Websites with Sculpin
summary: |
Sculpin 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!
speakerdeck:
id: 6c9c4be1a1344f1291ff13a391674a66
ratio: 1.37081659973226
youtube:
id: aN53arCKZAU
image: static-websites-sculpin.png
---
Presented at the [PHPSW user group](https://phpsw.uk) in October 2015.

View file

@ -1,37 +0,0 @@
---
title: Getting Started with Drupal 8 Module Development
summary: New to object-orientated PHP, Symfony or YAML, and want to get started building modules in Drupal 8? This is the session for you!
speakerdeck:
id: 0041804e52664d12a8e31cd118264813
ratio: 1.77777777777778
youtube:
id: qO_Wh5WE3VA
image: dclondon16.png
meta:
og:
title: Getting Started with Drupal 8 Module Development
image:
url: /build/static/images/talks/dclondon16.png
type: 'image/png'
height: 540
width: 960
---
In this session, well 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 wont be covering:
* Automated testing in PHPUnit or Simpletest.
* Adding third party libraries and external dependencies via Composer.
Presented at [DrupalCamp London][1] 2016.
The source code is available on [GitHub][0].
[0]: https://github.com/opdavies/dclondon16-d8-module
[1]: http://drupalcamp.london

View file

@ -1,17 +0,0 @@
---
title: Drupal VM Generator
summary: An short talk about the Drupal VM Generator project.
speakerdeck:
id: a27ee1d2bfed4a209dc395fa455acb41
ratio: 1.37081659973226
youtube:
id: U1pbKAAO2Wo?t=1h1m37s
image: drupal-vm-generator.png
---
Presented at the [NWDUG][1] and [Drupal Bristol][2] user groups in 2016.
The source code for the project is available on [GitHub][0].
[0]: https://github.com/opdavies/drupal-vm-generator
[1]: http://nwdrupal.org.uk
[2]: https://www.drupalbristol.org.uk

View file

@ -1,11 +0,0 @@
---
title: Drupal 8: Rejoining the Herd
summary: Drupal 8 was (finally) released on November 19th 2015, after almost 4 years of work and code commits by over 3,200 different contributors. Whilst its pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood!
speakerdeck:
id: 440fd6592f474741bc606c96bc32c104
ratio: 1.
image: drupal-rejoining-php-herd.png
---
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.
Presented at [PHP South Coast 2016](http://2016.phpsouthcoast.co.uk).

View file

@ -1,14 +0,0 @@
---
title: Drupal VM, Meet Symfony Console
summary: |
_TL;DR - Come and learn about Symfony Console, with examples from a real-world project._
The Drupal VM Generator is a CLI application, built on Symfony Console, that generates configuration files for Drupal VM based on personal settings and user interaction.
speakerdeck:
id: 56c79770f73f4e47a542a30243437c49
ratio: 1.37081659973226
image: drupal-vm-meet-symfony-console.png
---
After an introduction to Drupal VM itself and the Drupal VM Generator, well 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.
Presented at [DrupalCamp Bristol 2016](https://2016.drupalcampbristol.co.uk).

View file

@ -1,15 +0,0 @@
---
title: Modern Drupal Development with Composer
summary: 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.
speakerdeck:
id: 7a1358502526425a9cfd288f85fb32f3
ratio: 1.37081659973226
youtube:
id: Yi_FPI3xHwc
image: modern-drupal-development-composer.png
---
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, Ill show how to build a Drupal application using Composer for dependency management.
Presented at the [PHPSW user group](https://phpsw.uk) in November 2016.

View file

@ -1,14 +0,0 @@
---
title: Goodbye Drush Make. Hello Composer!
summary:
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, PHPs dependency manager.
speakerdeck:
id: f7de07ae513f49798de78b6f8c3ef8cd
ratio: 1.37081659973226
image: drush-make-composer-2.png
---
Included to manage cores 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.
Presented at the [Drupal Bristol](https://www.drupalbristol.org.uk) user group in 2016 and the [PHP UK conference](https://www.phpconference.co.uk) in 2018.

View file

@ -1,26 +0,0 @@
---
title: Getting (Your Data) Into Drupal 8
summary: |
If youve moved a site from Drupal 6 to 7, the chances are that youve 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 theres 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.
speakerdeck:
id: 63e5dfce996e46699e304d50e896477b
ratio: 1.77777777777778
youtube:
id: jtmARTuYhp8
image: getting-your-data-into-drupal-8.png
meta:
og:
title: Getting (Your Data) into Drupal 8
description: "How I migrated the Drupal Bristol website onto Drupal 8."
type: website
image:
url: /build/static/images/talks/getting-your-data-into-drupal-8.png
width: 2560
height: 1440
type: image/png
---
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.
Presented at the [Drupal Bristol](https://www.drupalbristol.org.uk) user group and [DrupalCamp London](https://drupalcamp.london) in 2017.

View file

@ -1,10 +0,0 @@
---
title: It All Started With A Patch
summary: A crash course of why and how to get involved with open source.
speakerdeck:
id: 5862bdecb7a24cfaa5fc844696fafa0c
ratio: 1.37081659973226
youtube:
id: 5FYMRR61sdo
image: it-all-started-with-a-patch.png
---

View file

@ -1,32 +0,0 @@
---
title: TDD - Test Driven Drupal
summary: 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.
speakerdeck:
id: 088cb18033064f5cb18d1079795294a1
ratio: 1.77777777777778
youtube:
id: fdbxXOi2HP4
image: test-driven-drupal-development.png
meta:
og:
title: TDD - Test Driven Drupal
description: "How to write tests and follow TDD for Drupal applications."
type: website
image:
url: /build/static/images/talks/test-driven-drupal-development.png
width: 2560
height: 1440
type: image/png
---
Drupal 7 includes the SimpleTest module for unit and functional testing, whilst Drupal 8 also includes and supports 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 cores 100% pass rate policy, testing has become an essential skill when contributing to core, or when working on your own projects.
In this talk, well cover the methodology and terminology involved with automated testing, and then take a test driven approach to creating a new Drupal module.
Presented at [DrupalCamp London][1], [DrupalCamp Dublin][2] and the [Drupal Bristol][3] user group in 2017.
The example code is available on [GitHub][0]. The 8.x-1.x branch contains the original code from the presentation which uses functional tests. The 8.x-2.x branch contains the refactored code that instead uses kernel tests.
[0]: https://github.com/opdavies/drupal-module-tdd-dublin
[1]: https://drupalcamp.london
[2]: http://2017.drupal.ie
[3]: https://www.drupalbristol.org.uk

View file

@ -1,24 +0,0 @@
---
title: Deploying PHP Applications with Fabric
summary: |
Youve 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 a Python based command line tool for running commands locally as well as on remote servers. Its 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.
speakerdeck:
id: c147618ce07546ca92f92983c52d6a41
ratio: 1.77777777777778
image: deploying-php-fabric.png
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: /build/static/images/talks/deploying-php-fabric.png
width: 2560
height: 1440
type: image/png
---
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.
Originally presented as a [Nomad PHP](https://nomadphp.com) lightning talk, but then I presented a full version to the [PHPSW user group](https://phpsw.uk) and the [PHPNW conference](https://conference.phpnw.org.uk/phpnw17) in 2017.

View file

@ -1,19 +0,0 @@
---
title: Deploying Drupal with Fabric
summary: |
Youve 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 - a Python based command line tool for running commands locally as well as on remote servers. Its 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.
speakerdeck:
id: 40d1eca4bd484afc86295924fff5dd41
ratio: 1.77777777777778
image: fabric-drupal.png
meta:
og:
title: Deploying Drupal with Fabric
description: "You've built your Drupal site, now learn how to deploy it with Fabric."
type: website
---
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.
Presented at [DrupalCamp Dublin](http://2017.drupal.ie) and the Drupal Somerset user group in 2017.

View file

@ -1,11 +0,0 @@
---
title: Using Laravel Collections... Outside Laravel
summary: Laravel 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 Laravel Collections within a non-Laravel project and put them to use within your own code.
speakerdeck:
id: 76f1718a75a74940b0b028aac8b9f78b
ratio: 1.77777777777778
youtube:
id: 1l0kO-iaN_o
image: laravel-collections.png
---
Presented as a lightning talk for [Nomad PHP](https://nomadphp.com).

View file

@ -1,26 +0,0 @@
---
title: Taking Flight with Tailwind CSS
summary: An introduction to utility class and component based styling, and how to soar with Tailwind CSS.
speakerdeck:
id: 10ca51f23560443d83b898a92929b4b3
ratio: "1.77777777777778"
image: taking-flight-tailwind.png
meta:
og:
title: Taking Flight with Tailwind CSS
description: An introduction to utility CSS and Tailwind.
type: website
image:
url: '/build/static/images/talks/taking-flight-tailwind.png'
width: 2560
height: 1440
type: 'image/png'
---
Things well cover:
- Advantages and disadvantages to utility based styling and Tailwind.
- How to install Tailwind and add it to your build process.
- How to customise Tailwind.
- How to promote repeating classes into re-usable components.
Presented at the [Drupal Bristol](https://www.drupalbristol.org.uk) user group in January 2018.

View file

@ -1,17 +1,19 @@
---
title: Building Static Websites with Sculpin
type: Lightning talk
slides:
speakerdeck:
id: 6c9c4be1a1344f1291ff13a391674a66
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/building-static-websites-with-sculpin
embed: <script async class="speakerdeck-embed" data-id="6c9c4be1a1344f1291ff13a391674a66" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
code: https://github.com/opdavies/sculpin-demo
tags: [meetups, phpsw, sculpin]
tweets: yes
video:
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/aN53arCKZAU" frameborder="0" allowfullscreen></iframe>
url: https://www.youtube.com/watch?v=aN53arCKZAU
youtube:
id: aN53arCKZAU
events:
- { event: phpsw, date: '2015-10-14', feedback: https://joind.in/talk/view/15486 }
- event: phpsw
date: '2015-10-14'
feedback: https://joind.in/talk/view/15486
---
[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.

View file

@ -1,12 +1,14 @@
---
title: Dancing for Drupal
slides:
speakerdeck:
id: ffa9b6dea6dc4a8eb207b9982ed6e1bd
ratio: '1.33333333333333'
url: https://speakerdeck.com/opdavies/umbristol-dancing-for-drupal
embed: <script async class="speakerdeck-embed" data-id="ffa9b6dea6dc4a8eb207b9982ed6e1bd" data-ratio="1.33333333333333" src="//speakerdeck.com/assets/embed.js"></script>
tags: [meetup, umbristol, drupal]
tweets: yes
events:
- { event: umbristol, date: '2015-08-25' }
- event: umbristol
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.

View file

@ -1,12 +1,11 @@
---
title: 'Deploying Drupal with Fabric'
type: Talk
slides:
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="40d1eca4bd484afc86295924fff5dd41" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
video:
embed: ~
url: ~
embed: '<script async class="speakerdeck-embed" data-id="" data-ratio="" src="//speakerdeck.com/assets/embed.js"></script>'
tags: [meetup, conference, php, fabric, drupal]
meta:
og:
@ -14,9 +13,11 @@ meta:
description: "You've built your Drupal site, now learn how to deploy it with Fabric."
type: website
events:
- { event: drupalcamp-dublin-17, date: '2017-10-20', time: '15:00 - 15:40' }
- { event: drupal-somerset, date: '2017-10-26' }
- { event: drupalcamp-london-18, date: '2018-03-03', time: '14:00 - 14:45' }
- event: drupalcamp-dublin-17
date: '2017-10-20'
time: '15:00 - 15:40'
- event: drupal-somerset
date: '2017-10-26'
---
Youve 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).

View file

@ -1,11 +1,9 @@
---
title: Deploying PHP Applications with Fabric
slides:
speakerdeck:
id: c147618ce07546ca92f92983c52d6a41
ratio: '1.77777777777778'
url: https://speakerdeck.com/opdavies/deploying-php-applications-with-fabric
embed: '<script async class="speakerdeck-embed" data-id="c147618ce07546ca92f92983c52d6a41" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
# video:
# embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/kM0MDUJE8ys" frameborder="0" allowfullscreen></iframe>'
# url: https://www.youtube.com/watch?v=kM0MDUJE8ys
tags: [meetup, conference, php, fabric]
meta:
og:
@ -18,9 +16,17 @@ meta:
height: 1440
type: image/png
events:
- { event: nomad-php, date: '2017-04-20', time: '19:00 (CET)', type: 'Lightning talk' }
- { event: phpsw, date: '2017-09-13', feedback: https://joind.in/talk/a5ff3 }
- { event: phpnw17, date: '2017-10-01', time: '09:00 - 09:45', feedback: https://joind.in/talk/4e35d }
- event: nomad-php
date: '2017-04-20'
time: '19:00 (CET)'
type: 'Lightning talk'
- event: phpsw
date: '2017-09-13'
feedback: https://joind.in/talk/a5ff3
- event: phpnw17
date: '2017-10-01'
time: '09:00 - 09:45'
feedback: https://joind.in/talk/4e35d
---
Youve 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).

View file

@ -3,12 +3,12 @@ title: Getting Started with Drupal 8 Module Development
tags: [conference, php, drupal, drupalcamp, drupal-8]
tweets: yes
code: https://github.com/opdavies/dclondon16-d8-module
slides:
speakerdeck:
id: 0041804e52664d12a8e31cd118264813
ratio: '1.77777777777778'
url: https://speakerdeck.com/opdavies/getting-started-with-drupal-8-module-development
embed: <script async class="speakerdeck-embed" data-id="0041804e52664d12a8e31cd118264813" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
video:
url: https://www.youtube.com/watch?v=qO_Wh5WE3VA
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/qO_Wh5WE3VA" frameborder="0" allowfullscreen></iframe>
youtube:
id: qO_Wh5WE3VA
meta:
og:
title: Getting Started with Drupal 8 Module Development
@ -18,7 +18,8 @@ meta:
height: 540
width: 960
events:
- { event: drupalcamp-london-16, date: '2016-03-05' }
- event: drupalcamp-london-16
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!

View file

@ -1,9 +1,5 @@
---
title: Having Fun with Drupal 8, PHP libraries and the Drupal.org API
summary: |
A demo of some of the open source projects that Ive 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.
speakerdeck:
id: 6e42ae9620bb4e91b3955f8c30d66934
ratio: '1.77777777777778'
@ -14,12 +10,15 @@ tags:
- php
youtube:
id: JyDjC7gGDpU
events:
- event: drupal-bristol
date: '2018-04-18'
feedback: https://joind.in/talk/14851
---
Presented at the [Drupal Bristol][0] user group in April 2018.
A demo of some of the open source projects that Ive 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.
## Links
- [Joind.in][1]
- [Drupal.org API library][2]
- [Drupal.org API documentation][3]
- [Laravel Collections][4]
@ -28,7 +27,6 @@ Presented at the [Drupal Bristol][0] user group in April 2018.
- Talk: [Using Laravel Collections outside Laravel][7]
[0]: https://www.drupalbristol.org.uk
[1]: https://joind.in/talk/14851
[2]: https://github.com/opdavies/drupalorg-api-php
[3]: https://www.drupal.org/drupalorg/docs/api
[4]: https://laravel.com/docs/collections

View file

@ -1,11 +1,14 @@
---
title: Drupal 8: Rejoining the Herd
tags: [conference, php, drupal, drupal-8]
slides:
speakerdeck:
id: 440fd6592f474741bc606c96bc32c104
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/drupal-rejoining-the-herd
embed: <script async class="speakerdeck-embed" data-id="440fd6592f474741bc606c96bc32c104" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
events:
- { event: phpsc16, date: '2016-06-11', feedback: https://joind.in/talk/41d0f }
- event: phpsc16
date: '2016-06-11'
feedback: 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 its pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood!

View file

@ -1,15 +1,16 @@
---
title: Drupal 8
slides:
speakerdeck:
url: https://speakerdeck.com/opdavies/drupal-8
embed: <script async class="speakerdeck-embed" data-id="46ba4ba577d94a32b7abdade610ceb69" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"></script>
video:
url: https://www.youtube.com/watch?v=36zCxPrOOzM
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/36zCxPrOOzM" frameborder="0" allowfullscreen></iframe>
id: 46ba4ba577d94a32b7abdade610ceb69
ratio: "1.29456384323641"
youtube:
id: 36zCxPrOOzM
tags: [meetup, phpsw, drupal, drupal-8]
tweets: yes
events:
- { event: phpsw, date: '2015-04-08' }
- event: phpsw
date: '2015-04-08'
---
This was a ten minute lightning talk, designed to highlight the major changes coming in Drupal 8.

View file

@ -3,15 +3,17 @@ title: Drupal VM Generator
type: Lightning talk
code: https://github.com/opdavies/drupal-vm-generator
tags: [drupal-vm, drupal-vm-generator, meetup, symfony]
slides:
speakerdeck:
id: a27ee1d2bfed4a209dc395fa455acb41
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/bristol-dug-drupal-vm-generator
embed: <script async class="speakerdeck-embed" data-id="a27ee1d2bfed4a209dc395fa455acb41" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
video:
url: https://youtu.be/U1pbKAAO2Wo?t=3696
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/U1pbKAAO2Wo?start=3696" frameborder="0" allowfullscreen></iframe>
youtube:
id: U1pbKAAO2Wo
events:
- { event: nwdug, date: '2016-03-08' }
- { event: drupal-bristol, date: '2016-04-02' }
- event: nwdug
date: '2016-03-08'
- event: drupal-bristol
date: '2016-04-02'
---
An short talk about the [Drupal VM Generator][1] project.

View file

@ -1,12 +1,14 @@
---
title: Drupal VM, Meet Symfony Console
tags: [conference, php, drupal-vm, symfony]
slides:
speakerdeck:
id: 56c79770f73f4e47a542a30243437c49
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/drupal-vm-meet-symfony-console
embed: <script async class="speakerdeck-embed" data-id="56c79770f73f4e47a542a30243437c49" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
image: drupal-vm-meet-symfony-console.png
events:
- { event: drupalcamp-bristol-16, date: '2016-07-23' }
- event: drupalcamp-bristol-16
date: '2016-07-23'
---
_TL;DR - Come and learn about Symfony Console, with examples from a real-world project._

View file

@ -1,10 +1,14 @@
---
title: Drupal.org in 2015: What's Coming Next
tags: [conference, drupalcamp, drupalcamp-london, drupal-association]
slides:
speakerdeck:
id: 0cf8d7b647c94ae289e9db2b46a9e8f2
ratio: "1.77777777777778"
url: https://speakerdeck.com/opdavies/drupal-dot-org-in-15
embed: <script async class="speakerdeck-embed" data-id="0cf8d7b647c94ae289e9db2b46a9e8f2" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
events:
- { event: drupalcamp-brighton-15, date: '2015-01-18' }
- { event: drupalcamp-london-15, date: '2015-02-28' }
- event: drupalcamp-brighton-15
date: '2015-01-18'
- event: drupalcamp-london-15
date: '2015-02-28'
---
A retrospective of the Drupal Associations work in 2014 and a look forward to what well be working on in 2015.

View file

@ -1,9 +1,12 @@
---
title: drush make drupalbristol
slides:
speakerdeck:
id: 42605700f102013198de5a5f6f23ab67
ratio: '1.29456384323641'
url: https://speakerdeck.com/opdavies/drush-make-drupalbristol
embed: <script async class="speakerdeck-embed" data-id="42605700f102013198de5a5f6f23ab67" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"></script>
tags: [meetup, drupal, drupal-bristol, drush, drush-make]
events:
- { event: drupal-bristol, date: '2014-08-19' }
- event: drupal-bristol
date: '2014-08-19'
---
An introduction to Drush Make and how to use it to build reusable custom installation profiles or entire websites.

View file

@ -1,11 +1,11 @@
---
title: Getting (Your Data) Into Drupal 8
slides:
url: https://speakerdeck.com/opdavies/getting-your-data-into-drupal-8-drupal-bristol
embed: '<script async class="speakerdeck-embed" data-id="63e5dfce996e46699e304d50e896477b" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
video:
url: https://www.youtube.com/watch?v=jtmARTuYhp8
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/jtmARTuYhp8" frameborder="0" allowfullscreen></iframe>
speakerdeck:
id: 63e5dfce996e46699e304d50e896477b
ratio: '1.77777777777778'
url: 'https://speakerdeck.com/opdavies/getting-your-data-into-drupal-8-drupal-bristol'
youtube:
id: jtmARTuYhp8
tags: [drupalcamp, migration, drupal-8]
meta:
og:
@ -19,8 +19,11 @@ meta:
type: image/png
use: [talks]
events:
- { event: drupal-bristol, date: '2017-01-18' }
- { event: drupalcamp-london-17, date: '2017-03-04', time: '12:05 - 12:50' }
- event: drupal-bristol
date: '2017-01-18'
- event: drupalcamp-london-17
date: '2017-03-04'
time: '12:05 - 12:50'
---
If youve moved a site from Drupal 6 to 7, the chances are that youve 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.

View file

@ -1,13 +1,15 @@
---
title: Never Commit to Master - An Introduction to Git Flow
slides:
speakerdeck:
id: 201559e0f103013198dd5a5f6f23ab67
ratio: '1.29456384323641'
url: https://speakerdeck.com/opdavies/never-commit-to-master-an-introduction-to-git-flow
embed: <script async class="speakerdeck-embed" data-id="201559e0f103013198dd5a5f6f23ab67" data-ratio="1.29456384323641" src="//speakerdeck.com/assets/embed.js"></script>
video:
url: https://www.youtube.com/watch?v=T-miCpHxfds
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/T-miCpHxfds" frameborder="0" allowfullscreen></iframe>
youtube:
id: T-miCpHxfds
tags: [conference, drupalcamp, drupalcamp-london, git, git-flow]
tweets: yes
events:
- { event: drupalcamp-london-14, date: '2014-03-01' }
- event: drupalcamp-london-14
date: '2014-03-01'
---
An introduction to the Git Flow branching model and the git-flow plugin, and how Ive used them to manage a Drupal development project.

View file

@ -1,12 +1,19 @@
---
title: Goodbye Drush Make. Hello Composer!
tags: ['meetup', 'drupal', 'composer']
slides:
speakerdeck:
id: f7de07ae513f49798de78b6f8c3ef8cd
ratio: '1.37081659973226'
url: http://bit.ly/slides-goodbye-drush-make-hello-composer2
embed: '<script async class="speakerdeck-embed" data-id="1c1e0e129ab34816bd4c4edb5f6642c2" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>'
youtube:
id: ZL2FtRTX9Y8
events:
- { event: drupal-bristol, date: '2016-11-17' }
- { event: phpuk18, date: '2018-02-16', time: '14:40 - 15:40' }
- event: drupal-bristol
date: '2016-11-17'
- event: phpuk18
date: '2018-02-16'
time: '14:40 - 15:40'
feedback: 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], PHPs dependency manager.

View file

@ -2,13 +2,14 @@
title: It All Started With A Patch
type: Lightning talk
tags: [meetup, phpsw, open-source]
slides:
speakerdeck:
id: 5862bdecb7a24cfaa5fc844696fafa0c
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/it-all-started-with-a-patch-phpsw
embed: <script async class="speakerdeck-embed" data-id="5862bdecb7a24cfaa5fc844696fafa0c" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
video:
url: https://www.youtube.com/watch?v=5FYMRR61sdo
embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/5FYMRR61sdo" frameborder="0" allowfullscreen></iframe>'
youtube:
id: 5FYMRR61sdo
events:
- { event: phpsw, date: '2017-02-08' }
- event: phpsw
date: '2017-02-08'
---
A crash course of why and how to get involved with open source.

View file

@ -2,14 +2,15 @@
title: Modern Drupal Development with Composer
type: Lightning talk
tags: ['meetups', 'phpsw', 'drupal', 'composer']
slides:
speakerdeck:
id: 7a1358502526425a9cfd288f85fb32f3
ratio: '1.37081659973226'
url: https://speakerdeck.com/opdavies/modern-drupal-development-with-composer
embed: '<script async class="speakerdeck-embed" data-id="7a1358502526425a9cfd288f85fb32f3" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>'
video:
url: https://www.youtube.com/watch?v=Yi_FPI3xHwc
embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/Yi_FPI3xHwc" frameborder="0" allowfullscreen></iframe>'
youtube:
id: Yi_FPI3xHwc
events:
- { event: phpsw, date: '2016-11-09' }
- event: phpsw
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.

View file

@ -1,9 +1,10 @@
---
title: So, what is this Drupal thing?
video:
url: https://vimeo.com/49827006
embed: <iframe src="https://player.vimeo.com/video/49827006" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
vimeo:
id: 49827006
tags: [meetup, drupal, unified-diff]
events:
- { event: unifieddiff, date: '2012-09-05' }
- event: unifieddiff
date: '2012-09-05'
---
My very first talk, where I talk about Drupal, what it is and what it can do.

View file

@ -1,12 +1,14 @@
---
title: Taking Flight with Tailwind CSS
slides:
speakerdeck:
id: 10ca51f23560443d83b898a92929b4b3
ratio: '1.77777777777778'
url: https://speakerdeck.com/opdavies/taking-flight-with-tailwind-css
embed: '<script async class="speakerdeck-embed" data-id="10ca51f23560443d83b898a92929b4b3" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
tags: [css, tailwind, meetup]
type: Lightning talk
events:
- { event: drupal-bristol, date: '2018-01-17' }
- event: drupal-bristol
date: '2018-01-17'
type: Lightning talk
meta:
og:
title: Taking Flight with Tailwind CSS

View file

@ -1,11 +1,11 @@
---
title: TDD - Test Driven Drupal
slides:
speakerdeck:
id: 088cb18033064f5cb18d1079795294a1
ratio: '1.77777777777778'
url: 'https://speakerdeck.com/opdavies/tdd-test-driven-drupal'
embed: '<script async class="speakerdeck-embed" data-id="088cb18033064f5cb18d1079795294a1" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
video:
url: https://www.youtube.com/watch?v=fdbxXOi2HP4
embed: <iframe width="560" height="315" src="https://www.youtube.com/embed/fdbxXOi2HP4" frameborder="0" allowfullscreen></iframe>
youtube:
id: fdbxXOi2HP4
tags: [drupalcamp, simpletest, phpunit, testing]
meta:
og:
@ -19,9 +19,14 @@ meta:
type: image/png
use: [talks]
events:
- { event: drupalcamp-london-17, date: '2017-03-04', time: '16:15 - 17:00' }
- { event: drupalcamp-dublin-17, date: '2017-10-21', time: '12:00 - 12:40' }
- { event: drupal-bristol, date: '2017-11-22' }
- event: drupalcamp-london-17
date: '2017-03-04'
time: '16:15 - 17:00'
- event: drupalcamp-dublin-17
date: '2017-10-21'
time: '12:00 - 12:40'
- event: drupal-bristol
date: '2017-11-22'
---
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.

View file

@ -1,13 +1,15 @@
---
title: Test Drive Twig with Sculpin
slides:
speakerdeck:
id: 54589d2e50a3476a9a75aed809e9edf1
ratio: '1.77777777777778'
url: https://speakerdeck.com/opdavies/test-drive-twig-with-sculpin
embed: <script async class="speakerdeck-embed" data-id="54589d2e50a3476a9a75aed809e9edf1" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
code: https://github.com/opdavies/sculpin-demo
tags: [conference, drupalcamp, drupalcamp-north, sculpin, twig]
tweets: yes
events:
- { event: drupalcamp-north-15, date: '2015-07-25' }
- event: drupalcamp-north-15
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.

View file

@ -1,14 +1,16 @@
---
title: Using Laravel Collections... Outside Laravel
slides:
speakerdeck:
id: 76f1718a75a74940b0b028aac8b9f78b
ratio: '1.77777777777778'
url: https://speakerdeck.com/opdavies/using-laravel-collections-dot-dot-dot-outside-laravel
embed: '<script async class="speakerdeck-embed" data-id="76f1718a75a74940b0b028aac8b9f78b" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>'
video:
url: https://youtu.be/1l0kO-iaN_o
embed: '<iframe width="560" height="315" src="https://www.youtube.com/embed/1l0kO-iaN_o" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>'
youtube:
id: 1l0kO-iaN_o
tags: [nomad-php, lightning-talk, laravel, collections]
type: Lightning talk
events:
- { event: nomad-php, date: '2017-12-21', 'time': 19:00 CET }
- event: nomad-php
date: '2017-12-21'
time: 19:00 CET
---
Laravel 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 Laravel Collections within a non-Laravel project and put them to use within your own code.

View file

@ -11,7 +11,7 @@ use: [talks]
<h2>Upcoming Talks</h2>
{% set upcoming_talks = getUpcomingTalks(data.talks, site.events) %}
{% if upcoming_talks %}
{% if not upcoming_talks.empty %}
{% include "talks-table" with { talks: upcoming_talks, upcoming: true } %}
{% else %}
<p>Nothing scheduled at the moment.</p>