<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="https://devel.co.uk/xmlrpc.php">

<title>PGC&#039;s weblog &#8211; Where I randomly write things that may interest no-one else</title>
<meta name='robots' content='max-image-preview:large' />

<!-- Async WordPress.com Remote Login -->
<script id="wpcom_remote_login_js">
var wpcom_remote_login_extra_auth = '';
function wpcom_remote_login_remove_dom_node_id( element_id ) {
	var dom_node = document.getElementById( element_id );
	if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
}
function wpcom_remote_login_remove_dom_node_classes( class_name ) {
	var dom_nodes = document.querySelectorAll( '.' + class_name );
	for ( var i = 0; i < dom_nodes.length; i++ ) {
		dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
	}
}
function wpcom_remote_login_final_cleanup() {
	wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
	wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
	wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
}

// Watch for messages back from the remote login
window.addEventListener( "message", function( e ) {
	if ( e.origin === "https://r-login.wordpress.com" ) {
		var data = {};
		try {
			data = JSON.parse( e.data );
		} catch( e ) {
			wpcom_remote_login_final_cleanup();
			return;
		}

		if ( data.msg === 'LOGIN' ) {
			// Clean up the login check iframe
			wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );

			var id_regex = new RegExp( /^[0-9]+$/ );
			var token_regex = new RegExp( /^.*|.*|.*$/ );
			if (
				token_regex.test( data.token )
				&& id_regex.test( data.wpcomid )
			) {
				// We have everything we need to ask for a login
				var script = document.createElement( "script" );
				script.setAttribute( "id", "wpcom_remote_login_validate" );
				script.src = '/remote-login.php?wpcom_remote_login=validate'
					+ '&wpcomid=' + data.wpcomid
					+ '&token=' + encodeURIComponent( data.token )
					+ '&host=' + window.location.protocol
					+ '//' + window.location.hostname
					+ '&postid=255'
					+ '&is_singular=';
				document.body.appendChild( script );
			}

			return;
		}

		// Safari ITP, not logged in, so redirect
		if ( data.msg === 'LOGIN-REDIRECT' ) {
			window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
			return;
		}

		// Safari ITP, storage access failed, remove the request
		if ( data.msg === 'LOGIN-REMOVE' ) {
			var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }';
			var style_zap = document.createElement( 'style' );
			style_zap.type = 'text/css';
			style_zap.appendChild( document.createTextNode( css_zap ) );
			document.body.appendChild( style_zap );

			var e = document.getElementById( 'wpcom_request_access_iframe' );
			e.parentNode.removeChild( e );

			document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';

			return;
		}

		// Safari ITP
		if ( data.msg === 'REQUEST_ACCESS' ) {
			console.log( 'request access: safari' );

			// Check ITP iframe enable/disable knob
			if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
				return;
			}

			// If we are in a "private window" there is no ITP.
			var private_window = false;
			try {
				var opendb = window.openDatabase( null, null, null, null );
			} catch( e ) {
				private_window = true;
			}

			if ( private_window ) {
				console.log( 'private window' );
				return;
			}

			var iframe = document.createElement( 'iframe' );
			iframe.id = 'wpcom_request_access_iframe';
			iframe.setAttribute( 'scrolling', 'no' );
			iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
			iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );

			var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } ';

			var style = document.createElement( 'style' );
			style.type = 'text/css';
			style.id = 'wpcom_request_access_styles';
			style.appendChild( document.createTextNode( css ) );
			document.body.appendChild( style );

			document.body.appendChild( iframe );
		}

		if ( data.msg === 'DONE' ) {
			wpcom_remote_login_final_cleanup();
		}
	}
}, false );

// Inject the remote login iframe after the page has had a chance to load
// more critical resources
window.addEventListener( "DOMContentLoaded", function( e ) {
	var iframe = document.createElement( "iframe" );
	iframe.style.display = "none";
	iframe.setAttribute( "scrolling", "no" );
	iframe.setAttribute( "id", "wpcom_remote_login_key" );
	iframe.src = "https://r-login.wordpress.com/remote-login.php"
		+ "?wpcom_remote_login=key"
		+ "&origin=aHR0cHM6Ly9kZXZlbC5jby51aw%3D%3D"
		+ "&wpcomid=61616644"
		+ "&time=" + Math.floor( Date.now() / 1000 );
	document.body.appendChild( iframe );
}, false );
</script>
<link rel='dns-prefetch' href='//s2.wp.com' />
<link rel='dns-prefetch' href='//fonts-api.wp.com' />
<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel="alternate" type="application/rss+xml" title="PGC&#039;s weblog &raquo; Feed" href="https://devel.co.uk/feed/" />
<link rel="alternate" type="application/rss+xml" title="PGC&#039;s weblog &raquo; Comments Feed" href="https://devel.co.uk/comments/feed/" />
	<script type="text/javascript">
		/* <![CDATA[ */
		function addLoadEvent(func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = func;
			} else {
				window.onload = function () {
					oldonload();
					func();
				}
			}
		}
		/* ]]> */
	</script>
	<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-1' href='/wp-content/mu-plugins/jetpack-plugin/moon/modules/infinite-scroll/infinity.css?m=1770909026i&cssminify=yes' type='text/css' media='all' />
<style id="wp-emoji-styles-inline-css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}

/*# sourceURL=/wp-content/plugins/gutenberg-core/v22.9.0/build/styles/block-library/common.min.css */
</style>
<style id="wp-block-image-inline-css">
.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto #5a5a5a40;outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
/*# sourceURL=https://s0.wp.com/wp-content/plugins/gutenberg-core/v22.9.0/build/styles/block-library/image/style.min.css */
</style>
<style id="wp-block-paragraph-inline-css">
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
/*# sourceURL=https://s0.wp.com/wp-content/plugins/gutenberg-core/v22.9.0/build/styles/block-library/paragraph/style.min.css */
</style>
<style id="wp-block-library-inline-css-extra">
.has-text-align-justify {
	text-align:justify;
}
.has-text-align-justify{text-align:justify;}
/*# sourceURL=wp-block-library-inline-css */
</style>

<style id="classic-theme-styles-inline-css">
.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v22.9.0/build/styles/block-library/classic.min.css */
</style>

<link crossorigin='anonymous' rel='stylesheet' id='all-css-8-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}
/*# sourceURL=global-styles-inline-css */
</style>

<link rel='stylesheet' id='quadra-pt-serif-css' href='https://fonts-api.wp.com/css?family=PT+Serif:400,700,400italic,700italic&#038;subset=latin,latin-ext&#038;ver=7.0-RC2-62212' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??/wp-content/themes/pub/hexa/style.css,/wp-content/themes/pub/quadra/style.css?m=1741693338j&cssminify=yes' type='text/css' media='all' />
<link rel='stylesheet' id='hexa-source-sans-pro-css' href='https://fonts-api.wp.com/css?family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic&#038;ver=7.0-RC2-62212' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/_static/??-eJx9jsEKwjAQRH/IuC1C60X8FEmXNU1NsqG7ofr3puAhoHibB/OGgS0b5KSUFGIxORTnk8BCmi0+PgyROcHNJwRHiVZfDfkdjyhygGZUZ4okkMsEMz0t7COir0Bmy8jxq9+cWGkK7Gp0UFsN/pMcsQmMVn293IK5B+vXXb3GSz+O/dANp3O3vAG+cGBR&cssminify=yes' type='text/css' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='print-css-15-1' href='/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' />
<style id="jetpack-global-styles-frontend-style-inline-css">
:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-18-1' href='/wp-content/themes/h4/global.css?m=1420737423i&cssminify=yes' type='text/css' media='all' />
<script id="wpcom-actionbar-placeholder-js-extra">
var actionbardata = {"siteID":"61616644","postID":"0","siteURL":"https://devel.co.uk","xhrURL":"https://devel.co.uk/wp-admin/admin-ajax.php","nonce":"dbfe78dfc0","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&amp;ver=20211021","i18n":{"followedText":"New posts from this site will now appear in your \u003Ca href=\"https://wordpress.com/reader\"\u003EReader\u003C/a\u003E","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Shortlink copied to clipboard."}};
//# sourceURL=wpcom-actionbar-placeholder-js-extra
</script>
<script id="jetpack-mu-wpcom-settings-js-before">
var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s1.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"};
//# sourceURL=jetpack-mu-wpcom-settings-js-before
</script>
<script crossorigin='anonymous' type='text/javascript'  src='/_static/??-eJzTLy/QTc7PK0nNK9HPKtYvyinRLSjKr6jUyyrW0QfKZeYl55SmpBaDJLMKS1OLKqGUXm5mHkFFurmZ6UWJJalQxfa5tobmRgamxgZmFpZZACbyLJI='></script>
<script id="rlt-proxy-js-after">
	rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
//# sourceURL=rlt-proxy-js-after
</script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://develco.wordpress.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress.com" />
<link rel='shortlink' href='https://wp.me/4axiQ' />

<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="website" />
<meta property="og:title" content="PGC&#039;s weblog" />
<meta property="og:description" content="Where I randomly write things that may interest no-one else" />
<meta property="og:url" content="https://devel.co.uk/" />
<meta property="og:site_name" content="PGC&#039;s weblog" />
<meta property="og:image" content="https://s0.wp.com/i/blank.jpg?m=1383295312i" />
<meta property="og:image:width" content="200" />
<meta property="og:image:height" content="200" />
<meta property="og:image:alt" content="" />
<meta property="og:locale" content="en_US" />

