<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.ox1digital.co.uk/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.ox1digital.co.uk/" rel="alternate" type="text/html" /><updated>2026-03-05T19:26:29+00:00</updated><id>https://www.ox1digital.co.uk/feed.xml</id><title type="html">OX1Digital</title><subtitle>My personal site and blog</subtitle><author><name>Neil Lawrence</name></author><entry><title type="html">Building a personal Soundcloud</title><link href="https://www.ox1digital.co.uk/blog/2026/02/08/building-a-personal-soundcloud" rel="alternate" type="text/html" title="Building a personal Soundcloud" /><published>2026-02-08T00:00:00+00:00</published><updated>2026-02-08T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2026/02/08/building-a-personal-soundcloud</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2026/02/08/building-a-personal-soundcloud"><![CDATA[<p>Flushed with the success of <a href="/2026-02-07-photo-portfolio-v2.md">building a Flickr alternative</a> my thoughts turned to what I could do self-host my own music (easy) and sharing it (less easy).</p>

<p><a href="https://soundcloud.com/discover">Soundcloud</a> looks great but has a cap on how many tracks you can upload before being charged, and <a href="https://panchiko.bandcamp.com/track/r-o-b-o-t-s-r-e-p-r-i-s-e">Bandcamp</a> is free to use but is pretty ugly and geared towards selling music. Could I have something free and looks great?</p>

<h2 id="prototype">Prototype</h2>
<p>Before getting in too deep, I got Gemini to knock up a single-page proof of concept to see if it was worth pursuing. This used <a href="https://wavesurfer.xyz">Wavesurfer.js</a> as the playing interface to give it that ‘Soundcloud’ look with a visual representation of the sound wave. I uploaded a couple of .wav files to try it out on.</p>

<p>And it worked a treat! So on to the build..</p>

<h2 id="app-structure">App structure</h2>
<p>I started looking at existing Hugo or Jekyll themes that would support what I wanted to do.</p>

<p>Gemini suggested <a href="https://github.com/noahlange/stage">Stage,by Noah Lange</a> - Noah claims that he would continue to supported the theme as he uses it himself. Except he doesn’t. In fact I couldn’t find any use of it anywhere. And it felt more geared towards the music being hosted on sites like Soundcloud than self-hosting. In the end I decided to make it more my own than based on someone else’s theme.</p>

<p>First up was separating out all the key file types into directories. We ended up with:</p>
<ul>
  <li>audio - for the mp3 files</li>
  <li>css - to host the styling</li>
  <li>js - for the waveshaper file and the app.js file to power the logic</li>
  <li>images - for the cover art for each track</li>
</ul>

<p>I was also keen to make adding new files really simple, just like writing a blog post. Gemini suggested a json file, but this felt messy. Instead I went for a Markdown file per track, using frontmatter to set the track name, cover art file name and audio file name (plus we added in a genre category too).</p>

<p>To utilise the ‘blog post’ approach to have newer tracks loaded at the top a small yaml file was used to make sure the track files were treated as a collection and sorted how I wanted.</p>

<p>The first iteration looked promising</p>

<p><img src="/img/sound-player-1.jpg" alt="First iteration of the player with two files on cards but no sound wave" /></p>

<h3 id="debugging">Debugging</h3>
<p>As you could see from the image, no soundwave was shown on the first iteration. And this led to a protracted round of debugging to work out just why the waves weren’t shown and the track not playing.</p>

<p>When I say ‘debugging’ it was a frustrating back-and-forth on config and path naming. A <code>.nojekyll</code> file was created at one point and deleted later. I got pretty bored by it. Hours later, I discovered that in moving the audio files all their data had been stripped out, so these needed reloading.</p>

<p>Finally, the soundwaves appeared and the tracks played!</p>

<p><img src="/img/wave-visible.jpg" alt="second iteration with two tracks and sound waves showing" /></p>

<h2 id="design-and-behaviours">Design and behaviours</h2>
<p>Now it was time to pretty things up and work out how the player should operate (all the kinds of things I push at my development colleagues at work!)</p>

<h3 id="design">Design</h3>
<p>The initial design had copied the Soundcloud orange, but I wanted to use my signature purple. Modifying the sound wave presentation was achieved using the parameters in the app.js file.</p>

<p>Next we added the played time/track length and the cover art files, and things were looking good.</p>

<p><img src="/img/purple-player-1.jpg" alt="Track card showing cover art, purple stying and sound wave" /></p>

<p>This was later enhanced by a border around the cover art, and hover/play state borders for the track cards.</p>

<h3 id="app-behaviours">App behaviours</h3>
<p>How the player should operate evolved over time. The rules we arrived at were:</p>
<ul>
  <li>if you start playing one track then select another, the first track should stop and the new track start playing</li>
  <li>it should not be possible for multiple tracks to play simultaneously</li>
  <li>when a track is switched, the play bar position should be pushed back to the started, and the play button shown again</li>
  <li>once a track had completed playing it would automatically play the next track.</li>
  <li>When the last listed track has played, the player will stop</li>
</ul>

<h3 id="file-load-optimisation">File load optimisation</h3>
<p>I noticed that the sound waves for each track were taking up to 20 seconds to load. This was tracked down to the mp3 files I’d converted from my original wav files. The browser was trying to download every single MP3 file simultaneously to “read” the peaks and valleys for the waveforms.</p>

<p>As I converted these in a hurry I didn’t give much thought to their size, and it turned out my file quality was higher than SoundCloud, Spotify or Bandcamp! I ran them through Audacity to reduce them to 128Kbps, which led to a 60% improvement in load time.</p>

<p>This was helped by a ‘lazy load’ fix that only loaded the tracks and their sound waves when they were visible in the browser. We did look at a ‘skeleton’ wave shape being loaded initially, but it didn’t work out.</p>

<h3 id="extra-tweaks">Extra tweaks</h3>
<p>We added a sticky header to maintain the site identity. Included in this was a volume control for the tracks. It turned out to be too difficult to get this working on mobile view, so I took the pragmatic view to hide the control rather than spend more hours on trying to get it to work.</p>

<p>Mobile view, overall, turned out to be a hard nut to crack. If I’d have been working with a human developer they’d have used a ‘mobile first’ approach to save the effort required to fix the mess we ended up with.</p>

<p><img src="/img/mobile-mess.jpg" alt="mobile view showing issues with play button shape and wave shape being off screen" /></p>

<h2 id="the-end-result">The end result</h2>
<p>For half a day’s work I was delighted with how it turned out.</p>

<p><img src="/img/player-final.jpg" alt="Music app showing two tracks, one being played, and header with volume control" /></p>

<p>I no longer have to rely on mainstream platforms and can adjust it as I like. The only limitations I have are the maximum size of the repo, and (currently) too little music of my own to actually upload!</p>

<p>Go and check it out: <a href="https://www.ox1digital.co.uk/music/">Electronic Dream Plant music player</a></p>]]></content><author><name>Neil Lawrence</name></author><category term="projects" /><summary type="html"><![CDATA[Self hosting my own music]]></summary></entry><entry><title type="html">Photo Portfolio v2</title><link href="https://www.ox1digital.co.uk/blog/2026/02/07/photo-portfolio-v2" rel="alternate" type="text/html" title="Photo Portfolio v2" /><published>2026-02-07T00:00:00+00:00</published><updated>2026-02-07T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2026/02/07/photo-portfolio-v2</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2026/02/07/photo-portfolio-v2"><![CDATA[<p>It was probably the sudden arrival of a receipt for payment of £74 for another year of hosting my photos on Flickr that made me re-open the idea of looking for a ‘free’ alternative again.</p>

<p>I did look at a <a href="https://www.ox1digital.co.uk/projects/2022/creating-a-photo-gallery">GitHub-only option</a> some time ago but I didn’t love it, and the restrictions on repo size really made it a non starter.</p>

<p>So I started to look at other options….</p>

<h2 id="specialist-hosting-sites">Specialist hosting sites</h2>
<p>There were other paid options out there:</p>
<ul>
  <li><a href="https://glass.photo">Glass.photo</a> - nice looking site, but that’s still $40 per year</li>
  <li><a href="https://portfolio.adobe.com/">Adobe Portfolio</a> - sorry, but I’m not gonna join that sinking ship of a company and its grabby approach to subscriptions</li>
  <li><a href="https://500px.com/">500px</a> - pretty, but too focused on selling photos. And still £35 per year for a limited site</li>
  <li><a href="https://www.pixpa.com">Pixpa</a> - with the number of photos on Flickr I’d need the unlimited plan at around £60 per year, so no real incentive to move</li>
</ul>

<h2 id="finishing-with-flickr">Finishing with Flickr</h2>
<p>Following the ‘burn your boats’ approach to committing to a solution of some sort that wasn’t Flickr I decided to clear out those 1,762 photos I had hosted</p>

<p>I started with an attempt to get a refund and cancel the subscription altogether. The Flickr support info suggests that once you’ve paid then that’s it for the year, even if you cancel the renewal for next year. But I gave it a shot under UK consumer law (quoted in the email), and to their credit (and mine) I received the refund within 2 hours.</p>

<p>Oh, and if you do cancel they instantly offer you a 20% discount on signing up again. So why not make your service cost that much in the first place?</p>

<h3 id="downloading-the-photos">Downloading the photos</h3>

<p>Next it was getting copies of the photos off the site. Again, Flickr is pretty good at this, in that all the EXIF data is retained in the photos, and you just request the download. It comes in two parts:</p>
<ul>
  <li>the original quality photos themselves, batched into folders of 500 photos each</li>
  <li>a folder of JSON files that relate to the albums used and the photos in them</li>
</ul>

<p><strong>Problem</strong>: the 48 albums I had my photos in were now evicted. I’m not clever enough to use the JSON to work out what went where.</p>

<p>So I looked into alternatives for the migration that could preserve the album structure. I chose <a href="https://www.picbackman.com">PicBackMan</a> as I could set up permissions from the source (Flickr) and the destination (Google Drive for now).</p>

<p><strong>Problem</strong>: with 1,762 photos, it would take 4 months to finish the transfer for free, or I’d have to pay for a “one-month” plan to do it all at once</p>

<h2 id="setting-the-objectives">Setting the objectives</h2>
<p>Before I got elbow-deep in building a solution I thought it best to set out expectations.</p>

