diff --git a/app/config/sculpin_site.yml b/app/config/sculpin_site.yml index d8b4043ac..25c6ecd96 100644 --- a/app/config/sculpin_site.yml +++ b/app/config/sculpin_site.yml @@ -1,3 +1,4 @@ +--- name: Oliver Davies yearsExperience: 16 assets_version: 2 @@ -24,14 +25,51 @@ menu_links: testimonials: - - text: |- + text: | + Hi Oliver, we met briefly at the Tech Connect event in London last month. Been reading through a few of your latest posts and have found the messages valuable, especially as we spent the week learning about unit, integration and e2e testing. I have signed up to your mailing list to keep the good advice flowing! + name: Alexander Carr + title: Full Stack Software Engineer at School of Code + image: + url: /assets/images/recommendations/alexander-carr.jpg + - + text: | + These emails are superb and make for very interesting reading. Thank you! + name: Adam Nuttall + title: Drupal Engineer + image: + url: /assets/images/recommendations/adam-nuttall.jpg + - + text: Oliver's approach to testing is a continual reminder of his commitment to delivering high-quality, bug-free, software. name: Mike Karthauser title: Senior Software Engineer image: url: /assets/images/recommendations/mike-karthauser.jpg - - text: |- + text: | + I am a big fan of your git approaches. I especially remember pairing with you and watching how many commands you run to solve many problems and how fast you were. It's a skill I believe not many have, particularly those who are used to working with a GUI like me, and personally I think it is quite valuable. + name: Marcos Duran + title: Senior Software Engineer + image: + url: /assets/images/recommendations/marcos-duran.jpg + - + text: | + I like the "$ git log -S" and "$ git log --grep" commands, will definitely be using these, thanks! + name: Stephen Mulvihill + title: Solutions Architect + image: + url: /assets/images/recommendations/stephen-mulvihill.jpg + - + text: | + Just wanted to say that your blog is amazing <3 I absolutely love it and usually share it with colleagues and some of the kids at my Code Club. + + Thanks for contributing to the community with your amazing content! + name: Patty O'Callaghan + title: Tech Lead + image: + url: /assets/images/recommendations/patty-ocallaghan.jpg + - + text: | I've wanted to explore testing for a while, but as a PHP developer with 10 years of Drupal experience who'd written next to no tests, I really needed guidance. Oliver's expertise in testing and TDD motivated me to seek his help. Before our call, I'd started writing tests for my modules but needed direction, understanding the code to a degree but needing help with approach. Oliver clarified both unit and integration testing, providing solutions for my challenges, and shared his code for inspiration and help. He also gave me ideas on how to utilise contrib code to help me further. @@ -45,7 +83,7 @@ testimonials: image: url: /assets/images/recommendations/tawny.jpg - - text: |- + text: | I've worked with Oliver for a number of years on B2C and B2B web projects and he has always demonstrated himself to be an expert in his field. As an insurance provider, some of our products and services don't naturally fit within a traditional ecommerce journey - but Oliver has always been able to come up with innovative ways to leverage core Drupal functionality and develop custom modules to meet our needs. @@ -57,7 +95,7 @@ testimonials: image: url: /assets/images/recommendations/joe-howell.jpg - - text: |- + text: | We use Oliver for maintaining a couple of Drupal sites for which we no longer have the skills ourselves. We became aware of Oliver through his work in the Drupal community, and about a year ago we approached him to help us with the deep dive aspects of maintaining and developing Drupal sites. He's been really helpful and very responsive. Much appreciated! name: Jon Hallett title: Senior Systems Administrator at the University of Bristol @@ -65,14 +103,14 @@ testimonials: image: url: /assets/images/recommendations/jon-hallett.jpeg - - text: |- + text: | For over a decade we have worked with Oliver on a number of different projects. Initially our collaboration consisted of web maintenance and troubleshooting but we soon tapped Oliver to design, build and maintain a custom awards site which includes both submission and judging functionality. Oliver has deep and wide-ranging skills and I would certainly recommend his services! name: Michael Itkoff title: Cofounder url: https://www.daylightbooks.org image: ~ - - text: |- + text: | Working with Oliver on the Seren website has been easy and beneficial. As well as providing general maintenance support, he built a new Drupal module which integrated with our partners Glassboxx so that we could sell ebooks directly from our website. Oliver worked closely with the team at Glassboxx to create the integration which needed to communicate with the Glassboxx app so that users could download their purchases. He was able to resolve issues which came up along the way in order to create a functioning module which we now use on our site. @@ -88,7 +126,7 @@ testimonials: image: url: /assets/images/recommendations/mick-felton.jpg - - text: |- + text: | Oliver is a pleasure to work with, and I would engage him again without hesitation. He communicates regularly, ensures that he meets requirements, and suggests improvements to the potential solutions to the brief. name: Duncan Davidson title: Director at Rohallion @@ -96,7 +134,7 @@ testimonials: image: url: /assets/images/recommendations/duncan.jpeg - - text: |- + text: | A fantastic and highly knowledgeable Drupal Developer. Oliver saved a struggling Drupal project with his wealth of Drupal experience. name: Adam Cuddihy title: Web Development Manager @@ -104,7 +142,7 @@ testimonials: image: url: /assets/images/recommendations/adam.jpeg - - text: |- + text: | I had the pleasure of working with Oliver whilst building the first version of our drupal based intranet. His knowledge of Drupal and the wider infrastructure required to run a site was really invaluable. At the time, we were very new to Drupal, so it gave us a great platform to learn from and expand our own knowledge. @@ -116,7 +154,7 @@ testimonials: image: url: /assets/images/recommendations/huw.jpeg - - text: |- + text: | Oliver really knows his stuff. Whether you are just starting out or looking to take your knowledge to the next level, his patient and clear way of explaining will help get you there. name: Scott Euser title: Head of Web Development @@ -124,14 +162,14 @@ testimonials: image: url: /assets/images/recommendations/scott-euser.jpg - - text: |- + text: | Oliver was great to work with. He has expert knowledge with Drupal and delivered exactly what we were looking for on time. He's understanding, friendly and easy to get along with. I would enjoy working with him again in the future. name: Brian Hartwell title: Interactive Creative Director url: ~ image: ~ - - text: |- + text: | I have had the pleasure of working with Oliver on several projects at Microserve. He is a natural innovator and a great mentor who inspires others to explore new technologies and approaches. He is a highly knowledgeable professional with a passion for all things Drupal and the tenacity required to get the job done well. name: Alan Hatch title: Senior Drupal Developer at Microserve @@ -139,7 +177,7 @@ testimonials: image: url: /assets/images/recommendations/alan.jpeg - - text: |- + text: | Oliver has been an outstanding contributor to the Drupal Association team. He is a talented developer who writes great code and applies his curiosity and love of learning to every project. He is also a fantastic team member, who gives to the team as much as he gets. Oliver is the embodiment of everything good about the Drupal community. @@ -150,7 +188,7 @@ testimonials: url: /assets/images/recommendations/holly-ross.png - - text: |- + text: | Oliver is a skilled Drupal developer with a passion for the Drupal community. As his direct supervisor, I was able to watch Oliver grow with the Drupal Association and contribute an amazing amount of effort and integrity to all of his work. Everything we have thrown at Oliver, he has approached with an open and flexible mind that has allowed him to work on a wide range of projects and features for Drupal products. @@ -160,7 +198,7 @@ testimonials: image: url: /assets/images/recommendations/josh-mitchell.png - - text: |- + text: | Oliver was fantastic to work with - pro-active and highly responsive, he worked well remotely and as part of a project team. His understanding of the project requirement(s) and ability to translate it into working code was essential and he delivered. name: Brian Healy title: Director of Business Development at Tincan @@ -168,7 +206,7 @@ testimonials: image: url: /assets/images/recommendations/brian-healy.png - - text: |- + text: | Oliver is an amazing colleague, he's professional, full of knowledge and I could not recommend him more. name: Chris Jarvis title: Developer at Microserve @@ -176,12 +214,12 @@ testimonials: image: url: /assets/images/recommendations/chris-jarvis.jpg - - text: |- + text: | Oliver is seasoned Drupal and all round highly skilled and experienced web developer. I have worked with Oliver on an important project where he was reliable, prompt and ensured strict client deadline delivery and confidentiality at all times. name: Daniel Easterbrook title: Digital Strategy Consultant - - text: |- + text: | We have only worked together for a short while but I can see Oliver is a Drupal expert. His technical knowledge means we have been able to make improvements to the sites we manage quickly and efficiently. diff --git a/assets/tailwind.config.ts b/assets/tailwind.config.ts index 67fd9e3d5..726604ba2 100644 --- a/assets/tailwind.config.ts +++ b/assets/tailwind.config.ts @@ -1,5 +1,6 @@ import colours from "tailwindcss/colors"; import type { Config } from "tailwindcss"; +import formsPlugin from '@tailwindcss/forms'; import typographyPlugin from "@tailwindcss/typography"; export default { @@ -30,5 +31,5 @@ export default { }, }, }, - plugins: [typographyPlugin], + plugins: [formsPlugin, typographyPlugin], } satisfies Config; diff --git a/package.json b/package.json index c7fab0718..de5f18418 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.10", "tailwindcss": "^3.4.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 632f44855..a1f7189a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + '@tailwindcss/forms': + specifier: ^0.5.7 + version: 0.5.7(tailwindcss@3.4.0) '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.4.0) @@ -89,6 +92,15 @@ packages: dev: false optional: true + /@tailwindcss/forms@0.5.7(tailwindcss@3.4.0): + resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.0 + dev: false + /@tailwindcss/typography@0.5.10(tailwindcss@3.4.0): resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} peerDependencies: @@ -406,6 +418,11 @@ packages: picomatch: 2.3.1 dev: false + /mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + dev: false + /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} diff --git a/source/_includes/daily-email-form.html.twig b/source/_includes/daily-email-form.html.twig new file mode 100644 index 000000000..58bd1eaf9 --- /dev/null +++ b/source/_includes/daily-email-form.html.twig @@ -0,0 +1,634 @@ + + +
diff --git a/source/_pages/daily.md b/source/_pages/daily.md new file mode 100644 index 000000000..ff13863f7 --- /dev/null +++ b/source/_pages/daily.md @@ -0,0 +1,25 @@ +--- +title: Register for daily software development emails +--- + +{% block content %} + Subscribe to my daily newsletter for software professionals on software development and delivery, DevOps, community, and open-source. + + {% include 'daily-email-form.html.twig' %} +{% endblock %} + +{% block content_bottom %} + {% include 'testimonials.html.twig' with { + names: [ + 'Alexander Carr', + 'Adam Nuttall', + 'Mike Karthauser', + 'Marcos Duran', + 'Stephen Mulvihill', + 'Patty O\'Callaghan', + ], + title: 'What subscribers have said', + } %} + + {% include 'about-me.html.twig' %} +{% endblock %} diff --git a/source/assets/images/recommendations/adam-nuttall.jpg b/source/assets/images/recommendations/adam-nuttall.jpg new file mode 100644 index 000000000..5b400f9c9 Binary files /dev/null and b/source/assets/images/recommendations/adam-nuttall.jpg differ diff --git a/source/assets/images/recommendations/alexander-carr.jpg b/source/assets/images/recommendations/alexander-carr.jpg new file mode 100644 index 000000000..7410510ce Binary files /dev/null and b/source/assets/images/recommendations/alexander-carr.jpg differ diff --git a/source/assets/images/recommendations/marcos-duran.jpg b/source/assets/images/recommendations/marcos-duran.jpg new file mode 100644 index 000000000..371e0f5f9 Binary files /dev/null and b/source/assets/images/recommendations/marcos-duran.jpg differ diff --git a/source/assets/images/recommendations/patty-ocallaghan.jpg b/source/assets/images/recommendations/patty-ocallaghan.jpg new file mode 100644 index 000000000..82f9bf129 Binary files /dev/null and b/source/assets/images/recommendations/patty-ocallaghan.jpg differ diff --git a/source/assets/images/recommendations/stephen-mulvihill.jpg b/source/assets/images/recommendations/stephen-mulvihill.jpg new file mode 100644 index 000000000..521dedb0f Binary files /dev/null and b/source/assets/images/recommendations/stephen-mulvihill.jpg differ