1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 3<head profile="http://gmpg.org/xfn/11"> 4 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 <title>Commenting | Chris Swan's Weblog</title> 7 <meta name="description" content="IT mixology and other thoughts about tech, life the universe and everything" /> 8 <!--[if IE]> 9 <link rel="stylesheet" href="https://s0.wp.com/wp-content/themes/pub/unsleepable/ie.css?m=1314316350i" type="text/css" media="screen" /> 10 <![endif]--> 11 <!--[if IE 6]> 12 <link rel="stylesheet" href="https://s0.wp.com/wp-content/themes/pub/unsleepable/ie6.css?m=1221676594i" type="text/css" media="screen" /> 13 <![endif]--> 14 <link rel="pingback" href="https://blog.thestateofme.com/xmlrpc.php" /> 15 <meta name='robots' content='max-image-preview:large' /> 16<meta name="google-site-verification" content="MCkHk5uMsU2ZyJZlsbqIgv25oZkxbkEdA5MsZE0azqM" /> 17 18<!-- Async WordPress.com Remote Login -->
19<script id="wpcom_remote_login_js"> 20var wpcom_remote_login_extra_auth = ''; 21function wpcom_remote_login_remove_dom_node_id( element_id ) { 22 var dom_node = document.getElementById( element_id ); 23 if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); } 24} 25function wpcom_remote_login_remove_dom_node_classes( class_name ) { 26 var dom_nodes = document.querySelectorAll( '.' + class_name ); 27 for ( var i = 0; i < dom_nodes.length; i++ ) { 28 dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] ); 29 } 30} 31function wpcom_remote_login_final_cleanup() { 32 wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" ); 33 wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); 34 wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" ); 35 wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" ); 36 wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" ); 37 wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" ); 38} 39 40// Watch for messages back from the remote login 41window.addEventListener( "message", function( e ) { 42 if ( e.origin === "https://r-login.wordpress.com" ) { 43 var data = {}; 44 try { 45 data = JSON.parse( e.data ); 46 } catch( e ) { 47 wpcom_remote_login_final_cleanup(); 48 return; 49 } 50 51 if ( data.msg === 'LOGIN' ) { 52 // Clean up the login check iframe 53 wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); 54 55 var id_regex = new RegExp( /^[0-9]+$/ ); 56 var token_regex = new RegExp( /^.*|.*|.*$/ ); 57 if ( 58 token_regex.test( data.token ) 59 && id_regex.test( data.wpcomid ) 60 ) { 61 // We have everything we need to ask for a login 62 var script = document.createElement( "script" ); 63 script.setAttribute( "id", "wpcom_remote_login_validate" ); 64 script.src = '/remote-login.php?wpcom_remote_login=validate' 65 + '&wpcomid=' + data.wpcomid 66 + '&token=' + encodeURIComponent( data.token ) 67 + '&host=' + window.location.protocol 68 + '//' + window.location.hostname 69 + '&postid=327' 70 + '&is_singular='; 71 document.body.appendChild( script ); 72 } 73 74 return; 75 } 76 77 // Safari ITP, not logged in, so redirect 78 if ( data.msg === 'LOGIN-REDIRECT' ) { 79 window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href; 80 return; 81 } 82 83 // Safari ITP, storage access failed, remove the request 84 if ( data.msg === 'LOGIN-REMOVE' ) { 85 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; } }'; 86 var style_zap = document.createElement( 'style' ); 87 style_zap.type = 'text/css'; 88 style_zap.appendChild( document.createTextNode( css_zap ) ); 89 document.body.appendChild( style_zap ); 90 91 var e = document.getElementById( 'wpcom_request_access_iframe' ); 92 e.parentNode.removeChild( e ); 93 94 document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000'; 95 96 return; 97 } 98 99 // Safari ITP 100 if ( data.msg === 'REQUEST_ACCESS' ) { 101 console.log( 'request access: safari' ); 102 103 // Check ITP iframe enable/disable knob 104 if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) { 105 return; 106 } 107 108 // If we are in a "private window" there is no ITP. 109 var private_window = false; 110 try { 111 var opendb = window.openDatabase( null, null, null, null ); 112 } catch( e ) { 113 private_window = true; 114 } 115 116 if ( private_window ) { 117 console.log( 'private window' ); 118 return; 119 } 120 121 var iframe = document.createElement( 'iframe' ); 122 iframe.id = 'wpcom_request_access_iframe'; 123 iframe.setAttribute( 'scrolling', 'no' ); 124 iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' ); 125 iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid ); 126 127 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; } '; 128 129 var style = document.createElement( 'style' ); 130 style.type = 'text/css'; 131 style.id = 'wpcom_request_access_styles'; 132 style.appendChild( document.createTextNode( css ) ); 133 document.body.appendChild( style ); 134 135 document.body.appendChild( iframe ); 136 } 137 138 if ( data.msg === 'DONE' ) { 139 wpcom_remote_login_final_cleanup(); 140 } 141 } 142}, false ); 143 144// Inject the remote login iframe after the page has had a chance to load 145// more critical resources 146window.addEventListener( "DOMContentLoaded", function( e ) { 147 var iframe = document.createElement( "iframe" );
148 iframe.style.display = "none"; 149 iframe.setAttribute( "scrolling", "no" ); 150 iframe.setAttribute( "id", "wpcom_remote_login_key" ); 151 iframe.src = "https://r-login.wordpress.com/remote-login.php" 152 + "?wpcom_remote_login=key" 153 + "&origin=aHR0cHM6Ly9ibG9nLnRoZXN0YXRlb2ZtZS5jb20%3D" 154 + "&wpcomid=2465139" 155 + "&time=" + Math.floor( Date.now() / 1000 ); 156 document.body.appendChild( iframe ); 157}, false ); 158</script>
158 159<link rel='dns-prefetch' href='//s0.wp.com' /> 160<link rel="alternate" type="application/rss+xml" title="Chris Swan's Weblog » Feed" href="https://blog.thestateofme.com/feed/" /> 161<link rel="alternate" type="application/rss+xml" title="Chris Swan's Weblog » Comments Feed" href="https://blog.thestateofme.com/comments/feed/" /> 162
162<script type="text/javascript"> 163 /* <![CDATA[ */ 164 function addLoadEvent(func) { 165 var oldonload = window.onload; 166 if (typeof window.onload != 'function') { 167 window.onload = func; 168 } else { 169 window.onload = function () { 170 oldonload(); 171 func(); 172 } 173 } 174 } 175 /* ]]> */ 176 </script>
176 177 <style id="wp-img-auto-sizes-contain-inline-css"> 178img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 179/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 180</style> 181<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='/_static/??/wp-content/mu-plugins/likes/jetpack-likes.css,/wp-content/mu-plugins/infinity/themes/pub/unsleepable.css?m=1743883414j&cssminify=yes' type='text/css' media='all' /> 182<style id="wp-emoji-styles-inline-css"> 183 184 img.wp-smiley, img.emoji { 185 display: inline !important; 186 border: none !important; 187 box-shadow: none !important; 188 height: 1em !important; 189 width: 1em !important; 190 margin: 0 0.07em !important; 191 vertical-align: -0.1em !important; 192 background: none !important; 193 padding: 0 !important; 194 } 195/*# sourceURL=wp-emoji-styles-inline-css */ 196</style> 197<style id="wp-block-library-inline-css"> 198: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;
198--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}} 199 200/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/common.min.css */ 201</style> 202<style id="wp-block-library-inline-css-extra"> 203.has-text-align-justify { 204 text-align:justify; 205} 206.has-text-align-justify{text-align:justify;} 207/*# sourceURL=wp-block-library-inline-css */ 208</style> 209 210<style id="classic-theme-styles-inline-css"> 211.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.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} 212/*# sourceURL=/wp-content/plugins/gutenberg-core/v24.0.0/build/styles/block-library/classic.min.css */ 213</style> 214 215<style id="coblocks-inline-format-inline-css"> 216.uppercase{text-transform:uppercase} 217/*# sourceURL=coblocks-inline-format-inline-css */ 218</style> 219<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9jcEKg0AMRH+oaVhorR7Eb9E16IpZg8min2889FZ6GYbhPQYPgbhlo2zIBWQtU8qKcdvJd5be0AmmMfW0Ejv2jKoP/K0daZzIXNdvB6PzvyJ+A8MgO6mCJ6fCYLN/6e113IZXU9WfUL/DcgHSTkDo&cssminify=yes' type='text/css' media='all' /> 220<style id="global-styles-inline-css"> 221:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
2210) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
221.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;} 222/*# sourceURL=global-styles-inline-css */ 223</style> 224 225<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/_static/??-eJx9i0EOgzAMwD60LkKgjR0Qb2mrrOuUJhVJhfb7wQ0u3GzJhrW6KGzIBvbBggq1BWishFh9IAS1H+E9qt7gEJfmKrWUWWHBQJI2TLBVB72aEoojid6y8Encm3xe9nUuU/ccuser74fx+weWSj7U&cssminify=yes' type='text/css' media='all' /> 226<link crossorigin='anonymous' rel='stylesheet' id='print-css-15-1' href='/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' /> 227<style id="jetpack-global-styles-frontend-style-inline-css"> 228: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;} 229/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */ 230</style> 231<link crossorigin='anonymous' rel='stylesheet' id='all-css-18-1' href='/_static/??-eJyNjcsKAjEMRX/ImhmUURfip0inLW3GNCmmQfx7H7gRN+7ugcs5cGsuCPfEHaq5RpaRFZbUmw+XD4MaQ5VolBS0+GuKPsb7eyLndVBdwd+iM3KA2ZAiqAT05Eiy6Bf8KHtJ9RkvW8gks6fX4VSP426/mQ7TMA7LA38FSqA=&cssminify=yes' type='text/css' media='all' />
232<script id="wpcom-actionbar-placeholder-js-extra"> 233var actionbardata = {"siteID":"2465139","postID":"327","siteURL":"https://blog.thestateofme.com","xhrURL":"https://blog.thestateofme.com/wp-admin/admin-ajax.php","nonce":"9ca2b05b72","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&ver=20211021","shortlink":"https://wp.me/Palij-5h","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."}}; 234//# sourceURL=wpcom-actionbar-placeholder-js-extra 235</script>
vendor: 1 bytes, line 235
235
236<script id="jetpack-mu-wpcom-settings-js-before"> 237var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s0.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/sun/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"}; 238//# sourceURL=jetpack-mu-wpcom-settings-js-before 239</script>
vendor: 1 bytes, line 239
239
240<script crossorigin='anonymous' type='text/javascript' src='/wp-content/js/rlt-proxy.js?m=1720530689i'></script>
vendor: 1 bytes, line 240
240
241<script id="rlt-proxy-js-after"> 242 rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} ); 243//# sourceURL=rlt-proxy-js-after 244</script>
244 245<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://thestateofme.wordpress.com/xmlrpc.php?rsd" /> 246<meta name="generator" content="WordPress.com" /> 247<link rel="canonical" href="https://blog.thestateofme.com/comments-policy/" /> 248<link rel='shortlink' href='https://wp.me/Palij-5h' /> 249<link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&url=https%3A%2F%2Fblog.thestateofme.com%2Fcomments-policy%2F&for=wpcom-auto-discovery" /><link rel="alternate" type="application/xml+oembed" href="https://public-api.wordpress.com/oembed/?format=xml&url=https%3A%2F%2Fblog.thestateofme.com%2Fcomments-policy%2F&for=wpcom-auto-discovery" /> 250<!-- Jetpack Open Graph Tags --> 251<meta property="og:type" content="article" /> 252<meta property="og:title" content="Commenting" /> 253<meta property="og:url" content="https://blog.thestateofme.com/comments-policy/" /> 254<meta property="og:description" content="Comments policy I want to have comments and discussion here, and I will happily approve any comment that contributes to the conversation. Anything along the lines of ‘I really like your blog&â¦" /> 255<meta property="article:published_time" content="2010-05-15T16:56:39+00:00" /> 256<meta property="article:modified_time" content="2010-12-07T17:31:09+00:00" /> 257<meta property="og:site_name" content="Chris Swan's Weblog" /> 258<meta property="og:image" content="https://s0.wp.com/i/blank.jpg?m=1383295312i" /> 259<meta property="og:image:width" content="200" /> 260<meta property="og:image:height" content="200" /> 261<meta property="og:image:alt" content="" /> 262<meta property="og:locale" content="en_US" /> 263<meta property="article:publisher" content="https://www.facebook.com/WordPresscom" /> 264<meta name="twitter:text:title" content="Commenting" /> 265<meta name="twitter:card" content="summary" /> 266 267<!-- End Jetpack Open Graph Tags --> 268<link rel="shortcut icon" type="image/x-icon" href="https://s0.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" /> 269<link rel="icon" type="image/x-icon" href="https://s0.wp.com/i/favicon.ico?m=1713425267i" sizes="16x16 24x24 32x32 48x48" /> 270<link rel="apple-touch-icon" href="https://s0.wp.com/i/webclip.png?m=1713868326i" /> 271<link rel='openid.server' href='https://blog.thestateofme.com/?openidserver=1' /> 272<link rel='openid.delegate' href='https://blog.thestateofme.com/' /> 273<link rel="search" type="application/opensearchdescription+xml" href="https://blog.thestateofme.com/osd.xml" title="Chris Swan's Weblog" /> 274<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" /> 275 <style id="wpcom-hotfix-masterbar-style"> 276 @media screen and (min-width: 783px) { 277 #wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img { 278 margin-top: 5px; 279 } 280 } 281 </style> 282 <style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <style type="text/css"> 283 .recentcomments a { 284 display: inline !important; 285 padding: 0 !important; 286 margin: 0 !important; 287 } 288 289 table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar { 290 border: 0px; 291 margin: 0; 292 } 293 294 table.recentcommentsavatartop a, table.recentcommentsavatarend a { 295 border: 0px !important; 296 background-color: transparent !important; 297 } 298 299 td.recentcommentsavatarend, td.recentcommentsavatartop { 300 padding: 0px 0px 1px 0px; 301 margin: 0px; 302 } 303 304 td.recentcommentstextend { 305 border: none !important; 306 padding: 0px 0px 2px 10px; 307 } 308 309 .rtl td.recentcommentstextend { 310 padding: 0px 10px 2px 0px; 311 } 312 313 td.recentcommentstexttop { 314 border: none; 315 padding: 0px 0px 0px 10px; 316 } 317 318 .rtl td.recentcommentstexttop { 319 padding: 0px 10px 0px 0px; 320 } 321 </style> 322 323<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-3' href='/wp-content/mu-plugins/jetpack-plugin/sun/modules/widgets/top-posts/style.css?m=1753279645i&cssminify=yes' type='text/css' media='all' /> 324 325</head> 326 327<body class="wp-singular page-template-default page page-id-327 wp-theme-pubunsleepable customizer-styles-applied jetpack-reblog-enabled"> 328 329<div id="page"> 330 331 <div id="header"> 332 <div class="top"> 333 <div id="title">
334 <a href="https://blog.thestateofme.com/" title="Back to the front page">Chris Swan's Weblog</a> 335 </div> 336 337 <ul id="menu"> 338 <li class="page_item page-item-2"><a href="https://blog.thestateofme.com/about_blog/">About</a></li> 339<li class="page_item page-item-327 current_page_item"><a href="https://blog.thestateofme.com/comments-policy/" aria-current="page">Commenting</a></li> 340<li class="page_item page-item-386"><a href="https://blog.thestateofme.com/speaking/">Speaking</a></li> 341<li class="page_item page-item-3321"><a href="https://blog.thestateofme.com/podcasts/">Podcasts</a></li> 342<li class="page_item page-item-4802"><a href="https://blog.thestateofme.com/dart/">Dart</a></li> 343</ul> 344 345 </div> 346 </div> 347 348 <hr /> 349 350<div class="content"> 351 352 <div class="primary"> 353 354 355 <div class="item2"> 356 357 <div class="pagetitle"> 358 <h2 id="post-327">Commenting</h2> 359 </div> 360 361 <div class="itemtext"> 362 <h2><strong>Comments policy</strong></h2> 363<p>I want to have comments and discussion here, and I will happily approve any comment that contributes to the conversation.</p> 364<p>Anything along the lines of ‘I really like your blog’ will be treated as spam. If you like the blog, then say something meaningful and on topic.</p> 365<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-facebook"><a rel="nofollow noopener noreferrer" 366 data-shared="sharing-facebook-327" 367 class="share-facebook sd-button share-icon" 368 href="https://blog.thestateofme.com/comments-policy/?share=facebook" 369 target="_blank" 370 aria-labelledby="sharing-facebook-327" 371 > 372 <span id="sharing-facebook-327" hidden>Share on Facebook (Opens in new window)</span> 373 <span>Facebook</span> 374 </a></li><li class="share-x"><a rel="nofollow noopener noreferrer" 375 data-shared="sharing-x-327" 376 class="share-x sd-button share-icon" 377 href="https://blog.thestateofme.com/comments-policy/?share=x" 378 target="_blank" 379 aria-labelledby="sharing-x-327" 380 > 381 <span id="sharing-x-327" hidden>Share on X (Opens in new window)</span> 382 <span>X</span> 383 </a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-2465139-327-6ab671db28540' data-src='//widgets.wp.com/likes/index.html?ver=20260925#blog_id=2465139&post_id=327&origin=thestateofme.wordpress.com&obj_id=2465139-327-6ab671db28540&domain=blog.thestateofme.com' data-name='like-post-frame-2465139-327-6ab671db28540' data-title='Like or Reblog'><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>Like</span></span> <span class='loading'>Loading...</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div></div> 384 </div> 385 386 </div> 387 388 389 390 </div> 391 392 393<hr /> 394 395<ul class="secondary"> 396 397<li id="text-2" class="widget widget_text"><h2 class="widgettitle">Subscribe</h2> 398 <div class="textwidget"><p><a><img src="https://i0.wp.com/www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt=""></a> <a href="https://blog.thestateofme.com/feed" rel="alternate">Default feed link</a></p> 399 400<p><a href="http://feeds.feedburner.com/thestateofme" rel="alternate"><img src="https://i0.wp.com/www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt=""></a> <a href="http://feeds.feedburner.com/thestateofme" rel="alternate">Subscribe in a reader</a></p></div> 401 </li><li id="search-3" class="widget widget_search"><h2 class="widgettitle">Search</h2> 402<form method="get" id="searchform" action="https://blog.thestateofme.com/"> 403 <div> 404 <input type="text" value="Search..." onfocus="if (this.value == 'Search...' ) { this.value = ''; }" onblur="if (this.value == '') { this.value = 'Search...';}" name="s" id="s" size="15" /> 405 <input type="submit" id="searchsubmit" value="Go" /> 406 </div> 407</form></li><li id="top-posts-2" class="widget widget_top-posts"><h2 class="widgettitle">Top Posts</h2> 408<ul><li><a href="https://blog.thestateofme.com/2026/09/18/the-stories-we-tell/" class="bump-view" data-bump-view="tp">The stories we tell</a></li><li><a href="https://blog.thestateofme.com/2026/09/24/milo-cancer-diary-part-25-remission-again-again/" class="bump-view" data-bump-view="tp">Milo cancer diary part 25 - remission again (again)</a></li><li>
408<a href="https://blog.thestateofme.com/2019/05/27/retro-computing-tms9995-on-rc2014/" class="bump-view" data-bump-view="tp">Retro Computing - TMS9995 on RC2014</a></li><li><a href="https://blog.thestateofme.com/2024/11/30/gl-inet-mt-6000-flint2-review/" class="bump-view" data-bump-view="tp">GL.iNet MT-6000 Flint2 Review</a></li><li><a href="https://blog.thestateofme.com/2022/02/21/rc2014-mini-on-mame/" class="bump-view" data-bump-view="tp">RC2014 Mini on MAME</a></li><li><a href="https://blog.thestateofme.com/2019/05/19/retro-computing-planning-a-tms-9995-build-on-rc2014/" class="bump-view" data-bump-view="tp">Retro Computing - Planning a TMS 9995 Build on RC2014</a></li><li><a href="https://blog.thestateofme.com/2022/03/12/tms9995-breadboard-system-on-mame/" class="bump-view" data-bump-view="tp">TMS9995 Breadboard System on MAME</a></li><li><a href="https://blog.thestateofme.com/2022/09/05/signing-github-commits-with-ssh-keys/" class="bump-view" data-bump-view="tp">Signing GitHub commits with SSH keys</a></li><li><a href="https://blog.thestateofme.com/2019/07/30/rescuing-gen-8-microserver-from-rogue-ilo/" class="bump-view" data-bump-view="tp">Rescuing Gen 8 Microserver from rogue iLO</a></li><li><a href="https://blog.thestateofme.com/2014/12/03/node-red-on-wrtnode/" class="bump-view" data-bump-view="tp">Node-RED on WRTnode</a></li></ul></li> 409 <li id="recent-posts-2" class="widget widget_recent_entries"> 410 <h2 class="widgettitle">Recent Posts</h2> 411 412 <ul> 413 <li> 414 <a href="https://blog.thestateofme.com/2026/09/24/milo-cancer-diary-part-25-remission-again-again/">Milo cancer diary part 25 – remission again (again)</a> 415 </li> 416 <li> 417 <a href="https://blog.thestateofme.com/2026/09/18/the-stories-we-tell/">The stories we tell</a> 418 </li> 419 <li> 420 <a href="https://blog.thestateofme.com/2026/09/14/the-impersonal-ai-advantage/">The impersonal AI advantage</a> 421 </li> 422 <li> 423 <a href="https://blog.thestateofme.com/2026/09/03/august-2026/">August 2026</a> 424 </li> 425 <li> 426 <a href="https://blog.thestateofme.com/2026/08/27/milo-cancer-diary-part-24-fifth-protocol/">Milo cancer diary part 24 – Fifth protocol</a> 427 </li> 428 </ul> 429 430 </li><li id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widgettitle">Recent Comments</h2> 431 <table class="recentcommentsavatar" cellspacing="0" cellpadding="0" border="0"> 432 <tr><td title="Chris Swan" class="recentcommentsavatartop" style="height:48px; width:48px;"><a href="https://blog.thestateofme.com" rel="nofollow"><img referrerpolicy="no-referrer" alt='Chris Swan's avatar' src='https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=48&d=identicon' srcset='https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=48&d=identicon 1x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=72&d=identicon 1.5x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=96&d=identicon 2x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=144&d=identicon 3x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=192&d=identicon 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstexttop" style=""><a href="https://blog.thestateofme.com" rel="nofollow">Chris Swan</a> on <a href="https://blog.thestateofme.com/2026/08/01/july-2026/#comment-1295474">July 2026</a></td></tr><tr><td title="Tim Swan" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Tim Swan's avatar' src='https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=48&d=identicon' srcset='https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=48&d=identicon 1x, https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=72&d=identicon 1.5x, https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=96&d=identicon 2x, https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=144&d=identicon 3x, https://0.gravatar.com/avatar/0ab412733f5635877b09be1f698d810d87a89a99b018d2b4976a5144759b4531?s=192&d=identicon 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Tim Swan on <a href="https://blog.thestateofme.com/2026/08/01/july-2026/#comment-1295473">July 2026</a></td></tr><tr><td title="Chris Swan" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="https://blog.thestateofme.com" rel="nofollow"><img referrerpolicy="no-referrer" alt='Chris Swan's avatar' src='https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=48&d=identicon' srcset='https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=48&d=identicon 1x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=72&d=identicon 1.5x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=96&d=identicon 2x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=144&d=identicon 3x, https://0.gravatar.com/avatar/966beaa9f6a1a7de5c36e3e77c4bb5d0b3cb2ff9b0804c3a8d08cae6949880b0?s=192&d=identicon 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></a></td><td class="recentcommentstextend" style=""><a href="https://blog.thestateofme.com" rel="nofollow">Chris Swan</a> on <a href="https://blog.thestateofme.com/2026/07/27/brewsters-trillions/#comment-1295470">Brewster’s Trillions</a></td></tr><tr><td title="Ian Osborne" class="recentcommentsavatarend" style="height:48px; width:48px;"><img referrerpolicy="no-referrer" alt='Ian Osborne's avatar' src='https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=48&d=identicon' srcset='https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=48&d=identicon 1x, https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=72&d=identicon 1.5x, https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=96&d=identicon 2x, https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=144&d=identicon 3x, https://2.gravatar.com/avatar/eec43ebdbba65c68bfcf9c6c4415c7a8111060d31046f76fa3ed366b4b6edcdd?s=192&d=identicon 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></td><td class="recentcommentstextend" style="">Ian Osborne on <a href="https://blog.thestateofme.com/2026/07/27/brewsters-trillions/#comment-1295469">Brewster’s Trillions</a></td></tr><tr>
432<td title="Monki Gras 2026: Wrapped! – James Governor's Monkchips" class="recentcommentsavatarend" style="height:48px; width:48px;"><a href="https://redmonk.com/jgovernor/monki-gras-2026-wrapped/" rel="nofollow"></a></td><td class="recentcommentstextend" style=""><a href="https://redmonk.com/jgovernor/monki-gras-2026-wrapped/" rel="nofollow">Monki Gras 2026: Wra…</a> on <a href="https://blog.thestateofme.com/2026/03/27/monki-gras-2026/#comment-1295428">Monki Gras 2026</a></td></tr> </table> 433 </li><li id="rss-2" class="widget widget_rss"><h2 class="widgettitle"><a class="rsswidget" href="http://feeds.pinboard.in/rss/u:cpswan" title="Syndicate this content"><img style="background: orange; color: white; border: none;" width="14" height="14" src="https://s.wordpress.com/wp-includes/images/rss.png?m=1354137473i" alt="RSS" /></a> <a class="rsswidget" href="https://pinboard.in/u:cpswan/public/" title="recent bookmarks from cpswan">Pinboard.in bookmarks</a></h2> 434<ul><li><a class='rsswidget' href='https://www.ams.org/journals/bull/1994-30-02/S0273-0979-1994-00502-6/S0273-0979-1994-00502-6.pdf' title=''>On proof and progress in mathematics (pdf)</a></li><li><a class='rsswidget' href='https://github.com/ringtailsoftware/misshod/blob/main/doc/primer.md' title=''>Minimal SSH primer</a></li><li><a class='rsswidget' href='https://steve-yegge.medium.com/the-flat-curve-society-36c8b01eb33b' title=''>The Flat Curve Society</a></li><li><a class='rsswidget' href='https://emirb.github.io/blog/microvm-2026/' title=''>Your Container Is Not a Sandbox: The State of MicroVM Isolation in 2026</a></li><li><a class='rsswidget' href='https://github.com/sideprojectslab/PD-64' title=''>sideprojectslab/PD-64: A USB-PD switching PSU replacement for the C64 that also delivers galvanically insulated AC voltage</a></li><li><a class='rsswidget' href='https://www.science.org/content/article/deepfakes-are-everywhere-godfather-digital-forensics-fighting-back' title=''>Deepfakes are everywhere. The godfather of digital forensics is fighting back</a></li><li><a class='rsswidget' href='https://tempest.homemade.systems/' title=''>Tempest vs Tempest | The Making and Remaking of Atari's Iconic Video Game</a></li><li><a class='rsswidget' href='https://riseproject.dev/2026/03/24/announcing-the-rise-risc-v-runners-free-native-risc-v-ci-on-github/' title=''>RISE RISC-V Runners: free, native RISC-V CI on GitHub</a></li><li><a class='rsswidget' href='https://pluralistic.net/2026/03/07/reader-mode/' title=''>The web is bearable with RSS</a></li><li><a class='rsswidget' href='https://bsky.app/profile/ednewtonrex.bsky.social/post/3mgewred7n22v' title=''>House of Lords Digital & Communications Committee - AI, copyright & the creative industries</a></li></ul></li><li id="linkcat-1356" class="widget widget_links"><h2 class="widgettitle">Blogroll</h2> 435 436 <ul class='xoxo blogroll'> 437<li><a href="http://blogs.the451group.com/opensource" title="A blog for the enterprise open source community">451 CAOS Theory</a></li> 438<li><a href="http://www.adambosworth.net/" title="Thoughts on computing">Adam Bosworth’s Weblog</a></li> 439<li><a href="http://andrewmcafee.org/blog/">Andrew McAfee</a></li> 440<li><a href="https://behaviouralinvesting.blogspot.com/">Behavioural Investing</a></li> 441<li><a href="http://blog.capitalscf.com/">CapitalSCF</a></li> 442<li><a href="http://labs.divx.com">Carpe Visum</a></li> 443<li><a href="http://caustictech.typepad.com/caustictech/" title="a caustic look at all things tech">causticTech</a></li> 444<li><a href="http://www.antipope.org/charlie/blog-static/">Charles Stross</a></li> 445<li><a href="http://confusedofcalcutta.com" title="a blog about information">confused of calcutta</a></li> 446<li><a href="https://craphound.com" title="Cory Doctorow’s Literary Works">Cory Doctorow</a></li> 447<li><a href="http://www.craigmurray.org.uk/" title="The weblog of Craig Murray, former British Ambassador to Uzbekistan">Craig Murray</a></li> 448<li><a href="http://www.dancres.org/blitzblog">Dan Creswell’s Weblog</a></li> 449<li><a href="http://www.darkreading.com" title="Dark Reading – The Business of IT Security">Dark Reading</a></li> 450<li><a href="http://dilbertblog.typepad.com/the_dilbert_blog/" title="Dilbert humor, business absurdity, the meaning of life">Dilbert Blog</a></li> 451<li><a href="http://enigmatec.typepad.com/breaking_the_code/" title="Life and times of a 21st century technologist">DJW</a></li> 452<li><a href="http://www.itgarage.com" title="News, ideas and real world stories about how IT folks solve their own problems">Doc Searls</a></li> 453<li><a href="http://pluralsight.com/blogs/dbox/">Don Box’s Spoutlet</a></li> 454<li><a href="http://blog.dopplr.com" title="News, discussion and design chat about Dopplr">Dopplr</a></li> 455<li><a href="http://moglen.law.columbia.edu/blog" title="Reports From the Legal Side of the Free Softw
455are Movement, &c.">Eben Moglen</a></li> 456<li><a href="https://enhyper.blogspot.com/">Enhyper</a></li> 457<li><a href="https://financialcryptography.com/" title="Where the crypto rubber meets the Road of Finance…">Financial Cryptography</a></li> 458<li><a href="http://www.freddestin.com/blog/">Fred Destin</a></li> 459<li><a href="http://www.freedom-to-tinker.com" title="… is your freedom to understand, discuss, repair, and modify the technological devices you own.">Freedom to Tinker</a></li> 460<li><a href="http://grahamglass.blogs.com/main/">Graham Glass, etc.</a></li> 461<li><a href="http://blogs.sun.com/Gregp/" title="Greg Papadopoulos’s Weblog">Greg Matter</a></li> 462<li><a href="http://hagrant.wordpress.com" title="Hugh’s Spoutings and Ramblings">Hugh Grant</a></li> 463<li><a href="http://iandavis.com/blog" title="Digital explorations and experiments">Internet Alchemy</a></li> 464<li><a href="https://theinvisiblethings.blogspot.com/">Invisible Things</a></li> 465<li><a href="https://macstrac.blogspot.com/">James Strachan’s Weblog</a></li> 466<li><a href="http://www.johnmerrells.com" title="Entrepreneur. Engineer. Builder.">John Merrells</a></li> 467<li><a href="http://blog.jonudell.net" title="Strategies for Internet citizens">Jon Udel</a></li> 468<li><a href="http://www.cigital.com/justiceleague" title="The Cigital Software Security and Quality Blog">Justice League</a></li> 469<li><a href="http://www.identityblog.com" title="Digital Identity And Our Future">Kim Cameron</a></li> 470<li><a href="http://lambda-the-ultimate.org" title="Programming languages news, articles and discussion">Lambda the Ultimate – Programming Languages Weblog</a></li> 471<li><a href="http://www.lightbluetouchpaper.org" title="Security Research, Computer Laboratory, University of Cambridge">Light Blue Touchpaper</a></li> 472<li><a href="http://www.looselycoupled.com/blog/" title="Assembling on-demand services to automate business, commerce, and the sharing of knowledge">Loosely Coupled weblog</a></li> 473<li><a href="http://www.hutteman.com/weblog/" title="Luke Hutteman on Java, .NET, J2EE, RSS and whatever else comes to mind…">Luke Hutteman’s Weblog</a></li> 474<li><a href="http://blog.pmarca.com/">Marc Andreeson</a></li> 475<li><a href="http://nickselby.com/yak">Nick Selby</a></li> 476<li><a href="http://www.tbray.org/ongoing/">ongoing</a></li> 477<li><a href="http://beust.com/weblog/" title="Thoughts on Java, programming languages and software development in general.">Otaku, Cedric’s weblog</a></li> 478<li><a href="http://www.parkparadigm.com" title="Markets for the Digital Generation">Park Paradigm</a></li> 479<li><a href="http://www.paulgraham.com" title="Articles by Paul Graham">Paul Graham</a></li> 480<li><a href="http://blogs.zdnet.com/digitalID">Phil Becker</a></li> 481<li><a href="https://pi4tech.blogspot.com/">Pi4Tech</a></li> 482<li><a href="https://pjktech.blogspot.com/">PJKtech</a></li> 483<li><a href="http://radovanjanecek.net/blog" title="Service Oriented Architecture, SOA Governance, and everything else.">Radovan Janecek: Nothing Impersonal</a></li> 484<li><a href="http://pipes.yahoo.com/pipes/pipe.info?_id=dth0BVnE2xG19PBwrscPhQ" title="Pipes Output">rants</a></li> 485<li><a href="http://rmh.blogs.com/weblog/" title="Richard Monson-Haefel, Sr. Analyst for Burton Group">Richard Monson-Haefel</a></li> 486<li><a href="http://blogs.zdnet.com/SAAS" title="Applications on demand">SAAS</a></li> 487<li><a href="http://www.schneier.com/blog/" title="A blog covering security and security technology.">Schneier on Security</a></li> 488<li><a href="https://schneider.blogspot.com">Service Oriented Enterprise</a></li> 489<li><a href="http://weblogs.java.net/blog/webmink/">Simon Phipps’s Blog</a></li> 490<li><a href="http://almaer.com/blog" title="blogging about life, the universe, and everything tech">techno.blog(“Dion”)</a></li> 491<li><a href="http://www.bileblog.org" title="If you have nothing bad to say, say nothing.">The BileBlog</a></li> 492<li><a href="http://www.gridblog.com/index.xml" title="Grid Computing and Utility Computing News and Analysis">THE GRID BLOG</a></li> 493<li><a href="http://due-diligence.typepad.com/blog/" title="Letters from an inhabited dataspace">Tim Oren’s Due Diligence</a></li> 494<li><a href="http://dig.csail.mit.edu/breadcrumbs/blog/4">timbl’s blog</a></li> 495<li><a href="http://www.virtualization.info/home.html">virtualization.info</a></li> 496<li><a href="http://www.webmink.net/index.html" title="All the Mink, All The Time, via Syndication">WebMink</a></li> 497<li><a href="http://www.webservices.org" title="WebServices.Org Weblogs">
497WebServices.org</a></li> 498<li><a href="http://xkcd.com/" title="xkcd.com: A webcomic of romance and math humor.">XKCD</a></li> 499 500 </ul> 501</li> 502<li id="categories-2" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> 503<form action="https://blog.thestateofme.com" method="get"><label class="screen-reader-text" for="cat">Categories</label><select name='cat' id='cat' class='postform'> 504 <option value='-1'>Select Category</option> 505 <option class="level-0" value="14067">AI (2)</option> 506 <option class="level-0" value="2290">architecture (10)</option> 507 <option class="level-0" value="34971368">Arduino (9)</option> 508 <option class="level-0" value="67778846">BeagleBone (3)</option> 509 <option class="level-0" value="1917">beer (2)</option> 510 <option class="level-0" value="36507086">Bitcoin (2)</option> 511 <option class="level-0" value="91">blogging (8)</option> 512 <option class="level-0" value="1133778">cle (3)</option> 513 <option class="level-0" value="69816">cloud (86)</option> 514 <option class="level-0" value="656">code (24)</option> 515 <option class="level-0" value="151439281">CohesiveFT (19)</option> 516 <option class="level-0" value="6096">cooking (8)</option> 517 <option class="level-0" value="21398283">could_do_better (56)</option> 518 <option class="level-0" value="350127456">CraigMurray (15)</option> 519 <option class="level-0" value="276453">CTO (2)</option> 520 <option class="level-0" value="1098">culture (9)</option> 521 <option class="level-0" value="325481">Dart (6)</option> 522 <option class="level-0" value="22663009">did_do_better (16)</option> 523 <option class="level-0" value="4504191">Docker (49)</option> 524 <option class="level-0" value="7768906">DXC (7)</option> 525 <option class="level-0" value="576810924">DXC blogs (22)</option> 526 <option class="level-0" value="403745">e2.0 (9)</option> 527 <option class="level-0" value="524">film (1)</option> 528 <option class="level-0" value="160259">Gemini (3)</option> 529 <option class="level-0" value="2380578">Gigatron (1)</option> 530 <option class="level-0" value="303003074">Gizmo2 (1)</option> 531 <option class="level-0" value="10449">grumble (28)</option> 532 <option class="level-0" value="1921">howto (80)</option> 533 <option class="level-0" value="10679">identity (22)</option> 534 <option class="level-0" value="67525590">InfoQ news (44)</option> 535 <option class="level-0" value="46713213">Kubernetes (3)</option> 536 <option class="level-0" value="5950">making (11)</option> 537 <option class="level-0" value="117742">MAME (9)</option> 538 <option class="level-0" value="175">marketing (7)</option> 539 <option class="level-0" value="292">media (14)</option> 540 <option class="level-0" value="95469309">micro:bit (1)</option> 541 <option class="level-0" value="759234065">MiloCancerDiary (25)</option> 542 <option class="level-0" value="120">mobile (2)</option> 543 <option class="level-0" value="708965453">monthly_update (74)</option> 544 <option class="level-0" value="7426">networking (33)</option> 545 <option class="level-0" value="28285">operations (2)</option> 546 <option class="level-0" value="436">photography (2)</option> 547 <option class="level-0" value="1142">podcast (2)</option> 548 <option class="level-0" value="398">politics (26)</option> 549 <option class="level-0" value="9402">presentation (12)</option> 550 <option class="level-0" value="49695267">Raspberry Pi (73)</option> 551 <option class="level-0" value="217819934">RC2014 (16)</option> 552 <option class="level-0" value="1445">retro (15)</option> 553 <option class="level-0" value="1745">review (60)</option> 554 <option class="level-0" value="801">security (60)</option> 555 <option class="level-0" value="581">software (23)</option> 556 <option class="level-0" value="8553">strategy (5)</option> 557 <option class="level-0" value="6">technology (206)</option> 558 <option class="level-0" value="312726135">The New Stack (1)</option> 559 <option class="level-0" value="5582160">The Stack (3)</option> 560 <option class="level-0" value="721">this blog (4)</option>
561 <option class="level-0" value="556415025">Tinker Board (1)</option> 562 <option class="level-0" value="273342737">TMS9995 (6)</option> 563 <option class="level-0" value="200">travel (42)</option> 564 <option class="level-0" value="1">Uncategorized (15)</option> 565 <option class="level-0" value="1243799">wibble (24)</option> 566 <option class="level-0" value="260829204">WRTnode (3)</option> 567</select> 568</form>
568<script> 569( ( dropdownId ) => { 570 const dropdown = document.getElementById( dropdownId ); 571 function onSelectChange() { 572 setTimeout( () => { 573 if ( 'escape' === dropdown.dataset.lastkey ) { 574 return; 575 } 576 if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) { 577 dropdown.parentElement.submit(); 578 } 579 }, 250 ); 580 } 581 function onKeyUp( event ) { 582 if ( 'Escape' === event.key ) { 583 dropdown.dataset.lastkey = 'escape'; 584 } else { 585 delete dropdown.dataset.lastkey; 586 } 587 } 588 function onClick() { 589 delete dropdown.dataset.lastkey; 590 } 591 dropdown.addEventListener( 'keyup', onKeyUp ); 592 dropdown.addEventListener( 'click', onClick ); 593 dropdown.addEventListener( 'change', onSelectChange ); 594})( "cat" ); 595 596//# sourceURL=WP_Widget_Categories%3A%3Awidget 597</script>
597 598</li></ul> 599<div class="clear"></div> 600 601</div> 602 603<div style="clear:both;"></div> 604</div> 605<!-- Close Page --> 606 607<div id="footer"><br /><hr /> 608 609<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a> 610</div> 611 612<!-- -->
613<script type="speculationrules"> 614{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/unsleepable/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 615</script>
vendor: 1 bytes, line 615
615
616<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202639d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
vendor: 1 bytes, line 616
616
617<script id="wpgroho-js-extra"> 618var WPGroHo = {"my_hash":""}; 619//# sourceURL=wpgroho-js-extra 620</script>
vendor: 1 bytes, line 620
620
621<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>
621 622 623
623<script> 624 // Initialize and attach hovercards to all gravatars 625 ( function() { 626 function init() { 627 if ( typeof Gravatar === 'undefined' ) { 628 return; 629 } 630 631 if ( typeof Gravatar.init !== 'function' ) { 632 return; 633 } 634 635 Gravatar.profile_cb = function ( hash, id ) { 636 WPGroHo.syncProfileData( hash, id ); 637 }; 638 639 Gravatar.my_hash = WPGroHo.my_hash; 640 Gravatar.init( 641 'body', 642 '#wp-admin-bar-my-account', 643 { 644 i18n: { 645 'Edit your profile â': 'Edit your profile â', 646 'View profile â': 'View profile â', 647 'Contact': 'Contact', 648 'Send money': 'Send money', 649 'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.', 650 'Gravatar not found.': 'Gravatar not found.', 651 'Too Many Requests.': 'Too Many Requests.', 652 'Internal Server Error.': 'Internal Server Error.', 653 'Is this you?': 'Is this you?', 654 'Claim your free profile.': 'Claim your free profile.', 655 'Email': 'Email', 656 'Home Phone': 'Home Phone', 657 'Work Phone': 'Work Phone', 658 'Cell Phone': 'Cell Phone', 659 'Contact Form': 'Contact Form', 660 'Calendar': 'Calendar', 661 }, 662 } 663 ); 664 } 665 666 if ( document.readyState !== 'loading' ) { 667 init(); 668 } else { 669 document.addEventListener( 'DOMContentLoaded', init ); 670 } 671 } )(); 672 </script>
672 673 674 <div style="display:none"> 675 <div class="grofile-hash-map-5bffbbabb1c2338aca6852a317b4c3f0"> 676 </div> 677 <div class="grofile-hash-map-a134f077f0307a71f2771ca2a47944a6"> 678 </div> 679 <div class="grofile-hash-map-58002266d781d1ae0198ba59c3917bf4"> 680 </div> 681 </div> 682 <div id="actionbar" dir="ltr" style="display: none;" 683 class="actnbr-pub-unsleepable" role="region" aria-label="Site actions"> 684 <span class="actnbr-live" aria-live="polite"></span> 685 <ul> 686 <li class="actnbr-btn actnbr-hidden"> 687 <a class="actnbr-action actnbr-actn-follow " href="" role="button" aria-haspopup="dialog" aria-expanded="false"> 688 <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> 689 </a> 690 <a class="actnbr-action actnbr-actn-following no-display" href="" role="button"> 691 <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> 692 </a> 693 <div class="actnbr-popover actnbr-panel actnbr-notice" id="follow-bubble" role="dialog" aria-label="Subscribe to Chris Swan's Weblog"> 694 <div class="actnbr-follow-bubble"> 695 <div class="actnbr-panel__group"><a class="actnbr-menu__item actnbr-sitename" href="https://blog.thestateofme.com"><img loading='lazy' alt='' src='https://s-ssl.wordpress.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s-ssl.wordpress.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Chris Swan's Weblog</span></a></div> <div class="actnbr-panel__group"> 696 <div class="actnbr-message no-display" aria-live="polite"></div> 697 <form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" class="no-display"> 698 <div class="actnbr-follow-count">Join 296 other subscribers</div> 699 <input type="email" name="email" placeholder="Want updates? Enter your email" class="actnbr-email-field" aria-label="Email address" /> 700 <input type="hidden" name="action" value="subscribe" /> 701 <input type="hidden" name="blog_id" value="2465139" /> 702 <input type="hidden" name="source" value="https://blog.thestateofme.com/comments-policy/" /> 703 <input type="hidden" name="sub-type" value="actionbar-follow" /> 704 <input type="hidden" id="_wpnonce" name="_wpnonce" value="c7b2cc663f" /> <button type="submit" class="actnbr-button">Sign me up</button> 705 </form> 706 <p class="actnbr-login-nudge"> 707 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%252Fblog.thestateofme.com%252Fcomments-policy%252F">Log in now.</a> </p> 708 </div> 709 </div> 710 </div> 711 </li> 712 <li class="actnbr-ellipsis actnbr-hidden"> 713 <button type="button" class="actnbr-more-toggle" aria-haspopup="true" aria-expanded="false" aria-label="More options"> 714 <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> 715 <div class="actnbr-popover actnbr-menu" role="menu" aria-label="Site options"> 716 <div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-sitename" href="https://blog.thestateofme.com"><img loading='lazy' alt='' src='https://s-ssl.wordpress.com/i/logo/wpcom-gray-white.png?m=1479929237i' srcset='https://s-ssl.wordpress.com/i/logo/wpcom-gray-white.png 1x' class='avatar avatar-50' height='50' width='50' /><span class="actnbr-menu__label">Chris Swan's Weblog</span></a></div><div class="actnbr-menu__group" role="group"><a role="menuitem" class="actnbr-menu__item actnbr-shortlink" href="https://wp.me/Palij-5h"><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/2465139/posts/327"><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%252Fblog.thestateofme.com%252Fcomments-policy%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://blog.thestateofme.com/comments-policy/" 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> 717 </li> 718 </ul> 719 </div> 720
720<script> 721window.addEventListener( "DOMContentLoaded", function () { 722 var link = document.createElement( "link" ); 723 link.href = "\/wp-content\/mu-plugins\/jetpack-plugin\/sun\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.css?ver=9e2715140ce0af99d983"; 724 link.rel = "stylesheet"; 725 document.head.appendChild( link ); 726 727 var script = document.createElement( "script" ); 728 script.src = "\/wp-content\/mu-plugins\/jetpack-plugin\/sun\/jetpack_vendor\/automattic\/jetpack-newsletter\/src\/..\/build\/action-bar.js?ver=9e2715140ce0af99d983"; 729 document.body.appendChild( script ); 730 } ); 731</script>
731 732 733
733<script type="text/javascript"> 734 window.WPCOM_sharing_counts = {"https://blog.thestateofme.com/comments-policy/":327}; 735 </script>
735 736 737
737<script type="text/javascript"> 738 (function () { 739 var wpcom_reblog = { 740 source: 'toolbar', 741 742 toggle_reblog_box_flair: function (obj_id, post_id) { 743 744 // Go to site selector. This will redirect to their blog if they only have one. 745 const postEndpoint = `https://wordpress.com/post`; 746 747 // Ideally we would use the permalink here, but fortunately this will be replaced with the 748 // post permalink in the editor. 749 const originalURL = `${ document.location.href }?page_id=${ post_id }`; 750 751 const url = 752 postEndpoint + 753 '?url=' + 754 encodeURIComponent( originalURL ) + 755 '&is_post_share=true' + 756 '&v=5'; 757 758 const redirect = function () { 759 if ( 760 ! window.open( url, '_blank' ) 761 ) { 762 location.href = url; 763 } 764 }; 765 766 if ( /Firefox/.test( navigator.userAgent ) ) { 767 setTimeout( redirect, 0 ); 768 } else { 769 redirect(); 770 } 771 }, 772 }; 773 774 window.wpcom_reblog = wpcom_reblog; 775 })(); 776 </script>
vendor: 1 bytes, line 776
776
777<script id="sharing-js-js-extra"> 778var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"}; 779//# sourceURL=sharing-js-js-extra 780</script>
vendor: 1 bytes, line 780
780
781<script crossorigin='anonymous' type='text/javascript' src='/_static/??/wp-content/mu-plugins/likes/queuehandler.js,/wp-content/mu-plugins/jetpack-plugin/sun/_inc/build/sharedaddy/sharing.min.js?m=1787944794j'></script>
vendor: 1 bytes, line 781
781
782<script id="sharing-js-js-after"> 783window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 784window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400"; 785window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 786window.WPCOM_sharing_popups[ "x" ] = "menubar=1,resizable=1,width=600,height=350"; 787//# sourceURL=sharing-js-js-after 788</script>
vendor: 1 bytes, line 788
788
789<script id="wp-emoji-settings" type="application/json"> 790{"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"}} 791</script>
vendor: 1 bytes, line 791
791
792<script type="module"> 793/*! This file is auto-generated */ 794var 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)))}); 795//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js 796</script>
796 797 <iframe src='https://widgets.wp.com/likes/master.html?ver=20260925#ver=20260925' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe> 798 <div id='likes-other-gravatars' role="dialog" aria-hidden="true" tabindex="-1"><div class="likes-text"><span>%d</span></div><ul class="wpl-avatars sd-like-gravatars"></ul></div> 799
799<script src="//stats.wp.com/w.js?69" defer></script>
799
799<script type="text/javascript"> 800_tkq = window._tkq || []; 801_stq = window._stq || []; 802_tkq.push(['storeContext', {'blog_id':'2465139','blog_tz':'1','user_lang':'en','blog_lang':'en','user_id':'0'}]); 803 // Prevent sending pageview tracking from WP-Admin pages. 804 _stq.push(['view', {'blog':'2465139','v':'wpcom','tz':'1','user_id':'0','post':'327','subd':'thestateofme'}]); 805 _stq.push(['extra', {'crypt':'UE5tW3cvZGREeHdfQmZheF95QVdnYTZhP0p4UCtZK2p+emgwV0RERV1mYXg2aGlLSGhyRGJ8OTUuOUI9JkFla09KRTkvbVZRdU9lP1JDZEtTVUssSk5HekxEY2x8TkU2Ty1KVVl2fjJWeCxhLUR3YXJ+dDdDSStteUM/PXc1KytUTWI0WDl+cUN+dz8laT9RZzZibj1Hd35tS3ZCflNndnFfSE9QQW8mV3QlUGhTVDhKdF1QXVt5cmVDNXYuRUlUSWU2NixvTVUmdFddJUUzZExSUExQV35rL19CWHlYJg=='}]); 806_stq.push([ 'clickTrackerInit', '2465139', '327' ]); 807</script>
807 808<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript> 809<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="Etc/GMT-1" data-custom-props="{"logged_in":"0","wptheme":"pub\/unsleepable","wptheme_is_block":"0"}" > 810
810<script defer src="/wp-content/js/bilmur.min.js?i=19&m=202639"></script>
810 811
812<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"569c26f9cbaf41af93c63fbf36e2e261","r":1,"spa":2}' crossorigin="anonymous"></script>
812 813</body> 814</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.