<p><strong>As an</strong> amateur photographer<br />
<strong>I need</strong> a website where I can share my best photos<br />
<strong>So that</strong> I can direct others to these to view easily</p>

<p>Desired outcomes:</p>
<ol>
  <li>Camera roll based showcase of all photos</li>
  <li>Album based division of photos for particular events or themes, with each album autosizing the contained images to best show the collection</li>
  <li>each individual photo takes the majority of the screen for maximum display</li>
  <li>Able to easily recreate the current albums and their photos from Flickr in the new site</li>
  <li>Some controls over which photos are public and which are private (optional)</li>
  <li>Ongoing management is simple</li>
</ol>

<h2 id="deciding-on-an-option-for-built-it-yourself">Deciding on an option for built-it-yourself</h2>
<p>I was quite keen to have a play at building something with Gemini as a co-pilot to guide me through troubleshooting</p>

<h3 id="hugo-theme-with-github-pages">Hugo theme with GitHub Pages</h3>
<p>I started with my preferred approach of using a theme in GitHub Pages to do the presentation, and look to an external host for the photos themselves to cope with the volume.</p>

<p>I’ve previously used Jeckyl for site structure and themes, but I was persuaded by Gemini to take a look at the <a href="https://github.com/nicokaiser/hugo-theme-gallery">Hugo Gallery theme</a>. The <a href="https://nicokaiser.github.io/hugo-theme-gallery/">Demo site</a> looked perfect for my needs.</p>

<p>I created a new repo in GitHub and in this created a <code>hugo.toml</code> file to pull in the theme</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>baseURL = 'https://www.ox1digital.co.uk/gallery/'
languageCode = 'en-gb'
title = 'OX1 Digital Photography'
[module]
  [[module.imports]]
    path = 'github.com/nicokaiser/hugo-theme-gallery/v4'
</code></pre></div></div>

<p>Then a <code>go.mod</code> file to track the connection</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  module github.com/electronicdreamplant/ox1-gallery

go 1.20
</code></pre></div></div>
<p>Then a <code>.github/workflows/hugo.yaml</code> file to handle the site parameters</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>name: Deploy Hugo site to Pages

on:
  push:
    branches: ["main"]
  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: 'latest'
          extended: true
      - name: Setup Go
        uses: actions/setup-go@v5
        with:
          go-version: '1.20'
      - name: Build
        run: hugo --minify
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./public

  deploy:
    environment:
      name: github-pages
      url: $
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4
</code></pre></div></div>
<p>I was really pleased with how quickly I had a site up and running. After loading some test images into a new directory at <code>content/galleries/my-first-album/</code> I created an <code>index.md</code> file and gave it some frontmatter for structure</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
title: "My First Album"
date: 2026-02-04
description: "A test album to see how the gallery looks."
resources:
- src: "your-photo-name.jpg"
  params:
    cover: true
---
</code></pre></div></div>

<p>It all looked great! A simple presentation, a nice category structure, a lightbox presentation that didn’t clutter things with EXIF information. We had a winner!</p>

<p><img src="/img/hugo-photo-site.jpg" alt="Hugo site showing two albums with cover images" /></p>

<p>Yeah…that was short lived.</p>

<p><strong>Problem</strong>: the Hugo theme is well suited to hosting physically present files in a repo, but just doesn’t want to play with virtual images as it is (by its nature) a static site.</p>

<p>The original plan had been to use Google Drive to host the photos, as I have a generous storage limit, and Gemini was sure it could make it work in pulling in the photos from there. So then began the various approaches to do just that using a variety of methods, including using Rclone and Google Developer Console. This took the best part of a day to work through, and nothing worked.</p>

<p>It was all a bit depressing.</p>

<h3 id="google-photos-and-google-sites">Google Photos and Google sites</h3>
<p>I really resisted this approach as long as I could, but Gemini (at various points) kept flagging that I already really had the resources I needed to set up more or less what I wanted.</p>

<p>I don’t like the limited nature and amateur presentation of Google Sites, and Google Photos is more geared towards storage and organisation than it is sharing.</p>

<p>But the reality is it is very easy to manage photos, create shared albums and include photos on a Google Site with its native capabilities. As with most things in life, a compromise is sometimes the best you get. So I went for the compromise.</p>

<h2 id="setting-up-the-google-based-option">Setting up the Google-based option</h2>
<h3 id="google-photos-repository">Google Photos repository</h3>
<p>I was already using Google Photos as a lower-cost back-up for my photos automatically from my iPhone/Macbook. Many moons ago I used an external hard drive that failed and I nearly lost everything.</p>

<p>But this really was a ‘bucket’ of all my photos rather than just the photos I wanted to show. The solution was to set up a new Google account, share my One account storage with it as part of the famiily plan, and then uploaded all 1,762 images that I’d downloaded from Flickr.</p>

<p>Unfortunately it did mean setting up the albums from scratch, but given many were event or occasion-based it wasn’t that hard. I also had the chance to cast a more discerning eye over what went into each album.</p>

<p>An unexpected benefit of this was the ability to include a photo in multiple albums, since Google Photo albums are really just tags on the photo metadata. This lead my to re-think my approach from being event-based and move toward being theme-based. So albums for themes were created too.</p>

<h3 id="google-sites-portfolio">Google Sites portfolio</h3>
<p>I held my nose and dived in, but strangely was quickly surprised by how easy it was to create the simple site I was after.</p>

<p>I stuck with the Simple theme for the site, and used a side navigation for the themed albums. The home page was to be a front door for my favourites, and then pages for each theme.</p>

<p><img src="/img/google-sites-photos.png" alt="" /></p>

<p>Pulling in images for each page was pretty simple. Although none of the ‘albums’ are visible to select from, you can search for the album title. Selecting images to import is limited to 20 at a time, so sometimes a bit of reorganisation was needed afterwards.</p>

<p><img src="/img/select-images-google.jpg" alt="Google Sites interface showing the images selection modal" /></p>

<p>Another trade-off is that none of the images can be enlarged by the user once on the page. So I took to adding a link to the Google Photos album at the head of the page as another compromise.</p>

<p>My Flickr site had previously been dominated by holiday-based albums, which may not have meant anything to a casual user but meant quite a bit to me as a record of where we’d been. I realised I didn’t want to lose this entirely. My compromise was to create a <a href="https://photos.ox1digital.co.uk/travel">single Travel page</a>, grouped by year with the feature image being a link to the Google Photos shared album. By adding more data about the visited places on each holiday I created a better record for myself too.</p>

<p><img src="/img/travel-page.jpg" alt="2011 Germany: January, visited Baden Baden; France: May, visited Saint-Malo, La Trinité, Pont Aven, Quiberon; Germany: July, visited Cologne, Munich, Oberammergau, Garmish-Pertinkirchen" /></p>

<h3 id="setting-up-the-subdomain">Setting up the subdomain</h3>
<p>Using a Google Pages approach I’d pretty much decided that the new portfolio site would just adopt the domain/repo URL and that would be that. But a Google Sites website would work that way, so I wondered about setting up a subdomain of <a href="https://photos.ox1digital.co.uk">photos.ox1digital.co.uk</a>.</p>

<p>Google Sites made this really easy by adding the custom domain in Settings, then generating a TXT file for site verification.</p>

<p><img src="/img/custom-domain.jpg" alt="Google Sites custom domain page" /></p>

<p>Setting up the DNS record in Ionos was a different story as it assumes that you want to use its webhosting, and it adds Mail settings too. Once the Google Sites TXT record was added then it became possible to delete the unnecessary A and AAAA records for <code>photos</code> with no errors. Once verified, Google Sites then supplied the CNAME data to add in.</p>

<p>To be honest, I hate dabbling in DNS records and was glad to have some Gemini support to guide me through it as they don’t make it easy.</p>

<h2 id="conclusions">Conclusions</h2>
<ul>
  <li>“You can’t always have what you want, but if you try sometimes you get what you need” - Rolling Stones</li>
  <li>For an amateur photographer there really isn’t the need for a professional, expensive site - what I’ve put together works well for me, and it should be easy to manage going forward.</li>
  <li>I’ve really enjoyed the excuse to wade through my photos all over again and see how I’ve improved as a photographer</li>
  <li>Using a theme-based organisation to the site has helped me see my photos differently</li>
  <li>It’s a real shame that Google don’t go the extra step and make a dynamic connection between Sites and Photos to pull in albums for display without needing the manual work involved here.</li>
</ul>

<p>Check out the site at <a href="https://photos.ox1digital.co.uk">photos.ox1digital.co.uk</a></p>]]></content><author><name>Neil Lawrence</name></author><category term="projects" /><summary type="html"><![CDATA[Finding a Flickr alternative (again)]]></summary></entry><entry><title type="html">Building a French Vocab Flashcards web app</title><link href="https://www.ox1digital.co.uk/blog/2025/09/21/french-flashcards-web-app" rel="alternate" type="text/html" title="Building a French Vocab Flashcards web app" /><published>2025-09-21T00:00:00+00:00</published><updated>2025-09-21T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2025/09/21/french-flashcards-web-app</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2025/09/21/french-flashcards-web-app"><![CDATA[<p>After a recent visit to France I decided it was time to actually start learning the language. After all, we had been going there for over 20 years, and my schoolboy english was showing the strain.</p>

<p>I took an excellent Open University intro course called <a href="https://www.open.edu/openlearn/languages/get-ready-beginners-french/content-section-overview?active-tab=description-tab">Get ready for beginners’ French</a> which helped me think about my objectives and learning styles, and it had some excellent tips from existing students. One of these was using flashcards to help with vocabularly. That felt like a good tool to get set up before I dive into my full course.</p>

<h2 id="what-is-on-the-market-aready">What is on the market aready</h2>
<p>As you might expect, there are dozens of apps already out there that can do this job. Some I explored were:</p>
<ul>
  <li>Anki</li>
  <li>Quizlet</li>
  <li>Memrise</li>
  <li>Reverso</li>
</ul>

<p><a href="https://docs.ankiweb.net/background.html">Anki</a> felt like it wanted to live on Linux, and claimed it had all kinds of scripts you could download to force it to do what you want. Too complicated for me (and the scripts didn’t work).</p>

