Diag====| Initiating an AUTOMATIC CHECK FOR UPDATES ON PAGE LOAD wp_loaded due to FeedWordPress option = string(4) "init"
Diag====| FeedWordPress is set up to hold pings, fwp_held_ping=0
Diag| Polling feed [https://interactive-content.is.ed.ac.uk/feed/]
Diag====| HTTP [https://interactive-content.is.ed.ac.uk/feed/] ⌈ array(7) {
  ["timeout"]=>
  int(20)
  ["redirection"]=>
  int(5)
  ["headers"]=>
  array(1) {
    ["Accept"]=>
    string(185) "application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1"
  }
  ["user-agent"]=>
  string(162) "FeedWordPress/2024.1119 (aggregator:feedwordpress; WordPress/6.8.5 + SimplePie/1.8.0; Allow like Gecko; +http://feedwordpress.radgeek.com/) at blogs.ed.ac.uk/dlam"
  ["authentication"]=>
  NULL
  ["username"]=>
  string(0) ""
  ["password"]=>
  string(0) ""
}
Diag====| HTTP [https://interactive-content.is.ed.ac.uk/feed/] ⌉ array(6) {
  ["headers"]=>
  object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2414 (1) {
    ["data":protected]=>
    array(9) {
      ["date"]=>
      string(29) "Thu, 21 May 2026 16:50:58 GMT"
      ["server"]=>
      string(6) "Apache"
      ["x-powered-by"]=>
      string(10) "PHP/8.3.30"
      ["vary"]=>
      string(19) "accept,content-type"
      ["link"]=>
      string(76) "<https://interactive-content.is.ed.ac.uk/wp-json/>; rel="https://api.w.org/""
      ["upgrade"]=>
      string(6) "h2,h2c"
      ["last-modified"]=>
      string(29) "Wed, 20 May 2026 15:02:36 GMT"
      ["etag"]=>
      string(34) ""6f6327fa7b05ea3730844205ad855f76""
      ["content-type"]=>
      string(34) "application/rss+xml; charset=UTF-8"
    }
  }
  ["body"]=>
  string(15255) "<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Interactive Content</title>
	<atom:link href="https://interactive-content.is.ed.ac.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://interactive-content.is.ed.ac.uk</link>
	<description>Team Blog</description>
	<lastBuildDate>Wed, 29 Apr 2026 08:37:46 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/interactive-content.is.ed.ac.uk/wp-content/uploads/2017/10/cropped-avatar-roundel-bright-blue-72dpi.png?fit=32%2C32&ssl=1</url>
	<title>Interactive Content</title>
	<link>https://interactive-content.is.ed.ac.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">137880713</site>	<item>
		<title>Being crafty with hand-drawn stick figures and open-sourced music</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/04/29/stick-figures/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 08:37:46 +0000</pubDate>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Business School]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Pixabay]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=24171</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>Changing the visual design mid-way in a video project is quite unusual, but pivoting to a softer animation style with stick figures proved successful for both the client and us.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8955</post-id>	</item>
		<item>
		<title>300 Faces</title>
		<link>https://stubot.me/300-faces/#utm_source=rss&utm_medium=rss&utm_campaign=300-faces</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 14:40:20 +0000</pubDate>
				<category><![CDATA[Edinburgh Medical School]]></category>
		<category><![CDATA[Edinburgh Science Festival]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[LEGO]]></category>
		<category><![CDATA[Sight Scotland]]></category>
		<category><![CDATA[diabetes]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3601</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes. </span></span>I was recently invited to the ‘300 Faces of Edinburgh Medical School’ launch event. Marking the 300th anniversary of the Faculty of Medicine at the University of Edinburgh, this exhibition celebrates the people who have made inspirational contributions to the school.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8048</post-id>	</item>
		<item>
		<title>Digital Accessibility Intern</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/02/24/digital-accessibility-intern-2/</link>
		
		<dc:creator><![CDATA[Stewart Cromar]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 16:06:03 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Unitemps]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=18828</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> < 1</span> <span class="rt-label rt-postfix">minute</span></span>If you are interested in helping users and people, we have an interesting summer internship for you which is about checking our services to make sure they are as accessible as they can be for all our users.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7795</post-id>	</item>
		<item>
		<title>Reflecting on a Drupal 7 to Drupal 10 Migration</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/12/08/drupal-migration/</link>
		
		<dc:creator><![CDATA[Charlie Chu]]></dc:creator>
		<pubDate>Mon, 08 Dec 2025 15:43:39 +0000</pubDate>
				<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Drupal]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=12121</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>In 2023, I started work on migrating three Drupal 7 websites over to Drupal 10. All three sites used a custom sub-theme based on Bootstrap 3. Each site had its own purpose, but they needed to look and feel similar. The main reason for the migration was that Drupal 7 was reaching its end-of-life.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6968</post-id>	</item>
		<item>
		<title>Interactive Women in STEM tour</title>
		<link>https://stubot.me/stem-tour/?utm_source=rss&utm_medium=rss&utm_campaign=stem-tour</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 14:35:12 +0000</pubDate>
				<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[H5P]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3578</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025, Jackie, Magda and Stewart created the 'Interactive Women in STEM tour' game for everyone to play.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6030</post-id>	</item>
		<item>
		<title>Moira Dunbar</title>
		<link>https://stubot.me/moira-dunbar/?utm_source=rss&utm_medium=rss&utm_campaign=moira-dunbar</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 12:37:09 +0000</pubDate>
				<category><![CDATA[Ada Lovelace Day]]></category>
		<category><![CDATA[colouring book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Ada Lovelace]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3569</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025 I created a colouring-in illustration of Moira Dunbar (1918-1999), the pioneering Scottish-Canadian glaciologist and Arctic sea-ice researcher.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6016</post-id>	</item>
		<item>
		<title>Making an impact with ThingLink</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/08/18/making-an-impact-with-thinglink/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 07:19:54 +0000</pubDate>
				<category><![CDATA[EdWed]]></category>
		<category><![CDATA[infographic]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sustainability]]></category>
		<category><![CDATA[ThingLink]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[graphic design]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5614</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>The Interactive Content team used ThingLink to create interactive learning materials for two Careers Services projects: ‘Skills For Success Framework’ and ‘Riding the Wave’. They chose ThingLink for its ability to add interactivity to graphics and its ease of embedding into EdWeb. The team collaborated with the Graphics Design service to create engaging and accessible content using ThingLink’s scenes and tags features.]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5466</post-id>	</item>
		<item>
		<title>In Their Own Time</title>
		<link>https://stubot.me/in-their-own-time/?utm_source=rss&utm_medium=rss&utm_campaign=in-their-own-time</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 11 Aug 2025 13:33:50 +0000</pubDate>
				<category><![CDATA[academia]]></category>
		<category><![CDATA[academics]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[comic book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3519</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>Challenging conventional funding structures to include intersectionally underrepresented casualised academics. The Interactive Content team help launch a new digital comic resource.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5397</post-id>	</item>
		<item>
		<title>Educated Prompting: Coding Without Writing a Single Line</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/31/educated-prompting/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 14:49:56 +0000</pubDate>
				<category><![CDATA[Claude]]></category>
		<category><![CDATA[ELM]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[GenAI]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[digital skills]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5490</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 9</span> <span class="rt-label rt-postfix">minutes</span></span>In my second month as the DLAM Digital Accessibility Intern, I've been contributing key accessibility and UX improvements to an open-source sheet music application. This blog describes how a GenAI workflow helped fast-track my understanding of Python coding, and allowed me to make impactful changes to an open-source project, through a process I call "Educated Prompting".]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5385</post-id>	</item>
		<item>
		<title>Diary of an Accessibility Intern (Weeks 1-4)</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/01/diary-of-an-accessibility-intern-weeks-1-4/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Tue, 01 Jul 2025 10:44:52 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5208</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 18</span> <span class="rt-label rt-postfix">minutes</span></span>In this blog post, I write about what digital accessibility is, how we can make digital content more accessible, and why all of this matters in the first place. Also, this is a sort of diary of my first month as a Digital Accessibility Intern: what I have been up to, and my thoughts about various activities I have undertaken.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5134</post-id>	</item>
	</channel>
</rss>
"
  ["response"]=>
  array(2) {
    ["code"]=>
    int(200)
    ["message"]=>
    string(2) "OK"
  }
  ["cookies"]=>
  array(0) {
  }
  ["filename"]=>
  NULL
  ["http_response"]=>
  object(WP_HTTP_Requests_Response)#2413 (5) {
    ["data"]=>
    NULL
    ["headers"]=>
    NULL
    ["status"]=>
    NULL
    ["response":protected]=>
    object(WpOrg\Requests\Response)#2415 (10) {
      ["body"]=>
      string(15255) "<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Interactive Content</title>
	<atom:link href="https://interactive-content.is.ed.ac.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://interactive-content.is.ed.ac.uk</link>
	<description>Team Blog</description>
	<lastBuildDate>Wed, 29 Apr 2026 08:37:46 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/interactive-content.is.ed.ac.uk/wp-content/uploads/2017/10/cropped-avatar-roundel-bright-blue-72dpi.png?fit=32%2C32&ssl=1</url>
	<title>Interactive Content</title>
	<link>https://interactive-content.is.ed.ac.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">137880713</site>	<item>
		<title>Being crafty with hand-drawn stick figures and open-sourced music</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/04/29/stick-figures/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 08:37:46 +0000</pubDate>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Business School]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Pixabay]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=24171</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>Changing the visual design mid-way in a video project is quite unusual, but pivoting to a softer animation style with stick figures proved successful for both the client and us.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8955</post-id>	</item>
		<item>
		<title>300 Faces</title>
		<link>https://stubot.me/300-faces/#utm_source=rss&utm_medium=rss&utm_campaign=300-faces</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 14:40:20 +0000</pubDate>
				<category><![CDATA[Edinburgh Medical School]]></category>
		<category><![CDATA[Edinburgh Science Festival]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[LEGO]]></category>
		<category><![CDATA[Sight Scotland]]></category>
		<category><![CDATA[diabetes]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3601</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes. </span></span>I was recently invited to the ‘300 Faces of Edinburgh Medical School’ launch event. Marking the 300th anniversary of the Faculty of Medicine at the University of Edinburgh, this exhibition celebrates the people who have made inspirational contributions to the school.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8048</post-id>	</item>
		<item>
		<title>Digital Accessibility Intern</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/02/24/digital-accessibility-intern-2/</link>
		
		<dc:creator><![CDATA[Stewart Cromar]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 16:06:03 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Unitemps]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=18828</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> < 1</span> <span class="rt-label rt-postfix">minute</span></span>If you are interested in helping users and people, we have an interesting summer internship for you which is about checking our services to make sure they are as accessible as they can be for all our users.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7795</post-id>	</item>
		<item>
		<title>Reflecting on a Drupal 7 to Drupal 10 Migration</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/12/08/drupal-migration/</link>
		
		<dc:creator><![CDATA[Charlie Chu]]></dc:creator>
		<pubDate>Mon, 08 Dec 2025 15:43:39 +0000</pubDate>
				<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Drupal]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=12121</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>In 2023, I started work on migrating three Drupal 7 websites over to Drupal 10. All three sites used a custom sub-theme based on Bootstrap 3. Each site had its own purpose, but they needed to look and feel similar. The main reason for the migration was that Drupal 7 was reaching its end-of-life.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6968</post-id>	</item>
		<item>
		<title>Interactive Women in STEM tour</title>
		<link>https://stubot.me/stem-tour/?utm_source=rss&utm_medium=rss&utm_campaign=stem-tour</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 14:35:12 +0000</pubDate>
				<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[H5P]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3578</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025, Jackie, Magda and Stewart created the 'Interactive Women in STEM tour' game for everyone to play.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6030</post-id>	</item>
		<item>
		<title>Moira Dunbar</title>
		<link>https://stubot.me/moira-dunbar/?utm_source=rss&utm_medium=rss&utm_campaign=moira-dunbar</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 12:37:09 +0000</pubDate>
				<category><![CDATA[Ada Lovelace Day]]></category>
		<category><![CDATA[colouring book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Ada Lovelace]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3569</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025 I created a colouring-in illustration of Moira Dunbar (1918-1999), the pioneering Scottish-Canadian glaciologist and Arctic sea-ice researcher.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6016</post-id>	</item>
		<item>
		<title>Making an impact with ThingLink</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/08/18/making-an-impact-with-thinglink/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 07:19:54 +0000</pubDate>
				<category><![CDATA[EdWed]]></category>
		<category><![CDATA[infographic]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sustainability]]></category>
		<category><![CDATA[ThingLink]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[graphic design]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5614</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>The Interactive Content team used ThingLink to create interactive learning materials for two Careers Services projects: ‘Skills For Success Framework’ and ‘Riding the Wave’. They chose ThingLink for its ability to add interactivity to graphics and its ease of embedding into EdWeb. The team collaborated with the Graphics Design service to create engaging and accessible content using ThingLink’s scenes and tags features.]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5466</post-id>	</item>
		<item>
		<title>In Their Own Time</title>
		<link>https://stubot.me/in-their-own-time/?utm_source=rss&utm_medium=rss&utm_campaign=in-their-own-time</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 11 Aug 2025 13:33:50 +0000</pubDate>
				<category><![CDATA[academia]]></category>
		<category><![CDATA[academics]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[comic book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3519</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>Challenging conventional funding structures to include intersectionally underrepresented casualised academics. The Interactive Content team help launch a new digital comic resource.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5397</post-id>	</item>
		<item>
		<title>Educated Prompting: Coding Without Writing a Single Line</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/31/educated-prompting/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 14:49:56 +0000</pubDate>
				<category><![CDATA[Claude]]></category>
		<category><![CDATA[ELM]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[GenAI]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[digital skills]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5490</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 9</span> <span class="rt-label rt-postfix">minutes</span></span>In my second month as the DLAM Digital Accessibility Intern, I've been contributing key accessibility and UX improvements to an open-source sheet music application. This blog describes how a GenAI workflow helped fast-track my understanding of Python coding, and allowed me to make impactful changes to an open-source project, through a process I call "Educated Prompting".]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5385</post-id>	</item>
		<item>
		<title>Diary of an Accessibility Intern (Weeks 1-4)</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/01/diary-of-an-accessibility-intern-weeks-1-4/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Tue, 01 Jul 2025 10:44:52 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5208</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 18</span> <span class="rt-label rt-postfix">minutes</span></span>In this blog post, I write about what digital accessibility is, how we can make digital content more accessible, and why all of this matters in the first place. Also, this is a sort of diary of my first month as a Digital Accessibility Intern: what I have been up to, and my thoughts about various activities I have undertaken.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5134</post-id>	</item>
	</channel>
</rss>
"
      ["raw"]=>
      string(15675) "HTTP/1.1 200 OK
Date: Thu, 21 May 2026 16:50:58 GMT
Server: Apache
X-Powered-By: PHP/8.3.30
Vary: accept,content-type
Link: <https://interactive-content.is.ed.ac.uk/wp-json/>; rel="https://api.w.org/"
Upgrade: h2,h2c
Connection: Upgrade, close
Last-Modified: Wed, 20 May 2026 15:02:36 GMT
ETag: "6f6327fa7b05ea3730844205ad855f76"
Transfer-Encoding: chunked
Content-Type: application/rss+xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Interactive Content</title>
	<atom:link href="https://interactive-content.is.ed.ac.uk/feed/" rel="self" type="application/rss+xml" />
	<link>https://interactive-content.is.ed.ac.uk</link>
	<description>Team Blog</description>
	<lastBuildDate>Wed, 29 Apr 2026 08:37:46 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/interactive-content.is.ed.ac.uk/wp-content/uploads/2017/10/cropped-avatar-roundel-bright-blue-72dpi.png?fit=32%2C32&ssl=1</url>
	<title>Interactive Content</title>
	<link>https://interactive-content.is.ed.ac.uk</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">137880713</site>	<item>
		<title>Being crafty with hand-drawn stick figures and open-sourced music</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/04/29/stick-figures/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 08:37:46 +0000</pubDate>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Business School]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Pixabay]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=24171</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>Changing the visual design mid-way in a video project is quite unusual, but pivoting to a softer animation style with stick figures proved successful for both the client and us.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8955</post-id>	</item>
		<item>
		<title>300 Faces</title>
		<link>https://stubot.me/300-faces/#utm_source=rss&utm_medium=rss&utm_campaign=300-faces</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 14:40:20 +0000</pubDate>
				<category><![CDATA[Edinburgh Medical School]]></category>
		<category><![CDATA[Edinburgh Science Festival]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[LEGO]]></category>
		<category><![CDATA[Sight Scotland]]></category>
		<category><![CDATA[diabetes]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3601</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes. </span></span>I was recently invited to the ‘300 Faces of Edinburgh Medical School’ launch event. Marking the 300th anniversary of the Faculty of Medicine at the University of Edinburgh, this exhibition celebrates the people who have made inspirational contributions to the school.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8048</post-id>	</item>
		<item>
		<title>Digital Accessibility Intern</title>
		<link>https://blogs.ed.ac.uk/dlam/2026/02/24/digital-accessibility-intern-2/</link>
		
		<dc:creator><![CDATA[Stewart Cromar]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 16:06:03 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Unitemps]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=18828</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> < 1</span> <span class="rt-label rt-postfix">minute</span></span>If you are interested in helping users and people, we have an interesting summer internship for you which is about checking our services to make sure they are as accessible as they can be for all our users.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7795</post-id>	</item>
		<item>
		<title>Reflecting on a Drupal 7 to Drupal 10 Migration</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/12/08/drupal-migration/</link>
		
		<dc:creator><![CDATA[Charlie Chu]]></dc:creator>
		<pubDate>Mon, 08 Dec 2025 15:43:39 +0000</pubDate>
				<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Drupal]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=12121</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 4</span> <span class="rt-label rt-postfix">minutes</span></span>In 2023, I started work on migrating three Drupal 7 websites over to Drupal 10. All three sites used a custom sub-theme based on Bootstrap 3. Each site had its own purpose, but they needed to look and feel similar. The main reason for the migration was that Drupal 7 was reaching its end-of-life.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6968</post-id>	</item>
		<item>
		<title>Interactive Women in STEM tour</title>
		<link>https://stubot.me/stem-tour/?utm_source=rss&utm_medium=rss&utm_campaign=stem-tour</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 14:35:12 +0000</pubDate>
				<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[H5P]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3578</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025, Jackie, Magda and Stewart created the 'Interactive Women in STEM tour' game for everyone to play.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6030</post-id>	</item>
		<item>
		<title>Moira Dunbar</title>
		<link>https://stubot.me/moira-dunbar/?utm_source=rss&utm_medium=rss&utm_campaign=moira-dunbar</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 12:37:09 +0000</pubDate>
				<category><![CDATA[Ada Lovelace Day]]></category>
		<category><![CDATA[colouring book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[OER]]></category>
		<category><![CDATA[Women In STEM]]></category>
		<category><![CDATA[Ada Lovelace]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3569</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes</span></span><span class="span-reading-time rt-reading-time"><span class="rt-label rt-prefix">Estimated reading time: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">minutes. </span></span>For Ada Lovelace Day 2025 I created a colouring-in illustration of Moira Dunbar (1918-1999), the pioneering Scottish-Canadian glaciologist and Arctic sea-ice researcher.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6016</post-id>	</item>
		<item>
		<title>Making an impact with ThingLink</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/08/18/making-an-impact-with-thinglink/</link>
		
		<dc:creator><![CDATA[Jackie Aim]]></dc:creator>
		<pubDate>Mon, 18 Aug 2025 07:19:54 +0000</pubDate>
				<category><![CDATA[EdWed]]></category>
		<category><![CDATA[infographic]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sustainability]]></category>
		<category><![CDATA[ThingLink]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[graphic design]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5614</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>The Interactive Content team used ThingLink to create interactive learning materials for two Careers Services projects: ‘Skills For Success Framework’ and ‘Riding the Wave’. They chose ThingLink for its ability to add interactivity to graphics and its ease of embedding into EdWeb. The team collaborated with the Graphics Design service to create engaging and accessible content using ThingLink’s scenes and tags features.]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5466</post-id>	</item>
		<item>
		<title>In Their Own Time</title>
		<link>https://stubot.me/in-their-own-time/?utm_source=rss&utm_medium=rss&utm_campaign=in-their-own-time</link>
		
		<dc:creator><![CDATA[Stewart Lamb Cromar]]></dc:creator>
		<pubDate>Mon, 11 Aug 2025 13:33:50 +0000</pubDate>
				<category><![CDATA[academia]]></category>
		<category><![CDATA[academics]]></category>
		<category><![CDATA[comic]]></category>
		<category><![CDATA[comic book]]></category>
		<category><![CDATA[illustration]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[disability]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[University of Edinburgh]]></category>
		<guid isPermaLink="false">https://stubot.me/?p=3519</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 5</span> <span class="rt-label rt-postfix">minutes</span></span>Challenging conventional funding structures to include intersectionally underrepresented casualised academics. The Interactive Content team help launch a new digital comic resource.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5397</post-id>	</item>
		<item>
		<title>Educated Prompting: Coding Without Writing a Single Line</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/31/educated-prompting/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 14:49:56 +0000</pubDate>
				<category><![CDATA[Claude]]></category>
		<category><![CDATA[ELM]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[GenAI]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[digital skills]]></category>
		<category><![CDATA[DLAM Feed]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5490</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 9</span> <span class="rt-label rt-postfix">minutes</span></span>In my second month as the DLAM Digital Accessibility Intern, I've been contributing key accessibility and UX improvements to an open-source sheet music application. This blog describes how a GenAI workflow helped fast-track my understanding of Python coding, and allowed me to make impactful changes to an open-source project, through a process I call "Educated Prompting".]]></description>
		
		
		<enclosure url="//?#" length="0" type="" />

		<post-id xmlns="com-wordpress:feed-additions:1">5385</post-id>	</item>
		<item>
		<title>Diary of an Accessibility Intern (Weeks 1-4)</title>
		<link>https://blogs.ed.ac.uk/dlam/2025/07/01/diary-of-an-accessibility-intern-weeks-1-4/</link>
		
		<dc:creator><![CDATA[dbuik]]></dc:creator>
		<pubDate>Tue, 01 Jul 2025 10:44:52 +0000</pubDate>
				<category><![CDATA[Interactive Content]]></category>
		<category><![CDATA[Interactive Content feed]]></category>
		<category><![CDATA[internship]]></category>
		<category><![CDATA[thinking]]></category>
		<category><![CDATA[accessibility]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/dlam/?p=5208</guid>

					<description><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 18</span> <span class="rt-label rt-postfix">minutes</span></span>In this blog post, I write about what digital accessibility is, how we can make digital content more accessible, and why all of this matters in the first place. Also, this is a sort of diary of my first month as a Digital Accessibility Intern: what I have been up to, and my thoughts about various activities I have undertaken.]]></description>
		
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5134</post-id>	</item>
	</channel>
</rss>
"
      ["headers"]=>
      object(WpOrg\Requests\Response\Headers)#2416 (1) {
        ["data":protected]=>
        array(9) {
          ["date"]=>
          array(1) {
            [0]=>
            string(29) "Thu, 21 May 2026 16:50:58 GMT"
          }
          ["server"]=>
          array(1) {
            [0]=>
            string(6) "Apache"
          }
          ["x-powered-by"]=>
          array(1) {
            [0]=>
            string(10) "PHP/8.3.30"
          }
          ["vary"]=>
          array(1) {
            [0]=>
            string(19) "accept,content-type"
          }
          ["link"]=>
          array(1) {
            [0]=>
            string(76) "<https://interactive-content.is.ed.ac.uk/wp-json/>; rel="https://api.w.org/""
          }
          ["upgrade"]=>
          array(1) {
            [0]=>
            string(6) "h2,h2c"
          }
          ["last-modified"]=>
          array(1) {
            [0]=>
            string(29) "Wed, 20 May 2026 15:02:36 GMT"
          }
          ["etag"]=>
          array(1) {
            [0]=>
            string(34) ""6f6327fa7b05ea3730844205ad855f76""
          }
          ["content-type"]=>
          array(1) {
            [0]=>
            string(34) "application/rss+xml; charset=UTF-8"
          }
        }
      }
      ["status_code"]=>
      int(200)
      ["protocol_version"]=>
      float(1.1)
      ["success"]=>
      bool(true)
      ["redirects"]=>
      int(0)
      ["url"]=>
      string(45) "https://interactive-content.is.ed.ac.uk/feed/"
      ["history"]=>
      array(0) {
      }
      ["cookies"]=>
      object(WpOrg\Requests\Cookie\Jar)#2412 (1) {
        ["cookies":protected]=>
        array(0) {
        }
      }
    }
    ["filename":protected]=>
    NULL
  }
}
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=24171] "Being crafty with hand-drawn stick figures and open-sourced music"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=24171'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=24171] "Being crafty with hand-drawn stick figures and open-sourced music" is a duplicate of an existing post.
Diag| Considering item [https://stubot.me/?p=3601] "300 Faces"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://stubot.me/?p=3601'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://stubot.me/?p=3601] "300 Faces" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=18828] "Digital Accessibility Intern"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=18828'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=18828] "Digital Accessibility Intern" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=12121] "Reflecting on a Drupal 7 to Drupal 10 Migration"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=12121'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=12121] "Reflecting on a Drupal 7 to Drupal 10 Migration" is an update of an existing post.
Diag========| Item [https://blogs.ed.ac.uk/dlam/?p=12121] "Reflecting on a Drupal 7 to Drupal 10 Migration"  has a not-yet-seen update hash: string(32) "260fe8a76fcac3201b3509cec249ede5" not in {}. Basis: array(4) { [0]=> string(5) "title" [1]=> string(4) "link" [2]=> string(7) "content" [3]=> string(7) "excerpt" } 
Diag====| Filtered out item [https://blogs.ed.ac.uk/dlam/?p=12121] without syndication: no author available
Diag| Considering item [https://stubot.me/?p=3578] "Interactive Women in STEM tour"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://stubot.me/?p=3578'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://stubot.me/?p=3578] "Interactive Women in STEM tour" is a duplicate of an existing post.
Diag| Considering item [https://stubot.me/?p=3569] "Moira Dunbar"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://stubot.me/?p=3569'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://stubot.me/?p=3569] "Moira Dunbar" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=5614] "Making an impact with ThingLink"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=5614'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=5614] "Making an impact with ThingLink" is a duplicate of an existing post.
Diag| Considering item [https://stubot.me/?p=3519] "In Their Own Time"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://stubot.me/?p=3519'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://stubot.me/?p=3519] "In Their Own Time" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=5490] "Educated Prompting: Coding Without Writing a Single Line"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=5490'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=5490] "Educated Prompting: Coding Without Writing a Single Line" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/dlam/?p=5208] "Diary of an Accessibility Intern (Weeks 1-4)"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/dlam/?p=5208'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/dlam/?p=5208] "Diary of an Accessibility Intern (Weeks 1-4)" is a duplicate of an existing post.
Diag| Polling feed [https://blogs.ed.ac.uk/egreen2/feed]
Diag====| HTTP [https://blogs.ed.ac.uk/egreen2/feed] ⌈ array(7) {
  ["timeout"]=>
  int(20)
  ["redirection"]=>
  int(5)
  ["headers"]=>
  array(1) {
    ["Accept"]=>
    string(185) "application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1"
  }
  ["user-agent"]=>
  string(162) "FeedWordPress/2024.1119 (aggregator:feedwordpress; WordPress/6.8.5 + SimplePie/1.8.0; Allow like Gecko; +http://feedwordpress.radgeek.com/) at blogs.ed.ac.uk/dlam"
  ["authentication"]=>
  NULL
  ["username"]=>
  string(0) ""
  ["password"]=>
  string(0) ""
}
Diag====| HTTP [https://blogs.ed.ac.uk/egreen2/feed] ⌉ array(6) {
  ["headers"]=>
  object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2612 (1) {
    ["data":protected]=>
    array(12) {
      ["content-type"]=>
      string(34) "application/rss+xml; charset=UTF-8"
      ["date"]=>
      string(29) "Thu, 21 May 2026 16:51:01 GMT"
      ["server"]=>
      string(6) "Apache"
      ["x-powered-by"]=>
      string(10) "PHP/8.3.30"
      ["expires"]=>
      string(29) "Thu, 19 Nov 1981 08:52:00 GMT"
      ["cache-control"]=>
      string(35) "no-store, no-cache, must-revalidate"
      ["pragma"]=>
      string(8) "no-cache"
      ["link"]=>
      string(67) "<https://blogs.ed.ac.uk/egreen2/wp-json/>; rel="https://api.w.org/""
      ["set-cookie"]=>
      string(132) "spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Thu, 21 May 2026 17:21:01 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly"
      ["last-modified"]=>
      string(29) "Mon, 20 Apr 2026 09:57:28 GMT"
      ["etag"]=>
      string(34) ""4433056675204c526f9cc2cc038c81d8""
      ["vary"]=>
      string(15) "Accept-Encoding"
    }
  }
  ["body"]=>
  string(15797) "<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ed Green Blog</title>
	<atom:link href="https://blogs.ed.ac.uk/egreen2/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.ed.ac.uk/egreen2</link>
	<description></description>
	<lastBuildDate>Mon, 20 Apr 2026 09:57:28 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>PHPUK 2026</title>
		<link>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 15:08:58 +0000</pubDate>
				<category><![CDATA[Conference]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=21</guid>

					<description><![CDATA[This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds. It Depends – […]]]></description>
										<content:encoded><![CDATA[
<p>This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds.</p>



<h2 class="wp-block-heading">It Depends – Gary Hockin</h2>



<p>After a short welcome to the conference (and the new venue), Gary Hockin gave a talk about how  decisions that we make every day have different outcomes based on the context. There are always trade-offs to consider for every choice we make and because one option is not chosen in one instance, it doesn’t mean it is unsuitable for all situations.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/w5Ja7Gysm_w?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Know Your Enemies: Live Exploit of a PHP Engine Security Breach – Alexandre Daubois</h2>



<p>Alexandre presented an interesting talk on real exploits or attempted exploits in PHP. The most interesting example to me was an attempt to add malicious code that would allow executing any code on a server running PHP as long as it’s connected to the internet. This was done by interpreting a specific header on incoming requests as code to run when given a certain prefix. It even made it to a release candidate before it was noticed by other contributors. This was done by exploiting a vulnerability in the version control server that allowed the malicious actor to submit the code changes under a different user. Luckily the code was spotted and removed before becoming widely available in a full release. This also influenced the decision to move the code into GitHub, so maintainers didn’t have to worry as much about the security of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/jXkBWNLUO2M?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Packets, Protocols and PHP: Networking Fundamentals for Developers – Jessica Smith</h2>



<p>This next talk discussed what happens behind the scenes whenever a network request is made over the internet. Jessica covered a lot during the 45 minutes and even though it isn’t knowledge that I’d usually consider a key part to my job, I think it is very useful to understand what is happening in the background when users are accessing your website. It still amazes me how we can send information across the world in seconds (or less) over the internet. Even with an explanation on how data is split into packets and how they are routed, it’s still hard to comprehend.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Z-sYEwWdBrM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">The Four Pillars of Observability – Florian Engelhardt</h2>



<p>Next came a guide to monitoring live applications and how to quickly find when something is wrong with Florian. I found a lot of the tips to be relevant to websites I have worked on within the university such as the Short Courses Platform (SCP). Occasionally we have a bug in the site, and it can be very difficult to find what the actual cause of it is. Using metrics, logging, tracing, and profiling we can get a better idea of what is causing an issue and why it has started happening. As a developer, I’m used to using logs and error messages to get an idea about what is going wrong when something breaks, but Florian gave some interesting ideas that aren’t completely code related like monitoring live sales (or course enrolments for the SCP) and visualising them. If the numbers start to drop rapidly, then something has probably broken which means people can’t use the website properly.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/DVSq54wZL00?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Saving Time by Using a Debugger – Derick Rethans</h2>



<p>Derick gave a demonstration on ways to use Xdebug to improve developer efficiency. Once setup, it can be a useful tool for stepping through PHP code and inspecting the current state of the web application to find out what is happening. Personally, I have used debuggers with C# and C++ code and found it useful there since I don’t have to recompile anything to add in some logs and inspect data. In interpreted languages like PHP, this isn’t something I have considered before, however I will definitely be finding it useful in my future work. Even though some technical issues disrupted the live demonstrations, Derick still managed to inspire me to check out Xdebug for myself and use with both personal and work projects.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/FsHP4zGg4Ss?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Stepping away from the code… but not quite… – Wim Godden</h2>



<p>This was one of my favourite talks of the day from Wim about how stakeholders in a project should approach the code, particularly emphasising when people in management or non-development roles need to <em>step away from the code</em> and let developers do their job. He talked about how people from outside of development teams, especially those with development experience, can often try to dictate the implementation of a feature rather than what the result of having that feature should be which can cause issues with development and often makes the process of adding a feature take longer. Providing high quality user stories that have good coverage of what the users need to be able to do on the application will be far more valuable to developers. He also talked about how the career progression of a developer doesn’t have to be continuously upwards within an organisation. Instead, it’s ok to move up and down or stay where we’re comfortable.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Fa2WywiwFik?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Escaping the Code Maze – Yannick Chenot</h2>



<p>To finish off the day, Yannick discussed how we can make our code easier to understand by reducing the assumptions that can be made. Some languages are already stricter on some of the methods of explaining code such as providing types to variables with static types, whereas languages like PHP don’t enforce many rules like this. He demonstrated a few PHP classes and how the assumptions can be reduced by making simple changes that can greatly improve the readability of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/0emNLJAsfcM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">In conclusion</h2>



<p>There were lots of interesting topic discussed throughout the day and plenty to think about afterwards. I will definitely be looking into Xdebug and different tools for monitoring and observing web applications. I found Wim Godden’s talk about how we should see code in different roles across an organisation interesting. I’d highly recommend watching/listening to the recording as this one is also relevant to less technical people who work with developers.</p>



<h2 class="wp-block-heading">Elephants </h2>



<p>I’ve also started a collection of PHP elephants with two from this conference.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPUK Conference 2025</title>
		<link>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Tue, 19 Aug 2025 11:09:19 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=7</guid>

					<description><![CDATA[In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about. […]]]></description>
										<content:encoded><![CDATA[<p>In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about.</p>
<p>Before splitting into separate tracks, Daniel Terhorst-North gave a talk on behaviour driven development (BDD) and the 20 years of history behind it. He showed how even though it was started by one person, the community has kept it going.</p>
<p>The next speaker I listened to was Wim Godden who spoke about deploying software at both small and large scales and automating the processes behind it as much as possible. He showed a real-world example of deploying software to rental lockers for a Belgium based company. They used a tool called Ansible to remotely connect to each computer and run tasks for setting up the computer, installing software, and running the company’s software that operates the lockers. This talk felt especially relevant to the Short Courses Platform I am currently working on, since we are also using Ansible to deploy the website onto multiple servers and update it when required.</p>
<p>After a quick break and discussion about the talks we’d listened to, I attended a talk about how large codebases can be compared to onions from Katy Ereira. She explained how large systems can be broken down into smaller, more understandable parts and comparing them to different parts of an onion to help understand their function.</p>
<p>Nils Adermann gave a talk on securing software supply chains. When most people add a library to their codebase, they don’t always think about the security of the library itself, and especially not the dependencies required by it. However, a dependency of a dependency of a library used for something as simple as logging messages could have a security vulnerability that affects the whole codebase. Nils talked about ways to protect against that using tools like GitHub Dependabot or Conductor, which Private Packagist is currently developing. He also revealed how many widely used and often open source libraries receive extremely little funding, which can make it difficult finding volunteers to maintain security.</p>
<p>Over lunch, we discussed the speakers we had listened to and spoke to other attendees of the conference.</p>
<p>Next was a talk from Gina Banyard about discovering edge cases in the PHP language. As a PHP core maintainer, they had an interesting perspective on how bugs are diagnosed and discussions about the expected functionality. Some examples of recently addressed bugs were demonstrated, along with how PHP now handles them.</p>
<p>After the final break, I attended a talk about OpenAPI from Lorna Mitchell, which discussed what the OpenAPI specification is and how it can benefit both developers and users of APIs. The specification assists developers in designing APIs and creating extensive documentation for them through a schema written in either JSON or YAML. Since it is language agnostic, it can be applied to any API.</p>
<p>The conference provided some interesting perspectives and ideas that I will be sharing with other colleagues and may encourage us to consider in current or future projects. Many of the talks were not just relevant to PHP, so can be applied to other projects such as the short courses platform, which already uses Ansible for deployment.</p>
<p> </p>
<p>Information about all the speakers and recordings of the talks can be found on the <a href="https://www.phpconference.co.uk/" target="_blank" rel="noopener">PHPUK Conference website</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
"
  ["response"]=>
  array(2) {
    ["code"]=>
    int(200)
    ["message"]=>
    string(2) "OK"
  }
  ["cookies"]=>
  array(3) {
    [0]=>
    object(WP_Http_Cookie)#2626 (7) {
      ["name"]=>
      string(9) "PHPSESSID"
      ["value"]=>
      string(26) "nors53jlva1bud1ll7o4acj7t6"
      ["expires"]=>
      NULL
      ["path"]=>
      string(1) "/"
      ["domain"]=>
      string(14) "blogs.ed.ac.uk"
      ["port"]=>
      NULL
      ["host_only"]=>
      bool(true)
    }
    [1]=>
    object(WP_Http_Cookie)#2628 (7) {
      ["name"]=>
      string(12) "spo_11412_fa"
      ["value"]=>
      string(32) "28eaa669476d6d37877032232b6ac7d3"
      ["expires"]=>
      int(1779384061)
      ["path"]=>
      string(9) "/egreen2/"
      ["domain"]=>
      string(14) "blogs.ed.ac.uk"
      ["port"]=>
      NULL
      ["host_only"]=>
      bool(true)
    }
    [2]=>
    object(WP_Http_Cookie)#2627 (7) {
      ["name"]=>
      string(8) "RCKBMHKB"
      ["value"]=>
      string(85) "027ff8be59-56fd-48CLepkp0b9o1HGrU1Q574TJICuPrTncfEIMKjMSfq12I-3z3NBA1TxcEZWoVIjXHDDoA"
      ["expires"]=>
      NULL
      ["path"]=>
      string(1) "/"
      ["domain"]=>
      string(14) "blogs.ed.ac.uk"
      ["port"]=>
      NULL
      ["host_only"]=>
      bool(true)
    }
  }
  ["filename"]=>
  NULL
  ["http_response"]=>
  object(WP_HTTP_Requests_Response)#2611 (5) {
    ["data"]=>
    NULL
    ["headers"]=>
    NULL
    ["status"]=>
    NULL
    ["response":protected]=>
    object(WpOrg\Requests\Response)#2624 (10) {
      ["body"]=>
      string(15797) "<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ed Green Blog</title>
	<atom:link href="https://blogs.ed.ac.uk/egreen2/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.ed.ac.uk/egreen2</link>
	<description></description>
	<lastBuildDate>Mon, 20 Apr 2026 09:57:28 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>PHPUK 2026</title>
		<link>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 15:08:58 +0000</pubDate>
				<category><![CDATA[Conference]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=21</guid>

					<description><![CDATA[This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds. It Depends – […]]]></description>
										<content:encoded><![CDATA[
<p>This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds.</p>



<h2 class="wp-block-heading">It Depends – Gary Hockin</h2>



<p>After a short welcome to the conference (and the new venue), Gary Hockin gave a talk about how  decisions that we make every day have different outcomes based on the context. There are always trade-offs to consider for every choice we make and because one option is not chosen in one instance, it doesn’t mean it is unsuitable for all situations.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/w5Ja7Gysm_w?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Know Your Enemies: Live Exploit of a PHP Engine Security Breach – Alexandre Daubois</h2>



<p>Alexandre presented an interesting talk on real exploits or attempted exploits in PHP. The most interesting example to me was an attempt to add malicious code that would allow executing any code on a server running PHP as long as it’s connected to the internet. This was done by interpreting a specific header on incoming requests as code to run when given a certain prefix. It even made it to a release candidate before it was noticed by other contributors. This was done by exploiting a vulnerability in the version control server that allowed the malicious actor to submit the code changes under a different user. Luckily the code was spotted and removed before becoming widely available in a full release. This also influenced the decision to move the code into GitHub, so maintainers didn’t have to worry as much about the security of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/jXkBWNLUO2M?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Packets, Protocols and PHP: Networking Fundamentals for Developers – Jessica Smith</h2>



<p>This next talk discussed what happens behind the scenes whenever a network request is made over the internet. Jessica covered a lot during the 45 minutes and even though it isn’t knowledge that I’d usually consider a key part to my job, I think it is very useful to understand what is happening in the background when users are accessing your website. It still amazes me how we can send information across the world in seconds (or less) over the internet. Even with an explanation on how data is split into packets and how they are routed, it’s still hard to comprehend.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Z-sYEwWdBrM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">The Four Pillars of Observability – Florian Engelhardt</h2>



<p>Next came a guide to monitoring live applications and how to quickly find when something is wrong with Florian. I found a lot of the tips to be relevant to websites I have worked on within the university such as the Short Courses Platform (SCP). Occasionally we have a bug in the site, and it can be very difficult to find what the actual cause of it is. Using metrics, logging, tracing, and profiling we can get a better idea of what is causing an issue and why it has started happening. As a developer, I’m used to using logs and error messages to get an idea about what is going wrong when something breaks, but Florian gave some interesting ideas that aren’t completely code related like monitoring live sales (or course enrolments for the SCP) and visualising them. If the numbers start to drop rapidly, then something has probably broken which means people can’t use the website properly.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/DVSq54wZL00?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Saving Time by Using a Debugger – Derick Rethans</h2>



<p>Derick gave a demonstration on ways to use Xdebug to improve developer efficiency. Once setup, it can be a useful tool for stepping through PHP code and inspecting the current state of the web application to find out what is happening. Personally, I have used debuggers with C# and C++ code and found it useful there since I don’t have to recompile anything to add in some logs and inspect data. In interpreted languages like PHP, this isn’t something I have considered before, however I will definitely be finding it useful in my future work. Even though some technical issues disrupted the live demonstrations, Derick still managed to inspire me to check out Xdebug for myself and use with both personal and work projects.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/FsHP4zGg4Ss?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Stepping away from the code… but not quite… – Wim Godden</h2>



<p>This was one of my favourite talks of the day from Wim about how stakeholders in a project should approach the code, particularly emphasising when people in management or non-development roles need to <em>step away from the code</em> and let developers do their job. He talked about how people from outside of development teams, especially those with development experience, can often try to dictate the implementation of a feature rather than what the result of having that feature should be which can cause issues with development and often makes the process of adding a feature take longer. Providing high quality user stories that have good coverage of what the users need to be able to do on the application will be far more valuable to developers. He also talked about how the career progression of a developer doesn’t have to be continuously upwards within an organisation. Instead, it’s ok to move up and down or stay where we’re comfortable.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Fa2WywiwFik?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Escaping the Code Maze – Yannick Chenot</h2>



<p>To finish off the day, Yannick discussed how we can make our code easier to understand by reducing the assumptions that can be made. Some languages are already stricter on some of the methods of explaining code such as providing types to variables with static types, whereas languages like PHP don’t enforce many rules like this. He demonstrated a few PHP classes and how the assumptions can be reduced by making simple changes that can greatly improve the readability of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/0emNLJAsfcM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">In conclusion</h2>



<p>There were lots of interesting topic discussed throughout the day and plenty to think about afterwards. I will definitely be looking into Xdebug and different tools for monitoring and observing web applications. I found Wim Godden’s talk about how we should see code in different roles across an organisation interesting. I’d highly recommend watching/listening to the recording as this one is also relevant to less technical people who work with developers.</p>



<h2 class="wp-block-heading">Elephants </h2>



<p>I’ve also started a collection of PHP elephants with two from this conference.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPUK Conference 2025</title>
		<link>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Tue, 19 Aug 2025 11:09:19 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=7</guid>

					<description><![CDATA[In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about. […]]]></description>
										<content:encoded><![CDATA[<p>In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about.</p>
<p>Before splitting into separate tracks, Daniel Terhorst-North gave a talk on behaviour driven development (BDD) and the 20 years of history behind it. He showed how even though it was started by one person, the community has kept it going.</p>
<p>The next speaker I listened to was Wim Godden who spoke about deploying software at both small and large scales and automating the processes behind it as much as possible. He showed a real-world example of deploying software to rental lockers for a Belgium based company. They used a tool called Ansible to remotely connect to each computer and run tasks for setting up the computer, installing software, and running the company’s software that operates the lockers. This talk felt especially relevant to the Short Courses Platform I am currently working on, since we are also using Ansible to deploy the website onto multiple servers and update it when required.</p>
<p>After a quick break and discussion about the talks we’d listened to, I attended a talk about how large codebases can be compared to onions from Katy Ereira. She explained how large systems can be broken down into smaller, more understandable parts and comparing them to different parts of an onion to help understand their function.</p>
<p>Nils Adermann gave a talk on securing software supply chains. When most people add a library to their codebase, they don’t always think about the security of the library itself, and especially not the dependencies required by it. However, a dependency of a dependency of a library used for something as simple as logging messages could have a security vulnerability that affects the whole codebase. Nils talked about ways to protect against that using tools like GitHub Dependabot or Conductor, which Private Packagist is currently developing. He also revealed how many widely used and often open source libraries receive extremely little funding, which can make it difficult finding volunteers to maintain security.</p>
<p>Over lunch, we discussed the speakers we had listened to and spoke to other attendees of the conference.</p>
<p>Next was a talk from Gina Banyard about discovering edge cases in the PHP language. As a PHP core maintainer, they had an interesting perspective on how bugs are diagnosed and discussions about the expected functionality. Some examples of recently addressed bugs were demonstrated, along with how PHP now handles them.</p>
<p>After the final break, I attended a talk about OpenAPI from Lorna Mitchell, which discussed what the OpenAPI specification is and how it can benefit both developers and users of APIs. The specification assists developers in designing APIs and creating extensive documentation for them through a schema written in either JSON or YAML. Since it is language agnostic, it can be applied to any API.</p>
<p>The conference provided some interesting perspectives and ideas that I will be sharing with other colleagues and may encourage us to consider in current or future projects. Many of the talks were not just relevant to PHP, so can be applied to other projects such as the short courses platform, which already uses Ansible for deployment.</p>
<p> </p>
<p>Information about all the speakers and recordings of the talks can be found on the <a href="https://www.phpconference.co.uk/" target="_blank" rel="noopener">PHPUK Conference website</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
"
      ["raw"]=>
      string(16434) "HTTP/1.1 200 OK
Content-Type: application/rss+xml; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Date: Thu, 21 May 2026 16:51:01 GMT
Server: Apache
X-Powered-By: PHP/8.3.30
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Link: <https://blogs.ed.ac.uk/egreen2/wp-json/>; rel="https://api.w.org/"
Set-Cookie: spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Thu, 21 May 2026 17:21:01 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly
Last-Modified: Mon, 20 Apr 2026 09:57:28 GMT
ETag: "4433056675204c526f9cc2cc038c81d8"
Vary: Accept-Encoding

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ed Green Blog</title>
	<atom:link href="https://blogs.ed.ac.uk/egreen2/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogs.ed.ac.uk/egreen2</link>
	<description></description>
	<lastBuildDate>Mon, 20 Apr 2026 09:57:28 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>PHPUK 2026</title>
		<link>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 15:08:58 +0000</pubDate>
				<category><![CDATA[Conference]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=21</guid>

					<description><![CDATA[This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds. It Depends – […]]]></description>
										<content:encoded><![CDATA[
<p>This February I was back at the PHPUK conference in London. The venue this year was 1 America Square with a historic wall through the middle of one of the rooms. There were three tracks to follow so unfortunately we couldn’t go to all the talks, but managed to cover two thirds.</p>



<h2 class="wp-block-heading">It Depends – Gary Hockin</h2>



<p>After a short welcome to the conference (and the new venue), Gary Hockin gave a talk about how  decisions that we make every day have different outcomes based on the context. There are always trade-offs to consider for every choice we make and because one option is not chosen in one instance, it doesn’t mean it is unsuitable for all situations.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/w5Ja7Gysm_w?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Know Your Enemies: Live Exploit of a PHP Engine Security Breach – Alexandre Daubois</h2>



<p>Alexandre presented an interesting talk on real exploits or attempted exploits in PHP. The most interesting example to me was an attempt to add malicious code that would allow executing any code on a server running PHP as long as it’s connected to the internet. This was done by interpreting a specific header on incoming requests as code to run when given a certain prefix. It even made it to a release candidate before it was noticed by other contributors. This was done by exploiting a vulnerability in the version control server that allowed the malicious actor to submit the code changes under a different user. Luckily the code was spotted and removed before becoming widely available in a full release. This also influenced the decision to move the code into GitHub, so maintainers didn’t have to worry as much about the security of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/jXkBWNLUO2M?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Packets, Protocols and PHP: Networking Fundamentals for Developers – Jessica Smith</h2>



<p>This next talk discussed what happens behind the scenes whenever a network request is made over the internet. Jessica covered a lot during the 45 minutes and even though it isn’t knowledge that I’d usually consider a key part to my job, I think it is very useful to understand what is happening in the background when users are accessing your website. It still amazes me how we can send information across the world in seconds (or less) over the internet. Even with an explanation on how data is split into packets and how they are routed, it’s still hard to comprehend.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Z-sYEwWdBrM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">The Four Pillars of Observability – Florian Engelhardt</h2>



<p>Next came a guide to monitoring live applications and how to quickly find when something is wrong with Florian. I found a lot of the tips to be relevant to websites I have worked on within the university such as the Short Courses Platform (SCP). Occasionally we have a bug in the site, and it can be very difficult to find what the actual cause of it is. Using metrics, logging, tracing, and profiling we can get a better idea of what is causing an issue and why it has started happening. As a developer, I’m used to using logs and error messages to get an idea about what is going wrong when something breaks, but Florian gave some interesting ideas that aren’t completely code related like monitoring live sales (or course enrolments for the SCP) and visualising them. If the numbers start to drop rapidly, then something has probably broken which means people can’t use the website properly.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/DVSq54wZL00?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Saving Time by Using a Debugger – Derick Rethans</h2>



<p>Derick gave a demonstration on ways to use Xdebug to improve developer efficiency. Once setup, it can be a useful tool for stepping through PHP code and inspecting the current state of the web application to find out what is happening. Personally, I have used debuggers with C# and C++ code and found it useful there since I don’t have to recompile anything to add in some logs and inspect data. In interpreted languages like PHP, this isn’t something I have considered before, however I will definitely be finding it useful in my future work. Even though some technical issues disrupted the live demonstrations, Derick still managed to inspire me to check out Xdebug for myself and use with both personal and work projects.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/FsHP4zGg4Ss?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Stepping away from the code… but not quite… – Wim Godden</h2>



<p>This was one of my favourite talks of the day from Wim about how stakeholders in a project should approach the code, particularly emphasising when people in management or non-development roles need to <em>step away from the code</em> and let developers do their job. He talked about how people from outside of development teams, especially those with development experience, can often try to dictate the implementation of a feature rather than what the result of having that feature should be which can cause issues with development and often makes the process of adding a feature take longer. Providing high quality user stories that have good coverage of what the users need to be able to do on the application will be far more valuable to developers. He also talked about how the career progression of a developer doesn’t have to be continuously upwards within an organisation. Instead, it’s ok to move up and down or stay where we’re comfortable.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/Fa2WywiwFik?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Escaping the Code Maze – Yannick Chenot</h2>



<p>To finish off the day, Yannick discussed how we can make our code easier to understand by reducing the assumptions that can be made. Some languages are already stricter on some of the methods of explaining code such as providing types to variables with static types, whereas languages like PHP don’t enforce many rules like this. He demonstrated a few PHP classes and how the assumptions can be reduced by making simple changes that can greatly improve the readability of the code.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" src="about:blank" data-bs-src="https://www.youtube.com/embed/0emNLJAsfcM?feature=oembed" width="660" height="544" frameborder="0" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">In conclusion</h2>



<p>There were lots of interesting topic discussed throughout the day and plenty to think about afterwards. I will definitely be looking into Xdebug and different tools for monitoring and observing web applications. I found Wim Godden’s talk about how we should see code in different roles across an organisation interesting. I’d highly recommend watching/listening to the recording as this one is also relevant to less technical people who work with developers.</p>



<h2 class="wp-block-heading">Elephants </h2>



<p>I’ve also started a collection of PHP elephants with two from this conference.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2026/04/17/phpuk-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPUK Conference 2025</title>
		<link>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/</link>
					<comments>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/#respond</comments>
		
		<dc:creator><![CDATA[Edward Green]]></dc:creator>
		<pubDate>Tue, 19 Aug 2025 11:09:19 +0000</pubDate>
				<category><![CDATA[Uncategorised]]></category>
		<guid isPermaLink="false">https://blogs.ed.ac.uk/egreen2/?p=7</guid>

					<description><![CDATA[In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about. […]]]></description>
										<content:encoded><![CDATA[<p>In February, a colleague and I got the chance to attend the PHPUK conference 2025. Throughout the day, we attended talks from various contributors to the PHP community. The conference had two tracks, which allowed us to split up and cover as much as possible with plenty of breaks to discuss what we’ve learnt about.</p>
<p>Before splitting into separate tracks, Daniel Terhorst-North gave a talk on behaviour driven development (BDD) and the 20 years of history behind it. He showed how even though it was started by one person, the community has kept it going.</p>
<p>The next speaker I listened to was Wim Godden who spoke about deploying software at both small and large scales and automating the processes behind it as much as possible. He showed a real-world example of deploying software to rental lockers for a Belgium based company. They used a tool called Ansible to remotely connect to each computer and run tasks for setting up the computer, installing software, and running the company’s software that operates the lockers. This talk felt especially relevant to the Short Courses Platform I am currently working on, since we are also using Ansible to deploy the website onto multiple servers and update it when required.</p>
<p>After a quick break and discussion about the talks we’d listened to, I attended a talk about how large codebases can be compared to onions from Katy Ereira. She explained how large systems can be broken down into smaller, more understandable parts and comparing them to different parts of an onion to help understand their function.</p>
<p>Nils Adermann gave a talk on securing software supply chains. When most people add a library to their codebase, they don’t always think about the security of the library itself, and especially not the dependencies required by it. However, a dependency of a dependency of a library used for something as simple as logging messages could have a security vulnerability that affects the whole codebase. Nils talked about ways to protect against that using tools like GitHub Dependabot or Conductor, which Private Packagist is currently developing. He also revealed how many widely used and often open source libraries receive extremely little funding, which can make it difficult finding volunteers to maintain security.</p>
<p>Over lunch, we discussed the speakers we had listened to and spoke to other attendees of the conference.</p>
<p>Next was a talk from Gina Banyard about discovering edge cases in the PHP language. As a PHP core maintainer, they had an interesting perspective on how bugs are diagnosed and discussions about the expected functionality. Some examples of recently addressed bugs were demonstrated, along with how PHP now handles them.</p>
<p>After the final break, I attended a talk about OpenAPI from Lorna Mitchell, which discussed what the OpenAPI specification is and how it can benefit both developers and users of APIs. The specification assists developers in designing APIs and creating extensive documentation for them through a schema written in either JSON or YAML. Since it is language agnostic, it can be applied to any API.</p>
<p>The conference provided some interesting perspectives and ideas that I will be sharing with other colleagues and may encourage us to consider in current or future projects. Many of the talks were not just relevant to PHP, so can be applied to other projects such as the short courses platform, which already uses Ansible for deployment.</p>
<p> </p>
<p>Information about all the speakers and recordings of the talks can be found on the <a href="https://www.phpconference.co.uk/" target="_blank" rel="noopener">PHPUK Conference website</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogs.ed.ac.uk/egreen2/2025/08/19/phpuk-conference-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
"
      ["headers"]=>
      object(WpOrg\Requests\Response\Headers)#2623 (1) {
        ["data":protected]=>
        array(12) {
          ["content-type"]=>
          array(1) {
            [0]=>
            string(34) "application/rss+xml; charset=UTF-8"
          }
          ["date"]=>
          array(1) {
            [0]=>
            string(29) "Thu, 21 May 2026 16:51:01 GMT"
          }
          ["server"]=>
          array(1) {
            [0]=>
            string(6) "Apache"
          }
          ["x-powered-by"]=>
          array(1) {
            [0]=>
            string(10) "PHP/8.3.30"
          }
          ["expires"]=>
          array(1) {
            [0]=>
            string(29) "Thu, 19 Nov 1981 08:52:00 GMT"
          }
          ["cache-control"]=>
          array(1) {
            [0]=>
            string(35) "no-store, no-cache, must-revalidate"
          }
          ["pragma"]=>
          array(1) {
            [0]=>
            string(8) "no-cache"
          }
          ["link"]=>
          array(1) {
            [0]=>
            string(67) "<https://blogs.ed.ac.uk/egreen2/wp-json/>; rel="https://api.w.org/""
          }
          ["set-cookie"]=>
          array(1) {
            [0]=>
            string(132) "spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Thu, 21 May 2026 17:21:01 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly"
          }
          ["last-modified"]=>
          array(1) {
            [0]=>
            string(29) "Mon, 20 Apr 2026 09:57:28 GMT"
          }
          ["etag"]=>
          array(1) {
            [0]=>
            string(34) ""4433056675204c526f9cc2cc038c81d8""
          }
          ["vary"]=>
          array(1) {
            [0]=>
            string(15) "Accept-Encoding"
          }
        }
      }
      ["status_code"]=>
      int(200)
      ["protocol_version"]=>
      float(1.1)
      ["success"]=>
      bool(true)
      ["redirects"]=>
      int(1)
      ["url"]=>
      string(36) "https://blogs.ed.ac.uk/egreen2/feed/"
      ["history"]=>
      array(1) {
        [0]=>
        object(WpOrg\Requests\Response)#2613 (10) {
          ["body"]=>
          string(0) ""
          ["raw"]=>
          string(834) "HTTP/1.1 301 Moved Permanently
Content-Type: application/rss+xml; charset=UTF-8
Content-Length: 0
Connection: close
Date: Thu, 21 May 2026 16:51:01 GMT
Server: Apache
X-Powered-By: PHP/8.3.30
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
X-Redirect-By: WordPress
Set-Cookie: PHPSESSID=nors53jlva1bud1ll7o4acj7t6; path=/; secure; HttpOnly
Set-Cookie: spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Thu, 21 May 2026 17:21:01 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly
Last-Modified: Mon, 20 Apr 2026 09:57:28 GMT
ETag: "4433056675204c526f9cc2cc038c81d8"
Location: https://blogs.ed.ac.uk/egreen2/feed/
Set-Cookie: RCKBMHKB=027ff8be59-56fd-48CLepkp0b9o1HGrU1Q574TJICuPrTncfEIMKjMSfq12I-3z3NBA1TxcEZWoVIjXHDDoA; path=/; SameSite=None; Secure

"
          ["headers"]=>
          object(WpOrg\Requests\Response\Headers)#2614 (1) {
            ["data":protected]=>
            array(13) {
              ["content-type"]=>
              array(1) {
                [0]=>
                string(34) "application/rss+xml; charset=UTF-8"
              }
              ["content-length"]=>
              array(1) {
                [0]=>
                string(1) "0"
              }
              ["date"]=>
              array(1) {
                [0]=>
                string(29) "Thu, 21 May 2026 16:51:01 GMT"
              }
              ["server"]=>
              array(1) {
                [0]=>
                string(6) "Apache"
              }
              ["x-powered-by"]=>
              array(1) {
                [0]=>
                string(10) "PHP/8.3.30"
              }
              ["expires"]=>
              array(1) {
                [0]=>
                string(29) "Thu, 19 Nov 1981 08:52:00 GMT"
              }
              ["cache-control"]=>
              array(1) {
                [0]=>
                string(35) "no-store, no-cache, must-revalidate"
              }
              ["pragma"]=>
              array(1) {
                [0]=>
                string(8) "no-cache"
              }
              ["x-redirect-by"]=>
              array(1) {
                [0]=>
                string(9) "WordPress"
              }
              ["set-cookie"]=>
              array(3) {
                [0]=>
                string(62) "PHPSESSID=nors53jlva1bud1ll7o4acj7t6; path=/; secure; HttpOnly"
                [1]=>
                string(132) "spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Thu, 21 May 2026 17:21:01 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly"
                [2]=>
                string(125) "RCKBMHKB=027ff8be59-56fd-48CLepkp0b9o1HGrU1Q574TJICuPrTncfEIMKjMSfq12I-3z3NBA1TxcEZWoVIjXHDDoA; path=/; SameSite=None; Secure"
              }
              ["last-modified"]=>
              array(1) {
                [0]=>
                string(29) "Mon, 20 Apr 2026 09:57:28 GMT"
              }
              ["etag"]=>
              array(1) {
                [0]=>
                string(34) ""4433056675204c526f9cc2cc038c81d8""
              }
              ["location"]=>
              array(1) {
                [0]=>
                string(36) "https://blogs.ed.ac.uk/egreen2/feed/"
              }
            }
          }
          ["status_code"]=>
          int(301)
          ["protocol_version"]=>
          float(1.1)
          ["success"]=>
          bool(false)
          ["redirects"]=>
          int(0)
          ["url"]=>
          string(35) "https://blogs.ed.ac.uk/egreen2/feed"
          ["history"]=>
          array(0) {
          }
          ["cookies"]=>
          object(WpOrg\Requests\Cookie\Jar)#2610 (1) {
            ["cookies":protected]=>
            array(3) {
              ["PHPSESSID"]=>
              object(WpOrg\Requests\Cookie)#2618 (5) {
                ["name"]=>
                string(9) "PHPSESSID"
                ["value"]=>
                string(26) "nors53jlva1bud1ll7o4acj7t6"
                ["attributes"]=>
                object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2617 (1) {
                  ["data":protected]=>
                  array(4) {
                    ["path"]=>
                    string(1) "/"
                    ["secure"]=>
                    bool(true)
                    ["httponly"]=>
                    bool(true)
                    ["domain"]=>
                    string(14) "blogs.ed.ac.uk"
                  }
                }
                ["flags"]=>
                array(4) {
                  ["creation"]=>
                  int(1779382261)
                  ["last-access"]=>
                  int(1779382261)
                  ["persistent"]=>
                  bool(false)
                  ["host-only"]=>
                  bool(true)
                }
                ["reference_time"]=>
                int(1779382261)
              }
              ["spo_11412_fa"]=>
              object(WpOrg\Requests\Cookie)#2619 (5) {
                ["name"]=>
                string(12) "spo_11412_fa"
                ["value"]=>
                string(32) "28eaa669476d6d37877032232b6ac7d3"
                ["attributes"]=>
                object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2625 (1) {
                  ["data":protected]=>
                  array(6) {
                    ["expires"]=>
                    int(1779384061)
                    ["max-age"]=>
                    int(1779384061)
                    ["path"]=>
                    string(9) "/egreen2/"
                    ["secure"]=>
                    bool(true)
                    ["httponly"]=>
                    bool(true)
                    ["domain"]=>
                    string(14) "blogs.ed.ac.uk"
                  }
                }
                ["flags"]=>
                array(4) {
                  ["creation"]=>
                  int(1779382261)
                  ["last-access"]=>
                  int(1779382261)
                  ["persistent"]=>
                  bool(false)
                  ["host-only"]=>
                  bool(true)
                }
                ["reference_time"]=>
                int(1779382261)
              }
              ["RCKBMHKB"]=>
              object(WpOrg\Requests\Cookie)#2621 (5) {
                ["name"]=>
                string(8) "RCKBMHKB"
                ["value"]=>
                string(85) "027ff8be59-56fd-48CLepkp0b9o1HGrU1Q574TJICuPrTncfEIMKjMSfq12I-3z3NBA1TxcEZWoVIjXHDDoA"
                ["attributes"]=>
                object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2622 (1) {
                  ["data":protected]=>
                  array(4) {
                    ["path"]=>
                    string(1) "/"
                    ["samesite"]=>
                    string(4) "None"
                    ["secure"]=>
                    bool(true)
                    ["domain"]=>
                    string(14) "blogs.ed.ac.uk"
                  }
                }
                ["flags"]=>
                array(4) {
                  ["creation"]=>
                  int(1779382261)
                  ["last-access"]=>
                  int(1779382261)
                  ["persistent"]=>
                  bool(false)
                  ["host-only"]=>
                  bool(true)
                }
                ["reference_time"]=>
                int(1779382261)
              }
            }
          }
        }
      }
      ["cookies"]=>
      object(WpOrg\Requests\Cookie\Jar)#2610 (1) {
        ["cookies":protected]=>
        array(3) {
          ["PHPSESSID"]=>
          object(WpOrg\Requests\Cookie)#2618 (5) {
            ["name"]=>
            string(9) "PHPSESSID"
            ["value"]=>
            string(26) "nors53jlva1bud1ll7o4acj7t6"
            ["attributes"]=>
            object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2617 (1) {
              ["data":protected]=>
              array(4) {
                ["path"]=>
                string(1) "/"
                ["secure"]=>
                bool(true)
                ["httponly"]=>
                bool(true)
                ["domain"]=>
                string(14) "blogs.ed.ac.uk"
              }
            }
            ["flags"]=>
            array(4) {
              ["creation"]=>
              int(1779382261)
              ["last-access"]=>
              int(1779382261)
              ["persistent"]=>
              bool(false)
              ["host-only"]=>
              bool(true)
            }
            ["reference_time"]=>
            int(1779382261)
          }
          ["spo_11412_fa"]=>
          object(WpOrg\Requests\Cookie)#2619 (5) {
            ["name"]=>
            string(12) "spo_11412_fa"
            ["value"]=>
            string(32) "28eaa669476d6d37877032232b6ac7d3"
            ["attributes"]=>
            object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2625 (1) {
              ["data":protected]=>
              array(6) {
                ["expires"]=>
                int(1779384061)
                ["max-age"]=>
                int(1779384061)
                ["path"]=>
                string(9) "/egreen2/"
                ["secure"]=>
                bool(true)
                ["httponly"]=>
                bool(true)
                ["domain"]=>
                string(14) "blogs.ed.ac.uk"
              }
            }
            ["flags"]=>
            array(4) {
              ["creation"]=>
              int(1779382261)
              ["last-access"]=>
              int(1779382261)
              ["persistent"]=>
              bool(false)
              ["host-only"]=>
              bool(true)
            }
            ["reference_time"]=>
            int(1779382261)
          }
          ["RCKBMHKB"]=>
          object(WpOrg\Requests\Cookie)#2621 (5) {
            ["name"]=>
            string(8) "RCKBMHKB"
            ["value"]=>
            string(85) "027ff8be59-56fd-48CLepkp0b9o1HGrU1Q574TJICuPrTncfEIMKjMSfq12I-3z3NBA1TxcEZWoVIjXHDDoA"
            ["attributes"]=>
            object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2622 (1) {
              ["data":protected]=>
              array(4) {
                ["path"]=>
                string(1) "/"
                ["samesite"]=>
                string(4) "None"
                ["secure"]=>
                bool(true)
                ["domain"]=>
                string(14) "blogs.ed.ac.uk"
              }
            }
            ["flags"]=>
            array(4) {
              ["creation"]=>
              int(1779382261)
              ["last-access"]=>
              int(1779382261)
              ["persistent"]=>
              bool(false)
              ["host-only"]=>
              bool(true)
            }
            ["reference_time"]=>
            int(1779382261)
          }
        }
      }
    }
    ["filename":protected]=>
    NULL
  }
}
Diag| Considering item [https://blogs.ed.ac.uk/egreen2/?p=21] "PHPUK 2026"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/egreen2/?p=21'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/egreen2/?p=21] "PHPUK 2026" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/egreen2/?p=7] "PHPUK Conference 2025"
Diag========| SQL: SELECT   wp_30_posts.ID, wp_30_posts.guid, wp_30_posts.post_modified_gmt, wp_30_posts.post_name
					 FROM wp_30_posts  LEFT JOIN wp_30_postmeta EO_META ON EO_META.meta_key = 'ease_only' AND EO_META.post_id = wp_30_posts.ID 
					 WHERE 1=1  AND ((guid = 'https://blogs.ed.ac.uk/egreen2/?p=7'))
					 
					 ORDER BY wp_30_posts.post_date DESC
					 
Diag====| Item [https://blogs.ed.ac.uk/egreen2/?p=7] "PHPUK Conference 2025" is a NEW POST.
Diag========| CHECK existence of category: "Uncategorised" with result: null
Diag========| CHECK existence of post_tag: "Uncategorised" with result: null
Diag========| CHECKED familiarity of term "Uncategorised" across {"1":"category","2":"post_tag"} with result: false
Diag====| Assigned category "Uncategorised" by feed; checking {"1":"category","2":"post_tag"} with result: null
Diag====| Category: MAPPED term names ["Uncategorised"] to IDs: null
Diag====| Category: MAPPED term names [] to IDs: null
Digital Learning Applications and Media – Page 22 – All the edtech shenanigans that's fit to print
Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

A full-scale accessibility audit is costly, time consuming and most importantly, necessary. Additional regulations introduced in 2018 require public bodies, such as a university, to include accessibility statements on all of their sites.

Reading Time: 3 minutes   It is hyperreal to describe the office workplaces of the early 21st century – that now lie derelict – as being centres for authentic connection between workers in any traditional sense. For decades open-plan office decorum had restricted conversations at desks, professional or casual. Limited meeting spaces led to quick fire stand-ups in corridors […]

Day (I have lost count) in the big brother house and I am starting to struggle. It’s been a slightly odd 33 days! I started working from home on the 16th March and my daily routine is in the bin. Before I would be getting home at 1700 and running after children, getting ready to […]

Three paintings hung on wall (bird, flower, butterfly) and easel on floor (owl).

Fancy curating your own University of Edinburgh (UoE) virtual exhibition in Nintendo’s Animal Crossing game? Good news, Getty have kindly shared an art generator tool that integrates with over 40,000 images published by the University’s Centre for Research Collections (CRC) under a Creative Commons Attribution licence (CC BY). What is Animal Crossing? In case you’re […]

It’s been a little while since we spoke about the data retention policy implementation within Learn. As with many aspects of work the pandemic overtook things and the project timelines were shifted slightly, rightly so. Now after some a little time away we intend to make this live towards the end of the month but […]

I was acutely aware that our previous working practices would not transition to a fully remote setup. We are a small team of three developers who are already semi-remote.

These are unique days in which we are trying to evolve and adapt to a situation that is unpredictable and unrelenting to everyone. The current pandemic is generating stresses in both professessional and domestic lives with the only certainty being that in the short term are lives will be flipped and we all be affected […]

Chinese computer scientist Xia Peisu at National Chiao Tung University Chongqing campus.

Reading Time: 1 minute To celebrate the last day of Women’s History Month we’re sharing this brand new colouring book illustration. Chinese computer scientist and educator Xia Peisu (夏培肃) (1923 – 2014) has been hailed “the mother of computer science in China.”  Download, reuse and share this openly licensed image from our We Have Great Stuff Flickr album. 👩‍🎨👉 […]

Yesterday was my first day working from home in my new office (corner of dining table). As someone living with insulin-dependent diabetes I have an increased risk of severe illness from coronavirus and according to current government guidance should be particularly stringent in following social distancing measures, including significantly limiting face-to-face interaction with friends and family […]

I’ve been a technologist for more than 20 years now. Although my brain is definitely slower to pick up new technologies now the one thing I do bring to my role is experience.  Most often that not, I’ve seen a similar tool or a similar issue or a similar time.  …

Diag| Memory: Current usage: 190 MB
Diag| Memory: Peak usage: 190 MB
css.php

Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.

  Cancel