1040 lines
102 KiB
HTML
1040 lines
102 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="profile" href="http://gmpg.org/xfn/11">
|
|
|
|
<title>Resilience: some key ingredients – Surfing Complexity</title>
|
|
<meta name='robots' content='max-image-preview:large' />
|
|
|
|
<!-- Async WordPress.com Remote Login -->
|
|
<script id="wpcom_remote_login_js">
|
|
var wpcom_remote_login_extra_auth = '';
|
|
function wpcom_remote_login_remove_dom_node_id( element_id ) {
|
|
var dom_node = document.getElementById( element_id );
|
|
if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
|
|
}
|
|
function wpcom_remote_login_remove_dom_node_classes( class_name ) {
|
|
var dom_nodes = document.querySelectorAll( '.' + class_name );
|
|
for ( var i = 0; i < dom_nodes.length; i++ ) {
|
|
dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
|
|
}
|
|
}
|
|
function wpcom_remote_login_final_cleanup() {
|
|
wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
|
|
}
|
|
|
|
// Watch for messages back from the remote login
|
|
window.addEventListener( "message", function( e ) {
|
|
if ( e.origin === "https://r-login.wordpress.com" ) {
|
|
var data = {};
|
|
try {
|
|
data = JSON.parse( e.data );
|
|
} catch( e ) {
|
|
wpcom_remote_login_final_cleanup();
|
|
return;
|
|
}
|
|
|
|
if ( data.msg === 'LOGIN' ) {
|
|
// Clean up the login check iframe
|
|
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
|
|
|
|
var id_regex = new RegExp( /^[0-9]+$/ );
|
|
var token_regex = new RegExp( /^.*|.*|.*$/ );
|
|
if (
|
|
token_regex.test( data.token )
|
|
&& id_regex.test( data.wpcomid )
|
|
) {
|
|
// We have everything we need to ask for a login
|
|
var script = document.createElement( "script" );
|
|
script.setAttribute( "id", "wpcom_remote_login_validate" );
|
|
script.src = '/remote-login.php?wpcom_remote_login=validate'
|
|
+ '&wpcomid=' + data.wpcomid
|
|
+ '&token=' + encodeURIComponent( data.token )
|
|
+ '&host=' + window.location.protocol
|
|
+ '//' + window.location.hostname
|
|
+ '&postid=5786'
|
|
+ '&is_singular=1';
|
|
document.body.appendChild( script );
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
// Safari ITP, not logged in, so redirect
|
|
if ( data.msg === 'LOGIN-REDIRECT' ) {
|
|
window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
|
|
return;
|
|
}
|
|
|
|
// Safari ITP, storage access failed, remove the request
|
|
if ( data.msg === 'LOGIN-REMOVE' ) {
|
|
var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }';
|
|
var style_zap = document.createElement( 'style' );
|
|
style_zap.type = 'text/css';
|
|
style_zap.appendChild( document.createTextNode( css_zap ) );
|
|
document.body.appendChild( style_zap );
|
|
|
|
var e = document.getElementById( 'wpcom_request_access_iframe' );
|
|
e.parentNode.removeChild( e );
|
|
|
|
document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';
|
|
|
|
return;
|
|
}
|
|
|
|
// Safari ITP
|
|
if ( data.msg === 'REQUEST_ACCESS' ) {
|
|
console.log( 'request access: safari' );
|
|
|
|
// Check ITP iframe enable/disable knob
|
|
if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
|
|
return;
|
|
}
|
|
|
|
// If we are in a "private window" there is no ITP.
|
|
var private_window = false;
|
|
try {
|
|
var opendb = window.openDatabase( null, null, null, null );
|
|
} catch( e ) {
|
|
private_window = true;
|
|
}
|
|
|
|
if ( private_window ) {
|
|
console.log( 'private window' );
|
|
return;
|
|
}
|
|
|
|
var iframe = document.createElement( 'iframe' );
|
|
iframe.id = 'wpcom_request_access_iframe';
|
|
iframe.setAttribute( 'scrolling', 'no' );
|
|
iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
|
|
iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );
|
|
|
|
var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } ';
|
|
|
|
var style = document.createElement( 'style' );
|
|
style.type = 'text/css';
|
|
style.id = 'wpcom_request_access_styles';
|
|
style.appendChild( document.createTextNode( css ) );
|
|
document.body.appendChild( style );
|
|
|
|
document.body.appendChild( iframe );
|
|
}
|
|
|
|
if ( data.msg === 'DONE' ) {
|
|
wpcom_remote_login_final_cleanup();
|
|
}
|
|
}
|
|
}, false );
|
|
|
|
// Inject the remote login iframe after the page has had a chance to load
|
|
// more critical resources
|
|
window.addEventListener( "DOMContentLoaded", function( e ) {
|
|
var iframe = document.createElement( "iframe" );
|
|
iframe.style.display = "none";
|
|
iframe.setAttribute( "scrolling", "no" );
|
|
iframe.setAttribute( "id", "wpcom_remote_login_key" );
|
|
iframe.src = "https://r-login.wordpress.com/remote-login.php"
|
|
+ "?wpcom_remote_login=key"
|
|
+ "&origin=aHR0cHM6Ly9zdXJmaW5nY29tcGxleGl0eS5ibG9n"
|
|
+ "&wpcomid=30291541"
|
|
+ "&time=" + Math.floor( Date.now() / 1000 );
|
|
document.body.appendChild( iframe );
|
|
}, false );
|
|
</script>
|
|
<link rel='dns-prefetch' href='//s2.wp.com' />
|
|
<link rel='dns-prefetch' href='//widgets.wp.com' />
|
|
<link rel='dns-prefetch' href='//s1.wp.com' />
|
|
<link rel='dns-prefetch' href='//s0.wp.com' />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Feed" href="https://surfingcomplexity.blog/feed/" />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Comments Feed" href="https://surfingcomplexity.blog/comments/feed/" />
|
|
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity » Resilience: some key ingredients Comments Feed" href="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/feed/" />
|
|
<script type="text/javascript">
|
|
/* <![CDATA[ */
|
|
function addLoadEvent(func) {
|
|
var oldonload = window.onload;
|
|
if (typeof window.onload != 'function') {
|
|
window.onload = func;
|
|
} else {
|
|
window.onload = function () {
|
|
oldonload();
|
|
func();
|
|
}
|
|
}
|
|
}
|
|
/* ]]> */
|
|
</script>
|
|
<style id="wp-img-auto-sizes-contain-inline-css">
|
|
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
|
|
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='/_static/??-eJxtjEsKgDAMBS9kjbqwuBDPUtog9o9J8fpaEQSRBw8GhoEjC50iY2QIRWRf1i0SWOSstHsYQkr1TPFIsKNXjEbkRPyhVhM18J/0m8M3fFPVlzD3UnbTtWG0J2CTNNk=&cssminify=yes' type='text/css' media='all' />
|
|
<style id="wp-emoji-styles-inline-css">
|
|
|
|
img.wp-smiley, img.emoji {
|
|
display: inline !important;
|
|
border: none !important;
|
|
box-shadow: none !important;
|
|
height: 1em !important;
|
|
width: 1em !important;
|
|
margin: 0 0.07em !important;
|
|
vertical-align: -0.1em !important;
|
|
background: none !important;
|
|
padding: 0 !important;
|
|
}
|
|
/*# sourceURL=wp-emoji-styles-inline-css */
|
|
</style>
|
|
<style id="wp-block-library-inline-css">
|
|
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[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}}
|
|
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/common.min.css */
|
|
</style>
|
|
<style id="wp-block-quote-inline-css">
|
|
.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/quote/style.min.css */
|
|
</style>
|
|
<style id="wp-block-quote-theme-inline-css">
|
|
.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/quote/theme.min.css */
|
|
</style>
|
|
<style id="wp-block-separator-inline-css">
|
|
@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/separator/style.min.css */
|
|
</style>
|
|
<style id="wp-block-separator-theme-inline-css">
|
|
.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/separator/theme.min.css */
|
|
</style>
|
|
<style id="wp-block-heading-inline-css">
|
|
h1: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: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}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/heading/style.min.css */
|
|
</style>
|
|
<style id="wp-block-latest-posts-inline-css">
|
|
.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-right:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/latest-posts/style.min.css */
|
|
</style>
|
|
<style id="wp-block-list-inline-css">
|
|
ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/list/style.min.css */
|
|
</style>
|
|
<style id="wp-block-paragraph-inline-css">
|
|
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/paragraph/style.min.css */
|
|
</style>
|
|
<style id="wp-block-search-inline-css">
|
|
.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}:where(.wp-block-search__label){width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/search/style.min.css */
|
|
</style>
|
|
<style id="wp-block-search-theme-inline-css">
|
|
:where(.wp-block-search .wp-block-search__label){font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/search/theme.min.css */
|
|
</style>
|
|
<style id="wp-block-library-inline-css-extra">
|
|
.has-text-align-justify {
|
|
text-align:justify;
|
|
}
|
|
.has-text-align-justify{text-align:justify;}
|
|
/*# sourceURL=wp-block-library-inline-css */
|
|
</style>
|
|
|
|
<style id="classic-theme-styles-inline-css">
|
|
.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.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}
|
|
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/classic.min.css */
|
|
</style>
|
|
|
|
<style id="coblocks-inline-format-inline-css">
|
|
.uppercase{text-transform:uppercase}
|
|
/*# sourceURL=coblocks-inline-format-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
|
|
<style id="global-styles-inline-css">
|
|
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--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--medium-blue: #0087be;--wp--preset--color--bright-blue: #00aadc;--wp--preset--color--dark-gray: #4d4d4b;--wp--preset--color--light-gray: #b3b3b1;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-medium-blue-color{color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !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-medium-blue-background-color{background-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !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-medium-blue-border-color{border-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}
|
|
:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
|
|
/*# sourceURL=global-styles-inline-css */
|
|
</style>
|
|
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.css?m=1785895867i&cssminify=yes' type='text/css' media='all' />
|
|
<link rel='stylesheet' id='verbum-gutenberg-css-css' href='https://widgets.wp.com/verbum-block-editor/block-editor.css?ver=1771405207' media='all' />
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='/_static/??-eJydkNEKwjAMRX/IGh0D7YP4KbLV2GVr09J2DP/ebAgOFB/2Eu59OPcmgSkqE7ggF/Cjim60xBl6LLExw9uDD4HhRmzAImMiIfJvuTc572AVWjr0mCGOLRDfMaIMLkq8o9xhUhXk8nS4BRQEWhfMsKl2PmepVlM0wX9FrN6RUGqsSLt0fuw/yGJQslxTSJ63NurhGkozevWX4+lcaX3Qte5fvXGUcQ==&cssminify=yes' type='text/css' media='all' />
|
|
<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' />
|
|
<style id="jetpack-global-styles-frontend-style-inline-css">
|
|
:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
|
|
/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */
|
|
</style>
|
|
<link crossorigin='anonymous' rel='stylesheet' id='all-css-20-1' href='/_static/??-eJyNjcEKAjEMRH/ImhVlqwfxU6TbhrZrmhTTIv69u+JFvHgZ5sHwBh7VeOGG3KB0U6nHzAoztur87cNQRNYInVBBk7tjcCE83zVz3HrVDfxvumb2MPVMAVR8dmRIougX/DhbwrK8pwNEksnROriU884e9+PJDnaYXxwFS20=&cssminify=yes' type='text/css' media='all' />
|
|
<script id="jetpack_related-posts-js-extra">
|
|
var related_posts_js_options = {"post_heading":"h4"};
|
|
//# sourceURL=jetpack_related-posts-js-extra
|
|
</script>
|
|
<script id="wpcom-actionbar-placeholder-js-extra">
|
|
var actionbardata = {"siteID":"30291541","postID":"5786","siteURL":"https://surfingcomplexity.blog","xhrURL":"https://surfingcomplexity.blog/wp-admin/admin-ajax.php","nonce":"e8f3aebd24","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&ver=20211021","shortlink":"https://wp.me/p236df-1vk","i18n":{"followedText":"New posts from this site will now appear in your \u003Ca href=\"https://wordpress.com/reader\"\u003EReader\u003C/a\u003E","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Shortlink copied to clipboard."}};
|
|
//# sourceURL=wpcom-actionbar-placeholder-js-extra
|
|
</script>
|
|
<script id="jetpack-mu-wpcom-settings-js-before">
|
|
var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s1.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"};
|
|
//# sourceURL=jetpack-mu-wpcom-settings-js-before
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/_static/??/wp-content/mu-plugins/jetpack-plugin/moon/_inc/build/related-posts/related-posts.min.js,/wp-content/js/rlt-proxy.js?m=1788798821j'></script>
|
|
<script id="rlt-proxy-js-after">
|
|
rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
|
|
//# sourceURL=rlt-proxy-js-after
|
|
</script>
|
|
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://lorinhochstein.wordpress.com/xmlrpc.php?rsd" />
|
|
<meta name="generator" content="WordPress.com" />
|
|
<link rel="canonical" href="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/" />
|
|
<link rel='shortlink' href='https://wp.me/p236df-1vk' />
|
|
<link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&url=https%3A%2F%2Fsurfingcomplexity.blog%2F2025%2F02%2F15%2Fresilience-some-key-ingredients%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%2Fsurfingcomplexity.blog%2F2025%2F02%2F15%2Fresilience-some-key-ingredients%2F&for=wpcom-auto-discovery" />
|
|
<!-- Jetpack Open Graph Tags -->
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:title" content="Resilience: some key ingredients" />
|
|
<meta property="og:url" content="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/" />
|
|
<meta property="og:description" content="Brian Marick posted on Mastodon the other day about resilience in the context of governmental efficiency. Reading that inspired me to write about some more general observations about resilience. No…" />
|
|
<meta property="article:published_time" content="2025-02-16T04:56:21+00:00" />
|
|
<meta property="article:modified_time" content="2025-02-16T04:56:22+00:00" />
|
|
<meta property="og:site_name" content="Surfing Complexity" />
|
|
<meta property="og:image" content="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
<meta property="og:image:width" content="200" />
|
|
<meta property="og:image:height" content="200" />
|
|
<meta property="og:image:alt" content="" />
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta property="article:publisher" content="https://www.facebook.com/WordPresscom" />
|
|
<meta name="twitter:text:title" content="Resilience: some key ingredients" />
|
|
<meta name="twitter:image" content="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
<meta name="twitter:card" content="summary" />
|
|
|
|
<!-- End Jetpack Open Graph Tags -->
|
|
<link rel='openid.server' href='https://surfingcomplexity.blog/?openidserver=1' />
|
|
<link rel='openid.delegate' href='https://surfingcomplexity.blog/' />
|
|
<link rel="search" type="application/opensearchdescription+xml" href="https://surfingcomplexity.blog/osd.xml" title="Surfing Complexity" />
|
|
<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
|
|
<link rel="pingback" href="https://surfingcomplexity.blog/xmlrpc.php"> <style type="text/css">
|
|
.recentcomments a {
|
|
display: inline !important;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
|
|
table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
|
|
border: 0px;
|
|
margin: 0;
|
|
}
|
|
|
|
table.recentcommentsavatartop a, table.recentcommentsavatarend a {
|
|
border: 0px !important;
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
td.recentcommentsavatarend, td.recentcommentsavatartop {
|
|
padding: 0px 0px 1px 0px;
|
|
margin: 0px;
|
|
}
|
|
|
|
td.recentcommentstextend {
|
|
border: none !important;
|
|
padding: 0px 0px 2px 10px;
|
|
}
|
|
|
|
.rtl td.recentcommentstextend {
|
|
padding: 0px 10px 2px 0px;
|
|
}
|
|
|
|
td.recentcommentstexttop {
|
|
border: none;
|
|
padding: 0px 0px 0px 10px;
|
|
}
|
|
|
|
.rtl td.recentcommentstexttop {
|
|
padding: 0px 10px 0px 0px;
|
|
}
|
|
</style>
|
|
<meta name="description" content="Brian Marick posted on Mastodon the other day about resilience in the context of governmental efficiency. Reading that inspired me to write about some more general observations about resilience. Now, people use the term resilience in different ways. I'm using resilience here in the following sense: how well a system is able to cope when…" />
|
|
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=32" sizes="32x32" />
|
|
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" sizes="192x192" />
|
|
<link rel="apple-touch-icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
<meta name="msapplication-TileImage" content="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
|
|
</head>
|
|
|
|
<body class="wp-singular post-template-default single single-post postid-5786 single-format-standard wp-embed-responsive wp-theme-pubindependent-publisher-2 customizer-styles-applied has-sidebar jetpack-reblog-enabled">
|
|
|
|
<div id="page" class="hfeed site">
|
|
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
|
|
|
|
<div id="hero-header" class="site-hero-section">
|
|
<header id="masthead" class="site-header" role="banner">
|
|
<div class="inner">
|
|
<div class="site-branding">
|
|
|
|
<a class="site-logo-link" href="https://surfingcomplexity.blog/">
|
|
<img referrerpolicy="no-referrer" alt='Unknown's avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&d=identicon&r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&d=identicon&r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&d=identicon&r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&d=identicon&r=G 4x' class='avatar avatar-80 site-logo-image' height='80' width='80' loading='eager' decoding='async' /> </a><!-- .site-logo-link -->
|
|
<p class="site-title"><a href="https://surfingcomplexity.blog/" rel="home">Surfing Complexity</a></p>
|
|
<p class="site-description">Lorin Hochstein's ramblings about software, complex systems, and incidents.</p>
|
|
</div><!-- .site-branding -->
|
|
|
|
|
|
|
|
</div><!-- .inner -->
|
|
</header><!-- #masthead -->
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="content-wrapper" class="content-wrapper">
|
|
<div id="content" class="site-content">
|
|
|
|
<div id="primary" class="content-area">
|
|
<main id="main" class="site-main" role="main">
|
|
|
|
|
|
|
|
<article id="post-5786" class="post-5786 post type-post status-publish format-standard hentry category-incidents category-resilience">
|
|
<header class="entry-header">
|
|
<h1 class="entry-title">Resilience: some key ingredients</h1> </header><!-- .entry-header --> <div class="entry-meta">
|
|
<span class="byline">
|
|
<a href="https://surfingcomplexity.blog/author/lorinh/" rel="author">Lorin Hochstein</a> </span>
|
|
<span class="cat-links">
|
|
<a href="https://surfingcomplexity.blog/category/systems/incidents/" rel="category tag">incidents</a>, <a href="https://surfingcomplexity.blog/category/resilience/" rel="category tag">resilience</a> </span><!-- .cat-links -->
|
|
|
|
|
|
<span class="published-on">
|
|
<time class="entry-date published" datetime="2025-02-15T20:56:21-08:00">February 15, 2025</time><time class="updated" datetime="2025-02-15T20:56:22-08:00">February 15, 2025</time> </span>
|
|
|
|
<span class="word-count">7 Minutes</span> </div><!-- .entry-meta -->
|
|
|
|
<div class="entry-content">
|
|
|
|
<p class="wp-block-paragraph">Brian Marick <a href="https://mstdn.social/@marick/114009101080960730">posted on Mastodon</a> the other day about resilience in the context of governmental efficiency. Reading that inspired me to write about some more general observations about resilience.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Now, people use the term <em>resilience</em> <a href="https://www.researchgate.net/publication/276139783_Four_concepts_for_resilience_and_the_implications_for_the_future_of_resilience_engineering">in different ways</a>. I’m using resilience here in the following sense: how well a system is able to cope when it is pushed beyond its limits. Or, to borrow a term from safety researcher David Woods, when the system is pushed outside of its <em><a href="https://surfingcomplexity.blog/2021/05/31/transgressing-the-boundaries-rasmussen-and-woods/">competence envelope</a></em>. The technical term for this sense of the word resilience is <em><a href="https://www.researchgate.net/publication/327427067_The_Theory_of_Graceful_Extensibility_Basic_rules_that_govern_adaptive_systems">graceful extensibility</a></em>, which also comes from Woods. This term is a marriage of two other terms: <em>graceful degradation</em>, and <em>software extensibility</em>.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The term <em>graceful degradation</em> refers to the behavior of a system which, when it experiences partial failures, can still provide some functionality, even though it’s at a reduced fidelity. For example, for a web app, this might mean that some particular features are unavailable, or that some percentage of users are not able to access the site. Contrast this with a system that just returns 500 errors for everyone whenever something goes wrong. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">We talk about <em>extensible</em> software systems as ones that have been designed to make it easy to add new features in the future that were not originally anticipated. A simple example of software extensibility is the ability for <em>old code to call</em> <em>new code</em>, with dynamic binding being one way to accomplish this.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Now, putting those two concepts together, if a system encounters some sort of shock that it can’t handle, and the system has the ability to <em>extend</em> itself so that it can now handle the shock, and it can make these changes to itself quickly enough that it minimizes the harms resulting from the shock, then we say the system exhibits graceful extensibility. And if it can keep extending itself each time it encounters a novel shock, then we say that the system exhibits <em>sustained adaptability</em>.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The rest of this post is about the preconditions for resilience. I’m going to talk about resilience in the context of dealing with incidents. Note that all of the topics described below come from the resilience engineering literature, although I may not always use the same terminology.</p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Resources</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">As Brian Marick observed in his <a href="https://mstdn.social/@marick/114009101080960730">toot</a>:</p>
|
|
|
|
|
|
|
|
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
|
|
<p class="wp-block-paragraph">As we discovered with Covid, efficiency is inversely correlated with resilience.</p>
|
|
</blockquote>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Here’s a question you can ask anyone who works in the compute infrastructure space: “How hot do you run your servers?” Or, even more meaningfully, “How much headroom do your servers have?” </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Running your servers “hotter” means running at a higher CPU utilization. This means that you pack more load on fewer servers, which is more efficient. The problem is that the load is variable, which means that the hotter you run the servers, the more likely your server will get overloaded if there is a spike in utilization. An overloaded server can lead to an incident, and incidents are expensive! Running your servers at maximum utilization is running with zero headroom. We deliberately run our servers with some headroom to be able to handle variation in load. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">We also see the idea of spare resources in what we call <em>failover</em> scenarios, where there’s a failure in one resource so we switch to using a different resource, such as failing over a database from primary to secondary, or even failing out of a geographical region. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The idea of spare resources is more general than hardware. It applies to people as well. The equivalent of headroom for humans is what Tom DeMarco refers to as <em><a href="https://bookshop.org/p/books/slack-getting-past-burnout-busywork-and-the-myth-of-total-efficiency-tom-demarco/7110521?ean=9780767907699&next=t&next=t">slack</a></em>. The more loaded humans are, the less well positioned they are to handle spikes in their workload. Stuff falls through the cracks when you’ve got too much load, and some of that stuff contributes to incidents. We can also even keep people in reserve for dealing with shocks, such as when an organization staffs a dedicated incident management team.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">A common term that the safety people use for spare resources is <em>capacity</em>. I really like the way Todd Conklin put it on his <a href="https://preaccident-investigation-podcast.onpodium.com/">Pre-Accident Investigation Podcast</a>: “You don’t manage risk. You manage the capacity to absorb risk.” Another way <a href="/2023/09/30/accidents-manage-you/">he put it</a> is “Accidents manage you, so what you really manage is the capacity for the organization to fail safely.”</p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Flexibility</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Here’s a rough and ready definition of an incident: the system has gotten itself into a bad state, and it’s not going to return to a good state unless somebody does something about it.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Now, by this definition, for the system to become healthy again <em>something about how the system works has to change</em>. This means we need to change the way we do things. The easier it is to make changes to the system, the easier it will be to resolve the incident. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">We can think of two different senses of changing the work of the system: the human side and the the software side.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Humans in a system are constrained by a set of rules that exist to reduce risk. We don’t let people YOLO code from their laptops into production, because of a number of risks that would expose us to. But incidents create scenarios where the risks associated with breaking these rules are lower than the risks associated with prolonging the incident. As a consequence, people in the system need the <em>flexibility</em> to be able to break the standard rules of work during an incident. One way to do this is to grant incident responders <em>autonomy</em>, let them make judgments about when they are able to break the rules that govern normal work, in scenarios where breaking the rule is less risky than following it.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Things look different on the software side, where all of the rules are mechanically enforced. For flexibility in software, we need to build into the software functionality in advance that will let us change the way the system behaves. My friend Aaron Blohowiak uses the term <a href="https://memory-alpha.fandom.com/wiki/Jefferies_tube"><em>Jefferies tubes</em> </a>from Star Trek to describe features that support making operational changes to a system. These were service crawlways that made it easier for engineers to do work on the ship.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">A simple example of this type of operational flexibility is putting in feature flags that can be toggled dynamically in order to change system behavior. At the other extreme is the ability to bring up a REPL on a production system in order to make changes. I’ve seen this multiple times in my career, including watching someone use the <code>rails console</code> command of a Ruby on Rails app to resolve an issue.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The technical term in resilience engineering for systems that possess this type of flexibility is <em>adaptive capacity</em>: the system has built up the ability to be able to dynamically reconfigure itself, to adapt, in order to meet novel challenges. This is where the name <a href="https://www.adaptivecapacitylabs.com/">Adaptive Capacity Labs</a> comes from.</p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Expertise</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">In general, organizations push against flexibility because it brings risk. In the case where I saw someone bring up a Ruby on Rails console, I was simultaneously impressed and terrified: that’s so <em>dangerous!</em></p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Because flexibility carries risk, we need to rely on judgment as to whether the risk of leveraging the flexibility outweighs the risk of not using the flexibility to mitigate the incident. Granting people the autonomy to make those judgment calls isn’t enough: the people making the calls need to be able to make good judgment calls. And for that, you need expertise. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The people making these calls are having to make decisions balancing competing risks while under uncertainty and time pressure. In addition, how fluent they are with the tools is a key factor. I would never trust a novice with access to a REPL in production. But an expert? By definition, they know what they’re doing. </p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Diversity</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Incidents in complex systems involve interactions between multiple parts of the system, and there’s no one person in your organization who understands the whole thing. To be able to effectively know what to do during an incident, you need to bring in different people who understand different parts of the system in order to help figure out what happens. You need <em>diversity</em> in your responders, people with different perspective on the problem at hand.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">You also want diversity in diagnostic and mitigation strategy. Some people might think about recent changes, others might think about traffic pattern changes, others might dive into the codebase looking for clues, and yet others might look to see if there’s another problem going on right now that seems to be related. In addition, it’s often not obvious what the best course of action is to mitigate an incident. Responders often pursue multiple courses of action in parallel, hoping that at least one of them will bring the system healthy again. A diversity of perspectives can help generate more potential interventions, reducing the time to resolve.</p>
|
|
|
|
|
|
|
|
<h2 class="wp-block-heading">Coordination</h2>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">Having a group of experts with a diverse set of perspectives by itself isn’t enough to deal with an incident. For a system to be resilient, the people within the system need to be able to coordinate, to work together effectively.</p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">If you’ve ever dealt with a complex incident, you know how challenging coordination can be. Things get even hairier in our distributed world. Whether you’re physically located with all of the responders, you’re on a Zoom call (a <em>bridge</em>, as we still say), you’re messaging over Slack, or some hybrid combination of all three, each type of communication channel has its benefits and drawbacks. </p>
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">There are prescriptive approaches to improving coordination during incidents, such as the <a href="https://training.fema.gov/emiweb/is/icsresource/">Incident Command System (ICS)</a>. However, Laura Maguire’s research has shown that, in practice, <a href="https://drlauramaguire.com/publications/managing-the-hidden-costs-of-coordination/">incident responders intentionally deviate from ICS to better manage coordination costs</a>. This is yet another example of <em>flexibility</em> and <em>expertise</em> being employed to deal with an incident. </p>
|
|
|
|
|
|
|
|
<hr class="wp-block-separator has-alpha-channel-opacity" />
|
|
|
|
|
|
|
|
<p class="wp-block-paragraph">The next time you observe an incident, or you reflect on an incident where you were one of the responders, think back on to what extent these ingredients were present or absent. Were you able to leverage spare resources, or did you suffer from not being to? Were there operational changes that people wanted to be able to make during the incident, and were they actually able to make them? Were the responders experienced with the sub-systems they were dealing with, and how did that shape their responses? Did different people come up with different hypotheses and strategies? What is it clear to you what the different responders were doing during the incident? These issues are easy to miss if you’re not looking for them. But, once you internalize them, you’ll never be able to unsee them. </p>
|
|
<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"
|
|
data-shared="sharing-twitter-5786"
|
|
class="share-twitter sd-button share-icon"
|
|
href="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/?share=twitter"
|
|
target="_blank"
|
|
aria-labelledby="sharing-twitter-5786"
|
|
>
|
|
<span id="sharing-twitter-5786" hidden>Share on X (Opens in new window)</span>
|
|
<span>X</span>
|
|
</a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer"
|
|
data-shared="sharing-facebook-5786"
|
|
class="share-facebook sd-button share-icon"
|
|
href="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/?share=facebook"
|
|
target="_blank"
|
|
aria-labelledby="sharing-facebook-5786"
|
|
>
|
|
<span id="sharing-facebook-5786" hidden>Share on Facebook (Opens in new window)</span>
|
|
<span>Facebook</span>
|
|
</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-30291541-5786-6aa4f32bbad5a' data-src='//widgets.wp.com/likes/index.html?ver=20260912#blog_id=30291541&post_id=5786&origin=lorinhochstein.wordpress.com&obj_id=30291541-5786-6aa4f32bbad5a&domain=surfingcomplexity.blog' data-name='like-post-frame-30291541-5786-6aa4f32bbad5a' 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 id='jp-relatedposts' class='jp-relatedposts' >
|
|
|
|
</div></div> </div><!-- .entry-content -->
|
|
|
|
<div class="entry-footer">
|
|
</div><!-- .entry-footer -->
|
|
|
|
<div class="entry-author-wrapper">
|
|
<div class="entry-author author-avatar-show">
|
|
<div class="author-avatar">
|
|
<img referrerpolicy="no-referrer" alt='Unknown's avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&d=identicon&r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&d=identicon&r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&d=identicon&r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&d=identicon&r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&d=identicon&r=G 4x' class='avatar avatar-80' height='80' width='80' decoding='async' /> </div><!-- .author-avatar -->
|
|
|
|
<div class="author-heading">
|
|
<h2 class="author-title">
|
|
Published by <span class="author-name">Lorin Hochstein</span> </h2>
|
|
</div><!-- .author-heading -->
|
|
|
|
<p class="author-bio">
|
|
<a class="author-link" href="https://surfingcomplexity.blog/author/lorinh/" rel="author">
|
|
View all posts by Lorin Hochstein </a>
|
|
</p><!-- .author-bio -->
|
|
</div><!-- .entry-auhtor -->
|
|
<div class="site-posted-on">
|
|
<strong>Published</strong>
|
|
<time class="entry-date published" datetime="2025-02-15T20:56:21-08:00">February 15, 2025</time><time class="updated" datetime="2025-02-15T20:56:22-08:00">February 15, 2025</time> </div><!-- .site-posted-on -->
|
|
</div>
|
|
</article><!-- #post-## -->
|
|
|
|
|
|
<nav class="navigation post-navigation" aria-label="Posts">
|
|
<h2 class="screen-reader-text">Post navigation</h2>
|
|
<div class="nav-links"><div class="nav-previous"><a href="https://surfingcomplexity.blog/2025/02/01/youre-missing-your-near-misses/" rel="prev"><span class="meta-nav screen-reader-text">Previous Post</span> You’re missing your near misses</a></div><div class="nav-next"><a href="https://surfingcomplexity.blog/2025/03/03/locks-leases-fencing-tokens-fizzbee/" rel="next"><span class="meta-nav screen-reader-text">Next Post</span> Locks, leases, fencing tokens, FizzBee!</a></div></div>
|
|
</nav>
|
|
|
|
<div id="comments" class="comments-area">
|
|
|
|
|
|
<h2 class="comments-title">
|
|
One thought on “<span>Resilience: some key ingredients</span>” </h2><!-- .comments-title -->
|
|
|
|
|
|
<ol class="comment-list">
|
|
<li id="comment-9583" class="pingback even thread-even depth-1">
|
|
<div class="comment-body">
|
|
Pingback: <a href="https://sreweekly.com/sre-weekly-issue-465/" class="url" rel="ugc external nofollow">SRE Weekly Issue #465 – SRE WEEKLY</a> </div>
|
|
</li><!-- #comment-## -->
|
|
</ol><!-- .comment-list -->
|
|
|
|
|
|
|
|
|
|
<div id="respond" class="comment-respond">
|
|
<h3 id="reply-title" class="comment-reply-title">Leave a comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2025/02/15/resilience-some-key-ingredients/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://surfingcomplexity.blog/wp-comments-post.php" method="post" id="commentform" class="comment-form">
|
|
|
|
|
|
<div class="comment-form__verbum transparent"></div><div class="verbum-form-meta"><input type='hidden' name='comment_post_ID' value='5786' id='comment_post_ID' />
|
|
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
|
|
|
|
<input type="hidden" name="highlander_comment_nonce" id="highlander_comment_nonce" value="4affefa77f" />
|
|
<input type="hidden" name="verbum_show_subscription_modal" value="" /></div><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="ca90964617" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="199"/><script>
|
|
document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );
|
|
</script>
|
|
</p></form> </div><!-- #respond -->
|
|
|
|
</div><!-- #comments -->
|
|
|
|
|
|
</main><!-- #main -->
|
|
</div><!-- #primary -->
|
|
|
|
<div id="secondary" class="widget-area" role="complementary">
|
|
<aside id="block-3" class="widget widget_block widget_search"><form role="search" method="get" action="https://surfingcomplexity.blog/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></aside><aside id="block-7" class="widget widget_block">
|
|
<ul class="wp-block-list">
|
|
<li><a href="https://lorinhochstein.org">lorinhochstein.org</a></li>
|
|
|
|
|
|
|
|
<li><a href="https://bsky.app/profile/norootcause.surfingcomplexity.com">Bluesky</a></li>
|
|
|
|
|
|
|
|
<li><a href="https://hachyderm.io/@norootcause">Mastodon</a></li>
|
|
</ul>
|
|
</aside><aside id="block-4" class="widget widget_block widget_recent_entries"><ul class="wp-block-latest-posts__list wp-block-latest-posts is-layout-flow wp-block-latest-posts-is-layout-flow"><li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/01/thoughts-on-the-buildkite-aug-25-incident/">Thoughts on the Buildkite Aug 25 incident</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/29/quick-thoughts-on-github-actions-aug-26-incident/">Quick thoughts on GitHub Actions Aug 26 incident</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/">Omnipresent availability risks in cloud software</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/22/wild-ai-related-reliability-incidents-are-coming/">Wild AI-related reliability incidents are coming</a></li>
|
|
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/19/github-autoscaling-and-the-component-substitution-fallacy/">GitHub, autoscaling, and the component substitution fallacy</a></li>
|
|
</ul></aside></div><!-- #secondary -->
|
|
|
|
</div><!-- #content -->
|
|
|
|
<footer id="colophon" class="site-footer" role="contentinfo">
|
|
<div class="site-info">
|
|
<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a>
|
|
|
|
</div><!-- .site-info -->
|
|
</footer><!-- #colophon -->
|
|
</div><!-- #content-wrapper -->
|
|
</div><!-- #page -->
|
|
|
|
<!-- -->
|
|
<script type="speculationrules">
|
|
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/independent-publisher-2/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
|
|
</script>
|
|
<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202637d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
|
|
<script id="wpgroho-js-extra">
|
|
var WPGroHo = {"my_hash":""};
|
|
//# sourceURL=wpgroho-js-extra
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>
|
|
|
|
<script>
|
|
// Initialize and attach hovercards to all gravatars
|
|
( function() {
|
|
function init() {
|
|
if ( typeof Gravatar === 'undefined' ) {
|
|
return;
|
|
}
|
|
|
|
if ( typeof Gravatar.init !== 'function' ) {
|
|
return;
|
|
}
|
|
|
|
Gravatar.profile_cb = function ( hash, id ) {
|
|
WPGroHo.syncProfileData( hash, id );
|
|
};
|
|
|
|
Gravatar.my_hash = WPGroHo.my_hash;
|
|
Gravatar.init(
|
|
'body',
|
|
'#wp-admin-bar-my-account',
|
|
{
|
|
i18n: {
|
|
'Edit your profile →': 'Edit your profile →',
|
|
'View profile →': 'View profile →',
|
|
'Contact': 'Contact',
|
|
'Send money': 'Send money',
|
|
'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
|
|
'Gravatar not found.': 'Gravatar not found.',
|
|
'Too Many Requests.': 'Too Many Requests.',
|
|
'Internal Server Error.': 'Internal Server Error.',
|
|
'Is this you?': 'Is this you?',
|
|
'Claim your free profile.': 'Claim your free profile.',
|
|
'Email': 'Email',
|
|
'Home Phone': 'Home Phone',
|
|
'Work Phone': 'Work Phone',
|
|
'Cell Phone': 'Cell Phone',
|
|
'Contact Form': 'Contact Form',
|
|
'Calendar': 'Calendar',
|
|
},
|
|
}
|
|
);
|
|
}
|
|
|
|
if ( document.readyState !== 'loading' ) {
|
|
init();
|
|
} else {
|
|
document.addEventListener( 'DOMContentLoaded', init );
|
|
}
|
|
} )();
|
|
</script>
|
|
|
|
<div style="display:none">
|
|
<div class="grofile-hash-map-c690634d340d85fb40ac03668259ff1c">
|
|
</div>
|
|
</div>
|
|
<div id="actionbar" dir="ltr" style="display: none;"
|
|
class="actnbr-pub-independent-publisher-2 actnbr-has-follow actnbr-has-actions">
|
|
<ul>
|
|
<li class="actnbr-btn actnbr-hidden">
|
|
<a class="actnbr-action actnbr-actn-comment" href="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/#comments">
|
|
<svg class="gridicon gridicons-comment" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M12 16l-5 5v-5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v9c0 1.1-.9 2-2 2h-7z"/></g></svg> <span>Comment </span>
|
|
</a>
|
|
</li>
|
|
<li class="actnbr-btn actnbr-hidden">
|
|
<a class="actnbr-action actnbr-actn-reblog" href="">
|
|
<svg class="gridicon gridicons-reblog" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"/></g></svg><span>Reblog</span>
|
|
</a>
|
|
</li>
|
|
<li class="actnbr-btn actnbr-hidden">
|
|
<a class="actnbr-action actnbr-actn-follow " href="">
|
|
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
|
|
<span>Subscribe</span>
|
|
</a>
|
|
<a class="actnbr-action actnbr-actn-following no-display" href="">
|
|
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V3H17.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H14.5V13.5H10.5V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path d="M19.5303 15.0303L15.5 19.0605L12.9697 16.5303L14.0303 15.4697L15.5 16.9395L18.4697 13.9697L19.5303 15.0303Z" fill="#008A20"></path></svg>
|
|
<span>Subscribed</span>
|
|
</a>
|
|
<div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble">
|
|
<div class="tip-arrow"></div>
|
|
<div class="tip-inner actnbr-follow-bubble">
|
|
<ul>
|
|
<li class="actnbr-sitename">
|
|
<a href="https://surfingcomplexity.blog">
|
|
<img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /> Surfing Complexity </a>
|
|
</li>
|
|
<div class="actnbr-message no-display"></div>
|
|
<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;">
|
|
<div class="actnbr-follow-count">Join 263 other subscribers</div>
|
|
<div>
|
|
<input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" />
|
|
</div>
|
|
<input type="hidden" name="action" value="subscribe" />
|
|
<input type="hidden" name="blog_id" value="30291541" />
|
|
<input type="hidden" name="source" value="https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/" />
|
|
<input type="hidden" name="sub-type" value="actionbar-follow" />
|
|
<input type="hidden" id="_wpnonce" name="_wpnonce" value="0db45c92b7" /> <div class="actnbr-button-wrap">
|
|
<button type="submit" value="Sign me up">
|
|
Sign me up </button>
|
|
</div>
|
|
</form>
|
|
<li class="actnbr-login-nudge">
|
|
<div>
|
|
Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2025%252F02%252F15%252Fresilience-some-key-ingredients%252F">Log in now.</a> </div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li class="actnbr-ellipsis actnbr-hidden">
|
|
<svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more">
|
|
<div class="tip-arrow"></div>
|
|
<div class="tip-inner">
|
|
<ul>
|
|
<li class="actnbr-sitename">
|
|
<a href="https://surfingcomplexity.blog">
|
|
<img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /> Surfing Complexity </a>
|
|
</li>
|
|
<li class="actnbr-folded-follow">
|
|
<a class="actnbr-action actnbr-actn-follow " href="">
|
|
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
|
|
<span>Subscribe</span>
|
|
</a>
|
|
<a class="actnbr-action actnbr-actn-following no-display" href="">
|
|
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V3H17.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H14.5V13.5H10.5V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path d="M19.5303 15.0303L15.5 19.0605L12.9697 16.5303L14.0303 15.4697L15.5 16.9395L18.4697 13.9697L19.5303 15.0303Z" fill="#008A20"></path></svg>
|
|
<span>Subscribed</span>
|
|
</a>
|
|
</li>
|
|
<li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li>
|
|
<li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2025%252F02%252F15%252Fresilience-some-key-ingredients%252F">Log in</a></li>
|
|
<li class="actnbr-shortlink">
|
|
<a href="https://wp.me/p236df-1vk">
|
|
<span class="actnbr-shortlink__text">Copy shortlink</span>
|
|
<span class="actnbr-shortlink__icon"><svg class="gridicon gridicons-checkmark" height="16" width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></g></svg></span>
|
|
</a>
|
|
</li>
|
|
<li class="flb-report">
|
|
<a href="https://wordpress.com/abuse/?report_url=https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/" target="_blank" rel="noopener noreferrer">
|
|
Report this content </a>
|
|
</li>
|
|
<li class="actnbr-reader">
|
|
<a href="https://wordpress.com/reader/blogs/30291541/posts/5786">
|
|
View post in Reader </a>
|
|
</li>
|
|
<li class="actnbr-subs">
|
|
<a href="https://subscribe.wordpress.com/">Manage subscriptions</a>
|
|
</li>
|
|
<li class="actnbr-fold"><a href="">Collapse this bar</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<script>
|
|
window.addEventListener( "DOMContentLoaded", function( event ) {
|
|
var link = document.createElement( "link" );
|
|
link.href = "/wp-content/mu-plugins/actionbar/actionbar.css?v=20250116";
|
|
link.type = "text/css";
|
|
link.rel = "stylesheet";
|
|
document.head.appendChild( link );
|
|
|
|
var script = document.createElement( "script" );
|
|
script.src = "/wp-content/mu-plugins/actionbar/actionbar.js?v=20250204";
|
|
document.body.appendChild( script );
|
|
} );
|
|
</script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
window.WPCOM_sharing_counts = {"https://surfingcomplexity.blog/2025/02/15/resilience-some-key-ingredients/":5786};
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
(function () {
|
|
var wpcom_reblog = {
|
|
source: 'toolbar',
|
|
|
|
toggle_reblog_box_flair: function (obj_id, post_id) {
|
|
|
|
// Go to site selector. This will redirect to their blog if they only have one.
|
|
const postEndpoint = `https://wordpress.com/post`;
|
|
|
|
// Ideally we would use the permalink here, but fortunately this will be replaced with the
|
|
// post permalink in the editor.
|
|
const originalURL = `${ document.location.href }?page_id=${ post_id }`;
|
|
|
|
const url =
|
|
postEndpoint +
|
|
'?url=' +
|
|
encodeURIComponent( originalURL ) +
|
|
'&is_post_share=true' +
|
|
'&v=5';
|
|
|
|
const redirect = function () {
|
|
if (
|
|
! window.open( url, '_blank' )
|
|
) {
|
|
location.href = url;
|
|
}
|
|
};
|
|
|
|
if ( /Firefox/.test( navigator.userAgent ) ) {
|
|
setTimeout( redirect, 0 );
|
|
} else {
|
|
redirect();
|
|
}
|
|
},
|
|
};
|
|
|
|
window.wpcom_reblog = wpcom_reblog;
|
|
})();
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/likes/queuehandler.js?m=1741961244i'></script>
|
|
<script id="wp-hooks-js" src="/wp-content/plugins/gutenberg-core/v23.9.1/build/scripts/hooks/index.min.js?m=1788785546i&ver=f0f188028580e8dc1255"></script>
|
|
<script id="wp-i18n-js" src="/wp-content/plugins/gutenberg-core/v23.9.1/build/scripts/i18n/index.min.js?m=1788785546i&ver=1dfe7db3940c23ea9216"></script>
|
|
<script id="wp-i18n-js-after">
|
|
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
|
|
//# sourceURL=wp-i18n-js-after
|
|
</script>
|
|
<script id="verbum-settings-js-before">
|
|
window.VerbumComments = {"Log in or provide your name and email to leave a reply.":"Log in or provide your name and email to leave a reply.","Log in or provide your name and email to leave a comment.":"Log in or provide your name and email to leave a comment.","Receive web and mobile notifications for posts on this site.":"Receive web and mobile notifications for posts on this site.","Name":"Name","Email (address never made public)":"Email (address never made public)","Website (optional)":"Website (optional)","Leave a reply. (log in optional)":"Leave a reply. (log in optional)","Leave a comment. (log in optional)":"Leave a comment. (log in optional)","Log in to leave a reply.":"Log in to leave a reply.","Log in to leave a comment.":"Log in to leave a comment.","Logged in via %s":"Logged in via %s","Log out":"Log out","Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.":"Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.","Email":"Email","(Address never made public)":"(Address never made public)","Instantly":"Instantly","Daily":"Daily","Reply":"Reply","Comment":"Comment","WordPress":"WordPress","Weekly":"Weekly","Notify me of new posts":"Notify me of new posts","Email me new posts":"Email me new posts","Email me new comments":"Email me new comments","Cancel":"Cancel","Write a comment...":"Write a comment...","Write a reply...":"Write a reply...","Website":"Website","Optional":"Optional","We'll keep you in the loop!":"We'll keep you in the loop!","Loading your comment...":"Loading your comment...","Discover more from":"Discover more from Surfing Complexity","Subscribe now to keep reading and get access to the full archive.":"Subscribe now to keep reading and get access to the full archive.","Continue reading":"Continue reading","Never miss a beat!":"Never miss a beat!","Interested in getting blog post updates? Simply click the button below to stay in the loop!":"Interested in getting blog post updates? Simply click the button below to stay in the loop!","Enter your email address":"Enter your email address","Subscribe":"Subscribe","Comment sent successfully":"Comment sent successfully","Save my name, email, and website in this browser for the next time I comment.":"Save my name, email, and website in this browser for the next time I comment.","hovercardi18n":{"Edit your profile \u2192":"Edit your profile \u2192","View profile \u2192":"View profile \u2192","Contact":"Contact","Send money":"Send money","Gravatar not found.":"Gravatar not found.","This profile is private.":"This profile is private.","Too Many Requests.":"Too Many Requests.","Internal Server Error.":"Internal Server Error.","Sorry, we are unable to load this Gravatar profile.":"Sorry, we are unable to load this Gravatar profile."},"siteId":30291541,"postId":5786,"mustLogIn":false,"requireNameEmail":true,"commentRegistration":false,"connectURL":"https://lorinhochstein.wordpress.com/public.api/connect/?action=request\u0026domain=surfingcomplexity.blog","logoutURL":"https://lorinhochstein.wordpress.com/wp-login.php?action=logout\u0026_wpnonce=b263a00deb","homeURL":"https://surfingcomplexity.blog/","subscribeToBlog":true,"subscribeToComment":true,"isJetpackCommentsLoggedIn":false,"jetpackUsername":"","jetpackUserId":0,"jetpackSignature":"","jetpackAvatar":"https://0.gravatar.com/avatar/?s=96\u0026amp;d=identicon\u0026amp;r=G","enableBlocks":true,"enableSubscriptionModal":true,"currentLocale":"en","isJetpackComments":false,"allowedBlocks":["core/paragraph","core/list","core/code","core/list-item","core/quote","core/image","core/embed","core/quote","core/code"],"embedNonce":"2db44e3fcc","verbumBundleUrl":"/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/features/verbum-comments/dist/index.js","isRTL":false,"vbeCacheBuster":1771405207,"iframeUniqueId":0,"colorScheme":false}
|
|
//# sourceURL=verbum-settings-js-before
|
|
</script>
|
|
<script data-wp-strategy="defer" defer id="verbum-dynamic-loader-js" src="/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/assets/dynamic-loader.js?m=1772518873i&minify=false&ver=8b5296f9195db92c42e4"></script>
|
|
<script id="sharing-js-js-extra">
|
|
var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"};
|
|
//# sourceURL=sharing-js-js-extra
|
|
</script>
|
|
<script id="jetpack-script-data-js-before">
|
|
window.JetpackScriptData = {"site":{"host":"wpcom","is_wpcom_platform":true}};
|
|
//# sourceURL=jetpack-script-data-js-before
|
|
</script>
|
|
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJydkNFOwzAMRX+I1IOJbTwgPmXykrR12zhR7Gzs78lKOyEeEPASJdfX514FLsnYyOpZQXsfvEAqJyB2Pvl6sJr6nkh6n80TDAKMZ+pQKXIzyAP8eV9GSmYiHk0bbRHT0vsKIrZTcRVRbTaGcNvOPk3XJtB/0ioPxGZKai6pAr8jQjFpKh1xTfSa0I6mSrN1GUCIkdfh8VwzYgYsGgOqkr2voYhXgVOhyd3FJdqh4g/JOJIEr2bbbOB4a7wKbZ7N7hetv5adGZ9FpMfsHTp3na/E3fKRb+H1cX/YvzxvDrvd8AFo0cDP'></script>
|
|
<script id="sharing-js-js-after">
|
|
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
|
|
window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350";
|
|
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
|
|
window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400";
|
|
//# sourceURL=sharing-js-js-after
|
|
</script>
|
|
<script id="wp-emoji-settings" type="application/json">
|
|
{"baseUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/","ext":".png","svgUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/","svgExt":".svg","source":{"concatemoji":"/wp-includes/js/wp-emoji-release.min.js?m=1783090810i&ver=7.1.1-alpha-63555"}}
|
|
</script>
|
|
<script type="module">
|
|
/*! This file is auto-generated */
|
|
var 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)))});
|
|
//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js
|
|
</script>
|
|
<iframe src='https://widgets.wp.com/likes/master.html?ver=20260912#ver=20260912' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe>
|
|
<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>
|
|
<script src="//stats.wp.com/w.js?69" defer></script> <script type="text/javascript">
|
|
_tkq = window._tkq || [];
|
|
_stq = window._stq || [];
|
|
_tkq.push(['storeContext', {'blog_id':'30291541','blog_tz':'-7','user_lang':'en','blog_lang':'en','user_id':'0'}]);
|
|
// Prevent sending pageview tracking from WP-Admin pages.
|
|
_stq.push(['view', {'blog':'30291541','v':'wpcom','tz':'-7','user_id':'0','post':'5786','subd':'lorinhochstein'}]);
|
|
_stq.push(['extra', {'crypt':'UE5tW3cvZGRTd1VXTHx0Q0pyYT89K3QrZXh+YlZCT3lNLEN2NzQ2Njh8QTJiL1BzZVh+MTlwZTc3TkdTOFRnU0szQW1JRDNWXXZWanJ3XTliMzhEQ3Bjdmg2WXpEUFhUNldjZSx8eVg3aVl+VT0zW1NXU21bWm9nRk5IZFUtOVZ+JTBRQ25hTWVZVHN3RmE2YkZXaW9pa3huZmJbSm9vZHQ2ZSVGbVFnQU0uW183Tl1bSStKN0Flekl1XVIuaDEsQ1M2bWM3ZmZYUGVVbWNsNHZoZGFfYQ=='}]);
|
|
_stq.push([ 'clickTrackerInit', '30291541', '5786' ]);
|
|
</script>
|
|
<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
|
|
<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="America/Los_Angeles" data-custom-props="{"logged_in":"0","wptheme":"pub\/independent-publisher-2","wptheme_is_block":"0"}" >
|
|
<script defer src="/wp-content/js/bilmur.min.js?i=17&m=202637"></script>
|
|
<script>
|
|
(function() {
|
|
'use strict';
|
|
|
|
const fetches = {};
|
|
const promises = {};
|
|
const urls = {
|
|
'wp-polyfill': '/wp-includes/js/dist/vendor/wp-polyfill.min.js?m=1786440387i&ver=3.15.0',
|
|
'verbum': '/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.js?m=1788898305i&minify=false&ver=3d6130a57c3104d5bc3b'
|
|
};
|
|
const loaders = {
|
|
'verbum': () => {
|
|
fetchExternalScript('wp-polyfill');
|
|
fetchExternalScript('verbum');
|
|
promises['wp-polyfill'] = promises['wp-polyfill'] || loadWPScript('wp-polyfill');
|
|
promises['verbum'] = promises['verbum'] || promises['wp-polyfill'].then( () => loadWPScript('verbum') );
|
|
return promises['verbum'];
|
|
},
|
|
|
|
};
|
|
const scriptExtras = {
|
|
|
|
};
|
|
|
|
window.WP_Enqueue_Dynamic_Script = {
|
|
loadScript: (handle) => {
|
|
if (!loaders[handle]) {
|
|
console.error('WP_Enqueue_Dynamic_Script: unregistered script `' + handle + '`.');
|
|
}
|
|
return loaders[handle]();
|
|
}
|
|
};
|
|
|
|
function fetchExternalScript(handle) {
|
|
if (!urls[handle]) {
|
|
return Promise.resolve();
|
|
}
|
|
|
|
fetches[handle] = fetches[handle] || fetch(urls[handle], { mode: 'no-cors' });
|
|
return fetches[handle];
|
|
}
|
|
|
|
function runExtraScript(handle, type, index) {
|
|
const id = 'wp-enqueue-dynamic-script:' + handle + ':' + type + ':' + (index + 1);
|
|
const template = document.getElementById(id);
|
|
if (!template) {
|
|
return Promise.reject();
|
|
}
|
|
|
|
const script = document.createElement( 'script' );
|
|
script.innerHTML = template.innerHTML;
|
|
document.body.appendChild( script );
|
|
return Promise.resolve();
|
|
}
|
|
|
|
function loadExternalScript(handle) {
|
|
if (!urls[handle]) {
|
|
return Promise.resolve();
|
|
}
|
|
|
|
return fetches[handle].then(() => {
|
|
return new Promise((resolve, reject) => {
|
|
const script = document.createElement('script');
|
|
script.onload = () => resolve();
|
|
script.onerror = (e) => reject(e);
|
|
script.src = urls[handle];
|
|
document.body.appendChild(script);
|
|
});
|
|
});
|
|
}
|
|
|
|
function loadExtra(handle, pos) {
|
|
const count = (scriptExtras[handle] && scriptExtras[handle][pos]) || 0;
|
|
let promise = Promise.resolve();
|
|
|
|
for (let i = 0; i < count; i++) {
|
|
promise = promise.then(() => runExtraScript(handle, pos, i));
|
|
}
|
|
|
|
return promise;
|
|
}
|
|
|
|
function loadWPScript(handle) {
|
|
// Core loads scripts in this order. See: https://github.com/WordPress/WordPress/blob/a59eb9d39c4fcba834b70c9e8dfd64feeec10ba6/wp-includes/class-wp-scripts.php#L428.
|
|
return loadExtra(handle, 'translations')
|
|
.then(() => loadExtra(handle, 'before'))
|
|
.then(() => loadExternalScript(handle))
|
|
.then(() => loadExtra(handle, 'after'));
|
|
}
|
|
} )();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|