<p><a href="https://www.reverso.net/vocabulary">Reverso</a> started off much more promisingly, as you could search for words, add the answers to Favourites and organise the Favourites into Lists to represent different subject topics.Its flashcards were nicely laid out with pronunciation options and the word used in context.</p>

<p>I thought I was home and dry, but actually using it felt less easy. There were constant prompts to take out a paid subscription, and it was scarily easy to delete your Favourites! Also, I couldn’t switch from French &gt; English to English &gt; French easily mid-learning. So this got me thinking about trying to build something myself.</p>

<h2 id="getting-chatgpt-on-the-case">Getting ChatGPT on the case</h2>
<p>The organisation I work for is really keen for everyone to make use of AI as part of daily working practice, so I’m used to falling back on ChatGPT for potential solutions and time saving approaches in my work. I’ve never mastered coding beyond buying books and leaving them on a shelf unread, and because my work colleagues were finding AI tools a really valuable way to accelerate development, I thought I’d try a quick prompt in my personal ChatGPT account to see what it produced;</p>

<blockquote>
  <p>I’m still not sure I’ve found the vocab learning solution I completely like, that can adapt to how I want to record and present flashcards. I’m now wondering about a Google Sheets recording method and using you to help me create an application to present flashcards (since you’re good at this coding thing) via some kind of GitHub pages setup. What do you say?</p>
</blockquote>

<p>Off the bat it recommended:</p>
<ul>
  <li>using Google Sheets to capture the data and publish it to the web</li>
  <li>developing a single-page app on GitHub Pages to pull in and present the data</li>
  <li>using a lightweight Leitner review approach (Again/Good/Easy) to mark up cards and control how often they are shown</li>
  <li>using themed decks and lesson filters</li>
</ul>

<p>This was to be the start of many more interactions…..</p>

<h2 id="working-with-google-sheets">Working with Google Sheets</h2>
<p>I found this a good way to work out what kind of data I needed to capture to have the right information in the flashcards and be able to organise them around my needs.</p>

<p>After a bit of experimentation I came up with:</p>
<ul>
  <li>deck - to organise my flashcards into groups that made sense to me (Food, Family, House etc)</li>
  <li>lesson - as I had been using a text book, using its chapter numbers was a good way to categorise</li>
  <li>article - as French is preedominently gender-based, knowing if words were masculine or feminine was important</li>
  <li>french - the actual word I wanted to learn</li>
  <li>english - its English translation</li>
  <li>sentence - using the French word in context within a sentence</li>
  <li>labels - an additional categorisation method for organising presentation</li>
  <li>tags - to sweep up any additional contextual sorting or prompts</li>
</ul>

<p>Then it was a case of using File → Share → Publish to web to make it available as a data source for the web app.</p>

<h2 id="first-app-iteration">First app iteration</h2>
<p>As I’ve been using GitHub to host my blog and other test apps I just needed a new repo within my existing account that could be served under the same domain name.</p>

<p>ChatGPT pushed out the first version of the app code which included test data, which was switched to the Google Sheet data soon after. As the initial version was developed without any real input from me I wasn’t really taken with the presentation, but it was a starting point for working out what I did want</p>

<p><img src="/img/flashcards_1.png" alt="Flashcards v1 with black screen, rounded selectors and initial control" /></p>

<p>Improvements identified and actioned were:</p>
<ul>
  <li>losing the source URL for the Google Sheet since this would be persistent</li>
  <li>having yellow flashcards with black text on both sides (no dark theme).</li>
  <li>moving top controls to a left sidebar, using bigger text and improving the presentation</li>
  <li>bottom controls being grouped logically and compact, and having selectors for next/previous</li>
  <li>a visible search input</li>
  <li>flashcards to sit higher on the page</li>
  <li>adding a language selector (FR→EN / EN→FR segmented toggle) to switch which side is the prompt and which is the answer.</li>
  <li>better support for the labels field from the Google Sheet to show as a meta line on the card</li>
  <li>moving to more of a GDS Design System approach and making it mobile-friendly (to learn on the move)</li>
</ul>

<h2 id="being-lazy-with-data-entry">Being lazy with data entry</h2>
<p>Although I’d learned on my OU course that writing things down is a great way to aid memory retention, I was finding adding info onto the Google Sheet pretty boring. So I took photos of the vocabulary text blocks in my book and uploaded to ChatGPT to convert into my Google Sheet format, including adding the context sentence. That worked out pretty well, but wasn’t sustainable from a learning point of view.</p>

<p>Next up was a Google Form to make data entry much easier to push in. This required changing to use the Form responses tab on the sheet and setting up a Google Apps Script to publish the data more effectively for consuming in the web app. We ran into some caching issues with delays in form submissions from appearing in the app, so updated this Script to using JSON instead for instant updates. This was topped off with a nice new button on the app controls to launch the form and enter data.</p>

<h2 id="listening-to-pronunciation">Listening to pronunciation</h2>
<p>One aspect of Reverso I really liked was the ease of clicking an icon to hear someone speak the words, to help reinforce how to say them well as part of my learning.</p>

<p>I did a bit of experimentation with the built-in speech APIs on my MacBook but they were really dreadful, sounding nothing like how the French would say it. A bit of searching found <a href="https://forvo.com">Forvo</a> which has real people speaking phrases. It does have an API, but a paid one which pushed it out of scope. After a lot of back-and-forth on other options I realised that the most pragmatic way to achieve this was just to have a link to Forvo to open the right page.</p>

<p>As the format of Forvo pages was consistent (e.g. https://forvo.com/word/pomme/#fr) I got ChatGPT to create a helper to take data from the sheet, combine the article + word, strip out any other unnecessary data and then automatically generate a URL to add to the flashcard icon. Job done!</p>

<h2 id="the-final-version">The final version</h2>
<p>I’m pretty pleased with how the latest iteration looks and works</p>

<p><img src="/img/flashcards_app.png" alt="desktop view of French Vocab Flashcards web app" /></p>

<p>As we use it, my wife and I are already finding extra things we want it to do, like including verbs, idioms and phrases, so we’re seeing how well it holds up to some robust user testing while we learn. But for now I’m just happy I was able to utlise tools to develop exacty what I wanted very quickly.</p>

<p>You can <a href="https://github.com/electronicdreamplant/french-flashcards/">view the code and the README on my GitHub repo</a></p>]]></content><author><name>Neil Lawrence</name></author><category term="projects" /><summary type="html"><![CDATA[Using ChatGPT to create a web app from scratch]]></summary></entry><entry><title type="html">Weeknotes: S03 E02 - UKGovCamp: Home Again</title><link href="https://www.ox1digital.co.uk/blog/2025/01/18/weeknotes-s03-e02-ukgovcamp-back-home" rel="alternate" type="text/html" title="Weeknotes: S03 E02 - UKGovCamp: Home Again" /><published>2025-01-18T00:00:00+00:00</published><updated>2025-01-18T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2025/01/18/weeknotes-s03-e02-ukgovcamp-back-home</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2025/01/18/weeknotes-s03-e02-ukgovcamp-back-home"><![CDATA[<p><img src="/img/ukgc25_stickers.jpg" alt="Lots of stickers on a table" /></p>

<p>It’s felt like a really eventful 12 months since the last UKGovCamp (has it really been 12 months?) which has seen another change of jobs, some annoying health issues, some large life decisions being made and becoming the proud(?) owner of hearing aids.</p>

<p>And as if the Digital Gods were listening, it has been topped off with another visit to UK GovCamp, this year back in its long-time home at Petty France in the Ministry of Justice offices. It felt like coming home in many ways; seeing old ‘family’, lots of hugs, lots of smiles and LOTS of new arrivals - maybe a 50:50 split newbies:returners?</p>

<p>It’s hard to explain the concept of UKGovCamp to my private sector work colleagues, the ‘seeing old friends/meeting new friends’ line was the easiest bet in describing it, but way undersells the whole thing and I honestly feel sorry for them never having experienced it.</p>

<h2 id="pitching-in">Pitching In</h2>
<p>Returning home also meant a return to traditional session pitching, which I really missed last year. There was a noticeable shift in emphasis, with a number of pitches about AI. I welcomed this as my fear was the public sector has been adopting a ‘head in sand’ approach to it all, particular after the discussions at Product for the People this year. More on that later…..</p>

<p>Although this was a much more inclusive (and fun) way to hear what people wanted to talk about, I still struggled with hearing what was happening thanks to my hearing loss, but others without hearing issues also said that it was hard for them too. In the end I located myself about 2 metres from the pitchers just to make sure I could hear them. It felt like much of it was down to pitchers really not being sure how to use a microphone (despite the best efforts of the UKGovCamp organisers to guide them). Talking to <a href="https://bsky.app/profile/jacattell.bsky.social">James</a> afterwards was great as he was acutely aware of the issue and was thinking about an induction loop for next year.</p>

<p>There was a much heralded potential pitch from GovCamp legend Amanda, but despite repeated provocation during the pitching session it, sadly, never came to pass.</p>

<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:vgpickakeu4qxky2oweoaw6e/app.bsky.feed.post/3lfrbxigvzk2u" data-bluesky-cid="bafyreic4vw5v6lb3j4oyju5d4c7bf4c76vyfvntocw5ywl7ndqs555ynpa"><p lang="en">Haven’t pitched at @ukgovcamp.bsky.social for 14 years but seriously considering it for #UKGC25….

Also absolutely beyond ready for all the hugs.</p>&mdash; Amanda 🏳️‍🌈🔮 (<a href="https://bsky.app/profile/did:plc:vgpickakeu4qxky2oweoaw6e?ref_src=embed">@ayymanduh.bsky.social</a>) <a href="https://bsky.app/profile/did:plc:vgpickakeu4qxky2oweoaw6e/post/3lfrbxigvzk2u?ref_src=embed">15 January 2025 at 07:53</a></blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>

<h2 id="session-1-facilitating-flexible-workplaces-for-disabled-people">Session 1: Facilitating flexible workplaces for disabled people</h2>
<p>I chose <a href="https://docs.google.com/document/d/1j7T3GdFiDdIirA7d_bBVOy_2twW4cBry4ga9q8VS8KU/edit?tab=t.0#heading=h.xaupab12k9xs">this session</a> as I’m interested in how organisations adapt to the needs of individuals to get the most out of them. This was close to my heart having lived with a health condition since I was 18, which has sometimes been the focus of employers’ attention on starting a new job. But the subject has really been thrown into sharp focus with the long-term impact of COVID-19.</p>

