Add slides for Reading College
10
flake.nix
|
@ -95,6 +95,16 @@
|
|||
src = ./src/building-build-configs;
|
||||
};
|
||||
|
||||
reading-college =
|
||||
let
|
||||
name = "reading-college";
|
||||
in
|
||||
mkTalk {
|
||||
inherit name;
|
||||
|
||||
src = ./src/${name};
|
||||
};
|
||||
|
||||
sculpin = mkTalk {
|
||||
name = "building-static-websites-sculpin";
|
||||
src = ./src/building-static-websites-sculpin;
|
||||
|
|
BIN
src/reading-college/images/drupal-issue-1.png
Normal file
After Width: | Height: | Size: 211 KiB |
BIN
src/reading-college/images/drupal-issue-2.png
Normal file
After Width: | Height: | Size: 182 KiB |
BIN
src/reading-college/images/drupal-issue-3.png
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
src/reading-college/images/forgejo.png
Normal file
After Width: | Height: | Size: 296 KiB |
BIN
src/reading-college/images/homelab.jpg
Normal file
After Width: | Height: | Size: 4.2 MiB |
BIN
src/reading-college/images/immich.png
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
src/reading-college/images/jellyfin.png
Normal file
After Width: | Height: | Size: 4.1 MiB |
BIN
src/reading-college/images/override-node-options-1.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
src/reading-college/images/override-node-options-2.png
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
src/reading-college/images/override-node-options-3.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
src/reading-college/images/override-node-options-4.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
src/reading-college/images/override-node-options.png
Normal file
After Width: | Height: | Size: 406 KiB |
BIN
src/reading-college/images/peertube.png
Normal file
After Width: | Height: | Size: 868 KiB |
BIN
src/reading-college/images/tawny-tweet-1.png
Normal file
After Width: | Height: | Size: 434 KiB |
BIN
src/reading-college/images/tawny-tweet-2.png
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
src/reading-college/images/timmillwood-ono.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
src/reading-college/images/twf-1.png
Normal file
After Width: | Height: | Size: 273 KiB |
BIN
src/reading-college/images/twf-2.png
Normal file
After Width: | Height: | Size: 226 KiB |
BIN
src/reading-college/images/website.png
Normal file
After Width: | Height: | Size: 114 KiB |
347
src/reading-college/slides.rst
Normal file
|
@ -0,0 +1,347 @@
|
|||
BTEC Level 3 Computing and IT, Reading College
|
||||
##############################################
|
||||
|
||||
|
|
||||
|
||||
.. class:: titleslideinfo
|
||||
|
||||
Oliver Davies
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak standardPage
|
||||
|
||||
About me
|
||||
========
|
||||
|
||||
* Started working in laptop repair and refurbishment in 2004.
|
||||
* Self-taught freelance Software Developer since 2007.
|
||||
* Full-time Software Developer since 2010.
|
||||
* Lead Software Developer at Transport for Wales.
|
||||
* Advocate and enthusiast of open source software.
|
||||
* Developer, Consultant, Trainer
|
||||
* Public speaker
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Started in hardware doing laptop repair and refurbishment."
|
||||
TextAnnotation "Student Essentials in 2004. Panasonic in 2006. Desktop support for Fujitsu at the DVLA from 2007 to 2010."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Learned software development from online courses - e.g. Lynda.com (now LinkedIn Learning), totaltraining.com. Early days of YouTube, no programming on Twitch."
|
||||
PageBreak
|
||||
|
||||
My education and qualifications
|
||||
===============================
|
||||
|
||||
* 2003: 12 GCSEs C grade or above.
|
||||
* 2004–2005: City & Guilds Level 2 Diploma for IT Professionals.
|
||||
* 2004–2005: National Traineeship for IT Users (Level 2 ITQ for IT Users, Key Skills, CLAIT).
|
||||
* 2005–2006: City & Guilds Level 3 Advanced Diploma for IT Professionals.
|
||||
* 2007: OCN Level 2 Build Your Own PC.
|
||||
* 2007–2009: HNC Computing (End User Support).
|
||||
|
||||
What I use
|
||||
==========
|
||||
|
||||
* HTML
|
||||
* CSS
|
||||
* JavaScript
|
||||
* PHP
|
||||
* MySQL
|
||||
* Drupal
|
||||
* Git
|
||||
* Linux/Nix
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "HTML - the structure and content of a web page."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "CSS - styling and appearance. Text sizes, colours, layout."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "JavaScript - extra interactivity and progressive enhancement."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "PHP - server-side programming language."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "MySQL - database for storing data."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Drupal - a content management system written in PHP."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Git - a version control system for managing code changes."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Linux/NixOS - a free and open source computer operating system for my laptop and servers."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Nix - a package manager with more than 120,000 packages and 20,000 operating system options."
|
||||
PageBreak
|
||||
|
||||
How I started
|
||||
=============
|
||||
|
||||
* 2nd Dan TAGB Tae Kwon-Do Black Belt.
|
||||
* Built a website to show class times, locations, news, etc.
|
||||
* Started with HTML and CSS.
|
||||
* Evolved to PHP and MySQL, then Drupal.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Became my pet/lab project."
|
||||
TextAnnotation "Evolved based on requirements."
|
||||
TextAnnotation "Picked PHP over ASP."
|
||||
TextAnnotation "Tried Joomla, Drupal 6 and something else."
|
||||
TextAnnotation "Decided to go with Drupal after it was recommended on a forum."
|
||||
PageBreak imagePage
|
||||
|
||||
.. image:: images/twf-1.png
|
||||
:width: 26cm
|
||||
|
||||
.. image:: images/twf-2.png
|
||||
:width: 26cm
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak standardPage
|
||||
|
||||
After that
|
||||
==========
|
||||
|
||||
* Built my own website and blog.
|
||||
* Cattery website rebuild.
|
||||
* Started freelancing.
|
||||
* Full-time in 2010 for Horse & Country TV.
|
||||
* First agency role in 2011.
|
||||
* First public speaking presentation in 2012.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Documenting and sharing my learnings."
|
||||
TextAnnotation "Designs to HTML, HTML to Drupal theme."
|
||||
TextAnnotation "Zooba in Swansea. Introducton to eCommerce with Ubercart."
|
||||
TextAnnotation "Freelancing experience made it easier to get a job."
|
||||
TextAnnotation "First presentation at Unified Diff meetup in Cardiff about Drupal."
|
||||
PageBreak
|
||||
|
||||
What makes a website?
|
||||
=====================
|
||||
|
||||
.. code-block::
|
||||
|
||||
.htaccess
|
||||
assets/images/od-logo.jpg
|
||||
bco/index.html
|
||||
build/tailwind.css
|
||||
call/index.html
|
||||
daily/2024/03/18/automated-drupal-11-compatibility-fixes/index.html
|
||||
drupal-upgrade/index.html
|
||||
favicon.ico
|
||||
index.html
|
||||
podcast/19-sam-mortenson/index.html
|
||||
pricing/index.html
|
||||
talks/taking-flight-with-tailwind-css/index.html
|
||||
talks/tdd-test-driven-drupal/index.html
|
||||
|
||||
Levels of complexity
|
||||
====================
|
||||
|
||||
* Static website
|
||||
* Static site generator (SSG)
|
||||
* Framework or content management system (CMS)
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Open a text editor like notepad or Vim and start typing HTML, open it in a browser and you're done."
|
||||
TextAnnotation "Use a tool like Sculpin, Jekyll or Hugo to generate a static website."
|
||||
TextAnnotation "Use a fully fledged CMS or framework like Drupal, WordPress, Symfony or Laravel."
|
||||
PageBreak
|
||||
|
||||
Static website
|
||||
==============
|
||||
|
||||
* Easy to create.
|
||||
* No build step.
|
||||
* Easy and cheap to host.
|
||||
* Fast.
|
||||
* Secure.
|
||||
* Difficult to maintain.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "If you have a lot of pages or frequently changing content, maintaining it becomes difficult (e.g. updating the same menu links on each page, updating the number of daily emails)."
|
||||
PageBreak
|
||||
|
||||
Static site generators
|
||||
======================
|
||||
|
||||
* More complex to create.
|
||||
* Requires an additional tool and dependencies.
|
||||
* Easy to maintain.
|
||||
* Fast and secure.
|
||||
* Difficult for multiple or non-technical people to edit.
|
||||
|
||||
Frameworks and CMSes
|
||||
====================
|
||||
|
||||
* More complicated to build and host.
|
||||
* Knowledge of programming languages like PHP, Ruby, Go, etc.
|
||||
* Databases to store data.
|
||||
* Containerisation and orchestration.
|
||||
* Powerful and flexible.
|
||||
|
||||
Free and open source software (FOSS)
|
||||
====================================
|
||||
|
||||
* Code is public.
|
||||
* Free to use.
|
||||
* Open to contribution.
|
||||
* Developed by companies, agencies, users, individuals, volunteers, hobbyists.
|
||||
* Operating systems, programming languages, CMSes, CSS frameworks, text editors, standalone packages and scripts.
|
||||
* Free code reviews.
|
||||
* Code, documentation, mentoring, translation, event management, UX research.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Free as in puppy."
|
||||
TextAnnotation "Contributions improve the software for everyone."
|
||||
TextAnnotation "Contributions are free code reviews."
|
||||
TextAnnotation "Opportunity to learn best practices whilst giving back."
|
||||
TextAnnotation "Different forms of contribution."
|
||||
PageBreak
|
||||
|
||||
My first job interview
|
||||
======================
|
||||
|
||||
* ~3 years of experience.
|
||||
* In house working on Drupal 6.
|
||||
* Passed the first stage interview.
|
||||
* Able to show my blog posts and speak about the work I'd done.
|
||||
* Asked to pick an issue on Drupal.org and speak about how I'd fix it.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "2010 and I'd been doing stuff since 2007."
|
||||
PageBreak imagePage
|
||||
|
||||
.. image:: images/drupal-issue-1.png
|
||||
:width: 22cm
|
||||
|
||||
.. image:: images/drupal-issue-2.png
|
||||
:width: 14cm
|
||||
|
||||
.. image:: images/drupal-issue-3.png
|
||||
:width: 14cm
|
||||
|
||||
Software as a hobby
|
||||
===================
|
||||
|
||||
* Attending, organising and speaking at meetups and conferences.
|
||||
* Open source contributions and maintenance.
|
||||
* Mentoring, teaching and content creation.
|
||||
* Homelab and home server.
|
||||
* Refurbishing unwanted laptops.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "Given over 100 talks and workshops at events across UK and Europe."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Create and maintain open source projects."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "I like to open source and make things public as much as I can."
|
||||
TextAnnotation ""
|
||||
TextAnnotation "Mentoring for bootcamps."
|
||||
TextAnnotation "Made possible by my software development experience."
|
||||
TextAnnotation "Career progression and project opportunities."
|
||||
PageBreak imagePage
|
||||
|
||||
.. image:: images/timmillwood-ono.png
|
||||
:width: 22cm
|
||||
|
||||
.. image:: images/override-node-options.png
|
||||
:width: 24cm
|
||||
|
||||
.. image:: images/override-node-options-1.png
|
||||
:width: 18cm
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "These were the usage statistics from Drupal.org when I became the maintainer."
|
||||
PageBreak
|
||||
|
||||
.. image:: images/override-node-options-4.png
|
||||
:width: 20cm
|
||||
|
||||
|
|
||||
|
||||
.. image:: images/override-node-options-3.png
|
||||
:width: 20cm
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak standardPage
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak standardPage
|
||||
|
||||
.. image:: images/tawny-tweet-1.png
|
||||
:width: 18cm
|
||||
|
||||
.. image:: images/tawny-tweet-2.png
|
||||
:width: 18cm
|
||||
|
||||
.. image:: images/homelab.jpg
|
||||
:width: 18cm
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak standardPage
|
||||
|
||||
In my homelab
|
||||
=============
|
||||
|
||||
* My website and several other static websites.
|
||||
* Forgejo (Git repository hosting).
|
||||
* Peertube (video backups and streaming).
|
||||
* Jellyfin (media server).
|
||||
* Immich (photos).
|
||||
* Audio Bookshelf (podcasts and audiobooks).
|
||||
* Paperless-ngx (document management).
|
||||
* Home Assistant.
|
||||
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak imagePage
|
||||
|
||||
.. image:: images/website.png
|
||||
:width: 12cm
|
||||
|
||||
.. image:: images/forgejo.png
|
||||
:width: 24cm
|
||||
|
||||
.. image:: images/peertube.png
|
||||
:width: 24cm
|
||||
|
||||
.. image:: images/immich.png
|
||||
:width: 22cm
|
||||
|
||||
.. image:: images/jellyfin.png
|
||||
:width: 24cm
|
||||
|
||||
Final thoughts
|
||||
==============
|
||||
|
||||
* Keep things simple.
|
||||
* Release before you're ready.
|
||||
* Update early and often.
|
||||
* Always be learning.
|
||||
* Document everything.
|
||||
* Work and learn in the open.
|
||||
* Own your content.
|
||||
|
||||
Thanks!
|
||||
=======
|
||||
|
||||
* https://www.oliverdavies.uk
|
||||
* https://www.oliverdavies.uk/daily
|
||||
* https://www.oliverdavies.uk/homelab
|
||||
* https://code.oliverdavies.uk
|
||||
* https://videos.oliverdavies.uk
|
||||
* @opdavies@mastodon.social
|
||||
* @opdavies@social.oliverdavies.uk
|