PageSourceSearch

https://andy.xyz/speaking/

html andy.xyz collected 2026-10-01 12:36:47 UTC 134,607 bytes, 1,684 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<link rel="profile" href="http://gmpg.org/xfn/11">
7<link rel="pingback" href="https://andy.xyz/xmlrpc.php">
8
9<title>Speaking &#8211; Andy.xyz</title>
10<script type="text/javascript">
11  WebFontConfig = {"google":{"families":["Noto+Sans:r,i,b,bi:latin,latin-ext","Space+Mono:r:latin,latin-ext"]},"api_url":"https:\/\/fonts-api.wp.com\/css"};
12  (function() {
13    var wf = document.createElement('script');
14    wf.src = '/wp-content/plugins/custom-fonts/js/webfont.js';
15    wf.type = 'text/javascript';
16    wf.async = 'true';
17    var s = document.getElementsByTagName('script')[0];
18    s.parentNode.insertBefore(wf, s);
19	})();
20</script>
20<style id="jetpack-custom-fonts-css">.wf-active body, .wf-active button, .wf-active input, .wf-active select, .wf-active textarea{font-family:"Noto Sans",sans-serif}.wf-active .hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post-title{font-family:"Noto Sans",sans-serif}.wf-active .widget_authors > ul > li > a{font-family:"Noto Sans",sans-serif}.wf-active h1, .wf-active h2:not(site-description):not(.author-title), .wf-active h3, .wf-active h4, .wf-active h5, .wf-active h6{font-family:"Space Mono",monospace;font-weight:400;font-style:normal}.wf-active h1{font-style:normal;font-weight:400}.wf-active h2:not(site-description):not(.author-title){font-style:normal;font-weight:400}.wf-active h3{font-style:normal;font-weight:400}.wf-active h4{font-style:normal;font-weight:400}.wf-active h5{font-style:normal;font-weight:400}.wf-active h6{font-style:normal;font-weight:400}.wf-active .post-navigation .post-title{font-family:"Space Mono",monospace;font-weight:400;font-style:normal}.wf-active .widget-title, .wf-active .widgettitle{font-style:normal;font-weight:400}.wf-active .site-title{font-style:normal;font-weight:400}.wf-active .site-description{font-style:normal;font-weight:400}.wf-active .featured-content .entry-title{font-style:normal;font-weight:400}.wf-active .page-title{font-style:normal;font-weight:400}.wf-active .archive .hentry .entry-title, .wf-active .blog .hentry .entry-title, .wf-active .search .hentry .entry-title{font-style:normal;font-weight:400}.wf-active .page .entry-title, .wf-active .single .entry-title{font-style:normal;font-weight:400}.wf-active .author-info .author-name{font-style:normal;font-weight:400}.wf-active .comment-reply-title, .wf-active .comments-title, .wf-active .no-comments{font-style:normal;font-weight:400}.wf-active .no-comments{font-family:"Space Mono",monospace;font-weight:400;font-style:normal}.wf-active .comment-author{font-family:"Space Mono",monospace;font-weight:400;font-style:normal}.wf-active .hentry div#jp-relatedposts h3.jp-relatedposts-headline{font-family:"Space Mono",monospace;font-weight:400;font-style:normal}.wf-active .widget-grofile h4{font-style:normal;font-weight:400}@media screen and (min-width: 768px){.wf-active .site-title{font-style:normal;font-weight:400}}.wf-active .aboutme_widget #am_name{font-style:normal;font-weight:400}.wf-active .aboutme_widget #am_headline{font-style:normal;font-weight:400}</style>
21<meta name='robots' content='max-image-preview:large' />
22
23<!-- Async WordPress.com Remote Login -->
24<script id="wpcom_remote_login_js">
25var wpcom_remote_login_extra_auth = '';
26function wpcom_remote_login_remove_dom_node_id( element_id ) {
27	var dom_node = document.getElementById( element_id );
28	if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
29}
30function wpcom_remote_login_remove_dom_node_classes( class_name ) {
31	var dom_nodes = document.querySelectorAll( '.' + class_name );
32	for ( var i = 0; i < dom_nodes.length; i++ ) {
33		dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
34	}
35}
36function wpcom_remote_login_final_cleanup() {
37	wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
38	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
39	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
40	wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
41	wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
42	wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
43}
44
45// Watch for messages back from the remote login
46window.addEventListener( "message", function( e ) {
47	if ( e.origin === "https://r-login.wordpress.com" ) {
48		var data = {};
49		try {
50			data = JSON.parse( e.data );
51		} catch( e ) {
52			wpcom_remote_login_final_cleanup();
53			return;
54		}
55
56		if ( data.msg === 'LOGIN' ) {
57			// Clean up the login check iframe
58			wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
59
60			var id_regex = new RegExp( /^[0-9]+$/ );
61			var token_regex = new RegExp( /^.*|.*|.*$/ );
62			if (
63				token_regex.test( data.token )
64				&& id_regex.test( data.wpcomid )
65			) {
66				// We have everything we need to ask for a login
67				var script = document.createElement( "script" );
68				script.setAttribute( "id", "wpcom_remote_login_validate" );
69				script.src = '/remote-login.php?wpcom_remote_login=validate'
70					+ '&wpcomid=' + data.wpcomid
71					+ '&token=' + encodeURIComponent( data.token )
72					+ '&host=' + window.location.protocol
73					+ '//' + window.location.hostname
74					+ '&postid=7850'
75					+ '&is_singular=';
76				document.body.appendChild( script );
77			}
78
79			return;
80		}
81
82		// Safari ITP, not logged in, so redirect
83		if ( data.msg === 'LOGIN-REDIRECT' ) {
84			window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
85			return;
86		}
87
88		// Safari ITP, storage access failed, remove the request
89		if ( data.msg === 'LOGIN-REMOVE' ) {
90			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; } }';
91			var style_zap = document.createElement( 'style' );
92			style_zap.type = 'text/css';
93			style_zap.appendChild( document.createTextNode( css_zap ) );
94			document.body.appendChild( style_zap );
95
96			var e = document.getElementById( 'wpcom_request_access_iframe' );
97			e.parentNode.removeChild( e );
98
99			document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';
100
101			return;
102		}
103
104		// Safari ITP
105		if ( data.msg === 'REQUEST_ACCESS' ) {
106			console.log( 'request access: safari' );
107
108			// Check ITP iframe enable/disable knob
109			if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
110				return;
111			}
112
113			// If we are in a "private window" there is no ITP.
114			var private_window = false;
115			try {
116				var opendb = window.openDatabase( null, null, null, null );
117			} catch( e ) {
118				private_window = true;
119			}
120
121			if ( private_window ) {
122				console.log( 'private window' );
123				return;
124			}
125
126			var iframe = document.createElement( 'iframe' );
127			iframe.id = 'wpcom_request_access_iframe';
128			iframe.setAttribute( 'scrolling', 'no' );
129			iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
130			iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );
131
132			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; } ';
133
134			var style = document.createElement( 'style' );
135			style.type = 'text/css';
136			style.id = 'wpcom_request_access_styles';
137			style.appendChild( document.createTextNode( css ) );
138			document.body.appendChild( style );
139
140			document.body.appendChild( iframe );
141		}
142
143		if ( data.msg === 'DONE' ) {
144			wpcom_remote_login_final_cleanup();
145		}
146	}
147}, false );
148
149// Inject the remote login iframe after the page has had a chance to load
150// more critical resources
151window.addEventListener( "DOMContentLoaded", function( e ) {
152	var iframe = document.createElement( "iframe" );
153	iframe.style.display = "none";
154	iframe.setAttribute( "scrolling", "no" );
155	iframe.setAttribute( "id", "wpcom_remote_login_key" );
156	iframe.src = "https://r-login.wordpress.com/remote-login.php"
157		+ "?wpcom_remote_login=key"
158		+ "&origin=aHR0cHM6Ly9hbmR5Lnh5eg%3D%3D"
159		+ "&wpcomid=63451150"
160		+ "&time=" + Math.floor( Date.now() / 1000 );
161	document.body.appendChild( iframe );
162}, false );
163</script>
163
164<link rel='dns-prefetch' href='//s2.wp.com' />
165<link rel='dns-prefetch' href='//fonts-api.wp.com' />
166<link rel='dns-prefetch' href='//s1.wp.com' />
167<link rel='dns-prefetch' href='//s0.wp.com' />
168<link rel="alternate" type="application/rss+xml" title="Andy.xyz &raquo; Feed" href="https://andy.xyz/feed/" />
169<link rel="alternate" type="application/rss+xml" title="Andy.xyz &raquo; Comments Feed" href="https://andy.xyz/comments/feed/" />
170	
170<script type="text/javascript">
171		/* <![CDATA[ */
172		function addLoadEvent(func) {
173			var oldonload = window.onload;
174			if (typeof window.onload != 'function') {
175				window.onload = func;
176			} else {
177				window.onload = function () {
178					oldonload();
179					func();
180				}
181			}
182		}
183		/* ]]> */
184	</script>
184
185	<style id="wp-img-auto-sizes-contain-inline-css">
186img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
187/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
188</style>
189<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='/wp-content/mu-plugins/likes/jetpack-likes.css?m=1743883414i&cssminify=yes' type='text/css' media='all' />
190<style id="wp-emoji-styles-inline-css">
191
192	img.wp-smiley, img.emoji {
193		display: inline !important;
194		border: none !important;
195		box-shadow: none !important;
196		height: 1em !important;
197		width: 1em !important;
198		margin: 0 0.07em !important;
199		vertical-align: -0.1em !important;
200		background: none !important;
201		padding: 0 !important;
202	}
203/*# sourceURL=wp-emoji-styles-inline-css */
204</style>
205<style id="wp-block-library-inline-css">
206: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;
206--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],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[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}}
207
208/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/common.min.css */
209</style>
210<style id="wp-block-social-links-inline-css">
211.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}
211:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}
211:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000}
212/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/social-links/style.min.css */
213</style>
214<style id="wp-block-heading-inline-css">
215h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:var(--wp--style--block-background-padding,1.25em 2.375em)}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
216/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/heading/style.min.css */
217</style>
218<style id="wp-block-list-inline-css">
219ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:var(--wp--style--block-background-padding,1.25em 2.375em)}
220/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/list/style.min.css */
221</style>
222<style id="wp-block-paragraph-inline-css">
223.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:var(--wp--style--block-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}
224/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/paragraph/style.min.css */
225</style>
226<style id="wp-block-library-inline-css-extra">
227.has-text-align-justify {
228	text-align:justify;
229}
230.has-text-align-justify{text-align:justify;}
231/*# sourceURL=wp-block-library-inline-css */
232</style>
233
234<style id="classic-theme-styles-inline-css">
235.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;
235padding: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}.wp-block-tab:not(.has-text-color){color:inherit!important}.wp-block-tab:not(.has-background){background-color:inherit!important}.wp-block-tab:focus,.wp-block-tab:hover{text-decoration:none}.wp-block-tab:focus-visible{outline:auto;outline-offset:0}
236/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/classic.min.css */
237</style>
238
239<style id="coblocks-inline-format-inline-css">
240.uppercase{text-transform:uppercase}
241/*# sourceURL=coblocks-inline-format-inline-css */
242</style>
243<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
244<style id="global-styles-inline-css">
245: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: #222222;--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--color--dark-gray: #555555;--wp--preset--color--medium-gray: #777777;--wp--preset--color--light-gray: #dddddd;--wp--preset--color--red: #d11415;--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%);
245--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-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-color{color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-red-color{color: var(--wp--preset--color--red) !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-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-background-color{background-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-red-background-color{background-color: var(--wp--preset--color--red) !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-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-medium-gray-border-color{border-color: var(--wp--preset--color--medium-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-red-border-color{border-color: var(--wp--preset--color--red) !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;}
245.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;}
246/*# sourceURL=global-styles-inline-css */
247</style>
248
249<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/_static/??-eJxtjEEOQDAQRS+Ez4KuxFGkxoSiozFtXB+JhYXdf8l7H2fIaZfIEhFn9qwIaQBZsceIYdtp1YJUM3xEn/KwpcmJYuEYLK0vQ5Ogd0KYWPhwd6D/8/nsfFsZUzWlqct6uQAlMTLP&cssminify=yes' type='text/css' media='all' />
250<link rel='stylesheet' id='canard-lato-inconsolata-css' href='https://fonts-api.wp.com/css?family=Lato%3A400%2C700%2C400italic%2C700italic%7CInconsolata%3A400%2C700&#038;subset=latin%2Clatin-ext&#038;ver=7.1.1-alpha-63587' media='all' />
251<link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='/_static/??-eJx9i0EKAjEMAD9kDWqheBDf0o2xVtKkNC3L/t4VL4qwtxmYgbk6VOkkHfqDChnUMQFGie0G1hemPZrtYLPLgp/WzRW1/B1luMojZTFoNLGmFROs1ZduTYnUsWLsWeVH3J1jbu/1Wi6H4H04nk/BP18qEE9v&cssminify=yes' type='text/css' media='all' />
252<style id="canard-style-inline-css">
253.byline, .group-blog .entry-summary + .entry-meta > .posted-on:before { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; }
254/*# sourceURL=canard-style-inline-css */
255</style>
256<link crossorigin='anonymous' rel='stylesheet' id='print-css-17-1' href='/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' />
257<style id="jetpack-global-styles-frontend-style-inline-css">
258: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;}
259/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */
260</style>
261<link crossorigin='anonymous' rel='stylesheet' id='all-css-20-1' href='/_static/??-eJyNjcsKAjEMRX/ImhmUURfip0inLW3GNCmmQfx7H7gRN+7ugcs5cGsuCPfEHaq5RpaRFZbUmw+XD4MaQ5VolBS0+GuKPsb7eyLndVBdwd+iM3KA2ZAiqAT05Eiy6Bf8KHtJ9RkvW8gks6fX4VSP426/mQ7TMA7LA38FSqA=&cssminify=yes' type='text/css' media='all' />
262<script id="wpcom-actionbar-placeholder-js-extra">
263var actionbardata = {"siteID":"63451150","postID":"7850","siteURL":"https://andy.xyz","xhrURL":"https://andy.xyz/wp-admin/admin-ajax.php","nonce":"8d3428c4ce","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&amp;ver=20211021","shortlink":"https://wp.me/P4iexE-22C","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":"Copied to clipboard."}};
264//# sourceURL=wpcom-actionbar-placeholder-js-extra
265</script>
vendor: 1 bytes, line 265
265
266<script id="jetpack-mu-wpcom-settings-js-before">
267var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s1.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/sun/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"};
268//# sourceURL=jetpack-mu-wpcom-settings-js-before
269</script>
vendor: 1 bytes, line 269
269
270<script crossorigin='anonymous' type='text/javascript'  src='/_static/??-eJzTLy/QTc7PK0nNK9HPKtYvyinRLSjKr6jUyyrW0QfKZeYl55SmpBaDJLMKS1OLKqGUXm5mHkFFurmZ6UWJJalQxfa5tobmRgamxgZmFpZZACbyLJI='></script>
vendor: 1 bytes, line 270
270
271<script id="rlt-proxy-js-after">
272	rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
273//# sourceURL=rlt-proxy-js-after
274</script>
274
275<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://ajwilliams45.wordpress.com/xmlrpc.php?rsd" />
276<meta name="generator" content="WordPress.com" />
277<link rel="canonical" href="https://andy.xyz/speaking/" />
278<link rel='shortlink' href='https://wp.me/P4iexE-22C' />
279<link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&amp;url=https%3A%2F%2Fandy.xyz%2Fspeaking%2F&amp;for=wpcom-auto-discovery" /><link rel="alternate" type="application/xml+oembed" href="https://public-api.wordpress.com/oembed/?format=xml&amp;url=https%3A%2F%2Fandy.xyz%2Fspeaking%2F&amp;for=wpcom-auto-discovery" />
280<!-- Jetpack Open Graph Tags -->
281<meta property="og:type" content="article" />
282<meta property="og:title" content="Speaking" />
283<meta property="og:url" content="https://andy.xyz/speaking/" />
284<meta property="og:description" content="I travel to events and speak on various topics, most frequently is building graphical apps with Go and Fyne, but also tech leadership and startup culture. Here is a selection of recent presentation…" />
285<meta property="article:published_time" content="2024-02-12T22:29:40+00:00" />
286<meta property="article:modified_time" content="2026-08-11T15:22:16+00:00" />
287<meta property="og:site_name" content="Andy.xyz" />
288<meta property="og:image" content="https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=200&#038;ts=1790244657" />
289<meta property="og:image:width" content="200" />
290<meta property="og:image:height" content="200" />
291<meta property="og:image:alt" content="" />
292<meta property="og:locale" content="en_US" />
293<meta property="article:publisher" content="https://www.facebook.com/WordPresscom" />
294<meta name="twitter:creator" content="@andydotxyz" />
295<meta name="twitter:site" content="@andydotxyz" />
296<meta name="twitter:text:title" content="Speaking" />
297<meta name="twitter:image" content="https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=240" />
298<meta name="twitter:card" content="summary" />
299
300<!-- End Jetpack Open Graph Tags -->
301<link rel="shortcut icon" type="image/x-icon" href="https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=32" sizes="16x16" />
302<link rel="icon" type="image/x-icon" href="https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=32" sizes="16x16" />
303<link rel="apple-touch-icon" href="https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=114" />
304<link rel='openid.server' href='https://andy.xyz/?openidserver=1' />
305<link rel='openid.delegate' href='https://andy.xyz/' />
306<link rel="search" type="application/opensearchdescription+xml" href="https://andy.xyz/osd.xml" title="Andy.xyz" />
307<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
308<meta name="description" content="I travel to events and speak on various topics, most frequently is building graphical apps with Go and Fyne, but also tech leadership and startup culture. Here is a selection of recent presentations, most of which have recordings available online. 2026 GoLab - Creating a full desktop environment with Go! ScotSoft - Evening Address Fyne&hellip;" />
309<style type="text/css" id="custom-colors-css">	#comments #respond p.form-submit input#comment-submit,
310	.widget_flickr #flickr_badge_uber_wrapper td a:last-child {
311		background: #222 !important;
312		border-color: #222 !important;
313	}
314	#comments #respond .form-submit input#comment-submit:active,
315	#comments #respond .form-submit input#comment-submit:focus,
316	#comments #respond .form-submit input#comment-submit:hover,
317	.widget_flickr #flickr_badge_uber_wrapper td a:last-child:active,
318	.widget_flickr #flickr_badge_uber_wrapper td a:last-child:focus,
319	.widget_flickr #flickr_badge_uber_wrapper td a:last-child:hover {
320		background: #fff !important;
321		color: #222 !important;
322	}
323	@media screen and (min-width: 960px) {
324		.entry-hero .entry-meta,
325		.entry-hero .entry-meta a {
326			color: #fff !important;
327		}
328	}
329abbr,
330		acronym { border-bottom-color: #222222;}
331body,
332		button,
333		input,
334		select,
335		textarea,
336		.menu-toggle,
337		.main-navigation a,
338		.post-navigation a,
339		.sidebar-toggle,
340		.widget_tag_cloud a:before,
341		.search-toggle,
342		.site-title a:active,
343		.site-title a:focus,
344		.site-title a:hover,
345		.content-area .entry-meta a:active,
346		.content-area .entry-meta a:focus,
347		.content-area .entry-meta a:hover,
348		.entry-footer a:active,
349		.entry-footer a:focus,
350		.entry-footer a:hover,
351		.page-links a,
352		.comment-list .comment-reply-title small a:active,
353		.comment-list .comment-reply-title small a:focus,
354		.comment-list .comment-reply-title small a:hover,
355		.comment-metadata a:active,
356		.comment-metadata a:focus,
357		.comment-metadata a:hover,
358		.comment-reply-link:active,
359		.comment-reply-link:focus,
360		.comment-reply-link:hover,
361		.widget_goodreads div[class^="gr_custom_title"] a:active,
362		.widget_goodreads div[class^="gr_custom_title"] a:focus,
363		.widget_goodreads div[class^="gr_custom_title"] a:hover,
364		.widget_goodreads div[class^="gr_custom_container"] div[class^="gr_custom_author"] a:active,
365		.widget_goodreads div[class^="gr_custom_container"] div[class^="gr_custom_author"] a:focus,
366		.widget_goodreads div[class^="gr_custom_container"] div[class^="gr_custom_author"] a:hover,
367		#comments #respond .comment-form-fields p.comment-form-posting-as,
368		#comments #respond .comment-form-fields p.comment-form-log-out,
369		#comments #respond #comment-form-identity #comment-form-nascar p,
370		#comments #respond #comment-form-load-service p,
371		#comments #respond #comment-form-comment textarea,
372		#comments #comment-form-share-text-padder textarea,
373		#comments #respond .comment-form-fields label,
374		#comments #respond .comment-form-fields label span.required,
375		#comments #respond .comment-form-fields label span.nopublish,
376		#comments #respond .comment-form-fields div.comment-form-input input,
377		#comments #respond .comment-form-service a:active,
378		#comments #respond .comment-form-service a:focus,
379		#comments #respond .comment-form-service a:hover,
380		.widget_authors > ul > li > a,
381		.wp_widget_tag_cloud a:before { color: #222222;}
382body,
383		button:active,
384		input[type="button"]:active,
385		input[type="reset"]:active,
386		input[type="submit"]:active,
387		button:focus,
388		input[type="button"]:focus,
389		input[type="reset"]:focus,
390		input[type="submit"]:focus,
391		button:hover,
392		input[type="button"]:hover,
393		input[type="reset"]:hover,
394		input[type="submit"]:hover,
395		input[type="text"],
396		input[type="email"],
397		input[type="url"],
398		input[type="password"],
399		input[type="search"],
400		textarea,
401		.search-form:before,
402		.menu-toggle,
403		.dropdown-toggle,
404		.main-navigation > div > ul,
405		.comment-navigation a,
406		.posts-navigation a,
407		.sidebar-toggle,
408		.page-links a,
409		.post-link .genericon,
410		#infinite-handle span button,
411		#infinite-handle span button:active,
412		#infinite-handle span button:focus,
413		#infinite-handle span button:hover,
414		.main-navigation.toggled > div,
415		.main-navigation > div:before,
416		.main-navigation ul ul,
417		.main-navigation ul ul li,
418		#comments #respond #comment-form-comment,
419		#comments #comment-form-share-text-padder,
420		#comments #respond .comment-form-fields div.comment-form-input,
421		#comments .comment #respond #comment-form-comment,
422		#comments .comment #comment-form-share-text-padder,
423		#comments .comment #respond .comment-form-fields div.comment-form-input,
424		.widget_akismet_widget .a-stats a:active,
425		.widget_akismet_widget .a-stats a:focus,
426		.widget_akismet_widget .a-stats a:hover { background-color: #ffffff;}
427mark,
428		ins,
429		button,
430		input[type="button"],
431		input[type="reset"],
432		input[type="submit"],
433		.comment-navigation a:active,
434		.comment-navigation a:focus,
435		.comment-navigation a:hover,
436		.posts-navigation a:active,
437		.posts-navigation a:focus,
438		.posts-navigation a:hover,
439		.sticky-post,
440		#infinite-handle span button:active,
441		#infinite-handle span button:focus,
442		#infinite-handle span button:hover,
443		.widget_akismet_widget .a-stats a { color: #ffffff;}
444blockquote { color: #5E5E5E;}
445caption,
446		.footer-navigation a,
447		.post-navigation .meta-nav,
448		.widget_recent_entries .post-date,
449		.widget_rss cite,
450		.widget_rss .rss-date,
451		.site-description,
452		.entry-hero .entry-meta a,
453		.content-area .entry-meta,
454		.content-area .entry-meta a,
455		.entry-footer,
456		.entry-footer a,
457		.page-links,
458		.page-links > .page-links-title,
459		.author-info .author-title,
460		.comment-list .comment-reply-title small,
461		.comment-metadata,
462		.comment-reply-link,
463		.comment-metadata a,
464		.comment-list .comment-reply-title small a,
465		.wp-caption,
466		.gallery-caption,
467		.site-content .jetpack-recipe .jetpack-recipe-meta,
468		.hentry div#jp-relatedposts div.jp-relatedposts-items .jp-relatedposts-post-context,
469		.widget_goodreads div[class^="gr_custom_author"] { color: #777777;}
470::input-placeholder { color: #777777;}
471::-webkit-input-placeholder { color: #777777;}
472:-moz-placeholder { color: #777777;}
473::-moz-placeholder { color: #777777;}
474::-ms-input-placeholder { color: #777777;}
475hr,
476		.widget-area:before,
477		.comment-list:before,
478		.comment-navigation + .comment-respond:before,
479		div#jp-relatedposts:before { background-color: #DDDDDD;}
480input[type="text"],
481		input[type="email"],
482		input[type="url"],
483		input[type="password"],
484		input[type="search"],
485		textarea,
486		.search-form .search-submit,
487		.search-form .search-submit:active,
488		.search-form .search-submit:focus,
489		.search-form .search-submit:hover,
490		.menu-toggle,
491		.menu-toggle:active,
492		.menu-toggle:focus,
493		.menu-toggle:hover,
494		.dropdown-toggle,
495		.dropdown-toggle:active,
496		.dropdown-toggle:focus,
497		.dropdown-toggle:hover,
498		.main-navigation > div > ul,
499		.sidebar-toggle,
500		.sidebar-toggle:active,
501		.sidebar-toggle:focus,
502		.sidebar-toggle:hover,
503		.author-info,
504		.search-toggle,
505		.search-toggle:active,
506		.search-toggle:focus,
507		.search-toggle:hover,
508		.page-links a,
509		.page-links > span,
510		.page-links a:active,
511		.page-links a:focus,
512		.page-links a:hover,
513		.main-navigation ul ul,
514		#comments #respond #comment-form-comment,
515		#comments #comment-form-share-text-padder,
516		#comments #respond .comment-form-fields div.comment-form-input,
517		.widget.top_rated .pd_top_rated_holder_posts > p,
518		.widget.top_rated ul { border-color: #DDDDDD;}
519th,
520		td,
521		.footer-widget-inner .widget,
522		.site-header,
523		.featured-content,
524		.comment-list { border-bottom-color: #DDDDDD;}
525.rtl .site-main,
526		.widget-area { border-left-color: #DDDDDD;}
527.site-main,
528		.rtl .widget-area { border-right-color: #DDDDDD;}
529table,
530		.footer-navigation,
531		.comment-navigation + .comment-respond,
532		.footer-widget,
533		.comments-area,
534		div#jp-relatedposts,
535		.search-navigation,
536		.header-image { border-top-color: #DDDDDD;}
537blockquote:before { color: #DDDDDD;}
538a:focus,
539		.bypostauthor .fn,
540		div#jp-relatedposts a:focus { outline-color: #DDDDDD;}
541pre,
542		thead,
543		.search-form.hover:before,
544		.menu-toggle:active,
545		.menu-toggle:focus,
546		.menu-toggle:hover,
547		.dropdown-toggle:active,
548		.dropdown-toggle:focus,
549		.dropdown-toggle:hover,
550		.post-navigation a:active,
551		.post-navigation a:focus,
552		.post-navigation a:hover,
553		.sidebar-toggle:active,
554		.sidebar-toggle:focus,
555		.sidebar-toggle:hover,
556		.search-toggle:active,
557		.search-toggle:focus,
558		.search-toggle:hover,
559		.search-form.hover:before,
560		.page-links a,
561		.page-links > span,
562		.page-links a:active,
563		.page-links a:focus,
564		.page-links a:hover { background-color: #EFEFEF;}
565.comment-navigation a,
566		.posts-navigation a,
567		.post-navigation a,
568		.gallery,
569		#infinite-handle span button { border-color: #EFEFEF;}
570.main-navigation > div > ul > li:last-child,
571		.main-navigation ul,
572		.widget_archive ul,
573		.widget_categories ul,
574		.widget_links ul,
575		.widget_meta ul,
576		.widget_nav_menu ul,
577		.widget_pages ul,
578		.widget_recent_comments ul,
579		.widget_recent_entries ul,
580		.widget_rss ul,
581		.page-header,
582		.entry-footer > span:last-of-type,
583		.comment-list .comment:not(:last-of-type),
584		.comment-list .depth-1:not(:last-of-type),
585		.sd-like.jetpack-likes-widget-wrapper,
586		.sd-rating,
587		.sd-sharing-enabled:not(#jp-post-flair),
588		.widget_goodreads div[class^="gr_custom_each_container"]:last-of-type,
589		.widget_rss_links ul,
590		.widget_rss_links p:last-of-type,
591		.hentry .wpcom-reblog-snapshot .reblogger-note,
592		.widget_authors ul,
593		.widget_jp_blogs_i_follow ol,
594		.widget_blog-stats ul,
595		.widget_top-clicks ul,
596		.widget_top-posts ul,
597		.widget.top_rated ul,
598		.widget_upcoming_events_widget ul,
599		.widget_recent_comments tr,
600		.widget_recent_comments td { border-bottom-color: #EFEFEF;}
601.main-navigation .nav-menu > li + li,
602		.footer-navigation li + li { border-left-color: #EFEFEF;}
603.rtl .main-navigation .nav-menu > li + li,
604		.rtl .footer-navigation li + li { border-right-color: #EFEFEF;}
605.main-navigation li,
606		.posts-navigation,
607		.widget_archive li,
608		.widget_categories li,
609		.widget_links li,
610		.widget_meta li,
611		.widget_nav_menu li,
612		.widget_pages li,
613		.widget_recent_comments li,
614		.widget_recent_entries li,
615		.widget_rss li,
616		.archive .hentry,
617		.blog .hentry,
618		.search .hentry,
619		.entry-footer .byline,
620		.entry-footer .cat-links,
621		.entry-footer .comments-link,
622		.entry-footer .edit-link,
623		.entry-footer .posted-on,
624		.entry-footer .tags-links,
625		.page-links,
626		.comment-list .comment .comment:first-of-type,
627		.comment-list .comment-respond,
628		#infinite-handle,
629		.infinite-loader,
630		.archive .infinite-wrap .hentry:first-of-type,
631		.blog .infinite-wrap .hentry:first-of-type,
632		.search .infinite-wrap .hentry:first-of-type,
633		.widget_goodreads div[class^="gr_custom_each_container"],
634		.widget_rss_links li,
635		.widget_rss_links p,
636		.widget_authors li,
637		.widget_jp_blogs_i_follow li,
638		.widgets-list-layout li,
639		.widget_top-clicks li,
640		.widget_top-posts li,
641		.widget.top_rated li,
642		.widget_upcoming_events_widget li,
643		.widget_recent_comments table { border-top-color: #EFEFEF;}
644.toggled .menu-toggle,
645		.main-navigation.toggled > div,
646		.social-navigation,
647		.bottom-navigation,
648		.sidebar-toggle.toggled,
649		.site-top,
650		.toggled .search-toggle,
651		.search-header .search-form,
652		.site-social,
653		.site-footer,
654		#infinite-footer { background-color: #292c37;}
655.toggled .menu-toggle,
656		.sidebar-toggle.toggled,
657		.toggled .search-toggle,
658		.wp-block-button .wp-block-button__link:active,
659		.wp-block-button .wp-block-button__link:focus,
660		.wp-block-button .wp-block-button__link:hover { border-color: #292c37;}
661.main-navigation.toggled > div:before,
662		.search-header.toggled .search-toggle:after { border-bottom-color: #292c37;}
663.toggled .menu-toggle:active,
664		.toggled .menu-toggle:focus,
665		.toggled .menu-toggle:hover,
666		.sidebar-toggle.toggled:active,
667		.sidebar-toggle.toggled:focus,
668		.sidebar-toggle.toggled:hover,
669		.toggled .search-toggle:active,
670		.toggled .search-toggle:focus,
671		.toggled .search-toggle:hover { background-color: #535973;}
672.toggled .menu-toggle:active,
673		.toggled .menu-toggle:focus,
674		.toggled .menu-toggle:hover,
675		.sidebar-toggle.toggled:active,
676		.sidebar-toggle.toggled:focus,
677		.sidebar-toggle.toggled:hover,
678		.toggled .search-toggle:active,
679		.toggled .search-toggle:focus,
680		.toggled .search-toggle:hover { border-color: #535973;}
681.social-navigation,
682		.bottom-navigation,
683		.site-social { border-bottom-color: #535973;}
684.secondary-navigation li + li { border-left-color: #535973;}
685.rtl .secondary-navigation li + li { border-right-color: #535973;}
686.site-info .sep,
687		.wp-block-button .wp-block-button__link:active,
688		.wp-block-button .wp-block-button__link:focus,
689		.wp-block-button .wp-block-button__link:hover,
690		.is-style-outline>.wp-block-button__link:not(.has-text-color):active,
691		.is-style-outline>.wp-block-button__link:not(.has-text-color):focus,
692		.is-style-outline>.wp-block-button__link:not(.has-text-color):hover { color: #535973;}
693.social-navigation a:focus,
694		.secondary-navigation a:focus,
695		.bottom-navigation a:focus,
696		.site-info a:focus { outline-color: #646B8B;}
697.social-navigation a,
698		.secondary-navigation a,
699		.bottom-navigation a,
700		.site-top,
701		.site-info,
702		.site-info a,
703		#infinite-footer,
704		#infinite-footer .blog-info a { color: #D0D5DB;}
705.toggled .menu-toggle,
706		.social-navigation a:active,
707		.social-navigation a:focus,
708		.social-navigation a:hover,
709		.secondary-navigation a:active,
710		.secondary-navigation a:focus,
711		.secondary-navigation a:hover,
712		.bottom-navigation a:active,
713		.bottom-navigation a:focus,
714		.bottom-navigation a:hover,
715		.sidebar-toggle.toggled,
716		.toggled .search-toggle,
717		.site-info a:active,
718		.site-info a:focus,
719		.site-info a:hover,
720		#infinite-footer .blog-credits a:active,
721		#infinite-footer .blog-credits a:focus,
722		#infinite-footer .blog-credits a:hover,
723		#infinite-footer .blog-info a:active,
724		#infinite-footer .blog-info a:focus,
725		#infinite-footer .blog-info a:hover { color: #FFFFFF;}
726mark,
727		ins,
728		button,
729		input[type="button"],
730		input[type="reset"],
731		input[type="submit"],
732		.comment-navigation a:active,
733		.comment-navigation a:focus,
734		.comment-navigation a:hover,
735		.posts-navigation a:active,
736		.posts-navigation a:focus,
737		.posts-navigation a:hover,
738		.featured-content .hentry:not(.has-post-thumbnail):hover .post-thumbnail,
739		.featured-content .hentry:not(.has-post-thumbnail) .post-thumbnail:focus,
740		.sticky-post,
741		.post-link,
742		#infinite-handle span button:active,
743		#infinite-handle span button:focus,
744		#infinite-handle span button:hover,
745		.widget_akismet_widget .a-stats a,
746		.milestone-widget .milestone-header,
747		.wp-block-button .wp-block-button__link { background-color: #FF6600;}
748button,
749		input[type="button"],
750		input[type="reset"],
751		input[type="submit"],
752		.comment-navigation a:active,
753		.comment-navigation a:focus,
754		.comment-navigation a:hover,
755		.posts-navigation a:active,
756		.posts-navigation a:focus,
757		.posts-navigation a:hover,
758		#infinite-handle span button:active,
759		#infinite-handle span button:focus,
760		#infinite-handle span button:hover,
761		.widget_akismet_widget .a-stats a,
762		.wp-block-button .wp-block-button__link { border-color: #FF6600;}
763pre { border-left-color: #FF6600;}
764.rtl pre { border-right-color: #FF6600;}
765button:active,
766		input[type="button"]:active,
767		input[type="reset"]:active,
768		input[type="submit"]:active,
769		button:focus,
770		input[type="button"]:focus,
771		input[type="reset"]:focus,
772		input[type="submit"]:focus,
773		button:hover,
774		input[type="button"]:hover,
775		input[type="reset"]:hover,
776		input[type="submit"]:hover,
777		.search-form:before,
778		a,
779		.menu-toggle:active,
780		.menu-toggle:focus,
781		.menu-toggle:hover,
782		.dropdown-toggle,
783		.dropdown-toggle:active,
784		.dropdown-toggle:focus,
785		.dropdown-toggle:hover,
786		.main-navigation a:active,
787		.main-navigation a:focus,
788		.main-navigation a:hover,
789		.main-navigation .current_page_item > a,
790		.main-navigation .current-menu-item > a,
791		.main-navigation .current_page_ancestor > a,
792		.footer-navigation a:active,
793		.footer-navigation a:focus,
794		.footer-navigation a:hover,
795		.comment-navigation a,
796		.posts-navigation a,
797		.post-navigation a:active .post-title,
798		.post-navigation a:focus .post-title,
799		.post-navigation a:hover .post-title,
800		.sidebar-toggle:active,
801		.sidebar-toggle:focus,
802		.sidebar-toggle:hover,
803		.search-toggle:active,
804		.search-toggle:focus,
805		.search-toggle:hover,
806		.site-title,
807		.page-links > span,
808		.page-links a:active,
809		.page-links a:focus,
810		.page-links a:hover,
811		.post-link .genericon,
812		.required,
813		.site-content .contact-form label span,
814		#infinite-handle span button,
815		.widget_goodreads div[class^="gr_custom_title"] a,
816		.main-navigation .menu-item-has-children > a:after,
817		#comments #respond .comment-form-service a,
818		.widget_akismet_widget .a-stats a:active,
819		.widget_akismet_widget .a-stats a:focus,
820		.widget_akismet_widget .a-stats a:hover,
821		.widget_akismet_widget .a-stats a:active .count,
822		.widget_akismet_widget .a-stats a:focus .count,
823		.widget_akismet_widget .a-stats a:hover .count,
824		.widget_authors > ul > li > a:active,
825		.widget_authors > ul > li > a:focus,
826		.widget_authors > ul > li > a:hover,
827		.is-style-outline>.wp-block-button__link:not(.has-text-color) { color: #FF6600;}
828</style>
829</head>
830
831<body class="wp-singular page-template-default page page-id-7850 wp-embed-responsive wp-theme-pubcanard customizer-styles-applied jetpack-reblog-enabled author-hidden custom-colors">
832<div id="page" class="hfeed site">
833	<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
834
835	<header id="masthead" class="site-header" role="banner">
836		
837		<div class="site-branding">
838			<a href="https://andy.xyz/" class="site-logo-link" rel="home" itemprop="url"></a>			<h1 class="site-title"><a href="https://andy.xyz/" rel="home">Andy.xyz</a></h1>
839			<h2 class="site-description"></h2>
840		</div><!-- .site-branding -->
841
842					<div class="header-image">
843				<div class="header-image-inner">
844					<a href="https://andy.xyz/" rel="home"><img src="https://defaultcustomheadersdata.files.wordpress.com/2016/07/city1.jpg?resize=1260,300" width="1260" height="300" alt=""></a>
845				</div><!-- .header-image-inner -->
846			</div><!-- .header-image -->
847		
848		<div id="search-navigation" class="search-navigation">
849			<div class="search-navigation-inner">
850									<nav id="site-navigation" class="main-navigation" role="navigation">
851						<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><span class="screen-reader-text">Primary Menu</span></button>
852						<div class="menu-menu-1-container"><ul id="primary-menu" class="menu"><li id="menu-item-238" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-238"><a href="https://andy.xyz/">Home</a></li>
853<li id="menu-item-239" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-239"><a href="https://andy.xyz/about/">About</a></li>
854<li id="menu-item-7862" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-7850 current_page_item menu-item-7862"><a href="https://andy.xyz/speaking/" aria-current="page">Speaking</a></li>
855<li id="menu-item-17851" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17851"><a href="https://www.patreon.com/c/andydotxyz">Patreon</a></li>
856<li id="menu-item-5938" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5938"><a href="https://andy.xyz/sponsorship/">Sponsorship</a></li>
857<li id="menu-item-9518" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9518"><a href="https://andy.xyz/quotes/">Quotes</a></li>
858<li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-240"><a href="https://andy.xyz/contact/">Contact</a></li>
859</ul></div>					</nav><!-- #site-navigation -->
860								<div id="search-header" class="search-header">
861					<button class="search-toggle" aria-controls="search-form" aria-expanded="false"><span class="screen-reader-text">Search</span></button>
862					<form role="search" method="get" class="search-form" action="https://andy.xyz/">
863				<label>
864					<span class="screen-reader-text">Search for:</span>
865					<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
866				</label>
867				<input type="submit" class="search-submit" value="Search" />
868			</form>				</div><!-- #search-header -->
869			</div><!-- .search-navigation-inner -->
870		</div><!-- #search-navigation -->
871	</header><!-- #masthead -->
872
873	<div id="content" class="site-content">
874
875	<div class="site-content-inner">
876		<div id="primary" class="content-area">
877			<main id="main" class="site-main" role="main">
878
879				
880					
881<article id="post-7850" class="post-7850 page type-page status-publish hentry">
882	<header class="entry-header">
883		
884		<h1 class="entry-title">Speaking</h1>	</header><!-- .entry-header -->
885
886	
887	<div class="entry-content">
888		
889<p class="wp-block-paragraph">I travel to events and speak on various topics, most frequently is building graphical apps with Go and Fyne, but also tech leadership and startup culture. Here is a selection of recent presentations, most of which have recordings available online.</p>
890
891
892
893<h2 class="wp-block-heading">2026</h2>
894
895
896
897<ul class="wp-block-list">
898<li><a href="https://golab.io/speakers/williams">GoLab</a> &#8211; Creating a full desktop environment with Go!</li>
899
900
901
902<li>ScotSoft &#8211; Evening Address</li>
903
904
905
906<li><a href="https://conf.fyne.io">Fyne Conf 2026</a> &#8211; <a href="https://conf.fyne.io">When Applications Design Themselves: AI, Fyne, and the Future of User Interfaces</a></li>
907
908
909
910<li>London Gophers &#8211; <a href="https://www.meetup.com/londongophers/events/315973770/">A full desktop environment with Go!</a></li>
911
912
913
914<li>GopherCon UK &#8211; <a href="https://www.gophercon.co.uk/schedule">Creating a full desktop environment with Go!</a></li>
915
916
917
918<li><a href="https://www.gophercon.com/agenda/speakers/3993982">GopherCon</a> &#8211; <a href="https://www.gophercon.com/agenda/session/1801615">Building a Full Desktop in Go!</a> (Lightning talk)</li>
919
920
921
922<li><a href="https://www.gophercon.eu/#/speakers?lang=en&amp;speakerId=17594000002583010">GopherCon Europe</a> &#8211; <a href="https://www.gophercon.eu/#/schedule?day=3&amp;lang=en&amp;sessionId=17594000002583005">Build your Dream Apps with Fyne</a></li>
923
924
925
926<li>GopherCon Singapore &#8211; Building a Full Desktop in Go! (Lightning talk)</li>
927
928
929
930<li>Go podcast() &#8211; <a href="https://gopodcast.dev/episodes/075-fyne-apps-are-easier-to-design-and-build-with-andy-williams">Fyne apps are easier to design and build</a></li>
931
932
933
934<li>Skyscanner &#8211; Fireside chat for Engineering Managers</li>
935
936
937
938<li>FOSDEM Go devroom &#8211; <a href="https://cuddly.tube/w/mBtDbXQLdeHQh1PqLmeV99?start=20m30" target="_blank" rel="noreferrer noopener">Re-imagining the Tamagotchi</a></li>
939</ul>
940
941
942
943<h2 class="wp-block-heading">2025</h2>
944
945
946
947<ul class="wp-block-list">
948<li>Tech Meetup Edinburgh &#8211; <a href="https://www.linkedin.com/posts/techmeetupedinburgh_techmeetup-techevents-softwaremeetup-activity-7398714348388380672-UFXJ/?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAAV480Bya5KKtMUrx1M68INPMrW8Gydx8A">Building Beyond the Browser: Low-code native apps and the Community</a></li>
949
950
951
952<li>The Interest Rate &#8211; <a href="https://theinterestrate.substack.com/p/scotlands-start-up-paradox-how-fastest?r=40x4hu" target="_blank" rel="noreferrer noopener">Scotland&#8217;s Start-up paradox</a> (Interview)</li>
953
954
955
956<li>Hacktoberfest 2025 &#8211; <a href="https://luma.com/cs1b3f6i?tk=rLFchf" target="_blank" rel="noreferrer noopener">The HF supercontributor experience</a> (Fireside chat)</li>
957
958
959
960<li><a href="https://cupogo.dev/people/andrew-williams" target="_blank" rel="noreferrer noopener">Cup-o-Go</a> &#8211; <a href="https://cupogo.dev/episodes/goose-noose-excellent/transcript" target="_blank" rel="noreferrer noopener">🪿 Goose noose? 🤘 Excellent! 🎸</a> (Host)</li>
961
962
963
964<li><a href="https:/scotlandis.com/scotsoft-2025" target="_blank" rel="noreferrer noopener">ScotSoft 2025</a> &#8211; Evening address (<a href="https://andy.xyz/2025/11/04/scotsoft-2025-dinner-address/">edited transcript</a>)</li>
965
966
967
968<li>Scottish Innovation Summit &#8211; <a href="https://www.scotlandis.com/scotsoft-2025/national-innovation-summit/" target="_blank" rel="noreferrer noopener">Emerging Company Showcase</a> (Panel)</li>
969
970
971
972<li><a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">FyneConf 2025</a> &#8211; <a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">GUI tool ecosystem and the future of app building</a></li>
973
974
975
976<li><a href="https://www.gophercon.com/agenda/speakers/3757715" target="_blank" rel="noreferrer noopener">GopherCon</a> &#8211; <a href="https://www.youtube.com/watch?v=usUz3XyiR3I" target="_blank" rel="noreferrer noopener"><strong>Apps Without an Operating System?!</strong></a> (Lightning talk)</li>
977
978
979
980<li>Plus Equals 5 &#8211; <a href="https://plusequals5.napier.ac.uk/">Plenary Panel</a></li>
981
982
983
984<li>Bristol Gophers &#8211; <a href="https://www.meetup.com/golang-bristol/events/306170209/">Fyne: Building Apps that work Anywhere</a></li>
985
986
987
988<li>Once for Scotland &#8211; <strong>Democratising Access to App Development</strong></li>
989
990
991
992<li>Ardan Labs Podcast &#8211; <a href="https://ardanlabs.buzzsprout.com/1466944/episodes/16366029-fyne-startups-and-innovation-with-andy-williams">Fyne, Startups and Innovation with Andy Williams</a></li>
993</ul>
994
995
996
997<h2 class="wp-block-heading">2024</h2>
998
999
1000
1001<ul class="wp-block-list">
1002<li>GoLab &#8211; <a href="https://golab.io/talks/fyne-apps-from-start-to-store" target="_blank" rel="noreferrer noopener">Fyne Apps from Start to Store</a> (Workshop)</li>
1003
1004
1005
1006<li>Go podcast() &#8211; <a href="https://gopodcast.dev/episodes/047-fyne-toolkit-with-andy-williams" target="_blank" rel="noreferrer noopener">Fyne toolkit with Andy Williams</a></li>
1007
1008
1009
1010<li>Edinburgh Gophers &#8211; <a href="https://www.meetup.com/edinburgh-golang-meetup/events/303748600/">Low-code graphical apps with Go</a></li>
1011
1012
1013
1014<li>ScotSoft 2024 &#8211; Closing Address</li>
1015
1016
1017
1018<li><a href="https://conf.fyne.io">FyneConf 2024</a> &#8211; <a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">Fyne.io why and where are we going from here</a></li>
1019
1020
1021
1022<li>GopherCon UK &#8211; <a href="https://youtu.be/sXKsyuSjJ8o?si=L1jyPSa5WiqP0q0o" target="_blank" rel="noopener">
1022Building Graphical Go apps is Fyne 🙂</a></li>
1023
1024
1025
1026<li>Manchester Go Meetup &#8211; <a href="https://www.meetup.com/golang-mcr/events/301829841/" target="_blank" rel="noreferrer noopener">Fyne.io: Building Apps that work Anywhere</a></li>
1027
1028
1029
1030<li>GoMAD (Madrid Go UG) &#8211; <a href="https://www.meetup.com/go-mad/events/301175945/" target="_blank" rel="noreferrer noopener">Go Tell: Fyne.io, Building Apps that work Anywhere</a></li>
1031
1032
1033
1034<li>Conf42 Golang &#8211; <a href="https://www.conf42.com/Golang_2024_Andrew_Williams_love_building_apps" target="_blank" rel="noreferrer noopener">How Go taught me to love building apps again</a></li>
1035
1036
1037
1038<li>Speak with Courage &#8211; <a href="https://www.listennotes.com/podcasts/speak-with-courage/build-your-dream-ceo-andrew-ASOmswoGDi_/">Build YOUR dream, CEO: Andrew Williams</a></li>
1039
1040
1041
1042<li><a href="https://fosdem.org/2024/schedule/speaker/Z8XBM7/" target="_blank" rel="noreferrer noopener">FOSDEM &#8211; Graphics</a> &#8211; <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2631-building-cross-platform-gui-apps-with-ease-and-go-desktop-mobile-and-beyond-/" target="_blank" rel="noreferrer noopener">Building Cross-platform GUI apps with ease (and Go) &#8211; desktop, mobile and beyond!</a></li>
1043
1044
1045
1046<li><a href="https://fosdem.org/2024/schedule/speaker/Z8XBM7/" target="_blank" rel="noreferrer noopener">FOSDEM &#8211; Go</a> &#8211; <a href="https://fosdem.org/2024/schedule/event/fosdem-2024-2621-low-code-graphical-apps-with-go-top-to-bottom-/" target="_blank" rel="noreferrer noopener">Low code graphical apps with Go top to bottom!</a></li>
1047</ul>
1048
1049
1050
1051<h2 class="wp-block-heading">2023</h2>
1052
1053
1054
1055<ul class="wp-block-list">
1056<li><a href="https://golab.io/speakers/williams" target="_blank" rel="noreferrer noopener">GoLab</a> &#8211; <a href="https://golab.io/talks/how-go-taught-me-to-love-building-apps-again" target="_blank" rel="noreferrer noopener">How Go Taught Me To Love Building Apps Again</a></li>
1057
1058
1059
1060<li><a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">FyneConf</a> &#8211; <a href="https://youtu.be/XXmDmn-et4E?feature=shared" target="_blank" rel="noreferrer noopener">FyshOS, a Well Rounded Developer Experience</a></li>
1061
1062
1063
1064<li><a href="https://cupogo.dev/people/andrew-williams" target="_blank" rel="noreferrer noopener">Cup-o-Go</a> &#8211; <a href="https://cupogo.dev/episodes/gopls-0-14-with-opt-in-telemetry-is-coming-and-eliav-lavi-talks-about-some-challenges-with-json" target="_blank" rel="noreferrer noopener">🗠 gopls 0.14 with opt-in telemetry is coming!</a> (Host)</li>
1065
1066
1067
1068<li><a href="https://cupogo.dev/people/andrew-williams" target="_blank" rel="noreferrer noopener">Cup-o-Go</a> &#8211; <a href="https://cupogo.dev/episodes/conferences-galore-for-q4-alien-abduction-and-interview-with-peter-seebach-aka-seebs-on-go-performance" target="_blank" rel="noreferrer noopener">Conferences galore for Q4, Alien Abduction 🛸</a> (Host)</li>
1069
1070
1071
1072<li>Edinburgh Gophers &#8211; Building Apps that work Anywhere</li>
1073
1074
1075
1076<li><a href="https://cupogo.dev/people/andrew-williams" target="_blank" rel="noreferrer noopener">Cup-o-Go</a> &#8211; <a href="https://cupogo.dev/episodes/why-would-they-change-math-math-is-math-also-the-internet-is-on-strike-and-other-go-news" target="_blank" rel="noreferrer noopener">An interview with Andy Williams about Fyne</a></li>
1077
1078
1079
1080<li><a href="https://changelog.com/person/andydotxyz" target="_blank" rel="noreferrer noopener">GoTime</a> &#8211; <a href="https://changelog.com/gotime/271" target="_blank" rel="noreferrer noopener">Cross-platform graphical user interfaces</a></li>
1081
1082
1083
1084<li>Boston Gophers &#8211; Building Apps that work Anywhere</li>
1085
1086
1087
1088<li>State Of Open Subset &#8211; <a href="https://www.youtube.com/watch?v=KKyns9MYWG0" target="_blank" rel="noreferrer noopener">Native graphical apps for all platforms &#8211; with a single codebase!</a></li>
1089</ul>
1090
1091
1092
1093<h2 class="wp-block-heading">2022</h2>
1094
1095
1096
1097<ul class="wp-block-list">
1098<li><a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">FyneConf</a> &#8211; <a href="https://youtu.be/J8960TmU2jY" target="_blank" rel="noreferrer noopener">Best practices for excellent Fyne apps</a></li>
1099
1100
1101
1102<li>OSSSummit EU &#8211; <a href="https://events.linuxfoundation.org/archive/2022/open-source-summit-europe/program/schedule/" target="_blank" rel="noreferrer noopener">
1102Enabling a Truly Platform-Agnostic Development of Graphical Applications</a></li>
1103
1104
1105
1106<li>ScotSoft &#8211; Remote first and flexible hours = global reach, happy team</li>
1107
1108
1109
1110<li>GolangNYC &#8211; <a href="https://www.youtube.com/watch?v=qIuc-Y1ToL4&amp;t=13s" target="_blank" rel="noreferrer noopener">How Go makes GUI apps simple</a></li>
1111</ul>
1112
1113
1114
1115<h2 class="wp-block-heading">2021</h2>
1116
1117
1118
1119<ul class="wp-block-list">
1120<li>GopherCon &#8211; <a href="https://youtu.be/mkfpmavRwZQ?si=w0UyggcQl4PyvQFR">From First Line to App Store in 7 minutes</a> (Lightning talk)</li>
1121
1122
1123
1124<li>GoWest &#8211; <a href="https://www.youtube.com/watch?v=VESXrgCW50g&amp;t=1919s" target="_blank" rel="noreferrer noopener">How Go makes GUI apps simple</a></li>
1125
1126
1127
1128<li><a href="https://conf.fyne.io" target="_blank" rel="noreferrer noopener">FyneConf</a> &#8211; <a href="https://youtu.be/1sHTbOyn7uo" target="_blank" rel="noreferrer noopener">Architecture and design, building apps for desktop and mobile</a></li>
1129
1130
1131
1132<li>ScotSoft &#8211; The Journey to FyshOS</li>
1133
1134
1135
1136<li>Gophers London &#8211; Building Cross Platform Graphical Apps</li>
1137
1138
1139
1140<li><a href="https://archive.fosdem.org/2021/schedule/speaker/andrew_williams/" target="_blank" rel="noreferrer noopener">FOSDEM</a> &#8211; <a href="https://archive.fosdem.org/2021/schedule/event/goguifyne/" target="_blank" rel="noreferrer noopener">Building Cross-Platform GUIs Fast Using Fyne</a></li>
1141</ul>
1142
1143
1144
1145<p class="wp-block-paragraph">If you would like me to present at an event or podcast you are organising please <a href="https://andy.xyz/contact/" target="_blank" rel="noreferrer noopener">get in touch</a>.</p>
1146<div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"><div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow noopener noreferrer"
1147				data-shared="sharing-twitter-7850"
1148				class="share-twitter sd-button share-icon"
1149				href="https://andy.xyz/speaking/?share=twitter"
1150				target="_blank"
1151				aria-labelledby="sharing-twitter-7850"
1152				>
1153				<span id="sharing-twitter-7850" hidden>Share on X (Opens in new window)</span>
1154				<span>X</span>
1155			</a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer"
1156				data-shared="sharing-facebook-7850"
1157				class="share-facebook sd-button share-icon"
1158				href="https://andy.xyz/speaking/?share=facebook"
1159				target="_blank"
1160				aria-labelledby="sharing-facebook-7850"
1161				>
1162				<span id="sharing-facebook-7850" hidden>Share on Facebook (Opens in new window)</span>
1163				<span>Facebook</span>
1164			</a></li><li class="share-end"></li></ul></div></div></div></div>			</div><!-- .entry-content -->
1165
1166	<footer class="entry-footer">
1167			</footer><!-- .entry-footer -->
1168</article><!-- #post-## -->
1169
1170					
1171				
1172			</main><!-- #main -->
1173		</div><!-- #primary -->
1174
1175		
1176	<button class="sidebar-toggle" aria-controls="secondary" aria-expanded="false"><span class="screen-reader-text">Sidebar</span></button>
1177
1178<div id="secondary" class="widget-area" role="complementary">
1179	<aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://andy.xyz/">
1180				<label>
1181					<span class="screen-reader-text">Search for:</span>
1182					<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
1183				</label>
1184				<input type="submit" class="search-submit" value="Search" />
1185			</form></aside><aside id="block-2" class="widget widget_block">
1186<h4 class="wp-block-heading">Follow Me</h4>
1187</aside><aside id="block-3" class="widget widget_block">
1188<ul class="wp-block-social-links has-small-icon-size is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-linkedin wp-block-social-link"><a href="https://www.linkedin.com/in/andrewjewilliams/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
1188<path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>
1189
1190<li class="wp-social-link wp-social-link-mastodon wp-block-social-link"><a href="https://techhub.social/@andydotxyz" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"/></svg><span class="wp-block-social-link-label screen-reader-text">Mastodon</span></a></li>
1191
1192<li class="wp-social-link wp-social-link-twitter wp-block-social-link"><a href="https://twitter.com/andydotxyz" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Twitter</span></a></li>
1193
1194<li class="wp-social-link wp-social-link-github wp-block-social-link"><a href="https://github.com/andydotxyz" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>
1195
1196<li class="wp-social-link wp-social-link-youtube wp-block-social-link"><a href="https://www.youtube.com/channel/UCNUyAVn7RHv5yrCpbQ1WhdA" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
1196<path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li>
1197
1198<li class="wp-social-link wp-social-link-reddit wp-block-social-link"><a href="https://www.reddit.com/user/andydotxyz" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M5.27 9.221A2.775 2.775 0 0 0 2.498 11.993a2.785 2.785 0 0 0 1.6 2.511 5.337 5.337 0 0 0 2.374 4.11 9.386 9.386 0 0 0 5.539 1.7 9.386 9.386 0 0 0 5.541-1.7 5.331 5.331 0 0 0 2.372-4.114 2.787 2.787 0 0 0 1.583-2.5 2.775 2.775 0 0 0-2.772-2.772 2.742 2.742 0 0 0-1.688.574 9.482 9.482 0 0 0-4.637-1.348v-.008a2.349 2.349 0 0 1 2.011-2.316 1.97 1.97 0 0 0 1.926 1.521 1.98 1.98 0 0 0 1.978-1.978 1.98 1.98 0 0 0-1.978-1.978 1.985 1.985 0 0 0-1.938 1.578 3.183 3.183 0 0 0-2.849 3.172v.011a9.463 9.463 0 0 0-4.59 1.35 2.741 2.741 0 0 0-1.688-.574Zm6.736 9.1a3.162 3.162 0 0 1-2.921-1.944.215.215 0 0 1 .014-.2.219.219 0 0 1 .168-.106 27.327 27.327 0 0 1 2.74-.133 27.357 27.357 0 0 1 2.74.133.219.219 0 0 1 .168.106.215.215 0 0 1 .014.2 3.158 3.158 0 0 1-2.921 1.944Zm3.743-3.157a1.265 1.265 0 0 1-1.4-1.371 1.954 1.954 0 0 1 .482-1.442 1.15 1.15 0 0 1 .842-.379 1.7 1.7 0 0 1 1.49 1.777 1.323 1.323 0 0 1-.325 1.015 1.476 1.476 0 0 1-1.089.4Zm-7.485 0a1.476 1.476 0 0 1-1.086-.4 1.323 1.323 0 0 1-.325-1.016 1.7 1.7 0 0 1 1.49-1.777 1.151 1.151 0 0 1 .843.379 1.951 1.951 0 0 1 .481 1.441 1.276 1.276 0 0 1-1.403 1.373Z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Reddit</span></a></li>
1199
1200<li class="wp-social-link wp-social-link-facebook wp-block-social-link"><a href="https://www.facebook.com/andydotxyz/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>
1201
1202<li class="wp-social-link wp-social-link-wordpress wp-block-social-link"><a href="https://ajwilliams45.wordpress.com" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"></path></svg><span class="wp-block-social-link-label screen-reader-text">WordPress</span></a></li></ul>
1203</aside>
1204		<aside id="recent-posts-2" class="widget widget_recent_entries">
1205		<h2 class="widget-title">Recent Posts</h2>
1206		<ul>
1207											<li>
1208					<a href="https://andy.xyz/2026/08/20/running-the-fyshos-desktop-on-surface-pro/">Running the FyshOS desktop on Surface Pro</a>
1209									</li>
1210											<li>
1211					<a href="https://andy.xyz/2026/06/10/adding-3d-special-effects/">Adding 3D special effects</a>
1212									</li>
1213											<li>
1214					<a href="https://andy.xyz/2026/01/26/what-is-ai-and-what-is-it-not/">What is AI (and what is it not)?</a>
1215									</li>
1216											<li>
1217					<a href="https://andy.xyz/2025/11/25/new-videos-now-on-patreon/">New videos now on Patreon!</a>
1218									</li>
1219											<li>
1220					<a href="https://andy.xyz/2025/11/04/scotsoft-2025-dinner-address/">ScotSoft 2025 Dinner Address</a>
1221									</li>
1222					</ul>
1223
1224		</aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2><form action="https://andy.xyz" method="get"><label class="screen-reader-text" for="cat">Categories</label><select  name='cat' id='cat' class='postform'>
1225	<option value='-1'>
1225Select Category</option>
1226	<option class="level-0" value="179">Business&nbsp;&nbsp;(18)</option>
1227	<option class="level-0" value="9445">Celebrations&nbsp;&nbsp;(6)</option>
1228	<option class="level-0" value="332">Coding&nbsp;&nbsp;(52)</option>
1229	<option class="level-0" value="9204">Conferences&nbsp;&nbsp;(6)</option>
1230	<option class="level-0" value="713252430">CTO Questions&nbsp;&nbsp;(10)</option>
1231	<option class="level-0" value="4315">DIY&nbsp;&nbsp;(1)</option>
1232	<option class="level-0" value="43835">Enlightenment&nbsp;&nbsp;(38)</option>
1233	<option class="level-0" value="677">Friends&nbsp;&nbsp;(4)</option>
1234	<option class="level-0" value="3919368">Fyne&nbsp;&nbsp;(11)</option>
1235	<option class="level-0" value="1559">Gadgets&nbsp;&nbsp;(5)</option>
1236	<option class="level-0" value="1256">Gaming&nbsp;&nbsp;(4)</option>
1237	<option class="level-0" value="9285985">Hardware&nbsp;&nbsp;(6)</option>
1238	<option class="level-0" value="32">Infrastructure&nbsp;&nbsp;(2)</option>
1239	<option class="level-0" value="508661">Interwebs&nbsp;&nbsp;(10)</option>
1240	<option class="level-0" value="57912076">Kotikan&nbsp;&nbsp;(1)</option>
1241	<option class="level-0" value="4220">LEGO&nbsp;&nbsp;(1)</option>
1242	<option class="level-0" value="120">Mobile&nbsp;&nbsp;(9)</option>
1243	<option class="level-0" value="3015">Operating Systems&nbsp;&nbsp;(11)</option>
1244	<option class="level-0" value="16328">Railway&nbsp;&nbsp;(8)</option>
1245	<option class="level-0" value="653107252">RideOnRailway&nbsp;&nbsp;(1)</option>
1246	<option class="level-0" value="4449">Singing&nbsp;&nbsp;(3)</option>
1247	<option class="level-0" value="317585">Travel&nbsp;&nbsp;(2)</option>
1248	<option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(48)</option>
1249</select>
1250</form>
1250<script>
1251( ( dropdownId ) => {
1252	const dropdown = document.getElementById( dropdownId );
1253	function onSelectChange() {
1254		setTimeout( () => {
1255			if ( 'escape' === dropdown.dataset.lastkey ) {
1256				return;
1257			}
1258			if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) {
1259				dropdown.parentElement.submit();
1260			}
1261		}, 250 );
1262	}
1263	function onKeyUp( event ) {
1264		if ( 'Escape' === event.key ) {
1265			dropdown.dataset.lastkey = 'escape';
1266		} else {
1267			delete dropdown.dataset.lastkey;
1268		}
1269	}
1270	function onClick() {
1271		delete dropdown.dataset.lastkey;
1272	}
1273	dropdown.addEventListener( 'keyup', onKeyUp );
1274	dropdown.addEventListener( 'click', onClick );
1275	dropdown.addEventListener( 'change', onSelectChange );
1276})( "cat" );
1277
1278//# sourceURL=WP_Widget_Categories%3A%3Awidget
1279</script>
1279
1280</aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archive</h2>		<label class="screen-reader-text" for="archives-dropdown-2">Archive</label>
1281		<select id="archives-dropdown-2" name="archive-dropdown">
1282			
1283			<option value="">Select Month</option>
1284				<option value='https://andy.xyz/2026/08/'> August 2026 &nbsp;(1)</option>
1285	<option value='https://andy.xyz/2026/06/'> June 2026 &nbsp;(1)</option>
1286	<option value='https://andy.xyz/2026/01/'> January 2026 &nbsp;(1)</option>
1287	<option value='https://andy.xyz/2025/11/'> November 2025 &nbsp;(2)</option>
1288	<option value='https://andy.xyz/2025/09/'> September 2025 &nbsp;(1)</option>
1289	<option value='https://andy.xyz/2025/01/'> January 2025 &nbsp;(1)</option>
1290	<option value='https://andy.xyz/2024/12/'> December 2024 &nbsp;(1)</option>
1291	<option value='https://andy.xyz/2024/02/'> February 2024 &nbsp;(1)</option>
1292	<option value='https://andy.xyz/2023/09/'> September 2023 &nbsp;(1)</option>
1293	<option value='https://andy.xyz/2023/03/'> March 2023 &nbsp;(1)</option>
1294	<option value='https://andy.xyz/2021/03/'> March 2021 &nbsp;(1)</option>
1295	<option value='https://andy.xyz/2020/10/'> October 2020 &nbsp;(1)</option>
1296	<option value='https://andy.xyz/2020/02/'> February 2020 &nbsp;(1)</option>
1297	<option value='https://andy.xyz/2020/01/'> January 2020 &nbsp;(1)</option>
1298	<option value='https://andy.xyz/2019/11/'> November 2019 &nbsp;(1)</option>
1299	<option value='https://andy.xyz/2019/03/'> March 2019 &nbsp;(2)</option>
1300	<option value='https://andy.xyz/2018/10/'> October 2018 &nbsp;(2)</option>
1301	<option value='https://andy.xyz/2018/09/'> September 2018 &nbsp;(1)</option>
1302	<option value='https://andy.xyz/2018/08/'> August 2018 &nbsp;(1)</option>
1303	<option value='https://andy.xyz/2018/07/'> July 2018 &nbsp;(1)</option>
1304	<option value='https://andy.xyz/2018/04/'> April 2018 &nbsp;(1)</option>
1305	<option value='https://andy.xyz/2018/02/'> February 2018 &nbsp;(2)</option>
1306	<option value='https://andy.xyz/2018/01/'> January 2018 &nbsp;(1)</option>
1307	<option value='https://andy.xyz/2017/12/'> December 2017 &nbsp;(2)</option>
1308	<option value='https://andy.xyz/2017/11/'> November 2017 &nbsp;(1)</option>
1309	<option value='https://andy.xyz/2017/10/'> October 2017 &nbsp;(1)</option>
1310	<option value='https://andy.xyz/2017/09/'> September 2017 &nbsp;(2)</option>
1311	<option value='https://andy.xyz/2017/04/'> April 2017 &nbsp;(1)</option>
1312	<option value='https://andy.xyz/2017/02/'> February 2017 &nbsp;(1)</option>
1313	<option value='https://andy.xyz/2016/09/'> September 2016 &nbsp;(2)</option>
1314	<option value='https://andy.xyz/2016/07/'> July 2016 &nbsp;(1)</option>
1315	<option value='https://andy.xyz/2016/06/'> June 2016 &nbsp;(3)</option>
1316	<option value='https://andy.xyz/2016/05/'> May 2016 &nbsp;(1)</option>
1317	<option value='https://andy.xyz/2016/04/'> April 2016 &nbsp;(1)</option>
1318	<option value='https://andy.xyz/2016/03/'> March 2016 &nbsp;(1)</option>
1319	<option value='https://andy.xyz/2016/02/'> February 2016 &nbsp;(2)</option>
1320	<option value='https://andy.xyz/2016/01/'> January 2016 &nbsp;(2)</option>
1321	<option value='https://andy.xyz/2015/12/'> December 2015 &nbsp;(2)</option>
1322	<option value='https://andy.xyz/2015/09/'> September 2015 &nbsp;(2)</option>
1323	<option value='https://andy.xyz/2015/08/'> August 2015 &nbsp;(1)</option>
1324	<option value='https://andy.xyz/2015/05/'> May 2015 &nbsp;(1)</option>
1325	<option value='https://andy.xyz/2015/02/'> February 2015 &nbsp;(1)</option>
1326	<option value='https://andy.xyz/2015/01/'> January 2015 &nbsp;(3)</option>
1327	<option value='https://andy.xyz/2014/11/'>
1327 November 2014 &nbsp;(3)</option>
1328	<option value='https://andy.xyz/2014/10/'> October 2014 &nbsp;(2)</option>
1329	<option value='https://andy.xyz/2014/06/'> June 2014 &nbsp;(2)</option>
1330	<option value='https://andy.xyz/2014/05/'> May 2014 &nbsp;(1)</option>
1331	<option value='https://andy.xyz/2014/04/'> April 2014 &nbsp;(1)</option>
1332	<option value='https://andy.xyz/2014/03/'> March 2014 &nbsp;(2)</option>
1333	<option value='https://andy.xyz/2014/02/'> February 2014 &nbsp;(6)</option>
1334	<option value='https://andy.xyz/2014/01/'> January 2014 &nbsp;(1)</option>
1335	<option value='https://andy.xyz/2013/12/'> December 2013 &nbsp;(1)</option>
1336	<option value='https://andy.xyz/2013/11/'> November 2013 &nbsp;(1)</option>
1337	<option value='https://andy.xyz/2013/09/'> September 2013 &nbsp;(1)</option>
1338	<option value='https://andy.xyz/2013/01/'> January 2013 &nbsp;(1)</option>
1339	<option value='https://andy.xyz/2012/02/'> February 2012 &nbsp;(1)</option>
1340	<option value='https://andy.xyz/2011/12/'> December 2011 &nbsp;(1)</option>
1341	<option value='https://andy.xyz/2011/11/'> November 2011 &nbsp;(2)</option>
1342	<option value='https://andy.xyz/2011/07/'> July 2011 &nbsp;(1)</option>
1343	<option value='https://andy.xyz/2011/05/'> May 2011 &nbsp;(3)</option>
1344	<option value='https://andy.xyz/2010/05/'> May 2010 &nbsp;(1)</option>
1345	<option value='https://andy.xyz/2010/01/'> January 2010 &nbsp;(1)</option>
1346	<option value='https://andy.xyz/2009/09/'> September 2009 &nbsp;(1)</option>
1347	<option value='https://andy.xyz/2009/05/'> May 2009 &nbsp;(1)</option>
1348	<option value='https://andy.xyz/2008/11/'> November 2008 &nbsp;(1)</option>
1349	<option value='https://andy.xyz/2008/03/'> March 2008 &nbsp;(1)</option>
1350	<option value='https://andy.xyz/2008/02/'> February 2008 &nbsp;(2)</option>
1351	<option value='https://andy.xyz/2007/11/'> November 2007 &nbsp;(2)</option>
1352	<option value='https://andy.xyz/2007/10/'> October 2007 &nbsp;(1)</option>
1353	<option value='https://andy.xyz/2007/09/'> September 2007 &nbsp;(2)</option>
1354	<option value='https://andy.xyz/2007/05/'> May 2007 &nbsp;(1)</option>
1355	<option value='https://andy.xyz/2007/04/'> April 2007 &nbsp;(4)</option>
1356	<option value='https://andy.xyz/2007/01/'> January 2007 &nbsp;(2)</option>
1357	<option value='https://andy.xyz/2006/09/'> September 2006 &nbsp;(2)</option>
1358	<option value='https://andy.xyz/2006/05/'> May 2006 &nbsp;(2)</option>
1359	<option value='https://andy.xyz/2006/02/'> February 2006 &nbsp;(2)</option>
1360	<option value='https://andy.xyz/2006/01/'> January 2006 &nbsp;(4)</option>
1361	<option value='https://andy.xyz/2005/10/'> October 2005 &nbsp;(2)</option>
1362	<option value='https://andy.xyz/2005/09/'> September 2005 &nbsp;(1)</option>
1363	<option value='https://andy.xyz/2005/08/'> August 2005 &nbsp;(3)</option>
1364	<option value='https://andy.xyz/2005/07/'> July 2005 &nbsp;(2)</option>
1365	<option value='https://andy.xyz/2005/06/'> June 2005 &nbsp;(1)</option>
1366	<option value='https://andy.xyz/2005/04/'> April 2005 &nbsp;(2)</option>
1367	<option value='https://andy.xyz/2005/03/'> March 2005 &nbsp;(3)</option>
1368	<option value='https://andy.xyz/2005/02/'> February 2005 &nbsp;(2)</option>
1369	<option value='https://andy.xyz/2005/01/'> January 2005 &nbsp;(3)</option>
1370	<option value='https://andy.xyz/2004/12/'> December 2004 &nbsp;(8)</option>
1371	<option value='https://andy.xyz/2004/10/'> October 2004 &nbsp;(1)</option>
1372	<option value='https://andy.xyz/2004/09/'> September 2004 &nbsp;(3)</option>
1373	<option value='https://andy.xyz/2004/08/'> August 2004 &nbsp;(2)</option>
1374	<option value='https://andy.xyz/2004/07/'> July 2004 &nbsp;(3)</option>
1375	<option value='https://andy.xyz/2004/06/'> June 2004 &nbsp;(1)</option>
1376	<option value='https://andy.xyz/2004/02/'> February 2004 &nbsp;(1)</option>
1377	<option value='https://andy.xyz/2004/01/'> January 2004 &nbsp;(2)</option>
1378	<option value='https://andy.xyz/2003/12/'> December 2003 &nbsp;(2)</option>
1379	<option value='https://andy.xyz/2003/11/'> November 2003 &nbsp;(3)</option>
1380	<option value='https://andy.xyz/2003/09/'> September 2003 &nbsp;(2)</option>
1381	<option value='https://andy.xyz/2003/08/'> August 2003 &nbsp;(1)</option>
1382	<option value='https://andy.xyz/2003/07/'> July 2003 &nbsp;(8)</option>
1383	<option value='https://andy.xyz/2003/06/'> June 2003 &nbsp;(5)</option>
1384	<option value='https://andy.xyz/2003/05/'> May 2003 &nbsp;(5)</option>
1385
1386		</select>
1387
1388			
1388<script>
1389( ( dropdownId ) => {
1390	const dropdown = document.getElementById( dropdownId );
1391	function onSelectChange() {
1392		setTimeout( () => {
1393			if ( 'escape' === dropdown.dataset.lastkey ) {
1394				return;
1395			}
1396			if ( dropdown.value ) {
1397				document.location.href = dropdown.value;
1398			}
1399		}, 250 );
1400	}
1401	function onKeyUp( event ) {
1402		if ( 'Escape' === event.key ) {
1403			dropdown.dataset.lastkey = 'escape';
1404		} else {
1405			delete dropdown.dataset.lastkey;
1406		}
1407	}
1408	function onClick() {
1409		delete dropdown.dataset.lastkey;
1410	}
1411	dropdown.addEventListener( 'keyup', onKeyUp );
1412	dropdown.addEventListener( 'click', onClick );
1413	dropdown.addEventListener( 'change', onSelectChange );
1414})( "archives-dropdown-2" );
1415
1416//# sourceURL=WP_Widget_Archives%3A%3Awidget
1417</script>
1417
1418</aside><aside id="calendar-3" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar" class="wp-calendar-table">
1419	<caption>September 2026</caption>
1420	<thead>
1421	<tr>
1422		<th scope="col" aria-label="Monday">M</th>
1423		<th scope="col" aria-label="Tuesday">T</th>
1424		<th scope="col" aria-label="Wednesday">W</th>
1425		<th scope="col" aria-label="Thursday">T</th>
1426		<th scope="col" aria-label="Friday">F</th>
1427		<th scope="col" aria-label="Saturday">S</th>
1428		<th scope="col" aria-label="Sunday">S</th>
1429	</tr>
1430	</thead>
1431	<tbody>
1432	<tr>
1433		<td colspan="1" class="pad">&nbsp;</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td>
1434	</tr>
1435	<tr>
1436		<td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td>
1437	</tr>
1438	<tr>
1439		<td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td>
1440	</tr>
1441	<tr>
1442		<td>21</td><td>22</td><td>23</td><td id="today">24</td><td>25</td><td>26</td><td>27</td>
1443	</tr>
1444	<tr>
1445		<td>28</td><td>29</td><td>30</td>
1446		<td class="pad" colspan="4">&nbsp;</td>
1447	</tr>
1448	</tbody>
1449	</table><nav aria-label="Previous and next months" class="wp-calendar-nav">
1450		<span class="wp-calendar-nav-prev"><a href="https://andy.xyz/2026/08/">&laquo; Aug</a></span>
1451		<span class="pad">&nbsp;</span>
1452		<span class="wp-calendar-nav-next">&nbsp;</span>
1453	</nav></div></aside>
1454		<aside id="recent-posts-4" class="widget widget_recent_entries">
1455		<h2 class="widget-title">Recent Posts</h2>
1456		<ul>
1457											<li>
1458					<a href="https://andy.xyz/2026/08/20/running-the-fyshos-desktop-on-surface-pro/">Running the FyshOS desktop on Surface Pro</a>
1459									</li>
1460											<li>
1461					<a href="https://andy.xyz/2026/06/10/adding-3d-special-effects/">Adding 3D special effects</a>
1462									</li>
1463											<li>
1464					<a href="https://andy.xyz/2026/01/26/what-is-ai-and-what-is-it-not/">What is AI (and what is it not)?</a>
1465									</li>
1466											<li>
1467					<a href="https://andy.xyz/2025/11/25/new-videos-now-on-patreon/">New videos now on Patreon!</a>
1468									</li>
1469											<li>
1470					<a href="https://andy.xyz/2025/11/04/scotsoft-2025-dinner-address/">ScotSoft 2025 Dinner Address</a>
1471									</li>
1472					</ul>
1473
1474		</aside></div><!-- #secondary -->
1475	</div><!-- .site-content-inner -->
1476
1477
1478	</div><!-- #content -->
1479
1480	
1481	
1482	
1483	
1484	<footer id="colophon" class="site-footer" role="contentinfo">
1485		<div id="site-info" class="site-info">
1486			
1487			
1488					</div><!-- #site-info -->
1489	</footer><!-- #colophon -->
1490</div><!-- #page -->
1491
1492<!--  -->
1493<script type="speculationrules">
1494{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/canard/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1495</script>
vendor: 1 bytes, line 1495
1495
1496<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202639d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
vendor: 1 bytes, line 1496
1496
1497<script id="wpgroho-js-extra">
1498var WPGroHo = {"my_hash":""};
1499//# sourceURL=wpgroho-js-extra
1500</script>
vendor: 1 bytes, line 1500
1500
1501<script crossorigin='anonymous' type='text/javascript'  src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>
1501
1502
1503	
1503<script>
1504		// Initialize and attach hovercards to all gravatars
1505		( function() {
1506			function init() {
1507				if ( typeof Gravatar === 'undefined' ) {
1508					return;
1509				}
1510
1511				if ( typeof Gravatar.init !== 'function' ) {
1512					return;
1513				}
1514
1515				Gravatar.profile_cb = function ( hash, id ) {
1516					WPGroHo.syncProfileData( hash, id );
1517				};
1518
1519				Gravatar.my_hash = WPGroHo.my_hash;
1520				Gravatar.init(
1521					'body',
1522					'#wp-admin-bar-my-account',
1523					{
1524						i18n: {
1525							'Edit your profile →': 'Edit your profile →',
1526							'View profile →': 'View profile →',
1527							'Contact': 'Contact',
1528							'Send money': 'Send money',
1529							'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
1530							'Gravatar not found.': 'Gravatar not found.',
1531							'Too Many Requests.': 'Too Many Requests.',
1532							'Internal Server Error.': 'Internal Server Error.',
1533							'Is this you?': 'Is this you?',
1534							'Claim your free profile.': 'Claim your free profile.',
1535							'Email': 'Email',
1536							'Home Phone': 'Home Phone',
1537							'Work Phone': 'Work Phone',
1538							'Cell Phone': 'Cell Phone',
1539							'Contact Form': 'Contact Form',
1540							'Calendar': 'Calendar',
1541						},
1542					}
1543				);
1544			}
1545
1546			if ( document.readyState !== 'loading' ) {
1547				init();
1548			} else {
1549				document.addEventListener( 'DOMContentLoaded', init );
1550			}
1551		} )();
1552	</script>
1552
1553
1554		<div style="display:none">
1555	</div>
1556			<div id="actionbar" dir="ltr" style="display: none;"
1557				class="actnbr-pub-canard" role="region" aria-label="Site actions">
1558			<span class="actnbr-live" aria-live="polite"></span>
1559			<ul>
1560										<li class="actnbr-btn actnbr-hidden">
1561										<a class="actnbr-action actnbr-actn-follow " href="" role="button" aria-haspopup="dialog" aria-expanded="false">
1562				<svg class="actnbr-icon actnbr-icon-bell" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M17 11.5c0 1.353.17 2.368.976 3 .266.209.602.376 1.024.5v1H5v-1c.422-.124.757-.291 1.024-.5.806-.632.976-1.647.976-3V9c0-2.8 2.2-5 5-5s5 2.2 5 5v2.5ZM15.5 9v2.5c0 .93.066 1.98.515 2.897l.053.103H7.932a4.018 4.018 0 0 0 .053-.103c.449-.917.515-1.967.515-2.897V9c0-1.972 1.528-3.5 3.5-3.5s3.5 1.528 3.5 3.5Zm-5.492 9.008c0-.176.023-.346.065-.508h3.854A1.996 1.996 0 0 1 12 20c-1.1 0-1.992-.892-1.992-1.992Z"/></svg>				<span>Subscribe</span>
1563			</a>
1564			<a class="actnbr-action actnbr-actn-following  no-display" href="" role="button">
1565				<svg class="actnbr-icon actnbr-icon-check" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M7 12L10 15L17 8" vector-effect="non-scaling-stroke"/></svg>				<span>Subscribed</span>
1566			</a>
1567									<div class="actnbr-popover actnbr-panel actnbr-notice" id="follow-bubble" role="dialog" aria-label="Subscribe to Andy.xyz">
1568								<div class="actnbr-follow-bubble">
1569								<div class="actnbr-panel__group"><a class="actnbr-menu__item actnbr-sitename" href="https://andy.xyz"><img loading='lazy' alt='' src='https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=50&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png' srcset='https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=50&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 1x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=75&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 1.5x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=100&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 2x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=150&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 3x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=200&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 4x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Andy.xyz</span></a></div>																	<div class="actnbr-panel__group">
1570										<div class="actnbr-message no-display" aria-live="polite"></div>
1571										<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" class="no-display">
1572																							<div class="actnbr-follow-count">Join 35 other subscribers</div>
1573																							<input type="email" name="email" placeholder="Want updates? Enter your email" class="actnbr-email-field" aria-label="Email address" />
1574											<input type="hidden" name="action" value="subscribe" />
1575											<input type="hidden" name="blog_id" value="63451150" />
1576											<input type="hidden" name="source" value="https://andy.xyz/speaking/" />
1577											<input type="hidden" name="sub-type" value="actionbar-follow" />
1578											<input type="hidden" id="_wpnonce" name="_wpnonce" value="be0fa805bd" />											<button type="submit" class="actnbr-button">Sign me up</button>
1579										</form>
1580										<p class="actnbr-login-nudge">
1581											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%252Fandy.xyz%252Fspeaking%252F">Log in now.</a>										</p>
1582									</div>
1583																	</div>
1584							</div>
1585						</li>
1586									<li class="actnbr-ellipsis actnbr-hidden">
1587					<button type="button" class="actnbr-more-toggle" aria-haspopup="true" aria-expanded="false" aria-label="More options">
1588						<svg class="actnbr-icon actnbr-icon-more-horizontal" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M11 13h2v-2h-2v2zm-6 0h2v-2H5v2zm12-2v2h2v-2h-2z"/></svg>					</button>
1589					<div class="actnbr-popover actnbr-menu" role="menu" aria-label="Site options">
1590						<div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-sitename" href="https://andy.xyz"><img loading='lazy' alt='' src='https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=50&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png' srcset='https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=50&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 1x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=75&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 1.5x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=100&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 2x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=150&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 3x, https://secure.gravatar.com/blavatar/796dee30ca012cb373db61fb3f0f84969f1c0c12fd91ad746539e8188743d309?s=200&#038;d=https%3A%2F%2Fs-ssl.wordpress.com%2Fi%2Flogo%2Fwpcom-gray-white.png 4x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Andy.xyz</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-shortlink" href="https://wp.me/P4iexE-22C"><span class="actnbr-menu__label actnbr-shortlink__text">Copy shortlink</span><span class="actnbr-menu__icon actnbr-shortlink__icon"><svg class="actnbr-icon actnbr-icon-copy" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M5 4.5h11a.5.5 0 0 1 .5.5v11a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5ZM3 5a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm17 3v10.75c0 .69-.56 1.25-1.25 1.25H6v1.5h12.75a2.75 2.75 0 0 0 2.75-2.75V8H20Z"/></svg></span><span class="actnbr-menu__icon actnbr-shortlink__icon-copied"><svg class="actnbr-icon actnbr-icon-check" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M7 12L10 15L17 8" vector-effect="non-scaling-stroke"/></svg></span></a><a role="menuitem" class="actnbr-menu__item actnbr-reader" href="https://wordpress.com/reader/blogs/63451150/posts/7850"><span class="actnbr-menu__label">View post in Reader</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-subs" href="https://subscribe.wordpress.com/"><span class="actnbr-menu__label">Manage subscriptions</span></a><a role="menuitem" class="actnbr-menu__item actnbr-signup" href="https://wordpress.com/start/"><span class="actnbr-menu__label">Sign up</span></a><a role="menuitem" class="actnbr-menu__item actnbr-login" href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fandy.xyz%252Fspeaking%252F"><span class="actnbr-menu__label">Log in</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item flb-report" href="https://wordpress.com/abuse/?report_url=https://andy.xyz/speaking/" target="_blank" rel="noopener noreferrer"><span class="actnbr-menu__label">Report this content</span><span class="actnbr-menu__icon"><svg class="actnbr-icon actnbr-icon-external" width="18" height="18" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" fill="currentColor"><path d="M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"/></svg></span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-fold" href=""><span class="actnbr-menu__label">Collapse this bar</span></a></div>					</div>
1591				</li>
1592			</ul>
1593		</div>
1594		
1594<script>
1595window.addEventListener( "DOMContentLoaded", function () {
1596				var link = document.createElement( "link" );
1597				link.href = "\/wp-content\/mu-plugins\/jetpack-plugin\/sun\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.css?ver=9e2715140ce0af99d983";
1598				link.rel = "stylesheet";
1599				document.head.appendChild( link );
1600
1601				var script = document.createElement( "script" );
1602				script.src = "\/wp-content\/mu-plugins\/jetpack-plugin\/sun\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.js?ver=9e2715140ce0af99d983";
1603				document.body.appendChild( script );
1604			} );
1605</script>
1605
1606
1607	
1607<script type="text/javascript">
1608		window.WPCOM_sharing_counts = {"https://andy.xyz/speaking/":7850};
1609	</script>
1609
1610				
1611	
1611<script type="text/javascript">
1612		(function () {
1613			var wpcom_reblog = {
1614				source: 'toolbar',
1615
1616				toggle_reblog_box_flair: function (obj_id, post_id) {
1617
1618					// Go to site selector. This will redirect to their blog if they only have one.
1619					const postEndpoint = `https://wordpress.com/post`;
1620
1621					// Ideally we would use the permalink here, but fortunately this will be replaced with the 
1622					// post permalink in the editor.
1623					const originalURL = `${ document.location.href }?page_id=${ post_id }`; 
1624					
1625					const url =
1626						postEndpoint +
1627						'?url=' +
1628						encodeURIComponent( originalURL ) +
1629						'&is_post_share=true' +
1630						'&v=5';
1631
1632					const redirect = function () {
1633						if (
1634							! window.open( url, '_blank' )
1635						) {
1636							location.href = url;
1637						}
1638					};
1639
1640					if ( /Firefox/.test( navigator.userAgent ) ) {
1641						setTimeout( redirect, 0 );
1642					} else {
1643						redirect();
1644					}
1645				},
1646			};
1647
1648			window.wpcom_reblog = wpcom_reblog;
1649		})();
1650	</script>
vendor: 1 bytes, line 1650
1650
1651<script id="sharing-js-js-extra">
1652var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"};
1653//# sourceURL=sharing-js-js-extra
1654</script>
vendor: 1 bytes, line 1654
1654
1655<script crossorigin='anonymous' type='text/javascript'  src='/_static/??-eJyNkN0KwjAMhV/ILgiD6YX4KJK12Zqty+ra+PP2TlEYXvUicALfgY8D92jsLJkkw6QmBu1ZEgQeKcFVScmjuEBLNaQdbODsaVqRqC1YFFwcDAkEb9xj5lmK8I4w60LuRxWVPKEr1EmEi/VlKEsfqBB11GKhwcjRBJbRdLPVZDp+/Pc2qw+UI9rx+0NSgQuLhVY5OEge163QuecnrsLVxO+hz9Np3xyaY12vN7wAQ8mssA=='></script>
vendor: 1 bytes, line 1655
1655
1656<script id="sharing-js-js-after">
1657window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
1658window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350";
1659window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
1660window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400";
1661//# sourceURL=sharing-js-js-after
1662</script>
vendor: 1 bytes, line 1662
1662
1663<script id="wp-emoji-settings" type="application/json">
1664{"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=1783090810i&ver=7.1.1-alpha-63587"}}
1665</script>
vendor: 1 bytes, line 1665
1665
1666<script type="module">
1667/*! This file is auto-generated */
1668var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,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 r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[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,r){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!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));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(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
1669//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js
1670</script>
vendor: 1 bytes, line 1670
1670
1671<script src="//stats.wp.com/w.js?69" defer></script>
1671 
1671<script type="text/javascript">
1672_tkq = window._tkq || [];
1673_stq = window._stq || [];
1674_tkq.push(['storeContext', {'blog_id':'63451150','blog_tz':'1','user_lang':'en','blog_lang':'en','user_id':'0'}]);
1675		// Prevent sending pageview tracking from WP-Admin pages.
1676		_stq.push(['view', {'blog':'63451150','v':'wpcom','tz':'1','user_id':'0','post':'7850','subd':'ajwilliams45'}]);
1677		_stq.push(['extra', {'crypt':'UE5tW3cvZGQ9QytlU1QvTzd6d0gtZkNkMk1uUXIwSkZiZWxUa1FFVnJ5W2YxfnFPUzRaS1J6VnQxfGlRYlomK0NaXU42OU1kcHRlM35dWlhOc2ZTaDdaLHBXS2ptXTEvVmV6VHRbWmp5TGZHSHVibGpYa3RBMnBjUlpVUzBMelVUVGs4Y3EzbWF4WXJLfkE4SGp3ZVk3enYxMjRCRi0rSmJTNz8rNH5lZUo/cXA5'}]);
1678_stq.push([ 'clickTrackerInit', '63451150', '7850' ]);
1679</script>
1679
1680<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
1681<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="Europe/London" data-custom-props="{&quot;enq_jquery&quot;:&quot;1&quot;,&quot;logged_in&quot;:&quot;0&quot;,&quot;wptheme&quot;:&quot;pub\/canard&quot;,&quot;wptheme_is_block&quot;:&quot;0&quot;}"   >
1682		
1682<script defer src="/wp-content/js/bilmur.min.js?i=19&amp;m=202639"></script>
1682 	
1683</body>
1684</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.