<p>One issue that got kicked around is how managers best support their staff. Is it better advice/guidance? Training? Or do they need an (un)healthy dose of trauma to best be able to empathise with their staff? And how do we prevent the promotion of inequality through the use of ‘manager’s discretion’? One manager discussing her actions to help her staff member felt exemplary, but what if her fellow managers fail to meet that standard. Tricky.</p>

<p>I loved the supportive and constructive discussion from the small group. It does feel like the civil service is leading the way in terms of workplace passports as a way to properly define and adapt to needs.</p>

<h2 id="session-2-how-can-ai-work-for-government--what-is-parliaments-role-in-government">Session 2: How can AI work for government &amp; what is parliaments role in Government</h2>
<p>There were many AI-themed sessions to choose from , and I didn’t want to dominate my day with them, so took one that felt like it might have a positive spin rather than simply guarding against the dangers. It was a large group, so our facilitator did a great job in splitting out the session into its two component parts for discussion.</p>

<p>Part 1 started with us splitting into groups of 2 or 3 to discuss. Like others, our group got tangled up with defining what AI is. My take was that as soon as we have successfully defined it, it will have changed (a bit like the Dangerous Dogs legislation). A better metaphor that came out of the plenary session was it “was like two doctors saying ‘medicine’ “, which I quite liked. Another suggestion, which I have to admit I groaned at, was ‘we need to start educating in schools early’, only because after decades in local government I seemed to have heard that about most issues. But actually on reflection I thought this did have merit; we have taken computers into schools and made it part of educating children, so this could be a natural extension. A shame we don’t extend that thinking to non-digital issues like how to work out newspapers print bile or how to budget. Anyway….</p>

<p>Part 2 was really about what government can do to regulate or minimise the risks of getting it wrong. Quite the hot topic and some strong views expressed. I had a bit an open mind about this, but had wondered about the practicalities and effectiveness of legislating cross-border given its international scope. But there were some persuasive arguments about legislative frameworks being needed for learning to drive and building nuclear power stations. When the latter was challenged as it applied to very few people/circumstances, the killer reply was ‘I can’t build a nuclear power station in my laptop’. Making individuals responsible felt like a great approach, akin to health and safety legislation (the possibility of corporate manslaughter charges certainly focused some CEO minds).</p>

<h2 id="session-3-public-libraries-under-pressure-can-you-help">Session 3: Public libraries under pressure, can you help?</h2>
<p>I would admit I joined this session for two main reasons; Pauline Roche was running it, and I did a <a href="https://docs.google.com/document/d/0B-FCpROzRlMvT09LemY4RElEZFE/edit?usp=sharing&amp;ouid=113572293247419263045&amp;resourcekey=0-mUyH-rT3WBbU7oQ9UJBGTw&amp;rtpof=true&amp;sd=true">Best Value Review of Libraries in Oxfordshire</a> a long time back. Actually, the more I thought about that, the longer ago I realised it actually was (2001! All record gone on the OCC website, so I’m glad I kept my own copy)</p>

<p>Pauline set the scene with what is happening with Birmingham libraries and her work to save them. She invited each person in the group to go in turn and gives their experiences or thoughts. I was really struck by how much experience was in the room, and the really sensible ideas that came forward. Mine felt a bit outdated given how long it had been since my Review, but I did push back a bit on the idea of just stating the moral case for keeping them as this didn’t actually provide the funding needed.</p>

<p>A really good, practical idea from one participant working for a not for profit trust running libraries elsewhere in the country was that taking the buildings out of business rates through having a trust own them instead did save money.</p>

<p><img src="/img/ukgc25_libraries.jpg" alt="Session 3 libraries group - photo courtesy of Pauline Roche" /></p>

<p>What I loved about this session was how passionate everyone in the room was about the topic, and how the session grew into one that was more celebratory and positive.</p>

<h2 id="corridor-camp">Corridor Camp</h2>
<p>I’ve often watched others in envy how they can effortlessly just fall into conversation for ages and miss sessions. I got close last year with my wonderful chat with Chloe and Jay from <a href="https://vouchsafe.id/about-us/">Vouchsafe</a> but it didn’t mean missing any sessions.</p>

<p>So I was more than delighted to find myself slipping into it almost by accident after a quick hello with <a href="https://bsky.app/profile/pretendcato.bsky.social">Louise</a> which ended up being a really great conversation, and then being joined by <a href="https://bsky.app/profile/jukes.ie">Juksie</a> for the next two sessions.</p>

<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:mwhnk6luifqzemryr663bmrs/app.bsky.feed.post/3lfzxc3ytqk2h" data-bluesky-cid="bafyreicekv5hsolriu6agpb7fsa2ikl2p4ogz7nuxx7xf5wlkldgjgs6sq"><p lang="en">Heading home (well, Oxford) after a brilliant #ukgovcamp25. So, so good to see people I love, worship or otherwise like quite a lot. So many new faces this year, which was great. My first effort at #corridorcamp with @pretendcato.bsky.social and @jukes.ie too!</p>&mdash; Neil Lawrence (<a href="https://bsky.app/profile/did:plc:mwhnk6luifqzemryr663bmrs?ref_src=embed">@ox1digital.co.uk</a>) <a href="https://bsky.app/profile/did:plc:mwhnk6luifqzemryr663bmrs/post/3lfzxc3ytqk2h?ref_src=embed">18 January 2025 at 18:37</a></blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>

<p>For anyone new to the Unconference concept, rid yourself of the idea that this is somehow squandering the time you have at the event. This IS the event. The possibility of chance encounters leading to deep conversations, creating better understanding and better relationships. It’s an extension of <a href="https://www.ox1digital.co.uk/blog/2017/01/24/between-then-and-now?query=ukgovcamp">what I learned in 2017</a> about just striking up a conversation with someone you don’t know - that’s how I can now hug <a href="https://bsky.app/profile/jenitennison.com">JeniT</a> when I see her (my first victim), how I could have a great catch-up with <a href="https://bsky.app/profile/symroe.bsky.social">Sym</a> about all things <a href="https://democracyclub.org.uk/">Democracy Club</a> and how I know dozens of other people I got to catch up and chat with.</p>

<p>I couldn’t begin to list everyone I loved seeing again, those I didn’t get the chance to say Hi to, and those I’d hoped to see there, but hopefully I’ll be back again next year.</p>]]></content><author><name>Neil Lawrence</name></author><category term="weeknotes" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Weeknotes: S03 E01 - Product for the People</title><link href="https://www.ox1digital.co.uk/blog/2024/11/28/weeknotes-s03-e01-product-for-the-people" rel="alternate" type="text/html" title="Weeknotes: S03 E01 - Product for the People" /><published>2024-11-28T00:00:00+00:00</published><updated>2024-11-28T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2024/11/28/weeknotes-s03-e01-product-for-the-people</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2024/11/28/weeknotes-s03-e01-product-for-the-people"><![CDATA[<p>This week I (finally) attended my first Product for the People event in Bristol. I’ve been trying to attend for the past 3 years, but circumstances always conspired to frustrate this ambition.</p>

<p>This was also my first event in my new role at <a href="https://www.unilink.com">Unilink</a> as an actual Product Manager, so it felt a bit more legitimate participating when having the appropriate qualifications. Although I was expecting to meet up with my old Placecube stalwart <a href="https://bsky.app/profile/gavinbeckett.bsky.social">Gavin Beckett</a> it was lovely to start bumping into other GovCamp acquaintances too.</p>

<h2 id="introductions">Introductions</h2>
<p><a href="https://bsky.app/profile/jukes.ie">Jukesy</a> was quick to admit that the number of attendees outstripped expectations, and it was indeed a pretty full room at 2 Rivergate in Bristol. That man <a href="https://bsky.app/profile/visitmy.website">Steve Messer</a>, co-organiser of the event, was AWOL due to only just getting back from Japan, which was a real disappointment for me as he’s been a real guiding light in my journey into product, as well as being a top bloke.</p>

