Diag====| HTTP [https://blogs.ed.ac.uk/egreen2/feed] ⌉ array(6) {
["headers"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2405 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
string(34) "application/rss+xml; charset=UTF-8"
["date"]=>
string(29) "Fri, 29 May 2026 20:36:02 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=Fri, 29 May 2026 21:06:02 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)#2419 (7) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "tr4o6um96v3c1d4g2u8hvqudpp"
["expires"]=>
NULL
["path"]=>
string(1) "/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[1]=>
object(WP_Http_Cookie)#2421 (7) {
["name"]=>
string(12) "spo_11412_fa"
["value"]=>
string(32) "28eaa669476d6d37877032232b6ac7d3"
["expires"]=>
int(1780088762)
["path"]=>
string(9) "/egreen2/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[2]=>
object(WP_Http_Cookie)#2420 (7) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-48y8ubTw_lhO40WOulYK-OH7M75bgXaqB3IwBr2BwAioZUwZNzdQIEMpJvBni1LDXRYMM"
["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)#2404 (5) {
["data"]=>
NULL
["headers"]=>
NULL
["status"]=>
NULL
["response":protected]=>
object(WpOrg\Requests\Response)#2417 (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: Fri, 29 May 2026 20:36:02 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=Fri, 29 May 2026 21:06:02 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)#2416 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
array(1) {
[0]=>
string(34) "application/rss+xml; charset=UTF-8"
}
["date"]=>
array(1) {
[0]=>
string(29) "Fri, 29 May 2026 20:36:02 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=Fri, 29 May 2026 21:06:02 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)#2406 (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: Fri, 29 May 2026 20:36:02 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=tr4o6um96v3c1d4g2u8hvqudpp; path=/; secure; HttpOnly
Set-Cookie: spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Fri, 29 May 2026 21:06:02 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-48y8ubTw_lhO40WOulYK-OH7M75bgXaqB3IwBr2BwAioZUwZNzdQIEMpJvBni1LDXRYMM; path=/; SameSite=None; Secure
"
["headers"]=>
object(WpOrg\Requests\Response\Headers)#2407 (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) "Fri, 29 May 2026 20:36:02 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=tr4o6um96v3c1d4g2u8hvqudpp; path=/; secure; HttpOnly"
[1]=>
string(132) "spo_11412_fa=28eaa669476d6d37877032232b6ac7d3; expires=Fri, 29 May 2026 21:06:02 GMT; Max-Age=1800; path=/egreen2/; Secure; HttpOnly"
[2]=>
string(125) "RCKBMHKB=027ff8be59-56fd-48y8ubTw_lhO40WOulYK-OH7M75bgXaqB3IwBr2BwAioZUwZNzdQIEMpJvBni1LDXRYMM; 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)#2403 (1) {
["cookies":protected]=>
array(3) {
["PHPSESSID"]=>
object(WpOrg\Requests\Cookie)#2411 (5) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "tr4o6um96v3c1d4g2u8hvqudpp"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2410 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["spo_11412_fa"]=>
object(WpOrg\Requests\Cookie)#2412 (5) {
["name"]=>
string(12) "spo_11412_fa"
["value"]=>
string(32) "28eaa669476d6d37877032232b6ac7d3"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2418 (1) {
["data":protected]=>
array(6) {
["expires"]=>
int(1780088762)
["max-age"]=>
int(1780088762)
["path"]=>
string(9) "/egreen2/"
["secure"]=>
bool(true)
["httponly"]=>
bool(true)
["domain"]=>
string(14) "blogs.ed.ac.uk"
}
}
["flags"]=>
array(4) {
["creation"]=>
int(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["RCKBMHKB"]=>
object(WpOrg\Requests\Cookie)#2414 (5) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-48y8ubTw_lhO40WOulYK-OH7M75bgXaqB3IwBr2BwAioZUwZNzdQIEMpJvBni1LDXRYMM"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2415 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
}
}
}
}
["cookies"]=>
object(WpOrg\Requests\Cookie\Jar)#2403 (1) {
["cookies":protected]=>
array(3) {
["PHPSESSID"]=>
object(WpOrg\Requests\Cookie)#2411 (5) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "tr4o6um96v3c1d4g2u8hvqudpp"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2410 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["spo_11412_fa"]=>
object(WpOrg\Requests\Cookie)#2412 (5) {
["name"]=>
string(12) "spo_11412_fa"
["value"]=>
string(32) "28eaa669476d6d37877032232b6ac7d3"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2418 (1) {
["data":protected]=>
array(6) {
["expires"]=>
int(1780088762)
["max-age"]=>
int(1780088762)
["path"]=>
string(9) "/egreen2/"
["secure"]=>
bool(true)
["httponly"]=>
bool(true)
["domain"]=>
string(14) "blogs.ed.ac.uk"
}
}
["flags"]=>
array(4) {
["creation"]=>
int(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["RCKBMHKB"]=>
object(WpOrg\Requests\Cookie)#2414 (5) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-48y8ubTw_lhO40WOulYK-OH7M75bgXaqB3IwBr2BwAioZUwZNzdQIEMpJvBni1LDXRYMM"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2415 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
}
}
}
["filename":protected]=>
NULL
}
}
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========| 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
Diag====| HTTP [https://blogs.ed.ac.uk/lramutsa/feed/] ⌉ array(6) {
["headers"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2427 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
string(34) "application/rss+xml; charset=UTF-8"
["date"]=>
string(29) "Fri, 29 May 2026 20:36:02 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(68) "<https://blogs.ed.ac.uk/lramutsa/wp-json/>; rel="https://api.w.org/""
["set-cookie"]=>
array(3) {
[0]=>
string(62) "PHPSESSID=1vc0uu2r7ahb37iv7jdcg6ggmh; path=/; secure; HttpOnly"
[1]=>
string(132) "spo_9865_fa=ed90b7d8fac126105541600d5650d741; expires=Fri, 29 May 2026 21:06:02 GMT; Max-Age=1800; path=/lramutsa/; Secure; HttpOnly"
[2]=>
string(125) "RCKBMHKB=027ff8be59-56fd-487EBWRwTvlRuEhh6jSvIzBRc7QmdYFVS8Orogmz0MzZZbmogz2Eyn5hN1GgukfGg8hBA; path=/; SameSite=None; Secure"
}
["last-modified"]=>
string(29) "Fri, 27 Mar 2026 13:01:18 GMT"
["etag"]=>
string(34) ""0e0241b0d0da1df953c03c1bff9fac51""
["vary"]=>
string(15) "Accept-Encoding"
}
}
["body"]=>
string(17543) "<?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>Leopold Ramutsamaya’s Blog</title>
<atom:link href="https://blogs.ed.ac.uk/lramutsa/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/lramutsa</link>
<description>Leopold Ramutsamaya's Blog for personal use</description>
<lastBuildDate>Fri, 27 Mar 2026 13:01:18 +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>It depends!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 27 Mar 2026 09:01:25 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=57</guid>
<description><![CDATA[I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees. We got to connect with experienced developers, newcomers […]]]></description>
<content:encoded><![CDATA[<p>I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees.</p>
<p>We got to connect with experienced developers, newcomers and speakers, sharing ideas, concerns and developments across the developer community. This year, the speakers covered a wide range of technical topics, from seasoned open-source contributors like Sebastian Bergmann (the creator of PHPUnit), new product launches like Simon Hamp (the creator of NativePhp), performance enthusiasts like Volker Dusch (PHP 8.5 Release Manager) and long-time PHP contributors like Sara Golemon (PHP release manager at the PHP Foundation).</p>
<p>With so many fascinating and insightful talks, Gary Hockin’s talk on technical trade-offs really stood out to me. His talk, ‘It Depends’, aimed to explain why tech experts rarely give a straightforward ‘yes or no’ answer. It showed that every choice involves a trade-off – a ‘slider’ where getting one benefit often means giving up something else. I have had conversations with colleagues who are exploring tools to make their daily tasks easier, from visualising data within Learn, optimising queries to the database or setting up an application to try out a new AI tool – the question always is, which tool is the best?</p>
<p>Hockin’s main point is that there are no set answers when it comes to technology. Knowing that ‘it depends’ isn’t just a way out, but rather the first step towards making better, more thoughtful choices. It often means realising that every decision we make usually doesn’t have a single ‘right’ answer, rather well-considered compromises. Instead of looking for a one-size-fits-all ‘best’ solution, successful teams learn to ask more specific questions. Picking a programming language, database or framework can sometimes feel like choosing the ‘best’ car. A car that’s perfect for a racetrack won’t work for a snowy driveway and probably won’t be good for a school run with four kids. The same idea applies to our everyday jobs and decisions that come with it. The ‘best’ choice depends entirely on the situation, like the team’s experience, how much money and time we have and what the project needs to achieve.</p>
<p>From picking the best room to book for your non-anchor day at FH to deciding what lunch to have at the ISG Spring event, we need to ask the right questions and have the complete view of the slider before making the right choice. As i retreat to my everyday tasks and the decisions I must make, I am more conscious to seek the full picture, assess the slider in its entirety to ensure I have a good understanding of all the negatives and positives and ask the right questions. It is not as easy as it sounds, but with practice and constant refinement, “it depends” becomes a part of every decision we need to make.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-27" itemprop="dateModified">Mar 27, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Lights, Camera, Learn!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Sun, 02 Mar 2025 19:56:58 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=32</guid>
<description><![CDATA[I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers. The conference had two tracks concurrently running most of the […]]]></description>
<content:encoded><![CDATA[<p><img decoding="async" class="size-medium wp-image-35 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg" alt="PHP UK Conference 2025" width="300" height="100" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1024x341.jpeg 1024w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-768x256.jpeg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1440x480.jpeg 1440w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference.jpeg 1500w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p class="p1">I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers.</p>
<p class="p1">The conference had two tracks concurrently running most of the day, so you could choose which talks were most interesting. Luckily, I was there with a work colleague, so we were able to cover both tracks and not miss out on any talks. I have highlighted some of the talks that really inspired me to think differently and unlock a toolkit of ideas to level up my developer skills.</p>
<p class="p1">Craig Francis talked about “Ending Injection Vulnerabilities,” a topic that every developer should know about. Even though PHP has improved, SQL injection attacks still happen a lot. Craig showed us real-world examples that were used in production which left many reviewing their code bases. He stressed that languages make it easy to add vulnerable code with just one line of code (which works), but it’s harder to make secure code with several lines of code – something that should change by making secure code just as easy to write as insecure one. He also said that escaping inputs or using Object-Relational Mapping (ORM like Eloquent) isn’t enough. Instead, we should take a “zero-trust” approach to any data that users send and make sure that security principles like using prepared statements and validating every user input are followed. On top of that, we should make sure that we actually use the functions provided by these ORMs as they’re meant to be used, so we don’t open backdoors on otherwise secure code.</p>
<p class="p1">Liam Hammett’s session, “Beyond Requests: Supercharging API Monitoring with Guzzle Middleware,” was a real eye-opener for me. I have used Guzzle before, but Liam showed me how to use middleware to log requests, view traces, and observe metrics. This way, I can easily monitor my application’s performance. He also showed us how to use Graphana, Tempo, Prometheus, and Loki to monitor different log levels and API telemetry from our application. We have a few apps that could really benefit from this kind of logging and monitoring, like our Class Group Builder, Bulk unenrol tool or our infrastructure servers that currently host the Short Courses Platform.</p>
<p class="p1">Ivo Lukac’s shared “Learn to Appreciate Legacy,” a heartwarming story about a fictional developer named Zed, was also really moving. Through Zed’s struggles with a messy and old codebase, Ivo showed us how legacy code often contains important business logic and institutional knowledge. It hit home for me because I have often complained about “legacy code” that we have running on some of our old apps, instead of seeing its value. Ivo’s positive outlook has me rethinking how I approach maintenance work. He shared some strategies for maintaining and refactoring such code without breaking everything and leaving every file that you’ve worked on better than you found it. The lesson? Legacy code is just code that’s been pushed to production!</p>
<p class="p1">Finally, Kevin Dunglas closed off the talks with “Give Your PHP Apps Superpowers with FrankenPHP”. This modern PHP server, built on Caddy, handles concurrency easily and supports real-time features out of the box. It also boosts performance by preloading classes. The “worker mode” was the coolest part for me, as it lets you run persistent processes for tasks like queued jobs without external services. I can’t wait to try it on a side project, maybe a chat app, and see how it simplifies my workflow. As far as I could tell, for developers, it’s a game-changer, combining PHP’s simplicity with the enterprise-grade power of Go.</p>
<p class="p1">With so many exciting talks happening at the same time on two tracks, it’s easy to miss out on others. It would be awesome if the organisers could split the talks over two days so everyone can hear everything. On the bright side, this conference made me realise that PHP is still evolving and there’s always something new and exciting coming from the community.</p>
<p class="p1">As I get back to my projects, I’m inspired to pay closer attention to every input, monitor APIs smartly, respect legacy code, and use tools that push PHP to its limits. Conferences aren’t just about learning new tricks—they remind us why we love this craft. We have the chance to build a better world, one line of code at a time!</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-03-02" itemprop="dateModified">Mar 2, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>A day in the life of an eLearning Systems Developer</title>
<link>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 26 Jan 2024 14:10:31 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<category><![CDATA[leopold ramutsamaya]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=9</guid>
<description><![CDATA[As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous […]]]></description>
<content:encoded><![CDATA[<p style="text-align: left"><img loading="lazy" decoding="async" class="size-medium wp-image-28 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg" alt="Leopold Ramutsamaya Photo" width="300" height="300" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-150x150.jpg 150w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-768x768.jpg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo.jpg 960w" sizes="auto, (max-width: 300px) 100vw, 300px" />As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous learning.</p>
<p style="text-align: left">The day kicks off with catching up on both personal and team support emails. This ensures I am aware of any potential challenges or issues that may shape my workday. Whether it’s a student seeking support or a system alert for an application running out of storage, addressing these promptly ensures a smooth workflow. Following this, our daily team scrum meetings provide a platform for brief but vital discussion on completed tasks, ongoing work, and potential roadblocks. These meetings help the team keep on tabs on all the work at hand and the progress being made, as well as offer help on any issues you are facing – more often than not, someone else may have faced similar issue and already have a solution or a way to handle the issue.</p>
<p style="text-align: left">With the morning meetings concluded, the day unfolds into a solo venture of coding and project planning for the rest of the day – the ability to manage and prioritise your own work becomes very crucial. Working with sprint tickets, our team follows a meticulous process that includes peer code review and writing of automated tests. This not only enhances code quality by minimizing errors but also provides a unique opportunity for professional growth as different viewpoints and solutions emerge during code reviews, creating a fertile ground for the exchange of ideas. Writing automated tests ensures that new features align with specifications without disrupting existing logic.</p>
<p style="text-align: left">Reflection becomes a crucial part of the daily routine, providing insights into lessons learned, challenges faced, and opportunities for improvement. In the ever-evolving realm of software development, challenges serve as stepping stones for professional growth. Crucially, the supportive ecosystem within the team and the section at large is the cornerstone of our success. Knowing that assistance is just an inquiry away fosters a collaborative spirit, making the complex web of software development more manageable.</p>
<p style="text-align: left">One of the most rewarding aspects of my job is the opportunity to work on a multitude of applications, employing various technologies and catering to different stakeholders across the university. This diversity exposes me to processes beyond my immediate scope, allowing me to contribute to the resolution of challenges faced by staff and students throughout their daily routines. Each day is a unique opportunity to shape the digital future of education, one line of code at a time.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2024-01-26" itemprop="dateModified">Jan 26, 2024</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/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)#2439 (7) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "1vc0uu2r7ahb37iv7jdcg6ggmh"
["expires"]=>
NULL
["path"]=>
string(1) "/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[1]=>
object(WP_Http_Cookie)#2438 (7) {
["name"]=>
string(11) "spo_9865_fa"
["value"]=>
string(32) "ed90b7d8fac126105541600d5650d741"
["expires"]=>
int(1780088762)
["path"]=>
string(10) "/lramutsa/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[2]=>
object(WP_Http_Cookie)#2440 (7) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-487EBWRwTvlRuEhh6jSvIzBRc7QmdYFVS8Orogmz0MzZZbmogz2Eyn5hN1GgukfGg8hBA"
["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)#2426 (5) {
["data"]=>
NULL
["headers"]=>
NULL
["status"]=>
NULL
["response":protected]=>
object(WpOrg\Requests\Response)#2428 (10) {
["body"]=>
string(17543) "<?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>Leopold Ramutsamaya’s Blog</title>
<atom:link href="https://blogs.ed.ac.uk/lramutsa/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/lramutsa</link>
<description>Leopold Ramutsamaya's Blog for personal use</description>
<lastBuildDate>Fri, 27 Mar 2026 13:01:18 +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>It depends!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 27 Mar 2026 09:01:25 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=57</guid>
<description><![CDATA[I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees. We got to connect with experienced developers, newcomers […]]]></description>
<content:encoded><![CDATA[<p>I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees.</p>
<p>We got to connect with experienced developers, newcomers and speakers, sharing ideas, concerns and developments across the developer community. This year, the speakers covered a wide range of technical topics, from seasoned open-source contributors like Sebastian Bergmann (the creator of PHPUnit), new product launches like Simon Hamp (the creator of NativePhp), performance enthusiasts like Volker Dusch (PHP 8.5 Release Manager) and long-time PHP contributors like Sara Golemon (PHP release manager at the PHP Foundation).</p>
<p>With so many fascinating and insightful talks, Gary Hockin’s talk on technical trade-offs really stood out to me. His talk, ‘It Depends’, aimed to explain why tech experts rarely give a straightforward ‘yes or no’ answer. It showed that every choice involves a trade-off – a ‘slider’ where getting one benefit often means giving up something else. I have had conversations with colleagues who are exploring tools to make their daily tasks easier, from visualising data within Learn, optimising queries to the database or setting up an application to try out a new AI tool – the question always is, which tool is the best?</p>
<p>Hockin’s main point is that there are no set answers when it comes to technology. Knowing that ‘it depends’ isn’t just a way out, but rather the first step towards making better, more thoughtful choices. It often means realising that every decision we make usually doesn’t have a single ‘right’ answer, rather well-considered compromises. Instead of looking for a one-size-fits-all ‘best’ solution, successful teams learn to ask more specific questions. Picking a programming language, database or framework can sometimes feel like choosing the ‘best’ car. A car that’s perfect for a racetrack won’t work for a snowy driveway and probably won’t be good for a school run with four kids. The same idea applies to our everyday jobs and decisions that come with it. The ‘best’ choice depends entirely on the situation, like the team’s experience, how much money and time we have and what the project needs to achieve.</p>
<p>From picking the best room to book for your non-anchor day at FH to deciding what lunch to have at the ISG Spring event, we need to ask the right questions and have the complete view of the slider before making the right choice. As i retreat to my everyday tasks and the decisions I must make, I am more conscious to seek the full picture, assess the slider in its entirety to ensure I have a good understanding of all the negatives and positives and ask the right questions. It is not as easy as it sounds, but with practice and constant refinement, “it depends” becomes a part of every decision we need to make.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-27" itemprop="dateModified">Mar 27, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Lights, Camera, Learn!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Sun, 02 Mar 2025 19:56:58 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=32</guid>
<description><![CDATA[I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers. The conference had two tracks concurrently running most of the […]]]></description>
<content:encoded><![CDATA[<p><img decoding="async" class="size-medium wp-image-35 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg" alt="PHP UK Conference 2025" width="300" height="100" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1024x341.jpeg 1024w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-768x256.jpeg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1440x480.jpeg 1440w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference.jpeg 1500w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p class="p1">I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers.</p>
<p class="p1">The conference had two tracks concurrently running most of the day, so you could choose which talks were most interesting. Luckily, I was there with a work colleague, so we were able to cover both tracks and not miss out on any talks. I have highlighted some of the talks that really inspired me to think differently and unlock a toolkit of ideas to level up my developer skills.</p>
<p class="p1">Craig Francis talked about “Ending Injection Vulnerabilities,” a topic that every developer should know about. Even though PHP has improved, SQL injection attacks still happen a lot. Craig showed us real-world examples that were used in production which left many reviewing their code bases. He stressed that languages make it easy to add vulnerable code with just one line of code (which works), but it’s harder to make secure code with several lines of code – something that should change by making secure code just as easy to write as insecure one. He also said that escaping inputs or using Object-Relational Mapping (ORM like Eloquent) isn’t enough. Instead, we should take a “zero-trust” approach to any data that users send and make sure that security principles like using prepared statements and validating every user input are followed. On top of that, we should make sure that we actually use the functions provided by these ORMs as they’re meant to be used, so we don’t open backdoors on otherwise secure code.</p>
<p class="p1">Liam Hammett’s session, “Beyond Requests: Supercharging API Monitoring with Guzzle Middleware,” was a real eye-opener for me. I have used Guzzle before, but Liam showed me how to use middleware to log requests, view traces, and observe metrics. This way, I can easily monitor my application’s performance. He also showed us how to use Graphana, Tempo, Prometheus, and Loki to monitor different log levels and API telemetry from our application. We have a few apps that could really benefit from this kind of logging and monitoring, like our Class Group Builder, Bulk unenrol tool or our infrastructure servers that currently host the Short Courses Platform.</p>
<p class="p1">Ivo Lukac’s shared “Learn to Appreciate Legacy,” a heartwarming story about a fictional developer named Zed, was also really moving. Through Zed’s struggles with a messy and old codebase, Ivo showed us how legacy code often contains important business logic and institutional knowledge. It hit home for me because I have often complained about “legacy code” that we have running on some of our old apps, instead of seeing its value. Ivo’s positive outlook has me rethinking how I approach maintenance work. He shared some strategies for maintaining and refactoring such code without breaking everything and leaving every file that you’ve worked on better than you found it. The lesson? Legacy code is just code that’s been pushed to production!</p>
<p class="p1">Finally, Kevin Dunglas closed off the talks with “Give Your PHP Apps Superpowers with FrankenPHP”. This modern PHP server, built on Caddy, handles concurrency easily and supports real-time features out of the box. It also boosts performance by preloading classes. The “worker mode” was the coolest part for me, as it lets you run persistent processes for tasks like queued jobs without external services. I can’t wait to try it on a side project, maybe a chat app, and see how it simplifies my workflow. As far as I could tell, for developers, it’s a game-changer, combining PHP’s simplicity with the enterprise-grade power of Go.</p>
<p class="p1">With so many exciting talks happening at the same time on two tracks, it’s easy to miss out on others. It would be awesome if the organisers could split the talks over two days so everyone can hear everything. On the bright side, this conference made me realise that PHP is still evolving and there’s always something new and exciting coming from the community.</p>
<p class="p1">As I get back to my projects, I’m inspired to pay closer attention to every input, monitor APIs smartly, respect legacy code, and use tools that push PHP to its limits. Conferences aren’t just about learning new tricks—they remind us why we love this craft. We have the chance to build a better world, one line of code at a time!</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-03-02" itemprop="dateModified">Mar 2, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>A day in the life of an eLearning Systems Developer</title>
<link>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 26 Jan 2024 14:10:31 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<category><![CDATA[leopold ramutsamaya]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=9</guid>
<description><![CDATA[As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous […]]]></description>
<content:encoded><![CDATA[<p style="text-align: left"><img loading="lazy" decoding="async" class="size-medium wp-image-28 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg" alt="Leopold Ramutsamaya Photo" width="300" height="300" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-150x150.jpg 150w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-768x768.jpg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo.jpg 960w" sizes="auto, (max-width: 300px) 100vw, 300px" />As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous learning.</p>
<p style="text-align: left">The day kicks off with catching up on both personal and team support emails. This ensures I am aware of any potential challenges or issues that may shape my workday. Whether it’s a student seeking support or a system alert for an application running out of storage, addressing these promptly ensures a smooth workflow. Following this, our daily team scrum meetings provide a platform for brief but vital discussion on completed tasks, ongoing work, and potential roadblocks. These meetings help the team keep on tabs on all the work at hand and the progress being made, as well as offer help on any issues you are facing – more often than not, someone else may have faced similar issue and already have a solution or a way to handle the issue.</p>
<p style="text-align: left">With the morning meetings concluded, the day unfolds into a solo venture of coding and project planning for the rest of the day – the ability to manage and prioritise your own work becomes very crucial. Working with sprint tickets, our team follows a meticulous process that includes peer code review and writing of automated tests. This not only enhances code quality by minimizing errors but also provides a unique opportunity for professional growth as different viewpoints and solutions emerge during code reviews, creating a fertile ground for the exchange of ideas. Writing automated tests ensures that new features align with specifications without disrupting existing logic.</p>
<p style="text-align: left">Reflection becomes a crucial part of the daily routine, providing insights into lessons learned, challenges faced, and opportunities for improvement. In the ever-evolving realm of software development, challenges serve as stepping stones for professional growth. Crucially, the supportive ecosystem within the team and the section at large is the cornerstone of our success. Knowing that assistance is just an inquiry away fosters a collaborative spirit, making the complex web of software development more manageable.</p>
<p style="text-align: left">One of the most rewarding aspects of my job is the opportunity to work on a multitude of applications, employing various technologies and catering to different stakeholders across the university. This diversity exposes me to processes beyond my immediate scope, allowing me to contribute to the resolution of challenges faced by staff and students throughout their daily routines. Each day is a unique opportunity to shape the digital future of education, one line of code at a time.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2024-01-26" itemprop="dateModified">Jan 26, 2024</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
"
["raw"]=>
string(18396) "HTTP/1.1 200 OK
Content-Type: application/rss+xml; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Date: Fri, 29 May 2026 20:36:02 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/lramutsa/wp-json/>; rel="https://api.w.org/"
Set-Cookie: PHPSESSID=1vc0uu2r7ahb37iv7jdcg6ggmh; path=/; secure; HttpOnly
Set-Cookie: spo_9865_fa=ed90b7d8fac126105541600d5650d741; expires=Fri, 29 May 2026 21:06:02 GMT; Max-Age=1800; path=/lramutsa/; Secure; HttpOnly
Last-Modified: Fri, 27 Mar 2026 13:01:18 GMT
ETag: "0e0241b0d0da1df953c03c1bff9fac51"
Vary: Accept-Encoding
Set-Cookie: RCKBMHKB=027ff8be59-56fd-487EBWRwTvlRuEhh6jSvIzBRc7QmdYFVS8Orogmz0MzZZbmogz2Eyn5hN1GgukfGg8hBA; path=/; SameSite=None; Secure
<?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>Leopold Ramutsamaya’s Blog</title>
<atom:link href="https://blogs.ed.ac.uk/lramutsa/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/lramutsa</link>
<description>Leopold Ramutsamaya's Blog for personal use</description>
<lastBuildDate>Fri, 27 Mar 2026 13:01:18 +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>It depends!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 27 Mar 2026 09:01:25 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=57</guid>
<description><![CDATA[I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees. We got to connect with experienced developers, newcomers […]]]></description>
<content:encoded><![CDATA[<p>I had the pleasure of attending the PHP UK Conference in London this year. It was my second time, and it was even more exciting than the last! We had three simultaneous sessions, with 19 carefully chosen speakers and a new venue to welcome over 200 attendees.</p>
<p>We got to connect with experienced developers, newcomers and speakers, sharing ideas, concerns and developments across the developer community. This year, the speakers covered a wide range of technical topics, from seasoned open-source contributors like Sebastian Bergmann (the creator of PHPUnit), new product launches like Simon Hamp (the creator of NativePhp), performance enthusiasts like Volker Dusch (PHP 8.5 Release Manager) and long-time PHP contributors like Sara Golemon (PHP release manager at the PHP Foundation).</p>
<p>With so many fascinating and insightful talks, Gary Hockin’s talk on technical trade-offs really stood out to me. His talk, ‘It Depends’, aimed to explain why tech experts rarely give a straightforward ‘yes or no’ answer. It showed that every choice involves a trade-off – a ‘slider’ where getting one benefit often means giving up something else. I have had conversations with colleagues who are exploring tools to make their daily tasks easier, from visualising data within Learn, optimising queries to the database or setting up an application to try out a new AI tool – the question always is, which tool is the best?</p>
<p>Hockin’s main point is that there are no set answers when it comes to technology. Knowing that ‘it depends’ isn’t just a way out, but rather the first step towards making better, more thoughtful choices. It often means realising that every decision we make usually doesn’t have a single ‘right’ answer, rather well-considered compromises. Instead of looking for a one-size-fits-all ‘best’ solution, successful teams learn to ask more specific questions. Picking a programming language, database or framework can sometimes feel like choosing the ‘best’ car. A car that’s perfect for a racetrack won’t work for a snowy driveway and probably won’t be good for a school run with four kids. The same idea applies to our everyday jobs and decisions that come with it. The ‘best’ choice depends entirely on the situation, like the team’s experience, how much money and time we have and what the project needs to achieve.</p>
<p>From picking the best room to book for your non-anchor day at FH to deciding what lunch to have at the ISG Spring event, we need to ask the right questions and have the complete view of the slider before making the right choice. As i retreat to my everyday tasks and the decisions I must make, I am more conscious to seek the full picture, assess the slider in its entirety to ensure I have a good understanding of all the negatives and positives and ask the right questions. It is not as easy as it sounds, but with practice and constant refinement, “it depends” becomes a part of every decision we need to make.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-27" itemprop="dateModified">Mar 27, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2026/03/27/it-depends/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Lights, Camera, Learn!</title>
<link>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Sun, 02 Mar 2025 19:56:58 +0000</pubDate>
<category><![CDATA[Conference]]></category>
<category><![CDATA[Php]]></category>
<category><![CDATA[conferences]]></category>
<category><![CDATA[php]]></category>
<category><![CDATA[php-conference]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=32</guid>
<description><![CDATA[I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers. The conference had two tracks concurrently running most of the […]]]></description>
<content:encoded><![CDATA[<p><img decoding="async" class="size-medium wp-image-35 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg" alt="PHP UK Conference 2025" width="300" height="100" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-300x100.jpeg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1024x341.jpeg 1024w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-768x256.jpeg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference-1440x480.jpeg 1440w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2025/02/PHP-UK-Conference.jpeg 1500w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p class="p1">I had the pleasure of attending the 2025 PHP UK Conference in London on 19th of February. The speakers were amazing, and each session gave us practical tips on the challenges we face as software developers and the cutting-edge tech being developed by other developers.</p>
<p class="p1">The conference had two tracks concurrently running most of the day, so you could choose which talks were most interesting. Luckily, I was there with a work colleague, so we were able to cover both tracks and not miss out on any talks. I have highlighted some of the talks that really inspired me to think differently and unlock a toolkit of ideas to level up my developer skills.</p>
<p class="p1">Craig Francis talked about “Ending Injection Vulnerabilities,” a topic that every developer should know about. Even though PHP has improved, SQL injection attacks still happen a lot. Craig showed us real-world examples that were used in production which left many reviewing their code bases. He stressed that languages make it easy to add vulnerable code with just one line of code (which works), but it’s harder to make secure code with several lines of code – something that should change by making secure code just as easy to write as insecure one. He also said that escaping inputs or using Object-Relational Mapping (ORM like Eloquent) isn’t enough. Instead, we should take a “zero-trust” approach to any data that users send and make sure that security principles like using prepared statements and validating every user input are followed. On top of that, we should make sure that we actually use the functions provided by these ORMs as they’re meant to be used, so we don’t open backdoors on otherwise secure code.</p>
<p class="p1">Liam Hammett’s session, “Beyond Requests: Supercharging API Monitoring with Guzzle Middleware,” was a real eye-opener for me. I have used Guzzle before, but Liam showed me how to use middleware to log requests, view traces, and observe metrics. This way, I can easily monitor my application’s performance. He also showed us how to use Graphana, Tempo, Prometheus, and Loki to monitor different log levels and API telemetry from our application. We have a few apps that could really benefit from this kind of logging and monitoring, like our Class Group Builder, Bulk unenrol tool or our infrastructure servers that currently host the Short Courses Platform.</p>
<p class="p1">Ivo Lukac’s shared “Learn to Appreciate Legacy,” a heartwarming story about a fictional developer named Zed, was also really moving. Through Zed’s struggles with a messy and old codebase, Ivo showed us how legacy code often contains important business logic and institutional knowledge. It hit home for me because I have often complained about “legacy code” that we have running on some of our old apps, instead of seeing its value. Ivo’s positive outlook has me rethinking how I approach maintenance work. He shared some strategies for maintaining and refactoring such code without breaking everything and leaving every file that you’ve worked on better than you found it. The lesson? Legacy code is just code that’s been pushed to production!</p>
<p class="p1">Finally, Kevin Dunglas closed off the talks with “Give Your PHP Apps Superpowers with FrankenPHP”. This modern PHP server, built on Caddy, handles concurrency easily and supports real-time features out of the box. It also boosts performance by preloading classes. The “worker mode” was the coolest part for me, as it lets you run persistent processes for tasks like queued jobs without external services. I can’t wait to try it on a side project, maybe a chat app, and see how it simplifies my workflow. As far as I could tell, for developers, it’s a game-changer, combining PHP’s simplicity with the enterprise-grade power of Go.</p>
<p class="p1">With so many exciting talks happening at the same time on two tracks, it’s easy to miss out on others. It would be awesome if the organisers could split the talks over two days so everyone can hear everything. On the bright side, this conference made me realise that PHP is still evolving and there’s always something new and exciting coming from the community.</p>
<p class="p1">As I get back to my projects, I’m inspired to pay closer attention to every input, monitor APIs smartly, respect legacy code, and use tools that push PHP to its limits. Conferences aren’t just about learning new tricks—they remind us why we love this craft. We have the chance to build a better world, one line of code at a time!</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-03-02" itemprop="dateModified">Mar 2, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2025/03/02/lights-camera-learn/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>A day in the life of an eLearning Systems Developer</title>
<link>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/</link>
<comments>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/#respond</comments>
<dc:creator><![CDATA[lramutsa]]></dc:creator>
<pubDate>Fri, 26 Jan 2024 14:10:31 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<category><![CDATA[leopold ramutsamaya]]></category>
<category><![CDATA[software development]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/lramutsa/?p=9</guid>
<description><![CDATA[As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous […]]]></description>
<content:encoded><![CDATA[<p style="text-align: left"><img loading="lazy" decoding="async" class="size-medium wp-image-28 alignleft" src="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg" alt="Leopold Ramutsamaya Photo" width="300" height="300" srcset="https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-300x300.jpg 300w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-150x150.jpg 150w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo-768x768.jpg 768w, https://blogs.ed.ac.uk/lramutsa/wp-content/uploads/sites/9865/2024/01/Leopold-Photo.jpg 960w" sizes="auto, (max-width: 300px) 100vw, 300px" />As an eLearning Systems Developer in a dynamic small team, my role revolves around creating custom web applications, university-wide platforms, and extensions for the central virtual learning environment, Blackboard Learn. With over 20 applications under our belt, each presenting unique challenges and varying complexities, my days are a blend of technical expertise, collaboration, and continuous learning.</p>
<p style="text-align: left">The day kicks off with catching up on both personal and team support emails. This ensures I am aware of any potential challenges or issues that may shape my workday. Whether it’s a student seeking support or a system alert for an application running out of storage, addressing these promptly ensures a smooth workflow. Following this, our daily team scrum meetings provide a platform for brief but vital discussion on completed tasks, ongoing work, and potential roadblocks. These meetings help the team keep on tabs on all the work at hand and the progress being made, as well as offer help on any issues you are facing – more often than not, someone else may have faced similar issue and already have a solution or a way to handle the issue.</p>
<p style="text-align: left">With the morning meetings concluded, the day unfolds into a solo venture of coding and project planning for the rest of the day – the ability to manage and prioritise your own work becomes very crucial. Working with sprint tickets, our team follows a meticulous process that includes peer code review and writing of automated tests. This not only enhances code quality by minimizing errors but also provides a unique opportunity for professional growth as different viewpoints and solutions emerge during code reviews, creating a fertile ground for the exchange of ideas. Writing automated tests ensures that new features align with specifications without disrupting existing logic.</p>
<p style="text-align: left">Reflection becomes a crucial part of the daily routine, providing insights into lessons learned, challenges faced, and opportunities for improvement. In the ever-evolving realm of software development, challenges serve as stepping stones for professional growth. Crucially, the supportive ecosystem within the team and the section at large is the cornerstone of our success. Knowing that assistance is just an inquiry away fosters a collaborative spirit, making the complex web of software development more manageable.</p>
<p style="text-align: left">One of the most rewarding aspects of my job is the opportunity to work on a multitude of applications, employing various technologies and catering to different stakeholders across the university. This diversity exposes me to processes beyond my immediate scope, allowing me to contribute to the resolution of challenges faced by staff and students throughout their daily routines. Each day is a unique opportunity to shape the digital future of education, one line of code at a time.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2024-01-26" itemprop="dateModified">Jan 26, 2024</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/lramutsa/2024/01/26/a-day-in-the-life-of-an-elearning-systems-developer/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
"
["headers"]=>
object(WpOrg\Requests\Response\Headers)#2429 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
array(1) {
[0]=>
string(34) "application/rss+xml; charset=UTF-8"
}
["date"]=>
array(1) {
[0]=>
string(29) "Fri, 29 May 2026 20:36:02 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(68) "<https://blogs.ed.ac.uk/lramutsa/wp-json/>; rel="https://api.w.org/""
}
["set-cookie"]=>
array(3) {
[0]=>
string(62) "PHPSESSID=1vc0uu2r7ahb37iv7jdcg6ggmh; path=/; secure; HttpOnly"
[1]=>
string(132) "spo_9865_fa=ed90b7d8fac126105541600d5650d741; expires=Fri, 29 May 2026 21:06:02 GMT; Max-Age=1800; path=/lramutsa/; Secure; HttpOnly"
[2]=>
string(125) "RCKBMHKB=027ff8be59-56fd-487EBWRwTvlRuEhh6jSvIzBRc7QmdYFVS8Orogmz0MzZZbmogz2Eyn5hN1GgukfGg8hBA; path=/; SameSite=None; Secure"
}
["last-modified"]=>
array(1) {
[0]=>
string(29) "Fri, 27 Mar 2026 13:01:18 GMT"
}
["etag"]=>
array(1) {
[0]=>
string(34) ""0e0241b0d0da1df953c03c1bff9fac51""
}
["vary"]=>
array(1) {
[0]=>
string(15) "Accept-Encoding"
}
}
}
["status_code"]=>
int(200)
["protocol_version"]=>
float(1.1)
["success"]=>
bool(true)
["redirects"]=>
int(0)
["url"]=>
string(37) "https://blogs.ed.ac.uk/lramutsa/feed/"
["history"]=>
array(0) {
}
["cookies"]=>
object(WpOrg\Requests\Cookie\Jar)#2425 (1) {
["cookies":protected]=>
array(3) {
["PHPSESSID"]=>
object(WpOrg\Requests\Cookie)#2433 (5) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "1vc0uu2r7ahb37iv7jdcg6ggmh"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2432 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["spo_9865_fa"]=>
object(WpOrg\Requests\Cookie)#2434 (5) {
["name"]=>
string(11) "spo_9865_fa"
["value"]=>
string(32) "ed90b7d8fac126105541600d5650d741"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2435 (1) {
["data":protected]=>
array(6) {
["expires"]=>
int(1780088762)
["max-age"]=>
int(1780088762)
["path"]=>
string(10) "/lramutsa/"
["secure"]=>
bool(true)
["httponly"]=>
bool(true)
["domain"]=>
string(14) "blogs.ed.ac.uk"
}
}
["flags"]=>
array(4) {
["creation"]=>
int(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
["RCKBMHKB"]=>
object(WpOrg\Requests\Cookie)#2436 (5) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-487EBWRwTvlRuEhh6jSvIzBRc7QmdYFVS8Orogmz0MzZZbmogz2Eyn5hN1GgukfGg8hBA"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2437 (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(1780086962)
["last-access"]=>
int(1780086962)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086962)
}
}
}
}
["filename":protected]=>
NULL
}
}
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/lramutsa/?p=57'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/lramutsa/?p=57] "It depends!" is a duplicate of an existing post.
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/lramutsa/?p=32'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/lramutsa/?p=32] "Lights, Camera, Learn!" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/lramutsa/?p=9] "A day in the life of an eLearning Systems Developer"
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/lramutsa/?p=9'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/lramutsa/?p=9] "A day in the life of an eLearning Systems Developer" is a duplicate of an existing post.
Diag====| HTTP [https://blogs.ed.ac.uk/deliageorgescu/feed/] ⌉ array(6) {
["headers"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2487 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
string(34) "application/rss+xml; charset=UTF-8"
["date"]=>
string(29) "Fri, 29 May 2026 20:36:03 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(74) "<https://blogs.ed.ac.uk/deliageorgescu/wp-json/>; rel="https://api.w.org/""
["set-cookie"]=>
array(3) {
[0]=>
string(62) "PHPSESSID=h95d7shp0u493dp185098fp4su; path=/; secure; HttpOnly"
[1]=>
string(138) "spo_7365_fa=81d1f6808915cd52fa07e96bf7b18f33; expires=Fri, 29 May 2026 21:06:03 GMT; Max-Age=1800; path=/deliageorgescu/; Secure; HttpOnly"
[2]=>
string(125) "RCKBMHKB=027ff8be59-56fd-48uXynZoinVOLOoI0yYCb_E_y7Qyp-tywWEZV-Yne3MGUvfHANXIOQFgPqFGKoLUHHt3g; path=/; SameSite=None; Secure"
}
["last-modified"]=>
string(29) "Wed, 18 Mar 2026 14:55:04 GMT"
["etag"]=>
string(34) ""a92b1921fccd13b266bcc35eca7a5c90""
["vary"]=>
string(15) "Accept-Encoding"
}
}
["body"]=>
string(25107) "<?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/"
xmlns:cc="http://creativecommons.org/ns#" >
<channel>
<title>A foray into Delia's world</title>
<atom:link href="https://blogs.ed.ac.uk/deliageorgescu/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/deliageorgescu</link>
<description>The ramblings of a bilingual foodie lost in the Learning Technology world</description>
<lastBuildDate>Wed, 18 Mar 2026 14:55:04 +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>
<cc:license >Creative Commons Attribution CC BY 3.0</cc:license><dc:rights >Creative Commons Attribution CC BY 3.0</dc:rights> <item>
<title>Badges with Backbone @ Canvas UK Spring meeting</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/#comments</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Tue, 03 Mar 2026 18:42:04 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[badges]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=150</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>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim […]]]></description>
<content:encoded><![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><p>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim is to widen participation, attract students from non‑traditional backgrounds, and build a curriculum tied directly to local economic needs. In short: a practical response to a higher‑education “cold spot.”</p>
<p>It couldn’t be more different from the University of Edinburgh — we’re very much the classic, historic university, and incredibly privileged in what we already have. And it seems like contradiction was the theme of this conference at least from my perspective.</p>
<h2>Badges with Backbone</h2>
<p>I was first up: Building a scalable badging model & ecosystem — which, let’s be honest, is not the most memorable title. Thanks to last week’s Practical Strategic Storytelling workshop, I renamed it “Badges with Backbone.” Much better. The audience asked lots of questions at the end. That’s a good thing… right? After what felt like a light interrogation (I was genuinely sweating), what became clear to me was this: we do have the infrastructure in place for a scalable model — check. But now we need to reconnect that infrastructure to our earners and their employers. We need to understand:</p>
<ul>
<li>How they perceive badges</li>
<li>Whether they understand their value</li>
<li>How badges evidence skills in ways that genuinely enhance employability.</li>
</ul>
<p>For our last survey, we relied on champions to share the questionnaire with the earners, and the response rate was… modest. I’m not claiming direct causation — but it does make me try going straight to the source next time: EUSA, open days, employer events — anywhere we can actually talk to the people involved.</p>
<h2><strong>Different Models, Same Purpose</strong></h2>
<p>Boston College presented after me, and I’m glad they did. Their approach to badging is bright, colourful, gamified, aimed at under‑18s. It is programme‑based and tied directly to marketable skills. At polar opposites from ours.</p>
<p>But it was a good reminder that one size doesn’t fit all. Different audiences, different needs, different solutions. They even use badges for staff accessibility training — honestly, not a bad idea.</p>
<p>I’ll admit I felt a pang of jealousy when they mentioned their rapid rollout (March to September in the same year). Then I remembered the sheer amount of groundwork we’ve put into our framework. Ours is built to scale, built to last, and ready for wider use with the SCP.</p>
<h2>APIs, AI, and Unexpected Practicality</h2>
<p>Manchester University’s session on APIs and AI was surprisingly one of the most practical AI‑in‑education talks I’ve been to. Surprising because I don’t code. I make a point to avoid coding. Usually anything with “API” in the title makes me want to sneak out of the room.</p>
<p>But the way they framed it — using AI to speed up tasks I’d otherwise spend months trying to learn — actually made sense. It felt more relevant to my day‑to‑day work than the usual high‑level ethical debates about AI literacy.</p>
<h2>Wrapping Up</h2>
<p>Overall, it was a valuable conference. Good conversations with colleagues and with the vendor, and a reminder that while we work with technology, frameworks, and strategy, we’re still human beings trying to build things that help other human beings.</p>
<p>And after presenting, surviving a Q&A, and facilitating one of the afternoon’s discussion tables… yes, I absolutely needed that pint at the end.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-03" itemprop="dateModified">Mar 3, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/feed/</wfw:commentRss>
<slash:comments>1</slash:comments>
</item>
<item>
<title>Back to the Beginning: Black Sabbath and Birmingham</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Thu, 24 Jul 2025 13:29:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=139</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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span>The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to. This […]]]></description>
<content:encoded><![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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span><p data-start="504" data-end="814">The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to.</p>
<p data-start="816" data-end="849">This time, though, was different.</p>
<p style="text-align: left" data-start="851" data-end="1155">Birmingham named this summer the <em data-start="113" data-end="132">Summer of Sabbath</em>, commemorating the band’s career throughout the city — from Ozzy the metal bull greeting us at the train station, to The Crown Pub and a dedicated exhibition at the Birmingham Museum. And at the heart of it all, the crown jewel: a farewell concert, the most anticipated event in metal music — and not only metal. It was a cultural moment, a homecoming unlike any other.</p>
<p data-start="851" data-end="1155"><img decoding="async" class="alignnone size-medium wp-image-141 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png" alt="Ozzy the bull metal structure" width="300" height="228" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-768x583.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull.png 878w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>The concert’s title couldn’t be more appropriate. As the train left the station heading toward Villa Park, it felt like a trip into the past — back to where it all began. We passed many a traditional red-brick building, graffitied, worn and crumbling — echoes of a more prosperous time. Once the beating heart of British industry, Birmingham led the charge in manufacturing, engineering, and automotive innovation. That proud past still lingers, like soot in the air, even as the city shifts and strains under modern pressures.</p>
<p data-start="1688" data-end="1994">For most visitors, this backdrop might feel unwelcoming — austere, even. But for this journey, it felt exactly right. I wasn’t here to experience the modern city. I was here for a pilgrimage: to witness the final homecoming of the godfathers of heavy metal. Black Sabbath, returning to where it all began.</p>
<p data-start="1996" data-end="2333">There are already hundreds of reviews out there dissecting the gig itself —the epic setlist, the legends on stage (who could fill Villa Park on their own, let alone as a collective force. But for me, the most striking element wasn’t just the music. It was how perfectly the surroundings fit.</p>
<p data-start="2335" data-end="2730">On stage, the massive screens displayed black-and-white footage of Birmingham in the 1960s. Steelworks, smokestacks, workers. As the haunting riff of “Black Sabbath” rang out, those old images reminded us that this band — and this sound — weren’t born in spite of the city’s hardship, but because of it.</p>
<p data-start="3037" data-end="3371">From our spot in the Holte End, I looked to the right, out through a break in the stands. There, through the opening, you could see rooftops stretching into the distance, the occasional train rumbling past — a living, breathing reminder of where we were. In that moment, it all made sense. The music. The place. The people. Birmingham may not be glamorous, but it has soul. And for a band like Black Sabbath — it was always the only place to begin, and the only place to end.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-146 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png" alt="Stadium concert setting with stage and crowd" width="350" height="197" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1024x577.png 1024w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-768x433.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1536x865.png 1536w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1440x811.png 1440w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled.png 1919w" sizes="auto, (max-width: 350px) 100vw, 350px" /></p>
<p>PS: Writing this after hearing about Ozzy’s passing yesterday gives this experience a new depth, which is why I decided to share it. I wasn’t sure whether it belonged here, but after chatting with a few colleagues about the concert, I realised it might resonate more than I thought.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-07-24" itemprop="dateModified">Jul 24, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Masticate on this!</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Wed, 05 Oct 2022 13:20:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=30</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>My first blog was due to happen soon, so I might as well start with something I love My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile […]]]></description>
<content:encoded><![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><h4 style="text-align: center">My first blog was due to happen soon, so I might as well start with something I love</h4>
<p>My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile to focus my energy into a constructive avenue). My work colleagues suggest I blog as a tool of reflecting on my work experience and potentially providing a start for my CMALT portfolio (hopefully more on that in another post). So I’m going to try to combine these topics, into a ‘food I had at work’ blog. Well, sort of…</p>
<p><img loading="lazy" decoding="async" class="wp-image-62 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg" alt="a display table with cake trays" width="241" height="428" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-577x1024.jpg 577w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-768x1364.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-865x1536.jpg 865w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-1153x2048.jpg 1153w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-541x960.jpg 541w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-scaled.jpg 1442w" sizes="auto, (max-width: 241px) 100vw, 241px" />Every time I come into the Argyle House office I feel tempted by the myriad of lovely shops around the Grassmarket area: ice-cream from <a href="https://www.instagram.com/marysmilkbar/">Mary’s Milk Bar</a>, cake from <a href="https://www.instagram.com/tastybunsbakery/">Tasty Buns</a>, coffee from the <a href="https://www.thesourcecoffee.co.uk/">Source</a>, spanakopita from the <a href="https://www.facebook.com/GreekArtisanPastries/">Greek Artisan Pastries</a> are just a handful of my favourites that come to mind. Yesterday I added a new discovery to that list: the relatively recently opened <a href="https://www.instagram.com/slice_of_greece_/">Slice of Greece</a>, on Morrison Street. As I waltzed into the shop, my eyes were instantly drawn to the mastic desserts in the display. The one I chose was a Galaktompoureko, a mastic flavoured custard filled phyllo pastry pie. Why, you are asking, among all the chocolate covered croissants, baklavas and mousse pots?</p>
<p>Mastic, or mastiha, happens to be one of my favourite flavours in the world! Sadly, I don’t come across it as often as I’d like to, especially in the UK, it is an underdog. In all the GBBO seasons I’ve watched (admittedly, not all, so somebody PLEASE correct me if I’m wrong) I’ve only seen it used once in season 12 when George made brandy snaps filled with an orange blossom and mastic creme pat, and mentioned once on their recipe page (<a href="https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/">https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/</a>).</p>
<h4 style="text-align: center">But what exactly is mastic?</h4>
<h4><img loading="lazy" decoding="async" class="wp-image-33 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg" alt="Close-up of resin dripping out of a mastic tree bark" width="234" height="415" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-576x1024.jpg 576w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423.jpg 613w" sizes="auto, (max-width: 234px) 100vw, 234px" /></h4>
<p>Mastic is the resin extracted from the <em>Pistacia lentiscus </em>aka the Chios mastic tree, a little shrub like tree. The resin is ‘revealed’ by cutting into the tree bark, which releases the ‘tears’ of resin. These harden and are then collected and cleaned. It is used as a flavouring in lots of deserts (list) as well as in mastica, an alcoholic sweet liqueur similar to ouzo, and in cosmetic products due to its nice smell and supposed medicinal benefits. It is also the earliest known form of chewing gum: the Ancient Greeks aptly named the resin after the word <em>mastikhan, </em>“to gnash the teeth”, which through a long linguistic journey via Latin and Old French also reached English: “to masticate, to chew”.</p>
<p>Mastichochoria, the mastic villages in the south of the island, are the main (and only constant) producers of mastic in the world. There are small groves in the Çeşme peninsula in Turkey, and the Japanese tried importing and growing the trees but the unique soil and climate of Chios made planting the trees elsewhere an impossible task.</p>
<p>The taste is very unique and hard to describe. It always takes me a while to come up with an answer when someone asks me to describe it, and I always wish I had a piece of gum to hand them, as it would make the process a lot easier. I’d say it tastes ‘resin-y’ (what a surprise!) herbally and pine-y. It is definitely an aquired taste. So far I’ve only used it in a <a href="https://www.tasteatlas.com/maras-dondurmas/recipe">Maraş style ice-cream</a> and flavoured custard.</p>
<h4 style="text-align: center">A bit of a (his)story*</h4>
<p><img loading="lazy" decoding="async" class="wp-image-57 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg" alt="Massacre of Choios painting by Eugene Delacroix" width="327" height="387" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg 254w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-867x1024.jpg 867w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-768x907.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-813x960.jpg 813w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio.jpg 1024w" sizes="auto, (max-width: 327px) 100vw, 327px" />To me, mastic is a taste of summer holidays in Turkey (I know, Greek people please be patient). My dad would always have a packet of mastic chewing gum in his car, and it would the first thing I tasted upon my arrival in Turkey. However, it was not until this summer that I visited the ‘home’ of mastic- the island of Chios. The 5<sup>th</sup> biggest Greek island, it is located only 3.5 miles (5.5 km) from the Turkish coast. And as the location suggests, it has a very turbulent history.</p>
<p>Archaeological research on Chios has found evidence of habitation as early as the Neolithic era, and the island has gone through the hands of multiple occupiers: Persians, Greeks, Romans, Byzantine, Genoese, Ottoman and eventually back to the Greek, after the First Balkan War in 1912. All of which left an imprint on the island. There is still quite a bit of animosity between the Greek and the Turkish people of the island, one of the most interesting examples being the removal and re-addition of the replica of Eugene Delacroix’s “The Massacre of Chios” from the Byzantine museum on Chios (incidentally, the museum is located in the old mosque). In 2009, a copy of the painting was displayed in the museum, swiftly withdrawn a few months later in a “good faith initiative” for the improvement of Greek-Turkish relations. However, the Greeks protested its removal, leading to the copy being brought back on display.</p>
<p>So here it is, a blog about the food I had at work, turned travel blog, turned love declaration to mastic.</p>
<p>Oh, and please give Slice of Greece a try. I did lie a bit at the start, I also got a couple of mousse pots because I couldn’t resist them – the black forest and the caramel ones. Also, the next day I returned for a (huge) slice of baklava, it had to be tested! I can now also confirm they do one of the best baklavas I’ve had in Edinburgh- laden with syrup, walnuts and cinnamon, and not overly sweet, which was a nice surprise. <img loading="lazy" decoding="async" class="size-medium wp-image-69 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg" alt="2 plastic pots with mouse in the foreground, and a pastry in a box in the background" width="298" height="300" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg 298w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1019x1024.jpg 1019w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-150x150.jpg 150w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-768x772.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1528x1536.jpg 1528w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-955x960.jpg 955w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake.jpg 1717w" sizes="auto, (max-width: 298px) 100vw, 298px" /></p>
<p>*historic facts borrowed from <a href="https://en.wikipedia.org/wiki/Chios">https://en.wikipedia.org/wiki/Chios</a></p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2022-10-05" itemprop="dateModified">Oct 5, 2022</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/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)#2499 (7) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "h95d7shp0u493dp185098fp4su"
["expires"]=>
NULL
["path"]=>
string(1) "/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[1]=>
object(WP_Http_Cookie)#2498 (7) {
["name"]=>
string(11) "spo_7365_fa"
["value"]=>
string(32) "81d1f6808915cd52fa07e96bf7b18f33"
["expires"]=>
int(1780088763)
["path"]=>
string(16) "/deliageorgescu/"
["domain"]=>
string(14) "blogs.ed.ac.uk"
["port"]=>
NULL
["host_only"]=>
bool(true)
}
[2]=>
object(WP_Http_Cookie)#2500 (7) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-48uXynZoinVOLOoI0yYCb_E_y7Qyp-tywWEZV-Yne3MGUvfHANXIOQFgPqFGKoLUHHt3g"
["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)#2486 (5) {
["data"]=>
NULL
["headers"]=>
NULL
["status"]=>
NULL
["response":protected]=>
object(WpOrg\Requests\Response)#2488 (10) {
["body"]=>
string(25107) "<?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/"
xmlns:cc="http://creativecommons.org/ns#" >
<channel>
<title>A foray into Delia's world</title>
<atom:link href="https://blogs.ed.ac.uk/deliageorgescu/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/deliageorgescu</link>
<description>The ramblings of a bilingual foodie lost in the Learning Technology world</description>
<lastBuildDate>Wed, 18 Mar 2026 14:55:04 +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>
<cc:license >Creative Commons Attribution CC BY 3.0</cc:license><dc:rights >Creative Commons Attribution CC BY 3.0</dc:rights> <item>
<title>Badges with Backbone @ Canvas UK Spring meeting</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/#comments</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Tue, 03 Mar 2026 18:42:04 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[badges]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=150</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>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim […]]]></description>
<content:encoded><![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><p>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim is to widen participation, attract students from non‑traditional backgrounds, and build a curriculum tied directly to local economic needs. In short: a practical response to a higher‑education “cold spot.”</p>
<p>It couldn’t be more different from the University of Edinburgh — we’re very much the classic, historic university, and incredibly privileged in what we already have. And it seems like contradiction was the theme of this conference at least from my perspective.</p>
<h2>Badges with Backbone</h2>
<p>I was first up: Building a scalable badging model & ecosystem — which, let’s be honest, is not the most memorable title. Thanks to last week’s Practical Strategic Storytelling workshop, I renamed it “Badges with Backbone.” Much better. The audience asked lots of questions at the end. That’s a good thing… right? After what felt like a light interrogation (I was genuinely sweating), what became clear to me was this: we do have the infrastructure in place for a scalable model — check. But now we need to reconnect that infrastructure to our earners and their employers. We need to understand:</p>
<ul>
<li>How they perceive badges</li>
<li>Whether they understand their value</li>
<li>How badges evidence skills in ways that genuinely enhance employability.</li>
</ul>
<p>For our last survey, we relied on champions to share the questionnaire with the earners, and the response rate was… modest. I’m not claiming direct causation — but it does make me try going straight to the source next time: EUSA, open days, employer events — anywhere we can actually talk to the people involved.</p>
<h2><strong>Different Models, Same Purpose</strong></h2>
<p>Boston College presented after me, and I’m glad they did. Their approach to badging is bright, colourful, gamified, aimed at under‑18s. It is programme‑based and tied directly to marketable skills. At polar opposites from ours.</p>
<p>But it was a good reminder that one size doesn’t fit all. Different audiences, different needs, different solutions. They even use badges for staff accessibility training — honestly, not a bad idea.</p>
<p>I’ll admit I felt a pang of jealousy when they mentioned their rapid rollout (March to September in the same year). Then I remembered the sheer amount of groundwork we’ve put into our framework. Ours is built to scale, built to last, and ready for wider use with the SCP.</p>
<h2>APIs, AI, and Unexpected Practicality</h2>
<p>Manchester University’s session on APIs and AI was surprisingly one of the most practical AI‑in‑education talks I’ve been to. Surprising because I don’t code. I make a point to avoid coding. Usually anything with “API” in the title makes me want to sneak out of the room.</p>
<p>But the way they framed it — using AI to speed up tasks I’d otherwise spend months trying to learn — actually made sense. It felt more relevant to my day‑to‑day work than the usual high‑level ethical debates about AI literacy.</p>
<h2>Wrapping Up</h2>
<p>Overall, it was a valuable conference. Good conversations with colleagues and with the vendor, and a reminder that while we work with technology, frameworks, and strategy, we’re still human beings trying to build things that help other human beings.</p>
<p>And after presenting, surviving a Q&A, and facilitating one of the afternoon’s discussion tables… yes, I absolutely needed that pint at the end.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-03" itemprop="dateModified">Mar 3, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/feed/</wfw:commentRss>
<slash:comments>1</slash:comments>
</item>
<item>
<title>Back to the Beginning: Black Sabbath and Birmingham</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Thu, 24 Jul 2025 13:29:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=139</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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span>The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to. This […]]]></description>
<content:encoded><![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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span><p data-start="504" data-end="814">The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to.</p>
<p data-start="816" data-end="849">This time, though, was different.</p>
<p style="text-align: left" data-start="851" data-end="1155">Birmingham named this summer the <em data-start="113" data-end="132">Summer of Sabbath</em>, commemorating the band’s career throughout the city — from Ozzy the metal bull greeting us at the train station, to The Crown Pub and a dedicated exhibition at the Birmingham Museum. And at the heart of it all, the crown jewel: a farewell concert, the most anticipated event in metal music — and not only metal. It was a cultural moment, a homecoming unlike any other.</p>
<p data-start="851" data-end="1155"><img decoding="async" class="alignnone size-medium wp-image-141 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png" alt="Ozzy the bull metal structure" width="300" height="228" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-768x583.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull.png 878w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>The concert’s title couldn’t be more appropriate. As the train left the station heading toward Villa Park, it felt like a trip into the past — back to where it all began. We passed many a traditional red-brick building, graffitied, worn and crumbling — echoes of a more prosperous time. Once the beating heart of British industry, Birmingham led the charge in manufacturing, engineering, and automotive innovation. That proud past still lingers, like soot in the air, even as the city shifts and strains under modern pressures.</p>
<p data-start="1688" data-end="1994">For most visitors, this backdrop might feel unwelcoming — austere, even. But for this journey, it felt exactly right. I wasn’t here to experience the modern city. I was here for a pilgrimage: to witness the final homecoming of the godfathers of heavy metal. Black Sabbath, returning to where it all began.</p>
<p data-start="1996" data-end="2333">There are already hundreds of reviews out there dissecting the gig itself —the epic setlist, the legends on stage (who could fill Villa Park on their own, let alone as a collective force. But for me, the most striking element wasn’t just the music. It was how perfectly the surroundings fit.</p>
<p data-start="2335" data-end="2730">On stage, the massive screens displayed black-and-white footage of Birmingham in the 1960s. Steelworks, smokestacks, workers. As the haunting riff of “Black Sabbath” rang out, those old images reminded us that this band — and this sound — weren’t born in spite of the city’s hardship, but because of it.</p>
<p data-start="3037" data-end="3371">From our spot in the Holte End, I looked to the right, out through a break in the stands. There, through the opening, you could see rooftops stretching into the distance, the occasional train rumbling past — a living, breathing reminder of where we were. In that moment, it all made sense. The music. The place. The people. Birmingham may not be glamorous, but it has soul. And for a band like Black Sabbath — it was always the only place to begin, and the only place to end.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-146 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png" alt="Stadium concert setting with stage and crowd" width="350" height="197" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1024x577.png 1024w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-768x433.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1536x865.png 1536w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1440x811.png 1440w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled.png 1919w" sizes="auto, (max-width: 350px) 100vw, 350px" /></p>
<p>PS: Writing this after hearing about Ozzy’s passing yesterday gives this experience a new depth, which is why I decided to share it. I wasn’t sure whether it belonged here, but after chatting with a few colleagues about the concert, I realised it might resonate more than I thought.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-07-24" itemprop="dateModified">Jul 24, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Masticate on this!</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Wed, 05 Oct 2022 13:20:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=30</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>My first blog was due to happen soon, so I might as well start with something I love My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile […]]]></description>
<content:encoded><![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><h4 style="text-align: center">My first blog was due to happen soon, so I might as well start with something I love</h4>
<p>My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile to focus my energy into a constructive avenue). My work colleagues suggest I blog as a tool of reflecting on my work experience and potentially providing a start for my CMALT portfolio (hopefully more on that in another post). So I’m going to try to combine these topics, into a ‘food I had at work’ blog. Well, sort of…</p>
<p><img loading="lazy" decoding="async" class="wp-image-62 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg" alt="a display table with cake trays" width="241" height="428" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-577x1024.jpg 577w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-768x1364.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-865x1536.jpg 865w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-1153x2048.jpg 1153w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-541x960.jpg 541w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-scaled.jpg 1442w" sizes="auto, (max-width: 241px) 100vw, 241px" />Every time I come into the Argyle House office I feel tempted by the myriad of lovely shops around the Grassmarket area: ice-cream from <a href="https://www.instagram.com/marysmilkbar/">Mary’s Milk Bar</a>, cake from <a href="https://www.instagram.com/tastybunsbakery/">Tasty Buns</a>, coffee from the <a href="https://www.thesourcecoffee.co.uk/">Source</a>, spanakopita from the <a href="https://www.facebook.com/GreekArtisanPastries/">Greek Artisan Pastries</a> are just a handful of my favourites that come to mind. Yesterday I added a new discovery to that list: the relatively recently opened <a href="https://www.instagram.com/slice_of_greece_/">Slice of Greece</a>, on Morrison Street. As I waltzed into the shop, my eyes were instantly drawn to the mastic desserts in the display. The one I chose was a Galaktompoureko, a mastic flavoured custard filled phyllo pastry pie. Why, you are asking, among all the chocolate covered croissants, baklavas and mousse pots?</p>
<p>Mastic, or mastiha, happens to be one of my favourite flavours in the world! Sadly, I don’t come across it as often as I’d like to, especially in the UK, it is an underdog. In all the GBBO seasons I’ve watched (admittedly, not all, so somebody PLEASE correct me if I’m wrong) I’ve only seen it used once in season 12 when George made brandy snaps filled with an orange blossom and mastic creme pat, and mentioned once on their recipe page (<a href="https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/">https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/</a>).</p>
<h4 style="text-align: center">But what exactly is mastic?</h4>
<h4><img loading="lazy" decoding="async" class="wp-image-33 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg" alt="Close-up of resin dripping out of a mastic tree bark" width="234" height="415" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-576x1024.jpg 576w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423.jpg 613w" sizes="auto, (max-width: 234px) 100vw, 234px" /></h4>
<p>Mastic is the resin extracted from the <em>Pistacia lentiscus </em>aka the Chios mastic tree, a little shrub like tree. The resin is ‘revealed’ by cutting into the tree bark, which releases the ‘tears’ of resin. These harden and are then collected and cleaned. It is used as a flavouring in lots of deserts (list) as well as in mastica, an alcoholic sweet liqueur similar to ouzo, and in cosmetic products due to its nice smell and supposed medicinal benefits. It is also the earliest known form of chewing gum: the Ancient Greeks aptly named the resin after the word <em>mastikhan, </em>“to gnash the teeth”, which through a long linguistic journey via Latin and Old French also reached English: “to masticate, to chew”.</p>
<p>Mastichochoria, the mastic villages in the south of the island, are the main (and only constant) producers of mastic in the world. There are small groves in the Çeşme peninsula in Turkey, and the Japanese tried importing and growing the trees but the unique soil and climate of Chios made planting the trees elsewhere an impossible task.</p>
<p>The taste is very unique and hard to describe. It always takes me a while to come up with an answer when someone asks me to describe it, and I always wish I had a piece of gum to hand them, as it would make the process a lot easier. I’d say it tastes ‘resin-y’ (what a surprise!) herbally and pine-y. It is definitely an aquired taste. So far I’ve only used it in a <a href="https://www.tasteatlas.com/maras-dondurmas/recipe">Maraş style ice-cream</a> and flavoured custard.</p>
<h4 style="text-align: center">A bit of a (his)story*</h4>
<p><img loading="lazy" decoding="async" class="wp-image-57 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg" alt="Massacre of Choios painting by Eugene Delacroix" width="327" height="387" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg 254w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-867x1024.jpg 867w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-768x907.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-813x960.jpg 813w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio.jpg 1024w" sizes="auto, (max-width: 327px) 100vw, 327px" />To me, mastic is a taste of summer holidays in Turkey (I know, Greek people please be patient). My dad would always have a packet of mastic chewing gum in his car, and it would the first thing I tasted upon my arrival in Turkey. However, it was not until this summer that I visited the ‘home’ of mastic- the island of Chios. The 5<sup>th</sup> biggest Greek island, it is located only 3.5 miles (5.5 km) from the Turkish coast. And as the location suggests, it has a very turbulent history.</p>
<p>Archaeological research on Chios has found evidence of habitation as early as the Neolithic era, and the island has gone through the hands of multiple occupiers: Persians, Greeks, Romans, Byzantine, Genoese, Ottoman and eventually back to the Greek, after the First Balkan War in 1912. All of which left an imprint on the island. There is still quite a bit of animosity between the Greek and the Turkish people of the island, one of the most interesting examples being the removal and re-addition of the replica of Eugene Delacroix’s “The Massacre of Chios” from the Byzantine museum on Chios (incidentally, the museum is located in the old mosque). In 2009, a copy of the painting was displayed in the museum, swiftly withdrawn a few months later in a “good faith initiative” for the improvement of Greek-Turkish relations. However, the Greeks protested its removal, leading to the copy being brought back on display.</p>
<p>So here it is, a blog about the food I had at work, turned travel blog, turned love declaration to mastic.</p>
<p>Oh, and please give Slice of Greece a try. I did lie a bit at the start, I also got a couple of mousse pots because I couldn’t resist them – the black forest and the caramel ones. Also, the next day I returned for a (huge) slice of baklava, it had to be tested! I can now also confirm they do one of the best baklavas I’ve had in Edinburgh- laden with syrup, walnuts and cinnamon, and not overly sweet, which was a nice surprise. <img loading="lazy" decoding="async" class="size-medium wp-image-69 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg" alt="2 plastic pots with mouse in the foreground, and a pastry in a box in the background" width="298" height="300" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg 298w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1019x1024.jpg 1019w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-150x150.jpg 150w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-768x772.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1528x1536.jpg 1528w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-955x960.jpg 955w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake.jpg 1717w" sizes="auto, (max-width: 298px) 100vw, 298px" /></p>
<p>*historic facts borrowed from <a href="https://en.wikipedia.org/wiki/Chios">https://en.wikipedia.org/wiki/Chios</a></p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2022-10-05" itemprop="dateModified">Oct 5, 2022</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
"
["raw"]=>
string(25972) "HTTP/1.1 200 OK
Content-Type: application/rss+xml; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Date: Fri, 29 May 2026 20:36:03 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/deliageorgescu/wp-json/>; rel="https://api.w.org/"
Set-Cookie: PHPSESSID=h95d7shp0u493dp185098fp4su; path=/; secure; HttpOnly
Set-Cookie: spo_7365_fa=81d1f6808915cd52fa07e96bf7b18f33; expires=Fri, 29 May 2026 21:06:03 GMT; Max-Age=1800; path=/deliageorgescu/; Secure; HttpOnly
Last-Modified: Wed, 18 Mar 2026 14:55:04 GMT
ETag: "a92b1921fccd13b266bcc35eca7a5c90"
Vary: Accept-Encoding
Set-Cookie: RCKBMHKB=027ff8be59-56fd-48uXynZoinVOLOoI0yYCb_E_y7Qyp-tywWEZV-Yne3MGUvfHANXIOQFgPqFGKoLUHHt3g; path=/; SameSite=None; Secure
<?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/"
xmlns:cc="http://creativecommons.org/ns#" >
<channel>
<title>A foray into Delia's world</title>
<atom:link href="https://blogs.ed.ac.uk/deliageorgescu/feed/" rel="self" type="application/rss+xml" />
<link>https://blogs.ed.ac.uk/deliageorgescu</link>
<description>The ramblings of a bilingual foodie lost in the Learning Technology world</description>
<lastBuildDate>Wed, 18 Mar 2026 14:55:04 +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>
<cc:license >Creative Commons Attribution CC BY 3.0</cc:license><dc:rights >Creative Commons Attribution CC BY 3.0</dc:rights> <item>
<title>Badges with Backbone @ Canvas UK Spring meeting</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/#comments</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Tue, 03 Mar 2026 18:42:04 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[badges]]></category>
<category><![CDATA[dlam]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=150</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>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim […]]]></description>
<content:encoded><![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><p>The Spring Canvas UK User Group was hosted at ARU Peterborough — a brand‑new institution, opened in 2022, set up to boost local skills and employability through career‑focused education. The university was created to tackle a long‑standing skills shortage in the area, with Peterborough sitting in the bottom 10% nationally for degree‑level qualifications. Their aim is to widen participation, attract students from non‑traditional backgrounds, and build a curriculum tied directly to local economic needs. In short: a practical response to a higher‑education “cold spot.”</p>
<p>It couldn’t be more different from the University of Edinburgh — we’re very much the classic, historic university, and incredibly privileged in what we already have. And it seems like contradiction was the theme of this conference at least from my perspective.</p>
<h2>Badges with Backbone</h2>
<p>I was first up: Building a scalable badging model & ecosystem — which, let’s be honest, is not the most memorable title. Thanks to last week’s Practical Strategic Storytelling workshop, I renamed it “Badges with Backbone.” Much better. The audience asked lots of questions at the end. That’s a good thing… right? After what felt like a light interrogation (I was genuinely sweating), what became clear to me was this: we do have the infrastructure in place for a scalable model — check. But now we need to reconnect that infrastructure to our earners and their employers. We need to understand:</p>
<ul>
<li>How they perceive badges</li>
<li>Whether they understand their value</li>
<li>How badges evidence skills in ways that genuinely enhance employability.</li>
</ul>
<p>For our last survey, we relied on champions to share the questionnaire with the earners, and the response rate was… modest. I’m not claiming direct causation — but it does make me try going straight to the source next time: EUSA, open days, employer events — anywhere we can actually talk to the people involved.</p>
<h2><strong>Different Models, Same Purpose</strong></h2>
<p>Boston College presented after me, and I’m glad they did. Their approach to badging is bright, colourful, gamified, aimed at under‑18s. It is programme‑based and tied directly to marketable skills. At polar opposites from ours.</p>
<p>But it was a good reminder that one size doesn’t fit all. Different audiences, different needs, different solutions. They even use badges for staff accessibility training — honestly, not a bad idea.</p>
<p>I’ll admit I felt a pang of jealousy when they mentioned their rapid rollout (March to September in the same year). Then I remembered the sheer amount of groundwork we’ve put into our framework. Ours is built to scale, built to last, and ready for wider use with the SCP.</p>
<h2>APIs, AI, and Unexpected Practicality</h2>
<p>Manchester University’s session on APIs and AI was surprisingly one of the most practical AI‑in‑education talks I’ve been to. Surprising because I don’t code. I make a point to avoid coding. Usually anything with “API” in the title makes me want to sneak out of the room.</p>
<p>But the way they framed it — using AI to speed up tasks I’d otherwise spend months trying to learn — actually made sense. It felt more relevant to my day‑to‑day work than the usual high‑level ethical debates about AI literacy.</p>
<h2>Wrapping Up</h2>
<p>Overall, it was a valuable conference. Good conversations with colleagues and with the vendor, and a reminder that while we work with technology, frameworks, and strategy, we’re still human beings trying to build things that help other human beings.</p>
<p>And after presenting, surviving a Q&A, and facilitating one of the afternoon’s discussion tables… yes, I absolutely needed that pint at the end.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2026-03-03" itemprop="dateModified">Mar 3, 2026</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2026/03/03/badges-with-backbone-canvas-uk-spring-meeting/feed/</wfw:commentRss>
<slash:comments>1</slash:comments>
</item>
<item>
<title>Back to the Beginning: Black Sabbath and Birmingham</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Thu, 24 Jul 2025 13:29:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=139</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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span>The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to. This […]]]></description>
<content:encoded><![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"> 3</span> <span class="rt-label rt-postfix">minutes</span></span><p data-start="504" data-end="814">The last time I found myself in Birmingham, it was for a Canvas conference. Like many of my colleagues, I looked forward to the event — but not the destination. Birmingham, for all its history, carries a certain reputation these days: gritty, grey, post-industrial. It’s a city people often pass through, not go to.</p>
<p data-start="816" data-end="849">This time, though, was different.</p>
<p style="text-align: left" data-start="851" data-end="1155">Birmingham named this summer the <em data-start="113" data-end="132">Summer of Sabbath</em>, commemorating the band’s career throughout the city — from Ozzy the metal bull greeting us at the train station, to The Crown Pub and a dedicated exhibition at the Birmingham Museum. And at the heart of it all, the crown jewel: a farewell concert, the most anticipated event in metal music — and not only metal. It was a cultural moment, a homecoming unlike any other.</p>
<p data-start="851" data-end="1155"><img decoding="async" class="alignnone size-medium wp-image-141 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png" alt="Ozzy the bull metal structure" width="300" height="228" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-300x228.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull-768x583.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Ozzy-the-bull.png 878w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>The concert’s title couldn’t be more appropriate. As the train left the station heading toward Villa Park, it felt like a trip into the past — back to where it all began. We passed many a traditional red-brick building, graffitied, worn and crumbling — echoes of a more prosperous time. Once the beating heart of British industry, Birmingham led the charge in manufacturing, engineering, and automotive innovation. That proud past still lingers, like soot in the air, even as the city shifts and strains under modern pressures.</p>
<p data-start="1688" data-end="1994">For most visitors, this backdrop might feel unwelcoming — austere, even. But for this journey, it felt exactly right. I wasn’t here to experience the modern city. I was here for a pilgrimage: to witness the final homecoming of the godfathers of heavy metal. Black Sabbath, returning to where it all began.</p>
<p data-start="1996" data-end="2333">There are already hundreds of reviews out there dissecting the gig itself —the epic setlist, the legends on stage (who could fill Villa Park on their own, let alone as a collective force. But for me, the most striking element wasn’t just the music. It was how perfectly the surroundings fit.</p>
<p data-start="2335" data-end="2730">On stage, the massive screens displayed black-and-white footage of Birmingham in the 1960s. Steelworks, smokestacks, workers. As the haunting riff of “Black Sabbath” rang out, those old images reminded us that this band — and this sound — weren’t born in spite of the city’s hardship, but because of it.</p>
<p data-start="3037" data-end="3371">From our spot in the Holte End, I looked to the right, out through a break in the stands. There, through the opening, you could see rooftops stretching into the distance, the occasional train rumbling past — a living, breathing reminder of where we were. In that moment, it all made sense. The music. The place. The people. Birmingham may not be glamorous, but it has soul. And for a band like Black Sabbath — it was always the only place to begin, and the only place to end.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-146 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png" alt="Stadium concert setting with stage and crowd" width="350" height="197" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-300x169.png 300w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1024x577.png 1024w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-768x433.png 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1536x865.png 1536w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled-1440x811.png 1440w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2025/07/Untitled.png 1919w" sizes="auto, (max-width: 350px) 100vw, 350px" /></p>
<p>PS: Writing this after hearing about Ozzy’s passing yesterday gives this experience a new depth, which is why I decided to share it. I wasn’t sure whether it belonged here, but after chatting with a few colleagues about the concert, I realised it might resonate more than I thought.</p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2025-07-24" itemprop="dateModified">Jul 24, 2025</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2025/07/24/back-to-the-beginning-black-sabbath-and-birmingham/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Masticate on this!</title>
<link>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/</link>
<comments>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/#respond</comments>
<dc:creator><![CDATA[dgeorge2]]></dc:creator>
<pubDate>Wed, 05 Oct 2022 13:20:34 +0000</pubDate>
<category><![CDATA[Uncategorised]]></category>
<category><![CDATA[dlam-feed]]></category>
<guid isPermaLink="false">https://blogs.ed.ac.uk/deliageorgescu/?p=30</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>My first blog was due to happen soon, so I might as well start with something I love My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile […]]]></description>
<content:encoded><![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><h4 style="text-align: center">My first blog was due to happen soon, so I might as well start with something I love</h4>
<p>My friends ask me why I don’t start documenting my food experiments and restaurant visits in a food blog (they are probably tired of me steering all conversations towards food and consider it would be more worthwhile to focus my energy into a constructive avenue). My work colleagues suggest I blog as a tool of reflecting on my work experience and potentially providing a start for my CMALT portfolio (hopefully more on that in another post). So I’m going to try to combine these topics, into a ‘food I had at work’ blog. Well, sort of…</p>
<p><img loading="lazy" decoding="async" class="wp-image-62 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg" alt="a display table with cake trays" width="241" height="428" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-577x1024.jpg 577w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-768x1364.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-865x1536.jpg 865w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-1153x2048.jpg 1153w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-541x960.jpg 541w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/a-scaled.jpg 1442w" sizes="auto, (max-width: 241px) 100vw, 241px" />Every time I come into the Argyle House office I feel tempted by the myriad of lovely shops around the Grassmarket area: ice-cream from <a href="https://www.instagram.com/marysmilkbar/">Mary’s Milk Bar</a>, cake from <a href="https://www.instagram.com/tastybunsbakery/">Tasty Buns</a>, coffee from the <a href="https://www.thesourcecoffee.co.uk/">Source</a>, spanakopita from the <a href="https://www.facebook.com/GreekArtisanPastries/">Greek Artisan Pastries</a> are just a handful of my favourites that come to mind. Yesterday I added a new discovery to that list: the relatively recently opened <a href="https://www.instagram.com/slice_of_greece_/">Slice of Greece</a>, on Morrison Street. As I waltzed into the shop, my eyes were instantly drawn to the mastic desserts in the display. The one I chose was a Galaktompoureko, a mastic flavoured custard filled phyllo pastry pie. Why, you are asking, among all the chocolate covered croissants, baklavas and mousse pots?</p>
<p>Mastic, or mastiha, happens to be one of my favourite flavours in the world! Sadly, I don’t come across it as often as I’d like to, especially in the UK, it is an underdog. In all the GBBO seasons I’ve watched (admittedly, not all, so somebody PLEASE correct me if I’m wrong) I’ve only seen it used once in season 12 when George made brandy snaps filled with an orange blossom and mastic creme pat, and mentioned once on their recipe page (<a href="https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/">https://thegreatbritishbakeoff.co.uk/recipes/all/paul-hollywood-flaounas/</a>).</p>
<h4 style="text-align: center">But what exactly is mastic?</h4>
<h4><img loading="lazy" decoding="async" class="wp-image-33 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg" alt="Close-up of resin dripping out of a mastic tree bark" width="234" height="415" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-169x300.jpg 169w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423-576x1024.jpg 576w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/20220818_121423.jpg 613w" sizes="auto, (max-width: 234px) 100vw, 234px" /></h4>
<p>Mastic is the resin extracted from the <em>Pistacia lentiscus </em>aka the Chios mastic tree, a little shrub like tree. The resin is ‘revealed’ by cutting into the tree bark, which releases the ‘tears’ of resin. These harden and are then collected and cleaned. It is used as a flavouring in lots of deserts (list) as well as in mastica, an alcoholic sweet liqueur similar to ouzo, and in cosmetic products due to its nice smell and supposed medicinal benefits. It is also the earliest known form of chewing gum: the Ancient Greeks aptly named the resin after the word <em>mastikhan, </em>“to gnash the teeth”, which through a long linguistic journey via Latin and Old French also reached English: “to masticate, to chew”.</p>
<p>Mastichochoria, the mastic villages in the south of the island, are the main (and only constant) producers of mastic in the world. There are small groves in the Çeşme peninsula in Turkey, and the Japanese tried importing and growing the trees but the unique soil and climate of Chios made planting the trees elsewhere an impossible task.</p>
<p>The taste is very unique and hard to describe. It always takes me a while to come up with an answer when someone asks me to describe it, and I always wish I had a piece of gum to hand them, as it would make the process a lot easier. I’d say it tastes ‘resin-y’ (what a surprise!) herbally and pine-y. It is definitely an aquired taste. So far I’ve only used it in a <a href="https://www.tasteatlas.com/maras-dondurmas/recipe">Maraş style ice-cream</a> and flavoured custard.</p>
<h4 style="text-align: center">A bit of a (his)story*</h4>
<p><img loading="lazy" decoding="async" class="wp-image-57 alignright" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg" alt="Massacre of Choios painting by Eugene Delacroix" width="327" height="387" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-254x300.jpg 254w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-867x1024.jpg 867w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-768x907.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio-813x960.jpg 813w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/Eugene_Delacroix_-_Le_Massacre_de_Scio.jpg 1024w" sizes="auto, (max-width: 327px) 100vw, 327px" />To me, mastic is a taste of summer holidays in Turkey (I know, Greek people please be patient). My dad would always have a packet of mastic chewing gum in his car, and it would the first thing I tasted upon my arrival in Turkey. However, it was not until this summer that I visited the ‘home’ of mastic- the island of Chios. The 5<sup>th</sup> biggest Greek island, it is located only 3.5 miles (5.5 km) from the Turkish coast. And as the location suggests, it has a very turbulent history.</p>
<p>Archaeological research on Chios has found evidence of habitation as early as the Neolithic era, and the island has gone through the hands of multiple occupiers: Persians, Greeks, Romans, Byzantine, Genoese, Ottoman and eventually back to the Greek, after the First Balkan War in 1912. All of which left an imprint on the island. There is still quite a bit of animosity between the Greek and the Turkish people of the island, one of the most interesting examples being the removal and re-addition of the replica of Eugene Delacroix’s “The Massacre of Chios” from the Byzantine museum on Chios (incidentally, the museum is located in the old mosque). In 2009, a copy of the painting was displayed in the museum, swiftly withdrawn a few months later in a “good faith initiative” for the improvement of Greek-Turkish relations. However, the Greeks protested its removal, leading to the copy being brought back on display.</p>
<p>So here it is, a blog about the food I had at work, turned travel blog, turned love declaration to mastic.</p>
<p>Oh, and please give Slice of Greece a try. I did lie a bit at the start, I also got a couple of mousse pots because I couldn’t resist them – the black forest and the caramel ones. Also, the next day I returned for a (huge) slice of baklava, it had to be tested! I can now also confirm they do one of the best baklavas I’ve had in Edinburgh- laden with syrup, walnuts and cinnamon, and not overly sweet, which was a nice surprise. <img loading="lazy" decoding="async" class="size-medium wp-image-69 aligncenter" src="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg" alt="2 plastic pots with mouse in the foreground, and a pastry in a box in the background" width="298" height="300" srcset="https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-298x300.jpg 298w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1019x1024.jpg 1019w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-150x150.jpg 150w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-768x772.jpg 768w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-1528x1536.jpg 1528w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake-955x960.jpg 955w, https://blogs.ed.ac.uk/deliageorgescu/wp-content/uploads/sites/7365/2022/10/cake.jpg 1717w" sizes="auto, (max-width: 298px) 100vw, 298px" /></p>
<p>*historic facts borrowed from <a href="https://en.wikipedia.org/wiki/Chios">https://en.wikipedia.org/wiki/Chios</a></p>
<span class="uoe-published-time uoe-seo-hidden-area">
<time datetime="2022-10-05" itemprop="dateModified">Oct 5, 2022</time>
</span>
]]></content:encoded>
<wfw:commentRss>https://blogs.ed.ac.uk/deliageorgescu/2022/10/05/masticate-on-this/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
"
["headers"]=>
object(WpOrg\Requests\Response\Headers)#2489 (1) {
["data":protected]=>
array(12) {
["content-type"]=>
array(1) {
[0]=>
string(34) "application/rss+xml; charset=UTF-8"
}
["date"]=>
array(1) {
[0]=>
string(29) "Fri, 29 May 2026 20:36:03 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(74) "<https://blogs.ed.ac.uk/deliageorgescu/wp-json/>; rel="https://api.w.org/""
}
["set-cookie"]=>
array(3) {
[0]=>
string(62) "PHPSESSID=h95d7shp0u493dp185098fp4su; path=/; secure; HttpOnly"
[1]=>
string(138) "spo_7365_fa=81d1f6808915cd52fa07e96bf7b18f33; expires=Fri, 29 May 2026 21:06:03 GMT; Max-Age=1800; path=/deliageorgescu/; Secure; HttpOnly"
[2]=>
string(125) "RCKBMHKB=027ff8be59-56fd-48uXynZoinVOLOoI0yYCb_E_y7Qyp-tywWEZV-Yne3MGUvfHANXIOQFgPqFGKoLUHHt3g; path=/; SameSite=None; Secure"
}
["last-modified"]=>
array(1) {
[0]=>
string(29) "Wed, 18 Mar 2026 14:55:04 GMT"
}
["etag"]=>
array(1) {
[0]=>
string(34) ""a92b1921fccd13b266bcc35eca7a5c90""
}
["vary"]=>
array(1) {
[0]=>
string(15) "Accept-Encoding"
}
}
}
["status_code"]=>
int(200)
["protocol_version"]=>
float(1.1)
["success"]=>
bool(true)
["redirects"]=>
int(0)
["url"]=>
string(43) "https://blogs.ed.ac.uk/deliageorgescu/feed/"
["history"]=>
array(0) {
}
["cookies"]=>
object(WpOrg\Requests\Cookie\Jar)#2485 (1) {
["cookies":protected]=>
array(3) {
["PHPSESSID"]=>
object(WpOrg\Requests\Cookie)#2493 (5) {
["name"]=>
string(9) "PHPSESSID"
["value"]=>
string(26) "h95d7shp0u493dp185098fp4su"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2492 (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(1780086963)
["last-access"]=>
int(1780086963)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086963)
}
["spo_7365_fa"]=>
object(WpOrg\Requests\Cookie)#2494 (5) {
["name"]=>
string(11) "spo_7365_fa"
["value"]=>
string(32) "81d1f6808915cd52fa07e96bf7b18f33"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2495 (1) {
["data":protected]=>
array(6) {
["expires"]=>
int(1780088763)
["max-age"]=>
int(1780088763)
["path"]=>
string(16) "/deliageorgescu/"
["secure"]=>
bool(true)
["httponly"]=>
bool(true)
["domain"]=>
string(14) "blogs.ed.ac.uk"
}
}
["flags"]=>
array(4) {
["creation"]=>
int(1780086963)
["last-access"]=>
int(1780086963)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086963)
}
["RCKBMHKB"]=>
object(WpOrg\Requests\Cookie)#2496 (5) {
["name"]=>
string(8) "RCKBMHKB"
["value"]=>
string(85) "027ff8be59-56fd-48uXynZoinVOLOoI0yYCb_E_y7Qyp-tywWEZV-Yne3MGUvfHANXIOQFgPqFGKoLUHHt3g"
["attributes"]=>
object(WpOrg\Requests\Utility\CaseInsensitiveDictionary)#2497 (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(1780086963)
["last-access"]=>
int(1780086963)
["persistent"]=>
bool(false)
["host-only"]=>
bool(true)
}
["reference_time"]=>
int(1780086963)
}
}
}
}
["filename":protected]=>
NULL
}
}
Diag| Considering item [https://blogs.ed.ac.uk/deliageorgescu/?p=150] "Badges with Backbone @ Canvas UK Spring meeting"
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/deliageorgescu/?p=150'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/deliageorgescu/?p=150] "Badges with Backbone @ Canvas UK Spring meeting" is a duplicate of an existing post.
Diag| Considering item [https://blogs.ed.ac.uk/deliageorgescu/?p=139] "Back to the Beginning: Black Sabbath and Birmingham"
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/deliageorgescu/?p=139'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/deliageorgescu/?p=139] "Back to the Beginning: Black Sabbath and Birmingham" 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
Diag| Considering item [https://blogs.ed.ac.uk/deliageorgescu/?p=30] "Masticate on this!"
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/deliageorgescu/?p=30'))
ORDER BY wp_30_posts.post_date DESC
Diag====| Item [https://blogs.ed.ac.uk/deliageorgescu/?p=30] "Masticate on this!" is a duplicate of an existing post.
FRAME – Digital Learning Applications and Media
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.
Critical notice regarding Adobe Flash Since Adobe no longer supports Flash Player, Adobe strongly recommends all users immediately uninstall Flash Player to help protect their systems. Please note the University of Edinburgh is actively working with our NHS Scotland and NHS England South partners to develop a new post-Flash version of this e-learning resource. You […]
Hi Jackie, This sounds like an exciting creative project. Designing and animating custom stick figures from scratch is not that…
This is fascinating, particularly the idea of "coding without writing a single line." It really highlights the potential of prompt…
N.B. Closing date now extended to 23:59 on Wednesday, 4th of March.
Thanks Stewart for your encouragement!
Thank you Miki. I very much enjoyed reading this with my morning coffee. It was lovely to have such a…