1<!doctype html> 2<html lang="en-US"> 3<head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <link rel="profile" href="https://gmpg.org/xfn/11" /> 7 <title>ericlaw – text/plain</title> 8<meta name='robots' content='max-image-preview:large' /> 9<!-- Jetpack Site Verification Tags --> 10<meta name="google-site-verification" content="FQ2m6-F6KlTeFSjsKwCccjZBjWTG1DhcwoATe-Vt8Tw"> 11<link rel='dns-prefetch' href='//secure.gravatar.com' /> 12<link rel='dns-prefetch' href='//fonts-api.wp.com' /> 13<link rel='dns-prefetch' href='//widgets.wp.com' /> 14<link rel='dns-prefetch' href='//jetpack.wordpress.com' /> 15<link rel='dns-prefetch' href='//s0.wp.com' /> 16<link rel='dns-prefetch' href='//public-api.wordpress.com' /> 17<link rel='dns-prefetch' href='//0.gravatar.com' /> 18<link rel='dns-prefetch' href='//1.gravatar.com' /> 19<link rel='dns-prefetch' href='//2.gravatar.com' /> 20<link rel='preconnect' href='//i0.wp.com' /> 21<link rel='preconnect' href='//c0.wp.com' /> 22<link rel="alternate" type="application/rss+xml" title="text/plain » Feed" href="https://textslashplain.com/feed/" /> 23<link rel="alternate" type="application/rss+xml" title="text/plain » Comments Feed" href="https://textslashplain.com/comments/feed/" /> 24<link rel="alternate" type="application/rss+xml" title="text/plain » Posts by ericlaw Feed" href="https://textslashplain.com/author/ericlaw1979/feed/" /> 25<style id="wp-img-auto-sizes-contain-inline-css"> 26img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 27/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 28</style> 29<style id="wp-emoji-styles-inline-css"> 30 31 img.wp-smiley, img.emoji { 32 display: inline !important; 33 border: none !important; 34 box-shadow: none !important; 35 height: 1em !important; 36 width: 1em !important; 37 margin: 0 0.07em !important; 38 vertical-align: -0.1em !important; 39 background: none !important; 40 padding: 0 !important; 41 } 42/*# sourceURL=wp-emoji-styles-inline-css */ 43</style> 44<style id="wp-block-library-inline-css"> 45: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;
45--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{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal!important;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}} 46 47/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/common.min.css */ 48</style> 49<style id="wp-block-table-inline-css"> 50.wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:transparent;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}
50.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} 51/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/table/style.min.css */ 52</style> 53<style id="wp-block-table-theme-inline-css"> 54.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:hsla(0,0%,100%,.65)} 55/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/table/theme.min.css */ 56</style> 57<style id="wp-block-heading-inline-css"> 58h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:var(--wp--style--block-background-padding,1.25em 2.375em)}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 59/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/heading/style.min.css */ 60</style> 61<style id="wp-block-paragraph-inline-css"> 62.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:var(--wp--style--block-background-padding,1.25em 2.375em)}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 63/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/paragraph/style.min.css */ 64</style> 65<style id="wp-block-library-inline-css-extra"> 66.has-text-align-justify{text-align:justify;} 67/*# sourceURL=wp-block-library-inline-css */ 68</style> 69 70<style id="classic-theme-styles-inline-css"> 71.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;
71padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.wp-block-tab:not(.has-text-color){color:inherit!important}.wp-block-tab:not(.has-background){background-color:inherit!important}.wp-block-tab:focus,.wp-block-tab:hover{text-decoration:none}.wp-block-tab:focus-visible{outline:auto;outline-offset:0} 72/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/classic.min.css */ 73</style> 74 75<link rel='stylesheet' id='all-css-fa5ea71b5c6a215968743319f2ee1bb5' href='https://textslashplain.com/_static/??-eJydyzEOwjAMQNELEUwrFCbEWdzEai1SJ4rdptyeMjAy0PXrv1ZcyGIkBiUtI4tCyEPK4akQWQ3UXonctzna9lc5i56D6qn9yVF4Rtv5Lz1WXNGwOpIJJVCEYeEUoaAZVVGnE1aKhzlFtsN4ZWof/Jjv3e168b7zff8G/i560g==' type='text/css' media='all' /> 76<style id="global-styles-inline-css"> 77: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: #CD2220;--wp--preset--color--secondary: #007AB7;--wp--preset--color--foreground: #303030;--wp--preset--color--background: #FFFFFF;--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%);
77--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: 16.6px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 26.45px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 20px;--wp--preset--font-size--huge: 30.4174px;--wp--preset--text-shadow--light: 0.05em 0.05em 0.1em rgba(0, 0, 0, 0.3);--wp--preset--text-shadow--strong: 0.1em 0.1em 0.25em rgba(0, 0, 0, 0.5);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.wp-site-blocks) > * { margin-block-start: 24px; 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: 24px; }: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: 24px;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: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-color{color: var(--wp--preset--color--primary) !important;}.has-secondary-color{color: var(--wp--preset--color--secondary) !important;}.has-foreground-color{color: var(--wp--preset--color--foreground) !important;}.has-background-color{color: var(--wp--preset--color--background) !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-background-color{background-color: var(--wp--preset--color--primary) !important;}.has-secondary-background-color{background-color: var(--wp--preset--color--secondary) !important;}.has-foreground-background-color{background-color: var(--wp--preset--color--foreground) !important;}.has-background-background-color{background-color: var(--wp--preset--color--background) !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-border-color{border-color: var(--wp--preset--color--primary) !important;}.has-secondary-border-color{border-color: var(--wp--preset--color--secondary) !important;}.has-foreground-border-color{border-color: var(--wp--preset--color--foreground) !important;}.has-background-border-color{border-color: var(--wp--preset--color--background) !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;}
77.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-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-light-text-shadow{text-shadow: var(--wp--preset--text-shadow--light) !important;}.has-strong-text-shadow{text-shadow: var(--wp--preset--text-shadow--strong) !important;} 78/*# sourceURL=global-styles-inline-css */ 79</style> 80 81<style id="jetpack-stats-inline-css"> 82img#wpstats{display:none} 83/*# sourceURL=jetpack-stats-inline-css */ 84</style> 85<link rel='stylesheet' id='dashicons-css' href='https://textslashplain.com/wp-includes/css/dashicons.min.css?ver=7.1.2' media='all' /> 86<link rel='stylesheet' id='all-css-c4bc12d23f8e866e024f17c40806bd27' href='https://textslashplain.com/_static/??-eJyNjUEKwjAQRS9kO3VhgwtxU/AAnqCdDDE0mQnOhNLbG+leXL7P572tdChsxAYl1RBZIdSGC70DLDUmD2p7IgV7USbwpDFwZ7ISa58j96h62v62oOQi3I56LL8UKEsSXBUiY6qtDBMVYk+MscFDptn7HZ6H+cik2Ujta7zn29ldBzcOFzd8AKH4V1I=' type='text/css' media='all' /> 87<link rel='stylesheet' id='print-css-fc6cea5c2493407b3b9187e241ceda9f' href='https://textslashplain.com/wp-content/themes/varia/print.css?m=1738187798' type='text/css' media='print' /> 88<link rel='stylesheet' id='all-css-80b178224cc40b234b612085deb0c0a2' href='https://textslashplain.com/_static/??-eJyNjEsKhDAQBS80mTagmI14lCHTNhLtfEgnhLn94MKl4rJe8aolhTEUCgUS19UFgY1KsrjDxwWEL0fcBaS5RPmNIq92/fBxqUwCaHOsQnwKdQ5PA8UxLWq1zJR/d3QEZz/p0Qym06bv/9xmTnk=' type='text/css' media='all' /> 89<style id="jetpack_likes-inline-css"> 90#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{display:inline-block;font-size:9pt;font-weight:700;line-height:1.2;margin:0 0 1em}div.sharedaddy h3.sd-title:before{border-top:1px solid #dcdcde;content:"";display:block;margin-bottom:1em;min-width:30px;width:100%}div.jetpack-likes-widget-wrapper{min-height:50px;position:relative;width:100%}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-comment-likes-widget-wrapper{min-height:31px;position:relative;width:100%}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{background-color:#fff;border:1px solid #dcdcde;border-radius:4px;box-shadow:none;display:none;height:auto;max-height:240px;min-width:220px;overflow:auto;padding:9px 12px 10px;position:absolute;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#101517;font-size:12px;font-weight:500;padding-bottom:8px}#likes-other-gravatars :is(li,ul){list-style-type:none;margin:0;padding:0;text-indent:0}#likes-other-gravatars li:before{content:""}#likes-other-gravatars ul.wpl-avatars{display:block;max-height:190px;overflow:auto}#likes-other-gravatars ul.wpl-avatars li{float:none;height:28px;margin:0 0 4px;width:196px}#likes-other-gravatars ul.wpl-avatars li a{align-items:center;border-bottom:none!important;display:flex;gap:8px;margin:0 2px 0 0;text-decoration:none}#likes-other-gravatars ul.wpl-avatars li a span{color:#2c3338;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#likes-other-gravatars ul.wpl-avatars li a img{background:none;border:none;border-radius:50%;box-sizing:border-box;margin:0!important;padding:1px!important;position:static}div.sd-box{border-top:1px solid #00000021}.jetpack-likes-widget-loaded iframe,.jetpack-likes-widget-loading .likes-widget-placeholder,.jetpack-likes-widget-unloaded .likes-widget-placeholder{display:block}.jetpack-likes-widget-loaded .likes-widget-placeholder,.jetpack-likes-widget-loading iframe,.jetpack-likes-widget-unloaded iframe{display:none}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{border-width:0;margin:0}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{border-width:0;margin:0;position:relative}.comment-likes-widget-placeholder{display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:18px;position:absolute}.comment-likes-widget-placeholder:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cpath fill='%232ea2cc' d='m12 2 2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:16px 16px;color:#2ea2cc;content:"";display:inline-block;height:16px;padding-right:5px;position:relative;top:3px;width:16px}.post-likes-widget-placeholder .button{display:none}:is(.comment-likes-widget-placeholder,.post-likes-widget-placeholder) .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{align-self:center;color:#4e4e4e;margin-top:4px;padding-left:5px}
90div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{float:none;position:absolute;top:0;width:100%}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}@media print{.jetpack-likes-widget-wrapper{display:none}} 91/*# sourceURL=https://textslashplain.com/wp-content/plugins/jetpack/_inc/build/likes/style.min.css */ 92</style> 93<link rel='stylesheet' id='all-css-e8ef77940e185d27bf390aead6c358e3' href='https://textslashplain.com/_static/??wp-content/themes/morden/style.css,wp-content/themes/varia/inc/style-wpcom.css?m=1738187798' type='text/css' media='all' /> 94<link rel='stylesheet' id='morden-fonts-css' href='https://fonts-api.wp.com/css?family=Noto+Sans%3A400%2C400i%2C700%2C700i&subset=latin%2Clatin-ext' media='all' /> 95<link rel='stylesheet' id='all-css-7aa849586d0df372f8f5df5ea0492a17' href='https://textslashplain.com/wp-content/themes/morden/style.css?m=1738187798' type='text/css' media='all' /> 96<style id="jetpack-global-styles-frontend-style-inline-css"> 97:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;} 98/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */ 99</style>
100<script id="jetpack-mu-wpcom-settings-js-before"> 101var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://textslashplain.com/wp-content/mu-plugins/wpcomsh/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"}; 102//# sourceURL=jetpack-mu-wpcom-settings-js-before 103</script>
103 104<link rel="https://api.w.org/" href="https://textslashplain.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://textslashplain.com/wp-json/wp/v2/users/8782306" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://textslashplain.com/xmlrpc.php?rsd" /> 105 106 <style type="text/css"> 107 .recentcomments a { 108 display: inline !important; 109 padding: 0 !important; 110 margin: 0 !important; 111 } 112 113 table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar { 114 border: 0; 115 margin: 0; 116 } 117 118 table.recentcommentsavatartop a, table.recentcommentsavatarend a { 119 border: 0 !important; 120 background-color: transparent !important; 121 } 122 123 td.recentcommentsavatarend, td.recentcommentsavatartop { 124 padding: 0 0 1px 0; 125 margin: 0; 126 } 127 128 td.recentcommentstextend { 129 border: none !important; 130 padding: 0 0 2px 10px; 131 } 132 133 .rtl td.recentcommentstextend { 134 padding: 0 10px 2px 0; 135 } 136 137 td.recentcommentstexttop { 138 border: none; 139 padding: 0 0 0 10px; 140 } 141 142 .rtl td.recentcommentstexttop { 143 padding: 0 10px 0 0; 144 } 145 </style> 146 <meta name="description" content="Read all of the posts by ericlaw on text/plain" /> 147 148<!-- Jetpack Open Graph Tags --> 149<meta property="og:type" content="profile" /> 150<meta property="og:title" content="ericlaw" /> 151<meta property="og:url" content="https://textslashplain.com" /> 152<meta property="og:description" content="Impatient optimist. Dad. Author/speaker. Created Fiddler & SlickRun. PM @ Microsoft 2001-2012, and 2018-, working on Office, IE, and Edge. Now working on Microsoft Defender. My words are my ownâ¦" /> 153<meta property="profile:first_name" content="Eric" /> 154<meta property="profile:last_name" content="Lawrence" /> 155<meta property="og:site_name" content="text/plain" /> 156<meta property="og:image" content="https://secure.gravatar.com/avatar/48ccad455b21f90ad0bcfbbf3826c12a0d744a22409a4005756c19f4efdaa057?s=200&d=identicon&r=g" /> 157<meta property="og:image:alt" content="ericlaw" /> 158<meta property="og:locale" content="en_US" /> 159 160<!-- End Jetpack Open Graph Tags --> 161<link rel="icon" href="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=32%2C32&ssl=1" sizes="32x32" /> 162<link rel="icon" href="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=192%2C192&ssl=1" sizes="192x192" /> 163<link rel="apple-touch-icon" href="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=180%2C180&ssl=1" /> 164<meta name="msapplication-TileImage" content="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=270%2C270&ssl=1" /> 165<style type="text/css" id="wp-custom-css">/* 166Welcome to Custom CSS! 167 168To learn how this works, see https://wp.me/PEmnE-Bt 169*/ 170#masthead { 171 background: #0B61A5; 172} 173 174.entry-title { 175 text-decoration-line: overline underline; 176 color: #0B61A5; 177} 178 179:root { 180 --bg-color: #ffffff; 181 --text-color: #333333; 182} 183 184@media (prefers-color-scheme: dark) { 185 :root { 186 --bg-color: #1a1a1a; 187 --text-color: #f0f0f0; 188 } 189} 190 191footer, div#page.site, .site-main, body { 192 background-color: var(--bg-color); 193 color: var(--text-color); 194 transition: background-color 0.3s ease, color 0.3s ease; 195}</style><link rel='stylesheet' id='all-css-8381d57c63639341d67b857e4ecf2e89' href='https://textslashplain.com/wp-content/plugins/jetpack/modules/widgets/gravatar-profile.css?m=1764003632' type='text/css' media='all' /> 196<link rel='stylesheet' id='gravatar-card-services-css' href='https://secure.gravatar.com/css/services.css?ver=202640' media='all' /> 197 198</head> 199 200<body class="archive author author-ericlaw1979 author-8782306 wp-embed-responsive wp-theme-varia wp-child-theme-morden hfeed image-filters-enabled"> 201 202 203<div id="page" class="site"> 204 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 205 206 207<header id="masthead" class="site-header" role="banner"> 208 <div class="site-header-wrap responsive-max-width has-title-and-tagline"> 209 210 211 <p class="site-title"><a href="https://textslashplain.com/" rel="home">text/plain</a></p> 212 213 <p class="site-description"> 214 ericlaw talks about security, the web, and software in general </p> 215 </div><!-- .site-header-wrap --> 216</header><!-- #masthead --> 217
218 <div id="content" class="site-content"> 219 220 <section id="primary" class="content-area"> 221 <main id="main" class="site-main"> 222 223 224 <header class="page-header"> 225 <h1 class="page-title">Author Archives: <span class="page-description">ericlaw</span></h1> </header><!-- .page-header --> 226 227 228<article id="post-13591" class="post-13591 post type-post status-publish format-standard hentry category-tech tag-dns tag-networking entry"> 229 <header class="entry-header responsive-max-width"> 230 <h2 class="entry-title"><a href="https://textslashplain.com/2026/09/24/the-ip-address/" rel="bookmark">“The” IP Address</a></h2> </header><!-- .entry-header --> 231 232 233 <div class="entry-content"> 234 <p>As elaborated in a prior post, sites and services often try to use an IP address as an input into protection (e.g. blocking a spammer) or customization (providing local weather info) algorithms. Commonly, software would like to know “What is this device’s IP address?” Unfortunately, this is not a trivial question to answer, because it<a class="more-link" href="https://textslashplain.com/2026/09/24/the-ip-address/">Continue reading <span class="screen-reader-text">““The” IP Address”</span></a></p> 235 </div><!-- .entry-content --> 236 237 <footer class="entry-footer responsive-max-width"> 238 <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://textslashplain.com/author/ericlaw1979/">ericlaw</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><path id="a" d="M0 0h24v24H0V0z"></path></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"></use></clipPath><path clip-path="url(#b)" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></svg><a href="https://textslashplain.com/2026/09/24/the-ip-address/" rel="bookmark"><time class="entry-date published" datetime="2026-09-24T13:39:26-05:00">2026-09-24</time><time class="updated" datetime="2026-09-24T13:46:34-05:00">2026-09-24</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted in</span><a href="https://textslashplain.com/category/tech/" rel="category tag">tech</a></span><span class="tags-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Tags:</span><a href="https://textslashplain.com/tag/dns/" rel="tag">dns</a>, <a href="https://textslashplain.com/tag/networking/" rel="tag">networking</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><a href="https://textslashplain.com/2026/09/24/the-ip-address/#respond">Leave a comment<span class="screen-reader-text"> on “The” IP Address</span></a></span> </footer><!-- .entry-footer --> 239</article><!-- #post-${ID} --> 240 241<article id="post-15709" class="post-15709 post type-post status-publish format-standard hentry category-design category-dev category-tech category-web tag-browsers tag-defender tag-hsts entry"> 242 <header class="entry-header responsive-max-width"> 243 <h2 class="entry-title"><a href="https://textslashplain.com/2026/09/11/experimentation-just-try-it/" rel="bookmark">Experimentation: Just Try It!</a></h2> </header><!-- .entry-header --> 244 245 246 <div class="entry-content"> 247 <p>I’ve now been working in tech for 25 years, and in that time I’ve developed some wisdom. One theme I’ve discovered and blogged about repeatedly over the years is profou
247nd despite its simplicity: In many cases, the best way to know whether something will work is to just try it. I’ve written numerous posts making<a class="more-link" href="https://textslashplain.com/2026/09/11/experimentation-just-try-it/">Continue reading <span class="screen-reader-text">“Experimentation: Just Try It!”</span></a></p> 248 </div><!-- .entry-content --> 249 250 <footer class="entry-footer responsive-max-width"> 251 <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://textslashplain.com/author/ericlaw1979/">ericlaw</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><path id="a" d="M0 0h24v24H0V0z"></path></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"></use></clipPath><path clip-path="url(#b)" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></svg><a href="https://textslashplain.com/2026/09/11/experimentation-just-try-it/" rel="bookmark"><time class="entry-date published" datetime="2026-09-11T16:32:23-05:00">2026-09-11</time><time class="updated" datetime="2026-09-17T10:27:08-05:00">2026-09-17</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted in</span><a href="https://textslashplain.com/category/design/" rel="category tag">design</a>, <a href="https://textslashplain.com/category/dev/" rel="category tag">dev</a>, <a href="https://textslashplain.com/category/tech/" rel="category tag">tech</a>, <a href="https://textslashplain.com/category/tech/web/" rel="category tag">web</a></span><span class="tags-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Tags:</span><a href="https://textslashplain.com/tag/browsers/" rel="tag">browsers</a>, <a href="https://textslashplain.com/tag/defender/" rel="tag">Defender</a>, <a href="https://textslashplain.com/tag/hsts/" rel="tag">HSTS</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><a href="https://textslashplain.com/2026/09/11/experimentation-just-try-it/#respond">Leave a comment<span class="screen-reader-text"> on Experimentation: Just Try It!</span></a></span> </footer><!-- .entry-footer --> 252</article><!-- #post-${ID} --> 253 254<article id="post-15699" class="post-15699 post type-post status-publish format-standard hentry category-browsers category-design category-security entry"> 255 <header class="entry-header responsive-max-width"> 256 <h2 class="entry-title"><a href="https://textslashplain.com/2026/09/10/simple-browser-security-improvements/" rel="bookmark">Simple Browser Security Improvements</a></h2> </header><!-- .entry-header --> 257 258 259 <div class="entry-content"> 260 <p>Security Engineering is all about tradeoffs: Web Browsers attempt to achieve an absolutely bananas goal: Allow safe execution of untrusted content on a user’s device. Browsers are a huge vector for compromise of users’ devices and personal information, owing to the power and complexity. Much of the vulnerability induced by browsers occur where tradeoffs were<a class="more-link" href="https://textslashplain.com/2026/09/10/simple-browser-security-improvements/">Continue reading <span class="screen-reader-text">“Simple Browser Security Improvements”</span></a></p> 261 </div><!-- .entry-content --> 262 263 <footer class="entry-footer responsive-max-width"> 264 <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://textslashplain.com/author/ericlaw1979/">ericlaw</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><path id="a" d="M0 0h24v24H0V0z"></path></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"></use></clipPath><path clip-path="url(#b)" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></svg><a href="https://textslashplain.com/2026/09/10/simple-browser-security-improvements/" rel="bookmark"><time class="entry-date published" datetime="2026-09-10T16:18:09-05:00">2026-09-10</time><time class="updated" datetime="2026-09-10T16:20:26-05:00">2026-09-10</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
264<path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted in</span><a href="https://textslashplain.com/category/browsers/" rel="category tag">browsers</a>, <a href="https://textslashplain.com/category/design/" rel="category tag">design</a>, <a href="https://textslashplain.com/category/security/" rel="category tag">security</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><a href="https://textslashplain.com/2026/09/10/simple-browser-security-improvements/#comments">1 Comment<span class="screen-reader-text"> on Simple Browser Security Improvements</span></a></span> </footer><!-- .entry-footer --> 265</article><!-- #post-${ID} --> 266 267<article id="post-15472" class="post-15472 post type-post status-publish format-standard hentry category-security category-tech tag-defender tag-security tag-ui tag-windows entry"> 268 <header class="entry-header responsive-max-width"> 269 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/31/the-windows-security-app/" rel="bookmark">The Windows Security App</a></h2> </header><!-- .entry-header --> 270 271 272 <div class="entry-content"> 273 <p>Going back as far as the 2004 release of Windows XP SP2, Windows has offered various GUIs to help users understand the security state of their PC. In modern Windows 10 (RS2+) and Windows 11, the latest version of this graphical user interface is called the “Windows Security Center/App“. The Windows Security App (WSA) is<a class="more-link" href="https://textslashplain.com/2026/08/31/the-windows-security-app/">Continue reading <span class="screen-reader-text">“The Windows Security App”</span></a></p> 274 </div><!-- .entry-content --> 275 276 <footer class="entry-footer responsive-max-width"> 277 <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://textslashplain.com/author/ericlaw1979/">ericlaw</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><path id="a" d="M0 0h24v24H0V0z"></path></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"></use></clipPath><path clip-path="url(#b)" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></svg><a href="https://textslashplain.com/2026/08/31/the-windows-security-app/" rel="bookmark"><time class="entry-date published" datetime="2026-08-31T10:50:41-05:00">2026-08-31</time><time class="updated" datetime="2026-09-24T14:28:11-05:00">2026-09-24</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted in</span><a href="https://textslashplain.com/category/security/" rel="category tag">security</a>, <a href="https://textslashplain.com/category/tech/" rel="category tag">tech</a></span><span class="tags-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
277<path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Tags:</span><a href="https://textslashplain.com/tag/defender/" rel="tag">Defender</a>, <a href="https://textslashplain.com/tag/security/" rel="tag">security</a>, <a href="https://textslashplain.com/tag/ui/" rel="tag">UI</a>, <a href="https://textslashplain.com/tag/windows/" rel="tag">Windows</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><a href="https://textslashplain.com/2026/08/31/the-windows-security-app/#comments">1 Comment<span class="screen-reader-text"> on The Windows Security App</span></a></span> </footer><!-- .entry-footer --> 278</article><!-- #post-${ID} --> 279 280<article id="post-15316" class="post-15316 post type-post status-publish format-standard hentry category-browsers category-security tag-ai tag-infosecttp tag-scam tag-security entry"> 281 <header class="entry-header responsive-max-width"> 282 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/12/attack-technique-ai-clones/" rel="bookmark">Attack Technique: AI Clones</a></h2> </header><!-- .entry-header --> 283 284 285 <div class="entry-content"> 286 <p>Attackers are adept at using new technologies to enhance their attacks. Earlier this afternoon, for example, I got call from “American Express” suggesting that I needed to “verify a transaction.” The caller used a robotic voice similar to the one used by American Express’ automated systems, and only obvious signals that it was a scam<a class="more-link" href="https://textslashplain.com/2026/08/12/attack-technique-ai-clones/">Continue reading <span class="screen-reader-text">“Attack Technique: AI Clones”</span></a></p> 287 </div><!-- .entry-content --> 288 289 <footer class="entry-footer responsive-max-width"> 290 <span class="byline"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted by</span><span class="author vcard"><a class="url fn n" href="https://textslashplain.com/author/ericlaw1979/">ericlaw</a></span></span><span class="posted-on"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><path id="a" d="M0 0h24v24H0V0z"></path></defs><clipPath id="b"><use xlink:href="#a" overflow="visible"></use></clipPath><path clip-path="url(#b)" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></svg><a href="https://textslashplain.com/2026/08/12/attack-technique-ai-clones/" rel="bookmark"><time class="entry-date published" datetime="2026-08-12T18:08:07-05:00">2026-08-12</time><time class="updated" datetime="2026-08-18T16:17:26-05:00">2026-08-18</time></a></span><span class="cat-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Posted in</span><a href="https://textslashplain.com/category/browsers/" rel="category tag">browsers</a>, <a href="https://textslashplain.com/category/security/" rel="category tag">security</a></span><span class="tags-links"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
290<path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><span class="screen-reader-text">Tags:</span><a href="https://textslashplain.com/tag/ai/" rel="tag">AI</a>, <a href="https://textslashplain.com/tag/infosecttp/" rel="tag">InfoSecTTP</a>, <a href="https://textslashplain.com/tag/scam/" rel="tag">scam</a>, <a href="https://textslashplain.com/tag/security/" rel="tag">security</a></span><span class="comments-link"><svg class="svg-icon" width="16" height="16" aria-hidden="true" role="img" focusable="false" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg><a href="https://textslashplain.com/2026/08/12/attack-technique-ai-clones/#respond">Leave a comment<span class="screen-reader-text"> on Attack Technique: AI Clones</span></a></span> </footer><!-- .entry-footer --> 291</article><!-- #post-${ID} --> 292 293 <nav class="navigation pagination" aria-label="Posts pagination"> 294 <h2 class="screen-reader-text">Posts pagination</h2> 295 <div class="nav-links"><span aria-current="page" class="page-numbers current">1</span> 296<a class="page-numbers" href="https://textslashplain.com/author/ericlaw1979/page/2/">2</a> 297<a class="page-numbers" href="https://textslashplain.com/author/ericlaw1979/page/3/">3</a> 298<span class="page-numbers dots">…</span> 299<a class="page-numbers" href="https://textslashplain.com/author/ericlaw1979/page/87/">87</a> 300<a class="next page-numbers" href="https://textslashplain.com/author/ericlaw1979/page/2/"><span class="nav-next-text">Older posts</span> <svg class="svg-icon" width="22" height="22" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></a></div> 301 </nav> </main><!-- #main --> 302 </section><!-- #primary --> 303 304 305 </div><!-- #content --> 306 307 308 <footer id="colophon" class="site-footer responsive-max-width"> 309 310 <aside class="widget-area responsive-max-width" role="complementary" aria-label="Footer"> 311 <section id="search-5" class="widget widget_search"><h2 class="widget-title">Search Text/Plain</h2><form role="search" method="get" class="search-form" action="https://textslashplain.com/"> 312 <label> 313 <span class="screen-reader-text">Search for:</span> 314 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 315 </label> 316 <input type="submit" class="search-submit" value="Search" /> 317 </form></section><section id="pages-3" class="widget widget_pages"><h2 class="widget-title">Pages</h2> 318 <ul> 319 <li class="page_item page-item-1"><a href="https://textslashplain.com/about/">About</a></li> 320<li class="page_item page-item-5799"><a href="https://textslashplain.com/browse-all-posts/">Browse All Posts</a></li> 321<li class="page_item page-item-7207"><a href="https://textslashplain.com/categories/">Categories</a></li> 322<li class="page_item page-item-12129"><a href="https://textslashplain.com/cruises/">Cruises</a></li> 323<li class="page_item page-item-3855"><a href="https://textslashplain.com/ieinternals-archive/">IEInternals Archive</a></li> 324<li class="page_item page-item-12762"><a href="https://textslashplain.com/races/">Real-World Races</a></li> 325 </ul> 326 327 </section><section id="rss_links-3" class="widget widget_rss_links"><h2 class="widget-title">RSS</h2><p><a target="_self" href="https://textslashplain.com/feed/" title="Subscribe to posts"><img src="https://textslashplain.com/wp-content/plugins/jetpack/images/rss/orange-small.png" alt="RSS feed" /> RSS - Posts</a></p> 328</section><section id="blog-stats-3" class="widget blog-stats"><h2 class="widget-title">Blog Stats</h2><ul><li>2,517,952 hits</li></ul></section><section id="categories-5" class="widget widget_categories"><h2 class="widget-title">Categories</h2><form action="https://textslashplain.com" method="get"><label class="screen-reader-text" for="cat">Categories</label><select name='cat' id='cat' class='postform'> 329 <option value='-1'>
329Select Category</option> 330 <option class="level-0" value="49635188">bluebadge (16)</option> 331 <option class="level-0" value="178">books (3)</option> 332 <option class="level-0" value="138">browsers (186)</option> 333 <option class="level-0" value="148">design (27)</option> 334 <option class="level-0" value="6504">dev (88)</option> 335 <option class="level-0" value="10138408">fiddler (26)</option> 336 <option class="level-0" value="124">life (55)</option> 337 <option class="level-0" value="1054996">perf (20)</option> 338 <option class="level-0" value="398">politics (2)</option> 339 <option class="level-0" value="3279">privacy (27)</option> 340 <option class="level-0" value="309">reviews (2)</option> 341 <option class="level-0" value="1675">running (20)</option> 342 <option class="level-0" value="801">security (177)</option> 343 <option class="level-0" value="1400">storytelling (50)</option> 344 <option class="level-0" value="318">tech (42)</option> 345 <option class="level-0" value="200">travel (9)</option> 346 <option class="level-0" value="1">Uncategorized (16)</option> 347 <option class="level-0" value="151">web (155)</option> 348 <option class="level-0" value="374741">windmills (12)</option> 349</select> 350</form>
350<script> 351( ( dropdownId ) => { 352 const dropdown = document.getElementById( dropdownId ); 353 function onSelectChange() { 354 setTimeout( () => { 355 if ( 'escape' === dropdown.dataset.lastkey ) { 356 return; 357 } 358 if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) { 359 dropdown.parentElement.submit(); 360 } 361 }, 250 ); 362 } 363 function onKeyUp( event ) { 364 if ( 'Escape' === event.key ) { 365 dropdown.dataset.lastkey = 'escape'; 366 } else { 367 delete dropdown.dataset.lastkey; 368 } 369 } 370 function onClick() { 371 delete dropdown.dataset.lastkey; 372 } 373 dropdown.addEventListener( 'keyup', onKeyUp ); 374 dropdown.addEventListener( 'click', onClick ); 375 dropdown.addEventListener( 'change', onSelectChange ); 376})( "cat" ); 377 378//# sourceURL=WP_Widget_Categories%3A%3Awidget 379</script>
379 380</section><section id="grofile-3" class="widget widget-grofile grofile"> <img 381 src="https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=320" 382 srcset="https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=320 1x, https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=480 1.5x, https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=640 2x, https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=960 3x, https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=1280 4x" 383 class="grofile-thumbnail no-grav" 384 alt="ericlaw" 385 loading="lazy" /> 386 <div class="grofile-meta"> 387 <h4><a href="https://gravatar.com/ericlaw1979">ericlaw</a></h4> 388 <p>Impatient optimist. Dad. Author/speaker. Created Fiddler & SlickRun. PM @ Microsoft 2001-2012, and 2018-, working on Office, IE, and Edge. Now working on Microsoft Defender. My words are my own, I do not speak for any other entity.</p> 389 </div> 390 391 392 <p><a href="https://gravatar.com/ericlaw1979" class="grofile-full-link"> 393 View Full Profile → </a></p> 394 395 </section> </aside><!-- .widget-area --> 396 397 398 399 <div class="site-info"> 400 <a class="site-name" href="https://textslashplain.com/" rel="home">text/plain</a><span class="comma">,</span> 401<a href="https://wordpress.com/?ref=footer_custom_powered">Powered by WordPress.com</a>. </div><!-- .site-info --> 402 </footer><!-- #colophon --> 403 404</div><!-- #page --> 405 406<!-- -->
407<script type="speculationrules"> 408{"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/morden/*","/wp-content/themes/varia/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 409</script>
409 410<meta id="bilmur" property="bilmur:data" content="" data-customproperties="{"woo_active":"0","logged_in":"0","wptheme":"morden","wptheme_is_block":"0"}" data-provider="wordpress.com" data-service="atomic" data-site-tz="America/Chicago" >
411<script defer src="https://s0.wp.com/wp-content/js/bilmur.min.js?m=202640"></script>
411 412<link rel="prefetch" href="https://textslashplain.com/wp-content/plugins/jetpack/_inc/blocks/swiper.js" as="script" /> 413 <div id="jp-carousel-loading-overlay" style="display: none;"> 414 <div id="jp-carousel-loading-wrapper"> 415 <span id="jp-carousel-library-loading"><svg class="jetpack-spinner" width="40" height="40" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span> 416 </div> 417 </div> 418 <div class="jp-carousel-overlay" style="display: none;"> 419 420 <div class="jp-carousel-container"> 421 <!-- The Carousel Swiper --> 422 <div 423 class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions" 424 itemscope 425 itemtype="https://schema.org/ImageGallery"> 426 <div class="jp-carousel swiper-wrapper"></div> 427 <div class="jp-swiper-button-prev swiper-button-prev"> 428 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 429 <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12"> 430 <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/> 431 </mask> 432 <g mask="url(#maskPrev)"> 433 <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/> 434 </g> 435 </svg> 436 </div> 437 <div class="jp-swiper-button-next swiper-button-next"> 438 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 439 <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12"> 440 <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/> 441 </mask> 442 <g mask="url(#maskNext)"> 443 <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/> 444 </g> 445 </svg> 446 </div> 447 </div> 448 <!-- The main close buton --> 449 <div class="jp-carousel-close-hint"> 450 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 451 <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14"> 452 <path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/> 453 </mask> 454 <g mask="url(#maskClose)"> 455 <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/> 456 </g> 457 </svg> 458 </div> 459 <!-- Image info, comments and meta --> 460 <div class="jp-carousel-info"> 461 <div class="jp-carousel-info-footer"> 462 <div class="jp-carousel-pagination-container"> 463 <div class="jp-swiper-pagination swiper-pagination"></div> 464 <div class="jp-carousel-pagination"></div> 465 </div> 466 <div class="jp-carousel-photo-title-container"> 467 <div class="jp-carousel-photo-caption"></div> 468 </div> 469 <div class="jp-carousel-photo-icons-container"> 470 <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility"> 471 <span class="jp-carousel-icon"> 472 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 473 <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 474 <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/> 475 </mask> 476 <g mask="url(#maskInfo)"> 477 <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/> 478 </g> 479 </svg> 480 </span> 481 </a> 482 <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility"> 483 <span class="jp-carousel-icon"> 484 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 485 <mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 486 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/> 487 </mask> 488 <g mask="url(#maskComments)"> 489 <rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/> 490 </g> 491 </svg> 492 493 <span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span> 494 </span> 495 </a> 496 </div>
497 </div> 498 <div class="jp-carousel-info-extra"> 499 <div class="jp-carousel-info-content-wrapper"> 500 <div class="jp-carousel-photo-title-container"> 501 <div class="jp-carousel-photo-title"></div> 502 </div> 503 <div class="jp-carousel-comments-wrapper"> 504 <div id="jp-carousel-comments-loading"> 505 <span>Loading Comments...</span> 506 </div> 507 <div class="jp-carousel-comments"></div> 508 <div id="jp-carousel-comment-form-container"> 509 <span id="jp-carousel-comment-form-spinner"><svg class="jetpack-spinner" width="20" height="20" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span> 510 <div id="jp-carousel-comment-post-results"></div> 511 <form id="jp-carousel-comment-form"> 512 <label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label> 513 <textarea 514 name="comment" 515 class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" 516 id="jp-carousel-comment-form-comment-field" 517 placeholder="Write a Comment..." 518 ></textarea> 519 <div id="jp-carousel-comment-form-submit-and-info-wrapper"> 520 <div id="jp-carousel-comment-form-commenting-as"> 521 <fieldset> 522 <label for="jp-carousel-comment-form-email-field">Email (Required)</label> 523 <input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" /> 524 </fieldset> 525 <fieldset> 526 <label for="jp-carousel-comment-form-author-field">Name (Required)</label> 527 <input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" /> 528 </fieldset> 529 <fieldset> 530 <label for="jp-carousel-comment-form-url-field">Website</label> 531 <input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" /> 532 </fieldset> 533 </div> 534 <input 535 type="submit" 536 name="submit" 537 class="jp-carousel-comment-form-button" 538 id="jp-carousel-comment-form-button-submit" 539 value="Post Comment" /> 540 </div> 541 </form> 542 </div> 543 </div> 544 <div class="jp-carousel-image-meta"> 545 <div class="jp-carousel-title-and-caption"> 546 <div class="jp-carousel-photo-info"> 547 <div class="jp-carousel-caption" itemprop="caption description"></div> 548 </div> 549 550 <div class="jp-carousel-photo-description"></div> 551 </div> 552 <a class="jp-carousel-image-download" href="#" aria-label="Download image" target="_blank" style="display: none;"> 553 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 554 <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18"> 555 <path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/> 556 </mask> 557 <g mask="url(#mask0)"> 558 <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/> 559 </g> 560 </svg> 561 <span class="jp-carousel-download-text"></span> 562 </a> 563 <div class="jp-carousel-image-map" style="display: none;"></div> 564 </div> 565 </div>
566 </div> 567 </div> 568 </div> 569 570 </div> 571
571<script> 572 /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); 573 </script>
573 574
574<script id="jetpack-carousel-js-extra"> 575var jetpackSwiperLibraryPath = {"url":"https://textslashplain.com/wp-content/plugins/jetpack/_inc/blocks/swiper.js"}; 576var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https://textslashplain.com/wp-admin/admin-ajax.php","nonce":"7cb55df032","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size \u003Cspan class=\"photo-size\"\u003E{0}\u003Cspan class=\"photo-size-times\"\u003E\u00d7\u003C/span\u003E{1}\u003C/span\u003E","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https://textslashplain.com/wp-login.php?redirect_to=https%3A%2F%2Ftextslashplain.com%2F2026%2F09%2F24%2Fthe-ip-address%2F","blog_id":"1","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"]}; 577//# sourceURL=jetpack-carousel-js-extra 578</script>
vendor: 1 bytes, line 578
578
579<script type='text/javascript' src='https://textslashplain.com/_static/??wp-content/plugins/coblocks/dist/js/coblocks-animation.js,wp-content/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js?m=1790650208'></script>
vendor: 1 bytes, line 579
579
580<script data-wp-strategy="defer" defer id="tiled-gallery-js" src="https://textslashplain.com/wp-content/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js?ver=16.3-a.7"></script>
vendor: 1 bytes, line 580
580
581<script id="jetpack-stats-js-before"> 582_stq = window._stq || []; 583_stq.push([ "view", {"v":"ext","blog":"88727790","post":"0","tz":"-5","srv":"textslashplain.com","arch_author":"ericlaw1979","arch_results":"5","hp":"atomic","ac":"2","amp":"0","j":"1:16.3-a.7"} ]); 584_stq.push([ "clickTrackerInit", "88727790", "0" ]); 585//# sourceURL=jetpack-stats-js-before 586</script>
vendor: 1 bytes, line 586
586
587<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202640.js"></script>
vendor: 1 bytes, line 587
587
588<script id="wp-emoji-settings" type="application/json"> 589{"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://textslashplain.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 590</script>
vendor: 1 bytes, line 590
590
591<script type="module"> 592/*! This file is auto-generated */ 593var 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)))}); 594//# sourceURL=https://textslashplain.com/wp-includes/js/wp-emoji-loader.min.js 595</script>
595 596 597</body> 598</html> 599<!-- 600 generated in 0.273 seconds 601 82771 bytes batcached for 300 seconds 602-->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.