<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:ioitufietkga5hgtztdk5rc3/app.bsky.feed.post/3lbyv2potic2l" data-bluesky-cid="bafyreibuyfjw54cga7pfeb7magbc36vzidcyvfsbdjvjhvruxc6rdsuwsa"><p lang="en">@jukes.ie and Debbie kicking off #ProductForThePeople in Bristol<br /><br /><a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3/post/3lbyv2potic2l?ref_src=embed">[image or embed]</a></p>&mdash; Matt Stibbs (<a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3?ref_src=embed">@mattstibbs.bsky.social</a>) <a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3/post/3lbyv2potic2l?ref_src=embed">November 28, 2024 at 10:43 AM</a></blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>

<p>A few slides followed with an outline agenda and a quick explanation on unconferencing, and I was really pleased to hear we’d have some speakers too.</p>

<h2 id="icebreaker">Icebreaker</h2>
<p>We were all sent off to network by talking to each other and capturing why we were grateful for product management. I must admit that this didn’t really land with me as this was probably more geared to the public sector aspect of product management. Still, the Post Its showed a strong affinity with the community and what it gave attendees</p>

<p><img src="/img/product_for_the_people_post-its.jpeg" alt="A large number of yellow post its on a wooden background" /></p>

<p>Unfortunately this session became the first test for my new hearing aids, and I quickly found that it was impossible for me to process the overwhelming level of noise created by 60 people. It took me right back to <a href="https://www.ox1digital.co.uk/blog/2024/01/22/weeknotes-s02-e21-ukgovcamp-xtraloud">GovCamp 2024</a></p>

<h2 id="intro-talk-1---beth-brown-lead-product-manager-for-govuk-pay">Intro Talk #1 - Beth Brown, Lead Product Manager for GOV.UK Pay</h2>
<p>Beth gave us a great overview into how she ended up in her role, and it reinforced for me the diverse journeys we all have in our careers in ending up where we do.</p>

<p>For me, hearing how product management is structured in GDS was really interesting, and how multi-disciplinary teams are the norm. Beth explained they have three teams that include UX through to DevOps folk. Of real interest for me in the kind of products I look after at Unilink was the strong operational requirement of running a 24/7/365 service and needing not only to staff this on shifts, but balance out feature improvements and technical debt stuff.</p>

<p>Some of the key learning points for me were around strategy. Beth outlined how using a ‘bottom up’ approach when there wasn’t sufficient steer from ‘top down’ aspects meant that you arrived at a rounded view of future direction. She used affinity mapping to help devise key themes to form strategy objectives to give a steer. The <a href="https://gds.blog.gov.uk/2023/09/06/gov-uk-pay-product-strategy-and-upcoming-features/">resulting objectives that form the strategy</a> then inform priorities for the roadmap.</p>

<p><img src="/img/IMG_6263.jpeg" alt="Slide showing how affinity mapping is used to form key themes from a variety of sources" /></p>

<p>Another aspect of Beth’s approach that I really liked (that emerged in one of the later sessions) is to explicitly outline features that won’t be taken forward, and the reasons for these decisions. Feels like a great way to reduce the noise around feature consideration.</p>

<h2 id="intro-talk-2---andy-dufield-head-of-ai-for-fullfact">Intro Talk #2 - Andy Dufield, Head of AI for Fullfact</h2>
<p>What an absolute treat it was to hear Andy in full flow, talking passionately about the work that Fullfact do and how it is a perfect match for his love of the web and affinity for data.</p>

<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:ioitufietkga5hgtztdk5rc3/app.bsky.feed.post/3lbyyxsn6zc2l" data-bluesky-cid="bafyreif5te3o5paihgutopfuv635wb2e4talf76ch6bi5onrp746obckga"><p lang="en">“AI is terrible at fact-checking - but it’s amazing at boring magic” (paraphrased) by @mrdudders.bsky.social @fullfact.bsky.social  #ProductForThePeople<br /><br /><a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3/post/3lbyyxsn6zc2l?ref_src=embed">[image or embed]</a></p>&mdash; Matt Stibbs (<a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3?ref_src=embed">@mattstibbs.bsky.social</a>) <a href="https://bsky.app/profile/did:plc:ioitufietkga5hgtztdk5rc3/post/3lbyyxsn6zc2l?ref_src=embed">November 28, 2024 at 11:53 AM</a></blockquote>
<script async="" src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>

<p>As well as getting a new respect for the scope of what Fullfact achieves with the tiny resource it has, I could see how a really strong vision can embed itself in the products themselves; Fullfact looks to achieve change, not just corrections. The construction of its data is JSON based to include the necessary metadata to get it into every relevant online location.</p>

<p>A real takeaway for me was Andy stating that their use of AI didn’t extend to using it for fact checking as “AI is really bad at it”. I think any number of organisations would have made that their starting point rather than focus on where its strengths are and play to those, as Fullfact have.</p>

<h2 id="unconference">Unconference</h2>
<p>After a nice lunch grabbed from the nearby street food market, we were back for the main event. Despite the high attendee list it proved a bit difficult to entice many to pitch for sessions. Even I was driven to pitch one out of guilt!</p>

<p><img src="/img/IMG_6266.jpeg" alt="Conference schedule displayed on a magenta background. The schedule is divided into two rooms, ‘Big room’ and ‘Other room,’ with three sessions listed. Session 1 (13:15 to 14:00) in the Big room is ‘Chat about what might be coming from the Digital Centre work’ by Jukesie, and in the Other room is ‘AI as a tool for PMs - how could it help us?’ by Sarah Laird. Session 2 (14:15 to 15:00) in the Big room is ‘Service Standards and Assessments - what, why, how?’ by Alistair M, and in the Other room is ‘How to keep your product focused’ by Steph. Session 3 (15:15 to 16:00) in the Big room is ‘How can product leaders call out bad direction in the 21st Century?’ by Matt and Si, and in the Other room is ‘Product Team PR: measuring and communicating value’ by Jonathan." /></p>

<p>The three sessions I attended were:</p>
<ul>
  <li><strong>AI as a tool for PMs:</strong> I enjoyed this session as I felt I had something to contribute. I’ve been using a personal GPT as a story writing tool to help me shape initiatives, epics and stories as well as researching source material to develop personas. It became pretty clear that my public sector counterparts were either not party to this sort of resource, or local policies were preventing any use beyond those standard offerings from MS Teams. My observations were that the public sector is at risk of being left behind in this area</li>
  <li><strong>How to keep your product focused:</strong> Steph ran a really inclusive session that also included keeping ongoing notes (in classic GovCamp style) as we went. A wide variety of approaches was covered, including how to prevent PMs from appearing like just being people that said no. It did veer off at a tangent in triaging one particular issue of a participant which lost me.</li>
  <li><strong>How can product leaders call out bad direction in the 21st Century?:</strong> This felt very public sector-specific around some of the changes creeping in to product decisions in Gov fields, and how this differed from the early days of GDS. I couldn’t really engage with this as an outsider.</li>
</ul>]]></content><author><name>Neil Lawrence</name></author><category term="weeknotes" /><summary type="html"><![CDATA[This week I (finally) attended my first Product for the People event in Bristol. I’ve been trying to attend for the past 3 years, but circumstances always conspired to frustrate this ambition.]]></summary></entry><entry><title type="html">Personal website restructure</title><link href="https://www.ox1digital.co.uk/blog/2024/06/17/personal-website-restructure" rel="alternate" type="text/html" title="Personal website restructure" /><published>2024-06-17T00:00:00+00:00</published><updated>2024-06-17T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2024/06/17/personal-website-restructure</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2024/06/17/personal-website-restructure"><![CDATA[<p>It’s been spring cleaning time for the website after I decided I needed to improve its presentation and get rid of some of the uglier HTML hacks I’d used when first putting it together. Changing jobs made me think about new colleagues trying to find out just who this new guy coming in is and what he’s been up to.</p>

<p>Key things I wanted to do were:</p>
<ul>
  <li>in-source all my blog posts from the various locations they were posted in to have a single resource of everything I’ve written</li>
  <li>drop the clunky presentation of the index and projects page to create a more cohesive design across the site</li>
  <li>utilise what Jekyll and Liquid can do in terms of posts and tagging</li>
</ul>

<h2 id="in-sourcing-the-blog-posts">In-sourcing the blog posts</h2>
<p>Back in 2016 when I put the site together, I’d thought about writing blogs directly on it, but it was a little ahead of having anything to write, so that idea stalled.</p>

<p>While at Oxford City Council I decided I wanted to use GitHub Pages for a local blog site for my team’s work. Separate to that I’d started writing personal blog posts hosted on Medium, which later became where I started work-related weeknotes too. To top it all, I had a completely separate GitHub Pages site for a project where I posted too. In all they were in five different locations used.</p>

<p>The shift to insource was an entirely manual process, just copying and pasting HTML. I used the <a href="https://codebeautify.org/html-to-markdown">HTML to Markdown converter on CodeBeautify</a> to strip out all the unnecessary markup and do some of the conversion to markdown for me, but it still needed manual work too.</p>

<h2 id="organising-the-content">Organising the content</h2>
<p>Previously, the Blog page on the site was a hack, bringing in a blogroll from Medium, running the rss feed through <a href="https://rss2json.com/">rsstojson</a> to show the posts better (but not that well).</p>

<p>In bringing the different sources together I wanted to keep them in their distinct collections, so used tags for this as part of the post frontmatter. Each post had to have this metadata manually added to ensure consistency.</p>

<p>New template pages were created for:</p>
<ul>
  <li>individual posts, to display the frontmatter data and the content</li>
  <li>tag pages, grouped by year and creating an ordered list for each of the sources</li>
  <li>an ‘all tags’ page, creating a single list of all blog posts (for the first time ever) grouped by year</li>
</ul>

<p>A final polish was to create an _includes file to fetch the latest 3 posts and add them at the foot of the new Blogs page.</p>

<p>I had thought adding Open Graph metadata would be really difficult, but in reality it just took a few minutes. Although I couldn’t make the LinkedIn ‘published date’ requirement happy (it turns out this isn’t an OG tag anyway)</p>

<h2 id="adding-search">Adding search</h2>
<p>As I hadn’t included a description or excerpt for each post, I didn’t have an easy way to find a particular post. I’d tried to use <a href="https://github.com/jekylltools/jekyll-tipue-search">Tipue search</a> some time back but the code had been archived 7 years ago and I couldn’t get it to work due to clashing Jquery versions on the site. With a bit of help from someone clever, I switched to <a href="https://github.com/christian-fei/Simple-Jekyll-Search">Simple Search</a> (which is also archived!).</p>

<p>After a bit of wrangling it started spitting out results, but was only searching titles and tags. I updated this to bring in content too, then spent a little too long validating JSON in order to get that to work.</p>

<p>In truth, it’s really not that good and I’ll need to look at something better that allows for multi-word searches and displays the search terms in context. It will do for now.</p>

<h2 id="changing-the-projects-page">Changing the Projects page</h2>
<p>The original idea of the site was to try out bit of coding, or capture the odd personal project. Looking back over the content, much of it didn’t feel appropriate any longer, and some projects (e.g. a live analytics dashboard for the Oxford City Council website) were no longer working.</p>

<p>The presentation stuck out like a sore thumb too compared to the new presentation of blogs, so I decided to mirror it by creating a new posts collection called ‘projects’,creating similar layout pages for them, and moving everything across to markdown.</p>

<p>For this (much smaller) set of content I’ve added description in the frontmatter to give a bit more info on each one in the listing as well as the post presentation.</p>

<h2 id="updating-rss">Updating RSS</h2>
<p>An age ago I created an Atom feed for the posts, which had completely stopped working, but a quick addition of ‘jekyll-feed’ to the plugins in _config.yml, along with the feed metatdata, meant it was up and running in minutes</p>

<h2 id="using-chatgpt">Using ChatGPT</h2>
<p>I have to say ChatGPT was pretty much indispensable for practical help. No question was too stupid, each answer was backed with a full explanation of why certain code was suggested, and this helped me to get more confident about what to do next and try out some of it solo.</p>]]></content><author><name>Neil Lawrence</name></author><category term="projects" /><summary type="html"><![CDATA[Updating the website to insource blog posts and improve presentation]]></summary></entry><entry><title type="html">Weeknotes: S02 E22 - Closing chapter</title><link href="https://www.ox1digital.co.uk/blog/2024/06/14/weeknotes-s02-e22-closing-chapter" rel="alternate" type="text/html" title="Weeknotes: S02 E22 - Closing chapter" /><published>2024-06-14T00:00:00+00:00</published><updated>2024-06-14T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2024/06/14/weeknotes-s02-e22-closing-chapter</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2024/06/14/weeknotes-s02-e22-closing-chapter"><![CDATA[<p>As it ends, so it begins.</p>

