This feed does not validate.
line 378, column 34: (5 occurrences) [help]
<id>letterboxd-watch-719412012</id>
^
line 624, column 130: (2 occurrences) [help]
... e444ea217fe09dbbe5995ffec2fefcd98.png"/>
^
line 1418, column 4: (5 occurrences) [help]
<displaycategories>
^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
... rium.org/" type="application/atom+xml"/>
^
<id>https://www.last.fm/music/Chloe+Slater/_/24+hours</id>
^
line 85, column 0: (5 occurrences) [help]
<content type="html"><div class="push js-feed-item-view" data-hydro-v ...
line 85, column 0: (5 occurrences) [help]
<content type="html"><div class="push js-feed-item-view" data-hydro-v ...
line 98, column 0: (7 occurrences) [help]
· <relative-time tense="past" datetime="2024-11-21T00:29:58Z" dat ...
line 286, column 0: (2 occurrences) [help]
<a class="Link--primary no-underline wb-break-all" aria-label=" ...
line 427, column 208: (3 occurrences) [help]
... nal side projects</a> a few months ago, <span style="box-sizing: border- ...
^
line 556, column 33: (5 occurrences) [help]
<updated>2024-11-17T17:19:37Z</updated>
^
<summary/>
^
... !). The issue description was simple – “<bdi class="js-issue-title markd ...
^
line 1394, column 2: (5 occurrences) [help]
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/element ...
^
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>planet davorg</title>
<link rel="alternate" href="https://davorg.theplanetarium.org/" type="text/html"/>
<subtitle>Aggregating Dave's stuff</subtitle>
<author>
<name>Dave Cross</name>
<email>dave@theplanetarium.org</email>
</author>
<updated>2024-11-21T18:01:18Z</updated>
<link rel="self" href="https://davorg.theplanetarium.org/" type="application/atom+xml"/>
<id>https://davorg.theplanetarium.org/</id>
<entry>
<title>The Cure - Other Voices - live</title>
<link rel="alternate" href="https://www.last.fm/music/The+Cure/_/Other+Voices+-+live" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.last.fm/music/The+Cure"> The Cure</a>
</div>
</content>
<id>https://www.last.fm/music/The+Cure/_/Other+Voices+-+live</id>
<published>2024-11-21T17:52:00Z</published>
<updated>2024-11-21T17:52:00Z</updated>
</entry>
<entry>
<title>The Cure - At Night - Live</title>
<link rel="alternate" href="https://www.last.fm/music/The+Cure/_/At+Night+-+Live" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.last.fm/music/The+Cure"> The Cure</a>
</div>
</content>
<id>https://www.last.fm/music/The+Cure/_/At+Night+-+Live</id>
<published>2024-11-21T17:46:00Z</published>
<updated>2024-11-21T17:46:00Z</updated>
</entry>
<entry>
<title>The Cure - Three Imaginary Boys - Live</title>
<link rel="alternate" href="https://www.last.fm/music/The+Cure/_/Three+Imaginary+Boys+-+Live" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.last.fm/music/The+Cure"> The Cure</a>
</div>
</content>
<id>https://www.last.fm/music/The+Cure/_/Three+Imaginary+Boys+-+Live</id>
<published>2024-11-21T17:42:00Z</published>
<updated>2024-11-21T17:42:00Z</updated>
</entry>
<entry>
<title>Chloe Slater - 24 hours</title>
<link rel="alternate" href="https://www.last.fm/music/Chloe+Slater/_/24+hours" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.last.fm/music/Chloe+Slater"> Chloe Slater</a>
</div>
</content>
<id>https://www.last.fm/music/Chloe+Slater/_/24+hours</id>
<published>2024-11-21T11:41:00Z</published>
<updated>2024-11-21T11:41:00Z</updated>
</entry>
<entry>
<title>Chloe Slater - 24 hours</title>
<link rel="alternate" href="https://www.last.fm/music/Chloe+Slater/_/24+hours" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.last.fm/music/Chloe+Slater"> Chloe Slater</a>
</div>
</content>
<id>https://www.last.fm/music/Chloe+Slater/_/24+hours</id>
<published>2024-11-21T11:29:00Z</published>
<updated>2024-11-21T11:29:00Z</updated>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:github.com,2008:PushEvent/44036467838</id>
<published>2024-11-21T00:29:58Z</published>
<updated>2024-11-21T00:29:58Z</updated>
<link type="text/html" rel="alternate" href="https://github.com/davorg/uptime/compare/ffae784a35...81d50d9de1"/>
<title type="html">davorg pushed to master in davorg/uptime</title>
<author>
<name>davorg</name>
<email>dave@davecross.co.uk</email>
<uri>https://github.com/davorg</uri>
</author>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/24642?s=30&v=4"/>
<content type="html"><div class="push js-feed-item-view" data-hydro-view="{&quot;event_type&quot;:&quot;news_feed.event.view&quot;,&quot;payload&quot;:{&quot;event&quot;:{&quot;repo_id&quot;:567308850,&quot;actor_id&quot;:24642,&quot;public&quot;:true,&quot;type&quot;:&quot;PushEvent&quot;,&quot;target_id&quot;:null,&quot;id&quot;:44036467838,&quot;additional_details_shown&quot;:false,&quot;grouped&quot;:false},&quot;event_group&quot;:null,&quot;org_id&quot;:null,&quot;target_type&quot;:&quot;event&quot;,&quot;user_id&quot;:null,&quot;feed_card&quot;:{&quot;card_retrieved_id&quot;:&quot;625aed00-bec2-49eb-b493-09bfb8267e8b&quot;},&quot;originating_url&quot;:&quot;https://github.com/davorg.atom&quot;}}" data-hydro-view-hmac="0416b02c8d701a121ef68a9849db616aec2dc2d8d9c0de79f58dbe0aa261e67a"><div class="body">
<!-- push -->
<div class="d-flex flex-items-baseline py-4">
<div class="d-flex flex-column width-full">
<div class="color-fg-muted">
<span class="mr-2"><a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=64&amp;v=4" width="32" height="32" alt="@davorg"></a></span>
<a class="Link--primary no-underline wb-break-all" href="/davorg" rel="noreferrer">davorg</a>
pushed to
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
in
<a class="Link--primary no-underline wb-break-all" href="/davorg/uptime" rel="noreferrer">davorg/uptime</a>
<span>
· <relative-time tense="past" datetime="2024-11-21T00:29:58Z" data-view-component="true">November 21, 2024 00:29</relative-time>
</span>
<div class="Box p-3 mt-2 color-shadow-medium ">
<span>1 commit to</span>
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
<div class="commits ">
<ul class="list-style-none">
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/upptime-bot" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/73812536?s=32&amp;v=4" width="16" height="16" alt="@upptime-bot"></a>
</span>
<code><a class="mr-1" href="/davorg/uptime/commit/81d50d9de1867f2e4695167983e009e587d52bc9" rel="noreferrer">81d50d9</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
🍱 Update graphs [skip ci]
</blockquote>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div></div></content>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:github.com,2008:PushEvent/44036088485</id>
<published>2024-11-21T00:08:46Z</published>
<updated>2024-11-21T00:08:46Z</updated>
<link type="text/html" rel="alternate" href="https://github.com/davorg/uptime/compare/d80d014fe5...ffae784a35"/>
<title type="html">davorg pushed to master in davorg/uptime</title>
<author>
<name>davorg</name>
<email>dave@davecross.co.uk</email>
<uri>https://github.com/davorg</uri>
</author>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/24642?s=30&v=4"/>
<content type="html"><div class="push js-feed-item-view" data-hydro-view="{&quot;event_type&quot;:&quot;news_feed.event.view&quot;,&quot;payload&quot;:{&quot;event&quot;:{&quot;repo_id&quot;:567308850,&quot;actor_id&quot;:24642,&quot;public&quot;:true,&quot;type&quot;:&quot;PushEvent&quot;,&quot;target_id&quot;:null,&quot;id&quot;:44036088485,&quot;additional_details_shown&quot;:false,&quot;grouped&quot;:false},&quot;event_group&quot;:null,&quot;org_id&quot;:null,&quot;target_type&quot;:&quot;event&quot;,&quot;user_id&quot;:null,&quot;feed_card&quot;:{&quot;card_retrieved_id&quot;:&quot;e8227cd7-783c-4437-9dc5-09e19261a7b6&quot;},&quot;originating_url&quot;:&quot;https://github.com/davorg.atom&quot;}}" data-hydro-view-hmac="5d7cf396b0599d00f62fda664fcc526d05673758a93bf754c8b300e750c805a0"><div class="body">
<!-- push -->
<div class="d-flex flex-items-baseline py-4">
<div class="d-flex flex-column width-full">
<div class="color-fg-muted">
<span class="mr-2"><a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=64&amp;v=4" width="32" height="32" alt="@davorg"></a></span>
<a class="Link--primary no-underline wb-break-all" href="/davorg" rel="noreferrer">davorg</a>
pushed to
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
in
<a class="Link--primary no-underline wb-break-all" href="/davorg/uptime" rel="noreferrer">davorg/uptime</a>
<span>
· <relative-time tense="past" datetime="2024-11-21T00:08:46Z" data-view-component="true">November 21, 2024 00:08</relative-time>
</span>
<div class="Box p-3 mt-2 color-shadow-medium ">
<span>2 commits to</span>
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
<div class="commits ">
<ul class="list-style-none">
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/upptime-bot" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/73812536?s=32&amp;v=4" width="16" height="16" alt="@upptime-bot"></a>
</span>
<code><a class="mr-1" href="/davorg/uptime/commit/ffae784a35d3135f2e5226f978629b31b800a16e" rel="noreferrer">ffae784</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
🗃️ Update status summary [skip ci] [upptime]
</blockquote>
</div>
</li>
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/upptime-bot" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/73812536?s=32&amp;v=4" width="16" height="16" alt="@upptime-bot"></a>
</span>
<code><a class="mr-1" href="/davorg/uptime/commit/02064e780fbda8eacb5c3aa4d7c713ccc12debde" rel="noreferrer">02064e7</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
📝 Update summary in README [skip ci] [upptime]
</blockquote>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div></div></content>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:github.com,2008:PushEvent/44034770241</id>
<published>2024-11-20T23:01:24Z</published>
<updated>2024-11-20T23:01:24Z</updated>
<link type="text/html" rel="alternate" href="https://github.com/davorg/uptime/compare/b802c93673...d80d014fe5"/>
<title type="html">davorg pushed to master in davorg/uptime</title>
<author>
<name>davorg</name>
<email>dave@davecross.co.uk</email>
<uri>https://github.com/davorg</uri>
</author>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/24642?s=30&v=4"/>
<content type="html"><div class="push js-feed-item-view" data-hydro-view="{&quot;event_type&quot;:&quot;news_feed.event.view&quot;,&quot;payload&quot;:{&quot;event&quot;:{&quot;repo_id&quot;:567308850,&quot;actor_id&quot;:24642,&quot;public&quot;:true,&quot;type&quot;:&quot;PushEvent&quot;,&quot;target_id&quot;:null,&quot;id&quot;:44034770241,&quot;additional_details_shown&quot;:false,&quot;grouped&quot;:false},&quot;event_group&quot;:null,&quot;org_id&quot;:null,&quot;target_type&quot;:&quot;event&quot;,&quot;user_id&quot;:null,&quot;feed_card&quot;:{&quot;card_retrieved_id&quot;:&quot;f6c1a718-6560-42c0-b42a-45dadb29d4cf&quot;},&quot;originating_url&quot;:&quot;https://github.com/davorg.atom&quot;}}" data-hydro-view-hmac="2e7eba731ac9d0ba17c0376a4297fc4b0ed322253a26baf9a4857dd6ebc56608"><div class="body">
<!-- push -->
<div class="d-flex flex-items-baseline py-4">
<div class="d-flex flex-column width-full">
<div class="color-fg-muted">
<span class="mr-2"><a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=64&amp;v=4" width="32" height="32" alt="@davorg"></a></span>
<a class="Link--primary no-underline wb-break-all" href="/davorg" rel="noreferrer">davorg</a>
pushed to
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
in
<a class="Link--primary no-underline wb-break-all" href="/davorg/uptime" rel="noreferrer">davorg/uptime</a>
<span>
· <relative-time tense="past" datetime="2024-11-20T23:01:24Z" data-view-component="true">November 20, 2024 23:01</relative-time>
</span>
<div class="Box p-3 mt-2 color-shadow-medium ">
<span>2 commits to</span>
<a class="branch-name" href="/davorg/uptime/tree/master" rel="noreferrer">master</a>
<div class="commits ">
<ul class="list-style-none">
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/upptime-bot" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/73812536?s=32&amp;v=4" width="16" height="16" alt="@upptime-bot"></a>
</span>
<code><a class="mr-1" href="/davorg/uptime/commit/d80d014fe546aa0b364b8d5a43f2c9550b909c32" rel="noreferrer">d80d014</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
🟩 Aphra is up (200 in 236 ms) [skip ci] [upptime]
</blockquote>
</div>
</li>
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/upptime-bot" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/73812536?s=32&amp;v=4" width="16" height="16" alt="@upptime-bot"></a>
</span>
<code><a class="mr-1" href="/davorg/uptime/commit/bb09e3f837b827492cd9b25e07598a7594ae455e" rel="noreferrer">bb09e3f</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
🟩 Klortho is up (200 in 632 ms) [skip ci] [upptime]
</blockquote>
</div>
</li>
<li class="f6 mt-2">
<a class="Link--secondary" href="/davorg/uptime/compare/b802c93673...d80d014fe5" rel="noreferrer">10 more commits »</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div></div></content>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:github.com,2008:PullRequestEvent/44017690844</id>
<published>2024-11-20T14:07:40Z</published>
<updated>2024-11-20T14:07:40Z</updated>
<link type="text/html" rel="alternate" href="https://github.com/perladvent/Perl-Advent/pull/452"/>
<title type="html">davorg opened a pull request in perladvent/Perl-Advent</title>
<author>
<name>davorg</name>
<email>dave@davecross.co.uk</email>
<uri>https://github.com/davorg</uri>
</author>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/24642?s=30&v=4"/>
<content type="html"><div class="issues_opened js-feed-item-view" data-hydro-view="{&quot;event_type&quot;:&quot;news_feed.event.view&quot;,&quot;payload&quot;:{&quot;event&quot;:{&quot;repo_id&quot;:3037552,&quot;actor_id&quot;:24642,&quot;public&quot;:true,&quot;type&quot;:&quot;PullRequestEvent&quot;,&quot;target_id&quot;:null,&quot;id&quot;:44017690844,&quot;additional_details_shown&quot;:false,&quot;grouped&quot;:false},&quot;event_group&quot;:null,&quot;org_id&quot;:null,&quot;target_type&quot;:&quot;event&quot;,&quot;user_id&quot;:null,&quot;feed_card&quot;:{&quot;card_retrieved_id&quot;:&quot;4170f642-70d5-461c-887b-fdd4b7da18bb&quot;},&quot;originating_url&quot;:&quot;https://github.com/davorg.atom&quot;}}" data-hydro-view-hmac="bb622666171bfa834cc26107a4abc200f2da5be15c8b6516043b5809d21298cd"><div class="body">
<!-- pull_request -->
<div class="d-flex flex-items-baseline py-4">
<div class="d-flex flex-column width-full">
<div>
<div class="d-flex flex-items-baseline">
<div class="color-fg-muted">
<span class="mr-2"><a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=64&amp;v=4" width="32" height="32" alt="@davorg"></a></span>
<a class="Link--primary no-underline wb-break-all" href="/davorg" rel="noreferrer">davorg</a>
opened
<a class="Link--primary no-underline wb-break-all" aria-label="perladvent/Perl-Advent#452" href="/perladvent/Perl-Advent/pull/452" rel="noreferrer">perladvent/Perl-Advent#452</a>
<span>
· <relative-time tense="past" datetime="2024-11-20T14:07:40Z" data-view-component="true">November 20, 2024 14:07</relative-time>
</span>
</div>
</div>
</div>
<div class="Box p-3 my-2 color-shadow-medium ">
<svg height="16" aria-label="Pull request" class="octicon octicon-git-pull-request open d-inline-block mt-1 float-left" viewBox="0 0 16 16" version="1.1" width="16" role="img"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>
<div class="ml-4">
<div>
<span class="f4 lh-condensed text-bold color-fg-default"><a class="color-fg-default text-bold" aria-label="First draft of an article about GitHub Actions" href="/perladvent/Perl-Advent/pull/452" rel="noreferrer">First draft of an article about GitHub Actions</a></span>
<span class="f4 color-fg-muted ml-1">#452</span>
</div>
<div class="diffstat d-inline-block mt-1">
<span class="color-fg-success">+198</span>
<span class="color-fg-danger">-0</span>
</div>
</div>
</div>
</div>
</div>
</div></div></content>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:github.com,2008:PushEvent/44017657786</id>
<published>2024-11-20T14:06:48Z</published>
<updated>2024-11-20T14:06:48Z</updated>
<link type="text/html" rel="alternate" href="https://github.com/davorg/Perl-Advent/compare/48d2f3ce43...7e3f48aa67"/>
<title type="html">davorg pushed to main in davorg/Perl-Advent</title>
<author>
<name>davorg</name>
<email>dave@davecross.co.uk</email>
<uri>https://github.com/davorg</uri>
</author>
<media:thumbnail height="30" width="30" url="https://avatars.githubusercontent.com/u/24642?s=30&v=4"/>
<content type="html"><div class="push js-feed-item-view" data-hydro-view="{&quot;event_type&quot;:&quot;news_feed.event.view&quot;,&quot;payload&quot;:{&quot;event&quot;:{&quot;repo_id&quot;:888423313,&quot;actor_id&quot;:24642,&quot;public&quot;:true,&quot;type&quot;:&quot;PushEvent&quot;,&quot;target_id&quot;:null,&quot;id&quot;:44017657786,&quot;additional_details_shown&quot;:false,&quot;grouped&quot;:false},&quot;event_group&quot;:null,&quot;org_id&quot;:null,&quot;target_type&quot;:&quot;event&quot;,&quot;user_id&quot;:null,&quot;feed_card&quot;:{&quot;card_retrieved_id&quot;:&quot;3c3819a3-a182-43ad-9058-31a963132fe5&quot;},&quot;originating_url&quot;:&quot;https://github.com/davorg.atom&quot;}}" data-hydro-view-hmac="0f20ccae7cba16d78410137f9d60ab86e8616dc1ceca3d227ecd54cb9fcc7160"><div class="body">
<!-- push -->
<div class="d-flex flex-items-baseline py-4">
<div class="d-flex flex-column width-full">
<div class="color-fg-muted">
<span class="mr-2"><a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="avatar avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=64&amp;v=4" width="32" height="32" alt="@davorg"></a></span>
<a class="Link--primary no-underline wb-break-all" href="/davorg" rel="noreferrer">davorg</a>
pushed to
<a class="branch-name" href="/davorg/Perl-Advent/tree/main" rel="noreferrer">main</a>
in
<a class="Link--primary no-underline wb-break-all" href="/davorg/Perl-Advent" rel="noreferrer">davorg/Perl-Advent</a>
<span>
· <relative-time tense="past" datetime="2024-11-20T14:06:48Z" data-view-component="true">November 20, 2024 14:06</relative-time>
</span>
<div class="Box p-3 mt-2 color-shadow-medium ">
<span>1 commit to</span>
<a class="branch-name" href="/davorg/Perl-Advent/tree/main" rel="noreferrer">main</a>
<div class="commits pusher-is-only-committer">
<ul class="list-style-none">
<li class="d-flex flex-items-baseline">
<span>
<a class="d-inline-block" href="/davorg" rel="noreferrer"><img class="mr-1 avatar-user" src="https://avatars.githubusercontent.com/u/24642?s=32&amp;v=4" width="16" height="16" alt="@davorg"></a>
</span>
<code><a class="mr-1" href="/davorg/Perl-Advent/commit/7e3f48aa67ec8ed3b41679de0602768cdc1269f3" rel="noreferrer">7e3f48a</a></code>
<div class="dashboard-break-word lh-condensed">
<blockquote>
First draft of an article about GitHub Actions
</blockquote>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div></div></content>
</entry>
<entry>
<title>Conclave, 2024 - ★★★½</title>
<link rel="alternate" href="https://letterboxd.com/realdavorg/film/conclave/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"> <p><img src="https://a.ltrbxd.com/resized/film-poster/8/7/7/2/5/3/877253-conclave-0-600-0-900-crop.jpg?v=f9cbf50dec"/></p> <p>Watched on Tuesday November 19, 2024.</p> </div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>letterboxd-watch-719412012</id>
<published>2024-11-20T11:41:34+13:00</published>
<updated>2024-11-20T11:41:34+13:00</updated>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:trakt.tv,2005:Episode/6399194/10195046325</id>
<published>2024-11-18T08:19:00-06:00</published>
<updated>2024-11-18T08:19:00-06:00</updated>
<link rel="alternate" type="text/html" href="https://trakt.tv/episodes/6399194"/>
<title>Dune: Prophecy 1x01 "The Hidden Hand"</title>
<summary>On Wallach IX, young Valya Harkonnen promises Mother Superior Raquella that she'll protect the Sisterhood by putting one of their own on the Imperial Throne. Thirty years later, Valya faces a threat to her long-awaited plan.</summary>
<content type="html"><img src="https://walter-r2.trakt.tv/images/episodes/006/399/194/screenshots/thumb/3b99029208.jpg" />On Wallach IX, young Valya Harkonnen promises Mother Superior Raquella that she&#39;ll protect the Sisterhood by putting one of their own on the Imperial Throne. Thirty years later, Valya faces a threat to her long-awaited plan.</content>
<media:content url="https://walter-r2.trakt.tv/images/shows/000/152/957/posters/medium/7bf7a4d063.jpg"/>
<media:thumbnail url="https://walter-r2.trakt.tv/images/shows/000/152/957/posters/thumb/7bf7a4d063.jpg"/>
<author>
<name>davorg</name>
</author>
</entry>
<entry>
<title>DAVECROSS has released App-LastStats-0.0.9</title>
<link rel="alternate" href="https://metacpan.org/release/DAVECROSS/App-LastStats-0.0.9" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">A module to fetch and display Last.fm statistics</div>
</content>
<author>
<name>DAVECROSS</name>
</author>
<id>https://metacpan.org/release/DAVECROSS/App-LastStats-0.0.9</id>
<published>2024-11-18T12:49:34Z</published>
<updated>2024-11-18T12:49:34Z</updated>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:trakt.tv,2005:Episode/4096105/10192772812</id>
<published>2024-11-17T16:04:06-06:00</published>
<updated>2024-11-17T16:04:06-06:00</updated>
<link rel="alternate" type="text/html" href="https://trakt.tv/episodes/4096105"/>
<title>Alma's Not Normal 1x01 "Feng Suey"</title>
<summary>After a recent break-up, Alma tries to get her life back on track. But with no job, no qualifications and a rebellious streak a mile wide, it is not going to be easy.</summary>
<content type="html"><img src="https://walter-r2.trakt.tv/images/episodes/004/096/105/screenshots/thumb/279bc3e2f0.jpg" />After a recent break-up, Alma tries to get her life back on track. But with no job, no qualifications and a rebellious streak a mile wide, it is not going to be easy.</content>
<media:content url="https://walter-r2.trakt.tv/images/shows/000/160/209/posters/medium/adbc9cb2a0.jpg"/>
<media:thumbnail url="https://walter-r2.trakt.tv/images/shows/000/160/209/posters/thumb/adbc9cb2a0.jpg"/>
<author>
<name>davorg</name>
</author>
</entry>
<entry>
<title>A link site of your very own</title>
<link rel="alternate" href="https://perlhacks.com/2024/11/a-link-site-of-your-very-own/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>When I first wrote about <a href="https://perlhacks.com/2024/03/pointless-personal-side-projects/">my pointless personal side projects</a> a few months ago, <span style="box-sizing: border-box; margin: 0px; padding: 0px;">I used the software I had written to generate <a href="https://links.davecross.co.uk/" target="_blank" rel="noopener">my own link site</a> (like a <a href="https://linktr.ee/" target="_blank" rel="noopener">LinkTree</a> clone) as an example</span>.</p>
<p>I’m happy to report that I’ve continued to work on this software<span style="box-sizing: border-box; margin: 0px; padding: 0px;">. Recently, it passed another milestone—I released a version to CPAN. It’s called <a href="https://metacpan.org/release/DAVECROSS/App-LinkSite-0.0.10" target="_blank" rel="noopener">App::LinkSite</a>[*]. If you’d like a Link Site of your own,</span> there are a few ways you can achieve that.</p>
<p>In all cases, you’ll want to gather a few pieces of information first. I store mine in <a href="https://github.com/davorg/links">a GitHub repo</a>[**].</p>
<p>Most importantly, you’ll need the list of links that you want to display on your site. These go in a file called “<a href="https://github.com/davorg/links/blob/main/links.json">links.json</a>“. There are two types of link.</p>
<ol>
<li>Social media links. These appear as a row of icons across the top of your link site. I’ve covered most of the popular options, but if there are any more you need, just <a href="https://github.com/davorg-cpan/app-linksite/issues">raise an issue</a> against the repo.</li>
<li>Standard links. These go to web sites, blogs and things like that. In every case, you’ll need the link and a title to display. You can optionally add a subtitle and a “new” flag (which will slightly change the way the link is displayed – to make it more obvious).</li>
</ol>
<p>There are also a few bits of header information you’ll want to add:</p>
<ul>
<li>Name</li>
<li>Default handle – this is displayed on the page, but also used as the default handle in your social media links</li>
<li>Image – presumably your picture</li>
<li>Open Graph Image – which is optionally added to the header of the site</li>
<li>The URL of your site – used for various SEO tags in the output</li>
<li>Description</li>
<li>Optional Google Analytics 4 Tag</li>
</ul>
<p>Put all of that information into “links.json” and put the images in a directory called “img”. Fuller <a href="https://github.com/davorg-cpan/app-linksite/blob/main/README.md">documentation is in the README</a>.</p>
<p>Now you get to decide how you’re going to build your site.</p>
<p><strong>Installed CPAN module</strong></p>
<p>You can install the module (App::LinkSite) using your favourite CPAN installation tool. Then you can just run the “linksite” command and your site will be written to the “docs” directory – which you can then deploy to the web in whatever way you prefer.</p>
<p><strong>Docker image</strong></p>
<p>I build a Docker image whenever I release a new version of the code. That image is <a href="https://hub.docker.com/r/davorg/links">released to the Docker hub</a>. So if you like Docker, you can just pull down the “davorg/links:latest” image and go from there.</p>
<p><strong>GitHub Actions and GitHub Pages</strong></p>
<p>But this is my favourite approach. Let GitHub do all the heavy lifting for you. There’s a little bit of set-up you’ll need to do.</p>
<ul>
<li>Store the “links.json” and the images in a new repo in GitHub</li>
<li>Create a “.github/workflows” directory in your new repo and copy my “<a href="https://github.com/davorg/links/blob/main/.github/workflows/build.yml">build.yaml</a>” workflow into that directory</li>
</ul>
<p>Now, whenever you change anything in your repo, your site will be rebuilt and redeployed automatically. There’s also a “run this workflow” under the “Actions” tab of your repo that allows you to run the build and deployment automatically whenever you want.</p>
<p>This is the mechanism I like best – as it’s the least amount of work!</p>
<hr/>
<p>If you try this, please let me know as I’d like to add an “Examples” section to the README file. Also, if you try it and have problems getting it working, then <a href="https://github.com/davorg-cpan/app-linksite/issues">let me know too</a>. It works for me, but I’m sure I’ve forgotten to cater for some specific complexity of how other people would like to use my software. I’m always happy to get suggestions on how to improve things – even if it’s just better documentation.</p>
<p>[*] My continued use of the new Perl class syntax still seems to be <a href="https://perlhacks.com/2024/08/on-the-bleading-edge/">causing problems with the CPAN infrastructure</a>. The distribution isn’t being indexed properly.</p>
<p>[**] This shouldn’t be too much of a surprise – I store pretty much everything in a GitHub repo.</p>
<p>The post <a href="https://perlhacks.com/2024/11/a-link-site-of-your-very-own/">A link site of your very own</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>When I first wrote about my pointless personal side projects a few months ago, I used the software I had written to generate my own link site (like a LinkTree clone) as an example. I’m happy to report that I’ve continued to work on this software. Recently, it passed another milestone—I released a version to CPAN. It’s called App::LinkSite[*]. If […]</p>
<p>The post <a href="https://perlhacks.com/2024/11/a-link-site-of-your-very-own/">A link site of your very own</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://perlhacks.com/?p=2259</id>
<published>2024-11-17T17:19:37Z</published>
<updated>2024-11-17T17:19:37Z</updated>
<category term="Programming"/>
<category term="app::linksite"/>
<category term="cpan"/>
<category term="linksite"/>
<category term="perl"/>
<category term="side projects"/>
</entry>
<entry>
<title>A link site of your very own</title>
<link rel="alternate" href="https://dev.to/davorg/a-link-site-of-your-very-own-3obf" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>When I first wrote about <a href="https://dev.to/davorg/pointless-personal-side-projects-1jlk">my pointless personal side projects</a> a few months ago, I used the software I had written to generate <a href="https://links.davecross.co.uk/" rel="noopener noreferrer">my own link site</a> (like a <a href="https://linktr.ee/" rel="noopener noreferrer">LinkTree</a> clone) as an example.</p>
<p>I’m happy to report that I’ve continued to work on this software. Recently, it passed another milestone—I released a version to CPAN. It’s called <a href="https://metacpan.org/release/DAVECROSS/App-LinkSite-0.0.10" rel="noopener noreferrer">App::LinkSite</a>[*]. If you’d like a Link Site of your own, there are a few ways you can achieve that.</p>
<p>In all cases, you’ll want to gather a few pieces of information first. I store mine in <a href="https://github.com/davorg/links" rel="noopener noreferrer">a GitHub repo</a>[**].</p>
<p>Most importantly, you’ll need the list of links that you want to display on your site. These go in a file called “<a href="https://github.com/davorg/links/blob/main/links.json" rel="noopener noreferrer">links.json</a>“. There are two types of link.</p>
<ol>
<li>Social media links. These appear as a row of icons across the top of your link site. I’ve covered most of the popular options, but if there are any more you need, just <a href="https://github.com/davorg-cpan/app-linksite/issues" rel="noopener noreferrer">raise an issue</a> against the repo.</li>
<li>Standard links. These go to web sites, blogs and things like that. In every case, you’ll need the link and a title to display. You can optionally add a subtitle and a “new” flag (which will slightly change the way the link is displayed – to make it more obvious).</li>
</ol>
<p>There are also a few bits of header information you’ll want to add:</p>
<ul>
<li>Name</li>
<li>Default handle – this is displayed on the page, but also used as the default handle in your social media links</li>
<li>Image – presumably your picture</li>
<li>Open Graph Image – which is optionally added to the header of the site</li>
<li>The URL of your site – used for various SEO tags in the output</li>
<li>Description</li>
<li>Optional Google Analytics 4 Tag</li>
</ul>
<p>Put all of that information into “links.json” and put the images in a directory called “img”. Fuller <a href="https://github.com/davorg-cpan/app-linksite/blob/main/README.md" rel="noopener noreferrer">documentation is in the README</a>.</p>
<p>Now you get to decide how you’re going to build your site.</p>
<p><strong>Installed CPAN module</strong></p>
<p>You can install the module (App::LinkSite) using your favourite CPAN installation tool. Then you can just run the “linksite” command and your site will be written to the “docs” directory – which you can then deploy to the web in whatever way you prefer.</p>
<p><strong>Docker image</strong></p>
<p>I build a Docker image whenever I release a new version of the code. That image is <a href="https://hub.docker.com/r/davorg/links" rel="noopener noreferrer">released to the Docker hub</a>. So if you like Docker, you can just pull down the “davorg/links:latest” image and go from there.</p>
<p><strong>GitHub Actions and GitHub Pages</strong></p>
<p>But this is my favourite approach. Let GitHub do all the heavy lifting for you. There’s a little bit of set-up you’ll need to do.</p>
<ul>
<li>Store the “links.json” and the images in a new repo in GitHub</li>
<li>Create a “.github/workflows” directory in your new repo and copy my “<a href="https://github.com/davorg/links/blob/main/.github/workflows/build.yml" rel="noopener noreferrer">build.yaml</a>” workflow into that directory</li>
</ul>
<p>Now, whenever you change anything in your repo, your site will be rebuilt and redeployed automatically. There’s also a “run this workflow” under the “Actions” tab of your repo that allows you to run the build and deployment automatically whenever you want.</p>
<p>This is the mechanism I like best – as it’s the least amount of work!</p>
<p>If you try this, please let me know as I’d like to add an “Examples” section to the README file. Also, if you try it and have problems getting it working, then <a href="https://github.com/davorg-cpan/app-linksite/issues" rel="noopener noreferrer">let me know too</a>. It works for me, but I’m sure I’ve forgotten to cater for some specific complexity of how other people would like to use my software. I’m always happy to get suggestions on how to improve things – even if it’s just better documentation.</p>
<p>[*] My continued use of the new Perl class syntax still seems to be <a href="https://dev.to/davorg/on-the-bleading-edge-1olf">causing problems with the CPAN infrastructure</a>. The distribution isn’t being indexed properly.</p>
<p>[**] This shouldn’t be too much of a surprise – I store pretty much everything in a GitHub repo.</p>
<p>The post <a href="https://perlhacks.com/2024/11/a-link-site-of-your-very-own/" rel="noopener noreferrer">A link site of your very own</a> appeared first on <a href="https://perlhacks.com" rel="noopener noreferrer">Perl Hacks</a>.</p>
</div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>https://dev.to/davorg/a-link-site-of-your-very-own-3obf</id>
<published>2024-11-17T17:19:37Z</published>
<updated>2024-11-17T17:19:37Z</updated>
<category term="programming"/>
<category term="applinksite"/>
<category term="cpan"/>
<category term="linksite"/>
</entry>
<entry>
<title>Sunshine, 2007 - ★★★★</title>
<link rel="alternate" href="https://letterboxd.com/realdavorg/film/sunshine-2007/2/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"> <p><img src="https://a.ltrbxd.com/resized/film-poster/5/1/1/1/0/51110-sunshine-0-600-0-900-crop.jpg?v=c4ffc70fd4"/></p> <p>Watched on Sunday November 17, 2024.</p> </div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>letterboxd-watch-717581490</id>
<published>2024-11-18T03:37:52+13:00</published>
<updated>2024-11-18T03:37:52+13:00</updated>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:trakt.tv,2005:Episode/1905933/10188137530</id>
<published>2024-11-16T14:16:12-06:00</published>
<updated>2024-11-16T14:16:12-06:00</updated>
<link rel="alternate" type="text/html" href="https://trakt.tv/episodes/1905933"/>
<title>The Leftovers 2x08 "International Assassin"</title>
<summary>In the wake of Kevin's desperate decision to vanquish Patti, questions and answers emerge as the world adjusts to the repercussions of what comes next.</summary>
<content type="html"><img src="https://walter-r2.trakt.tv/images/episodes/001/905/933/screenshots/thumb/f0ace2f06e.jpg" />In the wake of Kevin&#39;s desperate decision to vanquish Patti, questions and answers emerge as the world adjusts to the repercussions of what comes next.</content>
<media:content url="https://walter-r2.trakt.tv/images/shows/000/054/001/posters/medium/aac74f1afd.jpg"/>
<media:thumbnail url="https://walter-r2.trakt.tv/images/shows/000/054/001/posters/thumb/aac74f1afd.jpg"/>
<author>
<name>davorg</name>
</author>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:trakt.tv,2005:Episode/1905932/10188137242</id>
<published>2024-11-16T13:15:00-06:00</published>
<updated>2024-11-16T13:15:00-06:00</updated>
<link rel="alternate" type="text/html" href="https://trakt.tv/episodes/1905932"/>
<title>The Leftovers 2x07 "A Most Powerful Adversary"</title>
<summary>Nora gives Kevin and Jill news they weren't expecting. Laurie makes a rash decision that affects the Garveys. Kevin deals with the fallout of Nora's news, and explores his options re: tackling his Patti problem head-on.</summary>
<content type="html"><img src="https://walter-r2.trakt.tv/images/episodes/001/905/932/screenshots/thumb/dd04042d5b.jpg" />Nora gives Kevin and Jill news they weren&#39;t expecting. Laurie makes a rash decision that affects the Garveys. Kevin deals with the fallout of Nora&#39;s news, and explores his options re: tackling his Patti problem head-on.</content>
<media:content url="https://walter-r2.trakt.tv/images/shows/000/054/001/posters/medium/aac74f1afd.jpg"/>
<media:thumbnail url="https://walter-r2.trakt.tv/images/shows/000/054/001/posters/thumb/aac74f1afd.jpg"/>
<author>
<name>davorg</name>
</author>
</entry>
<entry>
<title>Blade II, 2002 - ★★½</title>
<link rel="alternate" href="https://letterboxd.com/realdavorg/film/blade-ii/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"> <p><img src="https://a.ltrbxd.com/resized/film-poster/2/7/7/8/1/27781-blade-ii-0-600-0-900-crop.jpg?v=cc47042eaa"/></p> <p>Watched on Saturday November 16, 2024.</p> </div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>letterboxd-watch-716847304</id>
<published>2024-11-17T08:12:43+13:00</published>
<updated>2024-11-17T08:12:43+13:00</updated>
</entry>
<entry xmlns:media="http://search.yahoo.com/mrss/">
<id>tag:trakt.tv,2005:Episode/571693/10187279934</id>
<published>2024-11-16T09:00:00-06:00</published>
<updated>2024-11-16T09:00:00-06:00</updated>
<link rel="alternate" type="text/html" href="https://trakt.tv/episodes/571693"/>
<title>Teenage Health Freak 2x06 "Episode 12"</title>
<summary/>
<content type="html"><img src="/assets/placeholders/thumb/fanart-e06a786ebfe8e145402a81d1738a846111c7034ae9ff7ce0a5c212dc301d4f1d.png" /></content>
<media:content url="/assets/placeholders/medium/poster-7d5f5ef772b207dc5e74b5d7b0f1b5be444ea217fe09dbbe5995ffec2fefcd98.png"/>
<media:thumbnail url="/assets/placeholders/thumb/poster-7d5f5ef772b207dc5e74b5d7b0f1b5be444ea217fe09dbbe5995ffec2fefcd98.png"/>
<author>
<name>davorg</name>
</author>
</entry>
<entry>
<title>12 Angry Men, 1957 - ★★★★</title>
<link rel="alternate" href="https://letterboxd.com/realdavorg/film/12-angry-men/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"> <p><img src="https://a.ltrbxd.com/resized/film-poster/5/1/7/0/0/51700-12-angry-men-0-600-0-900-crop.jpg?v=b8aaf291a9"/></p> <p>Watched on Tuesday November 12, 2024.</p> </div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>letterboxd-watch-714185963</id>
<published>2024-11-13T09:49:49+13:00</published>
<updated>2024-11-13T09:49:49+13:00</updated>
</entry>
<entry>
<title>Sideways, 2004 - ★★★½</title>
<link rel="alternate" href="https://letterboxd.com/realdavorg/film/sideways/1/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"> <p><img src="https://a.ltrbxd.com/resized/sm/upload/tl/8f/2j/rx/k8UfdLAP07SDfilmWOHFPv23tu7-0-600-0-900-crop.jpg?v=d63207112a"/></p> <p>Watched on Sunday November 10, 2024.</p> </div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>letterboxd-watch-712381296</id>
<published>2024-11-11T03:45:08+13:00</published>
<updated>2024-11-11T03:45:08+13:00</updated>
</entry>
<entry>
<title>Advertising Perl</title>
<link rel="alternate" href="https://perlhacks.com/2024/11/advertising-perl/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Last weekend, we had a very successful (and very enjoyable) London Perl Workshop. After a five-year break, it was great to see so many old faces again. But in addition to people who had been regular attendees at recent workshops, two other groups of people were there in large numbers—people who had moved away from the Perl community (and who were coming back for the nostalgia) and new Perl users who hadn’t been to any Perl conference before. In both cases, it seems that one marketing move was particularly effective at telling both of these groups about the workshop.</p>
<p>It was a small, text advert that ran on <a href="https://metacpan.org/">MetaCPAN</a>.</p>
<p>I had nothing to do with the organisation of the workshop, so I have no idea who had the idea of running that ad, but it was (like so many great ideas) obvious in retrospect. It’s great to publish blog posts about upcoming events and mention events in the <a href="https://perlweekly.com/">Perl Weekly newsletter</a>. But marketing like that is mostly going to be read by people who are already part of the Perl community. And they (hopefully) already know about the workshop.</p>
<p>Whereas, sites like MetaCPAN are visited by Perl programmers who don’t consider themselves part of the community. People who don’t attend Perl Mongers meetings. People who don’t read <a href="https://blogs.perl.org/">blogs.perl.org</a>. People who are (to use terminology that has been used to explain this problem for about twenty years) outside the echo chamber.</p>
<p>Advertising Perl community events to as large an audience as possible is a really good idea, and I think we should do more of it. But it has its downsides. Someone has to do some work to create <a href="https://github.com/metacpan/metacpan-web/pull/3049">a pull request to add the advert</a> (and <a href="https://github.com/metacpan/metacpan-web/pull/3218">another one to remove it</a> once the event is over). That’s not hard, but it requires thought and planning. I started to wonder if we could simplify this process and, in doing so, encourage more people to run ads like these on sites where more people might see them.</p>
<p>After an hour or so, I had a prototype of the <a href="https://perl-ads.perlhacks.com/">Perl Ad Server</a> – which I have subsequently cleaned up and improved.</p>
<p>It’s a simple enough concept. You add a tiny fragment of Javascript to your website. And that then automatically adds a small banner ad to the top of your site. We can control the ads that are being promoted by simply editing <a href="https://github.com/PerlToolsTeam/perl-ads/blob/main/docs/perl-ads.json">the JSON</a> that we serve to the client sites.</p>
<p>It’s experimental. So I’d like to get as many people as possible to try it out.</p>
<p>It comes with a tiny caveat. I’m neither a web designer nor a Javascript expert. So it may interact with some web frameworks in weird ways (I added it to <a href="https://cpandashboard.com/">CPAN Dashboard</a> and the ad appeared under the navbar – which isn’t supposed to happen). If it doesn’t work with your site for some reason, please remove the Javascript and <a href="https://github.com/PerlToolsTeam/perl-ads/issues">raise an issue</a> so I can investigate.</p>
<p>And if you’d like your event added to the current list of ads, let me know too.</p>
<p>The post <a href="https://perlhacks.com/2024/11/advertising-perl/">Advertising Perl</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Last weekend, we had a very successful (and very enjoyable) London Perl Workshop. After a five-year break, it was great to see so many old faces again. But in addition to people who had been regular attendees at recent workshops, two other groups of people were there in large numbers—people who had moved away from […]</p>
<p>The post <a href="https://perlhacks.com/2024/11/advertising-perl/">Advertising Perl</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://perlhacks.com/?p=2252</id>
<published>2024-11-01T15:10:20Z</published>
<updated>2024-11-01T15:10:20Z</updated>
<category term="Community"/>
<category term="adverts"/>
<category term="community"/>
<category term="marketing"/>
<category term="perl"/>
</entry>
<entry>
<title>Advertising Perl</title>
<link rel="alternate" href="https://dev.to/davorg/advertising-perl-k8i" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Last weekend, we had a very successful (and very enjoyable) London Perl Workshop. After a five-year break, it was great to see so many old faces again. But in addition to people who had been regular attendees at recent workshops, two other groups of people were there in large numbers—people who had moved away from the Perl community (and who were coming back for the nostalgia) and new Perl users who hadn’t been to any Perl conference before. In both cases, it seems that one marketing move was particularly effective at telling both of these groups about the workshop.</p>
<p>It was a small, text advert that ran on <a href="https://metacpan.org/" rel="noopener noreferrer">MetaCPAN</a>.</p>
<p>I had nothing to do with the organisation of the workshop, so I have no idea who had the idea of running that ad, but it was (like so many great ideas) obvious in retrospect. It’s great to publish blog posts about upcoming events and mention events in the <a href="https://perlweekly.com/" rel="noopener noreferrer">Perl Weekly newsletter</a>. But marketing like that is mostly going to be read by people who are already part of the Perl community. And they (hopefully) already know about the workshop.</p>
<p>Whereas, sites like MetaCPAN are visited by Perl programmers who don’t consider themselves part of the community. People who don’t attend Perl Mongers meetings. People who don’t read <a href="https://blogs.perl.org/" rel="noopener noreferrer">blogs.perl.org</a>. People who are (to use terminology that has been used to explain this problem for about twenty years) outside the echo chamber.</p>
<p>Advertising Perl community events to as large an audience as possible is a really good idea, and I think we should do more of it. But it has its downsides. Someone has to do some work to create <a href="https://github.com/metacpan/metacpan-web/pull/3049" rel="noopener noreferrer">a pull request to add the advert</a> (and <a href="https://github.com/metacpan/metacpan-web/pull/3218" rel="noopener noreferrer">another one to remove it</a> once the event is over). That’s not hard, but it requires thought and planning. I started to wonder if we could simplify this process and, in doing so, encourage more people to run ads like these on sites where more people might see them.</p>
<p>After an hour or so, I had a prototype of the <a href="https://perl-ads.perlhacks.com/" rel="noopener noreferrer">Perl Ad Server</a> – which I have subsequently cleaned up and improved.</p>
<p>It’s a simple enough concept. You add a tiny fragment of Javascript to your website. And that then automatically adds a small banner ad to the top of your site. We can control the ads that are being promoted by simply editing <a href="https://github.com/PerlToolsTeam/perl-ads/blob/main/docs/perl-ads.json" rel="noopener noreferrer">the JSON</a> that we serve to the client sites.</p>
<p>It’s experimental. So I’d like to get as many people as possible to try it out.</p>
<p>It comes with a tiny caveat. I’m neither a web designer nor a Javascript expert. So it may interact with some web frameworks in weird ways (I added it to <a href="https://cpandashboard.com/" rel="noopener noreferrer">CPAN Dashboard</a> and the ad appeared under the navbar – which isn’t supposed to happen). If it doesn’t work with your site for some reason, please remove the Javascript and <a href="https://github.com/PerlToolsTeam/perl-ads/issues" rel="noopener noreferrer">raise an issue</a> so I can investigate.</p>
<p>And if you’d like your event added to the current list of ads, let me know too.</p>
<p>The post <a href="https://perlhacks.com/2024/11/advertising-perl/" rel="noopener noreferrer">Advertising Perl</a> appeared first on <a href="https://perlhacks.com" rel="noopener noreferrer">Perl Hacks</a>.</p>
</div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>https://dev.to/davorg/advertising-perl-k8i</id>
<published>2024-11-01T15:10:20Z</published>
<updated>2024-11-01T15:10:20Z</updated>
<category term="perl"/>
<category term="adverts"/>
<category term="community"/>
<category term="marketing"/>
</entry>
<entry>
<title>DAVECROSS has released App-Aphra-0.2.2</title>
<link rel="alternate" href="https://metacpan.org/release/DAVECROSS/App-Aphra-0.2.2" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">A simple static sitebuilder in Perl.</div>
</content>
<author>
<name>DAVECROSS</name>
</author>
<id>https://metacpan.org/release/DAVECROSS/App-Aphra-0.2.2</id>
<published>2024-10-28T15:38:17Z</published>
<updated>2024-10-28T15:38:17Z</updated>
</entry>
<entry>
<title>London Perl Workshop 2024 – Preview</title>
<link rel="alternate" href="https://perlhacks.com/2024/10/london-perl-workshop-2024-preview/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>After a break of five years, the <a href="https://act.yapc.eu/lpw2024/">London Perl Workshop</a> returns next weekend. It’s been twenty years since the first one. This year’s event is at a new venue called The Trampery, which is very close to Old Street tube station. If you’re a veteran of the early-2000s “Silicon Roundabout” excitement, you’ll know the place as it’s right across the road from The Foundry – the place to be seen if you were working in that area. I seem to remember taking people there as part of the entertainment programme for the first YAPC::Europe back in 2000. The pub isn’t there any more – it’s been knocked down and replaced by a modern hotel.</p>
<p>So I thought I’d have a look at <a href="https://act.yapc.eu/lpw2024/schedule">the schedule</a> and point out some of the interesting talks that I’m looking forward to seeing next Saturday.</p>
<p>Following Julian’s introduction, there’s an early indication of the quality of the talks – as there’s a massive clash. I understand how most people would want to see Paul Evans talking about <a href="https://act.yapc.eu/lpw2024/talk/7904">Perl in 2030</a>, but at the same time I’ll be talking about <a href="https://act.yapc.eu/lpw2024/talk/7889">PerlDiver</a> in the other main room. Now, obviously, I don’t want to sway anyone’s decision about which talk to choose – but I will have swag to give away. I don’t have any choice over which room I’ll be in, but I really want to see Paul’s talk, so I’m hoping it’ll be videoed.</p>
<p>I should point out that alongside the two main tracks, there’s a third room that the organisers hope will be used for hackathons, BOFs and things like that.</p>
<p>Next up we have Dave Lambley with <a href="https://act.yapc.eu/lpw2024/talk/7907">Cloudy Perl, how it looks now</a> and Richard Hainsworth with <a href="https://act.yapc.eu/lpw2024/talk/7902">Using new RakuDoc v2</a>. AWS Lambdas and Raku are both things that I’ve never really wrapped my head around. But I suspect that AWS will be more useful to me in the long run, so I’ll be with Dave.</p>
<p>The next choice is between Stuart Mackintosh’s <a href="https://act.yapc.eu/lpw2024/talk/7918">TPRF Presentation and discussion<b></b></a> and Ralf Langsdorf who sounds like he’s <a href="https://act.yapc.eu/lpw2024/talk/7937">battling against Little Bobby Tables</a>. I don’t do much community leadership stuff these days, but I’m glad there are still people who are willing to take on those roles – so I’ll be with Stuart. But Ralf’s is another talk that I’ll be looking forward to catching up with later.</p>
<p>In the final slot of the morning, the breakout room is hosting a talk – giving you a choice of three: James Green with <a href="https://act.yapc.eu/lpw2024/talk/7909">I Adopted a Dist, and This is What Happened</a>, José Joaquín Atria with <a href="https://act.yapc.eu/lpw2024/talk/7895"><b></b>Using OpenTelemetry in your Perl libraries and applications</a> and Steve Roe with <a href="https://act.yapc.eu/lpw2024/talk/7923"><b></b>Raku HTML::Functional</a>. I love a good CPAN module story, so I’ll be with James.</p>
<p>There’s then an hour for lunch. I’ll be trying one of the many local sandwich shops or pubs.</p>
<p>First up in the afternoon is a choice between Salve J. Nilsen – <a href="https://act.yapc.eu/lpw2024/talk/7915"><b></b>Metadata, CPAN, FOSS Supply Chains, and EU’s Cyber Resilience Act</a>, Leon Timmermans – <a href="https://act.yapc.eu/lpw2024/talk/7899">A modern introduction to XS</a> and Andrew O’Neil – <a href="https://act.yapc.eu/lpw2024/talk/7936">Chemometrics with Perl & Pharmaceutical Applications<b></b></a>. Salve is covering a topic that, while seemingly dull, is something that more people need to take notice of. Leon is covering another topic that I’ve never quite understood. And Andrew is doing science – which is always fun. I think I’ll be listening to Leon in the hope I can finally understand XS.</p>
<p>Next up is Mohammad Anwar explaining <a href="https://act.yapc.eu/lpw2024/talk/7900">What’s new in Perl v5.40?</a>, Paul Cochrane on <a href="https://act.yapc.eu/lpw2024/talk/7912"><b></b>Fixing a fifteen-year-old curve fit bug </a>or Salve is following up on his talk with a CPAN security BOF in the breakout room. Mohammad is always worth watching, but I very much enjoyed reading Paul’s blog post on this bug recently – so I haven’t decided yet where I’ll be.</p>
<p>Then we have a choice between Max Maischein – <a href="https://act.yapc.eu/lpw2024/talk/7903">Managing recent files from Perl</a> (which sounds useful), Nana Insaidoo – <a href="https://act.yapc.eu/lpw2024/talk/7942">opensource vulnerabilities and where to find them </a> (which sounds vital!) and the continuation of Salve’s BOF.</p>
<p>The last slot in this session is Mike Whitaker – <a href="https://act.yapc.eu/lpw2024/talk/7921"><b></b>Names are hard</a> (which is inarguable), Yujia Zhai – <a href="https://act.yapc.eu/lpw2024/talk/7924"><b></b>Perl/Raku Based Coursework Design for Engineering Education</a> or even more of Salve’s BOF.</p>
<p>Then we have a twenty-minute break. Phew. I think we’ll all need it after all that top-notch information.</p>
<p>Things get a bit disjointed after the break. There’s Andrew Soloman with <a href="https://act.yapc.eu/lpw2024/talk/7910">Perl Talent Management: How Logicly attracts, develops, and retains their Perl developers</a>. But that overlaps with two talks in the other main room – Ian Boddison with <a href="https://act.yapc.eu/lpw2024/talk/7941">Perl, AI and Your System</a> followed by Saif Ahmed with <a href="https://act.yapc.eu/lpw2024/talk/7920">Bit Vector Arrays to Pixels in a Terminal with One Subroutine</a>. And while all that’s going on, the breakout room has a session of <a href="https://act.yapc.eu/lpw2024/talk/7939">Science Perl Talks</a> chaired by Andrew Neil. They all sound interesting, but my interest in training trumps my other interests, so I’ll be listening to Andrew Soloman.</p>
<p>And then there are the <a href="https://act.yapc.eu/lpw2024/talk/7931">lighting talks</a>. As always, there will be a wide range of talks. I’ll be giving a brief update on <a href="https://perlschool.com/">Perl School</a>. If you’ve been watching my social media, you might have an idea what I’ll be announcing.</p>
<p>Then we have the intriguingly-named <a href="https://act.yapc.eu/lpw2024/talk/7935"><b></b>Thanks & The Future of LPW</a> before we all head off to the pub for a debrief.</p>
<p>There are currently about 140 people signed up for the workshop. I don’t know what the venue capacity is, but I’m sure they can squeeze a more in if you’d like to register. Oh, and if you are registered, please mark the talks you’re interested in on the schedule – it makes it easier for the organisers to decide which talks should be in which rooms.</p>
<p>Of course, if you’re not within easy travelling distance of London, then don’t forget that there are other Perl events in other parts of the world. In particular, there will be a TPRC in Greenville, South Carolina next year. See <a href="https://tprc.us/">https://tprc.us/</a> for details.</p>
<p>To close, I’d like to thank the sponsors of this year’s LPW. Without them, the workshop wouldn’t be able to go ahead. Please show them some love.</p>
<ul>
<li><a href="https://tech.deriv.com/">Deriv</a></li>
<li><a href="https://www.cv-library.co.uk/">CV-Library</a></li>
<li><a href="https://geekuni.com/">Geekuni</a></li>
<li><a href="https://geizhals.de/">Geizhals Preisvergleich</a></li>
<li><a href="https://datensegler.at/">Datensegler e.U.</a></li>
<li><a href="https://www.spareroom.co.uk/">SpareRoom</a></li>
<li><a href="https://www.oleeo.com/">Oleeo</a></li>
<li><a href="https://www.payprop.com/">PayProp</a></li>
<li><a href="https://www.meterian.io//">Meterian</a></li>
</ul>
<p>The post <a href="https://perlhacks.com/2024/10/london-perl-workshop-2024-preview/">London Perl Workshop 2024 – Preview</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>After a break of five years, the London Perl Workshop returns next weekend. It’s been twenty years since the first one. This year’s event is at a new venue called The Trampery, which is very close to Old Street tube station. If you’re a veteran of the early-2000s “Silicon Roundabout” excitement, you’ll know the place […]</p>
<p>The post <a href="https://perlhacks.com/2024/10/london-perl-workshop-2024-preview/">London Perl Workshop 2024 – Preview</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://perlhacks.com/?p=2242</id>
<published>2024-10-20T15:50:46Z</published>
<updated>2024-10-20T15:50:46Z</updated>
<category term="Conferences"/>
<category term="london"/>
<category term="lpw"/>
<category term="lpw2024"/>
<category term="perl conference"/>
</entry>
<entry>
<title>London Perl Workshop 2024 – Preview</title>
<link rel="alternate" href="https://dev.to/davorg/london-perl-workshop-2024-preview-2oap" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>After a break of five years, the <a href="https://act.yapc.eu/lpw2024/" rel="noopener noreferrer">London Perl Workshop</a> returns next weekend. It’s been twenty years since the first one. This year’s event is at a new venue called The Trampery, which is very close to Old Street tube station. If you’re a veteran of the early-2000s “Silicon Roundabout” excitement, you’ll know the place as it’s right across the road from The Foundry – the place to be seen if you were working in that area. I seem to remember taking people there as part of the entertainment programme for the first YAPC::Europe back in 2000. The pub isn't there any more - it's been knocked down and replaced by a modern hotel.</p>
<p>So I thought I’d have a look at <a href="https://act.yapc.eu/lpw2024/schedule" rel="noopener noreferrer">the schedule</a> and point out some of the interesting talks that I’m looking forward to seeing next Saturday.</p>
<p>Following Julian’s introduction, there’s an early indication of the quality of the talks – as there’s a massive clash. I understand how most people would want to see Paul Evans talking about <a href="https://act.yapc.eu/lpw2024/talk/7904" rel="noopener noreferrer">Perl in 2030</a>, but at the same time I’ll be talking about <a href="https://act.yapc.eu/lpw2024/talk/7889" rel="noopener noreferrer">PerlDiver</a> in the other main room. Now, obviously, I don’t want to sway anyone’s decision about which talk to choose – but I will have swag to give away. I don’t have any choice over which room I’ll be in, but I really want to see Paul’s talk, so I’m hoping it’ll be videoed.</p>
<p>I should point out that alongside the two main tracks, there’s a third room that the organisers hope will be used for hackathons, BOFs and things like that.</p>
<p>Next up we have Dave Lambley with <a href="https://act.yapc.eu/lpw2024/talk/7907" rel="noopener noreferrer">Cloudy Perl, how it looks now</a> and Richard Hainsworth with <a href="https://act.yapc.eu/lpw2024/talk/7902" rel="noopener noreferrer">Using new RakuDoc v2</a>. AWS Lambdas and Raku are both things that I’ve never really wrapped my head around. But I suspect that AWS will be more useful to me in the long run, so I’ll be with Dave.</p>
<p>The next choice is between Stuart Mackintosh’s <a href="https://act.yapc.eu/lpw2024/talk/7918" rel="noopener noreferrer">TPRF Presentation and discussion <strong></strong></a> and Ralf Langsdorf who sounds like he’s <a href="https://act.yapc.eu/lpw2024/talk/7937" rel="noopener noreferrer">battling against Little Bobby Tables</a>. I don’t do much community leadership stuff these days, but I’m glad there are still people who are willing to take on those roles – so I’ll be with Stuart. But Ralf’s is another talk that I’ll be looking forward to catching up with later.</p>
<p>In the final slot of the morning, the breakout room is hosting a talk – giving you a choice of three: James Green with <a href="https://act.yapc.eu/lpw2024/talk/7909" rel="noopener noreferrer">I Adopted a Dist, and This is What Happened</a>, José Joaquín Atria with <a href="https://act.yapc.eu/lpw2024/talk/7895" rel="noopener noreferrer"><strong></strong> Using OpenTelemetry in your Perl libraries and applications</a> and Steve Roe with <a href="https://act.yapc.eu/lpw2024/talk/7923" rel="noopener noreferrer"><strong></strong> Raku HTML::Functional</a>. I love a good CPAN module story, so I’ll be with James.</p>
<p>There’s then an hour for lunch. I’ll be trying one of the many local sandwich shops or pubs.</p>
<p>First up in the afternoon is a choice between Salve J. Nilsen – <a href="https://act.yapc.eu/lpw2024/talk/7915" rel="noopener noreferrer"><strong></strong> Metadata, CPAN, FOSS Supply Chains, and EU’s Cyber Resilience Act</a>, Leon Timmermans – <a href="https://act.yapc.eu/lpw2024/talk/7899" rel="noopener noreferrer">A modern introduction to XS</a> and Andrew O’Neil – <a href="https://act.yapc.eu/lpw2024/talk/7936" rel="noopener noreferrer">Chemometrics with Perl & Pharmaceutical Applications <strong></strong></a>. Salve is covering a topic that, while seemingly dull, is something that more people need to take notice of. Leon is covering another topic that I’ve never quite understood. And Andrew is doing science – which is always fun. I think I’ll be listening to Leon in the hope I can finally understand XS.</p>
<p>Next up is Mohammad Anwar explaining <a href="https://act.yapc.eu/lpw2024/talk/7900" rel="noopener noreferrer">What’s new in Perl v5.40?</a>, Paul Cochrane on <a href="https://act.yapc.eu/lpw2024/talk/7912" rel="noopener noreferrer"><strong></strong> Fixing a fifteen-year-old curve fit bug</a>or Salve is following up on his talk with a CPAN security BOF in the breakout room. Mohammad is always worth watching, but I very much enjoyed reading Paul’s blog post on this bug recently – so I haven’t decided yet where I’ll be.</p>
<p>Then we have a choice between Max Maischein – <a href="https://act.yapc.eu/lpw2024/talk/7903" rel="noopener noreferrer">Managing recent files from Perl</a> (which sounds useful), Nana Insaidoo – <a href="https://act.yapc.eu/lpw2024/talk/7942" rel="noopener noreferrer">opensource vulnerabilities and where to find them</a> (which sounds vital!) and the continuation of Salve’s BOF.</p>
<p>The last slot in this session is Mike Whitaker – <a href="https://act.yapc.eu/lpw2024/talk/7921" rel="noopener noreferrer"><strong></strong> Names are hard</a> (which is inarguable), Yujia Zhai – <a href="https://act.yapc.eu/lpw2024/talk/7924" rel="noopener noreferrer"><strong></strong> Perl/Raku Based Coursework Design for Engineering Education</a> or even more of Salve’s BOF.</p>
<p>Then we have a twenty-minute break. Phew. I think we’ll all need it after all that top-notch information.</p>
<p>Things get a bit disjointed after the break. There’s Andrew Soloman with <a href="https://act.yapc.eu/lpw2024/talk/7910" rel="noopener noreferrer">Perl Talent Management: How Logicly attracts, develops, and retains their Perl developers</a>. But that overlaps with two talks in the other main room – Ian Boddison with <a href="https://act.yapc.eu/lpw2024/talk/7941" rel="noopener noreferrer">Perl, AI and Your System</a> followed by Saif Ahmed with <a href="https://act.yapc.eu/lpw2024/talk/7920" rel="noopener noreferrer">Bit Vector Arrays to Pixels in a Terminal with One Subroutine</a>. And while all that’s going on, the breakout room has a session of <a href="https://act.yapc.eu/lpw2024/talk/7939" rel="noopener noreferrer">Science Perl Talks</a> chaired by Andrew Neil. They all sound interesting, but my interest in training trumps my other interests, so I’ll be listening to Andrew Soloman.</p>
<p>And then there are the <a href="https://act.yapc.eu/lpw2024/talk/7931" rel="noopener noreferrer">lighting talks</a>. As always, there will be a wide range of talks. I’ll be giving a brief update on <a href="https://perlschool.com/" rel="noopener noreferrer">Perl School</a>. If you’ve been watching my social media, you might have an idea what I’ll be announcing.</p>
<p>Then we have the intriguingly-named <a href="https://act.yapc.eu/lpw2024/talk/7935" rel="noopener noreferrer"><strong></strong> Thanks & The Future of LPW</a> before we all head off to the pub for a debrief.</p>
<p>There are currently about 140 people signed up for the workshop. I don’t know what the venue capacity is, but I’m sure they can squeeze a more in if you’d like to register. Oh, and if you are registered, please mark the talks you’re interested in on the schedule – it makes it easier for the organisers to decide which talks should be in which rooms.</p>
<p>Of course, if you’re not within easy travelling distance of London, then don’t forget that there are other Perl events in other parts of the world. In particular, there will be a TPRC in Greenville, South Carolina next year. See <a href="https://tprc.us/" rel="noopener noreferrer">https://tprc.us/</a> for details.</p>
<p>To close, I’d like to thank the sponsors of this year’s LPW. Without them, the workshop wouldn’t be able to go ahead. Please show them some love.</p>
<ul>
<li><a href="https://tech.deriv.com/" rel="noopener noreferrer">Deriv</a></li>
<li><a href="https://www.cv-library.co.uk/" rel="noopener noreferrer">CV-Library</a></li>
<li><a href="https://geekuni.com/" rel="noopener noreferrer">Geekuni</a></li>
<li><a href="https://geizhals.de/" rel="noopener noreferrer">Geizhals Preisvergleich</a></li>
<li><a href="https://datensegler.at/" rel="noopener noreferrer">Datensegler e.U.</a></li>
<li><a href="https://www.spareroom.co.uk/" rel="noopener noreferrer">SpareRoom</a></li>
<li><a href="https://www.oleeo.com/" rel="noopener noreferrer">Oleeo</a></li>
<li><a href="https://www.payprop.com/" rel="noopener noreferrer">PayProp</a></li>
<li><a href="https://www.meterian.io//" rel="noopener noreferrer">Meterian</a></li>
</ul>
<p>The post <a href="https://perlhacks.com/2024/10/london-perl-workshop-2024-preview/" rel="noopener noreferrer">London Perl Workshop 2024 – Preview</a> appeared first on <a href="https://perlhacks.com" rel="noopener noreferrer">Perl Hacks</a>.</p>
</div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>https://dev.to/davorg/london-perl-workshop-2024-preview-2oap</id>
<published>2024-10-20T15:50:46Z</published>
<updated>2024-10-20T15:50:46Z</updated>
<category term="conferences"/>
<category term="london"/>
<category term="lpw"/>
<category term="lpw2024"/>
</entry>
<entry>
<title>DAVECROSS has released SVG-ChristmasTree-0.0.6</title>
<link rel="alternate" href="https://metacpan.org/release/DAVECROSS/SVG-ChristmasTree-0.0.6" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">Perl extension to draw Christmas trees with SVG</div>
</content>
<author>
<name>DAVECROSS</name>
</author>
<id>https://metacpan.org/release/DAVECROSS/SVG-ChristmasTree-0.0.6</id>
<published>2024-10-05T09:50:25Z</published>
<updated>2024-10-05T09:50:25Z</updated>
</entry>
<entry>
<title>Dancing with Copilot Workspace</title>
<link rel="alternate" href="https://perlhacks.com/2024/09/dancing-with-copilot-workspace/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Over the last few months, I’ve been dabbling in using AI to generate or improve code. I have a subscription to <a href="https://github.com/features/copilot">GitHub Copilot</a> and I’m finding it a really useful tool for increasing my productivity. Copilot comes in several different flavours, and I’ve been making particular use of a couple of them.</p>
<ul>
<li>Copilot Autocomplete was the first Copilot tool that GitHub released. Once you’ve configured your editor to use it, the AI will read the file you’re working on and will monitor what you’re typing. When it thinks it knows what you’re doing and what comes next, it will display a suggestion for the next chunk of code and if you like what you see, you can just hit the tab key to accept it. I’ve been pleasantly surprised by how well it does. I’ve had cases where I’ve just typed the name of a method and it has autocompleted the code for me.</li>
<li>Copilot Chat was the next version to be released. This is a chat box that sits alongside your code where you can talk to the AI about what you’re doing and ask it for suggestions. This is great for taking on larger projects. I’ve found it particularly useful for working on front-end code. I can usually make CSS and Javascript do what I want, but asking Copilot for suggestions makes me an order of magnitude quicker.</li>
</ul>
<p>Those two tools alone make me a more efficient programmer. And they’re well worth the $10 a month I pay for my Copilot subscription. But recently I was invited to the preview of <a href="https://githubnext.com/projects/copilot-workspace">Copilot Workspace</a>. And that’s a whole new level. Copilot Workspace takes a GitHub issue as its input and returns a complete, multifile pull request that implements the required change. I’ve been playing with it for small tweaks, but I decided the time was right to do something more substantial. I planned to write an entire Dancer app by defining issues and asking Copilot to implement the code. Here’s what happened. You can follow along at <a href="https://github.com/davorg/dancer-example/">the GitHub repo</a>.</p>
<p>I decided I would start from the standard, automatically generated Dancer2 app. So I ran <tt>dancer2 gen -a Example</tt> and committed the output from that. It was then time for the first issue. I decided to start by <a href="https://github.com/davorg/dancer-example/issues/1">adding (empty) routes for user registration and login</a>. I opened the issue in the Copilot Workspace and asked the AI for some suggested code. It didn’t really understand the idea of empty routes – but <a href="https://github.com/davorg/dancer-example/pull/2/files">the pull request</a> seemed pretty good. I merged the PR and moved on to the next issue – <a href="https://github.com/davorg/dancer-example/issues/3">to add basic registration and login screens</a>. Again, <a href="https://github.com/davorg/dancer-example/pull/4/files">the pull request</a> did a little more than I asked for – adding a bit more registration and login logic – but the code was good.</p>
<p>As an aside, you’ll notice that the PRs are all correctly linked to the correct issues and contain substantial information about the changes. This is all generated by the AI.</p>
<p>For the next step, we <a href="https://github.com/davorg/dancer-example/issues/5">needed a database table to store the users</a>. I asked Copilot to use SQLite and it gave me what I wanted – <a href="https://github.com/davorg/dancer-example/pull/6/files">once again, going above and beyond</a>. For the first time, its overenthusiasm was slightly annoying, because it added some database code to store new users and I hadn’t told it that we would be using DBIx::Class. So that was <a href="https://github.com/davorg/dancer-example/issues/7">the next issue</a> and <a href="https://github.com/davorg/dancer-example/pull/8/files">the next pull request</a>. Note that the pull request even includes adding DBIx::Class to the requisites in Makefile.PL.</p>
<p>Time for some unit tests (ok, maybe the best time was a few PRs ago!). The issue description was simple – “<bdi class="js-issue-title markdown-title"><a href="https://github.com/davorg/dancer-example/issues/9">Write unit tests for everything we have so far</a>“. Maybe it was too simple – as this was the first time the AI seemed to struggle a bit. I was merging the PRs without really checking them and <a href="https://github.com/davorg/dancer-example/pull/10/files">the PR</a> introduced a lot of useful tests – but many of them failed. Part of the problem here is that (as far as I can see) Copilot Workspace has no way to run the code it produces – so it was guessing how well it was doing. It took a few iterations to get that right – it basically boiled down to the database schema not being loaded into the database before the tests were run. At times while we were working through these problems, I was reminded of someone (I think it was <a href="https://simonwillison.net/">Simon Willison</a>) describing an AI programming assistant as “an overconfident, overenthusiastic intern”. Luckily, unlike an intern, Copilot never gets annoyed with you telling it to try again and providing more and more information to help it get to the bottom of a problem.</bdi></p>
<p>After a while, we had a working test suite and were back on track.</p>
<p>So we were back at adding features to the application. I decided the next thing we needed was to <a href="https://github.com/davorg/dancer-example/issues/34">display the logged-in user’s username and email address on the main page</a>. That seemed <a href="https://github.com/davorg/dancer-example/pull/35/files">simple enough</a> and worked first time. About this time I was getting <a href="https://github.com/davorg/dancer-example/issues/36">annoyed with the standard Dancer2 web page</a>, so we <a href="https://github.com/davorg/dancer-example/pull/37/files">removed most of that</a>. Then I switched from Dancer’s default “simple” templating system to the Template Toolkit [<a href="https://github.com/davorg/dancer-example/issues/38">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/39/files">PR</a>].</p>
<p>While we were tidying up the look and feel, we added login and logout buttons [<a href="https://github.com/davorg/dancer-example/issues/40">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/41/files">PR</a>] and a register button on the logged out page [<a href="https://github.com/davorg/dancer-example/issues/44">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/45/files">PR</a>]. This led to some more confusion for a while as logging out didn’t work. It turned out the AI had used outdated code to destroy the session and I had to get very specific before it would do the right thing [<a href="https://github.com/davorg/dancer-example/issues/48">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/49/files">PR</a>].</p>
<p>We then added some more tests [<a href="https://github.com/davorg/dancer-example/issues/50">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/51/files">PR</a>], displayed registration and login errors [<a href="https://github.com/davorg/dancer-example/issues/52">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/53/files">PR</a>] and ensured we were storing the passwords in encrypted form (to be honest, I’m slightly disappointed that the AI didn’t do that by default) [<a href="https://github.com/davorg/dancer-example/issues/56">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/57/files">PR</a>].</p>
<p>At this point (and I don’t know why I didn’t do it sooner), we replaced the UI with something using Bootstrap [<a href="https://github.com/davorg/dancer-example/issues/64">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/65/files">PR</a>]. That led to a bit more tweaking of the buttons [<a href="https://github.com/davorg/dancer-example/issues/74">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/75/files">PR</a>].</p>
<p>At this point, I had basically got to where I wanted to be. I had an app that didn’t do anything useful, but let you register, login and log out. And I’d done it all pretty quickly and without writing very much code.</p>
<p>Then I decided to push it too far.</p>
<p>The thing that I actually wanted to achieve at this point was to add social registration and login to the site. I created an issue – <a href="https://github.com/davorg/dancer-example/issues/80">Allow users to register and login using a Google account</a> – and Copilot <a href="https://github.com/davorg/dancer-example/pull/81">gave me some code</a>. But at this point, it’s not just about code. You also need to configure stuff at Google in order to get this working. And, while Copilot gave me some information about what I needed to do, I haven’t yet been able to get it working. This is a good example of the limitations of AI-powered programming. It’s great at generating code, but (so far, at least) not so good at keeping up to date with how to interface with external systems. Oh, and there’s the problem we saw earlier about it not actually running the tests.</p>
<p>So, how do I think the experiment went? I was impressed. There was a lot of code generated that was as good or better than I would have written myself. There are certainly the problems that I mentioned above, but this stuff is improving at such an incredible rate that I really can’t see those problems still existing in a year.</p>
<p>I’ve started using Copilot Workspace for a lot more of my projects. And I’m happy with the results I’ve got.</p>
<p>What about you? Have you used any version of Copilot to help with your coding? How successful has it been?</p>
<p>The post <a href="https://perlhacks.com/2024/09/dancing-with-copilot-workspace/">Dancing with Copilot Workspace</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Over the last few months, I’ve been dabbling in using AI to generate or improve code. I have a subscription to GitHub Copilot and I’m finding it a really useful tool for increasing my productivity. Copilot comes in several different flavours, and I’ve been making particular use of a couple of them. Copilot Autocomplete was […]</p>
<p>The post <a href="https://perlhacks.com/2024/09/dancing-with-copilot-workspace/">Dancing with Copilot Workspace</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://perlhacks.com/?p=2230</id>
<published>2024-09-22T16:00:08Z</published>
<updated>2024-09-22T16:00:08Z</updated>
<category term="Programming"/>
<category term="ai"/>
<category term="copilot"/>
<category term="dancer2"/>
<category term="perl"/>
</entry>
<entry>
<title>Dancing with Copilot Workspace</title>
<link rel="alternate" href="https://dev.to/davorg/dancing-with-copilot-workspace-58hd" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Over the last few months, I’ve been dabbling in using AI to generate or improve code. I have a subscription to <a href="https://github.com/features/copilot" rel="noopener noreferrer">GitHub Copilot</a> and I’m finding it a really useful tool for increasing my productivity. Copilot comes in several different flavours, and I’ve been making particular use of a couple of them.</p>
<ul>
<li>Copilot Autocomplete was the first Copilot tool that GitHub released. Once you’ve configured your editor to use it, the AI will read the file you’re working on and will monitor what you’re typing. When it thinks it knows what you’re doing and what comes next, it will display a suggestion for the next chunk of code and if you like what you see, you can just hit the tab key to accept it. I’ve been pleasantly surprised by how well it does. I’ve had cases where I’ve just typed the name of a method and it has autocompleted the code for me.</li>
<li>Copilot Chat was the next version to be released. This is a chat box that sits alongside your code where you can talk to the AI about what you’re doing and ask it for suggestions. This is great for taking on larger projects. I’ve found it particularly useful for working on front-end code. I can usually make CSS and Javascript do what I want, but asking Copilot for suggestions makes me an order of magnitude quicker.</li>
</ul>
<p>Those two tools alone make me a more efficient programmer. And they’re well worth the $10 a month I pay for my Copilot subscription. But recently I was invited to the preview of <a href="https://githubnext.com/projects/copilot-workspace" rel="noopener noreferrer">Copilot Workspace</a>. And that’s a whole new level. Copilot Workspace takes a GitHub issue as its input and returns a complete, multifile pull request that implements the required change. I’ve been playing with it for small tweaks, but I decided the time was right to do something more substantial. I planned to write an entire Dancer app by defining issues and asking Copilot to implement the code. Here’s what happened. You can follow along at <a href="https://github.com/davorg/dancer-example/" rel="noopener noreferrer">the GitHub repo</a>.</p>
<p>I decided I would start from the standard, automatically generated Dancer2 app. So I ran dancer2 gen -a Example and committed the output from that. It was then time for the first issue. I decided to start by <a href="https://github.com/davorg/dancer-example/issues/1" rel="noopener noreferrer">adding (empty) routes for user registration and login</a>. I opened the issue in the Copilot Workspace and asked the AI for some suggested code. It didn’t really understand the idea of empty routes – but <a href="https://github.com/davorg/dancer-example/pull/2/files" rel="noopener noreferrer">the pull request</a> seemed pretty good. I merged the PR and moved on to the next issue – <a href="https://github.com/davorg/dancer-example/issues/3" rel="noopener noreferrer">to add basic registration and login screens</a>. Again, <a href="https://github.com/davorg/dancer-example/pull/4/files" rel="noopener noreferrer">the pull request</a> did a little more than I asked for – adding a bit more registration and login logic – but the code was good.</p>
<p>As an aside, you’ll notice that the PRs are all correctly linked to the correct issues and contain substantial information about the changes. This is all generated by the AI.</p>
<p>For the next step, we <a href="https://github.com/davorg/dancer-example/issues/5" rel="noopener noreferrer">needed a database table to store the users</a>. I asked Copilot to use SQLite and it gave me what I wanted – <a href="https://github.com/davorg/dancer-example/pull/6/files" rel="noopener noreferrer">once again, going above and beyond</a>. For the first time, its overenthusiasm was slightly annoying, because it added some database code to store new users and I hadn’t told it that we would be using DBIx::Class. So that was <a href="https://github.com/davorg/dancer-example/issues/7" rel="noopener noreferrer">the next issue</a> and <a href="https://github.com/davorg/dancer-example/pull/8/files" rel="noopener noreferrer">the next pull request</a>. Note that the pull request even includes adding DBIx::Class to the requisites in Makefile.PL.</p>
<p>Time for some unit tests (ok, maybe the best time was a few PRs ago!). The issue description was simple – “<a href="https://github.com/davorg/dancer-example/issues/9" rel="noopener noreferrer">Write unit tests for everything we have so far</a>“. Maybe it was too simple – as this was the first time the AI seemed to struggle a bit. I was merging the PRs without really checking them and <a href="https://github.com/davorg/dancer-example/pull/10/files" rel="noopener noreferrer">the PR</a> introduced a lot of useful tests – but many of them failed. Part of the problem here is that (as far as I can see) Copilot Workspace has no way to run the code it produces – so it was guessing how well it was doing. It took a few iterations to get that right – it basically boiled down to the database schema not being loaded into the database before the tests were run. At times while we were working through these problems, I was reminded of someone (I think it was <a href="https://simonwillison.net/" rel="noopener noreferrer">Simon Willison</a>) describing an AI programming assistant as “an overconfident, overenthusiastic intern”. Luckily, unlike an intern, Copilot never gets annoyed with you telling it to try again and providing more and more information to help it get to the bottom of a problem.</p>
<p>After a while, we had a working test suite and were back on track.</p>
<p>So we were back at adding features to the application. I decided the next thing we needed was to <a href="https://github.com/davorg/dancer-example/issues/34" rel="noopener noreferrer">display the logged-in user’s username and email address on the main page</a>. That seemed <a href="https://github.com/davorg/dancer-example/pull/35/files" rel="noopener noreferrer">simple enough</a> and worked first time. About this time I was getting <a href="https://github.com/davorg/dancer-example/issues/36" rel="noopener noreferrer">annoyed with the standard Dancer2 web page</a>, so we <a href="https://github.com/davorg/dancer-example/pull/37/files" rel="noopener noreferrer">removed most of that</a>. Then I switched from Dancer’s default “simple” templating system to the Template Toolkit [<a href="https://github.com/davorg/dancer-example/issues/38" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/39/files" rel="noopener noreferrer">PR</a>].</p>
<p>While we were tidying up the look and feel, we added login and logout buttons [<a href="https://github.com/davorg/dancer-example/issues/40" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/41/files" rel="noopener noreferrer">PR</a>] and a register button on the logged out page [<a href="https://github.com/davorg/dancer-example/issues/44" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/45/files" rel="noopener noreferrer">PR</a>]. This led to some more confusion for a while as logging out didn’t work. It turned out the AI had used outdated code to destroy the session and I had to get very specific before it would do the right thing [<a href="https://github.com/davorg/dancer-example/issues/48" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/49/files" rel="noopener noreferrer">PR</a>].</p>
<p>We then added some more tests [<a href="https://github.com/davorg/dancer-example/issues/50" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/51/files" rel="noopener noreferrer">PR</a>], displayed registration and login errors [<a href="https://github.com/davorg/dancer-example/issues/52" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/53/files" rel="noopener noreferrer">PR</a>] and ensured we were storing the passwords in encrypted form (to be honest, I’m slightly disappointed that the AI didn’t do that by default) [<a href="https://github.com/davorg/dancer-example/issues/56" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/57/files" rel="noopener noreferrer">PR</a>].</p>
<p>At this point (and I don’t know why I didn’t do it sooner), we replaced the UI with something using Bootstrap [<a href="https://github.com/davorg/dancer-example/issues/64" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/65/files" rel="noopener noreferrer">PR</a>]. That led to a bit more tweaking of the buttons [<a href="https://github.com/davorg/dancer-example/issues/74" rel="noopener noreferrer">issue</a> / <a href="https://github.com/davorg/dancer-example/pull/75/files" rel="noopener noreferrer">PR</a>].</p>
<p>At this point, I had basically got to where I wanted to be. I had an app that didn’t do anything useful, but let you register, login and log out. And I’d done it all pretty quickly and without writing very much code.</p>
<p>Then I decided to push it too far.</p>
<p>The thing that I actually wanted to achieve at this point was to add social registration and login to the site. I created an issue – <a href="https://github.com/davorg/dancer-example/issues/80" rel="noopener noreferrer">Allow users to register and login using a Google account</a> – and Copilot <a href="https://github.com/davorg/dancer-example/pull/81" rel="noopener noreferrer">gave me some code</a>. But at this point, it’s not just about code. You also need to configure stuff at Google in order to get this working. And, while Copilot gave me some information about what I needed to do, I haven’t yet been able to get it working. This is a good example of the limitations of AI-powered programming. It’s great at generating code, but (so far, at least) not so good at keeping up to date with how to interface with external systems. Oh, and there’s the problem we saw earlier about it not actually running the tests.</p>
<p>So, how do I think the experiment went? I was impressed. There was a lot of code generated that was as good or better than I would have written myself. There are certainly the problems that I mentioned above, but this stuff is improving at such an incredible rate that I really can’t see those problems still existing in a year.</p>
<p>I’ve started using Copilot Workspace for a lot more of my projects. And I’m happy with the results I’ve got.</p>
<p>What about you? Have you used any version of Copilot to help with your coding? How successful has it been?</p>
<p>The post <a href="https://perlhacks.com/2024/09/dancing-with-copilot-workspace/" rel="noopener noreferrer">Dancing with Copilot Workspace</a> first appeared on <a href="https://perlhacks.com" rel="noopener noreferrer">Perl Hacks</a>.</p>
</div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>https://dev.to/davorg/dancing-with-copilot-workspace-58hd</id>
<published>2024-09-22T16:00:08Z</published>
<updated>2024-09-22T16:00:08Z</updated>
<category term="perl"/>
<category term="dancer2"/>
<category term="ai"/>
<category term="githubcopilot"/>
</entry>
<entry>
<title>On the [b]leading edge</title>
<link rel="alternate" href="https://perlhacks.com/2024/08/on-the-bleading-edge/" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We need programmers who like to play on the bleading edge. By trying out new features, they are able to report on problems that they find – and, in doing so, improve the experience for the many people who follow them.</p>
<p>I’m not usually much of a bleading edge programmer. But I’ve been enjoying <a href="https://perldoc.perl.org/perlclass">Perl’s new object-oriented programming features</a>, so I’ve been using them a lot. And, in the process, I’ve found a few issues that I’ve reported (or, in a couple of cases, will report) to the relevant people.</p>
<p>Often, the problem that the bleading edgers come across are problems with the feature itself. That’s not the case with me. I’ve been finding problems with how Perl’s infrastructure deals with the new feature.</p>
<p>And please note, it would be easy to interpret this blog post as me complaining about these tools being “broken” because they aren’t keeping up with the development of the language. That’s not the case at all. I realise that these infrastructure projects are all run by volunteers and I’m grateful for all these people do – working for free, keeping these systems (systems that we often tend to take for granted) running. In cases where I think I would be at all useful I have, of course, offered my helping in implementing these fixes.</p>
<p>So what are the problems?</p>
<p>The first CPAN module I wrote that used the new class syntax was <a href="https://metacpan.org/pod/Amazon::Sites">Amazon::Sites</a>. As soon as I uploaded it, I knew something was awry. I got an email from the PAUSE indexer saying that it couldn’t understand my distribution tarball. I wasn’t sure what the problem was, but within an hour I got a follow-up email from Neil Bowers pointing out that PAUSE couldn’t find a <tt>package</tt> statement in my module. That’s not surprising, as the new class syntax uses <tt>class</tt> as a replacement for <tt>package</tt>. And PAUSE hadn’t been updated to recognise that syntax. Before emailing me, Neil had taken the time to <a href="https://github.com/andk/pause/issues/436">raise an issue in the PAUSE repo</a> and he suggested that the upcoming Perl Toolchain Summit would be a good opportunity to fix the problem. He also suggested that added a (strictly speaking, spurious) <tt>package</tt> line to the code would be a good workaround. I did that and uploaded a new version – which worked fine. And <a href="https://github.com/andk/pause/pull/447">PAUSE was updated</a> at the PTS. In the intervening time, I released a couple more modules that used the new syntax – so they also have the extra <tt>package</tt> line.</p>
<p>The next problem is one that probably only affects me. Back in January, I wrote about some <a href="https://perlhacks.com/2024/01/github-actions-for-perl-development/">reusable GitHub Actions</a> that I had developed for Perl code. Although it’s not mentioned in the blog post, I had added <a href="https://github.com/PerlToolsTeam/github_workflows/blob/main/.github/workflows/cpan-complexity.yml">an action that</a> uses <a href="https://metacpan.org/pod/Perl::Metrics::Simple">Perl::Metrics::Simple</a> to report on the complexity of my Perl code. I noticed that it was showing strange results for my modules that used the new syntax. Specifically, it wasn’t correctly reporting the complexity of code in methods. The reason is obvious, when you think about it. It’s just that Perl::Metrics::Simple doesn’t recognise the <tt>method</tt> keyword that is used in place of <tt>sub</tt> in the new OO syntax. I raised <a href="https://github.com/matisse/Perl-Metrics-Simple/issues/18">an issue in the repo for the module</a> – optimistically promising a pull request in a few days. That didn’t happen as the problem is actually in <a href="https://metacpan.org/pod/PPI">PPI</a> – which Perl::Metrics::Simple uses to parse the code. And there’s already <a href="https://github.com/Perl-Critic/PPI/issues/299">a ticket to add all of the new keywords to PPI</a>. Sadly, I don’t think my Perl is up to taking on this fix for the PPI team.</p>
<p>Given that the PAUSE issue I mentioned before has now been fixed, when I came to release <a href="https://metacpan.org/pod/App::LastStats">App::LastStats</a> recently I didn’t add the extra <tt>package</tt> line that had become my habit. It turns out that was a mistake. While my new module sailed past PAUSE, it seems that the lack of a <tt>package</tt> definition confuses MetaCPAN too. While my new module was being indexed by PAUSE and ending up in the <tt>02Packages</tt> file correctly (so it was installable using tools like <tt>cpanm</tt>), it wasn’t appearing in MetaCPAN search or on my author page. Chatting with Olaf Alders on the <tt>#metacpan</tt> IRC channel, he spotted that the status of the release wasn’t being set to “latest” by the MetaCPAN ingestion code. Adding the same <tt>package</tt> line to the code soon fixed that problem too. Hopefully I’ll be able to work out where to fix the MetaCPAN code so it recognises <tt>class</tt> as a synonym for <tt>package</tt>. But, until that happens, anyone uploading a module to CPAN that uses the new syntax (is that really only me?) will need to add the <tt>package</tt> line.</p>
<p>There’s one more class of problem that I’m still trying to work out. And that’s down to my use of <a href="https://metacpan.org/pod/Feature::Compat::Class">Feature::Compat::Class</a> to make these modules compatible with versions of Perl that don’t support the new syntax. Part of the problem here is that we now have two versions of Perl that support the new syntax – 5.38 and 5.40. But they support slightly different versions of the syntax – that’s to be expected, of course; it’s how the new feature is being written.</p>
<p>The way that Feature::Compat::Class works is that it checks the version of Perl and if it is running on a version less than 5.38, then it loads another module called <a href="https://metacpan.org/pod/Object::Pad">Object::Pad</a> – which is a test bed for the new class syntax. Object::Pad supports more of the planned new syntax that has been actually released yet. So when Feature::Compat::Class loads Object::Pad, it uses a flag which tells Object::Pad to only allow the syntax that has been released in a Perl release. But which syntax? From which release? I guess it depends on which version of Object::Pad I’m using. Presumably, a version that was released after Perl 5.40 will support all of 5.40’s new syntax. And if I write code that uses the newest syntax, what happens when someone tries to run it on Perl 5.38? Currently, I’m only using 5.38’s syntax, so I’m not sure yet. And this is a problem that will get worse as future versions of Perl add more features to the class syntax.</p>
<p>I don’t think my new modules have many users – they’re very niche, so this is probably only a problem that I need to solve for myself. And I’m solving it by running the code in Docker containers that have the latest version of Perl installed. But it’s something I’ll need to think about more deeply if any of these modules become more widely used. Maybe I just encourage people to use them via the Docker images.</p>
<p>Oh, one final thing. The new class syntax is experimental. Some people would, I suppose, say that’s a good reason not to use it in CPAN module – but, hey, bleading edge <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;"/> But that means it produces loads of “experimental” warnings if you don’t explicitly add code to suppress then. That code is <tt>no warnings 'experimental::class'</tt>. But that doesn’t compile on a Perl earlier than 5.38 (because it’s not a recognised warning category on a version of Perl where the feature is unimplemented). So I need to look at using <a href="https://metacpan.org/pod/if">if</a> to only turn off those warnings on the correct versions of Perl.</p>
<p>I don’t want to put anyone off using the new class syntax. I think it’s a great new tool and I’m looking forward to seeing it become more powerful as each new version of Perl is released. I just want people to realise that you will hit certain speedbumps by being an early adopter of features like this.</p>
<p>Have you tried the new syntax? What do you think of it?</p>
<p>The post <a href="https://perlhacks.com/2024/08/on-the-bleading-edge/">On the [b]leading edge</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We need programmers who like to play on the bleading edge. By trying out new features, they are able to report on problems that they find – and, in doing so, improve the experience for the many people who follow them. I’m not usually much of a bleading edge programmer. But I’ve been enjoying Perl’s […]</p>
<p>The post <a href="https://perlhacks.com/2024/08/on-the-bleading-edge/">On the [b]leading edge</a> appeared first on <a href="https://perlhacks.com">Perl Hacks</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://perlhacks.com/?p=2226</id>
<published>2024-08-29T15:15:50Z</published>
<updated>2024-08-29T15:15:50Z</updated>
<category term="Programming"/>
<category term="oop"/>
<category term="perl"/>
<category term="perlclass"/>
<category term="programming"/>
</entry>
<entry>
<title>On the [b]leading edge</title>
<link rel="alternate" href="https://dev.to/davorg/on-the-bleading-edge-1olf" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>We need programmers who like to play on the bleading edge. By trying out new features, they are able to report on problems that they find – and, in doing so, improve the experience for the many people who follow them.</p>
<p>I’m not usually much of a bleading edge programmer. But I’ve been enjoying <a href="https://perldoc.perl.org/perlclass" rel="noopener noreferrer">Perl’s new object-oriented programming features</a>, so I’ve been using them a lot. And, in the process, I’ve found a few issues that I’ve reported (or, in a couple of cases, will report) to the relevant people.</p>
<p>Often, the problem that the bleading edgers come across are problems with the feature itself. That’s not the case with me. I’ve been finding problems with how Perl’s infrastructure deals with the new feature.</p>
<p>And please note, it would be easy to interpret this blog post as me complaining about these tools being “broken” because they aren’t keeping up with the development of the language. That’s not the case at all. I realise that these infrastructure projects are all run by volunteers and I’m grateful for all these people do – working for free, keeping these systems (systems that we often tend to take for granted) running. In cases where I think I would be at all useful I have, of course, offered my helping in implementing these fixes.</p>
<p>So what are the problems?</p>
<p>The first CPAN module I wrote that used the new class syntax was <a href="https://metacpan.org/pod/Amazon::Sites" rel="noopener noreferrer">Amazon::Sites</a>. As soon as I uploaded it, I knew something was awry. I got an email from the PAUSE indexer saying that it couldn’t understand my distribution tarball. I wasn’t sure what the problem was, but within an hour I got a follow-up email from Neil Bowers pointing out that PAUSE couldn’t find a <code>package</code> statement in my module. That’s not surprising, as the new class syntax uses <code>class</code> as a replacement for <code>package</code>. And PAUSE hadn’t been updated to recognise that syntax. Before emailing me, Neil had taken the time to <a href="https://github.com/andk/pause/issues/436" rel="noopener noreferrer">raise an issue in the PAUSE repo</a> and he suggested that the upcoming Perl Toolchain Summit would be a good opportunity to fix the problem. He also suggested that added a (strictly speaking, spurious) <code>package</code> line to the code would be a good workaround. I did that and uploaded a new version – which worked fine. And <a href="https://github.com/andk/pause/pull/447" rel="noopener noreferrer">PAUSE was updated</a> at the PTS. In the intervening time, I released a couple more modules that used the new syntax – so they also have the extra <code>package</code> line.</p>
<p>The next problem is one that probably only affects me. Back in January, I wrote about some <a href="https://dev.to/davorg/github-actions-for-perl-development-4918">reusable GitHub Actions</a> that I had developed for Perl code. Although it’s not mentioned in the blog post, I had added <a href="https://github.com/PerlToolsTeam/github_workflows/blob/main/.github/workflows/cpan-complexity.yml" rel="noopener noreferrer">an action that</a> uses <a href="https://metacpan.org/pod/Perl::Metrics::Simple" rel="noopener noreferrer">Perl::Metrics::Simple</a> to report on the complexity of my Perl code. I noticed that it was showing strange results for my modules that used the new syntax. Specifically, it wasn’t correctly reporting the complexity of code in methods. The reason is obvious, when you think about it. It’s just that Perl::Metrics::Simple doesn’t recognise the <code>method</code> keyword that is used in place of <code>sub</code> in the new OO syntax. I raised <a href="https://github.com/matisse/Perl-Metrics-Simple/issues/18" rel="noopener noreferrer">an issue in the repo for the module</a> – optimistically promising a pull request in a few days. That didn’t happen as the problem is actually in <a href="https://metacpan.org/pod/PPI" rel="noopener noreferrer">PPI</a> – which Perl::Metrics::Simple uses to parse the code. And there’s already <a href="https://github.com/Perl-Critic/PPI/issues/299" rel="noopener noreferrer">a ticket to add all of the new keywords to PPI</a>. Sadly, I don’t think my Perl is up to taking on this fix for the PPI team.</p>
<p>Given that the PAUSE issue I mentioned before has now been fixed, when I came to release <a href="https://metacpan.org/pod/App::LastStats" rel="noopener noreferrer">App::LastStats</a> recently I didn’t add the extra <code>package</code> line that had become my habit. It turns out that was a mistake. While my new module sailed past PAUSE, it seems that the lack of a <code>package</code> definition confuses MetaCPAN too. While my new module was being indexed by PAUSE and ending up in the <code>02Packages</code> file correctly (so it was installable using tools like <code>cpanm</code>), it wasn’t appearing in MetaCPAN search or on my author page. Chatting with Olaf Alders on the <code>#metacpan</code> IRC channel, he spotted that the status of the release wasn’t being set to “latest” by the MetaCPAN ingestion code. Adding the same <code>package</code> line to the code soon fixed that problem too. Hopefully I’ll be able to work out where to fix the MetaCPAN code so it recognises <code>class</code> as a synonym for <code>package</code>. But, until that happens, anyone uploading a module to CPAN that uses the new syntax (is that really only me?) will need to add the <code>package</code> line.</p>
<p>There’s one more class of problem that I’m still trying to work out. And that’s down to my use of <a href="https://metacpan.org/pod/Feature::Compat::Class" rel="noopener noreferrer">Feature::Compat::Class</a> to make these modules compatible with versions of Perl that don’t support the new syntax. Part of the problem here is that we now have two versions of Perl that support the new syntax – 5.38 and 5.40. But they support slightly different versions of the syntax – that’s to be expected, of course; it’s how the new feature is being written.</p>
<p>The way that Feature::Compat::Class works is that it checks the version of Perl and if it is running on a version less than 5.38, then it loads another module called <a href="https://metacpan.org/pod/Object::Pad" rel="noopener noreferrer">Object::Pad</a> – which is a test bed for the new class syntax. Object::Pad supports more of the planned new syntax that has been actually released yet. So when Feature::Compat::Class loads Object::Pad, it uses a flag which tells Object::Pad to only allow the syntax that has been released in a Perl release. But which syntax? From which release? I guess it depends on which version of Object::Pad I’m using. Presumably, a version that was released after Perl 5.40 will support all of 5.40’s new syntax. And if I write code that uses the newest syntax, what happens when someone tries to run it on Perl 5.38? Currently, I’m only using 5.38’s syntax, so I’m not sure yet. And this is a problem that will get worse as future versions of Perl add more features to the class syntax.</p>
<p>I don’t think my new modules have many users – they’re very niche, so this is probably only a problem that I need to solve for myself. And I’m solving it by running the code in Docker containers that have the latest version of Perl installed. But it’s something I’ll need to think about more deeply if any of these modules become more widely used. Maybe I just encourage people to use them via the Docker images.</p>
<p>Oh, one final thing. The new class syntax is experimental. Some people would, I suppose, say that’s a good reason not to use it in CPAN module – but, hey, bleading edge :-) But that means it produces loads of “experimental” warnings if you don’t explicitly add code to suppress then. That code is <code>no warnings 'experimental::class'</code>. But that doesn’t compile on a Perl earlier than 5.38 (because it’s not a recognised warning category on a version of Perl where the feature is unimplemented). So I need to look at using <a href="https://metacpan.org/pod/if" rel="noopener noreferrer">if</a> to only turn off those warnings on the correct versions of Perl.</p>
<p>I don’t want to put anyone off using the new class syntax. I think it’s a great new tool and I’m looking forward to seeing it become more powerful as each new version of Perl is released. I just want people to realise that you will hit certain speedbumps by being an early adopter of features like this.</p>
<p>Have you tried the new syntax? What do you think of it?</p>
<p>The post <a href="https://perlhacks.com/2024/08/on-the-bleading-edge/" rel="noopener noreferrer">On the [b]leading edge</a> first appeared on <a href="https://perlhacks.com" rel="noopener noreferrer">Perl Hacks</a>.</p>
</div>
</content>
<author>
<name>Dave Cross</name>
</author>
<id>https://dev.to/davorg/on-the-bleading-edge-1olf</id>
<published>2024-08-29T15:15:50Z</published>
<updated>2024-08-29T15:15:50Z</updated>
<category term="programming"/>
<category term="oop"/>
<category term="perl"/>
<category term="perlclass"/>
</entry>
<entry>
<title>DAVECROSS has released App-MergeCal-0.0.5</title>
<link rel="alternate" href="https://metacpan.org/release/DAVECROSS/App-MergeCal-0.0.5" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">Merge multiple iCal files into one</div>
</content>
<author>
<name>DAVECROSS</name>
</author>
<id>https://metacpan.org/release/DAVECROSS/App-MergeCal-0.0.5</id>
<published>2024-08-18T16:46:26Z</published>
<updated>2024-08-18T16:46:26Z</updated>
</entry>
<entry>
<title>DAVECROSS has released XML-Feed-0.65</title>
<link rel="alternate" href="https://metacpan.org/release/DAVECROSS/XML-Feed-0.65" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">XML Syndication Feed Support</div>
</content>
<author>
<name>DAVECROSS</name>
</author>
<id>https://metacpan.org/release/DAVECROSS/XML-Feed-0.65</id>
<published>2024-07-08T11:18:24Z</published>
<updated>2024-07-08T11:18:24Z</updated>
</entry>
<entry>
<title>Royal Titles Decoded: What Makes a Prince or Princess? — Line of Succession Blog</title>
<link rel="alternate" href="https://medium.com/line-of-succession/royal-titles-decoded-what-makes-a-prince-or-princess-line-of-succession-blog-ff8cbe15a1cc?source=rss-3781feb8a4f4------2" type="text/html"/>
<content type="html"><h3>Royal Titles Decoded: What Makes a Prince or Princess? — Line of Succession Blog</h3><figure><img alt="Letters Patent issued by George V in 1917" src="https://cdn-images-1.medium.com/max/768/1*0Mri416usTFwznC_oH68sw.jpeg" /></figure><p>Royal titles in the United Kingdom carry a rich tapestry of history, embodying centuries of tradition while adapting to the changing landscape of the modern world. This article delves into the structure of these titles, focusing on significant changes made during the 20th and 21st centuries, and how these rules affect current royals.</p><h4>The Foundations: Letters Patent of 1917</h4><p>The framework for today’s royal titles was significantly shaped by the Letters Patent issued by King George V in 1917. This document was pivotal in redefining who in the royal family would be styled with “His or Her Royal Highness” (HRH) and as a prince or princess. Specifically, the 1917 Letters Patent restricted these styles to:</p><ul><li>The sons and daughters of a sovereign.</li><li>The male-line grandchildren of a sovereign.</li><li>The eldest living son of the eldest son of the Prince of Wales.</li></ul><p>This move was partly in response to the anti-German sentiment of World War I, aiming to streamline the monarchy and solidify its British identity by reducing the number of royals with German titles.</p><p>Notice that the definitions talk about “a sovereign”, not “the sovereign”. This means that when the sovereign changes, no-one will lose their royal title (for example, Prince Andrew is still the son of <em>a</em> sovereign, even though he is no longer the son of <em>the</em> sovereign). However, people can gain royal titles when the sovereign changes — we will see examples below.</p><h4>Extension by George VI in 1948</h4><p>Understanding the implications of the existing rules as his family grew, King George VI issued a new Letters Patent in 1948 to extend the style of HRH and prince/princess to the children of the future queen, Princess Elizabeth (later Queen Elizabeth II). This was crucial as, without this adjustment, Princess Elizabeth’s children would not automatically have become princes or princesses because they were not male-line grandchildren of the monarch. This ensured that Charles and Anne were born with princely status, despite being the female-line grandchildren of a monarch.</p><h4>The Modern Adjustments: Queen Elizabeth II’s 2012 Update</h4><p>Queen Elizabeth II’s update to the royal titles in 2012 before the birth of Prince William’s children was another significant modification. The Letters Patent of 2012 decreed that all the children of the eldest son of the Prince of Wales would hold the title of HRH and be styled as prince or princess, not just the eldest son. This move was in anticipation of changes brought about by the Succession to the Crown Act of 2013, which ended the system of male primogeniture, ensuring that the firstborn child of the Prince of Wales, regardless of gender, would be the direct heir to the throne. Without this change, there could have been a situation where Prince William’s first child (and the heir to the throne) was a daughter who wasn’t a princess, whereas her eldest (but younger) brother would have been a prince.</p><h4>Impact on Current Royals</h4><ul><li><strong>Children of Princess Anne</strong>: When Anne married Captain Mark Phillips in 1973, he was offered an earldom but declined it. Consequently, their children, Peter Phillips and Zara Tindall, were not born with any titles. This decision reflects Princess Anne’s preference for her children to have a more private life, albeit still active within the royal fold.</li><li><strong>Children of Prince Edward</strong>: Initially, Prince Edward’s children were styled as children of an earl, despite his being a son of the sovereign. Recently, his son James assumed the courtesy title Earl of Wessex, which Prince Edward will inherit in due course from Prince Philip’s titles. His daughter, Lady Louise Windsor, was also styled in line with Edward’s wish for a lower-profile royal status for his children.</li><li><strong>Children of Prince Harry:</strong> When Archie and Lilibet were born, they were not entitled to princely status or HRH. They were great-grandchildren of the monarch and, despite the Queen’s adjustments in 2012, their cousins — George, Charlotte and Louis — were the only great-grandchildren of the monarch with those titles. When their grandfather became king, they became male-line grandchildren of a monarch and, hence, a prince and a princess. It took a while for those changes to be reflected on the royal family website. This presumably gave the royal household time to reflect on the effect of the children’s parents withdrawing from royal life and moving to the USA.</li></ul><h4>Special Titles: Prince of Wales and Princess Royal</h4><ul><li><strong>Prince of Wales</strong>: Historically granted to the heir apparent, this title is not automatic and needs to be specifically bestowed by the monarch. Prince Charles was created Prince of Wales in 1958, though he had been the heir apparent since 1952. Prince William, on the other hand, received the title in 2022 — just a day after the death of Queen Elizabeth II.</li><li><strong>Princess Royal</strong>: This title is reserved for the sovereign’s eldest daughter but is not automatically reassigned when the previous holder passes away or when a new eldest daughter is born. Queen Elizabeth II was never Princess Royal because her aunt, Princess Mary, held the title during her lifetime. Princess Anne currently holds this title, having received it in 1987.</li></ul><h4>The Fade of Titles: Distant Royals</h4><p>As the royal family branches out, descendants become too distanced from the throne, removing their entitlement to HRH and princely status. For example, the Duke of Gloucester, Duke of Kent, Prince Michael of Kent and Princess Alexandra all have princely status as male-line grandchildren of George V. Their children are all great-grandchildren of a monarch and, therefore, do not all have royal styles or titles. This reflects a natural trimming of the royal family tree, focusing the monarchy’s public role on those directly in line for succession.</p><h4>Conclusion</h4><p>The evolution of British royal titles reflects both adherence to deep-rooted traditions and responsiveness to modern expectations. These titles not only delineate the structure and hierarchy within the royal family but also adapt to changes in societal norms and the legal landscape, ensuring the British monarchy remains both respected and relevant in the contemporary era.</p><p><em>Originally published at </em><a href="https://blog.lineofsuccession.co.uk/2024/04/royal-titles-decoded-what-makes-a-prince-or-princess/"><em>https://blog.lineofsuccession.co.uk</em></a><em> on April 25, 2024.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ff8cbe15a1cc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/line-of-succession/royal-titles-decoded-what-makes-a-prince-or-princess-line-of-succession-blog-ff8cbe15a1cc">Royal Titles Decoded: What Makes a Prince or Princess? — Line of Succession Blog</a> was originally published in <a href="https://medium.com/line-of-succession">Line of Succession</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p></content>
<author>
<name>Dave Cross</name>
</author>
<id>https://medium.com/p/ff8cbe15a1cc</id>
<published>2024-04-25T13:38:00Z</published>
<updated>2024-04-25T13:44:22.543000Z</updated>
</entry>
<entry>
<title>The Tourist</title>
<link rel="alternate" href="https://davorg.medium.com/the-tourist-41ea5faabeae?source=rss-3781feb8a4f4------2" type="text/html"/>
<content type="html"><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jMwOTwfFuoyypgvaDZuDkQ.png" /><figcaption>The view of the planet [AI-generated image]</figcaption></figure><p>Changing rooms are the same all over the galaxy and this one really played to the stereotype. The lights flickered that little bit more than you’d want them to, a sizeable proportion of the lockers wouldn’t lock and the whole room needed a good clean. It didn’t fit with the eye-watering amount of money we had all paid for the tour.</p><p>There were a dozen or so of us changing from our normal clothes into outfits that had been supplied by the tour company — outfits that were supposed to render us invisible when we reached our destination. Not invisible in the “bending light rays around you” way, they would just make us look enough like the local inhabitants that no-one would give us a second glance.</p><p>Appropriate changing room etiquette was followed. Everyone was either looking at the floor or into their locker to avoid eye contact with anyone else. People talked in lowered voices to people they had come with. People who, like me, had come alone were silent. I picked up on some of the quiet conversations — they were about the unusual flora and fauna of our location and the unique event we were here to see.</p><p>Soon, we had all changed and were ushered into a briefing room where our guide told us many things we already knew. She had slides explaining the physics behind the phenomenon and was at great pains to emphasise the uniqueness of the event. No other planet in the galaxy had been found that met all of the conditions for what we were going to see. She went through the history of tourism to this planet — decades of uncontrolled visits followed by the licensing of a small number of carefully vetted companies like the one we were travelling with.</p><p>She then turned to more practical matters. She reiterated that our outfits would allow us to pass for locals, but that we should do all we could to avoid any interactions with the natives. She also reminded us that we should only look at the event through the equipment that we would be issued with on our way down to the planet.</p><p>Through a window in the briefing room a planet, our destination, hung in space. Beyond the planet, its star could also be seen.</p><p>An hour or so later, we were on the surface of the planet. We were deposited at the top of a grassy hill on the edge of a large crowd of the planet’s inhabitants. Most of us were of the same basic body shape as the quadruped locals and, at first glance at least, passed for them. A few of us were less lucky and had to stay in the vehicles to avoid suspicion.</p><p>The timing of the event was well understood and the company had dropped us off early enough that we were able to find a good viewing spot but late enough that we didn’t have long to wait. We had been milling around for half an hour or so when a palpable moment of excitement passed through the crowd and everyone looked to the sky.</p><p>Holding the equipment I had been given to my eyes I could see what everyone else had noticed. A small bite seemed to have been taken from the bottom left of the planet’s sun. As we watched, the bite got larger and larger as the planet’s satellite moved in front of the star. The satellite appeared to be a perfect circle, but at the last minute — just before it covered the star completely — it became obvious that the edge wasn’t smooth as gaps between irregularities on the surface (mountains, I suppose) allowed just a few points of light through.</p><p>And then the satellite covered the sun and the atmosphere changed completely. The world turned dark and all conversations stopped. All of the local animals went silent. It was magical.</p><p>My mind went back to the slides explaining the phenomenon. Obviously, the planet’s satellite and star weren’t the same size, but their distance from the planet exactly balanced their difference in size so they appeared the same size in the sky. And the complex interplay of orbits meant that on rare occasions like this, the satellite would completely and exactly cover the star.</p><p>That was what we were there for. This was what was unique about this planet. No other planet in the galaxy had a star and a satellite that appeared exactly the same size in the sky. This is what made the planet the most popular tourist spot in the galaxy.</p><p>Ten minutes later, it was over. The satellite continued on its path and the star was gradually uncovered. Our guide bundled us into the transport and back up to our spaceship.</p><p>Before leaving the vicinity of the planet, our pilot found three locations in space where the satellite and the star lined up in the same way and created fake eclipses for those of us who had missed taking photos of the real one.</p><p><em>Originally published at </em><a href="https://blog.dave.org.uk/2024/04/the-tourist.html"><em>https://blog.dave.org.uk</em></a><em> on April 7, 2024.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41ea5faabeae" width="1" height="1" alt=""></content>
<author>
<name>Dave Cross</name>
</author>
<id>https://medium.com/p/41ea5faabeae</id>
<published>2024-04-07T09:46:53Z</published>
<updated>2024-04-10T17:33:33.321000Z</updated>
<category term="astronomy"/>
<category term="short-story"/>
<category term="writing"/>
<category term="fiction"/>
</entry>
<entry>
<title>The Tourist</title>
<link rel="alternate" href="https://blog.dave.org.uk/2024/04/the-tourist.html" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p><span style="font-weight: 400;">Changing rooms are the same all over the galaxy and this one really played to the stereotype. The lights flickered that little bit more than you’d want them to, a sizeable proportion of the lockers wouldn’t lock and the whole room needed a good clean. It didn’t fit with the eye-watering amount of money we had all paid for the tour.</span></p>
<p><span style="font-weight: 400;">There were a dozen or so of us changing from our normal clothes into outfits that had been supplied by the tour company – outfits that were supposed to render us invisible when we reached our destination. Not invisible in the “bending light rays around you” way, they would just make us look enough like the local inhabitants that no-one would give us a second glance.</span></p>
<p><span style="font-weight: 400;">Appropriate changing room etiquette was followed. Everyone was either looking at the floor or into their locker to avoid eye contact with anyone else. People talked in lowered voices to people they had come with. People who, like me, had come alone were silent. I picked up on some of the quiet conversations – they were about the unusual flora and fauna of our location and the unique event we were here to see.</span></p>
<p><span style="font-weight: 400;">Soon, we had all changed and were ushered into a briefing room where our guide told us many things we already knew. She had slides explaining the physics behind the phenomenon and was at great pains to emphasise the uniqueness of the event. No other planet in the galaxy had been found that met all of the conditions for what we were going to see. She went through the history of tourism to this planet – decades of uncontrolled visits followed by the licensing of a small number of carefully vetted companies like the one we were travelling with.</span></p>
<p><span style="font-weight: 400;">She then turned to more practical matters. She reiterated that our outfits would allow us to pass for locals, but that we should do all we could to avoid any interactions with the natives. She also reminded us that we should only look at the event through the equipment that we would be issued with on our way down to the planet.</span></p>
<p><span style="font-weight: 400;">Through a window in the briefing room a planet, our destination, hung in space. Beyond the planet, its star could also be seen.</span></p>
<p><span style="font-weight: 400;">An hour or so later, we were on the surface of the planet. We were deposited at the top of a grassy hill on the edge of a large crowd of the planet’s inhabitants. Most of us were of the same basic body shape as the quadruped locals and, at first glance at least, passed for them. A few of us were less lucky and had to stay in the vehicles to avoid suspicion.</span></p>
<p><span style="font-weight: 400;">The timing of the event was well understood and the company had dropped us off early enough that we were able to find a good viewing spot but late enough that we didn’t have long to wait. We had been milling around for half an hour or so when a palpable moment of excitement passed through the crowd and everyone looked to the sky.</span></p>
<p><span style="font-weight: 400;">Holding the equipment I had been given to my eyes I could see what everyone else had noticed. A small bite seemed to have been taken from the bottom left of the planet’s sun. As we watched, the bite got larger and larger as the planet’s satellite moved in front of the star. The satellite appeared to be a perfect circle, but at the last minute – just before it covered the star completely – it became obvious that the edge wasn’t smooth as gaps between irregularities on the surface (mountains, I suppose) allowed just a few points of light through.</span></p>
<p><span style="font-weight: 400;">And then the satellite covered the sun and the atmosphere changed completely. The world turned dark and all conversations stopped. All of the local animals went silent. It was magical.</span></p>
<p><span style="font-weight: 400;">My mind went back to the slides explaining the phenomenon. Obviously, the planet’s satellite and star weren’t the same size, but their distance from the planet exactly balanced their difference in size so they appeared the same size in the sky. And the complex interplay of orbits meant that on rare occasions like this, the satellite would completely and exactly cover the star.</span></p>
<p><span style="font-weight: 400;">That was what we were there for. This was what was unique about this planet. No other planet in the galaxy had a star and a satellite that appeared exactly the same size in the sky. This is what made the planet the most popular tourist spot in the galaxy.</span></p>
<p><span style="font-weight: 400;">Ten minutes later, it was over. The satellite continued on its path and the star was gradually uncovered. Our guide bundled us into the transport and back up to our spaceship.</span></p>
<p><span style="font-weight: 400;">Before leaving the vicinity of the planet, our pilot found three locations in space where the satellite and the star lined up in the same way and created fake eclipses for those of us who had missed taking photos of the real one.</span></p>
<p>The post <a href="https://blog.dave.org.uk/2024/04/the-tourist.html">The Tourist</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Changing rooms are the same all over the galaxy and this one really played to the stereotype. The lights flickered that little bit more than you’d want them to, a sizeable proportion of the lockers wouldn’t lock and the whole room needed a good clean. It didn’t fit with the eye-watering amount of money we… <a class="more-link" href="https://blog.dave.org.uk/2024/04/the-tourist.html">Continue reading <span class="screen-reader-text">The Tourist</span></a></p>
<p>The post <a href="https://blog.dave.org.uk/2024/04/the-tourist.html">The Tourist</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://blog.dave.org.uk/?p=3931</id>
<published>2024-04-07T09:46:27Z</published>
<updated>2024-04-07T09:46:27Z</updated>
<category term="writing"/>
<category term="astronomy"/>
<category term="fiction"/>
<category term="tourism"/>
</entry>
<entry>
<title>2023 in Gigs</title>
<link rel="alternate" href="https://davorg.medium.com/2023-in-gigs-98b39b2e3527?source=rss-3781feb8a4f4------2" type="text/html"/>
<content type="html"><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pEL6miEuUan55lq2.jpg" /></figure><p>I really thought that 2023 would be the year I got back into the swing of seeing gigs. But, somehow I ended up seeing even fewer than I did in 2022–12, when I saw 16 the previous year. Sometimes, I look at <a href="https://martinbelam.com/category/music/gig-reviews/">Martin’s monthly gig round-ups</a> and wonder what I’m doing with my life!</p><p>I normally list my ten favourite gigs of the year, but it would be rude to miss just two gigs from the list, so here are all twelve gigs I saw this year — in, as always, chronological order.</p><ul><li><a href="https://www.songkick.com/concerts/40810079-john-grant-at-st-jamess-church-piccadilly"><strong>John Grant (supported by The Faultress) at St. James’s Church</strong></a><br>John Grant has become one of those artists I try to see whenever they pass through London. And this was a particularly special night as he was playing an acoustic set in one of the most atmospheric venues in London. The evening was only slightly marred by the fact I arrived too late to get a decent seat and ended up not being able to see anything.</li><li><a href="https://www.songkick.com/concerts/40660413-hannah-peel-at-kings-place"><strong>Hannah Peel at Kings Place</strong></a><br>Hannah Peel was the artist in residence at Kings Place for a few months during the year and played three gigs during that time. This was the first of them — where she played her recent album, <em>Fir Wave</em>, in its entirety. A very laid-back and thoroughly enjoyable evening.</li><li><a href="https://www.songkick.com/concerts/40792448-orbital-at-eventim-apollo"><strong>Orbital at the Eventim Apollo</strong></a><br>I’ve been meaning to get around to seeing Orbital for many years. This show was originally planned to be at the Brixton Academy but as that venue is currently closed, it was relocated to Hammersmith. To be honest, this evening was slightly hampered by the fact I don’t know as much of their work as I thought I did and it was all a bit samey. I ended up leaving before the encore.</li><li><a href="https://www.songkick.com/concerts/40755436-duran-duran-at-o2"><strong>Duran Duran (supported by Jake Shears) at the O2 Arena</strong></a><br>Continuing my quest to see all of the bands I was listening to in the 80s (and, simultaneously, ticking off the one visit to the O2 that I allow myself each year). I really enjoyed the nostalgia of seeing Duran Duran but, to be honest, I think I enjoyed Jake Shears more — and it was the Scissor Sisters I was listening to on the way home.</li><li><a href="https://www.songkick.com/concerts/40662722-hannah-peel-at-kings-place"><strong>Hannah Peel and Beibei Wang at Kings Place</strong></a><br>Even in a year where I only see a few gigs, I still manage to see artists more than once. This was the second of Hannah Peel’s artist-in-residence shows. She appeared with Chinese percussionist Beibei Wang in a performance that was completely spontaneous and unrehearsed. Honestly, some parts were more successful than others, but it was certainly an interesting experience.</li><li><strong>Songs from Summerisle at the Barbican Hall</strong><br><em>The Wicker Man</em> is one of my favourite films, so I jumped at the chance to see the songs from the soundtrack performed live. But unfortunately, the evening was a massive disappointment. The band sounded like they had met just before the show and, while they all obviously knew the songs, they hadn’t rehearsed them together. Maybe they were going for a rustic feel — but, to me, it just sounded unprofessional.</li><li><a href="https://www.songkick.com/concerts/40752925-belle-and-sebastian-at-roundhouse"><strong>Belle and Sebastian at the Roundhouse</strong></a><br>Another act that I try to see as often as possible. I know some people see Belle and Sebastian as the most <em>Guardian</em>-reader band ever — but I love them. This show saw them on top form.</li><li><a href="https://www.songkick.com/concerts/40880411-jon-anderson-at-o2-shepherds-bush-empire"><strong>Jon Anderson and the Paul Green Rock Academy at the Shepherds Bush Empire</strong></a><br>I’ve seen Yes play live a few times in the last ten years or so and, to be honest, it can sometimes be a bit over-serious and dull. In this show, Jon Anderson sang a load of old Yes songs with a group of teenagers from the Paul Green Rock Academy (the school that <em>School of Rock</em> was based on) and honestly, the teenagers brought such a feeling of fun to the occasion that it was probably the best Yes-related show that I’ve seen.</li><li><a href="https://www.songkick.com/concerts/41093083-john-grant-at-barbican-centre"><strong>John Grant and Richard Hawley at the Barbican Hall</strong></a><br>Another repeated act — my second time seeing John Grant in a year. This was something different as he was playing a selection of Patsy Cline songs. I don’t listen to Patsy Cline much, but I knew a few more of the songs than I expected to. This was a bit lower-key than I was expecting.</li><li><a href="https://www.songkick.com/concerts/40765146-peter-hook-and-the-light-at-eventim-apollo"><strong>Peter Hook and the Light at the Eventim Apollo</strong></a><br>I’ve been planning to see Peter Hook and the Light for a couple of years. There was a show I had tickets for in 2020, but it was postponed because of COVID and when it was rescheduled, I was unable to go, so I cancelled my ticket and got a refund. So I was pleased to get another chance. And this show had them playing both of the <em>Substance </em>albums (Joy Division and New Order). I know New Order still play some Joy Division songs in their sets, but this is probably the best chance I’ll have to see some deep Joy Division cuts played live. I really enjoyed this show.</li><li><a href="https://www.songkick.com/concerts/41086395-heaven-17-at-o2-shepherds-bush-empire"><strong>Heaven 17 at the Shepherds Bush Empire</strong></a><br>It seems I see Heaven 17 live most years and they usually appear on my “best of” lists. This show was celebrating the fortieth anniversary of their album <em>The Luxury Gap</em> — so that got played in full, alongside many other Heaven 17 and Human League songs. A thoroughly enjoyable night.</li><li><a href="https://www.songkick.com/concerts/41519083-afro-celt-sound-system-official-at-roundhouse"><strong>The Imagined Village and Afro-Celt Sound System at the Roundhouse</strong></a><br>I’ve seen both The Imagined Village and the Afro-Celts live once before. And they were two of the best gigs I’ve ever seen. I pretty much assumed that the death of Simon Emmerson (who was an integral part of both bands) earlier in 2023 would mean that both bands would stop performing. But this show was a tribute to Emmerson and the bands both reformed to celebrate his work. This was probably my favourite gig of the year. That’s The Imagined Village (featuring two Carthys, dour Coppers and Billy Bragg) in the photo at the top of this post.</li></ul><p>So, what’s going to happen in 2024. I wonder if I’ll get back into the habit of going to more shows. I only have a ticket for one gig next year — They Might Be Giants playing <em>Flood </em>in November (a show that was postponed from this year). I guess we’ll see. Tune in this time next year to see what happened.</p><p><em>Originally published at </em><a href="https://blog.dave.org.uk/2023/12/2023-in-gigs.html"><em>https://blog.dave.org.uk</em></a><em> on December 31, 2023.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=98b39b2e3527" width="1" height="1" alt=""></content>
<author>
<name>Dave Cross</name>
</author>
<id>https://medium.com/p/98b39b2e3527</id>
<published>2023-12-31T13:47:45Z</published>
<updated>2023-12-31T13:49:18.784000Z</updated>
</entry>
<entry>
<title>2023 in Gigs</title>
<link rel="alternate" href="https://blog.dave.org.uk/2023/12/2023-in-gigs.html" type="text/html"/>
<content type="html">
<p>I really thought that 2023 would be the year I got back into the swing of seeing gigs. But, somehow I ended up seeing even fewer than I did in 2022 &#8211; 12, when I saw 16 the previous year. Sometimes, I look at <a href="https://martinbelam.com/category/music/gig-reviews/">Martin&#8217;s monthly gig round-ups</a> and wonder what I&#8217;m doing with my life!</p>
<p>I normally list my ten favourite gigs of the year, but it would be rude to miss just two gigs from the list, so here are all twelve gigs I saw this year &#8211; in, as always, chronological order.</p>
<ul class="wp-block-list">
<li><a href="https://www.songkick.com/concerts/40810079-john-grant-at-st-jamess-church-piccadilly"><strong>John Grant (supported by The Faultress) at St. James&#8217;s Church</strong></a><br>John Grant has become one of those artists I try to see whenever they pass through London. And this was a particularly special night as he was playing an acoustic set in one of the most atmospheric venues in London. The evening was only slightly marred by the fact I arrived too late to get a decent seat and ended up not being able to see anything.</li>
<li><a href="https://www.songkick.com/concerts/40660413-hannah-peel-at-kings-place"><strong>Hannah Peel at Kings Place</strong></a><br>Hannah Peel was the artist in residence at Kings Place for a few months during the year and played three gigs during that time. This was the first of them &#8211; where she played her recent album, <em>Fir Wave</em>, in its entirety. A very laid-back and thoroughly enjoyable evening.</li>
<li><a href="https://www.songkick.com/concerts/40792448-orbital-at-eventim-apollo"><strong>Orbital at the Eventim Apollo</strong></a><br>I&#8217;ve been meaning to get around to seeing Orbital for many years. This show was originally planned to be at the Brixton Academy but as that venue is currently closed, it was relocated to Hammersmith. To be honest, this evening was slightly hampered by the fact I don&#8217;t know as much of their work as I thought I did and it was all a bit samey. I ended up leaving before the encore.</li>
<li><a href="https://www.songkick.com/concerts/40755436-duran-duran-at-o2"><strong>Duran Duran (supported by Jake Shears) at the O2 Arena</strong></a><br>Continuing my quest to see all of the bands I was listening to in the 80s (and, simultaneously, ticking off the one visit to the O2 that I allow myself each year). I really enjoyed the nostalgia of seeing Duran Duran but, to be honest, I think I enjoyed Jake Shears more &#8211; and it was the Scissor Sisters I was listening to on the way home.</li>
<li><a href="https://www.songkick.com/concerts/40662722-hannah-peel-at-kings-place"><strong>Hannah Peel and Beibei Wang at Kings Place</strong></a><br>Even in a year where I only see a few gigs, I still manage to see artists more than once. This was the second of Hannah Peel&#8217;s artist-in-residence shows. She appeared with Chinese percussionist Beibei Wang in a performance that was completely spontaneous and unrehearsed. Honestly, some parts were more successful than others, but it was certainly an interesting experience.</li>
<li><strong>Songs from Summerisle at the Barbican Hall</strong><br><em>The Wicker Man</em> is one of my favourite films, so I jumped at the chance to see the songs from the soundtrack performed live. But unfortunately, the evening was a massive disappointment. The band sounded like they had met just before the show and, while they all obviously knew the songs, they hadn&#8217;t rehearsed them together. Maybe they were going for a rustic feel &#8211; but, to me, it just sounded unprofessional.</li>
<li><a href="https://www.songkick.com/concerts/40752925-belle-and-sebastian-at-roundhouse"><strong>Belle and Sebastian at the Roundhouse</strong></a><br>Another act that I try to see as often as possible. I know some people see Belle and Sebastian as the most <em>Guardian</em>-reader band ever &#8211; but I love them. This show saw them on top form.</li>
<li><strong><a href="https://www.songkick.com/concerts/40880411-jon-anderson-at-o2-shepherds-bush-empire">Jon Anderson and the Paul Green Rock Academy at the Shepherds Bush Empire</a></strong><br>I&#8217;ve seen Yes play live a few times in the last ten years or so and, to be honest, it can sometimes be a bit over-serious and dull. In this show, Jon Anderson sang a load of old Yes songs with a group of teenagers from the Paul Green Rock Academy (the school that <em>School of Rock</em> was based on) and honestly, the teenagers brought such a feeling of fun to the occasion that it was probably the best Yes-related show that I&#8217;ve seen.</li>
<li><strong><a href="https://www.songkick.com/concerts/41093083-john-grant-at-barbican-centre">John Grant and Richard Hawley at the Barbican Hall</a></strong><br>Another repeated act &#8211; my second time seeing John Grant in a year. This was something different as he was playing a selection of Patsy Cline songs. I don&#8217;t listen to Patsy Cline much, but I knew a few more of the songs than I expected to. This was a bit lower-key than I was expecting.</li>
<li><strong><a href="https://www.songkick.com/concerts/40765146-peter-hook-and-the-light-at-eventim-apollo">Peter Hook and the Light at the Eventim Apollo</a></strong><br>I&#8217;ve been planning to see Peter Hook and the Light for a couple of years. There was a show I had tickets for in 2020, but it was postponed because of COVID and when it was rescheduled, I was unable to go, so I cancelled my ticket and got a refund. So I was pleased to get another chance. And this show had them playing both of the <em>Substance </em>albums (Joy Division and New Order). I know New Order still play some Joy Division songs in their sets, but this is probably the best chance I&#8217;ll have to see some deep Joy Division cuts played live. I really enjoyed this show.</li>
<li><strong><a href="https://www.songkick.com/concerts/41086395-heaven-17-at-o2-shepherds-bush-empire">Heaven 17 at the Shepherds Bush Empire</a></strong><br>It seems I see Heaven 17 live most years and they usually appear on my &#8220;best of&#8221; lists. This show was celebrating the fortieth anniversary of their album <em>The Luxury Gap</em> &#8211; so that got played in full, alongside many other Heaven 17 and Human League songs. A thoroughly enjoyable night.</li>
<li><strong><a href="https://www.songkick.com/concerts/41519083-afro-celt-sound-system-official-at-roundhouse">The Imagined Village and Afro-Celt Sound System at the Roundhouse</a></strong><br>I&#8217;ve seen both The Imagined Village and the Afro-Celts live once before. And they were two of the best gigs I&#8217;ve ever seen. I pretty much assumed that the death of Simon Emmerson (who was an integral part of both bands) earlier in 2023 would mean that both bands would stop performing. But this show was a tribute to Emmerson and the bands both reformed to celebrate his work. This was probably my favourite gig of the year. That&#8217;s The Imagined Village (featuring two Carthys, dour Coppers and Billy Bragg) in the photo at the top of this post.</li>
</ul>
<p>So, what&#8217;s going to happen in 2024. I wonder if I&#8217;ll get back into the habit of going to more shows. I only have a ticket for one gig next year &#8211; They Might Be Giants playing <em>Flood </em>in November (a show that was postponed from this year). I guess we&#8217;ll see. Tune in this time next year to see what happened.</p>
<p>The post <a href="https://blog.dave.org.uk/2023/12/2023-in-gigs.html">2023 in Gigs</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>I really thought that 2023 would be the year I got back into the swing of seeing gigs. But, somehow I ended up seeing even fewer than I did in 2022 – 12, when I saw 16 the previous year. Sometimes, I look at Martin’s monthly gig round-ups and wonder what I’m doing with my… <a class="more-link" href="https://blog.dave.org.uk/2023/12/2023-in-gigs.html">Continue reading <span class="screen-reader-text">2023 in Gigs</span></a></p>
<p>The post <a href="https://blog.dave.org.uk/2023/12/2023-in-gigs.html">2023 in Gigs</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://blog.dave.org.uk/?p=3923</id>
<published>2023-12-31T13:47:25Z</published>
<updated>2023-12-31T13:47:25Z</updated>
<category term="music"/>
<category term="2023"/>
<category term="gigs"/>
<category term="review"/>
<category term="year in gigs"/>
</entry>
<entry>
<title>Seventy Years of Change — Line of Succession Blog</title>
<link rel="alternate" href="https://medium.com/line-of-succession/seventy-years-of-change-line-of-succession-blog-c2bfe6c8f3a8?source=rss-3781feb8a4f4------2" type="text/html"/>
<content type="html"><h3>Seventy Years of Change</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/650/0*4j8pPnverV8TTBnA.jpg" /></figure><p>Her Majesty has, of course, seen changes in many areas of society in the seventy years of her reign. But here, we’re most interested in the line of succession. So we thought it would be interesting to look at <a href="https://lineofsuccession.co.uk/1952-02-06">the line of succession on the day that she took the throne</a> and see what had happened to the people who were at the top of the line of succession on that day. It’s <a href="https://lineofsuccession.co.uk/">a very different list to today’s</a>.</p><ol><li><a href="https://lineofsuccession.co.uk/p/27d228-the-prince-charles-prince-of-wales">The Prince Charles, Duke of Cornwall</a><br>We start with the one person who is in exactly the same place as he was seventy years ago. Prince Charles was three years old and hadn’t yet been made Prince of Wales.</li><li><a href="https://lineofsuccession.co.uk/p/b3fcb1-the-princess-anne-princess-royal">The Princess Anne</a><br>Princess Anne has fallen a long way in seventy years. The birth of younger brothers (back in the days when sex mattered in the line of succession) and those brothers having families of their own mean that she is now down at number 17.</li><li><a href="https://lineofsuccession.co.uk/p/fbb68c-the-princess-margaret-countess-of-snowdon">Princess Margaret</a><br>We’ve run out of the Queen’s descendants after only two places (today, they fill the top 24 places in the line) so we move to her sister. Princess Margaret had fallen to 11th place before her death in 2002.</li><li><a href="https://lineofsuccession.co.uk/p/d7f62e-the-prince-henry-duke-of-gloucester">Prince Henry, Duke of Gloucester</a><br>We’ve now run out of descendants of George VI, so we need to look at his brothers. This is the father of the current duke. He fell to 8th place before dying in 1974.</li><li><a href="https://lineofsuccession.co.uk/p/8cb063-prince-william-of-gloucester">Prince William of Gloucester</a><br>The Duke of Gloucester’s eldest son had fallen to position 9 before sadly dying before his father in 1972.</li><li><a href="https://lineofsuccession.co.uk/p/48a2e0-prince-richard-the-duke-of-gloucester">Prince Richard of Gloucester</a><br>As his eldest son predeceased their father, it was Prince Richard who became Duke of Gloucester when the first duke died in 1974. He is currently in 30th place.</li><li><a href="https://lineofsuccession.co.uk/p/5a8417-prince-edward-duke-of-kent">Prince Edward, Duke of Kent</a><br>The first Duke of Kent had died ten years earlier, so it was his son, Prince Edward, who held the title, at the age of 16, who was duke in 1952, He fell out of the top 30 in 2012.</li><li><a href="https://lineofsuccession.co.uk/p/8c9114-prince-michael-of-kent">Prince Michael of Kent</a><br>Prince Michael had fallen to 16th place before his marriage to a Catholic, in 1978, excluded him from the line of succession. He was reinstated in 2015 (because the Succession to the Crown Act meant that marriage to a Catholic was no longer a reason for exclusion) but he reappeared outside of the top 30.</li><li><a href="https://lineofsuccession.co.uk/p/67541e-princess-alexandra-lady-ogilvy">Princess Alexandra of Kent</a><br>Princess Alexandra had dropped down the list pretty consistently throughout her life. From 1999 she popped in and out of the top 30 a few times. but she left it for the last time in 2003.</li><li><a href="https://lineofsuccession.co.uk/p/1dc75a-the-princess-mary-princess-royal">Princess Mary, Princess Royal</a><br>The youngest child and only daughter of George V, Princess Mary had called to 17th in line before she died in 1965.</li><li><a href="https://lineofsuccession.co.uk/p/1b0e5b-george-lascelles-the-7th-earl-of-harewood">George Lascelles, The 7th Earl of Harewood</a><br>Fell out of the top 30 in 1994 before dying in 2011.</li><li><a href="https://lineofsuccession.co.uk/p/c5f1e6-david-lascelles-the-8th-earl-of-harewood">David Lascelles, Viscount Lascelles</a><br>Fell out of the top 30 in 1993.</li><li><a href="https://lineofsuccession.co.uk/p/b20846-gerald-lascelles">Gerald Lascelles</a><br>Fell out of the top 30 in 1982 and died in 1998.</li><li><a href="https://lineofsuccession.co.uk/p/66315a-princess-arthur-of-connaught-duchess-of-fife">Princess Arthur of Connaught, Duchess of Fife</a><br>Fell to 17th before dying in 1959</li><li><a href="https://lineofsuccession.co.uk/p/6b26f1-james-carnegie-3rd-duke-of-fife">James Carnegie, 3rd Duke of Fife</a><br>Fell out of the top 30 in 1981 and died in 2015</li><li><a href="https://lineofsuccession.co.uk/p/2fede5-olaf-v-king-of-norway">Olaf V, King of Norway</a><br>A bit of a leap as we find the royal family of Norway surprisingly close to the top of the list. King Olaf was a grandson of Edward VII (through Edward’s daughter Maud). He fell out of the top 30 in 1979 and died in 1991.</li><li><a href="https://lineofsuccession.co.uk/p/5e0755-harald-v-king-of-norway">Prince Harald of Norway</a><br>Prince Harald became king of Norway in 1991. He fell out of the top 30 of the British line of succession in 1977.</li><li><a href="https://lineofsuccession.co.uk/p/d7a42c-princess-ragnhild-of-norway">Princess Ragnhild of Norway</a><br>Princess Ragnhild fell out of the top 30 in 1973 and died in 2012.</li><li><a href="https://lineofsuccession.co.uk/p/1f2fa6-princess-astrid-of-norway">Princess Astrid of Norway</a><br>Princess Astrid fell out of the top 30 in 1964.</li><li><a href="https://lineofsuccession.co.uk/p/eae275-carol-ii-of-romania">Carol II of Romania</a><br>The next-closest royal family to ours is the Romanians. Carol II was a great-grandson of Victoria. The death of George VI moved him up a place from 21 to 20 and he remained there until his death the following year. Carol hadn’t actually been King of Romania since he was forced to abdicate in 1940.</li><li><a href="https://lineofsuccession.co.uk/p/0e80c9-carol-lambrino">Carol Lambrino</a><br>The question of Carol Lambino’s legitimacy is a question of some dispute — so he may not have been on the line of succession at all. But, if he was, he fell out of the top 30 in 1963 and died in 2006.</li><li><a href="https://lineofsuccession.co.uk/p/cf9743-paul-philippe-hohenzollern">Paul-Philippe Hohenzollern</a><br>As son of the possibly-illegitimate Carol Lambino, Paul-Phillippe’s place in the line of succession is also in question. But, anyway, he fell out of the top 30 in 1962.</li><li><a href="https://lineofsuccession.co.uk/p/128a10-prince-nicholas-of-romania">Prince Nicholas of Romania</a><br>Prince Nicholas fell out of the top 30 in 1961 and died in 1978.</li><li><a href="https://lineofsuccession.co.uk/p/289620-elisabeth-of-romania">Elisabeth of Romania</a><br>Fell to number 27 before dying in 1956.</li><li><a href="https://lineofsuccession.co.uk/p/b422b8-maria-of-yugoslavia">Maria of Yugoslavia</a><br>Fell to position 30 before dying in 1961.</li><li><a href="https://lineofsuccession.co.uk/p/ef1b58-peter-ii-of-yugoslavia">Peter II of Yugoslavia</a><br>Peter was no longer King of Yugoslavia, having been deposed in 1945. He fell out of the top 30 in 1961 and died in 1970.</li><li><a href="https://lineofsuccession.co.uk/p/902052-prince-tomislav-of-yugoslavia">Prince Tomislav of Yugoslavia</a><br>Fell out of the top 30 in 1960 and died in 2000.</li><li><a href="https://lineofsuccession.co.uk/p/96d8cb-prince-andrew-of-yugoslavia">Prince Andrew of Yugoslavia</a><br>Fell out of the top 30 in 1959 and died in 1990.</li><li><a href="https://lineofsuccession.co.uk/p/92f66c-princess-ileana-of-romania">Princess Ileana of Romania</a><br>Fell out of the top 30 in 1954 and died in 1991.</li><li><a href="https://lineofsuccession.co.uk/p/7707ae-archduke-stefan-of-austria">Archduke Stefan of Austria</a><br>Fell out of the top 30 in 1953 and died in 1998.</li></ol><p>I think that’s an interesting list for a few reasons:</p><ul><li>The fact that we’ve gone from two of the Queen’s descendants to twenty-four of them on the list (but even that’s not as big a difference as <a href="https://blog.lineofsuccession.co.uk/2018/04/line-of-descendants/">happened during Victoria’s reign</a>).</li><li>Only ten of the people on the list are still living.</li><li>There’s a large number of foreign royalty on the list — basically, the second half of the list is taken up by members of the royal families of Norway, Romania and Yugoslavia. This is obviously because of the way that royal families inter-married up until early in the 20th century. We see far less of that now.</li></ul><p>So what do you think? Was the 1952 list a surprise to you? Did you expect it to be as different as it is from the current list?</p><p><em>Originally published at </em><a href="https://blog.lineofsuccession.co.uk/2022/02/seventy-years-of-change/"><em>https://blog.lineofsuccession.co.uk</em></a><em> on February 7, 2022.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c2bfe6c8f3a8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/line-of-succession/seventy-years-of-change-line-of-succession-blog-c2bfe6c8f3a8">Seventy Years of Change — Line of Succession Blog</a> was originally published in <a href="https://medium.com/line-of-succession">Line of Succession</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p></content>
<author>
<name>Dave Cross</name>
</author>
<id>https://medium.com/p/c2bfe6c8f3a8</id>
<published>2022-02-07T10:56:31Z</published>
<updated>2023-05-07T11:50:26.361000Z</updated>
<category term="platinum-jubilee"/>
<category term="1952"/>
<category term="history"/>
<category term="succession"/>
</entry>
<entry>
<title>Where does royal power come from? — Line of Succession Blog</title>
<link rel="alternate" href="https://medium.com/line-of-succession/where-does-royal-power-come-from-line-of-succession-blog-d198202a2b08?source=rss-3781feb8a4f4------2" type="text/html"/>
<content type="html"><div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/line-of-succession/where-does-royal-power-come-from-line-of-succession-blog-d198202a2b08?source=rss-3781feb8a4f4------2"><img src="https://cdn-images-1.medium.com/max/976/1*KKO49e41S6k1GpOA7VGnvw.png" width="976"></a></p><p class="medium-feed-snippet">Yesterday&#x2019;s coronation showed Britain doing what Britain does best&#x200A;&#x2014;&#x200A;putting on the most gloriously bonkers ceremony the world has seen&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/line-of-succession/where-does-royal-power-come-from-line-of-succession-blog-d198202a2b08?source=rss-3781feb8a4f4------2">Continue reading on Line of Succession »</a></p></div></content>
<author>
<name>Dave Cross</name>
</author>
<id>https://medium.com/p/d198202a2b08</id>
<published>2023-05-07T11:45:59Z</published>
<updated>2023-05-07T11:50:04.656000Z</updated>
<category term="coronation"/>
<category term="church-of-england"/>
<category term="disestablishment"/>
<category term="royal-family"/>
<category term="charles-iii"/>
</entry>
<entry>
<title>Ratio: The Simple Codes Behind the Craft of Everyday Cooking (1) (Ruhlman's Ratios)</title>
<link rel="alternate" href="https://www.goodreads.com/review/show/5328005075?utm_medium=api&utm_source=rss" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.goodreads.com/book/show/3931154-ratio?utm_medium=api&utm_source=rss"><img alt="Ratio: The Simple Codes Behind the Craft of Everyday Cooking (1) (Ruhlman's Ratios)" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1348460187l/3931154._SY75_.jpg"/></a><br/>
author: Michael Ruhlman<br/>
name: David<br/>
average rating: 4.06<br/>
book published: 2009<br/>
rating: 0<br/>
read at: <br/>
date added: 2023/02/06<br/>
shelves: currently-reading<br/>
review: <br/><br/>
</div>
</content>
<id>https://www.goodreads.com/review/show/5328005075?utm_medium=api&utm_source=rss</id>
<published>2023-02-06T14:03:05-08:00</published>
<updated>2023-02-06T14:03:05-08:00</updated>
</entry>
<entry>
<title>2022 in Gigs</title>
<link rel="alternate" href="https://blog.dave.org.uk/2023/02/2022-in-gigs.html" type="text/html"/>
<content type="html">
<p>Rather later than usual (again!) here is my review of the best ten gigs I saw in 2022. For the first time since 2019, I did actually see more than ten gigs in 2022 although my total of sixteen falls well short of my pre-pandemic years.</p>
<p>Here are my ten favourite gigs of the year. As always, they&#8217;re in chronological order.</p>
<ul class="wp-block-list">
<li><strong><a href="https://www.songkick.com/concerts/39759069-pale-waves-at-roundhouse">Pale Waves at the Roundhouse</a></strong><br>I&#8217;ve seen Pale Waves a few times now and I think they&#8217;ve firmly established their place on my &#8220;see them whenever they tour near me&#8221; list. This show was every bit as good as I&#8217;ve ever seen them.</li>
<li><strong><a href="https://www.songkick.com/concerts/39529194-orchestral-manoeuvres-in-the-dark-at-royal-albert-hall">Orchestral Manoeuvres in the Dark at the Royal Albert Hall</a></strong><br>Another band I see whenever I can. This was a slightly different set where the first half was called &#8220;Atmospheric&#8221; and concentrated on some deeper cuts from their back catalogue and the second half included all the hits.</li>
<li><strong><a href="https://www.songkick.com/concerts/39529194-orchestral-manoeuvres-in-the-dark-at-royal-albert-hall">Chvrches at Brixton Academy</a></strong><br>In 2020, I moved to a flat that&#8217;s about fifteen minutes&#8217; walk from Brixton Academy. But I had to wait about eighteen months in order to take advantage of that fact. The last couple of times I&#8217;ve seen Chvrches were at Alexandra Palace, so it was nice to see them at a smaller venue again. This show featured a not-entirely unexpected guest appearance from Robert Smith.</li>
<li><strong><a href="https://www.songkick.com/concerts/40060742-sunflower-bean-at-electric-ballroom">Sunflower Bean at Electric Ballroom</a></strong><br>Another act who I see live as often as I can. And this was a great venue to see them in.</li>
<li><strong><a href="https://www.songkick.com/concerts/39584368-pet-shop-boys-at-o2">Pet Shop Boys at the O2 Arena</a></strong><br>There&#8217;s always one show a year that draws me to the soulless barn that is the O2 Arena. Every time I go there, I vow it&#8217;ll be the last time &#8211; but something always pulls me back. This year it was the chance to see a band I loved in the 80s and have never seen live. This was a fabulous greatest hits show that had been postponed from 2020.</li>
<li><strong><a href="https://www.songkick.com/concerts/39894954-lorde-at-roundhouse">Lorde at the Roundhouse</a></strong><br>A new Lorde album means another Lorde tour. And, like Chvrches, she swapped the huge expanse of Alexandra Palace for multiple nights at a smaller venue. This was a very theatrical show that matched the vibe of the <em>Solar Power</em> album really well.</li>
<li><strong><a href="https://www.songkick.com/concerts/40274226-lcd-soundsystem-at-o2-academy-brixton">LCD Soundsystem at Brixton Academy</a></strong><br>Another show at Brixton Academy. For some reason, I didn&#8217;t know about this show until I walked past the venue a few days before and saw the &#8220;sold out&#8221; signs. But a day or so later, I got an email from the venue offering tickets. So I snapped one up and had an amazing evening. It was the first time I&#8217;d seen them, but I strongly suspect it won&#8217;t be the last. That&#8217;s them in the photo at the top of this post.</li>
<li><strong><a href="https://www.songkick.com/concerts/40320756-roxy-music-at-o2">Roxy Music at the O2 Arena</a></strong><br>Some years there are two shows that force me to the O2 Arena. And this was one of those years. I&#8217;ve been a fan of Roxy Music since the 70s but I&#8217;ve never seen them live. Honestly, it would have been better to have seen them in the 70s or 80s, but it was still a great show.</li>
<li><strong><a href="https://www.songkick.com/concerts/40313030-beabadoobee-at-o2-academy-brixton">Beabadoobee at Brixton Academy</a></strong><br>Sometimes you go to see an artist because of one song and it just works out. This was one of those nights. In fact, it turns out I didn&#8217;t actually know &#8220;Coffee For Your Head&#8221; very well &#8211; I just knew the sample that was used in another artist&#8217;s record. But this was a great night and I hope to see her again very soon.</li>
<li><strong><a href="https://www.songkick.com/concerts/40493394-sugababes-at-eventim-apollo">Sugababes at Eventim Apollo</a></strong><br>Another night of fabulous nostalgia. The Eventim Apollo seems to have become my venue of choice to see re-formed girl groups from the 80s and 90s &#8211; having seen Bananarama, All Saints and now The Sugababes there in recent years. They have a surprising number of hits (far more than I remembered before the show) and they put on a great show.</li>
</ul>
<p>Not everything could make the top ten though. I think was the first year that I saw Stealing Sheep and they didn&#8217;t make the list (their stage shows just get weirder and weirder and the Moth Club wasn&#8217;t a great venue for it) and I was astonished to find myself slightly bored at the Nine Inch Nails show at Brixton Academy.</p>
<p>A few shows sit just outside of the top ten &#8211; St. Vincent at the Eventim Apollo, John Grant at the Shepherd&#8217;s Bush Empire and Damon Albarn at the Barbican spring to mind.</p>
<p>But, all in all, it was a good year for live music and I&#8217;m looking forward to seeing more than sixteen shows this year.</p>
<p>Did you see any great shows this year? Tell us about them in the comments.</p>
<p>The post <a href="https://blog.dave.org.uk/2023/02/2022-in-gigs.html">2022 in Gigs</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Rather later than usual (again!) here is my review of the best ten gigs I saw in 2022. For the first time since 2019, I did actually see more than ten gigs in 2022 although my total of sixteen falls well short of my pre-pandemic years. Here are my ten favourite gigs of the year.… <a class="more-link" href="https://blog.dave.org.uk/2023/02/2022-in-gigs.html">Continue reading <span class="screen-reader-text">2022 in Gigs</span></a></p>
<p>The post <a href="https://blog.dave.org.uk/2023/02/2022-in-gigs.html">2022 in Gigs</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://blog.dave.org.uk/?p=3897</id>
<published>2023-02-03T16:32:37Z</published>
<updated>2023-02-03T16:32:37Z</updated>
<category term="music"/>
<category term="2022"/>
<category term="gigs"/>
<category term="review"/>
<category term="year in gigs"/>
</entry>
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>Goodbye Vivienne</title>
<link rel="alternate" type="text/html" href="https://www.flickr.com/photos/davorg/52595592514/"/>
<id>tag:flickr.com,2005:/photo/52595592514</id>
<published>2022-12-30T09:15:29Z</published>
<updated>2022-12-30T09:15:29Z</updated>
<flickr:date_taken>2022-12-30T09:15:29-08:00</flickr:date_taken>
<dc:date.Taken>2022-12-30T09:15:29-08:00</dc:date.Taken>
<content type="html"> <p><a href="https://www.flickr.com/people/davorg/">Dave Cross</a> posted a photo:</p>
<p><a href="https://www.flickr.com/photos/davorg/52595592514/" title="Goodbye Vivienne"><img src="https://live.staticflickr.com/65535/52595592514_49586513b2_m.jpg" width="240" height="240" alt="Goodbye Vivienne" /></a></p>
<p>via Instagram <a href="https://instagr.am/p/CmyT_MSNR3-/" rel="noreferrer nofollow">instagr.am/p/CmyT_MSNR3-/</a></p>
</content>
<author>
<name>Dave Cross</name>
<uri>https://www.flickr.com/people/davorg/</uri>
<flickr:nsid>39021241@N00</flickr:nsid>
<flickr:buddyicon>https://farm5.staticflickr.com/4759/buddyicons/39021241@N00.jpg?1516110776#39021241@N00</flickr:buddyicon>
</author>
<link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
<link rel="enclosure" type="image/jpeg" href="https://live.staticflickr.com/65535/52595592514_49586513b2_b.jpg"/>
<category term="ifttt" scheme="https://www.flickr.com/photos/tags/"/>
<category term="instagram" scheme="https://www.flickr.com/photos/tags/"/>
<displaycategories>
</displaycategories>
</entry>
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>Low sun on Clapham Common this morning</title>
<link rel="alternate" type="text/html" href="https://www.flickr.com/photos/davorg/52593755903/"/>
<id>tag:flickr.com,2005:/photo/52593755903</id>
<published>2022-12-29T10:40:20Z</published>
<updated>2022-12-29T10:40:20Z</updated>
<flickr:date_taken>2022-12-29T10:40:20-08:00</flickr:date_taken>
<dc:date.Taken>2022-12-29T10:40:20-08:00</dc:date.Taken>
<content type="html"> <p><a href="https://www.flickr.com/people/davorg/">Dave Cross</a> posted a photo:</p>
<p><a href="https://www.flickr.com/photos/davorg/52593755903/" title="Low sun on Clapham Common this morning"><img src="https://live.staticflickr.com/65535/52593755903_ec090ddc46_m.jpg" width="240" height="240" alt="Low sun on Clapham Common this morning" /></a></p>
<p>via Instagram <a href="https://instagr.am/p/Cmv4y1eNiPn/" rel="noreferrer nofollow">instagr.am/p/Cmv4y1eNiPn/</a></p>
</content>
<author>
<name>Dave Cross</name>
<uri>https://www.flickr.com/people/davorg/</uri>
<flickr:nsid>39021241@N00</flickr:nsid>
<flickr:buddyicon>https://farm5.staticflickr.com/4759/buddyicons/39021241@N00.jpg?1516110776#39021241@N00</flickr:buddyicon>
</author>
<link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
<link rel="enclosure" type="image/jpeg" href="https://live.staticflickr.com/65535/52593755903_ec090ddc46_b.jpg"/>
<category term="ifttt" scheme="https://www.flickr.com/photos/tags/"/>
<category term="instagram" scheme="https://www.flickr.com/photos/tags/"/>
<displaycategories>
</displaycategories>
</entry>
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>There are about a dozen parakeets in this tree. I can hear them and (occasionally) see them</title>
<link rel="alternate" type="text/html" href="https://www.flickr.com/photos/davorg/52593496674/"/>
<id>tag:flickr.com,2005:/photo/52593496674</id>
<published>2022-12-29T10:40:17Z</published>
<updated>2022-12-29T10:40:17Z</updated>
<flickr:date_taken>2022-12-29T10:40:17-08:00</flickr:date_taken>
<dc:date.Taken>2022-12-29T10:40:17-08:00</dc:date.Taken>
<content type="html"> <p><a href="https://www.flickr.com/people/davorg/">Dave Cross</a> posted a photo:</p>
<p><a href="https://www.flickr.com/photos/davorg/52593496674/" title="There are about a dozen parakeets in this tree. I can hear them and (occasionally) see them"><img src="https://live.staticflickr.com/65535/52593496674_6b0a00304d_m.jpg" width="240" height="240" alt="There are about a dozen parakeets in this tree. I can hear them and (occasionally) see them" /></a></p>
<p>via Instagram <a href="https://instagr.am/p/Cmv4rUAta58/" rel="noreferrer nofollow">instagr.am/p/Cmv4rUAta58/</a></p>
</content>
<author>
<name>Dave Cross</name>
<uri>https://www.flickr.com/people/davorg/</uri>
<flickr:nsid>39021241@N00</flickr:nsid>
<flickr:buddyicon>https://farm5.staticflickr.com/4759/buddyicons/39021241@N00.jpg?1516110776#39021241@N00</flickr:buddyicon>
</author>
<link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
<link rel="enclosure" type="image/jpeg" href="https://live.staticflickr.com/65535/52593496674_6b0a00304d_b.jpg"/>
<category term="ifttt" scheme="https://www.flickr.com/photos/tags/"/>
<category term="instagram" scheme="https://www.flickr.com/photos/tags/"/>
<displaycategories>
</displaycategories>
</entry>
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>Sunrise on Clapham Common</title>
<link rel="alternate" type="text/html" href="https://www.flickr.com/photos/davorg/52589267684/"/>
<id>tag:flickr.com,2005:/photo/52589267684</id>
<published>2022-12-27T12:12:03Z</published>
<updated>2022-12-27T12:12:03Z</updated>
<flickr:date_taken>2022-12-27T12:12:03-08:00</flickr:date_taken>
<dc:date.Taken>2022-12-27T12:12:03-08:00</dc:date.Taken>
<content type="html"> <p><a href="https://www.flickr.com/people/davorg/">Dave Cross</a> posted a photo:</p>
<p><a href="https://www.flickr.com/photos/davorg/52589267684/" title="Sunrise on Clapham Common"><img src="https://live.staticflickr.com/65535/52589267684_b2cf79a732_m.jpg" width="240" height="240" alt="Sunrise on Clapham Common" /></a></p>
<p>via Instagram <a href="https://instagr.am/p/Cmq759NtKtE/" rel="noreferrer nofollow">instagr.am/p/Cmq759NtKtE/</a></p>
</content>
<author>
<name>Dave Cross</name>
<uri>https://www.flickr.com/people/davorg/</uri>
<flickr:nsid>39021241@N00</flickr:nsid>
<flickr:buddyicon>https://farm5.staticflickr.com/4759/buddyicons/39021241@N00.jpg?1516110776#39021241@N00</flickr:buddyicon>
</author>
<link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
<link rel="enclosure" type="image/jpeg" href="https://live.staticflickr.com/65535/52589267684_b2cf79a732_b.jpg"/>
<category term="ifttt" scheme="https://www.flickr.com/photos/tags/"/>
<category term="instagram" scheme="https://www.flickr.com/photos/tags/"/>
<displaycategories>
</displaycategories>
</entry>
<entry xmlns:flickr="urn:flickr:user" xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>Brixton Academy</title>
<link rel="alternate" type="text/html" href="https://www.flickr.com/photos/davorg/52566997229/"/>
<id>tag:flickr.com,2005:/photo/52566997229</id>
<published>2022-12-16T11:16:52Z</published>
<updated>2022-12-16T11:16:52Z</updated>
<flickr:date_taken>2022-12-16T11:16:52-08:00</flickr:date_taken>
<dc:date.Taken>2022-12-16T11:16:52-08:00</dc:date.Taken>
<content type="html"> <p><a href="https://www.flickr.com/people/davorg/">Dave Cross</a> posted a photo:</p>
<p><a href="https://www.flickr.com/photos/davorg/52566997229/" title="Brixton Academy"><img src="https://live.staticflickr.com/65535/52566997229_4108602407_m.jpg" width="240" height="240" alt="Brixton Academy" /></a></p>
<p>via Instagram <a href="https://instagr.am/p/CmOfgfLtwL_/" rel="noreferrer nofollow">instagr.am/p/CmOfgfLtwL_/</a></p>
</content>
<author>
<name>Dave Cross</name>
<uri>https://www.flickr.com/people/davorg/</uri>
<flickr:nsid>39021241@N00</flickr:nsid>
<flickr:buddyicon>https://farm5.staticflickr.com/4759/buddyicons/39021241@N00.jpg?1516110776#39021241@N00</flickr:buddyicon>
</author>
<link rel="license" type="text/html" href="https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en"/>
<link rel="enclosure" type="image/jpeg" href="https://live.staticflickr.com/65535/52566997229_4108602407_b.jpg"/>
<category term="ifttt" scheme="https://www.flickr.com/photos/tags/"/>
<category term="instagram" scheme="https://www.flickr.com/photos/tags/"/>
<displaycategories>
</displaycategories>
</entry>
<entry>
<title>5 Reasons Why Using AI to Generate Blog Posts Can Destroy Your SEO</title>
<link rel="alternate" href="https://blog.dave.org.uk/2022/12/5-reasons-why-using-ai-to-generate-blog-posts-can-destroy-your-seo.html" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>Using artificial intelligence (AI) to generate blog posts can be bad for search engine optimization (SEO) for several reasons.</p>
<p>First and foremost, AI-generated content is often low quality and lacks the depth and substance that search engines look for when ranking content. Because AI algorithms are not capable of understanding the nuances and complexities of human language, the content they produce is often generic, repetitive, and lacks originality. This can make it difficult for search engines to understand the context and relevance of the content, which can negatively impact its ranking.</p>
<p>Additionally, AI-generated content is often not well-written or structured, which can make it difficult for readers to understand and engage with. This can lead to a high bounce rate (the percentage of visitors who leave a website after only viewing one page), which can also hurt the website’s ranking.</p>
<p>Furthermore, AI-generated content is often not aligned with the website’s overall content strategy and goals. Because AI algorithms are not capable of understanding the website’s target audience, brand voice, and core messaging, the content they produce may not be relevant or useful to the website’s visitors. This can lead to a poor user experience, which can also hurt the website’s ranking.</p>
<p>Another issue with AI-generated content is that it can be seen as spammy or low quality by both search engines and readers. Because AI-generated content is often produced in large quantities and lacks originality, it can be seen as an attempt to manipulate search engine rankings or trick readers into engaging with the website. This can lead to the website being penalized by search engines or losing the trust and loyalty of its visitors.</p>
<p>In conclusion, using AI to generate blog posts can be bad for SEO for several reasons. AI-generated content is often low quality, poorly written, and not aligned with the website’s content strategy. It can also be seen as spammy or low quality by both search engines and readers, which can hurt the website’s ranking and reputation. It is important for websites to prioritize creating high-quality, original, and relevant content to improve their SEO and provide a positive user experience.</p>
<p>[This post was generated using <a href="https://chat.openai.com/">ChatGPT</a>]</p>
<p>The post <a href="https://blog.dave.org.uk/2022/12/5-reasons-why-using-ai-to-generate-blog-posts-can-destroy-your-seo.html">5 Reasons Why Using AI to Generate Blog Posts Can Destroy Your SEO</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>Using artificial intelligence (AI) to generate blog posts can be bad for search engine optimization (SEO) for several reasons. First and foremost, AI-generated content is often low quality and lacks the depth and substance that search engines look for when ranking content. Because AI algorithms are not capable of understanding the nuances and complexities of… <a class="more-link" href="https://blog.dave.org.uk/2022/12/5-reasons-why-using-ai-to-generate-blog-posts-can-destroy-your-seo.html">Continue reading <span class="screen-reader-text">5 Reasons Why Using AI to Generate Blog Posts Can Destroy Your SEO</span></a></p>
<p>The post <a href="https://blog.dave.org.uk/2022/12/5-reasons-why-using-ai-to-generate-blog-posts-can-destroy-your-seo.html">5 Reasons Why Using AI to Generate Blog Posts Can Destroy Your SEO</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://blog.dave.org.uk/?p=3890</id>
<published>2022-12-11T11:38:18Z</published>
<updated>2022-12-11T11:38:18Z</updated>
<category term="tech"/>
<category term="ai"/>
<category term="blogging"/>
<category term="seo"/>
</entry>
<entry>
<title>Should Children be Polite While Using Smart Speakers?</title>
<link rel="alternate" href="https://blog.dave.org.uk/2022/05/should-children-be-polite-while-using-smart-speakers.html" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>‘Okay Google. Where is Antarctica?”</p>
<p>Children can now get answers to all their questions using smart speakers and digital voice assistants.</p>
<p>A few years ago, children would run to their parents or grandparents to answer their questions. But with the ascendence of voice assistants to the mainstream in recent years, many children rely more on technology than humans.</p>
<p>Is this a good idea?</p>
<p>How does it impact the children?</p>
<p>When children interact with people, it helps them be more thoughtful, creative, and imaginative.</p>
<p>When they use artificial intelligence instead, several issues come into the foreground. These include access to age-inappropriate content and increasing the possibility of being rude or unpleasant, affecting how they treat others.</p>
<p>As mentioned, technology has both pros and cons. There are benefits to children using these devices, including improving diction, communication, social skills, and gaining information without bothering their parents.</p>
<p>Many families find that smart speakers like Amazon Echo and Google Home are useful. They use them for several functions, ranging from answering questions to setting the thermostat. Research shows that up to nine out of ten children between the ages of four and eleven in the US are regularly using smart speakers — often without parental guidance and control. So, what is the best approach for a parent to take?</p>
<p>Children up to seven years old can find it challenging to differentiate between humans and devices, and this can lead to one of the biggest dangers. If the device fulfils their requests through rude behaviour, children may behave similarly to other humans.</p>
<h2>Do Parents Think Smart Devices Should Encourage Polite Conversations?</h2>
<p>Most parents consider it essential that smart devices should encourage polite conversations as a part of nurturing good habits in children. The Campaign for a Commercial-Free Childhood or CCFA is a US coalition of concerned parents, healthcare professionals, and educators. Recently, CCFA protested against Amazon Echo Dot Kids Edition, stating that it may affect children’s wellbeing. Because of this, they requested parents avoid buying Amazon Echo.</p>
<p>However, in reality, these smart devices have improved a lot and focus on encouraging polite conversations with children. It is all about how parents use and present these devices to their children, as these factors can influence them a lot.</p>
<p>But in simple terms, parents wish these devices to encourage politeness in their children. At the same time, they want their kids to understand the difference between artificial intelligence and humans while using these technological innovations.</p>
<h2>Do Parents Think Their Children are Less Polite While Using Smart Speakers?</h2>
<p>Many parents have seen their children behave rudely to smart speakers. Several parents have expressed their concerns through social media, blog posts and forums like Mumsnet. They fear these behaviours can impact their kids when they grow up.</p>
<p>A report published in Child Wise reached the conclusion that children who behave rudely to smart devices might be aggressive while they grow up, especially while dealing with other humans. It is, therefore, preferable if children use polite words while interacting with both humans and smart devices.</p>
<h2>What Approaches Have Been Taken By Tech Companies to Address the Problem?</h2>
<p>With interventions and rising concerns addressed by parents and health professionals, some tech companies have brought changes to virtual assistants and smart speakers.</p>
<p>The parental control features available in Alexa focus on training kids to be more polite. Amazon brands it as Magic Word, where the focus is on bringing positive enforcement. However, there is no penalty if children don’t speak politely. Available on Amazon Echo, this tool has added features like setting bedtimes, switching off devices, and blocking songs with explicit lyrics.</p>
<p>When it comes to Google Home, it has brought in a new feature called Pretty Please. Here, Google will perform an action only when children use, please. For instance, “Okay, Google. Please set the timer for 15 minutes.”</p>
<p>You can enable this feature through the Google Family Link, where you can find the settings for Home and Assistant. You can set these new standards for devices of your preference. Also, once you use it and figure things out, there will be no more issues in setting it up again.</p>
<p>These tools and their approaches are highly beneficial for kids and parents. As of now, these devices only offer basic features and limited replies. But with time, there could be technological changes that encourage children to have much more efficient and polite interactions.</p>
<h2>George and the Smart Home</h2>
<p>It was thinking about issues like this which led me to write my first children’s book — George and the Smart Home. In the book, George is a young boy who has problems getting the smart speakers in his house to do what he wants until he learns to be polite to them.</p>
<p>It is available now, as a paperback and a Kindle book, from Amazon.</p>
<p>Buy it from: <a href="https://amazon.com.au/dp/B09VPLGMBN">AU</a> / <a href="https://amazon.com.br/dp/B09VPLGMBN">BR</a> / <a href="https://amazon.ca/dp/B09VPLGMBN">CA</a> / <a href="https://amazon.de/dp/B09VPLGMBN">DE</a> / <a href="https://amazon.es/dp/B09VPLGMBN">ES</a> / <a href="https://amazon.fr/dp/B09VPLGMBN">FR</a> / <a href="https://amazon.in/dp/B09VPLGMBN">IN</a> / <a href="https://amazon.it/dp/B09VPLGMBN">IT</a> / <a href="https://amazon.co.jp/dp/B09VPLGMBN">JP</a> / <a href="https://amazon.com.mx/dp/B09VPLGMBN">MX</a> / <a href="https://amazon.nl/dp/B09VPLGMBN">NL</a> / <a href="https://amazon.co.uk/dp/B09VPLGMBN">UK</a> / <a href="https://amazon.com/dp/B09VPLGMBN">US</a></p>
<p>The post <a href="https://blog.dave.org.uk/2022/05/should-children-be-polite-while-using-smart-speakers.html">Should Children be Polite While Using Smart Speakers?</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</content>
<summary type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml"><p>‘Okay Google. Where is Antarctica?” Children can now get answers to all their questions using smart speakers and digital voice assistants. A few years ago, children would run to their parents or grandparents to answer their questions. But with the ascendence of voice assistants to the mainstream in recent years, many children rely more on… <a class="more-link" href="https://blog.dave.org.uk/2022/05/should-children-be-polite-while-using-smart-speakers.html">Continue reading <span class="screen-reader-text">Should Children be Polite While Using Smart Speakers?</span></a></p>
<p>The post <a href="https://blog.dave.org.uk/2022/05/should-children-be-polite-while-using-smart-speakers.html">Should Children be Polite While Using Smart Speakers?</a> appeared first on <a href="https://blog.dave.org.uk">Davblog</a>.</p>
</div>
</summary>
<author>
<name>Dave Cross</name>
</author>
<id>https://blog.dave.org.uk/?p=3885</id>
<published>2022-05-02T13:09:10Z</published>
<updated>2022-05-02T13:09:10Z</updated>
<category term="media"/>
<category term="books"/>
<category term="children"/>
<category term="george and the smart home"/>
<category term="smart speakers"/>
</entry>
<entry>
<title>S.</title>
<link rel="alternate" href="https://www.goodreads.com/review/show/4481423010?utm_medium=api&utm_source=rss" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.goodreads.com/book/show/17860739-s?utm_medium=api&utm_source=rss"><img alt="S." src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1378767595l/17860739._SY75_.jpg"/></a><br/>
author: J.J. Abrams<br/>
name: David<br/>
average rating: 3.86<br/>
book published: 2013<br/>
rating: 0<br/>
read at: <br/>
date added: 2022/01/16<br/>
shelves: currently-reading<br/>
review: <br/><br/>
</div>
</content>
<id>https://www.goodreads.com/review/show/4481423010?utm_medium=api&utm_source=rss</id>
<published>2022-01-16T14:03:01-08:00</published>
<updated>2022-01-16T14:03:01-08:00</updated>
</entry>
<entry>
<title>The Introvert Entrepreneur</title>
<link rel="alternate" href="https://www.goodreads.com/review/show/3162730028?utm_medium=api&utm_source=rss" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.goodreads.com/book/show/24970944-the-introvert-entrepreneur?utm_medium=api&utm_source=rss"><img alt="The Introvert Entrepreneur" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1533022525l/24970944._SY75_.jpg"/></a><br/>
author: Beth Buelow<br/>
name: David<br/>
average rating: 3.43<br/>
book published: 2015<br/>
rating: 0<br/>
read at: <br/>
date added: 2020/01/27<br/>
shelves: currently-reading<br/>
review: <br/><br/>
</div>
</content>
<id>https://www.goodreads.com/review/show/3162730028?utm_medium=api&utm_source=rss</id>
<published>2020-01-27T02:49:21-08:00</published>
<updated>2020-01-27T02:49:21-08:00</updated>
</entry>
<entry>
<title>Measuring the Quality of Your Perl Code</title>
<link rel="alternate" href="https://www.slideshare.net/slideshow/measuring-the-quality-of-your-perl-code-162990735/162990735" type="text/html"/>
<content type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/measuringthequalityofyourperlcode-190811142319-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Some thoughts on ways to measure the quality of Perl code (and, hence, get a basis for improving it)
</content>
<summary type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/measuringthequalityofyourperlcode-190811142319-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Some thoughts on ways to measure the quality of Perl code (and, hence, get a basis for improving it)
</summary>
<author>
<name>davorg@slideshare.net(davorg)</name>
</author>
<id>https://www.slideshare.net/slideshow/measuring-the-quality-of-your-perl-code-162990735/162990735</id>
<published>2019-08-11T14:23:19Z</published>
<updated>2019-08-11T14:23:19Z</updated>
</entry>
<entry>
<title>Apollo 11 at 50 - A Simple Twitter Bot</title>
<link rel="alternate" href="https://www.slideshare.net/slideshow/apollo-11-at-50-a-simple-twitter-bot/162989812" type="text/html"/>
<content type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/apollo-190811141300-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> How (and why) I spent 90 minutes writing a Twitterbot that tweeted the Apollo 11 mission timeline (shifted by 50 years)
</content>
<summary type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/apollo-190811141300-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> How (and why) I spent 90 minutes writing a Twitterbot that tweeted the Apollo 11 mission timeline (shifted by 50 years)
</summary>
<author>
<name>davorg@slideshare.net(davorg)</name>
</author>
<id>https://www.slideshare.net/slideshow/apollo-11-at-50-a-simple-twitter-bot/162989812</id>
<published>2019-08-11T14:13:00Z</published>
<updated>2019-08-11T14:13:00Z</updated>
</entry>
<entry>
<title>Monoliths, Balls of Mud and Silver Bullets</title>
<link rel="alternate" href="https://www.slideshare.net/slideshow/monoliths-balls-of-mud-and-silver-bullets-162989542/162989542" type="text/html"/>
<content type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/monoliths-190811141027-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> A talk from the European Perl Conference 2019 (but not about Perl)
</content>
<summary type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/monoliths-190811141027-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> A talk from the European Perl Conference 2019 (but not about Perl)
</summary>
<author>
<name>davorg@slideshare.net(davorg)</name>
</author>
<id>https://www.slideshare.net/slideshow/monoliths-balls-of-mud-and-silver-bullets-162989542/162989542</id>
<published>2019-08-11T14:10:27Z</published>
<updated>2019-08-11T14:10:27Z</updated>
</entry>
<entry>
<title>Prawn Cocktail Years</title>
<link rel="alternate" href="https://www.goodreads.com/review/show/2915458648?utm_medium=api&utm_source=rss" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.goodreads.com/book/show/2378986.Prawn_Cocktail_Years?utm_medium=api&utm_source=rss"><img alt="Prawn Cocktail Years" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1488615133l/2378986._SX50_.jpg"/></a><br/>
author: Lindsey Bareham<br/>
name: David<br/>
average rating: 4.50<br/>
book published: 1999<br/>
rating: 0<br/>
read at: <br/>
date added: 2019/07/29<br/>
shelves: currently-reading<br/>
review: <br/><br/>
</div>
</content>
<id>https://www.goodreads.com/review/show/2915458648?utm_medium=api&utm_source=rss</id>
<published>2019-07-29T03:53:53-07:00</published>
<updated>2019-07-29T03:53:53-07:00</updated>
</entry>
<entry>
<title>Write. Publish. Repeat. (The No-Luck-Required Guide to Self-Publishing Success)</title>
<link rel="alternate" href="https://www.goodreads.com/review/show/2869758893?utm_medium=api&utm_source=rss" type="text/html"/>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<a href="https://www.goodreads.com/book/show/19173266-write-publish-repeat?utm_medium=api&utm_source=rss"><img alt="Write. Publish. Repeat. (The No-Luck-Required Guide to Self-Publishing Success)" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1386152927l/19173266._SY75_.jpg"/></a><br/>
author: Sean Platt<br/>
name: David<br/>
average rating: 4.28<br/>
book published: 2013<br/>
rating: 0<br/>
read at: <br/>
date added: 2019/06/24<br/>
shelves: currently-reading<br/>
review: <br/><br/>
</div>
</content>
<id>https://www.goodreads.com/review/show/2869758893?utm_medium=api&utm_source=rss</id>
<published>2019-06-24T02:26:15-07:00</published>
<updated>2019-06-24T02:26:15-07:00</updated>
</entry>
<entry>
<title>The Professional Programmer</title>
<link rel="alternate" href="https://www.slideshare.net/slideshow/the-professional-programmer-115012386/115012386" type="text/html"/>
<content type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/tcvqmtxtxcoosqtktwxp-signature-54ef8a2e0bf04eca12a971b40d334e9524d5654cafb99fc7ca3028a7826fc3ab-poli-180917160117-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The slides from a half-day workshop on career development for programmers that I ran at The Perl Conference in Glasgow
</content>
<summary type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/tcvqmtxtxcoosqtktwxp-signature-54ef8a2e0bf04eca12a971b40d334e9524d5654cafb99fc7ca3028a7826fc3ab-poli-180917160117-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The slides from a half-day workshop on career development for programmers that I ran at The Perl Conference in Glasgow
</summary>
<author>
<name>davorg@slideshare.net(davorg)</name>
</author>
<id>https://www.slideshare.net/slideshow/the-professional-programmer-115012386/115012386</id>
<published>2018-09-17T16:01:17Z</published>
<updated>2018-09-17T16:01:17Z</updated>
</entry>
<entry>
<title>I'm A Republic (Honest!)</title>
<link rel="alternate" href="https://www.slideshare.net/slideshow/im-a-republic-honest/91652730" type="text/html"/>
<content type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/succession-180323080646-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> A (not entirely serious) talk that I gave at the London Perl Mongers technical meeting in March 2018.
It talks about how and why I build a web site listing the line of succession to the British throne back through history.
</content>
<summary type="html">
<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/succession-180323080646-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> A (not entirely serious) talk that I gave at the London Perl Mongers technical meeting in March 2018.
It talks about how and why I build a web site listing the line of succession to the British throne back through history.
</summary>
<author>
<name>davorg@slideshare.net(davorg)</name>
</author>
<id>https://www.slideshare.net/slideshow/im-a-republic-honest/91652730</id>
<published>2018-03-23T08:06:46Z</published>
<updated>2018-03-23T08:06:46Z</updated>
</entry>
</feed>