proven.lol

https://suburbansmarts.org

HASH e55ad73a1b649dd91a90847e4d6c44be

This item was proven by @tiff on 2023-07-04T04:09:08+00:00. (View all of @tiff’s proofs.)

Evidence

This is a copy of the web page retrieved on 2023-07-04T04:09:08+00:00. Show the proof snippet.

<!DOCTYPE html> <html lang="en" class="has-dark-text"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Suburban Smarts</title> <link rel="stylesheet" href="/assets/built/screen.css?v=e97aa7b129"> <style> :root { --background-color: #ffffff } </style> <script> /* The script for calculating the color contrast was taken from https://gomakethings.com/dynamically-changing-the-text-color-based-on-background-color-contrast-with-vanilla-js/ */ var accentColor = getComputedStyle(document.documentElement).getPropertyValue('--background-color'); accentColor = accentColor.trim().slice(1); var r = parseInt(accentColor.substr(0, 2), 16); var g = parseInt(accentColor.substr(2, 2), 16); var b = parseInt(accentColor.substr(4, 2), 16); var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000; var textColor = (yiq >= 128) ? 'dark' : 'light'; document.documentElement.className = `has-${textColor}-text`; </script> <meta name="description" content="From zero to yaml in 60 seconds"> <link rel="icon" href="https://suburbansmarts.org/content/images/size/w256h256/2023/05/favi.png" type="image/png"> <link rel="canonical" href="https://suburbansmarts.org/"> <meta name="referrer" content="no-referrer-when-downgrade"> <meta property="og:site_name" content="Suburban Smarts"> <meta property="og:type" content="website"> <meta property="og:title" content="Suburban Smarts"> <meta property="og:description" content="From zero to yaml in 60 seconds"> <meta property="og:url" content="https://suburbansmarts.org/"> <meta property="og:image" content="https://suburbansmarts.org/content/images/2023/02/ss-docs-header-1.png"> <meta property="article:publisher" content="https://www.facebook.com/SuburbanSmarts"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Suburban Smarts"> <meta name="twitter:description" content="From zero to yaml in 60 seconds"> <meta name="twitter:url" content="https://suburbansmarts.org/"> <meta name="twitter:image" content="https://suburbansmarts.org/content/images/2023/02/ss-docs-header.png"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "publisher": { "@type": "Organization", "name": "Suburban Smarts", "url": "https://suburbansmarts.org/", "logo": { "@type": "ImageObject", "url": "https://suburbansmarts.org/content/images/2023/05/SS-Fracture-2.png", "width": 60, "height": 60 } }, "url": "https://suburbansmarts.org/", "mainEntityOfPage": "https://suburbansmarts.org/", "description": "From zero to yaml in 60 seconds" } </script> <meta name="generator" content="Ghost 5.46"> <link rel="alternate" type="application/rss+xml" title="Suburban Smarts" href="https://suburbansmarts.org/rss/"> <script defer="" src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/sodo-search.min.js" data-key="b4912bc5ea37917d1b039e1407" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/main.css" data-sodo-search="https://suburbansmarts.org/" crossorigin="anonymous"></script> <link href="https://suburbansmarts.org/webmentions/receive/" rel="webmention"> <script defer="" src="/public/cards.min.js?v=e97aa7b129"></script> <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=e97aa7b129"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bigfoot/2.1.4/bigfoot.min.js" integrity="sha512-OQfYbLWwdJsEiJc+/zEyY6EF6VcHHRy/2vLTweF+iIwmfHpJFau6lpAxywKyrl28Ui5/LaxGVu0i7WecihYIQg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bigfoot/2.1.4/bigfoot-default.css" integrity="sha512-DhI5L06RHGX5gUnHM2t7ikxNvKfyb+C2/0coMbHOg6iep7cX35PNUmOBwLz9RBvCVllR3mjX7kHnEDR4xQcqlA==" crossorigin="anonymous" referrerpolicy="no-referrer"> <script type="text/javascript"> var bigfoot = $.bigfoot({ actionOriginalFN: "hide", positionContent: "true" }); </script> <style> .bigfoot-footnote__button { position: relative; z-index: 5; top: -.1em; -webkit-box-sizing: border-box; box-sizing: border-box; -moz-box-sizing: border-box; display: inline-block; padding: .35em; margin: 0 .1em 0 .2em; border: 0; border-radius: .3em; cursor: pointer; background-color: rgba(110, 110, 110, 0.2); -webkit-backface-visibility: hidden; -ms-backface-visibility: hidden; backface-visibility: hidden; font-size: 1.3rem; line-height: 0; vertical-align: middle; text-decoration: none; -webkit-font-smoothing: antialiased; -webkit-transition-property: background-color; transition-property: background-color; -webkit-transition-duration: .25s; transition-duration: .25s } .bigfoot-footnote__button:hover, .bigfoot-footnote__button:focus { outline: 0; background-color: rgba(255, 0, 0, .8); box-shadow: 0 0 1px 7px rgba(255, 0, 0, .15) !important; } .bigfoot-footnote__button:active { background-color: rgba(255, 0, 0, 1); } .bigfoot-footnote__button.is-active { background-color: rgba(255, 0, 0, .9); -webkit-transition-delay: .1s; transition-delay: .1s } .bigfoot-footnote__button:after { content: ''; display: table; clear: both; color: rgba(250, 250, 250, 0) } .bigfoot-footnote__button__circle { display: inline-block; width: .25em; height: .25em; margin-right: .25em; float: left } .bigfoot-footnote__button__circle:last-child { margin-right: 0 } .bigfoot-footnote__container { display: inline-block; position: relative; text-indent: 0 } @media not print { .footnote-print-only { display: none !important } } @media print { .bigfoot-footnote, .bigfoot-footnote__button { display: none !important } } .bigfoot-footnote { position: absolute; z-index: 10; top: 0; left: 0; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; max-width: 90%; margin: 1.96924em 0; background: #fafafa; opacity: 0; border-radius: .5em; border: 1px solid rgba(110, 110, 110, 0.2); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .3); box-shadow: 0 0 8px rgba(0, 0, 0, .3); line-height: 0; -webkit-transition-property: opacity, -webkit-transform; transition-property: opacity, transform; -webkit-transition-duration: .25s; transition-duration: .25s; -webkit-transition-timing-function: ease; transition-timing-function: ease; -webkit-transform: scale(.1)translateZ(0); -ms-transform: scale(.1)translateZ(0); transform: scale(.1)translateZ(0); -webkit-transform-origin: 50% 0; -ms-transform-origin: 50% 0; transform-origin: 50% 0 } .bigfoot-footnote.is-positioned-top { top: auto; bottom: 0 } .bigfoot-footnote.is-active { -webkit-transform: scale(1)translateZ(0); -ms-transform: scale(1)translateZ(0); transform: scale(1)translateZ(0); opacity: .97 } .bigfoot-footnote.is-bottom-fixed { position: fixed; bottom: 0; top: auto; left: 0; right: auto; -webkit-transform: translateY(100%); -ms-transform: translateY(100%); transform: translateY(100%); width: 100%; margin: 0; border-radius: 0; opacity: 1; border-width: 3px 0 0; -webkit-transition: -webkit-transform .3s ease; transition: transform .3s ease } .bigfoot-footnote.is-bottom-fixed.is-active { -webkit-transform: translateY(0); -ms-transform: translateY(0); transform: translateY(0) } .bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__wrapper { margin: 0 0 0 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); max-width: 100% } .bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__wrapper, .bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__content { border-radius: 0 } .bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__tooltip { display: none } .bigfoot-footnote.is-scrollable:after { content: ''; position: absolute; bottom: .3375em; left: .3375em; z-index: 14; display: block; height: .78125em; width: .625em; background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTJweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMTIgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iPgogICAgPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkFycm93IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMS4wMDAwMDApIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiPgogICAgICAgICAgICA8cGF0aCBkPSJNNSwwIEw1LDExLjUiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsNy41IEw1LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjUsNy41IEw5LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMC4wMDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTAuMDAwMDAwKSAiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo="); -webkit-background-size: cover; background-size: cover; opacity: .1; transition-property: opacity; -webkit-transition-duration: .25s; transition-duration: .25s; -webkit-transition-timing-function: ease; transition-timing-function: ease } .bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:before, .bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:after { content: ''; position: absolute; width: 100%; z-index: 12; left: 0 } .bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:before { top: -1px; height: 1.1em; border-radius: .5em .5em 0 0; background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(rgba(250, 250, 250, 0))); background-image: -webkit-linear-gradient(top, #fafafa 50%, rgba(250, 250, 250, 0)100%); background-image: linear-gradient(to bottom, #fafafa 50%, rgba(250, 250, 250, 0)100%) } .bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:after { bottom: -1px; height: 1.2em; border-radius: 0 0 .5em .5em; background-image: -webkit-gradient(linear, left bottom, left top, from(#fafafa), to(rgba(250, 250, 250, 0))); background-image: -webkit-linear-gradient(bottom, #fafafa 50%, rgba(250, 250, 250, 0)100%); background-image: linear-gradient(to top, #fafafa 50%, rgba(250, 250, 250, 0)100%) } .bigfoot-footnote.is-scrollable ::-webkit-scrollbar { display: none } .bigfoot-footnote.is-fully-scrolled:after, .bigfoot-footnote.is-fully-scrolled:before { opacity: 0; -webkit-transition-delay: 0; transition-delay: 0 } .bigfoot-footnote__wrapper { position: relative; z-index: 14; width: 22em; display: inline-block; -webkit-box-sizing: inherit; -moz-box-sizing: inherit; box-sizing: inherit; overflow: hidden; margin: 0; background-color: #fafafa; border-radius: .5em; line-height: 0 } .bigfoot-footnote__content { position: relative; z-index: 8; display: inline-block; max-height: 15em; padding: 1.1em 1.3em 1.2em; -webkit-box-sizing: inherit; -moz-box-sizing: inherit; box-sizing: inherit; overflow: auto; -webkit-overflow-scrolling: touch; background: #fafafa; border-radius: .5em; -webkit-font-smoothing: subpixel-antialiased; line-height: normal } .bigfoot-footnote__content img { max-width: 100% } .bigfoot-footnote__content *:last-child { margin-bottom: 0 !important } .bigfoot-footnote__content *:first-child { margin-top: 0 !important } .bigfoot-footnote__tooltip { position: absolute; z-index: 12; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; margin-left: -.65em; width: 1.3em; height: 1.3em; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); background: #fafafa; border: 1px solid rgba(110, 110, 110, 0.2); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .3); box-shadow: 0 0 8px rgba(0, 0, 0, .3); border-top-left-radius: 0 } .is-positioned-bottom .bigfoot-footnote__tooltip { top: -.65em } .is-positioned-top .bigfoot-footnote__tooltip { bottom: -.65em } body { background: #f8f8f8 } .gh-head-logo > img { max-height: 16rem; } h1:not(header) { font-size: 4em !important; } header h1 { font-size: 1.4em !important } #banner img { height: 100% !important; } h1 > .gh-article-title { font-size: 2.2rem !important; } p::selection { background: #ff0000; color: white; } h1::selection { background: #ff0000; color: white; } h2::selection { background: #ff0000; color: white; } h3::selection { background: #ff0000; color: white; } h4::selection { background: #ff0000; color: white; } code::selection { background: #ff0000; color: white; } ul::selection { background: #ff0000; color: white; } ol::selection { background: #ff0000; color: white; } li::selection { background: #ff0000; color: white; } em::selection { background: #ff0000; color: white; } strong::selection{ background: #ff0000; color: white; } code[class*="language-"], pre[class*="language-"] { text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; color: #90a4ae; background: #fafafa; font-family: Roboto Mono, monospace; font-size: 1em; line-height: 1.5em; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; } code[class*="language-"]::-moz-selection, pre[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection, pre[class*="language-"] ::-moz-selection { background: #cceae7; color: #263238; } code[class*="language-"]::selection, pre[class*="language-"]::selection, code[class*="language-"] ::selection, pre[class*="language-"] ::selection { background: #cceae7; color: #263238; } :not(pre) > code[class*="language-"] { white-space: normal; border-radius: 0.2em; padding: 0.1em; } pre[class*="language-"] { overflow: auto; position: relative; margin: 0.5em 0; padding: 1.25em 1em; } .language-css > code, .language-sass > code, .language-scss > code { color: #f76d47; } opacity: 0.7; } .token.atrule { color: #7c4dff; } .token.attr-name { color: #39adb5; } .token.attr-value { color: #f6a434; } .token.attribute { color: #f6a434; } .token.boolean { color: #7c4dff; } .token.builtin { color: #39adb5; } .token.cdata { color: #39adb5; } .token.char { color: #39adb5; } .token.class { color: #39adb5; } .token.class-name { color: #6182b8; } .token.comment { color: #aabfc9; } .token.constant { color: #7c4dff; } .token.deleted { color: #e53935; } .token.doctype { color: #aabfc9; } .token.entity { color: #e53935; } .token.function { color: #7c4dff; } .token.hexcode { color: #f76d47; } .token.id { color: #7c4dff; font-weight: bold; } .token.important { color: #7c4dff; font-weight: bold; } .token.inserted { color: #39adb5; } .token.keyword { color: #7c4dff; } .token.number { color: #f76d47; } .token.operator { color: #39adb5; } .token.prolog { color: #aabfc9; } .token.property { color: #39adb5; } .token.pseudo-class { color: #f6a434; } .token.pseudo-element { color: #f6a434; } .token.punctuation { color: #39adb5; } .token.regex { color: #6182b8; } .token.selector { color: #e53935; } .token.string { color: #f6a434; } .token.symbol { color: #7c4dff; } .token.tag { color: #e53935; } .token.unit { color: #f76d47; } .token.url { color: #e53935; } .token.variable { color: #e53935; } .reading-progress { position: fixed; top: 0; z-index: 999; width: 100%; height: 5px; /* Progress bar height */ background: #c5d2d9; /* Progress bar background color */ -webkit-appearance: none; -moz-appearance: none; appearance: none; /* Hide default progress bar */ } .reading-progress::-webkit-progress-bar { background-color: transparent; } .reading-progress::-webkit-progress-value { background: var(--ghost-accent-color); /* Progress bar color */ } .gh-content{ --content-spacing-multiplier: .9; line-height: 1.5; } @media screen and (min-width: 1080px) .toggle { display: none !important; </style> <style>:root {--ghost-accent-color: #ff000f;}</style> <style>.App { text-align: center; } .App-logo { height: 40vmin; pointer-events: none; } @media (prefers-reduced-motion: no-preference) { .App-logo { -webkit-animation: App-logo-spin infinite 20s linear; animation: App-logo-spin infinite 20s linear; } } .App-header { background-color: #282c34; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: calc(10px + 2vmin); color: white; } .App-link { color: #61dafb; } @-webkit-keyframes App-logo-spin { from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes App-logo-spin { from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zcmMvQXBwLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRTtJQUNFLG9EQUE0QztZQUE1Qyw0Q0FBNEM7RUFDOUM7QUFDRjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLDZCQUE2QjtFQUM3QixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0U7SUFDRSwrQkFBdUI7WUFBdkIsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSxpQ0FBeUI7WUFBekIseUJBQXlCO0VBQzNCO0FBQ0Y7O0FBUEE7RUFDRTtJQUNFLCtCQUF1QjtZQUF2Qix1QkFBdUI7RUFDekI7RUFDQTtJQUNFLGlDQUF5QjtZQUF6Qix5QkFBeUI7RUFDM0I7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbIi5BcHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5BcHAtbG9nbyB7XG4gIGhlaWdodDogNDB2bWluO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gIC5BcHAtbG9nbyB7XG4gICAgYW5pbWF0aW9uOiBBcHAtbG9nby1zcGluIGluZmluaXRlIDIwcyBsaW5lYXI7XG4gIH1cbn1cblxuLkFwcC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgyYzM0O1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICsgMnZtaW4pO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5BcHAtbGluayB7XG4gIGNvbG9yOiAjNjFkYWZiO1xufVxuXG5Aa2V5ZnJhbWVzIEFwcC1sb2dvLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */</style></head> <body class="home-template has-side-about has-classic-feed"> <div class="gh-site"> <header id="gh-head" class="gh-head gh-outer"> <div class="gh-head-inner gh-inner"> <div class="gh-head-brand"> <div class="gh-head-brand-wrapper"> <a class="gh-head-logo" href="https://suburbansmarts.org"> <img src="https://suburbansmarts.org/content/images/2023/05/SS-Fracture-2.png" alt="Suburban Smarts"> </a> </div> <button class="gh-search gh-icon-btn" data-ghost-search=""><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.5 17.5L12.5 12.5L17.5 17.5ZM14.1667 8.33333C14.1667 9.09938 14.0158 9.85792 13.7226 10.5657C13.4295 11.2734 12.9998 11.9164 12.4581 12.4581C11.9164 12.9998 11.2734 13.4295 10.5657 13.7226C9.85792 14.0158 9.09938 14.1667 8.33333 14.1667C7.56729 14.1667 6.80875 14.0158 6.10101 13.7226C5.39328 13.4295 4.75022 12.9998 4.20854 12.4581C3.66687 11.9164 3.23719 11.2734 2.94404 10.5657C2.65088 9.85792 2.5 9.09938 2.5 8.33333C2.5 6.78624 3.11458 5.30251 4.20854 4.20854C5.30251 3.11458 6.78624 2.5 8.33333 2.5C9.88043 2.5 11.3642 3.11458 12.4581 4.20854C13.5521 5.30251 14.1667 6.78624 14.1667 8.33333Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </button> <button class="gh-burger"></button> </div> <nav class="gh-head-menu"> <ul class="nav"> <li class="nav-home nav-current"><a href="https://suburbansmarts.org/">Home</a></li> <li class="nav-about"><a href="https://suburbansmarts.org/about/">About</a></li> <li class="nav-data-privacy"><a href="https://suburbansmarts.org/privacy/">Data &amp; privacy</a></li> <li class="nav-contact"><a href="https://suburbansmarts.org/contact/">Contact</a></li> <li class="nav-gear"><a href="https://suburbansmarts.org/gear/">Gear</a></li> <li class="nav-docs"><a href="https://docs.suburbansmarts.org/">Docs</a></li> <li class="nav-status"><a href="https://status.suburbansmarts.org">Status</a></li> <li class="nav-search nav-current"><a href="#/search">Search</a></li> </ul> </nav> <div class="gh-head-actions"> <button class="gh-search gh-icon-btn" data-ghost-search=""><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17.5 17.5L12.5 12.5L17.5 17.5ZM14.1667 8.33333C14.1667 9.09938 14.0158 9.85792 13.7226 10.5657C13.4295 11.2734 12.9998 11.9164 12.4581 12.4581C11.9164 12.9998 11.2734 13.4295 10.5657 13.7226C9.85792 14.0158 9.09938 14.1667 8.33333 14.1667C7.56729 14.1667 6.80875 14.0158 6.10101 13.7226C5.39328 13.4295 4.75022 12.9998 4.20854 12.4581C3.66687 11.9164 3.23719 11.2734 2.94404 10.5657C2.65088 9.85792 2.5 9.09938 2.5 8.33333C2.5 6.78624 3.11458 5.30251 4.20854 4.20854C5.30251 3.11458 6.78624 2.5 8.33333 2.5C9.88043 2.5 11.3642 3.11458 12.4581 4.20854C13.5521 5.30251 14.1667 6.78624 14.1667 8.33333Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </button> </div> </div> </header> <section class="gh-about gh-outer no-image"> <div class="gh-about-inner gh-inner"> <a rel="me" style="display: none;" href="https://fosstodon.org/@suburbansmarts">Mastodon</a> <p style="display: none;">proven26d596</p> <script> (function () { if (!document.body.classList.contains('has-background-about')) return; const about = document.querySelector('.gh-about'); if (!about) return; const image = about.querySelector('.gh-about-image'); about.style.setProperty('--about-height', image.clientWidth * image.naturalHeight / image.naturalWidth + 'px'); about.classList.add('initialized'); })(); </script> <div class="gh-about-content"> <div class="gh-about-content-inner"> <h1 class="gh-about-primary">Suburban Smarts</h1> <p class="gh-about-secondary">From zero to yaml in 60 seconds</p> </div> </div> </div> </section> <main class="gh-main gh-outer"> <div class="gh-feed gh-inner"> <article class="gh-card post tag-meta"> <a class="gh-card-link" href="/home-lab-stuff-2/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1544197150-b99a580bb7a8?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI5fHxTZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3ODA2MDM0Mg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720" alt="Home Lab Stuff"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Home Lab Stuff</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-03-05">Mar 5, 2023</time> <span class="gh-card-length">1 min read</span> </footer> </div> </a> </article> <article class="gh-card post tag-meta featured"> <a class="gh-card-link" href="/migrating-devices-to-separate-networks/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1531765408077-9a1f85f90df1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVuaWZpfGVufDB8fHx8MTY3Njk2MjUxOQ&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720" alt="Migrating Devices to Separate Networks"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Migrating Devices to Separate Networks</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-02-19">Feb 19, 2023</time> <span class="gh-card-length">1 min read</span> </footer> </div> </a> </article> <article class="gh-card post tag-meta featured"> <a class="gh-card-link" href="/curiosity-and-home-assistant/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1520869562399-e772f042f422?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDI4fHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTY3NjY5MTY2MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720" alt="Curiosity and Home Assistant"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Curiosity and Home Assistant</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-02-18">Feb 18, 2023</time> <span class="gh-card-length">1 min read</span> </footer> </div> </a> </article> <article class="gh-card post"> <a class="gh-card-link" href="/content-update-vine-voice-edition/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1593810110755-2284d6fe58e4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDIyfHxDb250ZW50fGVufDB8fHx8MTY2NzI5MDY3Mw&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=720" alt="Content update, Vine Voice edition"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Content update, Vine Voice edition</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-11-01">Nov 1, 2022</time> <span class="gh-card-length">1 min read</span> </footer> </div> </a> </article> <article class="gh-card post tag-getting-started"> <a class="gh-card-link" href="/slow-and-dirty-dashboards-2/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDF8fGRhc2hib2FyZHxlbnwwfHx8fDE2NjM4ODMyMTg&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=720" alt="Slow and Dirty Dashboards"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Slow and Dirty Dashboards</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-09-22">Sep 22, 2022</time> <span class="gh-card-length">3 min read</span> </footer> </div> </a> </article> <article class="gh-card post tag-updates"> <a class="gh-card-link" href="/exciting-news-here-at-suburban-smarts-hq/"> <figure class="gh-card-image"> <img srcset="https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=300 300w, https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=720 720w, https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=960 960w, https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1200 1200w, https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000 2000w" sizes="(max-width: 1200px) 100vw, 1200px" src="https://images.unsplash.com/photo-1560185007-5f0bb1866cab?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHx0b3duaG91c2V8ZW58MHx8fHwxNjQ3Mjg4NzU0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=720" alt="Inside a suburban townhome"> </figure> <div class="gh-card-wrapper"> <h2 class="gh-card-title">Exciting News Here At Suburban Smarts HQ</h2> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-03-14">Mar 14, 2022</time> <span class="gh-card-length">1 min read</span> </footer> </div> </a> </article> </div> </main> <footer class="gh-foot gh-outer"> <div class="gh-foot-inner gh-inner"> <nav class="gh-foot-menu"> <ul class="nav"> <li class="nav-data-privacy"><a href="https://suburbansmarts.org/privacy/">Data &amp; privacy</a></li> <li class="nav-contact"><a href="https://suburbansmarts.org/contact/">Contact</a></li> </ul> </nav> <div class="gh-copyright"> Suburban Smarts © 2023. Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a> </div> </div> </footer> </div> <script src="/assets/built/main.min.js?v=e97aa7b129"></script> <div id="sodo-search-root"></div></body></html>