<p>Today is my last day at <a href="https://www.placecube.com">Placecube</a> which, when I started, I’d figured would be my last job. But in the end I’ve not quite made it to 2 years.</p>

<p>This was by no means planned, and in a way I’ve almost fallen into seeing, applying for and landing a new role. It was the first application I’d made, and when I was <strong>positive</strong> I hadn’t got it (a familiar tale to anyone that knows me) I’d decided “ah well, I’ll just crack on then”. Only to be amazed/surprised/shocked to hear it was actually happening.</p>

<p>Looking back on <a href="https://www.ox1digital.co.uk/blog/2022/12/22/weeknotes-s02-e01">my first weeknote at Placecube</a> it’s a not dissimilar tale; thoughts had been forming about maybe stepping up this Product stuff and trying to be more strategic and less day-to-day/hands on. Well, it’s happened now, and I’m more than a bit excited.</p>

<p>So what better time to take a look back and put down some thoughts? Having spent some time as part of the handover process doing a mini-retro for my role on what works/doesn’t work, any learning and actions to take next it’s probably time to turn that on myself.</p>

<h2 id="weeknoting">Weeknoting</h2>

<p>Recently I’ve been cleaning up this site as I realised I may have a batch of potential colleagues wondering who this guy is dropping in on them. And that has meant taking the plunge and insourcing my blog posts onto this site.</p>

<p>No clever scripting here; this was a weekend of copy and paste (still one of my prime skills, unfortunately) but ultimately I’m pleased with having them in one place, despite the lack of images and embedded tweets. Well, Musk saw to the latter.</p>

<p>Although it wasn’t an in-depth reading process I have picked up on some things I’d forgotten, like how I’d <a href="https://www.ox1digital.co.uk/blog/2021/03/28/weeknotes-week-22">had a meeting with my soon-to-be manager</a> before he’d left Placecube about product things. So maybe that’s where the seeds were sown.</p>

<p>I also picked up on the <a href="https://www.ox1digital.co.uk/blog/2020/11/28/weeknotes-week-7#the-league-of-awesome-dorset-women-weeknoting">ease at which weeknoting was embraced at Dorset Council</a> but how I became uncomfortable with weeknoting at Placecube, finding it difficult to separate the personal from the private or confidential. I don’t know how <a href="https://digitalbydefault.com/">Matt Jukes</a> does it.</p>

<p>Also, with the exception of one significant project, there was perhaps too much day-to-day to work with in terms of material to write about. But, the purpose of weeknotes isn’t to entertain other people; it’s to create a personal record of you and your reflections on work to learn from, that others may benefit from learning too. I continue to be guided by <a href="https://visitmy.website/2020/11/01/why-i-write-weeknotes/">Steve Messer</a> on this.</p>

<p>Time (and social media policy) will tell if I manage to pick it up in my new role, but it feels like a wasted opportunity to chart my ongoing development if I don’t.</p>

<h2 id="what-have-i-learned-about-agile-this-year">What have I learned about Agile this year?</h2>

<p>I used to make this an ongoing topic of Series 2, with a <a href="https://www.ox1digital.co.uk/blog/2023/08/12/weeknotes-s02-e19">round-up last August of the year</a>. Now, on reflection, this perhaps shows I was focusing on the wrong thing - too much on the process/framework and not enough on the concept of Product. This was thrown sharply into focus at my interview where I was asked to provide the vision for the product I was working on, and I was stumped. That really brought things home for me on where I needed to improve.</p>

<p>While I did get to go Full Agile on a large project, day to day work has been tougher to make it land well, and one consequence of the changes coming in with my leaving is to move away from Scrum and back to Kanban.</p>

<p>I guess that is something I have learned to appreciate - Agile is a framework and not a straightjacket. There are different flavours to taste. Personally I’ve found the lack of documentation in some areas a challenge, and have seen the advantages of simply writing some things down so there is clarity between teams to refer back to.</p>

<p>Having said that, I guess it reveals my falling down the key lesson I learned from <a href="https://www.linkedin.com/in/alexshiell/">Alex Shiell</a> of Agile being “communicate, then communicate again…and then communicate some more”. I certainly haven’t done enough of that over the past year, and in fact there have been moves to give developers more space with fewer meetings to ‘get stuff done’ which may have contributed to this.</p>

<h2 id="what-have-i-achieved">What have I achieved?</h2>

<p>I tend to beat myself up when reflecting on my work, so I’m going to set that aside and focus on the positive here.</p>

<p>I’m proudest of the personal connections I’ve made while in the role. It’s traditional to send nice messages to people leaving your organisation, but I’ve been moved by the comments I’ve had from sometimes unexpected quarters after not that long in the post. Yesterday I gatecrashed a regular standup with a customer that I’ve spent a lot of time with, and they were so generous (and friendly) about my contribution. I’ve also made really strong friendships with some key people that I can’t see ebbing away as they’ve become part of a life shared. Creating a sense of trust allows you to understand each other, forgive mistakes and feel confident about the next steps.</p>

<p>I’ve maintained and built on the network of people I respect and work with. I wish I could better impart the importance of this to people starting out on their career. Knowing who to speak to - having people that know and trust you - leads to opportunities and connections that can do more than you think. I want to keep amassing this ‘family’ as I go forward. Although I’m leaving the LocalGov sector behind I’ve been encouraged to stay within the network to impart my experience (and continue to learn from others about theirs).</p>

<p>I’ve got to grips with agile software development pretty successfully. Jira is my plaything and not this scary tool just for developers. I’ve helped shaped the refinement process to get a better way of working, and I’ve been able to support developers in the process rather than just give them instructions. I’m able to communicate with them as well as take the step back and look at the strategic side. They are not practitioners of the dark arts (well, some are. A bit).</p>

<p>I’ve been able to apply the learning I’ve had from my experience; the years in LocalGov as a customer, exposure to best practice in design patterns and components, a focus on accessibility and user centred design, knowing what good content is and how to write it. These are transferrable skills that will work in any setting. They’ve helped me add value where they’ve been used as well.</p>

<p>I’ve delivered on another <a href="https://www.localdigital.gov.uk/funded-project/digital-waste-service/">national project</a> and helped shape other potential projects by focusing on the outome needed, working with technical team members to shape the approach, and crafting proposals to create a comprehensive overview of the work needed. It would have been nice to have done more of this, but economic circumstances haven’t allowed for this. I do hope that changes soon.</p>

<p>I’ve really understood the value of <a href="https://www.ox1digital.co.uk/blog/2023/04/30/weeknotes-s02-e14">joy at work</a>. Being happy in yourself radiates enthusiam to others, and finding joy in how you work builds relationships. I was delighted to read <a href="https://www.nexerdigital.com/campdigital/archive/2024/coco-chan/">Coco Chan’s talk at Camp Digital</a> as this nailed it for me. Things like ‘Spanish word of the day’ before a standup, my continued reference to all things cake in meetings, my over-morphing backdrop for internal online meetings over the past two weeks.</p>

<p>So, in the words of my last backdrop: <a href="https://youtu.be/viWT4JWWfTg?si=LSP84R8DGrIQWyqv">“Last day, Capricorn Fifteens”</a> Renew….</p>]]></content><author><name>Neil Lawrence</name></author><category term="weeknotes" /><summary type="html"><![CDATA[As it ends, so it begins.]]></summary></entry><entry><title type="html">Weeknotes: S02 E21 - UKGovCamp XtraLoud</title><link href="https://www.ox1digital.co.uk/blog/2024/01/22/weeknotes-s02-e21-ukgovcamp-xtraloud" rel="alternate" type="text/html" title="Weeknotes: S02 E21 - UKGovCamp XtraLoud" /><published>2024-01-22T00:00:00+00:00</published><updated>2024-01-22T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2024/01/22/weeknotes-s02-e21-ukgovcamp-xtraloud</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2024/01/22/weeknotes-s02-e21-ukgovcamp-xtraloud"><![CDATA[<p><img src="https://miro.medium.com/v2/resize:fit:4800/format:webp/1*caCjAQ7Cxp8qeAnjTSYEkg.png" alt="Audience shot of the event" /></p>

<p>This week saw a long-awaited return to in-person GovCamp. Although I’d signed up for the online events during the COVID years I’d found it difficult to immerse myself in them and get the same level of engagement. They also lacked the vital #HugCamp opportunities.</p>

<p>This time round I was on the company ticket as Placecube was one of the (many many) sponsors of the event. So that changed the dynamics slightly, but frankly spending a Saturday with interesting and inspiring people you can imagine this wasn’t a hardship (to <a href="https://www.independent.co.uk/arts-entertainment/films/news/oscars-2019-olivia-colman-best-actress-speech-full-video-the-favourite-funny-lady-gaga-close-a8795296.html">quote Oliva Coleman</a>).</p>

<h2 id="chchchchanges">Ch..ch..ch..changes</h2>
<p>There were many changes this year. The departure of Amanda from being Event Goddess (replaced by the more than capable Imran), a new venue (the swanky Leonardo Royal London St Paul’s), double the quota of tickets (a huge 500 attendees) and a farewell to the unconference pitch in favour of a <a href="https://www.liberatingstructures.com/12-2510-crowd-sourcing/">25/10 crowdsourcing technique</a></p>

<p>For me these didn’t land as well as I’d hoped.</p>

<p>I absolutely applaud the intent to enable more people to attend, and to change the way the unconference agenda is put together to accommodate this (and to help neurodiverse people engage more easily), but the end result for me was just an overwhelming noise. The new venue also amplified this as we were two floors below ground level with hard surfaces everywhere. For someone at the early stages of hearing loss this just alienated me.</p>

<p>I know pitching is time-consuming, but you got a little more context behind each session idea in the allotted pitch time with an idea of what was coming in the day overall. Peering at the small cards on the pitch board (after a quick run to get my glasses) didn’t get me as enthused about them.</p>