<!-- End Jetpack Open Graph Tags -->
<link rel="shortcut icon" type="image/x-icon" href="https://s1.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" />
<link rel="icon" type="image/x-icon" href="https://s1.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" />
<link rel="apple-touch-icon" href="https://s2.wp.com/i/webclip.png?m=1713868326i" />
<link rel='openid.server' href='https://devel.co.uk/?openidserver=1' />
<link rel='openid.delegate' href='https://devel.co.uk/' />
<link rel="search" type="application/opensearchdescription+xml" href="https://devel.co.uk/osd.xml" title="PGC&#039;s weblog" />
<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
<meta name="theme-color" content="#f2f1ef" />
<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>		<style type="text/css">
			.recentcomments a {
				display: inline !important;
				padding: 0 !important;
				margin: 0 !important;
			}

			table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
				border: 0px;
				margin: 0;
			}

			table.recentcommentsavatartop a, table.recentcommentsavatarend a {
				border: 0px !important;
				background-color: transparent !important;
			}

			td.recentcommentsavatarend, td.recentcommentsavatartop {
				padding: 0px 0px 1px 0px;
				margin: 0px;
			}

			td.recentcommentstextend {
				border: none !important;
				padding: 0px 0px 2px 10px;
			}

			.rtl td.recentcommentstextend {
				padding: 0px 10px 2px 0px;
			}

			td.recentcommentstexttop {
				border: none;
				padding: 0px 0px 0px 10px;
			}

			.rtl td.recentcommentstexttop {
				padding: 0px 10px 0px 0px;
			}
		</style>
		<meta name="description" content="Where I randomly write things that may interest no-one else" />
			<style type="text/css" id="hexa-custom-background-css">
							body.custom-background,
				.custom-background .wp-caption {
					background-color: #f2f1ef				}
				.custom-background img.alignleft,
				.wp-caption.alignleft,
				img.alignright,
				.wp-caption.alignright,
				.author-archives-img,
				.comment-author .avatar-wrapper {
					border-top-color: #f2f1ef;
					border-bottom-color: #f2f1ef;
				}
								</style>
	<style type="text/css" id="custom-colors-css">body { color: #2D3433;}
.site-description,.comment-navigation .nav-previous a,.comment-navigation .nav-next a,.comment-navigation .nav-previous a:visited,.comment-navigation .nav-next a:visited { color: #666666;}
.entry-meta, .entry-meta a,.entry-meta a:visited, .entry-meta a:hover,.pingback .edit-link, .trackback .edit-link, #cancel-comment-reply-link, .reply,.comment-metadata, .comment-metadata a,.comment-metadata a:visited { color: #ABABAB;}
#infinite-footer .container,#infinite-footer .container a,#infinite-footer .container a:visited,#infinite-footer .container a:hover { color: #666666;}
.panel .widget-areas .widget-area .widget_goodreads a { color: #000000;}
.entry-format:before { color: #191919;}
#infinite-handle span:hover, #infinite-handle span:focus { color: #191919;}
.page-links span.active-link { color: #191919;}
.main-navigation a,.main-navigation a:visited, .main-navigation a:hover { color: #191919;}
.post-navigation a:hover:before, .paging-navigation a:hover:before { color: #191919;}
.social-links ul a:before { color: #191919;}
.panel .search-wrapper input[type="submit"],.panel .search-wrapper input[type="submit"]:hover { color: #191919;}
.panel .widget-areas .widget-area,.panel .widget-areas .widget-area .widget .widget-title,.panel .widget-areas .widget-area .widget h1, .panel .widget-areas .widget-area .widget h2, .panel .widget-areas .widget-area .widget h3, .panel .widget-areas .widget-area .widget h4, .panel .widget-areas .widget-area .widget h5, .panel .widget-areas .widget-area .widget h6,.panel .widget-areas .widget-area .widget a,.panel .widget-areas .widget-area .widget a:visited { color: #191919;}
.toggles #menu-toggle:before { color: #191919;}
.post-navigation a:before, .paging-navigation a:before { color: #444444;}
#infinite-handle span { color: #444444;}
button, input[type="button"], input[type="reset"], input[type="submit"] { color: #444444;}
.page-links a span.active-link,.page-links a:hover span.active-link { color: #444444;}
.hentry.sticky .entry-format:before { color: #444444;}
.hentry.format-link .entry-format:before { color: #444444;}
.toggles #search-toggle:before { color: #444444;}
.post-navigation, .paging-navigation,.post-navigation a:before, .paging-navigation a:before { color: #444444;}
.main-navigation ul ul a,.main-navigation ul ul a:visited,.main-navigation ul ul a:hover { color: #444444;}
.hentry.format-image .entry-format:before, .hentry.format-gallery .entry-format:before { color: #FFFFFF;}
.hentry.format-audio .entry-format:before,.hentry.format-video .entry-format:before { color: #FFFFFF;}
.toggles #sidebar-toggle:before { color: #FFFFFF;}
.toggles #social-links-toggle:before { color: #3A3A3A;}
.hentry.format-status .entry-format:before,.hentry.format-quote .entry-format:before { color: #3A3A3A;}
body, .wp-caption { background-color: #f2f1ef;}
#infinite-footer .container { background-color: #f2f1ef;}
img.alignleft, .wp-caption.alignleft,.comment-author .avatar-wrapper { border-color: #f2f1ef;}
.toggles #social-links-toggle { background-color: #e1a346;}
.hentry.format-status, .hentry.format-quote { border-color: #e1a346;}
.hentry.format-status .entry-format, .hentry.format-quote .entry-format { background-color: #e1a346;}
.hentry.format-image, .hentry.format-gallery { border-color: #53412e;}
.hentry.format-image .entry-format, .hentry.format-gallery .entry-format { background-color: #53412e;}
.toggles #sidebar-toggle { background-color: #53412e;}
blockquote { color: #53412E;}
a.more-link { color: #53412E;}
.hentry.format-audio { border-color: #735A3F;}
.hentry.format-audio .entry-format { background-color: #735A3F;}
.jetpack-recipe,.jetpack-recipe-title { border-color: #53412e;}
.hentry.format-video { border-color: #735A3F;}
.hentry.format-video .entry-format { background-color: #735A3F;}
a.more-link:hover { color: #53412E;}
.wp-caption-text { color: #53412E;}
.hentry { border-color: #e46049;}
.entry-format { background-color: #e46049;}
.panel .search-wrapper input[type="submit"],.panel .search-wrapper input[type="submit"]:hover { background-color: #e46049;}
#infinite-handle span:hover, #infinite-handle span:focus { background-color: #e46049;}
.panel { background-color: #e46049;}
.site-header { border-color: #e46049;}
.toggles #menu-toggle { background-color: #e46049;}
.page-links span.active-link,.page-links a:hover span.active-link { background-color: #e46049;}
.infinite-loader { border-color: #e46049;}
blockquote { border-color: #e46049;}
.post-navigation a:hover:before, .paging-navigation a:hover:before { background-color: #e46049;}
.entry-title, .entry-title a,.entry-title a:visited,.entry-title a:hover,.site-title a,.site-title a:visited,.site-title a:hover,.comment-author,.comment-author a,.comment-author a:visited,.comment-author a:hover { color: #E46049;}
a,a:visited { color: #BE341C;}
.hentry.sticky { border-color: #92c3c3;}
.hentry.sticky .entry-format { background-color: #92c3c3;}
.comment .comment .avatar-wrapper { border-color: #92c3c3;}
.post-navigation:before, .paging-navigation:before { border-color: #92c3c3;}
.post-navigation a:before, .paging-navigation a:before { background-color: #92c3c3;}
.toggles #search-toggle { background-color: #92c3c3;}
button, input[type="button"], input[type="reset"], input[type="submit"] { background-color: #92c3c3;}
#infinite-handle span { background-color: #92c3c3;}
.page-links a span.active-link { background-color: #92c3c3;}
.main-navigation ul ul:before { border-bottom-color: #92c3c3;}
.main-navigation li li { background-color: #92c3c3;}
.post-navigation, .paging-navigation { background-color: #92c3c3;}
.site-footer,.comments-area { border-color: #92c3c3;}
.page-header,.comments-title { border-color: #92c3c3;}
.site-footer,.site-footer a,.site-footer a:visited { color: #3A6D6D;}
.page-title,.comments-title { color: #7BB6B6;}
a:hover { color: #3A6D6D;}
.hentry.format-link { border-color: #B3D5D5;}
.hentry.format-link .entry-format { background-color: #B3D5D5;}
h1,h2,h3,h4,h5,h6 { color: #7BB6B6;}
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-5' href='/_static/??-eJydjcEKwjAQRH/IuATE4EH8FEnTNWy72Q1NQunfa0GLeBD0OI95MzBnE1QqSoWONZrMLZIUiHSrJNF0XgQnCOUT7R9oB296aps8YM0+jM8MSVXgShLWizAWKDPl3xeS9o2xQPCTtoK8lV7g38FKjL2Jnhmn5VtaDy7pbJ2zR+tOBzvcAV7YeFY=&cssminify=yes' type='text/css' media='all' />

</head>

<body class="home blog custom-background wp-theme-pubhexa wp-child-theme-pubquadra customizer-styles-applied widgets-hidden jetpack-reblog-enabled custom-colors">
<div id="page" class="hfeed site">
			<div id="menu-toggle-nav" class="panel">
		<nav id="site-navigation" class="main-navigation" role="navigation">
			<a class="skip-link screen-reader-text" href="#content">Skip to content</a>

			<div class="menu"><ul>
<li class="current_page_item"><a href="https://devel.co.uk/">Home</a></li><li class="page_item page-item-1"><a href="https://devel.co.uk/about/">About</a></li>
</ul></div>
		</nav><!-- #site-navigation -->
	</div>
			<div id="sidebar-toggle-nav" class="panel">
	<div class="widget-areas">
					<div class="widget-area">
				<aside id="search-4" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://devel.co.uk/">
	<label>
		<span class="screen-reader-text">Search for:</span>
		<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s">
	</label>
	<input type="submit" class="search-submit" value="Search">
</form>
</aside>
		<aside id="recent-posts-4" class="widget widget_recent_entries">
		<h1 class="widget-title">Recent Posts</h1>
		<ul>
											<li>
					<a href="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/">It&#8217;s my birthday and I&#8217;ll ride if I want&nbsp;to</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2016/07/01/worth-reading/">Worth reading</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2015/06/22/microserfs/">Microserfs</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2011/06/26/lost-potential/">Lost Potential</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2010/05/01/unmeasurables/">Unmeasurables</a>
									</li>
					</ul>

		</aside><aside id="recent-comments-4" class="widget widget_recent_comments"><h1 class="widget-title">Recent Comments</h1></aside><aside id="archives-4" class="widget widget_archive"><h1 class="widget-title">Archives</h1>
			<ul>
					<li><a href='https://devel.co.uk/2023/09/'>September 2023</a></li>
	<li><a href='https://devel.co.uk/2016/07/'>July 2016</a></li>
	<li><a href='https://devel.co.uk/2015/06/'>June 2015</a></li>
	<li><a href='https://devel.co.uk/2011/06/'>June 2011</a></li>
	<li><a href='https://devel.co.uk/2010/05/'>May 2010</a></li>
	<li><a href='https://devel.co.uk/2010/03/'>March 2010</a></li>
	<li><a href='https://devel.co.uk/2010/02/'>February 2010</a></li>
	<li><a href='https://devel.co.uk/2009/09/'>September 2009</a></li>
	<li><a href='https://devel.co.uk/2009/02/'>February 2009</a></li>
	<li><a href='https://devel.co.uk/2008/12/'>December 2008</a></li>
	<li><a href='https://devel.co.uk/2008/10/'>October 2008</a></li>
	<li><a href='https://devel.co.uk/2008/06/'>June 2008</a></li>
	<li><a href='https://devel.co.uk/2008/05/'>May 2008</a></li>
	<li><a href='https://devel.co.uk/2008/04/'>April 2008</a></li>
	<li><a href='https://devel.co.uk/2008/03/'>March 2008</a></li>
	<li><a href='https://devel.co.uk/2008/01/'>January 2008</a></li>
	<li><a href='https://devel.co.uk/2007/11/'>November 2007</a></li>
	<li><a href='https://devel.co.uk/2007/06/'>June 2007</a></li>
	<li><a href='https://devel.co.uk/2007/05/'>May 2007</a></li>
	<li><a href='https://devel.co.uk/2007/04/'>April 2007</a></li>
	<li><a href='https://devel.co.uk/2007/03/'>March 2007</a></li>
	<li><a href='https://devel.co.uk/2007/02/'>February 2007</a></li>
	<li><a href='https://devel.co.uk/2007/01/'>January 2007</a></li>
	<li><a href='https://devel.co.uk/2006/12/'>December 2006</a></li>
	<li><a href='https://devel.co.uk/2006/11/'>November 2006</a></li>
	<li><a href='https://devel.co.uk/2006/05/'>May 2006</a></li>
	<li><a href='https://devel.co.uk/2006/04/'>April 2006</a></li>
	<li><a href='https://devel.co.uk/2006/03/'>March 2006</a></li>
	<li><a href='https://devel.co.uk/2006/02/'>February 2006</a></li>
			</ul>

			</aside><aside id="categories-4" class="widget widget_categories"><h1 class="widget-title">Categories</h1>
			<ul>
					<li class="cat-item cat-item-1"><a href="https://devel.co.uk/category/uncategorized/">Uncategorized</a>
</li>
			</ul>

			</aside><aside id="meta-4" class="widget widget_meta"><h1 class="widget-title">Meta</h1>
		<ul>
			<li><a class="click-register" href="https://wordpress.com/start?ref=wplogin">Create account</a></li>			<li><a href="https://develco.wordpress.com/wp-login.php">Log in</a></li>
			<li><a href="https://devel.co.uk/feed/">Entries feed</a></li>
			<li><a href="https://devel.co.uk/comments/feed/">Comments feed</a></li>

			<li><a href="https://wordpress.com/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.com</a></li>
		</ul>

		</aside>			</div>
							<div class="widget-area">
				<aside id="search-3" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://devel.co.uk/">
	<label>
		<span class="screen-reader-text">Search for:</span>
		<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s">
	</label>
	<input type="submit" class="search-submit" value="Search">
</form>
</aside>
		<aside id="recent-posts-3" class="widget widget_recent_entries">
		<h1 class="widget-title">Recent Posts</h1>
		<ul>
											<li>
					<a href="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/">It&#8217;s my birthday and I&#8217;ll ride if I want&nbsp;to</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2016/07/01/worth-reading/">Worth reading</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2015/06/22/microserfs/">Microserfs</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2011/06/26/lost-potential/">Lost Potential</a>
									</li>
											<li>
					<a href="https://devel.co.uk/2010/05/01/unmeasurables/">Unmeasurables</a>
									</li>
					</ul>

		</aside><aside id="recent-comments-3" class="widget widget_recent_comments"><h1 class="widget-title">Recent Comments</h1></aside><aside id="archives-3" class="widget widget_archive"><h1 class="widget-title">Archives</h1>
			<ul>
					<li><a href='https://devel.co.uk/2023/09/'>September 2023</a></li>
	<li><a href='https://devel.co.uk/2016/07/'>July 2016</a></li>
	<li><a href='https://devel.co.uk/2015/06/'>June 2015</a></li>
	<li><a href='https://devel.co.uk/2011/06/'>June 2011</a></li>
	<li><a href='https://devel.co.uk/2010/05/'>May 2010</a></li>
	<li><a href='https://devel.co.uk/2010/03/'>March 2010</a></li>
	<li><a href='https://devel.co.uk/2010/02/'>February 2010</a></li>
	<li><a href='https://devel.co.uk/2009/09/'>September 2009</a></li>
	<li><a href='https://devel.co.uk/2009/02/'>February 2009</a></li>
	<li><a href='https://devel.co.uk/2008/12/'>December 2008</a></li>
	<li><a href='https://devel.co.uk/2008/10/'>October 2008</a></li>
	<li><a href='https://devel.co.uk/2008/06/'>June 2008</a></li>
	<li><a href='https://devel.co.uk/2008/05/'>May 2008</a></li>
	<li><a href='https://devel.co.uk/2008/04/'>April 2008</a></li>
	<li><a href='https://devel.co.uk/2008/03/'>March 2008</a></li>
	<li><a href='https://devel.co.uk/2008/01/'>January 2008</a></li>
	<li><a href='https://devel.co.uk/2007/11/'>November 2007</a></li>
	<li><a href='https://devel.co.uk/2007/06/'>June 2007</a></li>
	<li><a href='https://devel.co.uk/2007/05/'>May 2007</a></li>
	<li><a href='https://devel.co.uk/2007/04/'>April 2007</a></li>
	<li><a href='https://devel.co.uk/2007/03/'>March 2007</a></li>
	<li><a href='https://devel.co.uk/2007/02/'>February 2007</a></li>
	<li><a href='https://devel.co.uk/2007/01/'>January 2007</a></li>
	<li><a href='https://devel.co.uk/2006/12/'>December 2006</a></li>
	<li><a href='https://devel.co.uk/2006/11/'>November 2006</a></li>
	<li><a href='https://devel.co.uk/2006/05/'>May 2006</a></li>
	<li><a href='https://devel.co.uk/2006/04/'>April 2006</a></li>
	<li><a href='https://devel.co.uk/2006/03/'>March 2006</a></li>
	<li><a href='https://devel.co.uk/2006/02/'>February 2006</a></li>
			</ul>

			</aside><aside id="categories-3" class="widget widget_categories"><h1 class="widget-title">Categories</h1>
			<ul>
					<li class="cat-item cat-item-1"><a href="https://devel.co.uk/category/uncategorized/">Uncategorized</a>
</li>
			</ul>

			</aside><aside id="meta-3" class="widget widget_meta"><h1 class="widget-title">Meta</h1>
		<ul>
			<li><a class="click-register" href="https://wordpress.com/start?ref=wplogin">Create account</a></li>			<li><a href="https://develco.wordpress.com/wp-login.php">Log in</a></li>
			<li><a href="https://devel.co.uk/feed/">Entries feed</a></li>
			<li><a href="https://devel.co.uk/comments/feed/">Comments feed</a></li>

			<li><a href="https://wordpress.com/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.com</a></li>
		</ul>

		</aside>			</div>
					</div>
</div>			<div id="search-toggle-nav" class="panel">
		<div class="search-wrapper">
			<form role="search" method="get" class="search-form" action="https://devel.co.uk/">
	<label>
		<span class="screen-reader-text">Search for:</span>
		<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s">
	</label>
	<input type="submit" class="search-submit" value="Search">
</form>
		</div>
	</div>
	<header id="masthead" class="site-header" role="banner">
		<div class="site-header-wrapper">
			<div class="site-branding">
				<h1 class="site-title"><a href="https://devel.co.uk/" rel="home">PGC&#039;s weblog</a></h1>
				<h2 class="site-description">Where I randomly write things that may interest no-one else</h2>
			</div>
			<div class="toggles">
			<div id="menu-toggle" class="toggle" title="Menu">
				<span class="screen-reader-text">Menu</span>
			</div><!-- #menu-toggle -->
							<div id="sidebar-toggle" class="toggle" title="Widgets">
					<span class="screen-reader-text">Widgets</span>
				</div><!-- #sidebar-toggle -->
									<div id="search-toggle" class="toggle" title="Search">
				<span class="screen-reader-text">Search</span>
			</div><!-- #search-toggle -->
		</div><!-- .toggles -->
		</div>
	</header><!-- #masthead -->
	<div id="content" class="site-content">

	<div id="primary" class="content-area">
		<main id="main" class="site-main" role="main">

		
						
				
<article id="post-255" class="post-255 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/" rel="bookmark">It&#8217;s my birthday and I&#8217;ll ride if I want&nbsp;to</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		
<p class="wp-block-paragraph">tl:dr; On 2nd of October I&#8217;m riding from Bristol to Birmingham to raise money for Birmingham Children&#8217;s Hospital. <a href="https://www.justgiving.com/page/paul-bristol-brum">Please donate</a> if you can.</p>



<figure class="wp-block-image size-large"><a href="https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png"><img data-attachment-id="259" data-permalink="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/bristol-ride-1/" data-orig-file="https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png" data-orig-size="2000,2000" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="bristol-ride-1" data-image-description="" data-image-caption="" data-large-file="https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=842" width="1024" height="1024" src="https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=1024" alt="" class="wp-image-259" srcset="https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=1024 1024w, https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=150 150w, https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=300 300w, https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=768 768w, https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png?w=1440 1440w, https://devel.co.uk/wp-content/uploads/2023/09/bristol-ride-1.png 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">In just under 2 weeks it&#8217;s my birthday. Apparently a bit of a landmark birthday. So I&#8217;ve been planning a bit of a challenge to celebrate. I&#8217;m aiming to ride the ~100 miles from Bristol to Birmingham (the planned route is 105 miles but I&#8217;m bound to take a wrong turn somewhere). I&#8217;m lucky to not want or need anything for my birthday so if you&#8217;re so inclined and have a few spare pounds then I&#8217;d welcome <a href="https://www.justgiving.com/page/paul-bristol-brum">donations to Birmingham Children&#8217;s Hospital</a>. Having 2 kids with long-term health issues gives us a deep appreciation for the people and facilities at the Children&#8217;s Hospital. Plans have been in flight for a while but today I went to visit Ozzy and sorted my train ticket and bike reservation taking me from Birmingham to Bristol on the morning of the 2nd October. I will then have the rest of the day to get myself back to Birmingham. For an elite rider, 100 miles is a bog standard training ride &#8211; it&#8217;s a surprising but true fact that I am not an elite rider so this is going to be tough. I&#8217;m not setting any particular time target other than hopefully arriving back before sunset (but I will be taking lights just in case!).</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/" title="11:14 am" rel="bookmark"><time class="entry-date" datetime="2023-09-20T11:14:34+00:00">September 20, 2023</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2023/09/20/its-my-birthday-and-ill-ride-if-i-want-to/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-234" class="post-234 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2016/07/01/worth-reading/" rel="bookmark">Worth reading</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		<p>Two very interesting articles appeared across the twitter feeds this week. First, via Chris Heilmann (<a href="https://twitter.com/codepo8">@codepo8</a>, who has too much awesome stuff to keep up), this amazingly detailed essay <a href="http://worrydream.com/LearnableProgramming/">Learnable Programming</a></p>
<blockquote><p>Alan Perlis wrote, <i>&#8220;To understand a program, you must become both the machine and the program.&#8221;</i> This view is a mistake, and it is this widespread and virulent mistake that keeps programming a difficult and obscure art. A person is not a machine, and should not be forced to think like one.</p>
<p><i>How do we get people to understand programming?</i></p>
<p>We change programming. We turn it into something that&#8217;s understandable by people.</p></blockquote>
<p>Second, via Alex Russell (<a href="https://twitter.com/slightlylate">@slightlylate</a>), is this thought provoking piece <a href="http://idlewords.com/talks/sase_panel.htm">&#8220;The Moral Economy of Tech&#8221;</a> by Maciej Ceglowski (<a href="https://twitter.com/baconmeteor">@baconmeteor</a>),</p>
<blockquote><p>But as anyone who&#8217;s worked with tech people knows, this intellectual background can also lead to arrogance. People who excel at software design become convinced that they have a unique ability to understand any kind of system at all, from first principles, without prior training, thanks to their superior powers of analysis. Success in the artificially constructed world of software design promotes a dangerous confidence.</p></blockquote>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2016/07/01/worth-reading/" title="4:27 pm" rel="bookmark"><time class="entry-date" datetime="2016-07-01T16:27:47+00:00">July 1, 2016</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2016/07/01/worth-reading/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-232" class="post-232 post type-post status-publish format-standard hentry category-uncategorized tag-alex-pappademas tag-douglas-coupland tag-microserfs tag-silicon-valley">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2015/06/22/microserfs/" rel="bookmark">Microserfs</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		<p>Microserfs was my favourite book of the late 90s and possibly in the top ten all time, but I&#8217;ve always been reluctant to go back a re-read again for fear that it wouldn&#8217;t stand up (unlike other Douglas Coupland books which I have read again). Well now I don&#8217;t have to as Alex Pappademas has nailed a <a href="http://grantland.com/hollywood-prospectus/silicon-valley-halt-catch-fire-microserfs-douglas-coupland/" target="_blank">look back at Microserfs</a> mixed with review of Silicon Valley and Halt and Catch Fire (both of which I&#8217;m mid-season 1 with) &#8211; it&#8217;s like he wrote this exactly for me.</p>
<blockquote><p>One reason why <em>Microserfs </em>is a strange read that feels epochs and not just decades old today is that its vision of Gates has been superseded in the culture at least twice&#8230;..Rather than an on-the-ground account of the first tech boom, then, <em>Microserfs</em> is an inadvertent time capsule of the moment just <em>before</em> the explosive growth of the consumer-facing Internet transformed society’s relationship to technology.</p></blockquote>
<p>Ironically at the time I was working in something more like a McJob than &#8220;lost in a large corporation&#8221; job at fast growing company like Microsoft (quite apart from living in the West Midlands not Seattle / Silicon Valley). But despite the massive disparity in situations I still felt some kinship with the characters and their struggle to find themselves and meaningful work.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2015/06/22/microserfs/" title="10:33 pm" rel="bookmark"><time class="entry-date" datetime="2015-06-22T22:33:57+00:00">June 22, 2015</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>					<span class="tags-links"><a href="https://devel.co.uk/tag/alex-pappademas/" rel="tag">Alex Pappademas</a>, <a href="https://devel.co.uk/tag/douglas-coupland/" rel="tag">Douglas Coupland</a>, <a href="https://devel.co.uk/tag/microserfs/" rel="tag">Microserfs</a>, <a href="https://devel.co.uk/tag/silicon-valley/" rel="tag">Silicon Valley</a></span>		
				<span class="comments-link"><a href="https://devel.co.uk/2015/06/22/microserfs/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-121" class="post-121 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2011/06/26/lost-potential/" rel="bookmark">Lost Potential</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		<br />
<blockquote>
<p>Much of this software, in turn, has no proprietary value for the enterprises that develop it. So why isn’t the world deluged with enterprise-written open-source software? Why do so many <span class="caps">CIO</span>s gladly use open source but not contribute to it? <a href="//www.theregister.co.uk/2011/06/22/open_source_is_hard/">Because open source is hard. Really, really hard.</a></p>
</blockquote>
<p>So says Matt Asay in his Register column, and while I don’t disagree I also think it’s a lot like everything; the more you practice the easier it gets, and there are plenty of companies, large and small, that do push projects out as open source and over time they create a processes and policy to support that. </p>
<p>In fact the real problem is that Software is hard. Really, really hard – governance, code provenance, peer review, modularity, source code control, tracking bugs, responding to user/developer queries, etc are all things you want to do or issues you need to tackle in any well run software project regardless of the project being open or closed. Keeping a project in-house simply offers the possibility (the temptation?) to skimp or short cut on these things. Making a project open is a commitment to a wider community to do things right and be held accountable.</p>
<blockquote>
<p>Aside: Kent Beck once commented at <span class="caps">OSCON</span> (in 2004 <span class="caps">IIRC</span>) that open source developers kind of have Maslov’s hierachy upside down, ie they start with self-actualisation (creating a project to scratch their itch), which can the lead to strong relationships with like minded people, respect from peers, and finally (if you’re lucky) a job to provide for food and shelter.</p>
</blockquote>
<p>Matt links to Jim Whitehurst who laments “ <a href="//www.cio.com/article/405913/IT_Leaders_Encouraged_to_Contribute_Enterprise_Code_to_Open_Source_Projects">Think how much software is written out there that is behind proprietary walls</a>&#8220;. Again I like the sentiment but don’t regret the lost code or lack of economic efficiency as much lament the lost opportunity for personal satisfaction and growth, the missed opportunity to retain and nuture talented, creative people.</p>
<p>How many companies struggle with staff motivation and retention when experts from <a href="//www.youtube.com/watch?v=u6XAPnuFjJc">Dan Pink</a> to <a href="//winforever.com/">Pete Carroll</a> will tell you that the secret to happy and fulfilled employees is having autonomy and mastery over your work, to have a purpose in what you’re doing. Nothing beats this kind of retention policy or motivation, not even money (if fact simply giving people more money can, in fact, be de-motivating).</p>
<p>Maybe I’m just finding another scapegoat, but it seems that the real problem is not so much that doing open source is hard, or that lawyers get in the way, but that accounting for the benefits and costs of doing open source is too hard, so the value can be ‘proved’. Where the value is clear (or someone is willing to trust their gut) getting over the organisational hurdles will happen</p>
<blockquote>
<p>“According to Whitehurst, JP Morgan’s <span class="caps">CIO</span> realized that support costs could be reduced by contributing the source code to the Linux community. Other Linux users would benefit, which would be nice… but more important to JP Morgan, the company wouldn’t have to invest its own resources in maintaining an internal application. The Merge code would now be updated and enhanced by Linux developers at large, in addition to any committers on its own staff.” From <a href="//www.cio.com/article/405913/IT_Leaders_Encouraged_to_Contribute_Enterprise_Code_to_Open_Source_Projects">cio.com</a></p>
</blockquote>
<p>This is presented as a pretty cut and dry case of not wasting resources (and therefore money) but actually the accounting is incomplete because various things are not factored in; </p>
<ul>
<li>maintaining an internal fork is boring, fiddly, unrewarding work compared to working on the real Merge functionality – what of the affect on team morale, productivity, and retention</li>
<li>external usage can provide feedback and alternate deployment scenarios and testing which make Merge more robust (if you manage it correctly)</li>
<li>if your project becomes a standard open source component in it’s class, other parts of the stack will be written to integrate, interface, or compliment so ultimately your systems become easier and cheaper to develop</li>
</ul>
<p>Suppose in the JP Morgan case making Merge open source actually required more, not less, resource – how do you factor in the above (and other negative factors) so you can calculate the break even point. Unfortunately I don’t know but I would wager that there is a strong correlation between teams efficiently delivering great products and/or services and management that creates opportunities for the their teams to grow and to <a href="//www.netjeff.com/humor/item.cgi?file=DeveloperBees">build software the right way</a> (which may or may not include making it open source – that’s actually a secondary detail).</p>
<blockquote>
<p>Making the worker achieving implies consideration of the human being as an organism having peculiar physiological and psychological properties, abilities, and limitations, and a distinct mode of action. It implies consideration of the human resource as human beings and not as things, and as having—unlike any other resource—personality, citizenship, control over whether they work, how much and how well, and thus requiring responsibility, motivation, participation, satisfaction, incentives and rewards, leadership, status, and function. — <a href="//www.amazon.com/dp/B000FC12PU/">Management by Peter F. Drucker [Kindle Edition]</a></p>
</blockquote>
<p>I think this is the toughest challenge in any organisation – it’s a  complex, inter-related, non-linear system, where the smallest, apparently insignificant, changes can have butterfly effects through the system, where small costs saving in one area can lead to huge deficit in others, where a small investment in something not “business critical” can indirectly reap huge dividends. Enlightened accountants are welcome to tell me how to do a cost benefit analysis of this upfront.</p>
<p>However I suspect it’s not possible otherwise we could just run everything through a spreadsheet and every company, charity, government dept, would just run like clockwork. Instead I’m reminded of possibly the greatest ever company about page of <a href="//www.ludicorp.com/about.php">Ludicorp</a> (the company that created Flickr) which quotes from “Disclosing New Worlds: Entrepreneurship, Democratic Action and the Cultivation of Solidarity by Charles Spinosa, Fernando Flores &amp;amp; Hubert Dreyfus (<span class="caps">MIT</span> Press 1997)” of which I will cut a snippet</p>
<blockquote>
<p>One might think that they view their businesses as nothing more than machines to produce profits, since they do closely monitor their accounts to keep tabs on those profits.</p>
<p>But this way of thinking replaces the point of the machine’s activity with a diagnostic test of how well it is performing. Normally, one senses whether one is performing skillfully. A basketball player does not need to count baskets to know whether the team as a whole is in flow. Saying that the point of business is to produce profit is like saying that the whole point of playing basketball is to make as many baskets as possible. One could make many more baskets by having no opponent.</p>
<p>The game and styles of playing the game are what matter because they produce identities people care about.</p>
</blockquote>
<p>Management is hard. Really, really hard. Man Up.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2011/06/26/lost-potential/" title="4:33 pm" rel="bookmark"><time class="entry-date" datetime="2011-06-26T16:33:33+00:00">June 26, 2011</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2011/06/26/lost-potential/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-106" class="post-106 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2010/05/01/unmeasurables/" rel="bookmark">Unmeasurables</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		<blockquote><p>“Here we have a basketball mystery: a player is widely regarded inside the N.B.A. as, at best, a replaceable cog in a machine driven by superstars. And yet every team he has ever played on has acquired some magical ability to win.”</p></blockquote>
<p><a href="//www.nytimes.com/2009/02/15/magazine/15Battier-t.html?_r=4&amp;amp;ref=magazine&amp;amp;pagewanted=all">According to Michael Lewis</a>, Shane Battier is the unmeasurable glue that makes the teams he plays on better (and knowing squat about basketball I’ll take his word for it – but I can think of many examples of such players in other sports). And so goes the dilema for anyone in management, whether sports, software development, or any other. There are certain teammates that defy statistical measurement, other than wins (in the case of sports teams), but that none-the-less these people indisputably make the team better (ie more likely to win, or create a great product, deliver a great service, etc).</p>
<p>In the end success, at least the elements the team can control, comes down to the individuals – each beautiful unique snowflake – what makes them tick, how they can contribute, how they work together as a group, etc. Unfortunately most large organisations that I’ve seen (both for- and non-profit) treat employees and/or volunteers as interchangeable cogs in a big machine, recruited against some cookie cutter arbitrary job spec, and measured every year against equally arbitrary and abstract performance criteria. Re-org’d, re-shuffled, and re-assigned at random intervals.</p>
<p>Most smart managers of high performing teams subvert, either directly or indirectly, consciously or subconsciously, the status quo and find smart people by any means possible, help them find them interesting and challenging things to do (unlocking the <a href="//www.thersa.org/fellowship/journal/features/features/gainful-employment">third drive</a>), and build a structure for them to contribute, grow, and eventually leave. Smart companies treat people as individuals from the start – <a href="//blogs.hbr.org/taylor/2008/05/why_zappos_pays_new_employees.html">Zappos</a> and <a href="//www.slideshare.net/reed2001/culture-1798664">Netflix</a> come to mind, also Best Buy as a <a href="//www.businessweek.com/magazine/content/06_50/b4013001.htm"><span class="caps">ROWE</span></a>.</p>
<p>While there are always anomalies, teams ultimately dissipate over time – high retention rate could equally be a sign of stagnation rather than perfect team alignment and assignment. Your teams performance in 2+ years time will be defined by this year’s recruiting class – if you can keep them that long (aparently <a href="//blog.penelopetrunk.com/2006/12/24/good-news-for-job-hoppers-frequent-change-maintains-passion/">20-somethings switch jobs every 18 months</a>)</p>
<p>Who says management is boring?</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2010/05/01/unmeasurables/" title="9:51 am" rel="bookmark"><time class="entry-date" datetime="2010-05-01T09:51:15+00:00">May 1, 2010</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2010/05/01/unmeasurables/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-123" class="post-123 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2010/03/22/confidence/" rel="bookmark">Confidence</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		
<p>“Kasparov can calculate more alternatives, whereas my intuition is better. I immediately know how to rate a situation and what plan is necessary. I am clearly superior to him in that respect.” – no shortage of confidence from the 19 year old <a href="//www.chessbase.com/newsdetail.asp?newsid=6187">worlds no 1 chess player</a>. I only wish I could have been so sure of myself at 19.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2010/03/22/confidence/" title="4:34 pm" rel="bookmark"><time class="entry-date" datetime="2010-03-22T16:34:43+00:00">March 22, 2010</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2010/03/22/confidence/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-108" class="post-108 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2010/02/23/you-are-entereing-the-quietzone/" rel="bookmark">You are entereing the&nbsp;QuietZone</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		
<p>One of the most curious concepts I encounter on a weekly basis is the concept of a ‘QuietZone’. For those who’ve not had the fortune to travel on one of the many (privitised) train operators in the UK the idea might seem obvious at first glance – a train full of people can be a noisy place – so why not designate one carriage, a kind of library like carriage, where the social contract is to keep noise to a minimum. Unfortunately, this being Britain, things are not so simple.</p>
<p><a title="Stickerfitti  by pgc, on Flickr" href="//www.flickr.com/photos/pgc/3510821341/"><img width="375" height="500" alt="Stickerfitti " src="//farm4.static.flickr.com/3380/3510821341_438bfce5c1.jpg" /></a></p>
<p>For the uninitiated this is a list of things that it appears is quite OK to do in the QuietZone (quite OK, meaning I have never seen another passenger complain about anyone doing these things – there is no formal definition, in the carriages at least, of what the QuietZone is/isn’t for other than the, somewhat defaced, signage above);</p>
<ul>
<li>Talk loudly to the person or people sitting in adjoining seats</li>
</ul>
<ul>
<li>Eat noisy food (such as crisps, crunchy biscuits, etc).</li>
</ul>
<ul>
<li>Listen to mp3 players with headphones</li>
</ul>
<ul>
<li>Compulsively play with a noisy item, eg velcro fastening on a jacket</li>
</ul>
<ul>
<li>Generally make noise</li>
</ul>
<p>However any of the following is almost guaranteed to inspire another passenger to remind you that this is a ‘QuiteZone’</p>
<ul>
<li>Hold a mobile phone to your ear</li>
</ul>
<ul>
<li>Talk at any volume into your phone or headset</li>
</ul>
<ul>
<li>Do anything with a phone that involves noise – receiving an <span class="caps">SMS</span>, typing, etc.</li>
</ul>
<p>Now I’m not making any judgement or outcry about this – I’m just reveling in the curiousness of the situation. Mobile phones users started out as a cultural outcast – loud, rude, inconsiderate (cf. the TriggerHappyTV sketch below) – and this got encoded in the expected behaviour of the QuietZone (whether intentionally or unintentionally), and has since got overtaken by what is now the cultural norm – that everyone has a mobile phone, and feels at liberty to use it without thought.</p>
<p>object width=&#8221;425&#8243; height=&#8221;344&#8243;&gt;</p>
<p>So you end up with the QuietZone, and the the myriad bizarre juxtapositions, like someone stopping mid (silent) Blackberry email to lean over to someone else talking (quietly) on the phone to remind them it’s the QuietZone, and using phones isn’t allowed.</p>
<p>And because of this, and because it’s such a British thing, whenever possible I book tickets in the QuietZone – it’s the funnest carriage in the train 😉</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2010/02/23/you-are-entereing-the-quietzone/" title="4:17 pm" rel="bookmark"><time class="entry-date" datetime="2010-02-23T16:17:55+00:00">February 23, 2010</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2010/02/23/you-are-entereing-the-quietzone/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-97" class="post-97 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2009/09/22/jobs-on-the-moblin-team/" rel="bookmark">Jobs on the Moblin&nbsp;team</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		
<p>We’re looking for some smart people to join the Moblin team and help develop our little <a href="//moblin.org/">mobile Linux platform</a>.</p>
<p>First up we have a position for a recent college graduate (Intel code for; you left University sometime in the last 18 months) to help us build the Moblin user experience. We looking for someone who has shown an ability to work productively within open source projects, and has a familiarity with common development tools such as C, C++, autotools, git, etc. For more details see the formal job description for <a href="//intel.taleo.net/careersection/10000/jobdetail.ftl?lang=en&amp;amp;ctx=1&amp;amp;job=569533">Open Source Software Engineer – 569533</a></p>
<p>We also have two positions in a new team that will be building up our developer tools, documentations, <span class="caps">SDK</span>, etc. Here we’re looking for people with much more experience of open source projects (preferably experience as a maintainer, but not a hard requirement) and in depth knowledge of 2 or more of C, C++, or Java, plus the usual autools, git, svn, etc. Plus any experience creating developer tools or writing documentation will be a bonus. Again you can get more details from the job descriptions at <a href="//intel.taleo.net/careersection/10000/jobdetail.ftl?lang=en&amp;amp;ctx=1&amp;amp;job=568745">Developer Tools Engineer – 568745</a> and <a href="//intel.taleo.net/careersection/10000/jobdetail.ftl?lang=en&amp;amp;ctx=1&amp;amp;job=568340">Software Engineer – 568340</a></p>
<p>Any questions please feel free to ping me at pgc at the domain name of this blog (consider this the first initiative / turing test of the interview process 😉</p>
<p><strong>Update:</strong> I should have made clear that all of these positions are based at our London office, and for now we’re not able to consider candidates working remotely, nor sadly do we have any relocation budget.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2009/09/22/jobs-on-the-moblin-team/" title="4:08 pm" rel="bookmark"><time class="entry-date" datetime="2009-09-22T16:08:51+00:00">September 22, 2009</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2009/09/22/jobs-on-the-moblin-team/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-112" class="post-112 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2009/02/25/old-mo-and-free-agency-in-a-down-economy/" rel="bookmark">Old Mo and free agency in a down&nbsp;economy</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		
<p>There’s a great list of <a href="//www.pro-football-reference.com/blog/?p=1272">Football pet peeves</a> (via <a href="//smartfootball.blogspot.com/">Smart Football</a> – hands down my favourite football blog)</p>
<blockquote>
<p>…..if I were ever named commissioner, the first rule I would enact is this: Any receiver who looks at a ref and does the little throw-the-flag wrist flip gets a 15-yard penalty and a lifetime ban from the league.</p>
</blockquote>
<p>OK, I wouldn’t go so far as a lifetime ban but I whole heartedly agree (as with most of the other pet peeves). </p>
<p>One of my pet peeves which isn’t on the list is the idea of momentum, or in cliched coach speak ‘Old Mo’. Certainly a big play or a big hit can get a team fired up but I just don’t believe in a thing called Momentum, that one team has, and the other team doesn’t but can ‘take back’. Football history is littered with counter-examples but you only have to think back to the Superbowl to find the most recent.</p>
<p>In the 4th quarter the Cardinals had all kinds of Momentum on their side. They’d had a big goal line stand (2 if you consider that the stupid personal foul on Adrian Wilson gave the Steelers a fresh set of downs), and their D had all but shut down the Steelers O. The Cards offense had erased the Steeler’s lead and then put them ahead with only 2.35 (<span class="caps">IIRC</span>) left on the clock.</p>
<p>All the Cards defense had to do was do what they’d been doing all 4th quarter and shutdown the Steelers – they’ve got all the Momentum so it should be easy, right? Except ‘Old Mo’ didn’t turn up, and Ben Roethlisberger, Santonio Holmes and the rest of the Steeler’s O did – or did they somehow steal Momentum back? Did Holmes’ drop on the play before the game winning TD lose some Momentum? The whole thing is just nonsensical.</p>
<p>Football teams win / lose because they make / don’t make plays, and in close games it’s about making plays at critical times (just how <a href="//tennisworld.typepad.com/tennisworld/2007/09/the-mind-and-th.html">Federer knows to conserve his deepest concentration for big plays</a>). Smart Football <a href="//smartfootball.blogspot.com/2007/01/ttechs-31-point-comeback-and-hot-hand.html">doesn’t think much of Momentum either</a> although Chris does a much better job debunking it than me.</p>
<p>On a sort of related note, <span class="caps">NFL</span> draft and free agency are upon us and I wonder what, if any, the affect of the struggling economy will have. I can’t think of a year where the no 1 draft pick didn’t sign for more than the previous years pick, and since the advent of the salary cap and free agency, and year that the cap didn’t go up, or that some free agent became the highest paid at his position. Sustainable growth or an about to burst bubble?</p>
<p>The <span class="caps">NFL</span>’s revenue sharing arrangements and salary cap should help buffer it from serious bubbles unlike the top Premiership teams which seem highly leveraged due to the skyrocketing transfer fees and wage demands, with no cap to limit them (last year <a href="//www.guardian.co.uk/football/2008/may/20/premierleague.chelsea?gusrc=rss&amp;amp;feed=football">Chelsea were £736m in debt</a>). <span class="caps">NFL</span> teams could however suffer from cash flow or lack of credit problems as they have to pay signing and roster bonuses upfront (even though for salary cap purposes the numbers are pro-rated over the life of the contract). Likely the smaller market teams or those without mega rich owners who might be most effected.</p>
<p>But there’s not just pure economics involved. If the still wealthy are <a href="//clippednews.wordpress.com/2009/01/25/hiding-recession-spending/">hiding their extravagant shopping</a> behind unmarked bags (via <a href="//clippednews.wordpress.com/2009/01/25/hiding-recession-spending/">Penelope Trunk</a>) then I wonder if there will be a considerable backlash against ‘spoiled athletes’ holding out for a bigger signing bonus. I expect Drew Rosenhaus to be as unrepentantly money grabbing as always.</p>
<p>I also wonder whether the economic situation will spur on the restart of the <span class="caps">NFLPA</span> – <span class="caps">NFL</span> labour negotiations (once the <span class="caps">NFLPA</span> finds a replacement for the late Gene Upshaw). The thought of uncapped years doesn’t seem quite so appealing in a down economy.</p>
<p>Anyway it’s the offseason so I’ve got to have something football related to think about.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2009/02/25/old-mo-and-free-agency-in-a-down-economy/" title="4:24 pm" rel="bookmark"><time class="entry-date" datetime="2009-02-25T16:24:44+00:00">February 25, 2009</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2009/02/25/old-mo-and-free-agency-in-a-down-economy/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				
<article id="post-99" class="post-99 post type-post status-publish format-standard hentry category-uncategorized">
			<span class="entry-format"></span>
		<header class="entry-header">
		<h1 class="entry-title"><a href="https://devel.co.uk/2009/02/10/the-great-netbook-bonanza/" rel="bookmark">the great netbook&nbsp;bonanza</a></h1>	</header><!-- .entry-header -->

		<div class="entry-content">
		<p>Don Marti wrote a rambling (for him) post about impact netbooks and linux, and musing about <a href="//zgp.org/%7Edmarti/business/netbooks/">the great netbook windfall</a>. Here’s some stuff I wanted to throw into the pot.</p>
<blockquote>
<p>There’s still a lot of network value in a copy of Microsoft Windows because of all the compatible products out there. But, thanks to hard-working Linux driver writers, “driverless” <span class="caps">USB</span> class-compliant devices, and the rise of web-based applications to take the place of shrink-wrapped Win32 applications, the difference in network value is less and less at the low end of the market.</p>
</blockquote>
<p>When ever you create a Linux based devices, whether it’s a phone, <span class="caps">MID</span>, netbook, laptop, there’s more to getting it consumer ready than trying out a LiveCD and knowing your <span class="caps">ACPI</span> tables. (I know that’s not what Don, or <a href="//laforge.gnumonks.org/weblog/2009/02/04/#20090204-reflections_on_the_hardware_industry">Harald</a>, where implying – just trying a LiveCD would be a start for many). Even after the LiveCD runs there’s a not insignificant chunk of <span class="caps">NRE</span> that needs to be done to make sure that everything works together properly according to spec – in fact this is true of every hardware &amp;amp; OS combo. </p>
<p>So one of the hidden forms of Windows network value is that Acer, Asus, HP, <span class="caps">IBM</span>/Lenovo, Dell, etc have 10+ years of institutional understanding of what needs to be done to get hardware + Win{95,98,XP,Vista} ready, and (for some) 5+ years of server hardware + “Enterprise Linux” (but creating server room ready hardware and consumer ready devices is different kettle of fish). And now they’re learning, often the hard way, all the obvious stuff about building Linux consumer devices; while you can fork and customise and do your own thing you’re then left maintaining patches while projects move on, so it’s better to get stuff upstream; binary drivers are even more painful than on servers, fun with <span class="caps">GTK</span>+ and Qt theming, and yes <span class="caps">ACPI</span> tables, and on and on. There are more <a href="//mjg59.livejournal.com/106456.html">bonghits</a> to come but hopefully less frequent and not as high.</p>
<p><span class="caps">OSV</span>’s like Canonical, Xandros, Linpus, Novell etc can’t make the per device profit that Microsoft can but they can make a living (I would hope). Many of the netbook guys, Asus in particular, seem to feel that it’s a crime to let a few weeks go by without bringing out a new <span class="caps">SKU</span>, which is more <span class="caps">NRE</span>, and ongoing security and feature updates. So I would expect that being involved in desktop (or mobile) will be more than just a signaling strategy in the future – that increasing institutional understanding of how to get devices ready will mean that <span class="caps">OEM</span>s want to deal with <span class="caps">OSV</span>s that are directly involved in UI and Application projects, as to provide direct feedback and a greater likelihood of important changes &amp;amp; bug fixes going back upstream. That’s my theory, let’s see what happens.</p>
			</div><!-- .entry-content -->
	
	<footer class="entry-meta">
		<span class="post-date"><a href="https://devel.co.uk/2009/02/10/the-great-netbook-bonanza/" title="4:10 pm" rel="bookmark"><time class="entry-date" datetime="2009-02-10T16:10:08+00:00">February 10, 2009</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="https://devel.co.uk/author/pgcoop/" title="View all posts by pgcoop" rel="author">pgcoop</a></span></span>							
				<span class="comments-link"><a href="https://devel.co.uk/2009/02/10/the-great-netbook-bonanza/#respond">Leave a comment</a></span>
		
			</footer><!-- .entry-meta -->
</article><!-- #post-## -->

			
				<nav class="navigation paging-navigation" role="navigation">
		<h1 class="screen-reader-text">Posts navigation</h1>
		<div class="nav-links">

						<div class="nav-previous"><a href="https://devel.co.uk/page/2/?rss=1" ><span class="meta-nav screen-reader-text">&larr;</span></a></div>
			
			
		</div><!-- .nav-links -->
	</nav><!-- .navigation -->
	
		
		</main><!-- #main -->
	</div><!-- #primary -->


	</div><!-- #content -->
	<footer id="colophon" class="site-footer" role="contentinfo">
		<div class="site-info">
						<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a>
			
					</div><!-- .site-info -->
	</footer><!-- #colophon -->
</div><!-- #page -->
		<script type="text/javascript">
		var infiniteScroll = {"settings":{"id":"main","ajaxurl":"https://devel.co.uk/?infinity=scrolling","type":"scroll","wrapper":true,"wrapper_class":"infinite-wrap","footer":"content","click_handle":"1","text":"Older posts","totop":"Scroll back to top","currentday":"10.02.09","order":"DESC","scripts":[],"styles":[],"google_analytics":false,"offset":1,"history":{"host":"devel.co.uk","path":"/page/%d/","use_trailing_slashes":true,"parameters":"?rss=1"},"query_args":{"error":"","m":"","p":0,"post_parent":"","subpost":"","subpost_id":"","attachment":"","attachment_id":0,"name":"","pagename":"","page_id":0,"second":"","minute":"","hour":"","day":0,"monthnum":0,"year":0,"w":0,"category_name":"","tag":"","cat":"","tag_id":"","author":"","author_name":"","feed":"","tb":"","paged":0,"meta_key":"","meta_value":"","preview":"","s":"","sentence":"","title":"","fields":"all","menu_order":"","embed":"","category__in":[],"category__not_in":[],"category__and":[],"post__in":[],"post__not_in":[],"post_name__in":[],"tag__in":[],"tag__not_in":[],"tag__and":[],"tag_slug__in":[],"tag_slug__and":[],"post_parent__in":[],"post_parent__not_in":[],"author__in":[],"author__not_in":[],"search_columns":[],"lazy_load_term_meta":false,"posts_per_page":10,"ignore_sticky_posts":false,"suppress_filters":false,"cache_results":true,"update_post_term_cache":true,"update_menu_item_cache":false,"update_post_meta_cache":true,"post_type":"","nopaging":false,"comments_per_page":"50","no_found_rows":false,"order":"DESC"},"query_before":"2026-04-25 10:32:06","last_post_date":"2009-02-10 16:10:08","body_class":"infinite-scroll neverending","loading_text":"Loading new page","stats":"blog=61616644\u0026v=wpcom\u0026tz=0\u0026user_id=0\u0026arch_home=1\u0026subd=develco\u0026x_pagetype=infinite"}};
		</script>
		<!--  -->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/quadra/*","/wp-content/themes/pub/hexa/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202617d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
<script id="wpgroho-js-extra">
var WPGroHo = {"my_hash":""};
//# sourceURL=wpgroho-js-extra
</script>
<script crossorigin='anonymous' type='text/javascript'  src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>

	<script>
		// Initialize and attach hovercards to all gravatars
		( function() {
			function init() {
				if ( typeof Gravatar === 'undefined' ) {
					return;
				}

				if ( typeof Gravatar.init !== 'function' ) {
					return;
				}

				Gravatar.profile_cb = function ( hash, id ) {
					WPGroHo.syncProfileData( hash, id );
				};

				Gravatar.my_hash = WPGroHo.my_hash;
				Gravatar.init(
					'body',
					'#wp-admin-bar-my-account',
					{
						i18n: {
							'Edit your profile →': 'Edit your profile →',
							'View profile →': 'View profile →',
							'Contact': 'Contact',
							'Send money': 'Send money',
							'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
							'Gravatar not found.': 'Gravatar not found.',
							'Too Many Requests.': 'Too Many Requests.',
							'Internal Server Error.': 'Internal Server Error.',
							'Is this you?': 'Is this you?',
							'Claim your free profile.': 'Claim your free profile.',
							'Email': 'Email',
							'Home Phone': 'Home Phone',
							'Work Phone': 'Work Phone',
							'Cell Phone': 'Cell Phone',
							'Contact Form': 'Contact Form',
							'Calendar': 'Calendar',
						},
					}
				);
			}

			if ( document.readyState !== 'loading' ) {
				init();
			} else {
				document.addEventListener( 'DOMContentLoaded', init );
			}
		} )();
	</script>

		<div style="display:none">
	</div>
		<div id="infinite-footer">
			<div class="container">
				<div class="blog-info">
					<a id="infinity-blog-title" href="https://devel.co.uk/" rel="home">
						PGC&#039;s weblog					</a>
				</div>
				<div class="blog-credits">
					<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a> 				</div>
			</div>
		</div><!-- #infinite-footer -->
				<div id="actionbar" dir="ltr" style="display: none;"
			class="actnbr-pub-quadra actnbr-has-follow actnbr-has-actions">
		<ul>
								<li class="actnbr-btn actnbr-hidden">
								<a class="actnbr-action actnbr-actn-follow " href="">
			<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z"  fill-rule="evenodd"></path></svg>
			<span>Subscribe</span>
		</a>
		<a class="actnbr-action actnbr-actn-following  no-display" href="">
			<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg>
			<span>Subscribed</span>
		</a>
							<div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble">
							<div class="tip-arrow"></div>
							<div class="tip-inner actnbr-follow-bubble">
															<ul>
											<li class="actnbr-sitename">
			<a href="https://devel.co.uk">
				<img loading='lazy' alt='' src='https://s2.wp.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s2.wp.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' />				PGC&#039;s weblog			</a>
		</li>
										<div class="actnbr-message no-display"></div>
									<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;">
																				<div>
										<input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" />
										</div>
										<input type="hidden" name="action" value="subscribe" />
										<input type="hidden" name="blog_id" value="61616644" />
										<input type="hidden" name="source" value="https://devel.co.uk/?rss=1" />
										<input type="hidden" name="sub-type" value="actionbar-follow" />
										<input type="hidden" id="_wpnonce" name="_wpnonce" value="e38d3f0bba" />										<div class="actnbr-button-wrap">
											<button type="submit" value="Sign me up">
												Sign me up											</button>
										</div>
									</form>
									<li class="actnbr-login-nudge">
										<div>
											Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fdevel.co.uk%252F2023%252F09%252F20%252Fits-my-birthday-and-ill-ride-if-i-want-to%252F">Log in now.</a>										</div>
									</li>
								</ul>
															</div>
						</div>
					</li>
							<li class="actnbr-ellipsis actnbr-hidden">
				<svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg>				<div class="actnbr-popover tip tip-top-left actnbr-more">
					<div class="tip-arrow"></div>
					<div class="tip-inner">
						<ul>
								<li class="actnbr-sitename">
			<a href="https://devel.co.uk">
				<img loading='lazy' alt='' src='https://s2.wp.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s2.wp.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' />				PGC&#039;s weblog			</a>
		</li>
								<li class="actnbr-folded-follow">
										<a class="actnbr-action actnbr-actn-follow " href="">
			<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z"  fill-rule="evenodd"></path></svg>
			<span>Subscribe</span>
		</a>
		<a class="actnbr-action actnbr-actn-following  no-display" href="">
			<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg>
			<span>Subscribed</span>
		</a>
								</li>
														<li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li>
							<li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fdevel.co.uk%252F2023%252F09%252F20%252Fits-my-birthday-and-ill-ride-if-i-want-to%252F">Log in</a></li>
															<li class="flb-report">
									<a href="https://wordpress.com/abuse/?report_url=https://devel.co.uk" target="_blank" rel="noopener noreferrer">
										Report this content									</a>
								</li>
															<li class="actnbr-reader">
									<a href="https://wordpress.com/reader/feeds/27884100">
										View site in Reader									</a>
								</li>
															<li class="actnbr-subs">
									<a href="https://subscribe.wordpress.com/">Manage subscriptions</a>
								</li>
																<li class="actnbr-fold"><a href="">Collapse this bar</a></li>
														</ul>
					</div>
				</div>
			</li>
		</ul>
	</div>
	
<script>
window.addEventListener( "DOMContentLoaded", function( event ) {
	var link = document.createElement( "link" );
	link.href = "/wp-content/mu-plugins/actionbar/actionbar.css?v=20250116";
	link.type = "text/css";
	link.rel = "stylesheet";
	document.head.appendChild( link );

	var script = document.createElement( "script" );
	script.src = "/wp-content/mu-plugins/actionbar/actionbar.js?v=20250204";
	document.body.appendChild( script );
} );
</script>

			<div id="jp-carousel-loading-overlay">
			<div id="jp-carousel-loading-wrapper">
				<span id="jp-carousel-library-loading">&nbsp;</span>
			</div>
		</div>
		<div class="jp-carousel-overlay" style="display: none;">

		<div class="jp-carousel-container">
			<!-- The Carousel Swiper -->
			<div
				class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions"
				itemscope
				itemtype="https://schema.org/ImageGallery">
				<div class="jp-carousel swiper-wrapper"></div>
				<div class="jp-swiper-button-prev swiper-button-prev">
					<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
						<mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12">
							<path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/>
						</mask>
						<g mask="url(#maskPrev)">
							<rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/>
						</g>
					</svg>
				</div>
				<div class="jp-swiper-button-next swiper-button-next">
					<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
						<mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12">
							<path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/>
						</mask>
						<g mask="url(#maskNext)">
							<rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/>
						</g>
					</svg>
				</div>
			</div>
			<!-- The main close buton -->
			<div class="jp-carousel-close-hint">
				<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
					<mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14">
						<path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/>
					</mask>
					<g mask="url(#maskClose)">
						<rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/>
					</g>
				</svg>
			</div>
			<!-- Image info, comments and meta -->
			<div class="jp-carousel-info">
				<div class="jp-carousel-info-footer">
					<div class="jp-carousel-pagination-container">
						<div class="jp-swiper-pagination swiper-pagination"></div>
						<div class="jp-carousel-pagination"></div>
					</div>
					<div class="jp-carousel-photo-title-container">
						<h2 class="jp-carousel-photo-caption"></h2>
					</div>
					<div class="jp-carousel-photo-icons-container">
						<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility">
							<span class="jp-carousel-icon">
								<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
									<mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
										<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/>
									</mask>
									<g mask="url(#maskInfo)">
										<rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/>
									</g>
								</svg>
							</span>
						</a>
												<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility">
							<span class="jp-carousel-icon">
								<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
									<mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
										<path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/>
									</mask>
									<g mask="url(#maskComments)">
										<rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/>
									</g>
								</svg>

								<span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span>
							</span>
						</a>
											</div>
				</div>
				<div class="jp-carousel-info-extra">
					<div class="jp-carousel-info-content-wrapper">
						<div class="jp-carousel-photo-title-container">
							<h2 class="jp-carousel-photo-title"></h2>
						</div>
						<div class="jp-carousel-comments-wrapper">
															<div id="jp-carousel-comments-loading">
									<span>Loading Comments...</span>
								</div>
								<div class="jp-carousel-comments"></div>
								<div id="jp-carousel-comment-form-container">
									<span id="jp-carousel-comment-form-spinner">&nbsp;</span>
									<div id="jp-carousel-comment-post-results"></div>
																														<form id="jp-carousel-comment-form">
												<label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label>
												<textarea
													name="comment"
													class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea"
													id="jp-carousel-comment-form-comment-field"
													placeholder="Write a Comment..."
												></textarea>
												<div id="jp-carousel-comment-form-submit-and-info-wrapper">
													<div id="jp-carousel-comment-form-commenting-as">
																													<fieldset>
																<label for="jp-carousel-comment-form-email-field">Email (Required)</label>
																<input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" />
															</fieldset>
															<fieldset>
																<label for="jp-carousel-comment-form-author-field">Name (Required)</label>
																<input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" />
															</fieldset>
															<fieldset>
																<label for="jp-carousel-comment-form-url-field">Website</label>
																<input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" />
															</fieldset>
																											</div>
													<input
														type="submit"
														name="submit"
														class="jp-carousel-comment-form-button"
														id="jp-carousel-comment-form-button-submit"
														value="Post Comment" />
												</div>
											</form>
																											</div>
													</div>
						<div class="jp-carousel-image-meta">
							<div class="jp-carousel-title-and-caption">
								<div class="jp-carousel-photo-info">
									<h3 class="jp-carousel-caption" itemprop="caption description"></h3>
								</div>

								<div class="jp-carousel-photo-description"></div>
							</div>
							<ul class="jp-carousel-image-exif" style="display: none;"></ul>
							<a class="jp-carousel-image-download" href="#" target="_blank" style="display: none;">
								<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
									<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18">
										<path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/>
									</mask>
									<g mask="url(#mask0)">
										<rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/>
									</g>
								</svg>
								<span class="jp-carousel-download-text"></span>
							</a>
							<div class="jp-carousel-image-map" style="display: none;"></div>
						</div>
					</div>
				</div>
			</div>
		</div>

		</div>
		
	<script type="text/javascript">
		(function () {
			var wpcom_reblog = {
				source: 'toolbar',

				toggle_reblog_box_flair: function (obj_id, post_id) {

					// Go to site selector. This will redirect to their blog if they only have one.
					const postEndpoint = `https://wordpress.com/post`;

					// Ideally we would use the permalink here, but fortunately this will be replaced with the 
					// post permalink in the editor.
					const originalURL = `${ document.location.href }?page_id=${ post_id }`; 
					
					const url =
						postEndpoint +
						'?url=' +
						encodeURIComponent( originalURL ) +
						'&is_post_share=true' +
						'&v=5';

					const redirect = function () {
						if (
							! window.open( url, '_blank' )
						) {
							location.href = url;
						}
					};

					if ( /Firefox/.test( navigator.userAgent ) ) {
						setTimeout( redirect, 0 );
					} else {
						redirect();
					}
				},
			};

			window.wpcom_reblog = wpcom_reblog;
		})();
	</script>
<script id="coblocks-loader-js-extra">
var wpcom_coblocks_js = {"coblocks_masonry_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-masonry.min.js?m=1681832297i","coblocks_lightbox_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-lightbox.min.js?m=1681832297i","jquery_core_js":"/wp-includes/js/jquery/jquery.min.js","jquery_migrate_js":"/wp-includes/js/jquery/jquery-migrate.min.js","masonry_js":"/wp-includes/js/masonry.min.js","imagesloaded_js":"/wp-includes/js/imagesloaded.min.js"};
var coblocksLigthboxData = {"closeLabel":"Close Gallery","leftLabel":"Previous","rightLabel":"Next"};
//# sourceURL=coblocks-loader-js-extra
</script>
<script crossorigin='anonymous' type='text/javascript'  src='/_static/??-eJyNjEGOwjAMAD+0jlVYRDkgnrJKUxfcJnZUJ134PSCB4MCB40gzg/8ZgkohKZgq5FiPLIYjlezD9GBMqoJ/LAG7yrFHloGFC4GFWWN88sUlFjfaD75dn8ugXdQwGa5c07oGjFOOBDMt7hd7toLjS4Kovqf506+cKJFhrh2e6OzvlfiFj76wfiMnkmpfeDZxhsgywaChGgx8vlWHtG+22/Vu067bzXgFtXd0Sw=='></script>
<script id="wp-hooks-js" src="https://s1.wp.com/wp-content/plugins/gutenberg-core/v22.9.0/build/scripts/hooks/index.min.js?m=1775747584i&#038;ver=7496969728ca0f95732d"></script>
<script id="wp-i18n-js" src="https://s1.wp.com/wp-content/plugins/gutenberg-core/v22.9.0/build/scripts/i18n/index.min.js?m=1775747584i&#038;ver=781d11515ad3d91786ec"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="gifting-banner-js-extra">
var gifting_banner = {"dismiss_days_count":"365","checkout_link":"https://wordpress.com/checkout/value_bundle/gift/3306518?cancel_to=/home","more_info_link":"https://wordpress.com/support/gift-a-wordpress-com-subscription/","i18n":{"title":"Enjoy this site?","subtitle":"Gift the author a WordPress.com plan before it expires in 10 days.","button_text":"Gift"}};
//# sourceURL=gifting-banner-js-extra
</script>
<script id="jetpack-carousel-js-extra">
var jetpackSwiperLibraryPath = {"url":"/wp-content/mu-plugins/jetpack-plugin/moon/_inc/blocks/swiper.js"};
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https://devel.co.uk/wp-admin/admin-ajax.php","nonce":"18c21fb6b7","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size \u003Cspan class=\"photo-size\"\u003E{0}\u003Cspan class=\"photo-size-times\"\u003E\u00d7\u003C/span\u003E{1}\u003C/span\u003E","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https://develco.wordpress.com/wp-login.php?redirect_to=https%3A%2F%2Fdevel.co.uk%2F2023%2F09%2F20%2Fits-my-birthday-and-ill-ride-if-i-want-to%2F","blog_id":"61616644","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=61616644&v=wpcom&tz=0&user_id=0&arch_home=1&subd=develco","is_public":"1"};
//# sourceURL=jetpack-carousel-js-extra
</script>
<script crossorigin='anonymous' type='text/javascript'  src='/_static/??-eJxdjEEOwiAURC8knTa2dmU8igGK5FP4nxSI17eL2hiX8zLv4Z2VFa6OK0wUr3JsnrjA06sSe2U0s9sQ/kkXygU/cmqnGlzN2q7HRhJhPIktTKO4wOpNWnHx/H1Bl4j37CPdh3mehtvUX8fwAT7gOzI='></script>
<script data-wp-strategy="defer" defer id="tiled-gallery-js" src="/wp-content/mu-plugins/jetpack-plugin/moon/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js?m=1755006225i&#038;ver=15.8-a.6"></script>
<script crossorigin='anonymous' type='text/javascript'  src='/wp-content/mu-plugins/carousel-wpcom/carousel-wpcom.js?m=1761899756i'></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/","ext":".png","svgUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/","svgExt":".svg","source":{"concatemoji":"/wp-includes/js/wp-emoji-release.min.js?m=1764078722i&ver=7.0-RC2-62212"}}
</script>
<script type="module">
/*! This file is auto-generated */
const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))});
//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js
</script>
		<script type="text/javascript">
			(function() {
				var extend = function(out) {
					out = out || {};

					for (var i = 1; i < arguments.length; i++) {
						if (!arguments[i])
						continue;

						for (var key in arguments[i]) {
						if (arguments[i].hasOwnProperty(key))
							out[key] = arguments[i][key];
						}
					}

					return out;
				};
				extend( window.infiniteScroll.settings.scripts, ["jetpack-mu-wpcom-settings","rlt-proxy","jquery-core","jquery-migrate","jquery","wpcom-actionbar-placeholder","grofiles-cards","wpgroho","the-neverending-homepage","coblocks-loader","hexa-navigation","hexa-menus","hexa-skip-link-focus-fix","wp-hooks","wp-i18n","gifting-banner","jetpack-carousel","tiled-gallery","carousel-wpcom"] );
				extend( window.infiniteScroll.settings.styles, ["the-neverending-homepage","coblocks-frontend","wpcom-core-compat-playlist-styles","wpcom-bbpress2-staff-css","quadra-parent-style","hexa-style","genericons","hexa-wpcom","reblogging","geo-location-flair","a8c-global-print","h4-global","wp-emoji-styles","wp-block-library","classic-theme-styles","wp-block-styles-placeholder","wp-global-styles-placeholder","quadra-pt-serif","hexa-source-sans-pro","jetpack-global-styles-frontend-style","wp-block-image","wp-block-paragraph","global-styles","gifting-banner","jetpack-swiper-library","jetpack-carousel","tiled-gallery","core-block-supports-duotone"] );
			})();
		</script>
				<span id="infinite-aria" aria-live="polite"></span>
		<script src="//stats.wp.com/w.js?68" defer></script> <script type="text/javascript">
_tkq = window._tkq || [];
_stq = window._stq || [];
_tkq.push(['storeContext', {'blog_id':'61616644','blog_tz':'0','user_lang':'en','blog_lang':'en','user_id':'0'}]);
		// Prevent sending pageview tracking from WP-Admin pages.
		_stq.push(['view', {'blog':'61616644','v':'wpcom','tz':'0','user_id':'0','arch_home':'1','subd':'develco'}]);
		_stq.push(['extra', {'crypt':'UE5tW3cvZGRzV0NDbnFjYkQmMmVCJWRSa1N0dlssWTUxWTFNeE1jdiVsTDR8MzFjWjYrX04mVGpOS00teXN6ZTdta19oXV0mSmFGayxRc0lHNzhaMjk3M2FuMTVdL2JTaWFsL0prVGdieGhOZWpxP0psOFd+cldIcStkTTI2S0lRWjQwSj8wTXQybjZfaExMZTVrUGNaTiVxQjJvLmImNG1OcEM5ViV3d0V4Jjhyb3NyfGsyd349NDhRYTNGfDB0dDVtaGwsUWpTcUYm'}]);
_stq.push([ 'clickTrackerInit', '61616644', '0' ]);
</script>
<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="Etc/GMT-0" data-custom-props="{&quot;enq_jquery&quot;:&quot;1&quot;,&quot;logged_in&quot;:&quot;0&quot;,&quot;wptheme&quot;:&quot;pub\/quadra&quot;,&quot;wptheme_is_block&quot;:&quot;0&quot;}"  >
		<script defer src="/wp-content/js/bilmur.min.js?i=17&amp;m=202617"></script> 	
</body>
</html>