PageSourceSearch

https://textslashplain.com/author/ericlaw1979/

html textslashplain.com collected 2026-10-01 10:15:21 UTC 82,051 bytes, 602 lines download raw bytes

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 &#8211; 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 &raquo; Feed" href="https://textslashplain.com/feed/" />
23<link rel="alternate" type="application/rss+xml" title="text/plain &raquo; Comments Feed" href="https://textslashplain.com/comments/feed/" />
24<link rel="alternate" type="application/rss+xml" title="text/plain &raquo; 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&#038;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 &amp; 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&#038;d=identicon&#038;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&#038;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&#038;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&#038;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&#038;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">&#8220;The&#8221; 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 &#8220;What is this device&#8217;s IP address?&#8221; 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">&#8220;&#8220;The&#8221; IP Address&#8221;</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 &#8220;The&#8221; 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&#8217;ve now been working in tech for 25 years, and in that time I&#8217;ve developed some wisdom. One theme I&#8217;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&#8217;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">&#8220;Experimentation: Just Try It!&#8221;</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&#8217;s device. Browsers are a huge vector for compromise of users&#8217; 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">&#8220;Simple Browser Security Improvements&#8221;</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 &#8220;Windows Security Center/App&#8220;. 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">&#8220;The Windows Security App&#8221;</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 &#8220;American Express&#8221; suggesting that I needed to &#8220;verify a transaction.&#8221; The caller used a robotic voice similar to the one used by American Express&#8217; 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">&#8220;Attack Technique: AI Clones&#8221;</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">&hellip;</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 &hellip;" 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" />&nbsp;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&nbsp;&nbsp;(16)</option>
331	<option class="level-0" value="178">books&nbsp;&nbsp;(3)</option>
332	<option class="level-0" value="138">browsers&nbsp;&nbsp;(186)</option>
333	<option class="level-0" value="148">design&nbsp;&nbsp;(27)</option>
334	<option class="level-0" value="6504">dev&nbsp;&nbsp;(88)</option>
335	<option class="level-0" value="10138408">fiddler&nbsp;&nbsp;(26)</option>
336	<option class="level-0" value="124">life&nbsp;&nbsp;(55)</option>
337	<option class="level-0" value="1054996">perf&nbsp;&nbsp;(20)</option>
338	<option class="level-0" value="398">politics&nbsp;&nbsp;(2)</option>
339	<option class="level-0" value="3279">privacy&nbsp;&nbsp;(27)</option>
340	<option class="level-0" value="309">reviews&nbsp;&nbsp;(2)</option>
341	<option class="level-0" value="1675">running&nbsp;&nbsp;(20)</option>
342	<option class="level-0" value="801">security&nbsp;&nbsp;(177)</option>
343	<option class="level-0" value="1400">storytelling&nbsp;&nbsp;(50)</option>
344	<option class="level-0" value="318">tech&nbsp;&nbsp;(42)</option>
345	<option class="level-0" value="200">travel&nbsp;&nbsp;(9)</option>
346	<option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(16)</option>
347	<option class="level-0" value="151">web&nbsp;&nbsp;(155)</option>
348	<option class="level-0" value="374741">windmills&nbsp;&nbsp;(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 &amp; 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 &rarr;			</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="{&quot;woo_active&quot;:&quot;0&quot;,&quot;logged_in&quot;:&quot;0&quot;,&quot;wptheme&quot;:&quot;morden&quot;,&quot;wptheme_is_block&quot;:&quot;0&quot;}" 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.