<p>And I SO missed the traditional Ministry of Justice venue. It had an intimacy but also space to breathe. So maybe bigger isn’t better, for me at least.</p>

<h2 id="sessions">Sessions</h2>
<p>Despite my misgivings the sessions themselves were much as they’ve always been; interested and interesting people offering great incites and enthusiasm, with the occasional miss. And despite the increased attendees none of my sessions felt too crowded.</p>

<p>I loved Chloe and Jaye’s session on <a href="https://docs.google.com/document/d/10c5i_KBpHcVk74sZKgvf7J_MGq1U2v-1vjg_jxirRKA/edit?usp=drivesdk">Digital ID</a> which was way more than I’d expected. They’ve landed a fascinating contract with the Scottish government and displayed a real passion for this area. The attendees had loads to offer on the subject from lots of different backgrounds. I ended up catching up with them both for a CorridorCamp chat which was one of the best of the day for me.</p>

<p>A <a href="https://docs.google.com/document/d/1XhDg1CbijSooCzUvoBNFAV9iValQy0x7-ru6koSovlE/edit?usp=drivesdk">small things/big impact discussion</a> was fun for some one-liners about successes.</p>

<p>I indulged myself by going to <a href="https://docs.google.com/document/d/1XGYAMSZiqakvkNye15YpaETVowzYp3q_N9eExgxVNP8/edit?usp=drivesdk">Eleanor’s session on content</a> where I felt I had more to contribute than other sessions having managed a content team, and my good friend L was there to share her recent experiences with a content migration. We shared the dangers of content designers becoming the Word Police/accessibility enforcers rather than solving problems for organisations.</p>

<p>This year I left far more sessions than I have in previous years. The session on <a href="https://docs.google.com/document/d/15RR2nmi3m2xAhdBLEZQBD2OvELi3HkF6me51-qsRwrE/edit?usp=drivesdk">Digital Marketplace</a> was really just another of those procurement discussions with (mostly) suppliers talking about how hard stuff is. Didn’t get much out of that. That also applied to the session on the <a href="https://docs.google.com/document/d/1WAvflyibs6_1Bsraf8wnGi_2PKvtPMrvTKvLHYKKNM8/edit?usp=drivesdk">replacement for GDS Digital Academy</a> which felt more like a verbal organisation chart for people that have worked in GDS. Likewise the session on <a href="https://docs.google.com/document/d/1ZFj1frZVEq9ih2KnHUA38LnZaWgCtfWYM-2KLMcsP-M/edit?usp=drivesdk">procuring based on open source and user needs</a> (where the pitcher didn’t turn up) felt more like just the pros and cons of buying off the shelf.</p>

<p>I have to admit I was really flagging by 4pm and desperate for the bar/food to be served. Having an open bar wasn’t something I’d encountered outside of a wedding so that end of day beer(s) was truly welcomed!</p>

<h2 id="people">People</h2>
<p>I thought it would be harder spotting people I knew to reunite but actually it wasn’t hard at all, and it was great to see old faces. Due to the lag since the last GovCamp I have to explain a move to Dorset AND one to the private sector.</p>

<p><img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*I3w-2pnezwrA-qPRW-jD5w.png" alt="A sparkly pair of trousers and an iridescent pair of boots" /></p>

<p>I didn’t think we’d get so many conversations at our suppliers stand, but some of these were the most in-depth, interested and interesting I’ve had. I learned all about personal data in the NHS and steps to combine with care data, one I hope we manage to follow up on. I even gave Julia from Oxford Insights a 3 min briefing on the structure of local government!</p>

<p>The ‘tribe’ thing is often spoken in relation to this meetup and I really believe that. Navigating a friend attending for the first time through the myriad of faces to chat to a few brilliant people paid dividends for her I think, and it was great to see her making her own connections. This is the life blood of the digital community.</p>

<h2 id="to-and-from">To and from</h2>
<p>Ironically, despite having moved to Dorset since the last in-person GovCamp I ended up travelling there and back from Oxford, partly to accommodate a visit to my in-laws but mostly to take advantage of the better (and faster) trains. This experience did amplify my desire to move back to somewhere on a main train line rather than continuing to cope with the Dorchester cattle trains I usually have to go on.</p>

<p>I misjudged the time to leave (although it may have had more to do with the fine company and sambucas) so didn’t get out of London until gone 9pm — the latest I’ve ever stayed after a GovCamp!</p>]]></content><author><name>Neil Lawrence</name></author><category term="weeknotes" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">What makes a great council-supplier relationship?</title><link href="https://www.ox1digital.co.uk/blog/2023/12/18/what-makes-a-great-council-supplier-relationship" rel="alternate" type="text/html" title="What makes a great council-supplier relationship?" /><published>2023-12-18T00:00:00+00:00</published><updated>2023-12-18T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2023/12/18/what-makes-a-great-council-supplier-relationship</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2023/12/18/what-makes-a-great-council-supplier-relationship"><![CDATA[<p>At the regional LocalGovCamp events we attended in 2023 we used the opportunity to discuss how councils and suppliers could work together to identify the pain points that both sides experience. Running a series of workshops at the four venues on this theme allowed us to use the insights from those attending.</p>

<p>Here’s Gavin Beckett outlining the idea:</p>

<blockquote>
  <p>“I spent over 20 years working in Local Government, and for a lot of those years I was leading procurement processes, assessing bids and working closely with suppliers to deliver projects. It’s fair to say that I had my fair share of frustrations with the way a lot of them behaved at all stages of the process.</p>
</blockquote>

<blockquote>
  <p>I also tried hard to shift my Council away from some of the old school traditional approaches to procurement and working with suppliers, like introducing the use of G-Cloud and agile contracting - and when I joined Placecube, we shaped our values and the way we try to work with councils around the things that I felt councils care about, so that we would be an example of the kind of supplier I wanted to buy from.</p>
</blockquote>

<blockquote>
  <p>But we really wanted to understand what other people in local government think and feel about suppliers - what they want to see from them, how they wish they would act, and how they think the market could be influenced by doing things differently themselves.</p>
</blockquote>

<blockquote>
  <p>We wanted to find out if we are right that councils are looking for a different kind of supplier”</p>
</blockquote>

<h2 id="how-we-ran-the-workshop">How we ran the workshop</h2>
<p>The workshop ran in two parts:</p>
<ol>
  <li>An ice-breaker to get everyone thinking and talking to each other</li>
  <li>An exercise to draw out the key actions and behaviours needed on both sides</li>
</ol>

<h3 id="icebreaker">Icebreaker</h3>
<p>Workshop participants were asked to select an image from one of the many we had laid out as a way to start a conversation about the supplier/customer relationship. We encouraged them to not think too hard about what they chose -  just to pick the first one that caught their attention and talk to it.</p>

<p>In groups on tables they then explained to each other what the image meant to them in terms of the supplier/council relationship. We picked out a few of these individual contributions to feed back to other tables  to help share the learning.</p>

<h3 id="key-actions-and-behaviours">Key actions and behaviours</h3>
<p>The main part of the workshop was to get participants to talk about their experiences as either customers or suppliers. We asked them to individually capture their thoughts about:</p>

<ul>
  <li>what councils needed to do differently to improve relationships</li>
  <li>what suppliers should do more of to improve relationships</li>
</ul>

<p>To encourage things along  we offered participants generating multiple contributions the opportunity to select a behaviour or practice that would be banished forever (well, within our power at least) to ‘Room 101’</p>

<h2 id="what-we-learned">What we learned</h2>
<p>Our expectation was that the responses would be dominated by councils highlighting how suppliers needed to improve. While there was plenty of feedback on that, it was well balanced  with a good deal of self-reflection on their part and insight into ways they could improve their own organisations.</p>

<p>Suppliers seemed to feel comfortable enough to raise issues about where council actions or behaviours created some challenges, as this discussion was not specific to a particular contract but more generic in nature (as well as being a safe space).</p>

<p>We also had far fewer nominations for Room 101 than we expected as participants focused on ways to improve rather than just things to stop</p>

<h2 id="suppliers-need-to-do-more">Suppliers need to do more…</h2>
<p>There was a strong emphasis on honesty and transparency; councils want (and expect) to have suppliers playing straight with them about issues, constraints or limitations. It was great to hear this as there can sometimes be a temptation to tread too carefully around problems when they arise rather than give out bad news.</p>

<p>Councils want more flexibility in the nature of suppliers’ approach to procurement - incentives and trials/pilots were mentioned as examples. This is an area we would like to give some thought to, although it would present challenges in terms of understanding a platform like Digital Place in a short trial period.</p>

<p>There was a clear call for greater transparency in costs - unexpected charges or hidden costs were very unpopular with councils. It was good to see a suggestion of cost sharing between councils; something that Placecube has done a number of times with its customers.</p>

<p>A strong theme around partnerships and collaboration emerged from the feedback. Councils are looking to break from traditional ways of supply models where they are just the recipients of new features - they want to engage more with joint collaboration, suggestions for improvements and developing with suppliers. The idea of creating partnerships between councils and suppliers was mentioned, with longer-term relationships formed that engender trust between both sides. Placecube’s Customer Excellence model plays well to this theme, with monthly business meetings, on-site visits and a key contact to discuss requirements and issues.</p>

<p>More transparency around roadmaps and future plans is something that was called for, which Placecube customers can already see in our live roadmap as we bring new development work into play. Our roadmap is directly influenced by our use of ProdPad as a tool to gather feedback from our customers, pull this together into ideas and initiatives and then move to themes of work to deliver.</p>

<p>Integration was another key area for councils; fewer restrictions, fewer charges and greater use of standards. Placecube’s use of open systems and standards, such as the Open Referral UK standard for its Open Place Directory data product, and the sharing of all developed integrations across our clients, within their subscription fee, already puts us in a good position.</p>

<p>Reliability and good delivery were two further themes that emerged. The next steps once contracts are signed are crucial in getting software into councils’ hands, so flexibility and momentum were seen as important. Fulfilling promises and not overpromising were also highlighted as areas that councils expected suppliers to improve their behaviour.</p>

