Files
nexus/sreweekly/articles/187/03-simple-is-complex.html
2026-09-12 17:23:01 +08:00

2862 lines
250 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/javascript">
window.flatStyles = window.flatStyles || ''
window.lightspeedOptimizeStylesheet = function () {
const currentStylesheet = document.querySelector( '.tcb-lightspeed-style:not([data-ls-optimized])' )
if ( currentStylesheet ) {
try {
if ( currentStylesheet.sheet && currentStylesheet.sheet.cssRules ) {
if ( window.flatStyles ) {
if ( this.optimizing ) {
setTimeout( window.lightspeedOptimizeStylesheet.bind( this ), 24 )
} else {
this.optimizing = true;
let rulesIndex = 0;
while ( rulesIndex < currentStylesheet.sheet.cssRules.length ) {
const rule = currentStylesheet.sheet.cssRules[ rulesIndex ]
/* remove rules that already exist in the page */
if ( rule.type === CSSRule.STYLE_RULE && window.flatStyles.includes( `${rule.selectorText}{` ) ) {
currentStylesheet.sheet.deleteRule( rulesIndex )
} else {
rulesIndex ++
}
}
/* optimize, mark it such, move to the next file, append the styles we have until now */
currentStylesheet.setAttribute( 'data-ls-optimized', '1' )
window.flatStyles += currentStylesheet.innerHTML
this.optimizing = false
}
} else {
window.flatStyles = currentStylesheet.innerHTML
currentStylesheet.setAttribute( 'data-ls-optimized', '1' )
}
}
} catch ( error ) {
console.warn( error )
}
if ( currentStylesheet.parentElement.tagName !== 'HEAD' ) {
/* always make sure that those styles end up in the head */
const stylesheetID = currentStylesheet.id;
/**
* make sure that there is only one copy of the css
* e.g display CSS
*/
if ( ( ! stylesheetID || ( stylesheetID && ! document.querySelector( `head #${stylesheetID}` ) ) ) ) {
document.head.prepend( currentStylesheet )
} else {
currentStylesheet.remove();
}
}
}
}
window.lightspeedOptimizeFlat = function ( styleSheetElement ) {
if ( document.querySelectorAll( 'link[href*="thrive_flat.css"]' ).length > 1 ) {
/* disable this flat if we already have one */
styleSheetElement.setAttribute( 'disabled', true )
} else {
/* if this is the first one, make sure he's in head */
if ( styleSheetElement.parentElement.tagName !== 'HEAD' ) {
document.head.append( styleSheetElement )
}
}
}
</script>
<title>Simple is Complex &#8211; avdi.codes</title>
<style type="text/css" id="tcb-style-base_24-tve_form_type-10558" onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">.thrv-page-section{position:relative;box-sizing:border-box !important;}.thrv-page-section .tve-page-section-out{position:absolute;width:100%;height:100%;left:0px;top:0px;box-sizing:border-box;transition:box-shadow 0.5s ease 0s;overflow:hidden;}.thrv-page-section .tve-page-section-in{box-sizing:border-box;margin-right:auto;margin-left:auto;position:relative;z-index:1;min-height:40px;}.tve-page-section-in > .thrv_wrapper:first-child{margin-top:0px;}.tve-page-section-in > .thrv_wrapper:last-child{margin-bottom:0px;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_wrapper.thrv-page-section,.thrv_wrapper.thrv_symbol{margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><meta name='robots' content='max-image-preview:large' />
<script data-cfasync="false" data-cookieconsent="ignore" data-ezscrex="false" data-no-defer="1" data-pagespeed-no-defer>
var ctPublicFunctions = {"_ajax_nonce":"2b2b6bb3f0","_rest_nonce":"43d5701a0e","_ajax_url":"\/wp-admin\/admin-ajax.php","_rest_url":"https:\/\/avdi.codes\/wp-json\/","data__cookies_type":"none","data__ajax_type":"rest","bot_detector_enabled":false,"data__frontend_data_log_enabled":1,"data__bot_detector_enabled":0,"cookiePrefix":"","wprocket_detected":false,"host_url":"avdi.codes","text__ee_click_to_select":"Click to select the whole data","text__ee_original_email":"The complete one is","text__ee_got_it":"Got it","text__ee_blocked":"Blocked","text__ee_cannot_connect":"Cannot connect","text__ee_cannot_decode":"Can not decode email. Unknown reason","text__ee_email_decoder":"CleanTalk email decoder","text__ee_wait_for_decoding":"The magic is on the way!","text__ee_decoding_process":"Please wait a few seconds while we decode the contact data."}
</script>
<script data-cfasync="false" data-cookieconsent="ignore" data-ezscrex="false" data-no-defer="1" data-pagespeed-no-defer>
var ctPublic = {"_ajax_nonce":"2b2b6bb3f0","settings__forms__check_internal":"0","settings__forms__check_external":"0","settings__forms__force_protection":0,"settings__forms__search_test":"1","settings__forms__wc_add_to_cart":"0","bot_detector_enabled":false,"settings__sfw__anti_crawler":0,"blog_home":"https:\/\/avdi.codes\/","pixel__setting":"3","pixel__enabled":true,"pixel__url":"https:\/\/moderate14-v4.cleantalk.org\/pixel\/7cb0777146297d1c904e38c8bc3539ef.gif","data__email_check_before_post":"1","data__email_check_exist_post":0,"data__cookies_type":"none","data__key_is_ok":true,"data__visible_fields_required":true,"wl_brandname":"Anti-Spam by CleanTalk","wl_brandname_short":"CleanTalk","ct_checkjs_key":"f78825fb2d6ee4b074b9b34972aed8f729070dee413719ce1ab4d3b43f04e6c6","emailEncoderPassKey":"004a8b52df1a12e395382c1eb98f2b98","bot_detector_forms_excluded":"W10=","advancedCacheExists":true,"varnishCacheExists":true,"wc_ajax_add_to_cart":false}
</script>
<!-- Open Graph Meta Tags generated by Blog2Social 903 - https://www.blog2social.com -->
<meta property="og:title" content="Simple is Complex"/>
<meta property="og:description" content="I started reading Vehicles, by Valentino Braitenberg. Braitenberg asks us to consider the implications of extremely simple notional machines. For instance, the "/>
<meta property="og:url" content="/simple-is-complex/"/>
<meta property="og:image:alt" content="Dust and microorganisms microscopic view"/>
<meta property="og:image" content="https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1.jpg"/>
<meta property="og:image:width" content="2000" />
<meta property="og:image:height" content="1500" />
<meta property="og:type" content="article"/>
<meta property="og:article:published_time" content="2019-09-26 12:04:48"/>
<meta property="og:article:modified_time" content="2020-02-24 23:02:30"/>
<meta property="og:article:tag" content="architecture"/>
<meta property="og:article:tag" content="complexity"/>
<meta property="og:article:tag" content="featured"/>
<meta property="og:article:tag" content="microservices"/>
<meta property="og:article:tag" content="simplicity"/>
<meta property="og:article:tag" content="software design"/>
<meta property="og:article:tag" content="systems"/>
<meta property="og:article:tag" content="systems thinking"/>
<!-- Open Graph Meta Tags generated by Blog2Social 903 - https://www.blog2social.com -->
<!-- Twitter Card generated by Blog2Social 903 - https://www.blog2social.com -->
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Simple is Complex"/>
<meta name="twitter:description" content="I started reading Vehicles, by Valentino Braitenberg. Braitenberg asks us to consider the implications of extremely simple notional machines. For instance, the "/>
<meta name="twitter:image" content="https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1.jpg"/>
<meta name="twitter:image:alt" content="Dust and microorganisms microscopic view"/>
<!-- Twitter Card generated by Blog2Social 903 - https://www.blog2social.com -->
<meta name="author" content="Avdi Grimm"/>
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel="alternate" type="application/rss+xml" title="avdi.codes &raquo; Feed" href="https://avdi.codes/feed/" />
<link rel="alternate" type="application/rss+xml" title="avdi.codes &raquo; Comments Feed" href="https://avdi.codes/comments/feed/" />
<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://avdi.codes/wp-json/oembed/1.0/embed?url=https%3A%2F%2Favdi.codes%2Fsimple-is-complex%2F" />
<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://avdi.codes/wp-json/oembed/1.0/embed?url=https%3A%2F%2Favdi.codes%2Fsimple-is-complex%2F&#038;format=xml" />
<!-- This site uses the Google Analytics by MonsterInsights plugin v11.2.0 - Using Analytics tracking - https://www.monsterinsights.com/ -->
<script src="//www.googletagmanager.com/gtag/js?id=G-J6TJ9WX3NW" data-cfasync="false" data-wpfc-render="false" type="text/javascript" async></script>
<script data-cfasync="false" data-wpfc-render="false" type="text/javascript">
var mi_version = '11.2.0';
var mi_track_user = true;
var mi_no_track_reason = '';
var MonsterInsightsDefaultLocations = {"page_location":"https:\/\/avdi.codes\/simple-is-complex\/"};
if ( typeof MonsterInsightsPrivacyGuardFilter === 'function' ) {
var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsPrivacyGuardFilter( MonsterInsightsExcludeQuery ) : MonsterInsightsPrivacyGuardFilter( MonsterInsightsDefaultLocations );
} else {
var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsExcludeQuery : MonsterInsightsDefaultLocations;
}
var disableStrs = [
'ga-disable-G-J6TJ9WX3NW',
];
/* Function to detect opted out users */
function __gtagTrackerIsOptedOut() {
for (var index = 0; index < disableStrs.length; index++) {
if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) {
return true;
}
}
return false;
}
/* Disable tracking if the opt-out cookie exists. */
if (__gtagTrackerIsOptedOut()) {
for (var index = 0; index < disableStrs.length; index++) {
window[disableStrs[index]] = true;
}
}
/* Opt-out function */
function __gtagTrackerOptout() {
for (var index = 0; index < disableStrs.length; index++) {
document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStrs[index]] = true;
}
}
if ('undefined' === typeof gaOptout) {
function gaOptout() {
__gtagTrackerOptout();
}
}
window.dataLayer = window.dataLayer || [];
window.MonsterInsightsDualTracker = {
helpers: {},
trackers: {},
};
if (mi_track_user) {
function __gtagDataLayer() {
dataLayer.push(arguments);
}
function __gtagTracker(type, name, parameters) {
if (!parameters) {
parameters = {};
}
if (parameters.send_to) {
__gtagDataLayer.apply(null, arguments);
return;
}
if (type === 'event') {
parameters.send_to = monsterinsights_frontend.v4_id;
var hookName = name;
if (typeof parameters['event_category'] !== 'undefined') {
hookName = parameters['event_category'] + ':' + name;
}
if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') {
MonsterInsightsDualTracker.trackers[hookName](parameters);
} else {
__gtagDataLayer('event', name, parameters);
}
} else {
__gtagDataLayer.apply(null, arguments);
}
}
__gtagTracker('js', new Date());
__gtagTracker('set', {
'developer_id.dZGIzZG': true,
});
if ( MonsterInsightsLocations.page_location ) {
__gtagTracker('set', MonsterInsightsLocations);
}
__gtagTracker('config', 'G-J6TJ9WX3NW', {"forceSSL":"true","anonymize_ip":"true","link_attribution":"true"} );
window.gtag = __gtagTracker; (function () {
/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */
/* ga and __gaTracker compatibility shim. */
var noopfn = function () {
return null;
};
var newtracker = function () {
return new Tracker();
};
var Tracker = function () {
return null;
};
var p = Tracker.prototype;
p.get = noopfn;
p.set = noopfn;
p.send = function () {
var args = Array.prototype.slice.call(arguments);
args.unshift('send');
__gaTracker.apply(null, args);
};
var __gaTracker = function () {
var len = arguments.length;
if (len === 0) {
return;
}
var f = arguments[len - 1];
if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') {
if ('send' === arguments[0]) {
var hitConverted, hitObject = false, action;
if ('event' === arguments[1]) {
if ('undefined' !== typeof arguments[3]) {
hitObject = {
'eventAction': arguments[3],
'eventCategory': arguments[2],
'eventLabel': arguments[4],
'value': arguments[5] ? arguments[5] : 1,
}
}
}
if ('pageview' === arguments[1]) {
if ('undefined' !== typeof arguments[2]) {
hitObject = {
'eventAction': 'page_view',
'page_path': arguments[2],
}
}
}
if (typeof arguments[2] === 'object') {
hitObject = arguments[2];
}
if (typeof arguments[5] === 'object') {
Object.assign(hitObject, arguments[5]);
}
if ('undefined' !== typeof arguments[1].hitType) {
hitObject = arguments[1];
if ('pageview' === hitObject.hitType) {
hitObject.eventAction = 'page_view';
}
}
if (hitObject) {
action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction;
hitConverted = mapArgs(hitObject);
__gtagTracker('event', action, hitConverted);
}
}
return;
}
function mapArgs(args) {
var arg, hit = {};
var gaMap = {
'eventCategory': 'event_category',
'eventAction': 'event_action',
'eventLabel': 'event_label',
'eventValue': 'event_value',
'nonInteraction': 'non_interaction',
'timingCategory': 'event_category',
'timingVar': 'name',
'timingValue': 'value',
'timingLabel': 'event_label',
'page': 'page_path',
'location': 'page_location',
'title': 'page_title',
'referrer' : 'page_referrer',
};
for (arg in args) {
if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) {
hit[gaMap[arg]] = args[arg];
} else {
hit[arg] = args[arg];
}
}
return hit;
}
try {
f.hitCallback();
} catch (ex) {
}
};
__gaTracker.create = newtracker;
__gaTracker.getByName = newtracker;
__gaTracker.getAll = function () {
return [];
};
__gaTracker.remove = noopfn;
__gaTracker.loaded = true;
window['__gaTracker'] = __gaTracker;
})();
} else {
console.log("");
(function () {
function __gtagTracker() {
return null;
}
window['__gtagTracker'] = __gtagTracker;
window['gtag'] = __gtagTracker;
})();
}
</script>
<!-- / Google Analytics by MonsterInsights -->
<script data-cfasync="false" data-wpfc-render="false" type="text/javascript">
if (window.hasOwnProperty('MonsterInsightsDualTracker')){
window.MonsterInsightsDualTracker.trackers['form:impression'] = function (parameters) {
__gtagDataLayer('event', 'form_impression', {
form_id: parameters.event_label,
content_type: 'form',
non_interaction: true,
send_to: parameters.send_to,
});
};
window.MonsterInsightsDualTracker.trackers['form:conversion'] = function (parameters) {
__gtagDataLayer('event', 'generate_lead', {
form_id: parameters.event_label,
send_to: parameters.send_to,
});
};
}
</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>
<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-includes/css/dist/block-library/common.min.css */
</style>
<style id="wp-block-button-inline-css">
.wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1% - var(--wp--style--block-gap, .5em)*(1 - var(--wp--block-button--width)/100))}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1%)}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:transparent;background-image:none}
/*# sourceURL=https://avdi.codes/wp-includes/blocks/button/style.min.css */
</style>
<style id="wp-block-image-inline-css">
.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
/*# sourceURL=https://avdi.codes/wp-includes/blocks/image/style.min.css */
</style>
<style id="wp-block-paragraph-inline-css">
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
/*# sourceURL=https://avdi.codes/wp-includes/blocks/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%}.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=https://avdi.codes/wp-includes/blocks/search/style.min.css */
</style>
<style id="activitypub-follow-me-style-inline-css">
body.modal-open{overflow:hidden}.activitypub-modal__overlay{--activitypub-modal-background-color:var(--wp--preset--color--base,var(--wp--preset--color--background,#fff));--activitypub-modal-border-color:var(--wp--preset--color--contrast-3,var(--wp--preset--color--light-gray,#e2e4e7));--activitypub-modal-radius:var(--wp--custom--border--radius--medium,8px);--activitypub-modal-shadow:var(--wp--preset--shadow--natural,0 5px 15px rgba(0,0,0,.3));--activitypub-modal-compact-shadow:var(--wp--preset--shadow--natural,0 2px 8px rgba(0,0,0,.1));--activitypub-modal-text-color:var(--wp--preset--color--contrast,var(--wp--preset--color--foreground,inherit));align-items:center;background-color:rgba(0,0,0,.5);bottom:0;color:var(--activitypub-modal-text-color);display:flex;justify-content:center;left:0;margin:0!important;max-width:none!important;padding:1rem;position:fixed;right:0;top:0;z-index:100000}.activitypub-modal__overlay.compact{align-items:flex-start;background-color:transparent;bottom:auto;justify-content:flex-start;left:auto;padding:0;position:absolute;right:auto;top:auto;z-index:100}.activitypub-modal__overlay[hidden]{display:none}.activitypub-modal__frame{animation:activitypub-modal-appear .2s ease-out;background-color:var(--activitypub-modal-background-color);border:1px solid var(--activitypub-modal-border-color);border-radius:var(--activitypub-modal-radius);box-shadow:var(--activitypub-modal-shadow);box-sizing:border-box;color:var(--wp--preset--color--contrast,#1e1e1e);display:flex;flex-direction:column;font-size:inherit;max-height:calc(100vh - 2rem);max-width:660px;overflow:hidden;width:100%}.compact .activitypub-modal__frame{box-shadow:var(--activitypub-modal-compact-shadow);max-height:300px;max-width:min-content;min-width:250px;width:auto}.activitypub-modal__header{align-items:center;border-bottom:1px solid var(--activitypub-modal-border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:2rem 2rem 1.5rem}.compact .activitypub-modal__header{display:none}.activitypub-modal__header .activitypub-modal__close{align-items:center;background:transparent;border:none;border-radius:var(--activitypub-modal-radius);color:inherit;cursor:pointer;display:flex;justify-content:center;padding:.5rem;width:auto}.activitypub-modal__header .activitypub-modal__close:active{border:none;padding:.5rem}.activitypub-modal__title{font-size:130%;font-weight:600;line-height:1.4;margin:0!important}.activitypub-modal__content{overflow-y:auto}.activitypub-dialog__section{border-bottom:1px solid var(--activitypub-modal-border-color,var(--wp--preset--color--light-gray,#f0f0f0));padding:1.5rem 2rem}.activitypub-dialog__section:last-child{border-bottom:none;padding-bottom:2rem}.activitypub-dialog__section h4{font-size:110%;margin-bottom:.5rem;margin-top:0}.activitypub-dialog__description{color:inherit;margin-bottom:1rem}.activitypub-dialog__button-group{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem;width:100%}.activitypub-dialog__button-group input[type]{background-color:var(--activitypub-modal-background-color,#fff)!important;border:1px solid var(--activitypub-modal-border-color,#949494)!important;border-radius:0;box-sizing:border-box;color:inherit!important;flex:1;font-family:inherit;font-size:1em;line-height:1;margin:0;min-width:0;padding:calc(.667em + 2px)!important}.activitypub-dialog__button-group input[type]::placeholder{opacity:.5}.activitypub-dialog__button-group input[type][aria-invalid=true]{border-color:var(--wp--preset--color--vivid-red,#b32d2e)!important}.activitypub-dialog__button-group button{background-color:var(--wp--preset--color--contrast,#1e1e1e);border:none;box-sizing:border-box;color:var(--wp--preset--color--base,#fff);cursor:pointer;font-family:inherit;font-size:1em;line-height:1;min-width:22.5%;padding:calc(.667em + 2px) 1.5em;width:auto}.activitypub-dialog__error{color:var(--wp--preset--color--vivid-red,#b32d2e);font-size:90%;margin-top:.5rem}.activitypub-dialog__error:empty{margin-top:0}.activitypub-dialog__remember{font-size:90%;margin-top:1rem}.activitypub-dialog__remember label{align-items:center;display:flex;gap:.5rem}.activitypub-dialog__remember input[type=checkbox]{margin:0;position:relative;top:0}@keyframes activitypub-modal-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.activitypub-follow-me-block-wrapper{display:block;margin:1rem 0;position:relative}.activitypub-follow-me-block-wrapper .activitypub-profile{padding:1rem 0}.activitypub-follow-me-block-wrapper .activitypub-profile__body{display:flex;flex-wrap:wrap}.activitypub-follow-me-block-wrapper .activitypub-profile__avatar{border-radius:50%;height:75px;margin-right:1rem;object-fit:cover;width:75px}.activitypub-follow-me-block-wrapper .activitypub-profile__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;justify-content:space-between;min-width:0}.activitypub-follow-me-block-wrapper .activitypub-profile__info{display:block;flex:1;min-width:0}.activitypub-follow-me-block-wrapper .activitypub-profile__name{font-size:1.25em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activitypub-follow-me-block-wrapper .activitypub-profile__handle,.activitypub-follow-me-block-wrapper .activitypub-profile__name{color:inherit;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activitypub-follow-me-block-wrapper .activitypub-profile div.wp-block-button{align-items:center;display:flex;margin:0 0 0 1rem}.activitypub-follow-me-block-wrapper .activitypub-profile .wp-block-button__link{margin:0}.activitypub-follow-me-block-wrapper .activitypub-profile .is-small{font-size:.8rem;padding:.25rem .5rem}.activitypub-follow-me-block-wrapper .activitypub-profile .is-compact{font-size:.9rem;padding:.4rem .8rem}.activitypub-follow-me-block-wrapper:not(.is-style-button-only):not(.is-style-profile) .activitypub-profile__bio,.activitypub-follow-me-block-wrapper:not(.is-style-button-only):not(.is-style-profile) .activitypub-profile__stats{display:none}.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile{padding:0}.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__body{display:block;padding:0}.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__content{display:inline}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button{display:inline-block;margin:0}.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__avatar,.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__bio,.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__handle,.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__name,.activitypub-follow-me-block-wrapper.is-style-button-only .activitypub-profile__stats{display:none}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button.has-custom-width{display:block;max-width:none}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button.has-custom-width .wp-block-button__link{justify-content:center;width:100%}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.activitypub-follow-me-block-wrapper.is-style-button-only div.wp-block-button__width-100{width:100%}.activitypub-follow-me-block-wrapper.is-style-profile{border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile,.activitypub-follow-me-block-wrapper.is-style-profile.has-background .activitypub-profile{padding:0}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__header{background-color:#ccc;background-position:50%;background-size:cover;height:120px;width:100%}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__body{padding:1rem}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__avatar{height:64px;width:64px}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__content{flex:1;min-width:0}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__name{margin-bottom:.25rem}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__bio{font-size:90%;line-height:1.4;margin-top:16px;width:100%}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__bio p{margin:0 0 .5rem}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__bio p:last-child{margin-bottom:0}.activitypub-follow-me-block-wrapper.is-style-profile .activitypub-profile__stats{display:flex;font-size:.9em;gap:16px;margin-top:1rem;width:100%}.activitypub-follow-me-block-wrapper.has-background .activitypub-profile,.activitypub-follow-me-block-wrapper.has-border .activitypub-profile{padding-left:1rem;padding-right:1rem}
/*# sourceURL=https://avdi.codes/wp-content/plugins/activitypub/build/follow-me/style-index.css */
</style>
<style id="avdeez-core-buttons-styles-inline-css">
/*
* Button hover styles.
* Necessary until the following issue is resolved in Gutenberg:
* https://github.com/WordPress/gutenberg/issues/27075
*/
.wp-block-search__button:hover,
.wp-block-file .wp-block-file__button:hover,
.wp-block-button__link:hover {
opacity: 0.75;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/buttons.css */
</style>
<style id="avdeez-core-calendar-styles-inline-css">
/* Widgets: Calendar */
.wp-block-calendar table {
margin-block-end: var(--wp--style--block-gap);
}
.wp-block-calendar table th {
text-align: center;
background-color: var(--wp--preset--color--secondary-light);
padding-block-start: 0.4em;
padding-block-end: 0.4em;
border: 1px solid var(--wp--preset--color--secondary-base);
}
.wp-block-calendar table tbody {
color: var(--wp--preset--color--primary-light);
}
.wp-block-calendar table tbody td {
border-color: var(--wp--preset--color--secondary-base);
}
.wp-block-calendar table caption {
color: var(--wp--preset--color--primary-light);
font-weight: bold;
margin-block-end: var(--wp--style--block-gap);
}
.wp-block-calendar .wp-calendar-nav {
font-size: var(--wp--preset--font-size--small);
font-weight: bold;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/calendar.css */
</style>
<style id="avdeez-core-categories-styles-inline-css">
/* Widgets: Categories */
.wp-block-categories > :last-child {
margin-block-end: 0;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/categories.css */
</style>
<style id="avdeez-core-code-styles-inline-css">
pre,
.wp-block-code {
background-color: var(--wp--preset--color--secondary-light);
line-height: 1.6;
overflow: auto;
padding: 1.6em;
}
.wp-block-code,
pre, code, kbd, samp {
font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
pre,
.wp-block-code,
code, kbd, tt, var {
font-size: 0.9375rem;
}
code {
padding: 0.2em 0.3em;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 4px;
}
pre code {
background: none;
border-radius: 0;
padding: 0;
color: inherit;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/code.css */
</style>
<style id="avdeez-core-columns-styles-inline-css">
/* Custom Style: No space */
.wp-block-columns.is-style-th-has-nospace.alignfull {
padding: 0;
margin-bottom: 0;
}
.wp-block-columns.is-style-th-has-nospace .wp-block-column {
margin-top: 0;
}
.wp-block-columns.is-style-th-has-nospace .wp-block-column:not(:first-child) {
margin-left: 0;
}
.wp-block-columns.is-style-th-has-nospace .wp-block-cover:not(.alignfull), .wp-block-columns.is-style-th-has-nospace .wp-block-cover:not(.alignfull).has-background-dim::before, .wp-block-columns.is-style-th-has-nospace .wp-block-cover:not(.alignfull) .wp-block-cover__video-background, .wp-block-columns.is-style-th-has-nospace .wp-block-cover:not(.alignfull) .wp-block-cover__image-background, .wp-block-columns.is-style-th-has-nospace .wp-block-cover:not(.alignfull) .wp-block-cover__gradient-background {
border-radius: 0;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/columns.css */
</style>
<style id="avdeez-core-cover-styles-inline-css">
/* Cover block */
.wp-block-cover.has-background-dim {
text-shadow: 0 0 1px rgba(0, 0, 0, 0.15);
}
.wp-block-cover .wp-block-cover__inner-container > :first-child {
margin-block-start: 0;
}
.wp-block-cover .wp-block-cover__inner-container > :last-child {
margin-block-end: 0;
}
.wp-block-cover .wp-block-cover__inner-container .alignwide {
max-width: var(--wp--style--global--wide-size);
margin-inline: auto;
}
.wp-block-cover:not(.alignfull), .wp-block-cover:not(.alignfull).has-background-dim::before, .wp-block-cover:not(.alignfull).has-background-dim:not(.has-background-gradient):before, .wp-block-cover:not(.alignfull) .has-background-dim:not(.has-background-gradient):before, .wp-block-cover:not(.alignfull) .wp-block-cover__gradient-background, .wp-block-cover:not(.alignfull) .wp-block-cover__video-background, .wp-block-cover:not(.alignfull) .wp-block-cover__image-background, .wp-block-cover:not(.alignfull) .wp-block-cover__gradient-background, .wp-block-cover:not(.alignfull) .wp-block-cover__background {
border-radius: var(--wp--custom--radius--base);
}
.alignfull > .wp-block-column > .wp-block-cover, .alignfull > .wp-block-column > .wp-block-cover.has-background-dim::before, .alignfull > .wp-block-column > .wp-block-cover.has-background-dim:not(.has-background-gradient):before, .alignfull > .wp-block-column > .wp-block-cover .has-background-dim:not(.has-background-gradient):before, .alignfull > .wp-block-column > .wp-block-cover .wp-block-cover__gradient-background, .alignfull > .wp-block-column > .wp-block-cover .wp-block-cover__video-background, .alignfull > .wp-block-column > .wp-block-cover .wp-block-cover__image-background, .alignfull > .wp-block-column > .wp-block-cover .wp-block-cover__gradient-background, .alignfull > .wp-block-column > .wp-block-cover .wp-block-cover__background {
border-radius: 0;
}
.wp-block-cover .wp-block-post-terms.taxonomy-category.has-tiny-font-size {
display: flex;
flex-wrap: wrap;
gap: 0.5em;
}
.wp-block-cover .wp-block-post-terms.taxonomy-category.has-tiny-font-size a {
text-decoration: none;
border: 1px solid;
border-radius: var(--wp--custom--radius--medium);
padding: 0.2em 1em;
}
.wp-block-cover .wp-block-post-terms.taxonomy-category.has-tiny-font-size a:hover {
opacity: 0.75;
}
.wp-block-cover .wp-block-post-terms.taxonomy-category.has-tiny-font-size .wp-block-post-terms__separator {
display: none;
}
.wp-block-cover .wp-block-read-more:hover {
opacity: 0.75;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/cover.css */
</style>
<style id="avdeez-core-group-styles-inline-css">
.wp-block-group.has-background img {
opacity: 0.9;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/group.css */
</style>
<style id="avdeez-core-heading-styles-inline-css">
:is(h1, h2, h3, h4).has-enormous-font-size {
line-height: 1.35;
}
:is(h1, h2, h3, h4).has-gigantic-font-size {
line-height: 1.3;
}
:is(h1, h2, h3, h4).has-grand-font-size {
line-height: 1.25;
}
:is(h1, h2, h3, h4, h5, h6).has-small-font-size, :is(h1, h2, h3, h4, h5, h6).has-tiny-font-size {
text-transform: uppercase;
letter-spacing: 0.15em;
line-height: var(--wp--custom--leading--baseline);
}
/* Heading: with paragprahs */
:is(h1, h2, h3, h4, h5, h6) + p {
margin-block-start: 0;
}
/* Heading: with links */
:is(h1, h2, h3, h4, h5, h6) > a {
text-decoration: none;
color: inherit;
}
:is(h1, h2, h3, h4, h5, h6) > a:hover {
color: inherit;
opacity: 0.75;
}
.has-link-color :is(h1, h2, h3, h4, h5, h6) > a {
color: inherit;
}
[class*=has-background] [class*=__inner-container] h1 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h1 > a:not([class]),
[class*=has-background] [class*=__inner-container] h2 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h2 > a:not([class]),
[class*=has-background] [class*=__inner-container] h3 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h3 > a:not([class]),
[class*=has-background] [class*=__inner-container] h4 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h4 > a:not([class]),
[class*=has-background] [class*=__inner-container] h5 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h5 > a:not([class]),
[class*=has-background] [class*=__inner-container] h6 > a:not([class]),
[class*=has-background] .wp-block-media-text__content h6 > a:not([class]) {
text-decoration: none;
font-weight: inherit;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/heading.css */
</style>
<style id="avdeez-core-image-styles-inline-css">
/* Image */
.wp-block-image.alignfull img {
border-radius: 0;
}
.wp-block-image.alignfull figcaption {
padding-inline-start: var(--wp--style--block-gap);
padding-inline-end: var(--wp--style--block-gap);
}
.wp-block-image a:hover img {
opacity: 0.75;
}
.wp-block-image figcaption {
margin-block-start: 1em;
margin-block-end: 0;
}
.wp-block-image .aligncenter {
text-align: center;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/image.css */
</style>
<style id="avdeez-core-latest-comments-styles-inline-css">
ol.wp-block-latest-comments {
margin-inline: auto;
}
ol.wp-block-latest-comments.wp-block-latest-comments {
padding-inline-start: 1.25em;
}
ol.wp-block-latest-comments .wp-block-latest-comments__comment {
list-style: disc;
}
ol.wp-block-latest-comments:is(.has-excerpts, .has-avatars) {
padding-inline-start: 0;
}
ol.wp-block-latest-comments:is(.has-excerpts, .has-avatars) .wp-block-latest-comments__comment {
list-style: none;
}
ol.wp-block-latest-comments:is(.has-dates, .has-excerpts) .wp-block-latest-comments__comment {
line-height: var(--wp--custom--leading--baseline);
}
ol.wp-block-latest-comments li + li {
margin-block-start: 0;
}
.wp-block-latest-comments .wp-block-latest-comments__comment-meta + .wp-block-latest-comments__comment-excerpt {
margin-block-start: 0.25em;
}
.wp-block-latest-comments li {
line-height: var(--wp--custom--leading--baseline);
margin-block-end: 0;
}
.wp-block-latest-comments li + li {
margin-block-start: 0.5em;
}
.wp-block-latest-comments .wp-block-latest-comments__comment-avatar {
margin-inline-end: 1em;
}
.wp-block-latest-comments.has-avatars {
display: flex;
flex-direction: column;
gap: var(--wp--custom--spacing--small);
}
.wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment {
margin: auto;
width: 100%;
}
.wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt, .wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta {
margin-inline-start: 3.5em;
}
.wp-block-latest-comments.has-avatars:is(.has-dates, .has-excerpts) {
gap: var(--wp--style--block-gap);
}
.wp-block-latest-comments.alignfull {
padding-inline: var(--wp--custom--spacing--medium);
}
.wp-block-latest-comments .wp-block-latest-comments__comment-date {
margin-block-start: 0.25em;
opacity: 0.75;
font-size: 0.899em;
}
.wp-block-latest-comments .wp-block-latest-comments__comment-excerpt p {
margin: 0;
font-size: 1em;
line-height: var(--wp--custom--leading--baseline);
}
.wp-block-latest-comments .wp-block-latest-comments__comment-author {
font-weight: normal;
color: inherit;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/latest-comments.css */
</style>
<style id="avdeez-core-latest-posts-styles-inline-css">
.wp-block-latest-posts__list {
display: flow-root;
/* remove in new browsers soon */
}
.wp-block-latest-posts__list:not(.is-grid) {
list-style: disc;
padding-inline-start: 1.25em;
}
.wp-block-latest-posts__list.has-featured-image {
list-style: none;
padding-inline-start: 0;
}
.wp-block-latest-posts__list:has(.wp-block-latest-posts__featured-image) {
list-style: none;
padding-inline-start: 0;
}
.wp-block-latest-posts__list > li {
overflow: initial;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/latest-posts.css */
</style>
<style id="avdeez-core-list-styles-inline-css">
@charset "UTF-8";
/* Remove indent in lists when a custom background is used */
ul.has-background,
ol.has-background {
margin-left: auto;
padding: 1.5em 1em;
border-radius: var(--wp--custom--radius--base);
}
/*--------------------------------------------------------------
# List Style: Highlighted
--------------------------------------------------------------*/
ol.is-style-th-highlighted > li::before {
content: counter(list-item);
}
ul.is-style-th-highlighted > li::before {
content: "✓";
}
.is-style-th-highlighted {
padding-inline-start: 0;
}
.is-style-th-highlighted ul, .is-style-th-highlighted ol {
margin-block-start: 0.7em;
}
.is-style-th-highlighted > li {
position: relative;
list-style: none;
padding-inline-start: 2.35em;
padding-inline-end: 1.5em;
}
.is-style-th-highlighted > li::before {
text-align: center;
font-weight: bold;
font-size: 0.889em;
color: var(--wp--preset--color--accent-light);
background-color: var(--wp--preset--color--accent-base);
position: absolute;
left: 0;
border-radius: 50%;
width: 1.7em;
height: 1.7em;
line-height: 1.7em;
}
.is-style-th-highlighted > li + li {
margin-block-start: 0.9em;
}
/*--------------------------------------------------------------
# List Style: Divided
--------------------------------------------------------------*/
.editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided, .editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided > ul[class], .editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided > ol[class],
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided,
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided > ul[class],
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided > ol[class] {
list-style: none;
}
.editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided:not(.has-background), .editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided > ul[class]:not(.has-background), .editor-styles-wrapper .is-style-th-divided.is-style-th-divided.is-style-th-divided > ol[class]:not(.has-background),
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided:not(.has-background),
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided > ul[class]:not(.has-background),
.wp-block[data-type="core/widget-area"] .is-style-th-divided.is-style-th-divided.is-style-th-divided > ol[class]:not(.has-background) {
padding-inline-start: 0;
}
.is-style-th-divided.is-style-th-divided {
list-style: none;
}
.is-style-th-divided.is-style-th-divided:not(.has-background) {
padding-inline-start: 0;
}
.is-style-th-divided a {
text-decoration: none;
}
.is-style-th-divided a:hover {
text-decoration: underline;
}
.is-style-th-divided ul, .is-style-th-divided ol {
list-style: none;
margin-block: 0.25em;
}
.is-style-th-divided ul > li + li, .is-style-th-divided ol > li + li {
position: relative;
margin-block-start: 0.25em;
}
.is-style-th-divided ul > li + li::before, .is-style-th-divided ol > li + li::before {
content: "";
display: block;
border-block-start: 1px dotted currentColor;
margin-block-end: 0.25em;
opacity: 0.35;
}
.is-style-th-divided > li + li {
position: relative;
margin-block-start: 0.5em;
}
.is-style-th-divided > li + li::before {
content: "";
display: block;
border-block-start: 1px dotted currentColor;
margin-block-end: 0.5em;
opacity: 0.35;
}
/*--------------------------------------------------------------
# List Style: Inline
--------------------------------------------------------------*/
.editor-styles-wrapper .is-style-th-inline-list li {
margin-inline-start: 1em;
}
ul.is-style-th-inline-list li {
list-style: circle;
}
ol.is-style-th-inline-list li {
list-style: auto;
}
.is-style-th-inline-list {
display: flex;
flex-wrap: wrap;
gap: 1em;
list-style: none;
padding-inline-start: 0;
}
.is-style-th-inline-list li {
margin-inline-start: 1em;
}
.is-content-justification-center .is-style-th-inline-list {
justify-content: center;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/list.css */
</style>
<style id="avdeez-core-paragraph-styles-inline-css">
/* Dropcap */
p.has-drop-cap:not(:focus):first-letter {
font-size: 6.2em;
font-weight: bold;
line-height: 0.8;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/paragraph.css */
</style>
<style id="avdeez-core-pullquote-styles-inline-css">
/*--------------------------------------------------------------
# Pullquote: General
--------------------------------------------------------------*/
.wp-block-pullquote.is-style-solid-color blockquote {
max-width: 80%;
}
.wp-block-pullquote > blockquote {
border-inline: 0;
}
.wp-block-pullquote blockquote p, .wp-block-pullquote.alignleft blockquote p, .wp-block-pullquote.alignright blockquote p, .wp-block-pullquote.has-text-align-left blockquote p, .wp-block-pullquote.has-text-align-right blockquote p {
font-size: inherit;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/pullquote.css */
</style>
<style id="avdeez-core-query-styles-inline-css">
.wp-block-query > :last-child {
margin-block-end: 0;
}
.wp-block-query > .is-flex-container.wp-block-post-template {
display: grid;
gap: var(--wp--style--block-gap);
}
.wp-block-query > .is-flex-container.wp-block-post-template li {
margin: 0;
}
.wp-block-query .wp-block-post-featured-image a {
display: inline;
}
.wp-block-query .wp-block-post-featured-image a:hover {
opacity: 0.75;
}
.wp-block-query .wp-block-post-author__name {
margin-block: 0;
}
.wp-block-query .wp-block-post-author__bio {
margin-block-start: 0.25em;
}
.wp-block-query .wp-block-post-author__content {
align-self: center;
}
.wp-block-query .wp-block-avatar {
line-height: 0;
}
ul.wp-block-post-template {
margin-inline-start: 0;
}
ul.wp-block-post-template li > * {
margin-block-end: 0;
}
ul.wp-block-post-template li > *:first-child {
margin-block-start: 0;
}
ul.wp-block-post-template li > * + * {
margin-block-start: 1em;
}
ul.wp-block-post-template li .wp-block-post-excerpt__excerpt {
margin-block: 0;
}
ul.wp-block-post-template li .wp-block-post-date {
margin-block-end: 0;
}
ul.wp-block-post-template li .wp-block-post-title {
margin-block-end: 0;
}
ul.wp-block-post-template li .wp-block-post-excerpt > :last-child {
margin-block-end: 0;
}
ul.wp-block-post-template li .wp-block-post-excerpt .more-link-container {
display: none;
}
ul.wp-block-post-template li .wp-block-post-excerpt p:empty {
margin: 0;
}
@media (min-width: 600px) {
.wp-block-query > .wp-block-post-template.is-flex-container[class*=columns-] > li {
width: 100%;
}
}
@media (min-width: 768px) {
.wp-block-post-template.columns-2,
.wp-block-post-template.columns-4 {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 992px) {
.wp-block-post-template.columns-3 {
grid-template-columns: repeat(3, 1fr);
}
.wp-block-post-template.columns-4 {
grid-template-columns: repeat(4, 1fr);
}
.wp-block-post-template.columns-5 {
grid-template-columns: repeat(5, 1fr);
}
.wp-block-post-template.columns-6 {
grid-template-columns: repeat(6, 1fr);
}
}
.wp-block-query-pagination .page-numbers {
box-sizing: border-box;
}
/*--------------------------------------------------------------
# Block Style: Border seperated
--------------------------------------------------------------*/
.wp-block-query .is-style-th-border-separate.wp-block-post-template.is-flex-container,
.editor-styles-wrapper .wp-block-query .is-style-th-border-separate.wp-block-post-template.is-flex-container {
gap: calc(var(--wp--style--block-gap) * 2);
}
.is-style-th-border-separate.wp-block-post-template.is-flex-container {
overflow: hidden;
}
.is-style-th-border-separate.wp-block-post-template.is-flex-container > .wp-block-post {
position: relative;
}
.is-style-th-border-separate.wp-block-post-template.is-flex-container > .wp-block-post::before, .is-style-th-border-separate.wp-block-post-template.is-flex-container > .wp-block-post::after {
content: "";
opacity: 0.25;
position: absolute;
}
.is-style-th-border-separate.wp-block-post-template.is-flex-container > .wp-block-post::after {
--minus-one: var(-1);
border-block-end: 1px solid;
inset: auto calc(var(--minus-one) * var(--wp--style--block-gap)) calc(var(--minus-one) * var(--wp--style--block-gap)) calc(var(--minus-one) * var(--wp--style--block-gap));
}
@media (min-width: 992px) {
.is-style-th-border-separate.wp-block-post-template.is-flex-container > .wp-block-post:not(:first-child)::before {
inset-block-start: 0;
inset-inline-start: calc(var(--minus-one) * var(--wp--style--block-gap));
border-inline-start: 1px solid;
height: 100%;
}
}
/* list style */
.is-style-th-border-separate.wp-block-post-template:not(.is-flex-container) .wp-block-post + .wp-block-post::before {
content: "";
display: block;
margin-block-end: var(--wp--style--block-gap);
border-block-end: 1px solid;
}
/*--------------------------------------------------------------
# Block Utility: No gaps
--------------------------------------------------------------*/
.wp-block-query .no-gaps.wp-block-post-template,
.editor-styles-wrapper .wp-block-query .no-gaps.wp-block-post-template {
gap: 0;
}
.no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover, .no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover .has-background-dim:not(.has-background-gradient):before, .no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover .wp-block-cover__background, .no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover .wp-block-cover__gradient-background, .no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover .wp-block-cover__image-background, .no-gaps.wp-block-post-template .wp-block-cover.wp-block-cover .wp-block-cover__video-background {
border-radius: 0;
}
/* core/query */
.wp-block-query > :last-child:is(.wp-block-separator) {
display: none;
}
/* core/post-featured-image */
.wp-block-post-featured-image .wp-post-image {
border-radius: var(--wp--custom--radius--base);
}
/* core/query-pagination */
.wp-block-query-pagination a {
text-decoration: none;
}
.wp-block-query-pagination a:hover {
text-decoration: underline;
}
.wp-block-query-pagination > .wp-block-query-pagination-next, .wp-block-query-pagination > .wp-block-query-pagination-numbers, .wp-block-query-pagination > .wp-block-query-pagination-previous {
margin-block-end: 0;
margin-inline-end: 0;
}
/* core/query-pagination-numbers */
.wp-block-query-pagination-numbers .current {
border: 1px solid;
display: inline-block;
width: 30px;
height: 30px;
line-height: 28px;
text-align: center;
border-radius: 50%;
}
.wp-block-query-pagination-numbers a + .current,
.wp-block-query-pagination-numbers .current + a {
margin-inline-start: 0.75em;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/query.css */
</style>
<style id="avdeez-core-quote-styles-inline-css">
.wp-block-quote {
border-inline-start: 1px solid;
}
.wp-block-quote.has-text-align-center {
border-inline: 0;
}
.wp-block-quote.has-text-align-right {
border-inline-start: 0;
border-inline-end: 1px solid;
}
.wp-block-quote.wp-block-quote p {
margin-block-end: 1em;
}
.wp-block-quote cite {
display: block;
font-size: var(--wp--preset--font-size--normal);
opacity: 0.75;
font-style: normal;
line-height: 1.3;
}
/*--------------------------------------------------------------
# Block Style: Plain
--------------------------------------------------------------*/
.is-style-plain.wp-block-quote.wp-block-quote {
background-color: transparent;
border: 0;
padding-inline: 0;
font-family: inherit;
}
.is-style-plain.wp-block-quote:not(.has-text-align-center) {
padding-block-start: 0;
padding-block-end: 0;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/quote.css */
</style>
<style id="avdeez-core-search-styles-inline-css">
.wp-block-search__button-inside .wp-block-search__inside-wrapper {
border: 1px solid rgba(0, 0, 0, 0.15);
padding: 4px;
}
.wp-block-search .wp-block-search__input {
padding: 0.75em;
font-size: inherit;
line-height: 1.25;
box-shadow: inset 0 1px 2px 1px rgba(0, 0, 0, 0.03);
border: 1px solid var(--wp--preset--color--secondary-base);
background-color: var(--wp--preset--color--secondary-light);
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/search.css */
</style>
<style id="avdeez-core-separator-styles-inline-css">
/*--------------------------------------------------------------
# Default
--------------------------------------------------------------*/
.wp-block-separator {
height: auto;
border-top: 0;
max-width: calc(var(--wp--style--global--content-size) / 2);
}
.editor-styles-wrapper hr.wp-block-separator:not(:is(.is-style-wide, .is-style-dots, .is-style-th-thick)) {
max-width: calc(var(--wp--style--global--content-size) / 2);
}
/*--------------------------------------------------------------
# Wide
--------------------------------------------------------------*/
.wp-block-separator.is-style-wide {
max-width: var(--wp--style--global--content-size);
}
.wp-block-separator.is-style-wide.alignwide {
max-width: var(--wp--style--global--wide-size);
}
.wp-block-separator.is-style-wide.alignfull {
max-width: unset;
}
/*--------------------------------------------------------------
# Dots
--------------------------------------------------------------*/
.wp-block-separator.is-style-dots.wp-block-separator {
background: none !important;
margin-inline-start: auto;
margin-inline-end: auto;
}
.wp-block-separator.is-style-dots::before {
font-size: 1.424em;
letter-spacing: 1.424em;
padding-inline-start: 1.424em;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/separator.css */
</style>
<style id="avdeez-core-table-styles-inline-css">
/* Base */
table {
background-color: transparent;
border-collapse: collapse;
border-spacing: 0;
width: 100%;
max-width: 100%;
}
table table {
background-color: var(--wp--preset--color--white);
}
table > tbody + tbody {
border-block-start: 2px solid var(--wp--preset--color--secondary-base);
}
th {
text-align: start;
border-block-end: 3px solid var(--wp--preset--color--secondary-base);
}
th, td {
padding: 0.75em;
line-height: var(--wp--custom--leading--snug);
vertical-align: top;
border: none;
border-block-start: 1px solid var(--wp--preset--color--secondary-base);
}
@media (min-width: 600px) {
th, td {
padding: 0.925em 1.15em;
}
th {
border-block-end-width: 5px;
}
}
/* Block tables */
.wp-block-table {
margin-block-end: var(--wp--style--block-gap);
}
.wp-block-table table {
margin-block-end: 0;
}
.wp-block-table table.has-background {
border-radius: var(--wp--custom--radius--small);
}
.wp-block-table table + figcaption {
font-size: var(--wp--preset--font-size--small);
color: var(--wp--preset--color--primary-light);
text-align: center;
padding-block-start: var(--wp--custom--spacing--small);
}
.wp-block-table table.has-background thead th {
border-block-start: none;
}
.wp-block-table table.has-background thead th, .wp-block-table table.has-background tbody td, .wp-block-table table.has-background tfoot td {
border-color: rgba(255, 255, 255, 0.5);
}
.wp-block-table table.has-background + figcaption {
border-block-start: none;
}
.wp-block-table table th.has-text-align-right {
text-align: end;
}
.wp-block-table table th.has-text-align-center {
text-align: center;
}
.wp-block-table table thead {
border-bottom-color: var(--wp--preset--color--secondary-base);
}
.wp-block-table table thead th {
font-weight: normal;
}
.wp-block-table table tfoot td {
font-size: 90%;
}
.wp-block-table table th, .wp-block-table table td {
border-block: 1px solid;
border-color: var(--wp--preset--color--secondary-base);
border-inline: 0;
}
.is-style-stripes.wp-block-table {
border-block-end: none;
}
.is-style-stripes.wp-block-table table.has-background tbody tr:nth-child(odd) {
background-color: rgba(0, 0, 0, 0.15);
}
.is-style-stripes.wp-block-table table + figcaption {
border-block-start: none;
padding-block-end: 0;
}
.is-style-stripes.wp-block-table td, .is-style-stripes.wp-block-table th {
border-color: var(--wp--preset--color--secondary-base);
}
.is-style-stripes.wp-block-table tbody tr:nth-child(odd) {
background-color: var(--wp--preset--color--secondary-light);
}
.is-style-stripes.wp-block-table thead tr:nth-child(odd) {
background-color: transparent;
}
.is-style-borders.wp-block-table {
padding: 1px;
}
.is-style-borders.wp-block-table table:not(.has-background) {
border-radius: var(--wp--custom--radius--small);
box-shadow: 0 0 0 1px var(--wp--preset--color--secondary-base);
overflow: hidden;
}
.is-style-borders.wp-block-table table:not(.has-background) th {
background-color: var(--wp--preset--color--secondary-light);
}
.is-style-borders.wp-block-table table th {
border-block-start: 0;
}
.is-style-borders.wp-block-table table th:not(:last-child) {
border-inline-end: 1px solid var(--wp--preset--color--secondary-base);
}
.is-style-borders.wp-block-table table td, .is-style-borders.wp-block-table table th {
border-color: var(--wp--preset--color--secondary-base);
}
.is-style-borders.wp-block-table table.has-background th {
border-block-end-color: rgba(0, 0, 0, 0.15);
}
.is-style-borders.wp-block-table table.has-background td {
border-block-start-color: rgba(0, 0, 0, 0.1);
}
.is-style-borders.wp-block-table table.has-background td:not(:last-child) {
border-inline-end-color: rgba(0, 0, 0, 0.1);
}
.is-style-borders.wp-block-table table td:not(:last-child) {
border-inline-end: 1px solid var(--wp--preset--color--secondary-base);
}
.is-style-borders.wp-block-table table tbody > :last-child td {
border-block-end: 0;
}
/*# sourceURL=https://avdi.codes/wp-content/themes/avdeez/assets/styles/blocks/core/table.css */
</style>
<link rel='stylesheet' id='wp-theme-css' href='https://avdi.codes/wp-includes/css/dist/theme/design-tokens.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-components-css' href='https://avdi.codes/wp-includes/css/dist/components/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-preferences-css' href='https://avdi.codes/wp-includes/css/dist/preferences/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-block-editor-css' href='https://avdi.codes/wp-includes/css/dist/block-editor/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-reusable-blocks-css' href='https://avdi.codes/wp-includes/css/dist/reusable-blocks/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-patterns-css' href='https://avdi.codes/wp-includes/css/dist/patterns/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-media-utils-css' href='https://avdi.codes/wp-includes/css/dist/media-utils/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='wp-editor-css' href='https://avdi.codes/wp-includes/css/dist/editor/style.min.css?ver=7.1' media='all' />
<link rel='stylesheet' id='gumroad_block-cgb-style-css-css' href='https://avdi.codes/wp-content/plugins/gumroad/dist/blocks.style.build.css?ver=7.1' media='all' />
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--primary-dark: #040405;--wp--preset--color--primary-base: #1c1c20;--wp--preset--color--primary-light: #3b3b45;--wp--preset--color--secondary-dark: #8d8d9d;--wp--preset--color--secondary-base: #c4c4cc;--wp--preset--color--secondary-light: #f1f1f3;--wp--preset--color--accent-dark: #998200;--wp--preset--color--accent-base: #ffd800;--wp--preset--color--accent-light: #ffe866;--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: var(--wp--custom--typography--sm);--wp--preset--font-size--medium: var(--wp--custom--typography--md);--wp--preset--font-size--large: var(--wp--custom--typography--lg);--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--tiny: var(--wp--custom--typography--xs);--wp--preset--font-size--normal: var(--wp--custom--typography--base);--wp--preset--font-size--huge: var(--wp--custom--typography--xl);--wp--preset--font-size--enormous: var(--wp--custom--typography--2-xl);--wp--preset--font-size--gigantic: var(--wp--custom--typography--3-xl);--wp--preset--font-size--grand: var(--wp--custom--typography--4-xl);--wp--preset--font-family--headings-font: "PT Sans", -apple-system, BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--wp--preset--font-family--body-font: "PT Serif", -apple-system, BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",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--custom--spacing--small: calc(var(--wp--style--block-gap) / 2);--wp--custom--spacing--medium: max(var(--wp--style--block-gap), 3.5vw);--wp--custom--spacing--large: max(calc( var(--wp--style--block-gap) * 1.5 ), 5vw);--wp--custom--spacing--gap-flex: 1.75em;--wp--custom--radius--base: 2px;--wp--custom--radius--small: 1px;--wp--custom--radius--full: 999px;--wp--custom--border-width--blockquote: 2px;--wp--custom--border-width--button: 1px;--wp--custom--typography--scale: 1.125;--wp--custom--typography--base: 1rem;--wp--custom--typography--xs: calc(var(--wp--custom--typography--sm) / var(--wp--custom--typography--scale));--wp--custom--typography--sm: calc(var(--wp--custom--typography--base) / var(--wp--custom--typography--scale));--wp--custom--typography--md: calc(var(--wp--custom--typography--base) * var(--wp--custom--typography--scale));--wp--custom--typography--lg: calc(var(--wp--custom--typography--md) * var(--wp--custom--typography--scale));--wp--custom--typography--xl: calc(var(--wp--custom--typography--lg) * var(--wp--custom--typography--scale));--wp--custom--typography--2-xl: calc(var(--wp--custom--typography--xl) * var(--wp--custom--typography--scale));--wp--custom--typography--3-xl: calc(var(--wp--custom--typography--2-xl) * var(--wp--custom--typography--scale));--wp--custom--typography--4-xl: calc(var(--wp--custom--typography--3-xl) * var(--wp--custom--typography--scale));--wp--custom--typography--body: var(--wp--custom--typography--base);--wp--custom--leading--snug: 1.45;--wp--custom--leading--tight: 1.25;--wp--custom--leading--tightest: 1.15;--wp--custom--leading--baseline: 1.65;--wp--custom--leading--relaxed: 1.7;--wp--custom--leading--loose: 2;--wp--custom--leading--none: 1;--wp--custom--tracking--tighter: -0.05em;--wp--custom--tracking--tight: -0.025em;--wp--custom--tracking--normal: 0;--wp--custom--tracking--wide: 0.025em;--wp--custom--tracking--wider: 0.05em;--wp--custom--tracking--widest: 0.5em;}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 760px;--wp--style--global--wide-size: 1170px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 2rem; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 2rem; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 2rem;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 2rem;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 2rem;}:root :where(.is-layout-grid){gap: 2rem;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}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{background-color: var(--wp--preset--color--white);color: var(--wp--preset--color--primary-base);font-family: var(--wp--preset--font-family--body-font);font-size: var(--wp--preset--font-size--normal);line-height: var(--wp--custom--leading--baseline);padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--accent-dark);text-decoration: underline;}h1{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--enormous);font-weight: 700;line-height: var(--wp--custom--leading--tight);}h2{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--huge);font-weight: 700;line-height: var(--wp--custom--leading--tight);}h3{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--large);font-weight: 700;line-height: var(--wp--custom--leading--tight);}h4{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--medium);font-weight: 700;line-height: var(--wp--custom--leading--tight);}h5{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--normal);font-weight: 700;line-height: var(--wp--custom--leading--tight);}h6{font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--small);font-weight: 700;line-height: var(--wp--custom--leading--tight);}: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-primary-dark-color{color: var(--wp--preset--color--primary-dark) !important;}.has-primary-base-color{color: var(--wp--preset--color--primary-base) !important;}.has-primary-light-color{color: var(--wp--preset--color--primary-light) !important;}.has-secondary-dark-color{color: var(--wp--preset--color--secondary-dark) !important;}.has-secondary-base-color{color: var(--wp--preset--color--secondary-base) !important;}.has-secondary-light-color{color: var(--wp--preset--color--secondary-light) !important;}.has-accent-dark-color{color: var(--wp--preset--color--accent-dark) !important;}.has-accent-base-color{color: var(--wp--preset--color--accent-base) !important;}.has-accent-light-color{color: var(--wp--preset--color--accent-light) !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-primary-dark-background-color{background-color: var(--wp--preset--color--primary-dark) !important;}.has-primary-base-background-color{background-color: var(--wp--preset--color--primary-base) !important;}.has-primary-light-background-color{background-color: var(--wp--preset--color--primary-light) !important;}.has-secondary-dark-background-color{background-color: var(--wp--preset--color--secondary-dark) !important;}.has-secondary-base-background-color{background-color: var(--wp--preset--color--secondary-base) !important;}.has-secondary-light-background-color{background-color: var(--wp--preset--color--secondary-light) !important;}.has-accent-dark-background-color{background-color: var(--wp--preset--color--accent-dark) !important;}.has-accent-base-background-color{background-color: var(--wp--preset--color--accent-base) !important;}.has-accent-light-background-color{background-color: var(--wp--preset--color--accent-light) !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-primary-dark-border-color{border-color: var(--wp--preset--color--primary-dark) !important;}.has-primary-base-border-color{border-color: var(--wp--preset--color--primary-base) !important;}.has-primary-light-border-color{border-color: var(--wp--preset--color--primary-light) !important;}.has-secondary-dark-border-color{border-color: var(--wp--preset--color--secondary-dark) !important;}.has-secondary-base-border-color{border-color: var(--wp--preset--color--secondary-base) !important;}.has-secondary-light-border-color{border-color: var(--wp--preset--color--secondary-light) !important;}.has-accent-dark-border-color{border-color: var(--wp--preset--color--accent-dark) !important;}.has-accent-base-border-color{border-color: var(--wp--preset--color--accent-base) !important;}.has-accent-light-border-color{border-color: var(--wp--preset--color--accent-light) !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-tiny-font-size{font-size: var(--wp--preset--font-size--tiny) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-huge-font-size{font-size: var(--wp--preset--font-size--huge) !important;}.has-enormous-font-size{font-size: var(--wp--preset--font-size--enormous) !important;}.has-gigantic-font-size{font-size: var(--wp--preset--font-size--gigantic) !important;}.has-grand-font-size{font-size: var(--wp--preset--font-size--grand) !important;}.has-headings-font-font-family{font-family: var(--wp--preset--font-family--headings-font) !important;}.has-body-font-font-family{font-family: var(--wp--preset--font-family--body-font) !important;}
:root :where(.wp-block-button .wp-block-button__link){background-color: var(--wp--preset--color--primary-dark);border-radius: var(--wp--custom--radius--base);border-width: 1px;color: var(--wp--preset--color--secondary-light);font-family: var(--wp--preset--font-family--headings-font);font-size: var(--wp--preset--font-size--small);font-weight: 700;padding-top: calc(var(--wp--custom--spacing--gap-flex) / 2.25);padding-right: calc(var(--wp--custom--spacing--gap-flex) / 1.125);padding-bottom: calc(var(--wp--custom--spacing--gap-flex) / 2.25);padding-left: calc(var(--wp--custom--spacing--gap-flex) / 1.125);text-decoration: none;text-transform: uppercase;}
:root :where(p){margin-top: 1.5em;margin-bottom: 1.5em;}
:root :where(.wp-block-search){margin-top: var(--wp--style--block-gap);margin-bottom: var(--wp--style--block-gap);}
/*# sourceURL=global-styles-inline-css */
</style>
<link rel='stylesheet' id='cleantalk-public-css-css' href='https://avdi.codes/wp-content/plugins/cleantalk-spam-protect/css/cleantalk-public.min.css?ver=6.87_1788772009' media='all' />
<link rel='stylesheet' id='cleantalk-email-decoder-css-css' href='https://avdi.codes/wp-content/plugins/cleantalk-spam-protect/css/cleantalk-email-decoder.min.css?ver=6.87_1788772009' media='all' />
<link rel='stylesheet' id='prismatic-highlight-css' href='https://avdi.codes/wp-content/plugins/prismatic/lib/highlight/css/github.css?ver=3.7.5' media='all' />
<link rel='stylesheet' id='tve_leads_forms-css' href='//avdi.codes/wp-content/plugins/thrive-leads/editor-layouts/css/frontend.css?ver=10.9.3.3' media='all' />
<link rel='stylesheet' id='avdeez-style-css' href='https://avdi.codes/wp-content/themes/avdeez/style.css?ver=3.5.0' media='all' />
<link rel='stylesheet' id='avdeez-templates-core-global-css' href='https://avdi.codes/wp-content/themes/avdeez/assets/styles/templates/core/global.css?ver=3.6.0' media='all' />
<link rel='stylesheet' id='avdeez-singular-style-css' href='https://avdi.codes/wp-content/themes/avdeez/assets/css/pages/singular/singular.css?ver=3.4.3' media='all' />
<link rel='stylesheet' id='avdeez-google-fonts-css' href='https://fonts.googleapis.com/css?family=PT%20Serif%3A300%2C300i%2C400%2C400i%2C700%2C700i%7CPT%20Sans%3A300%2C300i%2C400%2C400i%2C700%2C700i&#038;subset=latin%2Clatin-ext%2Ccyrillic%2Ccyrillic-ext&#038;display=swap&#038;ver=1.0.0' media='all' />
<link rel='stylesheet' id='tvo-frontend-css' href='https://avdi.codes/wp-content/plugins/thrive-ovation/tcb-bridge/frontend/css/frontend.css?ver=7.1' media='all' />
<script async data-wp-strategy="async" id="monsterinsights-frontend-script-js" src="https://avdi.codes/wp-content/plugins/google-analytics-premium/assets/js/frontend-gtag.min.js?ver=11.2.0"></script>
<script data-cfasync="false" data-wpfc-render="false" type="text/javascript" id='monsterinsights-frontend-script-js-extra'>/* <![CDATA[ */
var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx,epub,mobi","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/avdi.codes","hash_tracking":"false","v4_id":"G-J6TJ9WX3NW"};/* ]]> */
</script>
<script id="apbct-public-bundle_gathering.min-js-js" src="https://avdi.codes/wp-content/plugins/cleantalk-spam-protect/js/apbct-public-bundle_gathering.min.js?ver=6.87_1788772009"></script>
<script id="jquery-core-js" src="https://avdi.codes/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
<script id="jquery-migrate-js" src="https://avdi.codes/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
<script id="jquery-ui-core-js-before">
jQuery.uiBackCompat = true;
//# sourceURL=jquery-ui-core-js-before
</script>
<script id="jquery-ui-core-js" src="https://avdi.codes/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
<script id="jquery-ui-menu-js" src="https://avdi.codes/wp-includes/js/jquery/ui/menu.min.js?ver=1.14.2"></script>
<script id="wp-dom-ready-js" src="https://avdi.codes/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
<script id="wp-hooks-js" src="https://avdi.codes/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
<script id="wp-i18n-js" src="https://avdi.codes/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="wp-a11y-js" src="https://avdi.codes/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
<script id="jquery-ui-autocomplete-js" src="https://avdi.codes/wp-includes/js/jquery/ui/autocomplete.min.js?ver=1.14.2"></script>
<script id="imagesloaded-js" src="https://avdi.codes/wp-includes/js/imagesloaded.min.js?ver=5.0.0"></script>
<script id="masonry-js" src="https://avdi.codes/wp-includes/js/masonry.min.js?ver=4.2.2"></script>
<script id="jquery-masonry-js" src="https://avdi.codes/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b"></script>
<script id="tve_frontend-js-extra">
var tve_frontend_options = {"is_editor_page":"","page_events":[],"is_single":"1","ajaxurl":"https://avdi.codes/wp-admin/admin-ajax.php","social_fb_app_id":"","dash_url":"https://avdi.codes/wp-content/plugins/thrive-visual-editor/thrive-dashboard","translations":{"Copy":"Copy"},"post_id":"12075","user_profile_nonce":"cec40d39cb","ip":"95.169.3.55","current_user":[],"post_title":"Simple is Complex","post_type":"post","post_url":"https://avdi.codes/simple-is-complex/","is_lp":"","post_request_data":[],"conditional_display":{"is_tooltip_dismissed":false}};
//# sourceURL=tve_frontend-js-extra
</script>
<script id="tve_frontend-js" src="https://avdi.codes/wp-content/plugins/thrive-visual-editor/editor/js/dist/modules/general.min.js?ver=11.0"></script>
<script id="display-testimonials-tcb-js" src="https://avdi.codes/wp-content/plugins/thrive-ovation/tcb-bridge/frontend/js/display-testimonials-tcb.min.js?ver=11.0"></script>
<link rel="https://api.w.org/" href="https://avdi.codes/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://avdi.codes/wp-json/wp/v2/posts/12075" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://avdi.codes/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<meta name="generator" content="Seriously Simple Podcasting 3.17.0" />
<link rel="canonical" href="https://avdi.codes/simple-is-complex/" />
<link rel='shortlink' href='https://avdi.codes/?p=12075' />
<link rel="alternate" type="application/rss+xml" title="avdi.codes &raquo; Articles Feed" href="https://avdi.codes/feed/articles/" />
<link rel="alternate" type="application/rss+xml" title="Podcast RSS feed" href="https://avdi.codes/feed/podcast" />
<style type="text/css" id="tve_global_variables">:root{--tcb-color-0:rgba(255, 143, 33, 0.28);--tcb-color-0-h:29;--tcb-color-0-s:100%;--tcb-color-0-l:56%;--tcb-color-0-a:0.28;--tcb-color-1:rgb(255, 143, 33);--tcb-color-1-h:29;--tcb-color-1-s:100%;--tcb-color-1-l:56%;--tcb-color-1-a:1;--tcb-color-2:rgb(181, 189, 195);--tcb-color-2-h:205;--tcb-color-2-s:10%;--tcb-color-2-l:73%;--tcb-color-2-a:1;--tcb-color-3:rgb(242, 126, 169);--tcb-color-3-h:337;--tcb-color-3-s:81%;--tcb-color-3-l:72%;--tcb-color-3-a:1;--tcb-color-4:rgb(140, 15, 84);--tcb-color-4-h:326;--tcb-color-4-s:80%;--tcb-color-4-l:30%;--tcb-color-4-a:1;--tcb-color-5:rgb(114, 30, 76);--tcb-color-5-h:327;--tcb-color-5-s:58%;--tcb-color-5-l:28%;--tcb-color-5-a:1;--tcb-color-6:rgb(140, 15, 84);--tcb-color-6-h:326;--tcb-color-6-s:80%;--tcb-color-6-l:30%;--tcb-color-6-a:1;--tcb-color-7:rgb(25, 24, 24);--tcb-color-7-h:0;--tcb-color-7-s:2%;--tcb-color-7-l:9%;--tcb-color-7-a:1;--tcb-color-8:rgb(217, 30, 117);--tcb-color-8-h:332;--tcb-color-8-s:75%;--tcb-color-8-l:48%;--tcb-color-8-a:1;--tcb-background-author-image:url(https://secure.gravatar.com/avatar/018496452ddefc6bd0b548a326c09cc1c5ddd24d1acc5a9cbe1fe7b1599ad4b7?s=256&d=mm&r=g);--tcb-background-user-image:url();--tcb-background-featured-image-thumbnail:url(https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1.jpg);}</style><meta property="fediverse:creator" name="fediverse:creator" content="avdi@avdi.codes" />
<link rel="alternate" title="ActivityPub (JSON)" type="application/activity+json" href="https://avdi.codes/simple-is-complex/" />
<!-- MonsterInsights Form Tracking -->
<script data-cfasync="false" data-wpfc-render="false" type="text/javascript">
function monsterinsights_forms_record_impression(event) {
monsterinsights_add_bloom_forms_ids();
var monsterinsights_forms = document.getElementsByTagName("form");
var monsterinsights_forms_i;
for (monsterinsights_forms_i = 0; monsterinsights_forms_i < monsterinsights_forms.length; monsterinsights_forms_i++) {
var monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute("id");
var skip_conversion = false;
/* Check to see if it's contact form 7 if the id isn't set */
if (!monsterinsights_form_id) {
monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].parentElement.getAttribute("id");
if (monsterinsights_form_id && monsterinsights_form_id.lastIndexOf('wpcf7-f', 0) === 0) {
/* If so, let's grab that and set it to be the form's ID*/
var tokens = monsterinsights_form_id.split('-').slice(0, 2);
var result = tokens.join('-');
monsterinsights_forms[monsterinsights_forms_i].setAttribute("id", result);/* Now we can do just what we did above */
monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute("id");
} else {
monsterinsights_form_id = false;
}
}
/* Check if it's Ninja Forms & id isn't set. */
if (!monsterinsights_form_id && monsterinsights_forms[monsterinsights_forms_i].parentElement.className.indexOf('nf-form-layout') >= 0) {
monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].parentElement.parentElement.parentElement.getAttribute('id');
if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('nf-form-', 0)) {
/* If so, let's grab that and set it to be the form's ID*/
tokens = monsterinsights_form_id.split('-').slice(0, 3);
result = tokens.join('-');
monsterinsights_forms[monsterinsights_forms_i].setAttribute('id', result);
/* Now we can do just what we did above */
monsterinsights_form_id = monsterinsights_forms[monsterinsights_forms_i].getAttribute('id');
skip_conversion = true;
}
}
if (monsterinsights_form_id && monsterinsights_form_id !== 'commentform' && monsterinsights_form_id !== 'adminbar-search' && monsterinsights_form_id !== 'goog-gt-votingForm') {
__gtagTracker('event', 'impression', {
event_category: 'form',
event_label: monsterinsights_form_id,
value: 1,
non_interaction: true
});
/* If a WPForms Form, we can use custom tracking */
if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('wpforms-form-', 0)) {
continue;
}
/* Formiddable Forms, use custom tracking */
if (monsterinsights_forms_has_class(monsterinsights_forms[monsterinsights_forms_i], 'frm-show-form')) {
continue;
}
/* If a Gravity Form, we can use custom tracking */
if (monsterinsights_form_id && 0 === monsterinsights_form_id.lastIndexOf('gform_', 0)) {
continue;
}
/* If Ninja forms, we use custom conversion tracking */
if (skip_conversion) {
continue;
}
var custom_conversion_mi_forms = false;
if (custom_conversion_mi_forms) {
continue;
}
if (window.jQuery) {
(function (form_id) {
jQuery(document).ready(function () {
jQuery('#' + form_id).on('submit', monsterinsights_forms_record_conversion);
});
})(monsterinsights_form_id);
} else {
var __gaFormsTrackerWindow = window;
if (__gaFormsTrackerWindow.addEventListener) {
document.getElementById(monsterinsights_form_id).addEventListener("submit", monsterinsights_forms_record_conversion, false);
} else {
if (__gaFormsTrackerWindow.attachEvent) {
document.getElementById(monsterinsights_form_id).attachEvent("onsubmit", monsterinsights_forms_record_conversion);
}
}
}
} else {
continue;
}
}
}
function monsterinsights_forms_has_class(element, className) {
return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1;
}
function monsterinsights_forms_record_conversion(event) {
var monsterinsights_form_conversion_id = event.target.id;
var monsterinsights_form_action = event.target.getAttribute("miforms-action");
if (monsterinsights_form_conversion_id && !monsterinsights_form_action) {
document.getElementById(monsterinsights_form_conversion_id).setAttribute("miforms-action", "submitted");
__gtagTracker('event', 'conversion', {
event_category: 'form',
event_label: monsterinsights_form_conversion_id,
value: 1,
});
}
}
/* Attach the events to all clicks in the document after page and GA has loaded */
function monsterinsights_forms_load() {
if (typeof (__gtagTracker) !== 'undefined' && __gtagTracker) {
var __gtagFormsTrackerWindow = window;
if (__gtagFormsTrackerWindow.addEventListener) {
__gtagFormsTrackerWindow.addEventListener("load", monsterinsights_forms_record_impression, false);
} else {
if (__gtagFormsTrackerWindow.attachEvent) {
__gtagFormsTrackerWindow.attachEvent("onload", monsterinsights_forms_record_impression);
}
}
} else {
setTimeout(monsterinsights_forms_load, 200);
}
}
/* Custom Ninja Forms impression tracking */
if (window.jQuery) {
jQuery(document).on('nfFormReady', function (e, layoutView) {
var label = layoutView.el;
label = label.substring(1, label.length);
label = label.split('-').slice(0, 3).join('-');
__gtagTracker('event', 'impression', {
event_category: 'form',
event_label: label,
value: 1,
non_interaction: true
});
});
}
/* Custom Bloom Form tracker */
function monsterinsights_add_bloom_forms_ids() {
var bloom_forms = document.querySelectorAll('.et_bloom_form_content form');
if (bloom_forms.length > 0) {
for (var i = 0; i < bloom_forms.length; i++) {
if ('' === bloom_forms[i].id) {
var form_parent_root = monsterinsights_find_parent_with_class(bloom_forms[i], 'et_bloom_optin');
if (form_parent_root) {
var classes = form_parent_root.className.split(' ');
for (var j = 0; j < classes.length; ++j) {
if (0 === classes[j].indexOf('et_bloom_optin')) {
bloom_forms[i].id = classes[j];
}
}
}
}
}
}
}
function monsterinsights_find_parent_with_class(element, className) {
if (element.parentNode && '' !== className) {
if (element.parentNode.className.indexOf(className) >= 0) {
return element.parentNode;
} else {
return monsterinsights_find_parent_with_class(element.parentNode, className);
}
}
return false;
}
monsterinsights_forms_load();
</script>
<!-- End MonsterInsights Form Tracking -->
<style type="text/css" id="thrive-default-styles"></style><link rel="icon" href="https://avdi.codes/wp-content/uploads/2019/06/cropped-favicon-extraced-from-linda-kerr-loga-32x32.png" sizes="32x32" />
<link rel="icon" href="https://avdi.codes/wp-content/uploads/2019/06/cropped-favicon-extraced-from-linda-kerr-loga-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://avdi.codes/wp-content/uploads/2019/06/cropped-favicon-extraced-from-linda-kerr-loga-180x180.png" />
<meta name="msapplication-TileImage" content="https://avdi.codes/wp-content/uploads/2019/06/cropped-favicon-extraced-from-linda-kerr-loga-270x270.png" />
</head>
<body class="wp-singular post-template-default single single-post postid-12075 single-format-standard wp-embed-responsive wp-theme-avdeez toggle-sidebar--left has-sidebar">
<div id="toggle-sidebar" class="toggle-sidebar has-primary-dark-background-color" aria-hidden="true">
<div class="inner-panel has-small-font-size">
<button id="close-toggle-sidebar" class="toggle-sidebar-close-button has-tiny-font-size clean-button" type="button">
<svg class="svg-icon th-fill-current" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>Close </button><!-- .close-button -->
<nav id="mobile-navigation" class="mobile-navigation" aria-label="Mobile menu"></nav><!-- #mobile-navigation -->
</div><!-- .inner-panel -->
</div><!-- #toggle-sidebar -->
<div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
<div id="search-container" class="header-search-container th-font-headings sm:th-items-center sm:th-justify-center th-flex-col th-px-lg sm:th-py-lg th-pt-3xl th-w-full th-h-full" role="dialog" aria-hidden="true">
<form method="get" class="header-searchform has-secondary-base-color th-flex th-w-full th-max-w-prose" action="https://avdi.codes/" role="search">
<label for="header-search-field" class="th-w-full">
<span class="screen-reader-text">Search for:</span>
<input type="text" id="header-search-field" class="field has-large-font-size th-w-full" placeholder="Search &#x2026;" name="s" value="" />
</label>
<button type="submit" class="submit clean-button">
<svg class="svg-icon th-fill-current" width="24" height="24" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <span class="screen-reader-text">
Search </span>
</button>
<button id="close-search-container" class="header-search-close-button clean-button th-flex th-items-center th-uppercase th-tracking-wider" type="button">
<svg class="svg-icon th-fill-current" width="24" height="24" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> Close </button><!-- .header-search-close-button -->
</form><!-- .header-searchform -->
</div><!-- #search-container -->
<header id="masthead" class="site-header has-primary-dark-background-color has-secondary-light-color th-font-headings th-links-inherit th-flex lg:th-flex-nowrap th-flex-wrap th-items-center th-p-small">
<div class="site-branding lg:th-text-left th-text-center lg:th-mr-sm lg:th-pr-sm lg:th-w-auto th-w-full lg:th-border-r th-border-primary-light">
<p class="site-title has-medium-font-size th-my-0 th-uppercase th-tracking-wide th-leading-snug"><a href="https://avdi.codes/">avdi.codes</a></p>
<p class="site-description th-mb-0 th-text-sm th-hidden">Avdi Grimm, Code Cleric</p>
</div><!-- .site-branding -->
<nav id="site-navigation" class="main-navigation has-small-font-size lg:th-block th-hidden th-uppercase" aria-label="Primary menu">
<ul id="menu-main" class="menu"><li id="menu-item-27" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-27"><a href="https://avdi.codes">Home</a></li>
<li id="menu-item-13047" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-13047"><a href="https://avdi.codes">Blog</a><span class="arrow-icon" aria-hidden="true"><svg class="svg-icon th-fill-current" width="21" height="21" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
<ul class="sub-menu">
<li id="menu-item-13568" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13568"><a href="https://avdi.codes/banana-stand/">The Banana Stand Articles</a></li>
</ul>
</li>
<li id="menu-item-12711" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-12711"><a href="https://graceful.dev" title="Courses and more">Graceful.Dev</a></li>
<li id="menu-item-13570" class="menu-item menu-item-type-taxonomy menu-item-object-series menu-item-13570"><a href="https://avdi.codes/series/the-cache-flush/">The Cache Flush</a></li>
<li id="menu-item-5196" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5196"><a href="https://avdi.codes/about/">Stuff I Do</a><span class="arrow-icon" aria-hidden="true"><svg class="svg-icon th-fill-current" width="21" height="21" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
<ul class="sub-menu">
<li id="menu-item-5197" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5197"><a href="https://graceful.dev">Graceful.Dev</a></li>
<li id="menu-item-5203" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5203"><a href="https://avdi.codes/podcasts/">Podcasts</a><span class="arrow-icon" aria-hidden="true"><svg class="svg-icon th-fill-current" width="21" height="21" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
<ul class="sub-menu">
<li id="menu-item-13569" class="menu-item menu-item-type-taxonomy menu-item-object-series menu-item-13569"><a href="https://avdi.codes/series/the-cache-flush/">The Cache Flush</a></li>
</ul>
</li>
<li id="menu-item-13412" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13412"><a href="https://avdi.codes/coaching/">Coaching &#038; Counsel</a></li>
<li id="menu-item-13458" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13458"><a href="https://avdi.codes/workshops/">Workshops</a></li>
<li id="menu-item-5198" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5198"><a href="https://avdi.codes/consulting/">Consulting</a></li>
<li id="menu-item-5199" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5199"><a href="https://avdi.codes/public-appearances/">Speaking</a></li>
<li id="menu-item-5200" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5200"><a href="https://avdi.codes/all-courses/">Courses</a></li>
<li id="menu-item-5201" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5201"><a href="https://avdi.codes/newsletters/">Newsletters</a></li>
<li id="menu-item-5202" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5202"><a href="https://avdi.codes/books/">Books</a></li>
<li id="menu-item-5204" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5204"><a href="https://www.patreon.com/avdigrimm">Patreon</a></li>
</ul>
</li>
<li id="menu-item-13741" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13741"><a target="_blank" href="https://avdi.codes/account/">Account</a></li>
<li id="menu-item-5187" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5187"><a href="https://avdi.codes/about/">About</a><span class="arrow-icon" aria-hidden="true"><svg class="svg-icon th-fill-current" width="21" height="21" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
<ul class="sub-menu">
<li id="menu-item-12312" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12312"><a href="https://avdi.codes/about/">About Avdi</a></li>
<li id="menu-item-12313" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12313"><a href="https://avdi.codes/hire-me-2/">Hire Me</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-70"><a href="https://avdi.codes/contact/">Contact</a></li>
<li id="menu-item-47259" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47259"><a href="https://avdi.codes/privacy-policy/">Privacy Policy</a></li>
</ul>
</li>
</ul> </nav><!-- #site-navigation -->
<div class="header-controls lg:th-mt-0 lg:th-pt-0 th-flex th-items-center th-mt-small th-pt-small lg:th-ml-auto lg:th-w-auto th-w-full">
<nav class="header-social th-leading-none lg:th-border-r th-border-primary-light" aria-label="Social links menu">
<ul id="menu-social" class="social-list menu lg:th-flex lg:th-flex-wrap th-gap-md th-items-center th-justify-end th-hidden th-list-none th-m-0"><li id="menu-item-5123" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5123"><a href="https://github.com/avdi"><span class="screen-reader-text social-meta">Github</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a></li>
<li id="menu-item-57" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57"><a href="https://twitter.com/avdi"><span class="screen-reader-text social-meta">Twitter</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg></a></li>
<li id="menu-item-58" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="https://www.facebook.com/avdi.grimm.public"><span class="screen-reader-text social-meta">Facebook</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg></a></li>
<li id="menu-item-60" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="https://www.linkedin.com/in/avdigrimm/"><span class="screen-reader-text social-meta">LinkedIn</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg></a></li>
<li id="menu-item-5124" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5124"><a href="https://www.youtube.com/channel/UCM-D8NDdOj9c4jvg7MtGNjg"><span class="screen-reader-text social-meta">YouTube</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.495 6.205a3.007 3.007 0 0 0-2.088-2.088c-1.87-.501-9.396-.501-9.396-.501s-7.507-.01-9.396.501A3.007 3.007 0 0 0 .527 6.205a31.247 31.247 0 0 0-.522 5.805 31.247 31.247 0 0 0 .522 5.783 3.007 3.007 0 0 0 2.088 2.088c1.868.502 9.396.502 9.396.502s7.506 0 9.396-.502a3.007 3.007 0 0 0 2.088-2.088 31.247 31.247 0 0 0 .5-5.783 31.247 31.247 0 0 0-.5-5.805zM9.609 15.601V8.408l6.264 3.602z"/></svg></a></li>
<li id="menu-item-5175" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5175"><a href="https://www.patreon.com/avdigrimm"><span class="screen-reader-text social-meta">Patreon</span><svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M0 .48v23.04h4.22V.48zm15.385 0c-4.764 0-8.641 3.88-8.641 8.65 0 4.755 3.877 8.623 8.641 8.623 4.75 0 8.615-3.868 8.615-8.623C24 4.36 20.136.48 15.385.48z"/></svg></a></li>
</ul> </nav><!-- .header-social -->
<button id="menu-button" class="header-menu-button th-flex th-items-center clean-button th-uppercase th-text-xs lg:th-hidden" type="button" aria-expanded="false">
<svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg> <span class="th-leading-none th-font-bold th-ml-2xs">
Menu </span>
</button><!-- .header-menu-button -->
<button class="header-search-button clean-button th-leading-none" type="button" aria-expanded="false">
<svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <span class="screen-reader-text">
Open a search form in a modal window </span>
</button><!-- .header-search-button -->
</div><!-- .header-controls -->
</header><!-- #masthead -->
<div id="content" class="site-content wp-site-blocks">
<header id="primary-header" class="alignfull fullscreen-header wp-block-cover th-py-medium th-mb-0 entry-header th-uppercase th-tracking-wide th-text-center th-justify-center th-flex-col has-background-dim has-primary-dark-background-color has-white-color has-background th-min-h-screen">
<img width="1440" height="1080" src="https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1.jpg" class="wp-block-cover__image-background wp-post-image" alt="Dust and microorganisms microscopic view" data-object-fit="cover" decoding="async" srcset="https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1.jpg 2000w, https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1-300x225.jpg 300w, https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1-768x576.jpg 768w, https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1-1024x768.jpg 1024w, https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1-600x450.jpg 600w, https://avdi.codes/wp-content/uploads/2019/09/dreamstime_m_85496656-1-1000x750.jpg 1000w" sizes="(max-width: 1440px) 100vw, 1440px" />
<div class="wp-block-cover__inner-container alignwide th-text-current th-space-y-base">
<div class="entry-meta has-tiny-font-size th-font-headings th-tracking-widest th-links-inherit">
<span class="posted-on th-inline-block"><span class="prefix">Posted on </span><time class="entry-date published" datetime="2019-09-26T12:04:48-05:00">September 26, 2019</time><time class="updated" datetime="2020-02-24T23:02:30-06:00">February 24, 2020</time></span><span class="byline th-inline-block"> <span class="prefix">by </span><a href="https://avdi.codes/author/avdi/" rel="author">Avdi Grimm</a></span> </div><!-- .entry-meta -->
<h1 class="entry-title alignwide has-grand-font-size th-tracking-normal th-my-0">Simple is Complex</h1>
<button id="skip-to-entry" class="clean-button th-flex skip-to-entry th-hidden" type="button">
<svg class="svg-icon th-fill-current" width="18" height="18" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg> <span class="screen-reader-text">Skip to entry content</span>
</button>
</div><!-- .container -->
</header><!-- .entry-header -->
<div class="main-aside alignwide th-grid th-gap-medium th-pb-base">
<main id="main" class="site-main th-w-full th-space-y-base th-divide-y th-divide-solid th-divide-secondary-base">
<article id="post-12075" class="th-space-y-base post-12075 post type-post status-publish format-standard has-post-thumbnail hentry category-articles category-uncategorized tag-architecture tag-complexity tag-featured tag-microservices tag-simplicity tag-software-design tag-systems tag-systems-thinking">
<div class="entry-content th-content">
<p class="wp-block-paragraph">I started reading <em><a href="https://amzn.to/2lRri0G">Vehicles</a></em><a href="https://amzn.to/2lRri0G">, by Valentino Braitenberg</a>. Braitenberg asks us to consider the implications of extremely simple notional machines. For instance, the very first machine has only a single motor controlled linearly by a single sensor.</p>
<figure class="wp-block-image"><img decoding="async" width="3024" height="3024" src="https://i2.wp.com/avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922.jpg?fit=770%2C770&amp;ssl=1" alt="" class="wp-image-12076" srcset="https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922.jpg 3024w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-150x150.jpg 150w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-300x300.jpg 300w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-768x768.jpg 768w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-1024x1024.jpg 1024w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-75x75.jpg 75w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-65x65.jpg 65w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_095922-800x800.jpg 800w" sizes="(max-width: 3024px) 100vw, 3024px" /></figure>
<p class="wp-block-paragraph">If we say that the sensor senses heat, then this machine will move faster in warm areas (seemingly trying to escape them) and slower in colder areas. If we then add small &#8220;perturbations&#8221; to its environment&#8212;say, water currents, or other objects randomly nudging it&#8212;it will appear to wander around in a rather &#8220;lifelike&#8221; manner. It will appear to have a kind of purpose, even though we know it is nothing more than sensor and motor.</p>
<p class="wp-block-paragraph">Braitenberg demonstrates how adding only a few more elements to such a vehicle vastly increases the richness of its behavior. </p>
<figure class="wp-block-image"><img loading="lazy" decoding="async" width="3024" height="3024" src="https://i1.wp.com/avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053.jpg?fit=770%2C770&amp;ssl=1" alt="" class="wp-image-12077" srcset="https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053.jpg 3024w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-150x150.jpg 150w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-300x300.jpg 300w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-768x768.jpg 768w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-1024x1024.jpg 1024w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-75x75.jpg 75w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-65x65.jpg 65w, https://avdi.codes/wp-content/uploads/2019/09/IMG_20190926_100053-800x800.jpg 800w" sizes="auto, (max-width: 3024px) 100vw, 3024px" /></figure>
<p class="wp-block-paragraph">Vehicles with only two sensors and two motors can appear to display tendencies towards an energy emitter that we might term fear, aggression, or love, if we didn&#8217;t know we were looking at a simple machine.</p>
<p class="wp-block-paragraph">What if we again add some sources of random perturbations <em>and</em> throw a swarm of these ultra-simple machines together and allow them to also perturb each other? We get a system of extraordinarily complex emergent behavior&#8230; even though the individual elements are about as simple as we could imagine.</p>
<p class="wp-block-paragraph">To restate: this system is not <em>complicated.</em> But it is <em>complex</em>.</p>
<p class="wp-block-paragraph">Now consider a <a href="https://www.youtube.com/watch?v=sAsRtZEGMMQ">Chad Fowler-style</a> microservice architecture (or Fred George-style, if you prefer). E.g. microservices so small that they fit on a single screen. We don&#8217;t rewrite or add to them; we throw them away and make new ones.</p>
<p class="wp-block-paragraph">These services are <em>simple</em>. But throw them all together, interacting with each other and perturbed by real-world inputs, and what do we get? Emergent, unpredictable behavior and interactions.</p>
<p class="wp-block-paragraph">This is a system that is not <em>complicated.</em> But it is <em>complex.</em></p>
<p class="wp-block-paragraph">Or in other words: Simplicity leads to complexity.</p>
<p class="wp-block-paragraph">This isn&#8217;t a bad thing. Complex systems are rich systems. But living with them requires a graceful approach. We very quickly pass the point at which it is feasible to <em>understand</em> the system, let alone predict it. Instead, we need to be able to deeply observe the system, mitigate failures (but only after the fact!), note trends, and nudge it in new directions.</p>
<span id="tve_leads_end_content" style="display: block; visibility: hidden; border: 1px solid transparent;"></span><div class="tve-leads-post-footer tve-tl-anim tve-leads-track-post_footer-24 tl-anim-instant"><div class="tl-style" id="tve_tcb2_personal-brand-v2-1-step" data-state="24" data-form-state=""><style type="text/css" class="tve_custom_style">@media (min-width: 300px){[data-css="tve-u-25e72540adfa96"] h2{margin: 0px !important;padding: 0px !important;}[data-css="tve-u-25e72540adfa96"] h1{margin: 0px !important;padding: 0px !important;}[data-css="tve-u-05e72540adfa03"]{background-color: rgb(255,255,255) !important;background-image: repeating-linear-gradient(135deg,rgba(252,200,201,0.1),rgba(252,200,201,0.1) 3px,transparent 3px,transparent 6px) !important;background-size: auto !important;background-position: 50% 50% !important;background-attachment: scroll !important;background-repeat: repeat !important;box-shadow: none !important;border: 1px solid rgb(227,242,253) !important;padding-bottom: 0px !important;margin-top: 25px !important;}[data-css="tve-u-25e72540adfa96"] p{margin: 0px 0px 16px !important;padding: 0px !important;}[data-css="tve-u-25e72540adfa96"]{max-width: 100%;min-height: 278px !important;}[data-css="tve-u-15e72540adfa4f"]{padding: 0px !important;}}</style><div class="tve-leads-conversion-object" data-tl-type="post_footer"><div class="tve_flt"><div id="tve_editor" class="tve_shortcode_editor"><div class="thrv-leads-form-box tve_no_drag tve_no_icons thrv_wrapper tve_editor_main_content thrv-leads-in-content tve_empty_dropzone" data-css="tve-u-05e72540adfa03" style=""><div class="thrv_wrapper thrv-page-section Clean personal brand female form" data-css="tve-u-15e72540adfa4f">
<div class="tve-page-section-out"></div>
<div class="tve-page-section-in tve_empty_dropzone" data-css="tve-u-25e72540adfa96"><div class="thrv_wrapper thrv_symbol thrive-shortcode thrv_symbol_13058" data-shortcode="thrive_symbol" data-id="13058" data-selector=".thrv_symbol_13058"><div class="thrive-shortcode-config" style="display: none !important"></div><div class="thrive-shortcode-html thrive-symbol-shortcode " data-symbol-id="13058"><style type="text/css" id="tcb-style-base-tcb_symbol-13058" onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">#tve-lg-error-container{background-color:rgb(242,222,222);color:rgb(169,68,66);border:1px solid rgb(235,204,209);border-radius:1px;padding:4px 10px;position:absolute;z-index:3000000;box-sizing:border-box !important;}#tve-lg-error-container .tve-lg-err-item{line-height:1.2;font-size:14px;}#tve-lg-error-container .tve-lg-err-close{color:rgb(169,68,66);display:inline-block;font-size:12px;width:12px;height:12px;position:absolute;top:0px;right:10px;margin:-6px 0px 0px;}#tve-lg-error-container .tve-lg-err-close:hover{text-decoration:none;}.thrv_wrapper.thrv_lead_generation{width:100%;overflow:unset !important;}.thrv_wrapper.thrv_lead_generation .tve_lead_generated_inputs_container{color:rgb(85,85,85);--tcb-applied-color:#555;font-family:Roboto,sans-serif;}.thrv_wrapper.thrv_lead_generation .tve_lead_generated_inputs_container input[type="email"]{padding:10px 15px;height:auto;}.thrv_wrapper.thrv_lead_generation .tve_lead_generated_inputs_container input[type="email"]:hover{border-color:rgb(183,216,209);}.thrv_wrapper.thrv_lead_generation .tve_lead_generated_inputs_container input[type="email"]:not(.tcb-plain-text){color:rgb(85,85,85);}.thrv_wrapper.thrv_lead_generation .tve_lead_generated_inputs_container input::placeholder{font-family:inherit !important;}.thrv_wrapper.thrv_lead_generation{position:relative;box-sizing:border-box;}.thrv_wrapper.thrv_lead_generation::after{content:"";display:block;position:absolute;top:0px;left:0px;}.thrv_wrapper.thrv_lead_generation .tve_submit_container.tve_lg_submit{margin:0px;}.thrv_wrapper.thrv_lead_generation .tve_submit_container.tve_lg_submit > button{padding:13px 10px;}.thrv_wrapper.thrv_lead_generation.tve-lead-generation-template .thrv_lead_generation_container .tve_lg_input_container.tve_lg_input{margin:10px 0px;}.thrv_wrapper.thrv_lead_generation.tve-lead-generation-template .thrv_lead_generation_container .tve_lg_input_container.tve_lg_input > input{margin:0px;}.thrv_wrapper.thrv_lead_generation.tve-lead-generation-template .thrv_lead_generation_container .tve_lg_input_container.tve_lg_textarea{margin:10px 0px;}.thrv_wrapper.thrv_lead_generation.tve-lead-generation-template .thrv_lead_generation_container .tve_lg_input_container.tve_lg_textarea > textarea{margin:0px;}.tve-lg-error{background-repeat:no-repeat;border-color:transparent !important;box-shadow:rgb(169,68,66) 0px 0px 4px inset !important;}.thrv_lead_generation_container .tve_lg_input_container.tve_lg_input{display:flex;}.thrv_lead_generation_container .tve_lg_input_container.tve_lg_input > input{flex:1 1 0%;max-width:100%;}.thrv_lead_generation_container input[type="password"],.thrv_lead_generation_container input[type="email"],.thrv_lead_generation_container input[type="url"],.thrv_lead_generation_container input[type="text"],.thrv_lead_generation_container input[type="tel"],.thrv_lead_generation_container button,.thrv_lead_generation_container select,.thrv_lead_generation_container textarea{border-style:solid;border-color:rgb(183,216,209);border-width:1px;max-width:none;background-color:rgb(248,249,250);box-sizing:border-box !important;float:none !important;width:100% !important;}.thrv_lead_generation_container input[type="password"]::placeholder,.thrv_lead_generation_container input[type="email"]::placeholder,.thrv_lead_generation_container input[type="url"]::placeholder,.thrv_lead_generation_container input[type="text"]::placeholder,.thrv_lead_generation_container input[type="tel"]::placeholder,.thrv_lead_generation_container button::placeholder,.thrv_lead_generation_container select::placeholder,.thrv_lead_generation_container textarea::placeholder{opacity:0.7;color:inherit !important;}.thrv_lead_generation_container input:hover{background-color:rgb(255,255,255);border-color:rgb(26,188,156);}.thrv_lead_generation_container input[type="image"]{box-sizing:border-box;}.thrv_lead_generation_container select{height:auto;}.thrv_lead_generation_container input[type="password"],.thrv_lead_generation_container input[type="email"],.thrv_lead_generation_container input[type="text"],.thrv_lead_generation_container input[type="tel"],.thrv_lead_generation_container input[type="url"]{outline:none;padding:5px;}.thrv_lead_generation_container button{border-width:0px;color:rgb(255,255,255);cursor:pointer;font-size:16px;padding:10px;}.thrv_lead_generation_container .tcb-form-loader{display:none;position:absolute;width:100%;height:100%;top:0px;left:0px;}span.tcb-form-loader-icon{animation:0.7s linear 0s infinite normal none running tcb-loader;display:inline-block;font-size:24px;line-height:24px;height:24px;width:24px;position:absolute;top:50%;left:50%;margin:-12px 0px 0px -12px;opacity:0.7;}.thrv_lead_generation_container .thrv_text_element{position:relative;z-index:1 !important;}.tve_lg_input_container{position:relative;z-index:1 !important;}.tve_lg_input_container input[type="email"],.tve_lg_input_container button{margin:10px 0px;}.tve_lg_input_container:not(.tve_lg_file):not(.tve-login-form-item) .thrv_icon{transform:translate(-50%,-50%);background:transparent;border:0px;font-size:25px;position:absolute;right:0px;top:47%;z-index:2;margin:0px 20px 0px 0px;}.tve_submit_container .thrv_icon:hover{cursor:pointer;}.tve_lead_generated_inputs_container{--tcb-local-color-30800:rgb(59,136,253);--tcb-local-color-f2bba:rgba(59,136,253,0.1);--tcb-local-color-trewq:rgba(59,136,253,0.3);--tcb-local-color-poiuy:rgba(59,136,253,0.6);--tcb-local-color-f83d7:rgba(59,136,253,0.25);--tcb-local-color-3d798:rgba(59,136,253,0.4);--tcb-local-color-418a6:rgba(59,136,253,0.12);--tcb-local-color-a941t:rgba(59,136,253,0.05);--tcb-local-color-1ad9d:rgba(46,204,113,0.1);--tcb-local-color-2dbcc:rgb(136,231,253);--tcb-local-color-frty6:rgba(59,136,253,0.45);--tcb-local-color-flktr:rgba(59,136,253,0.8);--tcb-radio-size:20px;--tcb-checkbox-size:20px;--tve-color:var(--tcb-local-color-30800);}.tve-new-radio .tve_lg_radio_wrapper .tve-lg-error:not(:checked) + label:not(:hover) + .tve-checkmark,.tve-new-radio .tve_lg_radio_wrapper .tve-lg-error:not(:checked) + label:not(:hover) .tve-checkmark,.tve-new-checkbox .tve_lg_checkbox_wrapper .tve-lg-error:not(:checked) + label:not(:hover) + .tve-checkmark,.tve-new-checkbox .tve_lg_checkbox_wrapper .tve-lg-error:not(:checked) + label:not(:hover) .tve-checkmark{border-color:transparent;box-shadow:rgb(169,68,66) 0px 0px 4px inset;}.tve-new-radio .tve_lg_radio_wrapper .tve-lg-error:not(:checked) + label:not(:hover) + .tve-checkmark::after,.tve-new-radio .tve_lg_radio_wrapper .tve-lg-error:not(:checked) + label:not(:hover) .tve-checkmark::after,.tve-new-checkbox .tve_lg_checkbox_wrapper .tve-lg-error:not(:checked) + label:not(:hover) + .tve-checkmark::after,.tve-new-checkbox .tve_lg_checkbox_wrapper .tve-lg-error:not(:checked) + label:not(:hover) .tve-checkmark::after{box-shadow:rgb(169,68,66) 0px 0px 4px inset;}.tve-new-radio.tve_lg_radio.tve-lg-error-multiple::after{display:block;position:absolute;left:16px;bottom:-10px;font-size:16px;color:rgb(170,68,67);}.tve_lg_dropdown.tve-lg-error,.tcb-form-dropdown.tve-lg-error,.tve-dynamic-dropdown.tve-lg-error{border-radius:6px;}.tve_lg_dropdown.tve-lg-error > a,.tcb-form-dropdown.tve-lg-error > a,.tve-dynamic-dropdown.tve-lg-error > a{box-shadow:rgb(169,68,66) 0px 0px 4px !important;}.tcb-file-list .tcb-file-loader .tcb-form-loader-icon{font-size:16px;line-height:16px;width:16px;height:16px;margin:-8px 0px 0px -8px;}.tcb-icon{display:inline-block;width:1em;height:1em;line-height:1em;vertical-align:middle;stroke-width:0;stroke:currentcolor;fill:currentcolor;box-sizing:content-box;transform:rotate(var(--tcb-icon-rotation-angle,0deg));}svg.tcb-icon path:not([fill="none"]){transition:none 0s ease 0s;fill:inherit !important;stroke:inherit !important;}.thrv_icon{text-align:center;}.tve_image_caption{position:relative;}.tve_image_caption:not(.tcb-mm-image.tve-tab-image){height:auto !important;}.tve_image_caption .tve_image{max-width:100%;width:100%;}.thrv_text_element{overflow-wrap:break-word;}.thrive-symbol-shortcode{position:relative;}.thrv-login-element .tcb-form-loader-icon{z-index:11;}.thrv-login-element .tcb-form-loader > span.tcb-form-loader-icon{animation:0.7s linear 0s infinite normal none running tcb-loader;display:inline-block;font-size:24px;line-height:24px;height:24px;width:24px;position:absolute;top:50%;left:50%;margin:-12px 0px 0px -12px;opacity:0.7;}.notifications-content-wrapper{position:fixed;opacity:1;}.notifications-content-wrapper.thrv_wrapper{padding:0px;margin:0px;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.notifications-content-wrapper .notifications-content{display:none;flex-direction:column;}.notifications-content-wrapper:not(.notification-edit-mode){z-index:9999993;}.notifications-content-wrapper[data-position*="top"]{top:50px;}.notifications-content-wrapper[data-position*="middle"]{top:50%;transform:translateY(-50%);}.notifications-content-wrapper[data-position*="bottom"]{bottom:50px;}.notifications-content-wrapper[data-position*="left"]{left:50px;}.notifications-content-wrapper[data-position*="center"]{left:50%;transform:translateX(-50%);}.notifications-content-wrapper[data-position*="right"]{right:50px;}.notifications-content-wrapper[data-position="middle-center"]{transform:translate(-50%,-50%);}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode),.notifications-content-wrapper.tcb-animated.editor-preview{transition:top 0.7s ease 0s,bottom 0.7s ease 0s,left 0.7s ease 0s,right 0.7s ease 0s,opacity 0.7s ease-in-out 0s;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="bottom"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="bottom"]{bottom:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="top"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="middle"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="top"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="middle"]{top:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="bottom"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="bottom"]{bottom:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="top"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="middle"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="top"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="middle"]{top:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="right"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="right"]{right:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="left"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="center"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="left"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="center"]{left:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="right"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="right"]{right:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="left"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="center"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="left"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="center"]{left:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation]{opacity:0;}.notifications-content-wrapper[data-state="success"] .notification-success{display:flex;}.notifications-content-wrapper[data-state="warning"] .notification-warning{display:flex;}.notifications-content-wrapper[data-state="error"] .notification-error{display:flex;}.tcb-permanently-hidden{display:none !important;}.tar-disabled{cursor:default;opacity:0.4;pointer-events:none;}.tcb-flex-row{display:flex;flex-flow:row nowrap;align-items:stretch;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}.thrv-svg-icon svg{width:1em;height:1em;stroke-width:0;fill:currentcolor;stroke:currentcolor;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_symbol .thrv_wrapper:not(.thrv_icon){box-sizing:border-box !important;}.thrv_wrapper.thrv_text_element,.thrv_wrapper.thrv_symbol{margin:0px;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.tve_clearfix::after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0px;}.tve_image{border-radius:0px;box-shadow:none;}div .tve_image_caption{padding:0px;max-width:100% !important;box-sizing:border-box !important;}.tve_image_caption .tve_image_frame{display:block;max-width:100%;position:relative;overflow:hidden;}.tve_image_caption .tve_image{display:block;padding:0px;height:auto;}.thrv_icon{line-height:0;}.thrv_icon.thrv_wrapper{margin-left:auto;margin-right:auto;padding:0px;}.tvd-toast{justify-content:space-between;}.tvd-toast.tve-fe-message{top:50px;width:60%;padding:0px;color:rgb(0,0,0);max-width:500px;position:fixed;z-index:9999993;left:50%;}.tvd-toast.tve-fe-message .tve-toast-message{position:relative;left:-50%;background:rgb(255,255,255);box-shadow:rgb(167,167,167) 0px 0px 15px 0px;}.tvd-toast.tve-fe-message .tve-toast-icon-container{display:inline-block;width:50px;background:green;color:rgb(255,255,255);height:100%;position:absolute;}.tvd-toast.tve-fe-message .tve-toast-icon-container.tve-toast-error{background:red;}.tvd-toast.tve-fe-message .tve-toast-message-container{padding:20px 10px 20px 70px;margin:auto 0px;font-family:Roboto,sans-serif;font-size:16px;}.tvd-toast.tve-fe-message span{text-align:center;display:flex;justify-content:center;flex-direction:column;align-items:center;min-height:50px;height:100%;width:100%;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{position:relative;min-height:var(--tcb-container-height-d,100px) !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-page-section{box-sizing:border-box;margin:0px;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder.thrv-content-box{box-sizing:border-box;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-page-section-out,:not(#_s):not(#_s) .tcb-conditional-display-placeholder .tve-content-box-background{box-sizing:border-box;position:absolute;width:100%;height:100%;left:0px;top:0px;overflow:hidden;}@media (max-width:1023px){:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-t) !important;}}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.notifications-content-wrapper{transform:translateX(-50%);left:50% !important;right:unset !important;}.notifications-content-wrapper[data-position*="middle"]{transform:translate(-50%,-50%);}.notifications-content-wrapper[data-position*="top"]{top:0px;}.notifications-content-wrapper[data-position*="bottom"]{bottom:0px;}.tcb-flex-row{flex-direction:column;}.tcb-flex-row.v-2{flex-direction:row;}.tcb-flex-row.v-2:not(.tcb-mobile-no-wrap){flex-wrap:wrap;}.tcb-flex-row.v-2:not(.tcb-mobile-no-wrap) > .tcb-flex-col{width:100%;flex:1 0 390px;max-width:100% !important;}:not(#_s):not(#_s) .tcb-conditional-display-placeholder{min-height:var(--tcb-container-height-m) !important;}}@media only screen and (max-width:740px){.thrv_lead_generation .thrv_lead_generation_container .tve_lg_input_container.tve_lg_select_container .thrv_icon{margin-right:14px;}}@media (max-width:1023px) and (min-width:768px){.notifications-content-wrapper[data-position*="top"]{top:20px;}.notifications-content-wrapper[data-position*="bottom"]{bottom:20px;}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}@keyframes tcb-loader{0%{transform:rotate(0deg);}100%{transform:rotate(359deg);}}</style><style class='tve-symbol-custom-style'>@import url("//fonts.googleapis.com/css?family=Montserrat:400,&subset=latin");@import url("//fonts.googleapis.com/css?family=Roboto:300,100,400&subset=latin");@media (min-width: 300px){.thrv_symbol_13058 [data-css="tve-u-17d90995384"] strong{font-weight: 400 !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995388"] button{background-color: rgb(0,149,205);color: rgb(255,255,255);font-weight: 700;border-width: 0px;border-style: solid;border-color: rgb(183,216,209);border-radius: 6px;box-shadow: none;text-shadow: none;background-image: none;background-size: auto;background-attachment: scroll;background-position: 0% 0%;background-repeat: repeat;}.thrv_symbol_13058 [data-css="tve-u-17d90995380"] img{opacity: 0.92;filter: grayscale(0%) blur(0px);}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995388"]:hover button{background-color: rgb(255,126,0) !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"]:hover input,:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"]:hover input::placeholder{color: rgb(45,45,45) !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"]:hover input{border: 1px solid rgb(186,218,242) !important;font-family: Roboto !important;font-weight: 300 !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995389"]{background-color: rgb(255,126,0) !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995389"]{border-top-right-radius: 6px;overflow: hidden;border-bottom-right-radius: 6px;font-size: 25px;width: 25px;height: 25px;padding: 20px 20px 19px !important;margin-right: -33px !important;margin-top: 3px !important;margin-bottom: 0px !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995389"] > :first-child{color: rgb(255,255,255);}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] input,:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] input::placeholder{color: rgb(99,99,99) !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] input{border: 1px solid rgb(227,242,253);border-radius: 6px;overflow: hidden;font-family: Roboto;font-weight: 300;font-size: 14px;background-image: none !important;background-color: rgb(227,242,253) !important;padding-right: 15px !important;padding-bottom: 20px !important;padding-top: 20px !important;}.thrv_symbol_13058 [data-css="tve-u-17d9099537d"] > .tcb-flex-col > .tcb-col{min-height: 1px;}.thrv_symbol_13058 [data-css="tve-u-17d90995382"]{margin-right: 0px !important;margin-left: 22px !important;padding-right: 10px !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995388"]{max-width: 100%;width: 100%;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995388"] button{border-radius: 0px;text-align: left;font-size: 16px;font-family: Montserrat;font-weight: 700;line-height: 1.12em;margin-right: 11px !important;padding: 24px 21px 24px 17px !important;background-image: none !important;background-color: rgb(255,143,33) !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995386"]{max-width: 406px;margin: 9px 0px 0px !important;padding: 0px !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995385"]{font-weight: 300;font-family: Roboto !important;font-size: 16px !important;color: rgb(51,51,51) !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995383"]{padding: 0px !important;margin-left: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d9099537c"]{margin-bottom: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d9099537d"]{min-height: inherit;padding-bottom: 0px !important;padding-top: 0px !important;padding-right: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d9099537f"]{padding-left: 0px !important;margin-right: -61px !important;margin-bottom: 0px !important;padding-bottom: 0px !important;margin-top: 0px !important;padding-top: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995380"]{float: none;width: 403px;border-radius: 0px;position: relative;top: -65px;left: -63px;box-shadow: rgba(0,0,0,0.4) 0px 5px 12px 0px;--tve-border-radius: 0px;margin-top: 16px !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995384"]{font-weight: 400 !important;font-family: Roboto !important;font-size: 19px !important;color: rgb(255,143,33) !important;text-transform: uppercase !important;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] input,:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] select{background-color: rgba(255,143,33,0.28) !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995387"]{--tve-border-radius: 0px;}:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] input,:not(#tve) .thrv_symbol_13058 [data-css="tve-u-17d90995387"] textarea{border-radius: 0px;}.thrv_symbol_13058 [data-css="tve-u-17d90995388"]{--tve-border-radius: 0px;}}@media (max-width: 767px){.thrv_symbol_13058 [data-css="tve-u-17d9099537f"]{margin-right: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995380"]{width: 222px;margin-bottom: -30px !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995386"]{margin-left: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995383"]{padding-right: 0px !important;margin-left: 0px !important;}.thrv_symbol_13058 [data-css="tve-u-17d90995382"]{margin-right: 0px !important;margin-left: 0px !important;padding-right: 0px !important;}}</style><div class="thrv_wrapper thrv-columns" data-css="tve-u-17d9099537c" style="--tcb-col-el-width: 756.4;"><div class="tcb-flex-row tcb-resized v-2 tcb--cols--2" data-css="tve-u-17d9099537d"><div class="tcb-flex-col" data-css="tve-u-17d9099537e" style=""><div class="tcb-col tve_empty_dropzone" data-css="tve-u-17d9099537f"><div class="thrv_wrapper tve_image_caption" data-css="tve-u-17d90995380" style="--tve-border-radius:0px; border-radius: 0px;"><span class="tve_image_frame" style="width: 100%;"><img decoding="async" class="tve_image wp-image-5238" alt="" width="360" height="360" title="MVIMG_20190508_175746" data-id="5238" src="https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746.jpg" style="" data-width="360" data-height="360" data-init-width="2430" data-init-height="2430" loading="lazy" srcset="https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746.jpg 2430w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-150x150.jpg 150w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-300x300.jpg 300w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-768x768.jpg 768w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-1024x1024.jpg 1024w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-75x75.jpg 75w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-65x65.jpg 65w, https://avdi.codes/wp-content/uploads/2019/05/MVIMG_20190508_175746-800x800.jpg 800w" sizes="auto, (max-width: 360px) 100vw, 360px" /></span></div></div></div><div class="tcb-flex-col" data-css="tve-u-17d90995381" style=""><div class="tcb-col tve_empty_dropzone" data-css="tve-u-17d90995382"><div class="thrv_wrapper thrv_text_element tve_empty_dropzone" data-css="tve-u-17d90995383"><p data-css="tve-u-17d90995384">Let's correspond!</p><p data-css="tve-u-17d90995385">May I write to you? From time to time I'll send you a SIGAVDI newsletter with a few handpicked links, an update on what I've published lately, and some reflections at the intersection of code and life. Replies go directly to me, and I do my best to respond to every single one.</p></div><div class="thrv_wrapper thrv_lead_generation tve-no-drop-inside" data-connection="api" data-css="tve-u-17d90995386" data-templateconfig="{&quot;checkbox&quot;:{&quot;data-columns&quot;:4,&quot;option&quot;:{&quot;data-value&quot;:&quot;default&quot;}},&quot;radio&quot;:{&quot;data-columns&quot;:4,&quot;option&quot;:{&quot;data-value&quot;:&quot;default&quot;}},&quot;select&quot;:{&quot;_class&quot;:&quot;&quot;,&quot;data-show-placeholder&quot;:&quot;1&quot;,&quot;data-style&quot;:&quot;default&quot;,&quot;data-icon&quot;:&quot;style_1&quot;,&quot;_alias&quot;:&quot;dropdown&quot;}}" data-settings-id="13059"><input type="hidden" class="tve-lg-err-msg" value="{&quot;email&quot;:&quot;Email address invalid&quot;,&quot;phone&quot;:&quot;Phone number invalid&quot;,&quot;password&quot;:&quot;Password invalid&quot;,&quot;passwordmismatch&quot;:&quot;Password mismatch error&quot;,&quot;required&quot;:&quot;Required field missing&quot;}"> <div class="thrv_lead_generation_container tve_clearfix"> <form action="#" method="post" novalidate="novalidate" autocomplete="new-password"> <div class="tve_lead_generated_inputs_container tve_clearfix tve_empty_dropzone"> <div class="tve_lg_input_container tve_lg_input" data-css="tve-u-17d90995387" data-tcb_hover_state_parent="" data-label="tve-lg-17d908c1b25" style=""> <input type="email" data-field="email" data-required="1" data-validation="email" name="email" placeholder="Email" data-placeholder="Email" class="" style=""> </div> <div class="tve_lg_input_container tve_submit_container tve_lg_submit tcb-icon-display tve_empty_dropzone" data-css="tve-u-17d90995388" data-button-style="" data-tcb_hover_state_parent="" style=""><div class="thrv_wrapper thrv_icon" data-css="tve-u-17d90995389"><svg class="tcb-icon" viewBox="0 0 9 28" data-name="angle-right"> <path d="M9.297 15c0 0.125-0.063 0.266-0.156 0.359l-7.281 7.281c-0.094 0.094-0.234 0.156-0.359 0.156s-0.266-0.063-0.359-0.156l-0.781-0.781c-0.094-0.094-0.156-0.219-0.156-0.359 0-0.125 0.063-0.266 0.156-0.359l6.141-6.141-6.141-6.141c-0.094-0.094-0.156-0.234-0.156-0.359s0.063-0.266 0.156-0.359l0.781-0.781c0.094-0.094 0.234-0.156 0.359-0.156s0.266 0.063 0.359 0.156l7.281 7.281c0.094 0.094 0.156 0.234 0.156 0.359z"></path> </svg></div><button type="submit" class="" style="">Subscribe</button></div> </div> <input id="_submit_option" type="hidden" name="_submit_option" value="message"><input id="__tcb_lg_msg" type="hidden" name="__tcb_lg_msg" value="YToyOntzOjU6ImVycm9yIjtzOjY6IkVycm9yISI7czo3OiJzdWNjZXNzIjtzOjg6IlN1Y2Nlc3MhIjt9"><input id="_autofill" type="hidden" name="_autofill" value=""><input id="_api_custom_fields" type="hidden" name="_api_custom_fields" value="YToxMDp7aTowO2E6Mjp7czoyOiJpZCI7czo0OiJuYW1lIjtzOjExOiJwbGFjZWhvbGRlciI7czo0OiJOYW1lIjt9aToxO2E6Mjp7czoyOiJpZCI7czo1OiJwaG9uZSI7czoxMToicGxhY2Vob2xkZXIiO3M6NToiUGhvbmUiO31pOjI7YToyOntzOjI6ImlkIjtzOjEyOiJtYXBwaW5nX3RleHQiO3M6MTE6InBsYWNlaG9sZGVyIjtzOjQ6IlRleHQiO31pOjM7YToyOntzOjI6ImlkIjtzOjExOiJtYXBwaW5nX3VybCI7czoxMToicGxhY2Vob2xkZXIiO3M6MzoiVVJMIjt9aTo0O2E6Mjp7czoyOiJpZCI7czoxMzoibWFwcGluZ19yYWRpbyI7czoxMToicGxhY2Vob2xkZXIiO3M6NToiUmFkaW8iO31pOjU7YToyOntzOjI6ImlkIjtzOjE0OiJtYXBwaW5nX3NlbGVjdCI7czoxMToicGxhY2Vob2xkZXIiO3M6ODoiRHJvcGRvd24iO31pOjY7YToyOntzOjI6ImlkIjtzOjE2OiJtYXBwaW5nX2NoZWNrYm94IjtzOjExOiJwbGFjZWhvbGRlciI7czo4OiJDaGVja2JveCI7fWk6NzthOjI6e3M6MjoiaWQiO3M6MTY6Im1hcHBpbmdfdGV4dGFyZWEiO3M6MTE6InBsYWNlaG9sZGVyIjtzOjg6IlRleHRhcmVhIjt9aTo4O2E6Mjp7czoyOiJpZCI7czoxMjoibWFwcGluZ19maWxlIjtzOjExOiJwbGFjZWhvbGRlciI7czoxMToiRmlsZSB1cGxvYWQiO31pOjk7YToyOntzOjI6ImlkIjtzOjE0OiJtYXBwaW5nX2hpZGRlbiI7czoxMToicGxhY2Vob2xkZXIiO3M6NjoiSGlkZGVuIjt9fQ=="><input id="_sendParams" type="hidden" name="_sendParams" value=""><input type="hidden" id="apbct_visible_fields_0" name="apbct_visible_fields" value="eyIwIjp7InZpc2libGVfZmllbGRzIjoiZW1haWwiLCJ2aXNpYmxlX2ZpZWxkc19jb3VudCI6MSwiaW52aXNpYmxlX2ZpZWxkcyI6Il9zdWJtaXRfb3B0aW9uIF9fdGNiX2xnX21zZyBfYXV0b2ZpbGwgX2FwaV9jdXN0b21fZmllbGRzIF9zZW5kUGFyYW1zIHR2ZV9tYXBwaW5nIHR2ZV9sYWJlbHMgY3Rfbm9fY29va2llX2hpZGRlbl9maWVsZCIsImludmlzaWJsZV9maWVsZHNfY291bnQiOjh9fQ=="><input type="hidden" id="tve_mapping" name="tve_mapping" value="YTowOnt9"><input type="hidden" id="tve_labels" name="tve_labels" value="YToxOntzOjU6ImVtYWlsIjtzOjU6IkVtYWlsIjt9"><input name="ct_no_cookie_hidden_field" value="_ct_no_cookie_data_eyJhcGJjdF90aW1lc3RhbXAiOiIxNjgyMDg1MDc4IiwiYXBiY3RfdXJscyI6IntcImF2ZGkuY29kZXMvP3RjYl9saWdodGJveD1tb29tLXByZXZpZXctb2ZmZXImdHZlPXRydWUmdGNiZj1iYzY5MjlmYjljXCI6WzE2ODQzNTUyMDJdLFwiYXZkaS5jb2Rlcy8/cG9zdF90eXBlPXR2ZV9sZWFkXzJzX2xpZ2h0Ym94JnA9NDAzJnR2ZT10cnVlJnRjYmY9YmM2OTI5ZmI5YyZfa2V5PTFcIjpbMTY4NDM1NTI0MF19IiwiY3RfaGFzX3Njcm9sbGVkIjp0cnVlLCJjdF9tb3VzZV9tb3ZlZCI6dHJ1ZSwiY3RfY29va2llc190eXBlIjoibm9uZSIsImFwYmN0X2hlYWRsZXNzIjoiZmFsc2UiLCJhcGJjdF92aXNpYmxlX2ZpZWxkcyI6IjAiLCJmbHVlbnRjcm0tY29udGFjdF9wZXJwYWdlIjo1MCwiY3RfZmtwX3RpbWVzdGFtcCI6IjAiLCJjdF9zY3JlZW5faW5mbyI6IiU3QiUyMmZ1bGxXaWR0aCUyMiUzQTExNzMlMkMlMjJmdWxsSGVpZ2h0JTIyJTNBMTA5NCUyQyUyMnZpc2libGVXaWR0aCUyMiUzQTExNzMlMkMlMjJ2aXNpYmxlSGVpZ2h0JTIyJTNBNjc1JTdEIiwiY3RfY2hlY2tqcyI6IjE2OTAyNzg1MzkiLCJjdF90aW1lem9uZSI6Ii01IiwiYXBiY3RfcGl4ZWxfdXJsIjoiaHR0cHMlM0ElMkYlMkZtb2RlcmF0ZTkuY2xlYW50YWxrLm9yZyUyRnBpeGVsJTJGNGY4NzUxMTdkMDhlZjZiMWE2YjY1ZWVlMDVhMzUzNjkuZ2lmIiwiY3RfY2hlY2tlZF9lbWFpbHMiOiIwIiwiY3RfaGFzX2tleV91cCI6dHJ1ZSwiY3RfcHNfdGltZXN0YW1wIjoiMTY4NDM1NTQ2OCIsImFwYmN0X3BhZ2VfaGl0cyI6MSwiY3RfaGFzX2lucHV0X2ZvY3VzZWQiOnRydWUsImFwYmN0X2Nvb2tpZXNfdGVzdCI6IiU3QiUyMmNvb2tpZXNfbmFtZXMlMjIlM0ElNUIlMjJhcGJjdF90aW1lc3RhbXAlMjIlMkMlMjJhcGJjdF9zaXRlX2xhbmRpbmdfdHMlMjIlNUQlMkMlMjJjaGVja192YWx1ZSUyMiUzQSUyMmIxNzI0NmM0YjY0NWMyYTdhNGFmNmI0N2I1YmUyZmViJTIyJTdEIiwiY3RfcG9pbnRlcl9kYXRhIjoiJTVCJTVCMzkwJTJDMTA2NiUyQzQ5NjYxJTVEJTJDJTVCMzczJTJDMTEyOCUyQzQ5NzA5JTVEJTJDJTVCMzQ5JTJDMTA2MSUyQzUxMDgwJTVEJTJDJTVCNTM0JTJDNzQ4JTJDNTI3ODclNUQlMkMlNUI0ODQlMkM2NjclMkM1MjgzMCU1RCUyQyU1QjIwMyUyQzM1NCUyQzUyOTk5JTVEJTJDJTVCMTg0JTJDMzQwJTJDNTMzNTclNUQlMkMlNUIyMTYlMkMxMzclMkM1MzQ2MCU1RCUyQyU1QjIxMCUyQzg2JTJDNTQxMTAlNUQlMkMlNUIyMTklMkMzMiUyQzU0MTkzJTVEJTJDJTVCMzkzJTJDOCUyQzU3MTI2JTVEJTJDJTVCMzIxJTJDOTYlMkM1NzY4MSU1RCUyQyU1QjUxOCUyQzYxNiUyQzU5NTUzJTVEJTJDJTVCMjk4JTJDMTc3JTJDNTk3MzQlNUQlMkMlNUIyNDQlMkMxMzMlMkM2MDE0MCU1RCUyQyU1QjI1NyUyQzEwNSUyQzYwMTkzJTVEJTVEIiwiYXBiY3RfcHJldl9yZWZlcmVyIjoiaHR0cHM6Ly9hdmRpLmNvZGVzL3dwLWFkbWluL3Bvc3QucGhwP3Bvc3Q9NDMyNiZhY3Rpb249YXJjaGl0ZWN0JnR2ZT10cnVlJl9rZXk9MjMmcj02NDY1Mzk4M2I0NzY2IiwiYXBiY3Rfc2Vzc2lvbl9pZCI6Im92cm1udmF1In0=" type="hidden" class="apbct_special_field ct_no_cookie_hidden_field"></form> </div> </div></div></div></div></div></div></div></div>
</div></div></div></div></div></div></div> </div><!-- .entry-content -->
<footer class="entry-footer th-space-y-base">
<div class="cat-links has-tiny-font-size th-font-headings th-uppercase th-links-inherit th-tracking-wide"><span class="links-title has-secondary-dark-color th-tracking-widest">This entry was posted in:</span><a href="https://avdi.codes/category/articles/" rel="category tag">Articles</a>, <a href="https://avdi.codes/category/uncategorized/" rel="category tag">Uncategorized</a></div><div class="tags-links has-tiny-font-size th-font-headings th-uppercase th-links-inherit th-tracking-wide"><span class="links-title has-secondary-dark-color th-tracking-widest">Tagged with:</span><a href="https://avdi.codes/tag/architecture/" rel="tag">architecture</a>, <a href="https://avdi.codes/tag/complexity/" rel="tag">complexity</a>, <a href="https://avdi.codes/tag/featured/" rel="tag">featured</a>, <a href="https://avdi.codes/tag/microservices/" rel="tag">microservices</a>, <a href="https://avdi.codes/tag/simplicity/" rel="tag">simplicity</a>, <a href="https://avdi.codes/tag/software-design/" rel="tag">software design</a>, <a href="https://avdi.codes/tag/systems/" rel="tag">systems</a>, <a href="https://avdi.codes/tag/systems-thinking/" rel="tag">systems thinking</a></div>
<div class="entry-author sm:th-flex">
<div class="author-avatar th-rounded"><img alt='' src='https://secure.gravatar.com/avatar/018496452ddefc6bd0b548a326c09cc1c5ddd24d1acc5a9cbe1fe7b1599ad4b7?s=192&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/018496452ddefc6bd0b548a326c09cc1c5ddd24d1acc5a9cbe1fe7b1599ad4b7?s=384&#038;d=mm&#038;r=g 2x' class='avatar avatar-192 photo' height='192' width='192' loading='lazy' decoding='async'/></div>
<div class="author-bio th-self-center sm:th-ml-lg th-space-y-small">
<p class="author-name th-flex th-flex-col th-font-headings th-my-0 th-links-inherit th-uppercase"><span class="th-block has-tiny-font-size has-secondary-dark-color th-tracking-widest">About the author</span> <a class="th-inline-block has-normal-font-size" href="https://avdi.codes/author/avdi/" rel="author">Avdi Grimm</a></p>
<p class="author-bio-content th-mb-0">Head gardener at Graceful.Dev; Author, "Exceptional Ruby" and "Confident Ruby"; coach, consultant, and code cleric.</p><p class="author-link-container has-secondary-dark-color has-tiny-font-size th-font-headings th-uppercase th-links-inherit"><a class="author-link" href="https://avdi.codes/author/avdi/" rel="author">View all posts by Avdi Grimm</a></p><ul class="author-links th-flex th-flex-wrap th-gap-small th-links-inherit th-list-none th-leading-none th-mb-0 th-ml-0 th-p-0"><li class="th-inline-block has-primary-light-color th-mr-sm"><a href="https://avdi.codes" target="_blank" rel="nofollow"><svg class="svg-icon th-fill-current" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 10.995V14.5a.5.5 0 0 1-.5.5H2a.5.5 0 0 1-.5-.5v-7a.5.5 0 0 1 .146-.354l6-6a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 .146.354v7a.5.5 0 0 1-.5.5h-4a.5.5 0 0 1-.5-.5V11c0-.25-.25-.5-.5-.5H7c-.25 0-.5.25-.5.495z"/><path fill-rule="evenodd" d="M13 2.5V6l-2-2V2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5z"/></svg><span class="screen-reader-text">Personal website</span></a></li></ul><!-- .author-links -->
</div>
</div>
</footer><!-- .entry-footer -->
</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://avdi.codes/dont-throw-away-invalid-data/" rel="prev"><span class="meta-title has-tiny-font-size has-secondary-dark-color th-font-headings th-tracking-widest th-uppercase th-block th-mb-small">Previous Post</span><span class="post-title th-font-bold">Don&#8217;t throw away invalid data</span></a></div><div class="nav-next"><a href="https://avdi.codes/on-gatekeeping-complicity-and-arrival/" rel="next"><span class="meta-title has-tiny-font-size has-secondary-dark-color th-font-headings th-tracking-widest th-uppercase th-block th-mb-small">Next Post</span><span class="post-title th-font-bold">On Gatekeeping, Complicity, and Arrival</span></a></div></div>
</nav>
</main><!-- #main -->
<aside id="secondary" class="widget-area sidebar-section has-small-font-size th-space-y-base">
<section id="block-19" class="widget widget_block"><div
class="activitypub-follow-me-block-wrapper is-style-default wp-block-activitypub-follow-me" id="activitypub-follow-me-block-1" data-wp-interactive="activitypub/follow-me" data-wp-init="callbacks.initButtonStyles" data-wp-context='{"backgroundColor":"var(--wp--preset--color--white)","blockId":"activitypub-follow-me-block-1","buttonStyle":[],"copyButtonText":"Copy","errorMessage":"","isError":false,"isLoading":false,"modal":{"isOpen":false},"remoteProfile":"","userId":1,"webfinger":"@avdi@avdi.codes"}'>
<div class="activitypub-profile p-author h-card">
<div class="activitypub-profile__body">
<img
class="activitypub-profile__avatar u-photo"
src="https://secure.gravatar.com/avatar/018496452ddefc6bd0b548a326c09cc1c5ddd24d1acc5a9cbe1fe7b1599ad4b7?s=120&#038;d=mm&#038;r=g"
alt="Avdi Grimm"
/>
<div class="activitypub-profile__content">
<div class="activitypub-profile__info">
<div class="activitypub-profile__name p-name">Avdi Grimm</div>
<div class="activitypub-profile__handle p-nickname p-x-webfinger" data-wp-text="context.webfinger">@avdi@avdi.codes</div>
</div>
<div class="wp-block-button"><a aria-expanded="false" aria-controls="activitypub-follow-me-block-1-modal-title" aria-haspopup="dialog" aria-label="Follow me on the Fediverse" data-wp-bind--aria-expanded="context.modal.isOpen" data-wp-on--click="actions.toggleModal" data-wp-on--keydown="actions.onKeydown" role="button" tabindex="0" class="wp-block-button__link wp-element-button">Follow</a></div>
<div class="activitypub-profile__bio p-note">
<p>Head gardener at Graceful.Dev; Author, "Exceptional Ruby" and "Confident Ruby"; coach, consultant, and code cleric.</p>
</div>
<div class="activitypub-profile__stats">
<div>
<strong>749</strong> posts </div>
<div>
<strong>1,951</strong> followers </div>
</div>
</div>
</div>
</div>
<div
class="activitypub-modal__overlay"
data-wp-bind--hidden="!context.modal.isOpen"
data-wp-watch="callbacks.handleModalEffects"
role="dialog"
aria-modal="true"
hidden
>
<div class="activitypub-modal__frame">
<div class="activitypub-modal__header">
<h2
class="activitypub-modal__title"
id="activitypub-follow-me-block-1-modal-title"
>Follow Avdi Grimm</h2>
<button
type="button"
class="activitypub-modal__close wp-element-button"
data-wp-on--click="actions.closeModal"
aria-label="Close dialog"
>
<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path>
</svg>
</button>
</div>
<div class="activitypub-modal__content">
<div class="activitypub-dialog__section">
<h4>My Profile</h4>
<div class="activitypub-dialog__description">
Paste my profile into the search field of your favorite open social app or platform. </div>
<div class="activitypub-dialog__button-group">
<label for="activitypub-follow-me-block-1-profile-handle" class="screen-reader-text">
My Fediverse handle </label>
<input
aria-readonly="true"
class="wp-block-search__input"
id="activitypub-follow-me-block-1-profile-handle"
readonly
tabindex="-1"
type="text"
value="@avdi@avdi.codes"
/>
<button
aria-label="Copy handle to clipboard"
class="wp-element-button"
data-wp-on--click="actions.copyToClipboard"
type="button"
>
<span data-wp-text="context.copyButtonText">Copy</span>
</button>
</div>
</div>
<div class="activitypub-dialog__section">
<h4>Your Profile</h4>
<div class="activitypub-dialog__description">
Or, if you know your own profile, we can start things that way! <details class="activitypub-dialog__help">
<summary>Why do I need to enter my profile?</summary>
<p>
This site is part of the ⁂ open social web, a network of interconnected social platforms (like Mastodon, Pixelfed, Friendica, and others). Unlike centralized social media, your account lives on a platform of your choice, and you can interact with people across different platforms. </p>
<p>
By entering your profile, we can send you to your account where you can complete this action. </p>
</details>
</div>
<div class="activitypub-dialog__button-group">
<label for="activitypub-follow-me-block-1-remote-profile" class="screen-reader-text">
Your Fediverse profile </label>
<input aria-invalid="false" value=""
aria-describedby="activitypub-follow-me-block-1-remote-profile-error"
class="wp-block-search__input"
data-wp-bind--aria-invalid="context.isError"
data-wp-bind--value="context.remoteProfile"
data-wp-on--input="actions.updateRemoteProfile"
data-wp-on--keydown="actions.handleKeyDown"
id="activitypub-follow-me-block-1-remote-profile"
placeholder="@username@example.com"
type="text"
/>
<button
aria-label="Follow"
class="wp-element-button"
data-wp-bind--disabled="context.isLoading"
data-wp-on--click="actions.submitRemoteProfile"
type="button"
>
<span data-wp-bind--hidden="context.isLoading">Follow</span>
<span hidden data-wp-bind--hidden="!context.isLoading">Loading&hellip;</span>
</button>
</div>
<div
class="activitypub-dialog__error"
data-wp-text="context.errorMessage"
id="activitypub-follow-me-block-1-remote-profile-error"
role="alert"
></div>
</div>
</div>
</div>
</div>
</div>
</section><section id="block-3" class="widget widget_block widget_search"><form role="search" method="get" action="https://avdi.codes/" 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-2" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-2" 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></section><section id="categories-3" class="widget widget_categories"><h2 class="widget-title has-small-font-size th-uppercase th-tracking-wider"><span>Categories</span></h2><form action="https://avdi.codes" method="get"><label class="screen-reader-text" for="cat">Categories</label><select name='cat' id='cat' class='postform'>
<option value='-1'>Select Category</option>
<option class="level-0" value="666">#NOCODE</option>
<option class="level-0" value="18">Announcements</option>
<option class="level-0" value="790">Appreciation</option>
<option class="level-0" value="106">Articles</option>
<option class="level-0" value="40">Collaborations</option>
<option class="level-0" value="655">Dev Journal</option>
<option class="level-0" value="640">Event Log</option>
<option class="level-0" value="73">Fragments</option>
<option class="level-0" value="183">How-to</option>
<option class="level-0" value="71">Humor</option>
<option class="level-0" value="38">MOOM Course Updates</option>
<option class="level-0" value="4813">Question</option>
<option class="level-0" value="792">Rants</option>
<option class="level-0" value="368">Resources</option>
<option class="level-0" value="672">RubyTapas Freebies</option>
<option class="level-0" value="665">Serializations</option>
<option class="level-0" value="648">SIGAVDI</option>
<option class="level-0" value="639">Skills</option>
<option class="level-0" value="447">Technologies</option>
<option class="level-0" value="679">There&#8217;s Always Money in the Banana Stand</option>
<option class="level-0" value="1">Uncategorized</option>
<option class="level-0" value="60">Videos</option>
</select>
</form><script>
( ( dropdownId ) => {
const dropdown = document.getElementById( dropdownId );
function onSelectChange() {
setTimeout( () => {
if ( 'escape' === dropdown.dataset.lastkey ) {
return;
}
if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) {
dropdown.parentElement.submit();
}
}, 250 );
}
function onKeyUp( event ) {
if ( 'Escape' === event.key ) {
dropdown.dataset.lastkey = 'escape';
} else {
delete dropdown.dataset.lastkey;
}
}
function onClick() {
delete dropdown.dataset.lastkey;
}
dropdown.addEventListener( 'keyup', onKeyUp );
dropdown.addEventListener( 'click', onClick );
dropdown.addEventListener( 'change', onSelectChange );
})( "cat" );
//# sourceURL=WP_Widget_Categories%3A%3Awidget
</script>
</section><section id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widget-title has-small-font-size th-uppercase th-tracking-wider"><span>Tags</span></h2><div class="tagcloud"><a href="https://avdi.codes/tag/activerecord/" class="tag-cloud-link tag-link-87 tag-link-position-1" style="font-size: 8.5185185185185pt;" aria-label="activerecord (8 items)">activerecord</a>
<a href="https://avdi.codes/tag/aws/" class="tag-cloud-link tag-link-229 tag-link-position-2" style="font-size: 8pt;" aria-label="aws (7 items)">aws</a>
<a href="https://avdi.codes/tag/bdd/" class="tag-cloud-link tag-link-152 tag-link-position-3" style="font-size: 9.8666666666667pt;" aria-label="bdd (11 items)">bdd</a>
<a href="https://avdi.codes/tag/books/" class="tag-cloud-link tag-link-107 tag-link-position-4" style="font-size: 11.422222222222pt;" aria-label="books (16 items)">books</a>
<a href="https://avdi.codes/tag/business/" class="tag-cloud-link tag-link-191 tag-link-position-5" style="font-size: 14.948148148148pt;" aria-label="business (36 items)">business</a>
<a href="https://avdi.codes/tag/community/" class="tag-cloud-link tag-link-134 tag-link-position-6" style="font-size: 9.4518518518519pt;" aria-label="community (10 items)">community</a>
<a href="https://avdi.codes/tag/conferences/" class="tag-cloud-link tag-link-104 tag-link-position-7" style="font-size: 12.77037037037pt;" aria-label="conferences (22 items)">conferences</a>
<a href="https://avdi.codes/tag/datamapper/" class="tag-cloud-link tag-link-226 tag-link-position-8" style="font-size: 9.037037037037pt;" aria-label="datamapper (9 items)">datamapper</a>
<a href="https://avdi.codes/tag/design/" class="tag-cloud-link tag-link-105 tag-link-position-9" style="font-size: 10.903703703704pt;" aria-label="design (14 items)">design</a>
<a href="https://avdi.codes/tag/design-patterns/" class="tag-cloud-link tag-link-28 tag-link-position-10" style="font-size: 8.5185185185185pt;" aria-label="Design Patterns (8 items)">Design Patterns</a>
<a href="https://avdi.codes/tag/elixir-2/" class="tag-cloud-link tag-link-555 tag-link-position-11" style="font-size: 9.037037037037pt;" aria-label="elixir (9 items)">elixir</a>
<a href="https://avdi.codes/tag/emacs/" class="tag-cloud-link tag-link-74 tag-link-position-12" style="font-size: 14.42962962963pt;" aria-label="emacs (32 items)">emacs</a>
<a href="https://avdi.codes/tag/emacs-reboot/" class="tag-cloud-link tag-link-642 tag-link-position-13" style="font-size: 10.592592592593pt;" aria-label="emacs reboot (13 items)">emacs reboot</a>
<a href="https://avdi.codes/tag/errors/" class="tag-cloud-link tag-link-97 tag-link-position-14" style="font-size: 8pt;" aria-label="errors (7 items)">errors</a>
<a href="https://avdi.codes/tag/exceptions/" class="tag-cloud-link tag-link-99 tag-link-position-15" style="font-size: 8.5185185185185pt;" aria-label="exceptions (8 items)">exceptions</a>
<a href="https://avdi.codes/tag/extracted-from-sigavdi/" class="tag-cloud-link tag-link-624 tag-link-position-16" style="font-size: 9.4518518518519pt;" aria-label="Extracted from SIGAVDI (10 items)">Extracted from SIGAVDI</a>
<a href="https://avdi.codes/tag/featured/" class="tag-cloud-link tag-link-56 tag-link-position-17" style="font-size: 12.562962962963pt;" aria-label="featured (21 items)">featured</a>
<a href="https://avdi.codes/tag/fpoo/" class="tag-cloud-link tag-link-563 tag-link-position-18" style="font-size: 8.5185185185185pt;" aria-label="fpoo (8 items)">fpoo</a>
<a href="https://avdi.codes/tag/http/" class="tag-cloud-link tag-link-209 tag-link-position-19" style="font-size: 10.177777777778pt;" aria-label="http (12 items)">http</a>
<a href="https://avdi.codes/tag/idioms/" class="tag-cloud-link tag-link-157 tag-link-position-20" style="font-size: 8pt;" aria-label="idioms (7 items)">idioms</a>
<a href="https://avdi.codes/tag/java/" class="tag-cloud-link tag-link-83 tag-link-position-21" style="font-size: 16.918518518519pt;" aria-label="java (57 items)">java</a>
<a href="https://avdi.codes/tag/learning/" class="tag-cloud-link tag-link-280 tag-link-position-22" style="font-size: 8.5185185185185pt;" aria-label="learning (8 items)">learning</a>
<a href="https://avdi.codes/tag/libraries/" class="tag-cloud-link tag-link-163 tag-link-position-23" style="font-size: 8pt;" aria-label="libraries (7 items)">libraries</a>
<a href="https://avdi.codes/tag/linux/" class="tag-cloud-link tag-link-189 tag-link-position-24" style="font-size: 9.037037037037pt;" aria-label="linux (9 items)">linux</a>
<a href="https://avdi.codes/tag/monkeypatching/" class="tag-cloud-link tag-link-92 tag-link-position-25" style="font-size: 8pt;" aria-label="monkeypatching (7 items)">monkeypatching</a>
<a href="https://avdi.codes/tag/oo/" class="tag-cloud-link tag-link-153 tag-link-position-26" style="font-size: 8.5185185185185pt;" aria-label="oo (8 items)">oo</a>
<a href="https://avdi.codes/tag/oop/" class="tag-cloud-link tag-link-435 tag-link-position-27" style="font-size: 10.903703703704pt;" aria-label="oop (14 items)">oop</a>
<a href="https://avdi.codes/tag/patterns/" class="tag-cloud-link tag-link-78 tag-link-position-28" style="font-size: 12.355555555556pt;" aria-label="patterns (20 items)">patterns</a>
<a href="https://avdi.codes/tag/practices/" class="tag-cloud-link tag-link-93 tag-link-position-29" style="font-size: 10.592592592593pt;" aria-label="practices (13 items)">practices</a>
<a href="https://avdi.codes/tag/rails/" class="tag-cloud-link tag-link-90 tag-link-position-30" style="font-size: 12.977777777778pt;" aria-label="rails (23 items)">rails</a>
<a href="https://avdi.codes/tag/rake/" class="tag-cloud-link tag-link-63 tag-link-position-31" style="font-size: 10.592592592593pt;" aria-label="Rake (13 items)">Rake</a>
<a href="https://avdi.codes/tag/refactoring/" class="tag-cloud-link tag-link-50 tag-link-position-32" style="font-size: 11.940740740741pt;" aria-label="refactoring (18 items)">refactoring</a>
<a href="https://avdi.codes/tag/rspec/" class="tag-cloud-link tag-link-155 tag-link-position-33" style="font-size: 9.037037037037pt;" aria-label="rspec (9 items)">rspec</a>
<a href="https://avdi.codes/tag/ruby/" class="tag-cloud-link tag-link-31 tag-link-position-34" style="font-size: 22pt;" aria-label="Ruby (178 items)">Ruby</a>
<a href="https://avdi.codes/tag/rubytapas/" class="tag-cloud-link tag-link-54 tag-link-position-35" style="font-size: 8pt;" aria-label="RubyTapas (7 items)">RubyTapas</a>
<a href="https://avdi.codes/tag/sigavdi/" class="tag-cloud-link tag-link-42 tag-link-position-36" style="font-size: 13.807407407407pt;" aria-label="SIGAVDI (28 items)">SIGAVDI</a>
<a href="https://avdi.codes/tag/smalltalk/" class="tag-cloud-link tag-link-133 tag-link-position-37" style="font-size: 9.8666666666667pt;" aria-label="smalltalk (11 items)">smalltalk</a>
<a href="https://avdi.codes/tag/software-design/" class="tag-cloud-link tag-link-641 tag-link-position-38" style="font-size: 8.5185185185185pt;" aria-label="software design (8 items)">software design</a>
<a href="https://avdi.codes/tag/talks/" class="tag-cloud-link tag-link-262 tag-link-position-39" style="font-size: 8pt;" aria-label="talks (7 items)">talks</a>
<a href="https://avdi.codes/tag/tdd/" class="tag-cloud-link tag-link-64 tag-link-position-40" style="font-size: 16.4pt;" aria-label="TDD (50 items)">TDD</a>
<a href="https://avdi.codes/tag/testing/" class="tag-cloud-link tag-link-91 tag-link-position-41" style="font-size: 13.703703703704pt;" aria-label="testing (27 items)">testing</a>
<a href="https://avdi.codes/tag/theres-always-money-in-the-banana-stand/" class="tag-cloud-link tag-link-680 tag-link-position-42" style="font-size: 10.177777777778pt;" aria-label="There&#039;s Always Money in the Banana Stand (12 items)">There&#039;s Always Money in the Banana Stand</a>
<a href="https://avdi.codes/tag/tools-2/" class="tag-cloud-link tag-link-331 tag-link-position-43" style="font-size: 8pt;" aria-label="tools (7 items)">tools</a>
<a href="https://avdi.codes/tag/ubuntu/" class="tag-cloud-link tag-link-142 tag-link-position-44" style="font-size: 8pt;" aria-label="ubuntu (7 items)">ubuntu</a>
<a href="https://avdi.codes/tag/wordpress/" class="tag-cloud-link tag-link-478 tag-link-position-45" style="font-size: 9.8666666666667pt;" aria-label="wordpress (11 items)">wordpress</a></div>
</section><section id="archives-3" class="widget widget_archive"><h2 class="widget-title has-small-font-size th-uppercase th-tracking-wider"><span>Archives</span></h2> <label class="screen-reader-text" for="archives-dropdown-3">Archives</label>
<select id="archives-dropdown-3" name="archive-dropdown">
<option value="">Select Month</option>
<option value='https://avdi.codes/2026/09/'> September 2026 </option>
<option value='https://avdi.codes/2026/08/'> August 2026 </option>
<option value='https://avdi.codes/2026/07/'> July 2026 </option>
<option value='https://avdi.codes/2026/06/'> June 2026 </option>
<option value='https://avdi.codes/2026/04/'> April 2026 </option>
<option value='https://avdi.codes/2026/03/'> March 2026 </option>
<option value='https://avdi.codes/2025/12/'> December 2025 </option>
<option value='https://avdi.codes/2025/05/'> May 2025 </option>
<option value='https://avdi.codes/2025/04/'> April 2025 </option>
<option value='https://avdi.codes/2025/03/'> March 2025 </option>
<option value='https://avdi.codes/2024/11/'> November 2024 </option>
<option value='https://avdi.codes/2024/10/'> October 2024 </option>
<option value='https://avdi.codes/2024/09/'> September 2024 </option>
<option value='https://avdi.codes/2024/08/'> August 2024 </option>
<option value='https://avdi.codes/2024/07/'> July 2024 </option>
<option value='https://avdi.codes/2024/06/'> June 2024 </option>
<option value='https://avdi.codes/2024/05/'> May 2024 </option>
<option value='https://avdi.codes/2024/04/'> April 2024 </option>
<option value='https://avdi.codes/2024/01/'> January 2024 </option>
<option value='https://avdi.codes/2023/04/'> April 2023 </option>
<option value='https://avdi.codes/2023/03/'> March 2023 </option>
<option value='https://avdi.codes/2022/12/'> December 2022 </option>
<option value='https://avdi.codes/2022/07/'> July 2022 </option>
<option value='https://avdi.codes/2022/03/'> March 2022 </option>
<option value='https://avdi.codes/2022/02/'> February 2022 </option>
<option value='https://avdi.codes/2022/01/'> January 2022 </option>
<option value='https://avdi.codes/2021/12/'> December 2021 </option>
<option value='https://avdi.codes/2021/11/'> November 2021 </option>
<option value='https://avdi.codes/2021/01/'> January 2021 </option>
<option value='https://avdi.codes/2020/12/'> December 2020 </option>
<option value='https://avdi.codes/2020/11/'> November 2020 </option>
<option value='https://avdi.codes/2020/10/'> October 2020 </option>
<option value='https://avdi.codes/2020/09/'> September 2020 </option>
<option value='https://avdi.codes/2020/08/'> August 2020 </option>
<option value='https://avdi.codes/2020/06/'> June 2020 </option>
<option value='https://avdi.codes/2020/05/'> May 2020 </option>
<option value='https://avdi.codes/2020/04/'> April 2020 </option>
<option value='https://avdi.codes/2020/03/'> March 2020 </option>
<option value='https://avdi.codes/2020/02/'> February 2020 </option>
<option value='https://avdi.codes/2019/11/'> November 2019 </option>
<option value='https://avdi.codes/2019/10/'> October 2019 </option>
<option value='https://avdi.codes/2019/09/'> September 2019 </option>
<option value='https://avdi.codes/2019/07/'> July 2019 </option>
<option value='https://avdi.codes/2019/06/'> June 2019 </option>
<option value='https://avdi.codes/2019/05/'> May 2019 </option>
<option value='https://avdi.codes/2019/04/'> April 2019 </option>
<option value='https://avdi.codes/2019/03/'> March 2019 </option>
<option value='https://avdi.codes/2019/02/'> February 2019 </option>
<option value='https://avdi.codes/2019/01/'> January 2019 </option>
<option value='https://avdi.codes/2018/12/'> December 2018 </option>
<option value='https://avdi.codes/2018/11/'> November 2018 </option>
<option value='https://avdi.codes/2018/09/'> September 2018 </option>
<option value='https://avdi.codes/2018/07/'> July 2018 </option>
<option value='https://avdi.codes/2018/06/'> June 2018 </option>
<option value='https://avdi.codes/2018/05/'> May 2018 </option>
<option value='https://avdi.codes/2018/03/'> March 2018 </option>
<option value='https://avdi.codes/2018/01/'> January 2018 </option>
<option value='https://avdi.codes/2017/11/'> November 2017 </option>
<option value='https://avdi.codes/2017/10/'> October 2017 </option>
<option value='https://avdi.codes/2017/08/'> August 2017 </option>
<option value='https://avdi.codes/2017/07/'> July 2017 </option>
<option value='https://avdi.codes/2017/05/'> May 2017 </option>
<option value='https://avdi.codes/2017/04/'> April 2017 </option>
<option value='https://avdi.codes/2017/03/'> March 2017 </option>
<option value='https://avdi.codes/2017/02/'> February 2017 </option>
<option value='https://avdi.codes/2017/01/'> January 2017 </option>
<option value='https://avdi.codes/2016/12/'> December 2016 </option>
<option value='https://avdi.codes/2016/10/'> October 2016 </option>
<option value='https://avdi.codes/2016/07/'> July 2016 </option>
<option value='https://avdi.codes/2016/06/'> June 2016 </option>
<option value='https://avdi.codes/2016/05/'> May 2016 </option>
<option value='https://avdi.codes/2016/04/'> April 2016 </option>
<option value='https://avdi.codes/2016/03/'> March 2016 </option>
<option value='https://avdi.codes/2016/02/'> February 2016 </option>
<option value='https://avdi.codes/2016/01/'> January 2016 </option>
<option value='https://avdi.codes/2015/12/'> December 2015 </option>
<option value='https://avdi.codes/2015/11/'> November 2015 </option>
<option value='https://avdi.codes/2015/10/'> October 2015 </option>
<option value='https://avdi.codes/2015/09/'> September 2015 </option>
<option value='https://avdi.codes/2015/08/'> August 2015 </option>
<option value='https://avdi.codes/2015/07/'> July 2015 </option>
<option value='https://avdi.codes/2015/06/'> June 2015 </option>
<option value='https://avdi.codes/2015/05/'> May 2015 </option>
<option value='https://avdi.codes/2015/03/'> March 2015 </option>
<option value='https://avdi.codes/2015/01/'> January 2015 </option>
<option value='https://avdi.codes/2014/11/'> November 2014 </option>
<option value='https://avdi.codes/2014/10/'> October 2014 </option>
<option value='https://avdi.codes/2014/09/'> September 2014 </option>
<option value='https://avdi.codes/2014/08/'> August 2014 </option>
<option value='https://avdi.codes/2014/07/'> July 2014 </option>
<option value='https://avdi.codes/2014/06/'> June 2014 </option>
<option value='https://avdi.codes/2014/05/'> May 2014 </option>
<option value='https://avdi.codes/2014/04/'> April 2014 </option>
<option value='https://avdi.codes/2014/02/'> February 2014 </option>
<option value='https://avdi.codes/2014/01/'> January 2014 </option>
<option value='https://avdi.codes/2013/12/'> December 2013 </option>
<option value='https://avdi.codes/2013/11/'> November 2013 </option>
<option value='https://avdi.codes/2013/10/'> October 2013 </option>
<option value='https://avdi.codes/2013/09/'> September 2013 </option>
<option value='https://avdi.codes/2013/08/'> August 2013 </option>
<option value='https://avdi.codes/2013/07/'> July 2013 </option>
<option value='https://avdi.codes/2013/06/'> June 2013 </option>
<option value='https://avdi.codes/2013/05/'> May 2013 </option>
<option value='https://avdi.codes/2013/04/'> April 2013 </option>
<option value='https://avdi.codes/2013/03/'> March 2013 </option>
<option value='https://avdi.codes/2013/02/'> February 2013 </option>
<option value='https://avdi.codes/2013/01/'> January 2013 </option>
<option value='https://avdi.codes/2012/12/'> December 2012 </option>
<option value='https://avdi.codes/2012/11/'> November 2012 </option>
<option value='https://avdi.codes/2012/10/'> October 2012 </option>
<option value='https://avdi.codes/2012/09/'> September 2012 </option>
<option value='https://avdi.codes/2012/08/'> August 2012 </option>
<option value='https://avdi.codes/2012/07/'> July 2012 </option>
<option value='https://avdi.codes/2012/06/'> June 2012 </option>
<option value='https://avdi.codes/2012/05/'> May 2012 </option>
<option value='https://avdi.codes/2012/04/'> April 2012 </option>
<option value='https://avdi.codes/2012/03/'> March 2012 </option>
<option value='https://avdi.codes/2012/02/'> February 2012 </option>
<option value='https://avdi.codes/2012/01/'> January 2012 </option>
<option value='https://avdi.codes/2011/12/'> December 2011 </option>
<option value='https://avdi.codes/2011/11/'> November 2011 </option>
<option value='https://avdi.codes/2011/10/'> October 2011 </option>
<option value='https://avdi.codes/2011/09/'> September 2011 </option>
<option value='https://avdi.codes/2011/08/'> August 2011 </option>
<option value='https://avdi.codes/2011/07/'> July 2011 </option>
<option value='https://avdi.codes/2011/06/'> June 2011 </option>
<option value='https://avdi.codes/2011/05/'> May 2011 </option>
<option value='https://avdi.codes/2011/04/'> April 2011 </option>
<option value='https://avdi.codes/2011/03/'> March 2011 </option>
<option value='https://avdi.codes/2011/02/'> February 2011 </option>
<option value='https://avdi.codes/2011/01/'> January 2011 </option>
<option value='https://avdi.codes/2010/12/'> December 2010 </option>
<option value='https://avdi.codes/2010/11/'> November 2010 </option>
<option value='https://avdi.codes/2010/09/'> September 2010 </option>
<option value='https://avdi.codes/2010/08/'> August 2010 </option>
<option value='https://avdi.codes/2010/07/'> July 2010 </option>
<option value='https://avdi.codes/2010/06/'> June 2010 </option>
<option value='https://avdi.codes/2010/05/'> May 2010 </option>
<option value='https://avdi.codes/2010/04/'> April 2010 </option>
<option value='https://avdi.codes/2010/03/'> March 2010 </option>
<option value='https://avdi.codes/2010/02/'> February 2010 </option>
<option value='https://avdi.codes/2010/01/'> January 2010 </option>
<option value='https://avdi.codes/2009/12/'> December 2009 </option>
<option value='https://avdi.codes/2009/11/'> November 2009 </option>
<option value='https://avdi.codes/2009/10/'> October 2009 </option>
<option value='https://avdi.codes/2009/08/'> August 2009 </option>
<option value='https://avdi.codes/2009/07/'> July 2009 </option>
<option value='https://avdi.codes/2009/06/'> June 2009 </option>
<option value='https://avdi.codes/2009/05/'> May 2009 </option>
<option value='https://avdi.codes/2009/04/'> April 2009 </option>
<option value='https://avdi.codes/2009/03/'> March 2009 </option>
<option value='https://avdi.codes/2009/02/'> February 2009 </option>
<option value='https://avdi.codes/2009/01/'> January 2009 </option>
<option value='https://avdi.codes/2008/12/'> December 2008 </option>
<option value='https://avdi.codes/2008/11/'> November 2008 </option>
<option value='https://avdi.codes/2008/10/'> October 2008 </option>
<option value='https://avdi.codes/2008/09/'> September 2008 </option>
<option value='https://avdi.codes/2008/08/'> August 2008 </option>
<option value='https://avdi.codes/2008/07/'> July 2008 </option>
<option value='https://avdi.codes/2008/06/'> June 2008 </option>
<option value='https://avdi.codes/2008/05/'> May 2008 </option>
<option value='https://avdi.codes/2008/04/'> April 2008 </option>
<option value='https://avdi.codes/2008/03/'> March 2008 </option>
<option value='https://avdi.codes/2008/02/'> February 2008 </option>
<option value='https://avdi.codes/2008/01/'> January 2008 </option>
<option value='https://avdi.codes/2007/12/'> December 2007 </option>
</select>
<script>
( ( dropdownId ) => {
const dropdown = document.getElementById( dropdownId );
function onSelectChange() {
setTimeout( () => {
if ( 'escape' === dropdown.dataset.lastkey ) {
return;
}
if ( dropdown.value ) {
document.location.href = dropdown.value;
}
}, 250 );
}
function onKeyUp( event ) {
if ( 'Escape' === event.key ) {
dropdown.dataset.lastkey = 'escape';
} else {
delete dropdown.dataset.lastkey;
}
}
function onClick() {
delete dropdown.dataset.lastkey;
}
dropdown.addEventListener( 'keyup', onKeyUp );
dropdown.addEventListener( 'click', onClick );
dropdown.addEventListener( 'change', onSelectChange );
})( "archives-dropdown-3" );
//# sourceURL=WP_Widget_Archives%3A%3Awidget
</script>
</section></aside><!-- #secondary -->
</div><!-- .container -->
</div><!-- #content -->
<footer id="colophon" class="site-footer wp-site-blocks th-font-headings has-primary-dark-background-color has-secondary-base-color">
<div class="alignwide th-my-0">
<div class="footer-widgets th-grid th-gap-base lg:th-grid-cols-4 th-my-medium">
<section id="search-2" class="widget widget_search footer-widget">
<form apbct-form-sign="native_search" role="search" method="get" class="search-form th-flex th-mx-auto th-max-w-base" action="https://avdi.codes/">
<label for="search-form-6aa4994396d06" class="th-block th-w-full">
<span class="screen-reader-text">Search for:</span>
<input type="search" id="search-form-6aa4994396d06" class="search-field th-block th-w-full"
placeholder="Search this website&hellip;"
value="" name="s"
title="Search for:" />
</label>
<button type="submit" class="search-submit th-ml-xs">
Search </button>
<input
class="apbct_special_field apbct_email_id__search_form"
name="apbct__email_id__search_form"
aria-label="apbct__label_id__search_form"
type="text" size="30" maxlength="200" autocomplete="off"
value=""
/><input
id="apbct_submit_id__search_form"
class="apbct_special_field apbct__email_id__search_form"
name="apbct__label_id__search_form"
aria-label="apbct_submit_name__search_form"
type="submit"
size="30"
maxlength="200"
value="55184"
/></form><!-- .search-form -->
</section>
<section id="recent-posts-2" class="widget widget_recent_entries footer-widget">
<h2 class="widget-title has-secondary-light-color has-normal-font-size th-uppercase th-tracking-wider">Recent Posts</h2>
<ul>
<li>
<a href="https://avdi.codes/output-record-separator-in-ruby/">Output Field Separator in Ruby</a>
</li>
<li>
<a href="https://avdi.codes/is-successful-agentic-coding-a-delusion/">Is Successful Agentic Coding a Delusion?</a>
</li>
<li>
<a href="https://avdi.codes/you-probably-dont-need-git-worktrees/">You probably don&#8217;t need git worktrees</a>
</li>
<li>
<a href="https://avdi.codes/developer-tooling-is-a-lousy-business/">Developer Tooling is a Lousy Business</a>
</li>
<li>
<a href="https://avdi.codes/keychain/">I made a keychain</a>
</li>
</ul>
</section><section id="rss-4" class="widget widget_rss footer-widget"><h2 class="widget-title has-secondary-light-color has-normal-font-size th-uppercase th-tracking-wider"><a class="rsswidget rss-widget-feed" href="https://anchor.fm/s/a7898d0/podcast/rss"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://avdi.codes/wp-includes/images/rss.png" alt="RSS feed: Podcast: The Cache Flush" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://avdi.codes/series/the-cache-flush/">Podcast: The Cache Flush</a></h2><ul><li><a class='rsswidget' href='https://avdi.codes/podcast/the-cache-flush-episode-13-the-grammar-of-systems/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-cache-flush-episode-13-the-grammar-of-systems'>The Cache Flush Episode 13: The Grammar of Systems</a></li><li><a class='rsswidget' href='https://avdi.codes/podcast/the-cache-flush-012-computer-power-and-human-reason/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-cache-flush-012-computer-power-and-human-reason'>The Cache Flush 012: Computer Power and Human Reason</a></li><li><a class='rsswidget' href='https://avdi.codes/podcast/the-cache-flush-episode-11-the-closed-world/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-cache-flush-episode-11-the-closed-world'>The Cache Flush Episode 11: The Closed World</a></li><li><a class='rsswidget' href='https://avdi.codes/podcast/the-cache-flush-episode-010-making-errors-making-sense-making-use/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-cache-flush-episode-010-making-errors-making-sense-making-use'>The Cache Flush Episode 010: Making Errors, Making Sense, Making Use</a></li><li><a class='rsswidget' href='https://avdi.codes/podcast/009-sponsorship-specifications/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=009-sponsorship-specifications'>009 Sponsorship Specifications</a></li></ul></section><section id="nav_menu-5" class="widget widget_nav_menu footer-widget"><div class="menu-main-container"><ul id="menu-main-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-27"><a href="https://avdi.codes">Home</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-13047"><a href="https://avdi.codes">Blog</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13568"><a href="https://avdi.codes/banana-stand/">The Banana Stand Articles</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-12711"><a href="https://graceful.dev" title="Courses and more">Graceful.Dev</a></li>
<li class="menu-item menu-item-type-taxonomy menu-item-object-series menu-item-13570"><a href="https://avdi.codes/series/the-cache-flush/">The Cache Flush</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5196"><a href="https://avdi.codes/about/">Stuff I Do</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5197"><a href="https://graceful.dev">Graceful.Dev</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5203"><a href="https://avdi.codes/podcasts/">Podcasts</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-taxonomy menu-item-object-series menu-item-13569"><a href="https://avdi.codes/series/the-cache-flush/">The Cache Flush</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13412"><a href="https://avdi.codes/coaching/">Coaching &#038; Counsel</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13458"><a href="https://avdi.codes/workshops/">Workshops</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5198"><a href="https://avdi.codes/consulting/">Consulting</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5199"><a href="https://avdi.codes/public-appearances/">Speaking</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5200"><a href="https://avdi.codes/all-courses/">Courses</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5201"><a href="https://avdi.codes/newsletters/">Newsletters</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5202"><a href="https://avdi.codes/books/">Books</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5204"><a href="https://www.patreon.com/avdigrimm">Patreon</a></li>
</ul>
</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13741"><a target="_blank" href="https://avdi.codes/account/">Account</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5187"><a href="https://avdi.codes/about/">About</a>
<ul class="sub-menu">
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12312"><a href="https://avdi.codes/about/">About Avdi</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12313"><a href="https://avdi.codes/hire-me-2/">Hire Me</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-70"><a href="https://avdi.codes/contact/">Contact</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47259"><a href="https://avdi.codes/privacy-policy/">Privacy Policy</a></li>
</ul>
</li>
</ul></div></section><section id="categories-2" class="widget widget_categories footer-widget"><h2 class="widget-title has-secondary-light-color has-normal-font-size th-uppercase th-tracking-wider">Categories</h2>
<ul>
<li class="cat-item cat-item-666"><a href="https://avdi.codes/category/serializations/nocode/">#NOCODE</a>
</li>
<li class="cat-item cat-item-18"><a href="https://avdi.codes/category/announcements/">Announcements</a>
</li>
<li class="cat-item cat-item-790"><a href="https://avdi.codes/category/appreciation/">Appreciation</a>
</li>
<li class="cat-item cat-item-106"><a href="https://avdi.codes/category/articles/">Articles</a>
</li>
<li class="cat-item cat-item-40"><a href="https://avdi.codes/category/collaborations/">Collaborations</a>
</li>
<li class="cat-item cat-item-655"><a href="https://avdi.codes/category/event-log/dev-journal/">Dev Journal</a>
</li>
<li class="cat-item cat-item-640"><a href="https://avdi.codes/category/event-log/">Event Log</a>
</li>
<li class="cat-item cat-item-73"><a href="https://avdi.codes/category/fragments/">Fragments</a>
</li>
<li class="cat-item cat-item-183"><a href="https://avdi.codes/category/howto/">How-to</a>
</li>
<li class="cat-item cat-item-71"><a href="https://avdi.codes/category/humor-2/">Humor</a>
</li>
<li class="cat-item cat-item-38"><a href="https://avdi.codes/category/announcements/moom/">MOOM Course Updates</a>
</li>
<li class="cat-item cat-item-4813"><a href="https://avdi.codes/category/question/">Question</a>
</li>
<li class="cat-item cat-item-792"><a href="https://avdi.codes/category/rants/">Rants</a>
</li>
<li class="cat-item cat-item-368"><a href="https://avdi.codes/category/resources/">Resources</a>
</li>
<li class="cat-item cat-item-672"><a href="https://avdi.codes/category/videos/rubytapas-freebies/">RubyTapas Freebies</a>
</li>
<li class="cat-item cat-item-665"><a href="https://avdi.codes/category/serializations/">Serializations</a>
</li>
<li class="cat-item cat-item-648"><a href="https://avdi.codes/category/sigavdi/">SIGAVDI</a>
</li>
<li class="cat-item cat-item-639"><a href="https://avdi.codes/category/skills/">Skills</a>
</li>
<li class="cat-item cat-item-447"><a href="https://avdi.codes/category/technologies/">Technologies</a>
</li>
<li class="cat-item cat-item-679"><a href="https://avdi.codes/category/theres-always-money-in-the-banana-stand/">There&#039;s Always Money in the Banana Stand</a>
</li>
<li class="cat-item cat-item-1"><a href="https://avdi.codes/category/uncategorized/">Uncategorized</a>
</li>
<li class="cat-item cat-item-60"><a href="https://avdi.codes/category/videos/">Videos</a>
</li>
</ul>
</section><section id="nav_menu-3" class="widget widget_nav_menu footer-widget"><div class="menu-social-container"><ul id="menu-social-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5123"><a href="https://github.com/avdi">Github</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57"><a href="https://twitter.com/avdi">Twitter</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="https://www.facebook.com/avdi.grimm.public">Facebook</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="https://www.linkedin.com/in/avdigrimm/">LinkedIn</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5124"><a href="https://www.youtube.com/channel/UCM-D8NDdOj9c4jvg7MtGNjg">YouTube</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5175"><a href="https://www.patreon.com/avdigrimm">Patreon</a></li>
</ul></div></section><section id="meta-2" class="widget widget_meta footer-widget"><h2 class="widget-title has-secondary-light-color has-normal-font-size th-uppercase th-tracking-wider">Meta</h2>
<ul>
<li><a href="https://avdi.codes/wp-login.php">Log in</a></li>
<li><a href="https://avdi.codes/feed/">Entries feed</a></li>
<li><a href="https://avdi.codes/comments/feed/">Comments feed</a></li>
<li><a href="https://wordpress.org/">WordPress.org</a></li>
</ul>
</section><section id="block-17" class="widget widget_block footer-widget"><div
class="activitypub-follow-me-block-wrapper wp-block-activitypub-follow-me" id="activitypub-follow-me-block-3" data-wp-interactive="activitypub/follow-me" data-wp-init="callbacks.initButtonStyles" data-wp-context='{"backgroundColor":"var(--wp--preset--color--white)","blockId":"activitypub-follow-me-block-3","buttonStyle":[],"copyButtonText":"Copy","errorMessage":"","isError":false,"isLoading":false,"modal":{"isOpen":false},"remoteProfile":"","userId":1,"webfinger":"@avdi@avdi.codes"}'>
<div class="activitypub-profile p-author h-card">
<div class="activitypub-profile__body">
<img
class="activitypub-profile__avatar u-photo"
src="https://secure.gravatar.com/avatar/018496452ddefc6bd0b548a326c09cc1c5ddd24d1acc5a9cbe1fe7b1599ad4b7?s=120&#038;d=mm&#038;r=g"
alt="Avdi Grimm"
/>
<div class="activitypub-profile__content">
<div class="activitypub-profile__info">
<div class="activitypub-profile__name p-name">Avdi Grimm</div>
<div class="activitypub-profile__handle p-nickname p-x-webfinger" data-wp-text="context.webfinger">@avdi@avdi.codes</div>
</div>
<div class="wp-block-button"><a aria-expanded="false" aria-controls="activitypub-follow-me-block-3-modal-title" aria-haspopup="dialog" aria-label="Follow me on the Fediverse" data-wp-bind--aria-expanded="context.modal.isOpen" data-wp-on--click="actions.toggleModal" data-wp-on--keydown="actions.onKeydown" role="button" tabindex="0" class="wp-element-button wp-block-button__link">Follow</a></div>
<div class="activitypub-profile__bio p-note">
<p>Head gardener at Graceful.Dev; Author, "Exceptional Ruby" and "Confident Ruby"; coach, consultant, and code cleric.</p>
</div>
<div class="activitypub-profile__stats">
<div>
<strong>749</strong> posts </div>
<div>
<strong>1,951</strong> followers </div>
</div>
</div>
</div>
</div>
<div
class="activitypub-modal__overlay"
data-wp-bind--hidden="!context.modal.isOpen"
data-wp-watch="callbacks.handleModalEffects"
role="dialog"
aria-modal="true"
hidden
>
<div class="activitypub-modal__frame">
<div class="activitypub-modal__header">
<h2
class="activitypub-modal__title"
id="activitypub-follow-me-block-3-modal-title"
>Follow Avdi Grimm</h2>
<button
type="button"
class="activitypub-modal__close wp-element-button"
data-wp-on--click="actions.closeModal"
aria-label="Close dialog"
>
<svg fill="currentColor" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path>
</svg>
</button>
</div>
<div class="activitypub-modal__content">
<div class="activitypub-dialog__section">
<h4>My Profile</h4>
<div class="activitypub-dialog__description">
Paste my profile into the search field of your favorite open social app or platform. </div>
<div class="activitypub-dialog__button-group">
<label for="activitypub-follow-me-block-3-profile-handle" class="screen-reader-text">
My Fediverse handle </label>
<input
aria-readonly="true"
class="wp-block-search__input"
id="activitypub-follow-me-block-3-profile-handle"
readonly
tabindex="-1"
type="text"
value="@avdi@avdi.codes"
/>
<button
aria-label="Copy handle to clipboard"
class="wp-element-button"
data-wp-on--click="actions.copyToClipboard"
type="button"
>
<span data-wp-text="context.copyButtonText">Copy</span>
</button>
</div>
</div>
<div class="activitypub-dialog__section">
<h4>Your Profile</h4>
<div class="activitypub-dialog__description">
Or, if you know your own profile, we can start things that way! <details class="activitypub-dialog__help">
<summary>Why do I need to enter my profile?</summary>
<p>
This site is part of the ⁂ open social web, a network of interconnected social platforms (like Mastodon, Pixelfed, Friendica, and others). Unlike centralized social media, your account lives on a platform of your choice, and you can interact with people across different platforms. </p>
<p>
By entering your profile, we can send you to your account where you can complete this action. </p>
</details>
</div>
<div class="activitypub-dialog__button-group">
<label for="activitypub-follow-me-block-3-remote-profile" class="screen-reader-text">
Your Fediverse profile </label>
<input aria-invalid="false" value=""
aria-describedby="activitypub-follow-me-block-3-remote-profile-error"
class="wp-block-search__input"
data-wp-bind--aria-invalid="context.isError"
data-wp-bind--value="context.remoteProfile"
data-wp-on--input="actions.updateRemoteProfile"
data-wp-on--keydown="actions.handleKeyDown"
id="activitypub-follow-me-block-3-remote-profile"
placeholder="@username@example.com"
type="text"
/>
<button
aria-label="Follow"
class="wp-element-button"
data-wp-bind--disabled="context.isLoading"
data-wp-on--click="actions.submitRemoteProfile"
type="button"
>
<span data-wp-bind--hidden="context.isLoading">Follow</span>
<span hidden data-wp-bind--hidden="!context.isLoading">Loading&hellip;</span>
</button>
</div>
<div
class="activitypub-dialog__error"
data-wp-text="context.errorMessage"
id="activitypub-follow-me-block-3-remote-profile-error"
role="alert"
></div>
</div>
</div>
</div>
</div>
</div>
</section> </div><!-- .footer-widgets -->
<div class="site-footer-bottom has-primary-base-background-color has-tiny-font-size th-links-inherit th-flex sm:th-flex-no-wrap th-flex-wrap th-py-small th-px-base th-uppercase">
<div class="site-info sm:th-text-left th-text-center">
<a href="http://wordpress.org/">Proudly powered by WordPress</a>
<span class="sep"> | </span>
Theme: Hermes by <a href="https://themesharbor.com/" rel="nofollow">Themes Harbor</a>.
</div><!-- .site-info -->
<div class="gotop-link sm:th-ml-auto sm:th-mr-0 sm:th-mt-0 th-mt-base th-mx-auto">
<button id="gotop" class="gotop clean-button" type="button">
Back to top </button>
</div><!-- .pull-right -->
</div><!-- .site-footer-bottom -->
</div><!-- .container -->
</footer><!-- #colophon -->
</div><!-- #page -->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/avdeez/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script type='text/javascript'>( $ => {
/**
* Displays toast message from storage, it is used when the user is redirected after login
*/
if ( window.sessionStorage ) {
$( window ).on( 'tcb_after_dom_ready', () => {
const message = sessionStorage.getItem( 'tcb_toast_message' );
if ( message ) {
tcbToast( sessionStorage.getItem( 'tcb_toast_message' ), false );
sessionStorage.removeItem( 'tcb_toast_message' );
}
} );
}
/**
* Displays toast message
*
* @param {string} message - message to display
* @param {Boolean} error - whether the message is an error or not
* @param {Function} callback - callback function to be called after the message is closed
*/
function tcbToast( message, error, callback ) {
/* Also allow "message" objects */
if ( typeof message !== 'string' ) {
message = message.message || message.error || message.success;
}
if ( ! error ) {
error = false;
}
TCB_Front.notificationElement.toggle( message, error ? 'error' : 'success', callback );
}
} )( typeof ThriveGlobal === 'undefined' ? jQuery : ThriveGlobal.$j );
</script><script id="wp-importmap" type="importmap">
{"imports":{"@wordpress/interactivity":"https://avdi.codes/wp-includes/js/dist/script-modules/interactivity/index.min.js?ver=efaa5193bbad9c60ffd1"}}
</script>
<script data-wp-router-options="{&quot;loadOnClientNavigation&quot;:true}" fetchpriority="low" id="activitypub-follow-me-view-script-module-js-module" src="https://avdi.codes/wp-content/plugins/activitypub/build/follow-me/view.js?ver=d0bd5d2df4ce3ff93b99" type="module"></script>
<link rel="modulepreload" href="https://avdi.codes/wp-includes/js/dist/script-modules/interactivity/index.min.js?ver=efaa5193bbad9c60ffd1" id="@wordpress/interactivity-js-modulepreload" fetchpriority="low">
<script id="wp-script-module-data-@wordpress/interactivity" type="application/json">
{"config":{"activitypub/follow-me":{"namespace":"activitypub/1.0","i18n":{"copy":"Copy","copied":"Copied!","emptyProfileError":"Please enter a profile URL or handle.","genericError":"An error occurred. Please try again.","invalidProfileError":"Please enter a valid profile URL or handle."}}}}
</script>
<style type="text/css" id="tcb-style-base-tve_notifications-12897" onLoad="typeof window.lightspeedOptimizeStylesheet === 'function' && window.lightspeedOptimizeStylesheet()" class="tcb-lightspeed-style">.tcb-icon{display:inline-block;width:1em;height:1em;line-height:1em;vertical-align:middle;stroke-width:0;stroke:currentcolor;fill:currentcolor;box-sizing:content-box;transform:rotate(var(--tcb-icon-rotation-angle,0deg));}svg.tcb-icon path:not([fill="none"]),symbol[id^="tcb-icon-"] path:not([fill="none"]){transition:none 0s ease 0s;fill:inherit !important;stroke:inherit !important;}.thrv_icon{text-align:center;}.notifications-content-wrapper{position:fixed;opacity:1;}.notifications-content-wrapper.thrv_wrapper{padding:0px;margin:0px;}.notifications-content-wrapper.tcb-permanently-hidden{display:none !important;}.notifications-content-wrapper .notifications-content{display:none;}.notifications-content-wrapper:not(.notification-edit-mode){z-index:9999993;}.notifications-content-wrapper[data-position*="top"]{top:50px;}.notifications-content-wrapper[data-position*="middle"]{top:50%;transform:translateY(-50%);}.notifications-content-wrapper[data-position*="bottom"]{bottom:50px;}.notifications-content-wrapper[data-position*="left"]{left:50px;}.notifications-content-wrapper[data-position*="center"]{left:50%;transform:translateX(-50%);}.notifications-content-wrapper[data-position*="right"]{right:50px;}.notifications-content-wrapper[data-position="middle-center"]{transform:translate(-50%,-50%);}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode),.notifications-content-wrapper.tcb-animated.editor-preview{transition:top 0.7s ease 0s,bottom 0.7s ease 0s,left 0.7s ease 0s,right 0.7s ease 0s,opacity 0.7s ease-in-out 0s;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="bottom"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="bottom"]{bottom:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="top"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="down"][data-position*="middle"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="top"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="down"][data-position*="middle"]{top:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="bottom"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="bottom"]{bottom:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="top"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="up"][data-position*="middle"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="top"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="up"][data-position*="middle"]{top:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="right"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="right"]{right:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="left"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="left"][data-position*="center"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="left"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="left"][data-position*="center"]{left:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="right"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="right"]{right:-100%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="left"],.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation="right"][data-position*="center"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="left"],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation="right"][data-position*="center"]{left:150%;}.notifications-content-wrapper.tcb-animated:not(.notification-edit-mode)[data-animation],.notifications-content-wrapper.tcb-animated.editor-preview[data-animation]{opacity:0;}.notifications-content-wrapper[data-state="success"] .notification-success{display:block;}.notifications-content-wrapper[data-state="warning"] .notification-warning{display:block;}.notifications-content-wrapper[data-state="error"] .notification-error{display:block;}.notifications-content{overflow:visible !important;}.notifications-content .tcb-col{-webkit-box-pack:center !important;justify-content:center !important;}.notifications-wrapper .notifications-info{padding:10px;}.notifications-wrapper .notifications-info .info-text{font-size:14px;margin-left:auto;text-align:right;color:rgb(25,31,40);font-family:Roboto;font-weight:500;}.tcb-flex-row{display:flex;flex-flow:row nowrap;-webkit-box-align:stretch;align-items:stretch;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-box-pack:justify;justify-content:space-between;margin-top:0px;margin-left:-15px;padding-bottom:15px;padding-top:15px;}.tcb-flex-col{-webkit-box-flex:1;flex:1 1 auto;padding-top:0px;padding-left:15px;}.tcb-flex-row .tcb-flex-col{box-sizing:border-box;}.tcb-col{height:100%;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;position:relative;}.tcb-flex-row .tcb-col{box-sizing:border-box;}html{text-rendering:auto !important;}html body{text-rendering:auto !important;}.thrv_wrapper{margin-top:20px;margin-bottom:20px;padding:1px;}.thrv_wrapper div{box-sizing:content-box;}.thrv_wrapper.thrv-columns{margin-top:10px;margin-bottom:10px;padding:0px;}p{font-size:1em;}.thrv_icon{line-height:0;}.thrv_icon.tcb-icon-display{display:table;}.thrv_icon.thrv_wrapper{margin-left:auto;margin-right:auto;padding:0px;}@media (max-width:767px){html{overflow-x:hidden !important;}html,body{max-width:100vw !important;}.notifications-content-wrapper{transform:translateX(-50%);left:50% !important;right:unset !important;}.notifications-content-wrapper[data-position*="middle"]{transform:translate(-50%,-50%);}.notifications-content-wrapper[data-position*="top"]{top:0px;}.notifications-content-wrapper[data-position*="bottom"]{bottom:0px;}.tcb-flex-row{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;}.tcb-flex-row.v-2{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;}}@media (max-width:1023px) and (min-width:768px){.notifications-content-wrapper[data-position*="top"]{top:20px;}.notifications-content-wrapper[data-position*="bottom"]{bottom:20px;}.tcb-flex-row.tcb-medium-no-wrap{flex-wrap:nowrap !important;}.tcb-flex-row.tcb-medium-no-wrap > .tcb-flex-col{-webkit-box-flex:1 !important;flex:1 1 auto !important;}}@media screen and (-ms-high-contrast:active),not all{.tcb-flex-col{width:100%;}.tcb-col{display:block;}}@media screen and (max-device-width:480px){body{text-size-adjust:none;}}</style><style type="text/css" id="tve_notification_styles">@media (min-width: 300px){[data-css="tve-u-17d90a52a26"] { box-shadow: rgba(0, 0, 0, 0.25) 0px 4px 9px 0px; width: 501px; min-height: 20px; border-radius: 2px; border-width: 2px; border-style: solid; border-color: var(--notification-color); border-image: initial; background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; }[data-css="tve-u-17d90a52a28"] { box-shadow: rgba(0, 0, 0, 0.25) 0px 4px 9px 0px; width: 501px; min-height: 20px; border-radius: 2px; border-width: 2px; border-style: solid; border-color: var(--notification-color); border-image: initial; background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; }[data-css="tve-u-17d90a52a29"] { box-shadow: rgba(0, 0, 0, 0.25) 0px 4px 9px 0px; width: 501px; min-height: 20px; border-radius: 2px; border-width: 2px; border-style: solid; border-color: var(--notification-color); border-image: initial; background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; }.notification-success [data-css="tve-u-17d90a52a2a"] { margin: 0px !important; }.notification-success [data-css="tve-u-17d90a52a2e"] { padding: 0px !important; margin-left: 0px; }.notification-success [data-css="tve-u-17d90a52a31"] { padding-left: 0px; max-width: 12%; }.notification-success [data-css="tve-u-17d90a52a33"] { padding-left: 0px; }.notification-success [data-css="tve-u-17d90a52a38"] { border: none; border-radius: 0px; width: 27px; height: 27px; --tve-icon-size:27px; font-size: 27px; margin: 0px !important; color: rgb(255, 255, 255); --tcb-local-color-icon:var(--notification-color); --tcb-local-color-var:var(--notification-color); background-image: linear-gradient(var(--tcb-local-color-icon), var(--tcb-local-color-icon)); padding: 16px !important; }[data-css="tve-u-17d90a52a3c"] { text-align: center; font-size: 16px; color: rgb(25, 31, 40); margin: 0px; }[data-css="tve-u-17d90a52a3e"] { text-align: center; font-size: 16px; color: rgb(25, 31, 40); margin: 0px; }[data-css="tve-u-17d90a52a3f"] { text-align: center; font-size: 16px; color: rgb(25, 31, 40); margin: 0px; }.notification-warning [data-css="tve-u-17d90a52a2c"] { margin: 0px !important; }.notification-warning [data-css="tve-u-17d90a52a2f"] { padding: 0px !important; margin-left: 0px; }.notification-warning [data-css="tve-u-17d90a52a34"] { padding-left: 0px; max-width: 12%; }.notification-warning [data-css="tve-u-17d90a52a35"] { padding-left: 0px; }.notification-warning [data-css="tve-u-17d90a52a3a"] { border: none; border-radius: 0px; width: 27px; height: 27px; --tve-icon-size:27px; font-size: 27px; margin: 0px !important; color: rgb(255, 255, 255); --tcb-local-color-icon:var(--notification-color); --tcb-local-color-var:var(--notification-color); background-image: linear-gradient(var(--tcb-local-color-icon), var(--tcb-local-color-icon)); padding: 16px !important; }.notification-error [data-css="tve-u-17d90a52a2d"] { margin: 0px !important; }.notification-error [data-css="tve-u-17d90a52a30"] { padding: 0px !important; margin-left: 0px; }.notification-error [data-css="tve-u-17d90a52a36"] { padding-left: 0px; max-width: 12%; }.notification-error [data-css="tve-u-17d90a52a37"] { padding-left: 0px; }.notification-error [data-css="tve-u-17d90a52a3b"] { border: none; border-radius: 0px; width: 27px; height: 27px; --tve-icon-size:27px; font-size: 27px; margin: 0px !important; color: rgb(255, 255, 255); --tcb-local-color-icon:var(--notification-color); --tcb-local-color-var:var(--notification-color); background-image: linear-gradient(var(--tcb-local-color-icon), var(--tcb-local-color-icon)); padding: 16px !important; }}@media (max-width: 767px){[data-css="tve-u-17d90a52a26"] { width: unset; min-width: 360px; background-color: var(--notification-color) !important; border: none; }[data-css="tve-u-17d90a52a28"] { width: unset; min-width: 360px; background-color: var(--notification-color) !important; border: none; }[data-css="tve-u-17d90a52a29"] { width: unset; min-width: 360px; background-color: var(--notification-color) !important; border: none; }[data-css="tve-u-17d90a52a3c"] { min-width: auto; color: rgb(255, 255, 255); text-align: left; }[data-css="tve-u-17d90a52a3e"] { min-width: auto; color: rgb(255, 255, 255); text-align: left; }[data-css="tve-u-17d90a52a3f"] { min-width: auto; color: rgb(255, 255, 255); text-align: left; }.notification-success [data-css="tve-u-17d90a52a38"] { width: 24px; height: 24px; --tve-icon-size:24px; font-size: 24px; }.notification-success [data-css="tve-u-17d90a52a2a"] { width: 65%; margin-left: auto !important; margin-right: auto !important; float: none; }.notification-success [data-css="tve-u-17d90a52a31"] { max-width: 27%; }.notification-warning [data-css="tve-u-17d90a52a3a"] { width: 24px; height: 24px; --tve-icon-size:24px; font-size: 24px; }.notification-warning [data-css="tve-u-17d90a52a2c"] { width: 65%; margin-left: auto !important; margin-right: auto !important; float: none; }.notification-warning [data-css="tve-u-17d90a52a34"] { max-width: 27%; }.notification-error [data-css="tve-u-17d90a52a3b"] { width: 24px; height: 24px; --tve-icon-size:24px; font-size: 24px; }.notification-error [data-css="tve-u-17d90a52a2d"] { width: 65%; margin-left: auto !important; margin-right: auto !important; float: none; }.notification-error [data-css="tve-u-17d90a52a36"] { max-width: 27%; }}</style>
<div class="tvd-toast tve-fe-message" style="display: none">
<div class="tve-toast-message tve-success-message">
<div class="tve-toast-icon-container">
<span class="tve_tick thrv-svg-icon"></span>
</div>
<div class="tve-toast-message-container"></div>
</div>
</div><script type="text/javascript">
/* MonsterInsights Scroll Tracking */
if ( typeof(jQuery) !== 'undefined' ) {
jQuery( document ).ready(function(){
function monsterinsights_scroll_tracking_load() {
if ( ( typeof(__gaTracker) !== 'undefined' && __gaTracker && __gaTracker.hasOwnProperty( "loaded" ) && __gaTracker.loaded == true ) || ( typeof(__gtagTracker) !== 'undefined' && __gtagTracker ) ) {
(function(factory) {
factory(jQuery);
}(function($) {
/* Scroll Depth */
"use strict";
var defaults = {
percentage: true
};
var $window = $(window),
cache = [],
scrollEventBound = false,
lastPixelDepth = 0;
/*
* Plugin
*/
$.scrollDepth = function(options) {
var startTime = +new Date();
options = $.extend({}, defaults, options);
/*
* Functions
*/
function sendEvent(action, label, scrollDistance, timing) {
if ( 'undefined' === typeof MonsterInsightsObject || 'undefined' === typeof MonsterInsightsObject.sendEvent ) {
return;
}
var paramName = action.toLowerCase();
var fieldsArray = {
send_to: 'G-J6TJ9WX3NW',
non_interaction: true
};
fieldsArray[paramName] = label;
if (arguments.length > 3) {
fieldsArray.scroll_timing = timing
MonsterInsightsObject.sendEvent('event', 'scroll_depth', fieldsArray);
} else {
MonsterInsightsObject.sendEvent('event', 'scroll_depth', fieldsArray);
}
}
function calculateMarks(docHeight) {
return {
'25%' : parseInt(docHeight * 0.25, 10),
'50%' : parseInt(docHeight * 0.50, 10),
'75%' : parseInt(docHeight * 0.75, 10),
/* Cushion to trigger 100% event in iOS */
'100%': docHeight - 5
};
}
function checkMarks(marks, scrollDistance, timing) {
/* Check each active mark */
$.each(marks, function(key, val) {
if ( $.inArray(key, cache) === -1 && scrollDistance >= val ) {
sendEvent('Percentage', key, scrollDistance, timing);
cache.push(key);
}
});
}
function rounded(scrollDistance) {
/* Returns String */
return (Math.floor(scrollDistance/250) * 250).toString();
}
function init() {
bindScrollDepth();
}
/*
* Public Methods
*/
/* Reset Scroll Depth with the originally initialized options */
$.scrollDepth.reset = function() {
cache = [];
lastPixelDepth = 0;
$window.off('scroll.scrollDepth');
bindScrollDepth();
};
/* Add DOM elements to be tracked */
$.scrollDepth.addElements = function(elems) {
if (typeof elems == "undefined" || !$.isArray(elems)) {
return;
}
$.merge(options.elements, elems);
/* If scroll event has been unbound from window, rebind */
if (!scrollEventBound) {
bindScrollDepth();
}
};
/* Remove DOM elements currently tracked */
$.scrollDepth.removeElements = function(elems) {
if (typeof elems == "undefined" || !$.isArray(elems)) {
return;
}
$.each(elems, function(index, elem) {
var inElementsArray = $.inArray(elem, options.elements);
var inCacheArray = $.inArray(elem, cache);
if (inElementsArray != -1) {
options.elements.splice(inElementsArray, 1);
}
if (inCacheArray != -1) {
cache.splice(inCacheArray, 1);
}
});
};
/*
* Throttle function borrowed from:
* Underscore.js 1.5.2
* https://underscorejs.org
* (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
* Underscore may be freely distributed under the MIT license.
*/
function throttle(func, wait) {
var context, args, result;
var timeout = null;
var previous = 0;
var later = function() {
previous = new Date;
timeout = null;
result = func.apply(context, args);
};
return function() {
var now = new Date;
if (!previous) previous = now;
var remaining = wait - (now - previous);
context = this;
args = arguments;
if (remaining <= 0) {
clearTimeout(timeout);
timeout = null;
previous = now;
result = func.apply(context, args);
} else if (!timeout) {
timeout = setTimeout(later, remaining);
}
return result;
};
}
/*
* Scroll Event
*/
function bindScrollDepth() {
scrollEventBound = true;
$window.on('scroll.scrollDepth', throttle(function() {
/*
* We calculate document and window height on each scroll event to
* account for dynamic DOM changes.
*/
var docHeight = $(document).height(),
winHeight = window.innerHeight ? window.innerHeight : $window.height(),
scrollDistance = $window.scrollTop() + winHeight,
/* Recalculate percentage marks */
marks = calculateMarks(docHeight),
/* Timing */
timing = +new Date - startTime;
checkMarks(marks, scrollDistance, timing);
}, 500));
}
init();
};
/* UMD export */
return $.scrollDepth;
}));
jQuery.scrollDepth();
} else {
setTimeout(monsterinsights_scroll_tracking_load, 200);
}
}
monsterinsights_scroll_tracking_load();
});
}
/* End MonsterInsights Scroll Tracking */
/* MonsterInsights Conversion Event */
jQuery(document).ready(function() {
jQuery('a[data-mi-conversion-event]')
.off('click.monsterinsightsConversion')
.on('click.monsterinsightsConversion', function() {
if ( typeof(__gtagTracker) !== 'undefined' && __gtagTracker ) {
var $link = jQuery(this);
var eventName = $link.attr('data-mi-event-name');
if ( typeof eventName === 'undefined' || ! eventName ) {
// Fallback to first word of the <a> tag, lowercase, strip html
var text = $link.text().trim();
text = text.replace(/(<([^>]+)>)/gi, '').toLowerCase();
var firstWord = text.split(/\s+/)[0] || '';
if ( firstWord ) {
eventName = 'click-' + firstWord;
} else {
eventName = $link.parent().hasClass('wp-block-image') ? 'image-click' : 'button-click';
}
}
__gtagTracker('event', 'mi-' + eventName);
}
});
});
/* End MonsterInsights Conversion Event */
</script><script type="text/javascript">var tcb_current_post_lists=JSON.parse('[]'); var tcb_post_lists=tcb_post_lists?[...tcb_post_lists,...tcb_current_post_lists]:tcb_current_post_lists;</script><script id="prismatic-highlight-js" src="https://avdi.codes/wp-content/plugins/prismatic/lib/highlight/js/highlight-core.js?ver=3.7.5"></script>
<script id="prismatic-highlight-js-after">
hljs.initHighlightingOnLoad();
//# sourceURL=prismatic-highlight-js-after
</script>
<script id="tve_leads_frontend-js" src="//avdi.codes/wp-content/plugins/thrive-leads/js/frontend.min.js?ver=10.9.3.3"></script>
<script id="tve_frontend_lead-generation-js" src="https://avdi.codes/wp-content/plugins/thrive-visual-editor/editor/js/dist/modules/lead-generation.min.js?v=11.0&#038;ver=11.0"></script>
<script id="tve_frontend_dropdown-js" src="https://avdi.codes/wp-content/plugins/thrive-visual-editor/editor/js/dist/modules/dropdown.min.js?v=11.0&#038;ver=11.0"></script>
<script id="wpf-leadsource-tracking-js" src="https://avdi.codes/wp-content/plugins/wp-fusion/assets/js/wpf-leadsource-tracking.js?ver=3.47.14"></script>
<script id="avdeez-singular-script-js" src="https://avdi.codes/wp-content/themes/avdeez/assets/js/public/pages/singular.js?ver=3.0.0"></script>
<script id="avdeez-script-js-extra">
var screenReaderText = {"expand":"Expand child menu","collapse":"Collapse child menu"};
//# sourceURL=avdeez-script-js-extra
</script>
<script id="avdeez-script-js" src="https://avdi.codes/wp-content/themes/avdeez/assets/js/public/avdeez.js?ver=3.4.0"></script>
<script id="tve-dash-frontend-js-extra">
var tve_dash_front = {"ajaxurl":"https://avdi.codes/wp-admin/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":{"api":"recaptcha","site_key":"6LdgQvYUAAAAABn8r-zamMQaKsk8zdfWJmkuhgSO","action":"tve_dash_api_handle_save"},"turnstile":[],"post_id":"12075"};
//# sourceURL=tve-dash-frontend-js-extra
</script>
<script id="tve-dash-frontend-js" src="https://avdi.codes/wp-content/plugins/thrive-visual-editor/thrive-dashboard/js/dist/frontend.min.js?ver=11.0"></script>
<script id="wp-private-apis-js" src="https://avdi.codes/wp-includes/js/dist/private-apis.min.js?ver=eb85f28c4c729bb4f002"></script>
<script id="wp-url-js" src="https://avdi.codes/wp-includes/js/dist/url.min.js?ver=7b0de086d4ae11d55704"></script>
<script id="wp-api-fetch-js" src="https://avdi.codes/wp-includes/js/dist/api-fetch.min.js?ver=6f2a4faeee3c722b1e57"></script>
<script id="wp-api-fetch-js-after">
wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://avdi.codes/wp-json/" ) );
wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "43d5701a0e" );
wp.apiFetch.use( wp.apiFetch.nonceMiddleware );
wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware );
wp.apiFetch.nonceEndpoint = "https://avdi.codes/wp-admin/admin-ajax.php?action=rest-nonce";
//# sourceURL=wp-api-fetch-js-after
</script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://avdi.codes/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
</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=https://avdi.codes/wp-includes/js/wp-emoji-loader.min.js
</script>
<script type="text/javascript">/*<![CDATA[*/if ( !window.TL_Const ) {var TL_Const={"security":"4fa3476e65","ajax_url":"https:\/\/avdi.codes\/wp-admin\/admin-ajax.php","forms":{"post_footer":{"_key":"24","form_name":"SIGAVDI Signup - Symbolized","trigger":"page_load","trigger_config":{},"form_type_id":10558,"main_group_id":5234,"main_group_name":"SIGAVDI (formerly BRUNCH) Signup","active_test_id":"","active_test_data":[]}},"action_conversion":"tve_leads_ajax_conversion","action_button_conversion":"tve_leads_ajax_button_conversion","action_impression":"tve_leads_ajax_impression","trigger_based_form_types":["lightbox","screen_filler","slide_in","ribbon"],"ajax_load":0,"main_group_id":5234,"display_options":{"allowed_post_types":["post"],"flag_url_match":false},"custom_post_data":[],"current_screen":{"screen_type":4,"screen_id":12075},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]};} else { window.TL_Front && TL_Front.extendConst && TL_Front.extendConst({"security":"4fa3476e65","ajax_url":"https:\/\/avdi.codes\/wp-admin\/admin-ajax.php","forms":{"post_footer":{"_key":"24","form_name":"SIGAVDI Signup - Symbolized","trigger":"page_load","trigger_config":{},"form_type_id":10558,"main_group_id":5234,"main_group_name":"SIGAVDI (formerly BRUNCH) Signup","active_test_id":"","active_test_data":[]}},"action_conversion":"tve_leads_ajax_conversion","action_button_conversion":"tve_leads_ajax_button_conversion","action_impression":"tve_leads_ajax_impression","trigger_based_form_types":["lightbox","screen_filler","slide_in","ribbon"],"ajax_load":0,"main_group_id":5234,"display_options":{"allowed_post_types":["post"],"flag_url_match":false},"custom_post_data":[],"current_screen":{"screen_type":4,"screen_id":12075},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]})} /*]]> */</script><script type="text/javascript">var TL_Front = TL_Front || {}; TL_Front.impressions_data = TL_Front.impressions_data || {};TL_Front.impressions_data.post_footer = {"group_id":5234,"form_type_id":10558,"variation_key":"24","active_test_id":0,"output_js":true};</script><script type="text/javascript">
( function ( $ ) {
$( function () {
var event_data = {"form_id":"tve-leads-track-post_footer-24","form_type":"post_footer"};
event_data.source = 'page_load';
setTimeout( function () {
if ( window.TL_Front ) {
ThriveGlobal.$j( TL_Front ).trigger( 'showform.thriveleads', event_data );
}
}, 200 );
} );
})( ThriveGlobal.$j );
</script>
</body>
</html>
<!-- plugin=object-cache-pro client=phpredis metric#hits=5746 metric#misses=15 metric#hit-ratio=99.7 metric#bytes=2273120 metric#prefetches=287 metric#store-reads=27 metric#store-writes=9 metric#store-hits=298 metric#store-misses=6 metric#sql-queries=26 metric#ms-total=252.84 metric#ms-cache=13.00 metric#ms-cache-avg=0.3714 metric#ms-cache-ratio=5.1 sample#redis-hits=193367374 sample#redis-misses=5892129 sample#redis-hit-ratio=97.0 sample#redis-ops-per-sec=16 sample#redis-evicted-keys=0 sample#redis-used-memory=136958344 sample#redis-used-memory-rss=169037824 sample#redis-memory-fragmentation-ratio=1.2 sample#redis-connected-clients=1 sample#redis-tracking-clients=0 sample#redis-rejected-connections=0 sample#redis-keys=115176 -->