<p><a href="https://miro.com/app/board/uXjVMGCjF0o=/?moveToWidget=3458764570757926908&amp;cot=14">View all the feedback about what suppliers need to do here</a></p>

<h2 id="councils-need-to-do-these-things-differently">Councils need to do these things differently…</h2>
<p>There were a large number of principles of good behaviours that councils could adopt identified in the feedback, as councils and suppliers dug into the issues that create problems on both sides. These included:</p>

<ul>
  <li>having realistic expectations</li>
  <li>being open to change and challenge</li>
  <li>taking more risks</li>
  <li>having respect (on both sides) for each other’s time</li>
</ul>

<p>These felt like a great set of discussion points that could be had at the start of any new project or relationship.</p>

<p>Clarity emerged as another behaviour for councils to focus on. This encompassed basics like being clear about what is needed, the scope of a project, understanding what software they have purchased and having clear objectives and ownership around a project.</p>

<p>This was amplified in the requirements theme - workshops sent a clear message that councils need to understand what they really want, define this well and develop them into clear requirements.</p>

<p>The procurement process on the councils’ side came under some scrutiny. Early engagement with suppliers was seen as a change that would bring benefits. It was highlighted that the time taken for councils to reach decisions and respond to supplier offers is too long in some cases, and the processes themselves were sometimes difficult.</p>

<p>Finally, improved contract management was also seen as a change that would add value.</p>

<p>There were a number of mentions of leadership within councils being important. Having a collective top-down vision, good support and strategic thinking were all seen as success factors.</p>

<p>As well as asking suppliers to collaborate better with them, councils also recognised that they needed to replicate this within their own organisations and join up with other departments, involving key stakeholders in projects. A welcome comment was made around a move away from older adversarial modes of working.</p>

<p>Improvements needed to internal organisation extended to budgets being in place and available to projects when they start, and having a focus on value and quality over costs. The delivery of  projects needed dedicated projects teams providing customer input at the right time, and being realistic about what suppliers can deliver.</p>

<p><a href="https://miro.com/app/board/uXjVMGCjF0o=/?moveToWidget=3458764570757926387&amp;cot=14">View all the feedback around what councils need to do here</a></p>

<h2 id="our-conclusions">Our conclusions</h2>
<ul>
  <li>getting a wide range of councils and suppliers from across the country together was a great opportunity for both sides to share some of the factors important to them to help improve relationships</li>
  <li>we found a number of areas where Placecube already performs well against this collective expectation for suppliers, and others where we have been given food for thought on how we might improve</li>
</ul>

<p>This series of workshops helped emphasise that honest conversations between suppliers and councils could help both sides work on improved relationships that can flourish into productive partnerships.</p>]]></content><author><name>Neil Lawrence</name></author><category term="placecube" /><summary type="html"><![CDATA[At the regional LocalGovCamp events we attended in 2023 we used the opportunity to discuss how councils and suppliers could work together to identify the pain points that both sides experience. Running a series of workshops at the four venues on this theme allowed us to use the insights from those attending.]]></summary></entry><entry><title type="html">Weeknotes: S02 E20 - What kind of day has it been?</title><link href="https://www.ox1digital.co.uk/blog/2023/12/09/weeknotes-S02-E20-What-kind-of-day-has-it-been" rel="alternate" type="text/html" title="Weeknotes: S02 E20 - What kind of day has it been?" /><published>2023-12-09T00:00:00+00:00</published><updated>2023-12-09T00:00:00+00:00</updated><id>https://www.ox1digital.co.uk/blog/2023/12/09/weeknotes-S02-E20-What-kind-of-day-has-it-been</id><content type="html" xml:base="https://www.ox1digital.co.uk/blog/2023/12/09/weeknotes-S02-E20-What-kind-of-day-has-it-been"><![CDATA[<p>There are all kinds of reasons for re-starting blogging from what I can tell. Some get inspired <a href="https://medium.com/@evanslv1995/securing-engagement-with-no-ring-8e760f72828b">after an event or reflecting on success</a>. Others have <a href="https://whitehallwebby.com/2023/11/">constraints around the work they do suddenly lifted</a>. Some get <a href="https://neilojwilliams.net/on-starting-this-24-october-2023/">inspired by the writing of others</a>. That last one is certainly true for me.</p>

<p>I’ve been wrestling with my lack of writing for a bit. We’ve had some family events this year that have dampened my enthusiasm and brought my focus back home. But a chat at a recent Innovation Igloo event on blogging made me realise that there is a tension between what I’m comfortable writing about with respect to work and what feels like going too far, either in personal or commercial terms, which has been a big factor.</p>

<p>That hasn’t stopped me writing for work; LocalGovCamp this year has given me two opportunities to write up workshops we’ve run, both with a commitment to share what we learned more widely. The second one is having the beauty treatment by our marketing folk currently, but the first on <a href="https://blog.placecube.com/blog/building-networked-communities-0-1">our session around citizen accounts</a> is out to read. It suffers from a lack of West Wing references though….</p>

<p>So to rectify, and shamelessly stealing <a href="https://www.vulture.com/2014/12/newsroom-aaron-sorkin-what-kind-of-day-has-it-been-west-wing-sports-night-studio-60.html">the title of numerous Aaron Sorkin TV episodes</a>, let’s explore what kind of week it’s been….</p>

<h2 id="developing-my-core">Developing my Core</h2>
<p>For a good number of months, my Product Owner teammate and I were subsumed by large projects while still trying to steer the ship for our Core team work. Since my project ended I’ve been taking up the reigns on the Core team a bit more myself to give her some space, and before the next large project kicks off.</p>

<p>Initially it felt overwhelming; trying to juggle the various priorities that shape the work, and there are never enough resources to achieve all the things you want to. Last week that came to a head and I had to take some time out to write out what resource we had, what all the priorities were and make decisions about what had to be done first. After hiding under my desk for a while I realised there was no baying mob at the door with pitchforks, and actually it’s OK to give clear directions to the team to help them. It was great to see this culminate in a large minor release (does that make sense?) that had felt like passing a kidney stone at times.</p>

<p>I’ve also realised that getting more involved has help me move from being a passenger in the process to owning it more; understanding exactly what is in the backlog, what the issues are and taking decisions on which gets tackled first. And enjoying it more.</p>

<h2 id="great-meet-up-lousy-meal">Great meet-up, lousy meal</h2>
<p>This week also saw the Product Team get together in Bristol for a day of strategic planning and prioritising. This also included our Lead Developer from Spain who I’d not met in person before — a real treat! And he turned out to be the only one that took any notice of the idea to wear xmas gear.</p>

<p>We’d done a stack of prep work since our last two-day session back in July to hone down work into strategic and tactical streams, so we worked through sizing and prioritising the tactical work to come up with a prioritised list to start working on in the new year.</p>

<p>While I love working remotely, the benefit of face-to-face sessions like these can’t be underplayed; conversations over a drink can lead to new innovations or changes to working practice (our new deployment planning approach for one), but also people you have only met on screen become real and more rounded, so a greater understanding of them is fostered.</p>

<p>And while a drink out as a group was terrific (and I discovered <a href="https://lefthandedgiant.com/collections/beer/products/forbidden-script-x-to-ol">the best beer I’d tasted in a while</a> outside of Germany), the meal we had afterwards at a Lebanese restaurant saw one of our party in and out of the toilets all evening and another out of play the next day!</p>

<h2 id="feeding-back">Feeding back</h2>
<p>I got to meet the lovely folk at <a href="https://www.public.io/">Public</a> this week to talk about Local Digital projects and collaboration. Public are doing an evaluation of the impact on the <a href="https://www.localdigital.gov.uk/fund/">Local Digital fund</a>, and they made reference in a feedback session about the challenges identified with collaboration. We’d <a href="https://medium.com/@ox1digital/whats-stopping-us-from-collaborating-256a724ec61e">run a workshop on this collaboration</a> at a past LocalGovCamp, the next steps of which had come to nothing, so I thought it could be a good opportunity to prod that fire again to see if something could be made to happen.</p>

<p>In the end it was more a discussion around my thoughts and experiences of <a href="https://localdigitalchatbots.github.io/about/">running a Local Digital project in a council</a> and as a supplier working with councils to deliver a funded project. The continuity of projects was a key topic — how the outputs are taken forward and made sustainable — and also how the impact can be properly evaluated.</p>

<p>We’re going to continue the conversations so maybe we can really hack into this collaboration issue together.</p>

<h2 id="our-local">Our local</h2>
<p>This week we had our first shareholders meeting for our local pub, <a href="http://martyrsinn.com/">The Martyrs Inn</a>, which is owned by the community.</p>

<p>Six months in and things are rolling along nicely. Not making a huge profit just yet, and not helped by the <a href="https://www.tuc.org.uk/events/tolpuddle-martyrs-festival-2023-cancelled">cancellation of the Martyrs Festival</a> which its opening had been planned around. Nevertheless it’s become the heart of our village and a great place to meet up. Last night was an open fire, sounds of laughter and a sea of dogs on the floor. As Cheers suggested “sometimes you wanna go where everybody know your name”, and while we’re not quite there knowing everybody we do know the staff and enough people to chat with.</p>

<h2 id="quick-thoughts">Quick thoughts</h2>
<ul>
  <li>We ran a Lunch and Learn session this week where the combined efforts of Teams and Eventbrite conspired to bring us down. Kudos to the large number of people that made it in (and our apologies)</li>
  <li>Turning up to Bristol in my nice new coat my efforts to dress to impress were thwarted by our far more stylish trainer. Damn that green coat!</li>
  <li>How is it trains can be colder when you’re sat on them than when you’re outside?</li>
  <li>Great to be back <a href="https://www.ox1digital.co.uk/projects/sarah-cowley.html">working on a website for a friend</a> that I had to put to one side in September. I think my next target has to be our pub website (no https?!?! I can’t bear it…)</li>
  <li>If Jeremy Gould can have 13 years between blog posts I think I’m OK with a 5 month break</li>
</ul>]]></content><author><name>Neil Lawrence</name></author><category term="weeknotes" /><summary type="html"><![CDATA[There are all kinds of reasons for re-starting blogging from what I can tell. Some get inspired after an event or reflecting on success. Others have constraints around the work they do suddenly lifted. Some get inspired by the writing of others. That last one is certainly true for me.]]></summary></entry></feed>