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>Browse All Posts – 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" title="oEmbed (JSON)" type="application/json+oembed" href="https://textslashplain.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ftextslashplain.com%2Fbrowse-all-posts%2F" /> 25<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://textslashplain.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ftextslashplain.com%2Fbrowse-all-posts%2F&format=xml" /> 26<style id="wp-img-auto-sizes-contain-inline-css"> 27img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 28/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 29</style> 30<style id="wp-emoji-styles-inline-css"> 31 32 img.wp-smiley, img.emoji { 33 display: inline !important; 34 border: none !important; 35 box-shadow: none !important; 36 height: 1em !important; 37 width: 1em !important; 38 margin: 0 0.07em !important; 39 vertical-align: -0.1em !important; 40 background: none !important; 41 padding: 0 !important; 42 } 43/*# sourceURL=wp-emoji-styles-inline-css */ 44</style> 45<style id="wp-block-library-inline-css"> 46: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;
46--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 47 48/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/common.min.css */ 49</style> 50<style id="wp-block-pullquote-inline-css"> 51.wp-block-pullquote{box-sizing:border-box;margin:0 0 1em;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.has-text-align-center blockquote{text-align:center}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote :where(cite){color:inherit;display:block} 52/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/pullquote/style.min.css */ 53</style> 54<style id="wp-block-pullquote-theme-inline-css"> 55.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase} 56/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/pullquote/theme.min.css */ 57</style> 58<style id="wp-block-quote-inline-css"> 59.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}
59.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block} 60/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/quote/style.min.css */ 61</style> 62<style id="wp-block-quote-theme-inline-css"> 63.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none} 64/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/quote/theme.min.css */ 65</style> 66<style id="wp-block-table-inline-css"> 67.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}.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} 68/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/table/style.min.css */ 69</style> 70<style id="wp-block-table-theme-inline-css"> 71.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)} 72/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/table/theme.min.css */ 73</style> 74<style id="wp-block-heading-inline-css"> 75h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 76/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/heading/style.min.css */ 77</style> 78<style id="wp-block-media-text-inline-css"> 79.wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}
79.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__media{align-self:start}.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__media,.wp-block-media-text>.wp-block-media-text__content,.wp-block-media-text>.wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__media{align-self:end}.wp-block-media-text>.wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text>.wp-block-media-text__content{direction:ltr;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media a{display:block}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:100%;min-height:250px;position:relative}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content{grid-column:1;grid-row:2}} 80/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/media-text/style.min.css */ 81</style> 82<style id="wp-block-paragraph-inline-css"> 83.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 84/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/paragraph/style.min.css */ 85</style> 86<style id="wp-block-library-inline-css-extra"> 87.has-text-align-justify{text-align:justify;} 88/*# sourceURL=wp-block-library-inline-css */ 89</style> 90 91<style id="classic-theme-styles-inline-css"> 92.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.wp-block-tab:not(.has-text-color){color:inherit!important}.wp-block-tab:not(.has-background){background-color:inherit!important}.wp-block-tab:focus,.wp-block-tab:hover{text-decoration:none}.wp-block-tab:focus-visible{outline:auto;outline-offset:0} 93/*# sourceURL=https://textslashplain.com/wp-content/plugins/gutenberg/build/styles/block-library/classic.min.css */ 94</style> 95 96<link rel='stylesheet' id='all-css-fa5ea71b5c6a215968743319f2ee1bb5' href='https://textslashplain.com/_static/??-eJydyzEOwjAMQNELEUwrFCbEWdzEai1SJ4rdptyeMjAy0PXrv1ZcyGIkBiUtI4tCyEPK4akQWQ3UXonctzna9lc5i56D6qn9yVF4Rtv5Lz1WXNGwOpIJJVCEYeEUoaAZVVGnE1aKhzlFtsN4ZWof/Jjv3e168b7zff8G/i560g==' type='text/css' media='all' /> 97<style id="global-styles-inline-css"> 98: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,
980) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 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--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;}
98.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;} 99:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 100/*# sourceURL=global-styles-inline-css */ 101</style> 102 103<style id="jetpack-stats-inline-css"> 104img#wpstats{display:none} 105/*# sourceURL=jetpack-stats-inline-css */ 106</style> 107<link rel='stylesheet' id='dashicons-css' href='https://textslashplain.com/wp-includes/css/dashicons.min.css?ver=7.1' media='all' /> 108<link rel='stylesheet' id='all-css-dbfc0f0788537044566e09afadd38d77' href='https://textslashplain.com/_static/??-eJyNjUEKwjAQRS9kO4hI60LcFDyAJ2gmQwxNZoIzofT2jXQvLt/n895aOhQ2YoOSaoisEGpDR58ArsbkQW1LpGBvygSeNAbuTBZi7XPkHlVP698WlFyE21GP5ZcCxSXBRSEyptrKMFEh9sQYGzxlmr3f4HWYj0yajdS+xke+n4dxvFxvwzDuoj1XZw==' type='text/css' media='all' /> 109<link rel='stylesheet' id='print-css-fc6cea5c2493407b3b9187e241ceda9f' href='https://textslashplain.com/wp-content/themes/varia/print.css?m=1738187798' type='text/css' media='print' /> 110<style id="jetpack_likes-inline-css"> 111#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}
111div.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}} 112/*# sourceURL=https://textslashplain.com/wp-content/plugins/jetpack/_inc/build/likes/style.min.css */ 113</style> 114<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' /> 115<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' /> 116<link rel='stylesheet' id='all-css-7aa849586d0df372f8f5df5ea0492a17' href='https://textslashplain.com/wp-content/themes/morden/style.css?m=1738187798' type='text/css' media='all' /> 117<style id="jetpack-global-styles-frontend-style-inline-css"> 118: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;} 119/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */ 120</style> 121<link rel='stylesheet' id='all-css-949e87f4c5ee1ea4480a5eac0c7cc17d' href='https://textslashplain.com/_static/??wp-content/plugins/jetpack/modules/sharedaddy/sharing.css,wp-content/plugins/jetpack/_inc/build/social-logos/social-logos.css?m=1784576016' type='text/css' media='all' />
122<script id="jetpack-mu-wpcom-settings-js-before"> 123var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://textslashplain.com/wp-content/mu-plugins/wpcomsh/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"}; 124//# sourceURL=jetpack-mu-wpcom-settings-js-before 125</script>
125 126<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/pages/5799" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://textslashplain.com/xmlrpc.php?rsd" /> 127 128<link rel="canonical" href="https://textslashplain.com/browse-all-posts/" /> 129<link rel='shortlink' href='https://wp.me/P60i9o-1vx' /> 130 <style type="text/css"> 131 .recentcomments a { 132 display: inline !important; 133 padding: 0 !important; 134 margin: 0 !important; 135 } 136 137 table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar { 138 border: 0; 139 margin: 0; 140 } 141 142 table.recentcommentsavatartop a, table.recentcommentsavatarend a { 143 border: 0 !important; 144 background-color: transparent !important; 145 } 146 147 td.recentcommentsavatarend, td.recentcommentsavatartop { 148 padding: 0 0 1px 0; 149 margin: 0; 150 } 151 152 td.recentcommentstextend { 153 border: none !important; 154 padding: 0 0 2px 10px; 155 } 156 157 .rtl td.recentcommentstextend { 158 padding: 0 10px 2px 0; 159 } 160 161 td.recentcommentstexttop { 162 border: none; 163 padding: 0 0 0 10px; 164 } 165 166 .rtl td.recentcommentstexttop { 167 padding: 0 10px 0 0; 168 } 169 </style> 170 <meta name="description" content="This page lists only 100 posts at a time. Click the "Load more posts" button at the bottom of the page to load more." /> 171 172<!-- Jetpack Open Graph Tags --> 173<meta property="og:type" content="article" /> 174<meta property="og:title" content="Browse All Posts" /> 175<meta property="og:url" content="https://textslashplain.com/browse-all-posts/" /> 176<meta property="og:description" content="This page lists only 100 posts at a time. Click the “Load more posts” button at the bottom of the page to load more." /> 177<meta property="article:published_time" content="2022-06-22T15:01:57+00:00" /> 178<meta property="article:modified_time" content="2022-06-22T15:16:09+00:00" /> 179<meta property="og:site_name" content="text/plain" /> 180<meta property="og:image" content="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=512%2C512&ssl=1" /> 181<meta property="og:image:width" content="512" /> 182<meta property="og:image:height" content="512" /> 183<meta property="og:image:alt" content="" /> 184<meta property="og:locale" content="en_US" /> 185<meta name="twitter:text:title" content="Browse All Posts" /> 186<meta name="twitter:image" content="https://i0.wp.com/textslashplain.com/wp-content/uploads/2026/02/cropped-fb_img_1677942992666.jpg?fit=240%2C240&ssl=1" /> 187<meta name="twitter:card" content="summary" /> 188 189<!-- End Jetpack Open Graph Tags --> 190<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" /> 191<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" /> 192<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" /> 193<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" /> 194<style type="text/css" id="wp-custom-css">/* 195Welcome to Custom CSS! 196 197To learn how this works, see https://wp.me/PEmnE-Bt 198*/ 199#masthead { 200 background: #0B61A5; 201} 202 203.entry-title { 204 text-decoration-line: overline underline; 205 color: #0B61A5; 206} 207 208:root { 209 --bg-color: #ffffff; 210 --text-color: #333333; 211} 212 213@media (prefers-color-scheme: dark) { 214 :root { 215 --bg-color: #1a1a1a; 216 --text-color: #f0f0f0; 217 } 218} 219 220footer, div#page.site, .site-main, body { 221 background-color: var(--bg-color); 222 color: var(--text-color); 223 transition: background-color 0.3s ease, color 0.3s ease; 224}</style><style id="newspack-blocks-homepage-articles-inline-inline-css"> 225 .wp-block-newspack-blocks-homepage-articles article .entry-title { 226 font-size: 1.2em; 227 } 228 .wp-block-newspack-blocks-homepage-articles .entry-meta { 229 display: flex; 230 flex-wrap: wrap; 231 align-items: center; 232 margin-top: 0.5em; 233 } 234 .wp-block-newspack-blocks-homepage-articles article .entry-meta { 235 font-size: 0.8em; 236 } 237 .wp-block-newspack-blocks-homepage-articles article .avatar { 238 height: 25px; 239 width: 25px; 240 } 241 .wp-block-newspack-blocks-homepage-articles .post-thumbnail{ 242 margin: 0; 243 margin-bottom: 0.25em; 244 } 245 .wp-block-newspack-blocks-homepage-articles .post-thumbnail img { 246 height: auto; 247 width: 100%; 248 } 249 .wp-block-newspack-blocks-homepage-articles .post-thumbnail figcaption { 250 margin-bottom: 0.5em; 251 } 252 .wp-block-newspack-blocks-homepage-articles p { 253 margin: 0.5em 0; 254 } 255 256 .wpnbha.ts-3 .entry-title{font-size: 1em}.wpnbha.ts-3 article .newspack-post-subtitle, .wpnbha.ts-3 article .entry-wrapper p, .wpnbha.ts-3 article .entry-wrapper .more-link, .wpnbha.ts-3 article .entry-meta {font-size: 0.8em;} 257/*# sourceURL=newspack-blocks-homepage-articles-inline-inline-css */ 258</style> 259<link rel='stylesheet' id='all-css-41bfcf9f22a8a29b0ebf364f5909699f' href='https://textslashplain.com/_static/??-eJyNjtEOwiAMRX9IrEtM5h6Mn7IwqBMHlNAyft9tcfqoT016e3pPTcpQFIwCoajky+giQ02GAj/giZK0mfoZo6UMuggFLeLMnqgF2o6Bs4GhOG8hYuUtGzyZidcxqkQsrGaH9Vd+NMyH+tXand6N0Lu4NG0ocHUJ8y8ikC0eGYzOVBj9R35f/PugOjuiMIxZz1p0VinT3Xlc+Vu4Nu2lO3dt051ey0iCkA==' type='text/css' media='all' /> 260<link rel='stylesheet' id='gravatar-card-services-css' href='https://secure.gravatar.com/css/services.css?ver=202638' media='all' /> 261 262</head> 263 264<body class="wp-singular page-template-default page page-id-5799 wp-embed-responsive wp-theme-varia wp-child-theme-morden singular image-filters-enabled"> 265 266 267<div id="page" class="site"> 268 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 269 270 271<header id="masthead" class="site-header" role="banner"> 272 <div class="site-header-wrap responsive-max-width has-title-and-tagline"> 273 274 275 <p class="site-title"><a href="https://textslashplain.com/" rel="home">text/plain</a></p> 276 277 <p class="site-description"> 278 ericlaw talks about security, the web, and software in general </p> 279 </div><!-- .site-header-wrap --> 280</header><!-- #masthead --> 281
282 <div id="content" class="site-content"> 283 284 <section id="primary" class="content-area"> 285 <main id="main" class="site-main"> 286 287 288<article id="post-5799" class="post-5799 page type-page status-publish hentry entry"> 289 290 <header class="entry-header"> 291 292<h1 class="entry-title">Browse All Posts</h1> 293 </header> 294 295 296 <div class="entry-content"> 297 298<p class="wp-block-paragraph"><em>This page lists only <a href="https://twitter.com/ericlaw/status/1539626184488755202">100 posts at a time</a>. Click the “Load more posts” button at the bottom of the page to load more.</em></p> 299 300 301 <div 302 class="wp-block-newspack-blocks-homepage-articles is-style-default wpnbha is-grid columns-3 colgap-3 ts-3 is-style-default has-more-button" 303 style="" 304 > 305 <div data-posts data-current-post-id="5799"> 306 307 <article data-post-id="15709" 308 class="tag-browsers tag-defender tag-hsts category-design category-dev category-tech category-web type-post" 309 > 310 311 <div class="entry-wrapper"> 312 <h2 class="entry-title"><a href="https://textslashplain.com/2026/09/11/experimentation-just-try-it/" rel="bookmark">Experimentation: Just Try It!</a></h2> <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 profound despite its simplicity: In many cases, the best way to…</p> 313 <div class="entry-meta"> 314 <time class="entry-date published" datetime="2026-09-11T16:32:23-05:00">2026-09-11</time><time class="updated" datetime="2026-09-14T11:05:07-05:00">2026-09-14</time> </div><!-- .entry-meta --> 315 </div><!-- .entry-wrapper --> 316 </article> 317 318 319 <article data-post-id="15699" 320 class="category-browsers category-design category-security type-post" 321 > 322 323 <div class="entry-wrapper"> 324 <h2 class="entry-title"><a href="https://textslashplain.com/2026/09/10/simple-browser-security-improvements/" rel="bookmark">Simple Browser Security Improvements</a></h2> <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…</p> 325 <div class="entry-meta"> 326 <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> </div><!-- .entry-meta --> 327 </div><!-- .entry-wrapper --> 328 </article> 329 330 331 <article data-post-id="15472" 332 class="tag-defender tag-security tag-ui tag-windows category-security category-tech type-post" 333 > 334 335 <div class="entry-wrapper"> 336 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/31/the-windows-security-app/" rel="bookmark">The Windows Security App</a></h2> <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…</p> 337 <div class="entry-meta"> 338 <time class="entry-date published" datetime="2026-08-31T10:50:41-05:00">2026-08-31</time><time class="updated" datetime="2026-09-03T12:57:21-05:00">2026-09-03</time> </div><!-- .entry-meta --> 339 </div><!-- .entry-wrapper --> 340 </article> 341 342 343 <article data-post-id="15316" 344 class="tag-ai tag-infosecttp tag-scam tag-security category-browsers category-security type-post" 345 > 346 347 <div class="entry-wrapper"> 348 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/12/attack-technique-ai-clones/" rel="bookmark">Attack Technique: AI Clones</a></h2> <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…</p> 349 <div class="entry-meta"> 350 <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> </div><!-- .entry-meta --> 351 </div><!-- .entry-wrapper --> 352 </article> 353 354 355 <article data-post-id="15003"
356 class="category-fiddler-2 category-life category-storytelling type-post" 357 > 358 359 <div class="entry-wrapper"> 360 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/05/fiddler-in-2026/" rel="bookmark">Fiddler in 2026</a></h2> <p>I’ve shared the stories behind the Fiddler Web Debugger a fair bit over the years, in the Fiddler Book, in a talk at the CodeMash conference in 2015, and on this blog. It features prominently in my to-be-completed (some day?)…</p> 361 <div class="entry-meta"> 362 <time class="entry-date published" datetime="2026-08-05T12:29:11-05:00">2026-08-05</time><time class="updated" datetime="2026-08-13T13:56:58-05:00">2026-08-13</time> </div><!-- .entry-meta --> 363 </div><!-- .entry-wrapper --> 364 </article> 365 366 367 <article data-post-id="15031" 368 class="tag-best-practices tag-browsers tag-phishing tag-smartscreen category-browsers category-security category-storytelling category-web type-post" 369 > 370 371 <div class="entry-wrapper"> 372 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/04/security-is-hard-yall/" rel="bookmark">Web Security is Too Hard</a></h2> <p>It started innocently enough. I saw a tweet about a new product offering from one of my favorite companies, Cloudflare. Neat! I clicked through to the site and there it is: And huzzah!, my preferred handle, @ericlaw is still available.…</p> 373 <div class="entry-meta"> 374 <time class="entry-date published" datetime="2026-08-04T13:22:56-05:00">2026-08-04</time><time class="updated" datetime="2026-08-06T11:10:03-05:00">2026-08-06</time> </div><!-- .entry-meta --> 375 </div><!-- .entry-wrapper --> 376 </article> 377 378 379 <article data-post-id="14925" 380 class="tag-authenticode tag-uac tag-ux category-dev category-security type-post" 381 > 382 383 <div class="entry-wrapper"> 384 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/03/authenticode-and-uac/" rel="bookmark">Authenticode and UAC</a></h2> <p>When a user attempts to run a file with elevated privilege, Windows will show a User Account Control elevation prompt that asks whether the user trusts the file to run. For a regular file, the user will see a prompt…</p> 385 <div class="entry-meta"> 386 <time class="entry-date published" datetime="2026-08-03T15:27:34-05:00">2026-08-03</time><time class="updated" datetime="2026-08-03T16:08:53-05:00">2026-08-03</time> </div><!-- .entry-meta --> 387 </div><!-- .entry-wrapper --> 388 </article> 389 390 391 <article data-post-id="14895" 392 class="tag-infosecttp tag-security category-security category-web type-post" 393 > 394 395 <div class="entry-wrapper"> 396 <h2 class="entry-title"><a href="https://textslashplain.com/2026/08/03/attack-techniques-fake-captive-portals/" rel="bookmark">Attack Techniques: Fake Captive Portals</a></h2> <p>When a device first joins a network, the upstream network hardware has full control over its traffic and can allow/block any packets sent from the device from reaching the Internet. Many public networks (typically Wi-Fi, but sometimes wired), located in…</p> 397 <div class="entry-meta"> 398 <time class="entry-date published" datetime="2026-08-03T11:09:47-05:00">2026-08-03</time><time class="updated" datetime="2026-08-04T17:26:23-05:00">2026-08-04</time> </div><!-- .entry-meta --> 399 </div><!-- .entry-wrapper --> 400 </article> 401 402 403 <article data-post-id="14821" 404 class="tag-defender tag-security category-security type-post" 405 > 406 407 <div class="entry-wrapper"> 408 <h2 class="entry-title"><a href="https://textslashplain.com/2026/07/22/offboarding-from-microsoft-defender-for-endpoint/" rel="bookmark">Offboarding from Microsoft Defender for Endpoint</a></h2> <p>Microsoft Defender for Endpoint is a paid security product that extends Microsoft Defender Antivirus (included for free in Windows) with enterprise capabilities, including a full EDR product that reports security telemetry into a security operations center (SOC). Some recently-retired Microsoft…</p> 409 <div class="entry-meta"> 410 <time class="entry-date published" datetime="2026-07-22T18:41:07-05:00">2026-07-22</time><time class="updated" datetime="2026-07-22T22:34:39-05:00">2026-07-22</time> </div><!-- .entry-meta --> 411 </div><!-- .entry-wrapper --> 412 </article> 413 414 415 <article data-post-id="14722" 416 class="tag-browsers tag-security tag-uris category-design category-security category-web type-post" 417 > 418 419 <div class="entry-wrapper"> 420 <h2 class="entry-title"><a href="https://textslashplain.com/2026/07/17/guidelines-for-url-storage-and-comparison/" rel="bookmark">Guidelines for URL Storage and Comparison</a></h2> <p>This document contains some thoughts about the storage and comparison of URLs, common operations crucial to the correct function of security software like Microsoft SmartScreen. Importantly, URLs are also dis
420played on security surfaces to enable the user to make a…</p> 421 <div class="entry-meta"> 422 <time class="entry-date published" datetime="2026-07-17T14:49:20-05:00">2026-07-17</time><time class="updated" datetime="2026-08-06T10:22:34-05:00">2026-08-06</time> </div><!-- .entry-meta --> 423 </div><!-- .entry-wrapper --> 424 </article> 425 426 427 <article data-post-id="14496" 428 class="tag-electric category-life category-tech type-post" 429 > 430 431 <div class="entry-wrapper"> 432 <h2 class="entry-title"><a href="https://textslashplain.com/2026/07/06/driving-large-electric/" rel="bookmark">Driving (Large) Electric</a></h2> <p>Back in 2022, I brought home a new 2023 Nissan Leaf S and I’ve had a blast driving it since. In hindsight, it was one of my best purchases in a long time– it’s super fun to drive, and other…</p> 433 <div class="entry-meta"> 434 <time class="entry-date published" datetime="2026-07-06T14:42:40-05:00">2026-07-06</time><time class="updated" datetime="2026-07-30T18:06:00-05:00">2026-07-30</time> </div><!-- .entry-meta --> 435 </div><!-- .entry-wrapper --> 436 </article> 437 438 439 <article data-post-id="14462" 440 class="tag-career category-life category-storytelling category-tech type-post" 441 > 442 443 <div class="entry-wrapper"> 444 <h2 class="entry-title"><a href="https://textslashplain.com/2026/06/18/a-quarter-century-in-tech/" rel="bookmark">A Quarter Century in Tech</a></h2> <p>Today marks my 25th anniversary of full-time work in tech. June 18, 2001 – My third “New Employee Orientation” at Microsoft, starting my full-time employment after University. I worked on the Office Online PM team for three years before moving…</p> 445 <div class="entry-meta"> 446 <time class="entry-date published" datetime="2026-06-18T13:29:04-05:00">2026-06-18</time><time class="updated" datetime="2026-06-19T14:26:14-05:00">2026-06-19</time> </div><!-- .entry-meta --> 447 </div><!-- .entry-wrapper --> 448 </article> 449 450 451 <article data-post-id="14427" 452 class="tag-amsi tag-defender tag-security tag-windows category-design category-dev category-security type-post" 453 > 454 455 <div class="entry-wrapper"> 456 <h2 class="entry-title"><a href="https://textslashplain.com/2026/06/10/participatory-extensible-security/" rel="bookmark">Participatory Extensible Security</a></h2> <p>In the past, I’ve explained how security products combine sensors and throttles with threat intelligence to protect users and devices from attack. I’ve also outlined how the evolution of software, including increased complexity and a focus on privacy, have made…</p> 457 <div class="entry-meta"> 458 <time class="entry-date published" datetime="2026-06-10T12:04:42-05:00">2026-06-10</time><time class="updated" datetime="2026-08-03T13:23:28-05:00">2026-08-03</time> </div><!-- .entry-meta --> 459 </div><!-- .entry-wrapper --> 460 </article> 461 462 463 <article data-post-id="14097" 464 class="tag-races category-running type-post" 465 > 466 467 <div class="entry-wrapper"> 468 <h2 class="entry-title"><a href="https://textslashplain.com/2026/05/07/spring-10ks/" rel="bookmark">Spring 10Ks</a></h2> <p>After two solid half-marathons early this year, I was excited for the start of the 10K season to see whether I could keep improving my times. I had mixed results. Cap10K On Sunday, April 12th, I awoke at 5:20 before…</p> 469 <div class="entry-meta"> 470 <time class="entry-date published" datetime="2026-05-07T15:13:34-05:00">2026-05-07</time><time class="updated" datetime="2026-05-12T22:00:29-05:00">2026-05-12</time> </div><!-- .entry-meta --> 471 </div><!-- .entry-wrapper --> 472 </article> 473 474 475 <article data-post-id="14278" 476 class="tag-encryption tag-infosecttp category-design category-security type-post" 477 > 478 479 <div class="entry-wrapper"> 480 <h2 class="entry-title"><a href="https://textslashplain.com/2026/05/05/cybersecurity-metaphors/" rel="bookmark">Cybersecurity Metaphors</a></h2> <p>Uneven Protection Attacks flow like water: if you have a hole in your defenses, attacks will flow through that hole. Unless they’re trying to win a prize or show off, attackers do not bother attacking where your security posture is…</p> 481 <div class="entry-meta"> 482 <time class="entry-date published" datetime="2026-05-05T13:41:15-05:00">2026-05-05</time><time class="updated" datetime="2026-05-28T15:37:25-05:00">2026-05-28</time> </div><!-- .entry-meta --> 483 </div><!-- .entry-wrapper --> 484 </article> 485 486 487 <article data-post-id="14246" 488 class="tag-defender tag-infosecttp tag-security category-security type-post" 489 > 490 491 <div class="entry-wrapper"> 492 <h2 class="entry-title"><a href="https://textslashplain.com/2026/04/29/exploiting-vulnerable-drivers/" rel="bookmark">Exploiting Vulnerable Drivers</a></h2> <p>Often, attackers will attempt to prevent security software from interfer
492ing with their attack chains by abusing a vulnerable driver to kill or otherwise disable the system’s security software (antivirus/edr/etc). Because drivers run in highly-privileged OS Kernel mode, it is difficult…</p> 493 <div class="entry-meta"> 494 <time class="entry-date published updated" datetime="2026-04-29T13:52:01-05:00">2026-04-29</time> </div><!-- .entry-meta --> 495 </div><!-- .entry-wrapper --> 496 </article> 497 498 499 <article data-post-id="14168" 500 class="tag-authenticode tag-defender tag-security tag-smartappcontrol tag-smartscreen tag-windows category-security type-post" 501 > 502 503 <div class="entry-wrapper"> 504 <h2 class="entry-title"><a href="https://textslashplain.com/2026/04/28/smart-app-control/" rel="bookmark">Smart App Control</a></h2> <p>Users of modern versions of Windows 11 have a powerful security feature for keeping their devices secure, known as Smart App Control. I’ve talked about this feature a few times over the last year, but in April 2026, a powerful…</p> 505 <div class="entry-meta"> 506 <time class="entry-date published" datetime="2026-04-28T16:19:37-05:00">2026-04-28</time><time class="updated" datetime="2026-09-03T12:34:30-05:00">2026-09-03</time> </div><!-- .entry-meta --> 507 </div><!-- .entry-wrapper --> 508 </article> 509 510 511 <article data-post-id="14194" 512 class="tag-infosecttp tag-security category-security type-post" 513 > 514 515 <div class="entry-wrapper"> 516 <h2 class="entry-title"><a href="https://textslashplain.com/2026/04/24/attack-techniques-rmm-abuse/" rel="bookmark">Attack Techniques: RMM Abuse</a></h2> <p>After you sign up on the Social Security Administration’s website, they’ll send you a yearly email inviting you to check out your benefits. Flipping through my Junk Mail folder this afternoon, I found the following email: It looks reasonably plausible,…</p> 517 <div class="entry-meta"> 518 <time class="entry-date published" datetime="2026-04-24T14:49:53-05:00">2026-04-24</time><time class="updated" datetime="2026-05-27T11:47:36-05:00">2026-05-27</time> </div><!-- .entry-meta --> 519 </div><!-- .entry-wrapper --> 520 </article> 521 522 523 <article data-post-id="14062" 524 class="tag-defender tag-malware category-security type-post" 525 > 526 527 <div class="entry-wrapper"> 528 <h2 class="entry-title"><a href="https://textslashplain.com/2026/04/10/understanding-defender-av-scans/" rel="bookmark">Understanding Defender AV Scans</a></h2> <p>Microsoft Defender Antivirus Defender is intended to operate silently in the background, without requiring any active attention from the user. Because Defender is included for free as a component of Windows, it doesn’t need to nag or otherwise bother the…</p> 529 <div class="entry-meta"> 530 <time class="entry-date published" datetime="2026-04-10T16:01:36-05:00">2026-04-10</time><time class="updated" datetime="2026-08-19T15:41:03-05:00">2026-08-19</time> </div><!-- .entry-meta --> 531 </div><!-- .entry-wrapper --> 532 </article> 533 534 535 <article data-post-id="13944" 536 class="tag-motw tag-security tag-smartappcontrol tag-smartscreen tag-windows category-security type-post" 537 > 538 539 <div class="entry-wrapper"> 540 <h2 class="entry-title"><a href="https://textslashplain.com/2026/03/24/windows-choose-where-to-get-apps/" rel="bookmark">Windows: Choose Where To Get Apps</a></h2> <p>Modern versions of Windows offer a setting named “Choose where to get apps” which can reduce attack surface by limiting the locations from which applications can be installed. Internally, we’ve called this feature “Smart Install”. By default, this option is…</p> 541 <div class="entry-meta"> 542 <time class="entry-date published" datetime="2026-03-24T17:06:37-05:00">2026-03-24</time><time class="updated" datetime="2026-04-21T12:14:31-05:00">2026-04-21</time> </div><!-- .entry-meta --> 543 </div><!-- .entry-wrapper --> 544 </article> 545 546 547 <article data-post-id="13860" 548 class="tag-races category-running type-post" 549 > 550 551 <div class="entry-wrapper"> 552 <h2 class="entry-title"><a href="https://textslashplain.com/2026/02/03/winter-2026-runs/" rel="bookmark">Winter 2026 Runs</a></h2> <p>
552I did a reasonably good job running on my treadmill throughout the fall of 2025, in preparation for my second summit of Mount Kilimanjaro over New Years (blog post to come). Run for the Water 10 Miler On November 9th,…</p> 553 <div class="entry-meta"> 554 <time class="entry-date published" datetime="2026-02-03T17:59:04-06:00">2026-02-03</time><time class="updated" datetime="2026-02-04T14:56:35-06:00">2026-02-04</time> </div><!-- .entry-meta --> 555 </div><!-- .entry-wrapper --> 556 </article> 557 558 559 <article data-post-id="13827" 560 class="tag-defender tag-security tag-smartappcontrol tag-smartscreen category-dev category-security type-post" 561 > 562 563 <div class="entry-wrapper"> 564 <h2 class="entry-title"><a href="https://textslashplain.com/2026/01/27/microsoft-defender-false-positives/" rel="bookmark">Security Software False Positives</a></h2> <p>Software developers and end-users are often interested in understanding how to resolve incorrect detections from their antivirus/security software, including Microsoft Defender. Such False Positives (FPs) can disrupt your use of your device by incorrectly blocking innocuous files or processes. However,…</p> 565 <div class="entry-meta"> 566 <time class="entry-date published" datetime="2026-01-27T13:22:47-06:00">2026-01-27</time><time class="updated" datetime="2026-09-08T12:15:43-05:00">2026-09-08</time> </div><!-- .entry-meta --> 567 </div><!-- .entry-wrapper --> 568 </article> 569 570 571 <article data-post-id="13672" 572 class="tag-browsers tag-chrome tag-security tag-ux category-design category-security type-post" 573 > 574 575 <div class="entry-wrapper"> 576 <h2 class="entry-title"><a href="https://textslashplain.com/2025/12/03/security-surfaces/" rel="bookmark">Security Surfaces</a></h2> <p>An important concept in Usable Security is whether a given UI represents a “security surface.” Formally, a security surface is a User Interface component in which the user is presented with information they rely upon to make a security decision.…</p> 577 <div class="entry-meta"> 578 <time class="entry-date published" datetime="2025-12-03T15:15:46-06:00">2025-12-03</time><time class="updated" datetime="2026-01-13T12:03:09-06:00">2026-01-13</time> </div><!-- .entry-meta --> 579 </div><!-- .entry-wrapper --> 580 </article> 581 582 583 <article data-post-id="13712" 584 class="tag-defender tag-security tag-windows category-security type-post" 585 > 586 587 <div class="entry-wrapper"> 588 <h2 class="entry-title"><a href="https://textslashplain.com/2025/11/19/defensive-technology-ransomware-data-recovery/" rel="bookmark">Defensive Technology: Ransomware Data Recovery</a></h2> <p>In a prior installment we looked at Controlled Folder Access, a Windows feature designed to hamper ransomware attacks by preventing untrusted processes from modifying files in certain user folders. In today’s post, we look at the other feature on the…</p> 589 <div class="entry-meta"> 590 <time class="entry-date published" datetime="2025-11-19T13:13:50-06:00">2025-11-19</time><time class="updated" datetime="2026-08-12T13:43:24-05:00">2026-08-12</time> </div><!-- .entry-meta --> 591 </div><!-- .entry-wrapper --> 592 </article> 593 594 595 <article data-post-id="13630" 596 class="tag-download tag-motw tag-security tag-windows tag-zones category-security category-tech type-post" 597 > 598 599 <div class="entry-wrapper"> 600 <h2 class="entry-title"><a href="https://textslashplain.com/2025/10/20/windows-shell-previews/" rel="bookmark">Windows Shell Previews – Restricted</a></h2> <p>Windows users who installed the October 2025 Security Updates may have noticed an unexpected change if they use the Windows Explorer preview pane. When previewing many downloaded files, the preview is now replaced with the following text: While it also…</p> 601 <div class="entry-meta"> 602 <time class="entry-date published" datetime="2025-10-20T11:06:58-05:00">2025-10-20</time><time class="updated" datetime="2026-04-15T13:03:19-05:00">2026-04-15</time> </div><!-- .entry-meta --> 603 </div><!-- .entry-wrapper --> 604 </article> 605 606 607 <article data-post-id="13488" 608 class="tag-life category-storytelling type-post" 609 > 610 611 <div class="entry-wrapper"> 612 <h2 class="entry-title"><a href="https://textslashplain.com/2025/09/08/an-improbable-recovery/" rel="bookmark">An Improbable Recovery</a></h2> <p>Way back on May 11th of 2022, I was visiting my team (Edge browser) for the week in Redmond, Washington. On Wednesday night, I left my ThinkPad X1 Extreme laptop in a work area on the 4th floor of the…</p> 613 <div class="entry-meta"> 614 <time class="entry-date published" datetime="2025-09-08T16:32:22-05:00">2025-09-08</time><time class="updated" datetime="2025-09-24T13:54:48-05:00">2025-09-24</time> </div><!-- .entry-meta --> 615 </div><!-- .entry-wrapper --> 616 </article> 617 618 619 <article data-post-id="13436" 620 class="tag-ai tag-infosecttp tag-security category-design category-security category-web type-post" 621 > 622 623 <div class="entry-wrapper"> 624 <h2 class="entry-title"><a href="https://textslashplain.com/2025/09/05/ai-injection-attacks/" rel="bookmark">AI Injection Attacks</a></h2> <p>A hot infosec topic these days is “How can we prevent abuse of AI agents?” While AI introduces awesome new capabilities, it also entails an enormous set of risks from the obvious and mundane to the esoteric and elaborate. As…</p> 625 <div class="entry-meta"> 626 <time class="entry-date published" datetime="2025-09-05T14:26:50-05:00">2025-09-05</time><time class="updated" datetime="2026-03-09T17:52:40-05:00">2026-03-09</time> </div><!-- .entry-meta --> 627 </div><!-- .entry-wrapper --> 628 </article> 629 630 631 <article data-post-id="13386" 632 class="tag-life tag-travel tag-vacation category-life category-travel type-post" 633 > 634 635 <div class="entry-wrapper"> 636 <h2 class="entry-title"><a href="https://textslashplain.com/2025/08/25/2025-summer-vacation/" rel="bookmark">2025 Summer Vacation</a></h2> <p>The boys and I went to Maryland for the first half of August to visit family and check out some roller coasters. They hit Kings Dominion, Busch Gardens, Six Flags America (final season), and Hershey Park. We also hiked up…</p> 637 <div class="entry-meta"> 638 <time class="entry-date published" datetime="2025-08-25T15:07:51-05:00">2025-08-25</time>
638<time class="updated" datetime="2025-08-25T15:09:34-05:00">2025-08-25</time> </div><!-- .entry-meta --> 639 </div><!-- .entry-wrapper --> 640 </article> 641 642 643 <article data-post-id="13355" 644 class="tag-defender tag-security category-security type-post" 645 > 646 647 <div class="entry-wrapper"> 648 <h2 class="entry-title"><a href="https://textslashplain.com/2025/08/20/security-product-efficacy/" rel="bookmark">Security Product Efficacy</a></h2> <p>I’ve written about security products previously, laying out the framing that security products combine sensors and throttles with threat intelligence to provide protection against threats. As a product engineer, I spend most of my time thinking about how to improve…</p> 649 <div class="entry-meta"> 650 <time class="entry-date published" datetime="2025-08-20T16:24:43-05:00">2025-08-20</time><time class="updated" datetime="2025-08-21T10:46:28-05:00">2025-08-21</time> </div><!-- .entry-meta --> 651 </div><!-- .entry-wrapper --> 652 </article> 653 654 655 <article data-post-id="13223" 656 class="tag-browsers tag-bugs tag-chrome tag-edge tag-windows category-browsers category-web type-post" 657 > 658 659 <div class="entry-wrapper"> 660 <h2 class="entry-title"><a href="https://textslashplain.com/2025/06/12/family-safety-content-filtering/" rel="bookmark">Family Safety Content Filtering</a></h2> <p>Microsoft Family Safety is a feature of Windows that allows parents to control their children’s access to apps and content in Windows. The feature is tied to the user accounts of the parent(s) and child(ren). When I visit <a href="https://family.microsoft.com" rel="nofollow">https://family.microsoft.com</a> and…</p> 661 <div class="entry-meta"> 662 <time class="entry-date published" datetime="2025-06-12T15:05:11-05:00">2025-06-12</time><time class="updated" datetime="2025-06-25T10:53:48-05:00">2025-06-25</time> </div><!-- .entry-meta --> 663 </div><!-- .entry-wrapper --> 664 </article> 665 666 667 <article data-post-id="13188" 668 class="tag-network-protection tag-privacy category-privacy category-security type-post" 669 > 670 671 <div class="entry-wrapper"> 672 <h2 class="entry-title"><a href="https://textslashplain.com/2025/06/10/apple-url-filter-api/" rel="bookmark">First Look: Apple’s NEURLFilter API</a></h2> <p>At WWDC 2025, Apple introduced an interesting new API, NEURLFilter, to respond to a key challenge we’ve talked about previously: the inherent conflict between privacy and security when trying to protect users against web threats. That conflict means that security…</p> 673 <div class="entry-meta"> 674 <time class="entry-date published" datetime="2025-06-10T18:07:01-05:00">2025-06-10</time><time class="updated" datetime="2025-06-12T10:23:46-05:00">2025-06-12</time> </div><!-- .entry-meta --> 675 </div><!-- .entry-wrapper --> 676 </article> 677 678 679 <article data-post-id="13137" 680 class="tag-browsers tag-defender tag-edge tag-networking category-browsers category-web type-post" 681 > 682 683 <div class="entry-wrapper"> 684 <h2 class="entry-title"><a href="https://textslashplain.com/2025/05/27/web-category-filtering/" rel="bookmark">Web Category Filtering</a></h2> <p>Since the first days of the web, users and administrators have sought to control the flow of information from the Internet to the local device. There are many different ways to implement internet filters, and numerous goals that organizations may…</p> 685 <div class="entry-meta"> 686 <time class="entry-date published" datetime="2025-05-27T14:42:18-05:00">2025-05-27</time><time class="updated" datetime="2026-07-15T13:48:27-05:00">2026-07-15</time> </div><!-- .entry-meta --> 687 </div><!-- .entry-wrapper --> 688 </article> 689 690 691 <article data-post-id="13078" 692 class="tag-debugging tag-fiddler category-dev category-fiddler-2 type-post" 693 > 694 695 <div class="entry-wrapper"> 696 <h2 class="entry-title"><a href="https://textslashplain.com/2025/05/16/fiddler-in-2025/" rel="bookmark">Fiddler in 2025</a></h2> <p>The Fiddler Web Debugger is now old enough to drink, but I still use it pretty much every day. Fiddler hasn’t aged entirely gracefully as platforms and standards have changed over the decades, but the tool is extensible enough that…</p> 697 <div class="entry-meta"> 698 <time class="entry-date published" datetime="2025-05-16T09:53:32-05:00">2025-05-16</time><time class="updated" datetime="2025-06-04T09:55:34-05:00">2025-06-04</time> </div><!-- .entry-meta --> 699 </div><!-- .entry-wrapper --> 700 </article> 701 702 703 <article data-post-id="12959" 704 class="tag-infosecttp tag-osint tag-scam tag-smartscreen category-security category-tech category-web type-post" 705 > 706 707 <div class="entry-wrapper"> 708 <h2 class="entry-title"><a href="https://textslashplain.com/2025/04/24/attack-techniques-fake-literally-everything/" rel="bookmark">Attack Techniques: Fake Literally Everything! (Escrow Scam)</a></h2> <p>The team recently got a false-negative report on the SmartScreen phishing filter complaining that we fail to block firstline-trucking.com. I passed it along to our graders but then took a closer look myself. I figured that maybe the legit site…</p> 709 <div class="entry-meta"> 710 <time class="entry-date published" datetime="2025-04-24T17:27:03-05:00">2025-04-24</time><time class="updated" datetime="2026-08-25T16:43:17-05:00">2026-08-25</time> </div><!-- .entry-meta --> 711 </div><!-- .entry-wrapper --> 712 </article> 713 714 715 <article data-post-id="12884"
716 class="tag-ai tag-infosecttp tag-security category-dev category-security type-post" 717 > 718 719 <div class="entry-wrapper"> 720 <h2 class="entry-title"><a href="https://textslashplain.com/2025/04/15/vibe-coding-for-security/" rel="bookmark">Vibe-coding for security</a></h2> <p>Recently, there’s been a surge in the popularity of trojan clipboard attacks whereby the attacker convinces the user to carry their attack payload across a security boundary and compromise the device. Meanwhile, AI hype is all the rage. I recent…</p> 721 <div class="entry-meta"> 722 <time class="entry-date published" datetime="2025-04-15T12:03:07-05:00">2025-04-15</time><time class="updated" datetime="2025-09-23T17:37:31-05:00">2025-09-23</time> </div><!-- .entry-meta --> 723 </div><!-- .entry-wrapper --> 724 </article> 725 726 727 <article data-post-id="12737" 728 class="tag-defender tag-fiddler tag-network-protection tag-networking tag-security tag-smartscreen tag-troubleshooting category-privacy category-security type-post" 729 > 730 731 <div class="entry-wrapper"> 732 <h2 class="entry-title"><a href="https://textslashplain.com/2025/04/07/understanding-smartscreen-and-network-protection/" rel="bookmark">Understanding SmartScreen and Network Protection</a></h2> <p>The vast majority of cyberthreats arrive via one of two related sources: That means that by combining network-level sensors and throttles with threat intelligence (about attacker sites), security software can block a huge percentage of threats. Protection Implementation On Windows…</p> 733 <div class="entry-meta"> 734 <time class="entry-date published" datetime="2025-04-07T13:17:57-05:00">2025-04-07</time><time class="updated" datetime="2026-07-09T09:57:36-05:00">2026-07-09</time> </div><!-- .entry-meta --> 735 </div><!-- .entry-wrapper --> 736 </article> 737 738 739 <article data-post-id="12749" 740 class="tag-fitness tag-races category-running type-post" 741 > 742 743 <div class="entry-wrapper"> 744 <h2 class="entry-title"><a href="https://textslashplain.com/2025/04/07/a-solid-10k/" rel="bookmark">A Solid 10K</a></h2> <p>After last year’s disappointing showing at the Capitol 10K, I wanted to do better this time around. We left the house at 6:47; traffic was light and we pulled into my regular parking spot at 7:09. It was a very…</p> 745 <div class="entry-meta"> 746 <time class="entry-date published" datetime="2025-04-07T09:24:14-05:00">2025-04-07</time><time class="updated" datetime="2025-08-19T11:10:55-05:00">2025-08-19</time> </div><!-- .entry-meta --> 747 </div><!-- .entry-wrapper --> 748 </article> 749 750 751 <article data-post-id="11835" 752 class="tag-infosecttp tag-security tag-windows category-dev category-security type-post" 753 > 754 755 <div class="entry-wrapper"> 756 <h2 class="entry-title"><a href="https://textslashplain.com/2025/04/01/defensive-technology-exploit-protection/" rel="bookmark">Defensive Technology: Exploit Protection</a></h2> <p>September 2025 tl;dr: You probably should not touch Exploit Protection settings. This post explains what the feature does and how it works, but admins and end-users should probably just leave it alone to do what it does by default. Over…</p> 757 <div class="entry-meta"> 758 <time class="entry-date published" datetime="2025-04-01T12:27:41-05:00">2025-04-01</time><time class="updated" datetime="2025-09-29T15:40:24-05:00">2025-09-29</time> </div><!-- .entry-meta --> 759 </div><!-- .entry-wrapper --> 760 </article> 761 762 763 <article data-post-id="10930" 764 class="tag-infosecttp tag-network-protection tag-networking tag-security category-dev category-security category-tech type-post" 765 > 766 767 <div class="entry-wrapper"> 768 <h2 class="entry-title"><a href="https://textslashplain.com/2025/03/31/defensive-technology-windows-filtering-platform/" rel="bookmark">Defensive Technology: Windows Filtering Platform</a></h2> <p>Last November, I wrote a post about the basics of security software. In that post, I laid out how security software is composed of sensors and throttles controlled by threat intelligence. In today’s post, we’ll look at the Windows Filtering…</p> 769 <div class="entry-meta"> 770 <time class="entry-date published" datetime="2025-03-31T15:48:23-05:00">2025-03-31</time><time class="updated" datetime="2026-09-10T12:06:19-05:00">2026-09-10</time> </div><!-- .entry-meta --> 771 </div><!-- .entry-wrapper --> 772 </article> 773 774 775 <article data-post-id="12631" 776 class="tag-authenticode tag-signing tag-smartappcontrol tag-smartscreen category-dev category-security category-tech type-post" 777 > 778 779 <div class="entry-wrapper"> 780 <h2 class="entry-title"><a href="https://textslashplain.com/2025/03/31/runtime-signature-checking-threat-model/" rel="bookmark">Runtime Signature Checking Threat Model</a></h2> <p>Telerik developers recently changed Fiddler to validate the signature on extension assemblies before they load. If the assembly is unsigned, the user is presented with the following message: In theory, this seems fine/good– signing files is a good thing! However,…</p> 781 <div class="entry-meta"> 782 <time class="entry-date published" datetime="2025-03-31T11:10:35-05:00">2025-03-31</time><time class="updated" datetime="2026-05-04T15:00:06-05:00">2026-05-04</time> </div><!-- .entry-meta --> 783 </div><!-- .entry-wrapper --> 784 </article> 785 786 787 <article data-post-id="12541" 788 class="tag-cruising category-life category-storytelling category-travel type-post" 789 > 790 791 <div class="entry-wrapper"> 792 <h2 class="entry-title"><a href="https://textslashplain.com/2025/03/26/spring-break/" rel="bookmark">Spring Break</a></h2> <p>Spring break is one of the best times to be in Texas. The weather’s usually nice, and outdoor fun things to do aren’t miserably hot. This year, the kids are obsessed with roller coasters, so we bought Season Passe
792s to…</p> 793 <div class="entry-meta"> 794 <time class="entry-date published" datetime="2025-03-26T12:03:27-05:00">2025-03-26</time><time class="updated" datetime="2025-03-26T22:01:15-05:00">2025-03-26</time> </div><!-- .entry-meta --> 795 </div><!-- .entry-wrapper --> 796 </article> 797 798 799 <article data-post-id="12510" 800 class="tag-bisect tag-chromium tag-debugging tag-download tag-motw tag-security tag-sysinternals tag-zones category-security type-post" 801 > 802 803 <div class="entry-wrapper"> 804 <h2 class="entry-title"><a href="https://textslashplain.com/2025/03/25/debugging-chromium/" rel="bookmark">Debugging Chromium</a></h2> <p>A customer recently complained that after changing the Windows Security Zone Zone configuration to Disable launching apps and unsafe files: … trying to right-click and “Save As” on a Text file loaded in Chrome fails in a weird way. Specifically,…</p> 805 <div class="entry-meta"> 806 <time class="entry-date published" datetime="2025-03-25T12:50:47-05:00">2025-03-25</time><time class="updated" datetime="2025-03-27T14:42:39-05:00">2025-03-27</time> </div><!-- .entry-meta --> 807 </div><!-- .entry-wrapper --> 808 </article> 809 810 811 <article data-post-id="12435" 812 class="tag-authenticode tag-azure tag-cloud tag-security tag-signing category-dev category-security category-tech type-post" 813 > 814 815 <div class="entry-wrapper"> 816 <h2 class="entry-title"><a href="https://textslashplain.com/2025/03/12/authenticode-in-2025-azure-trusted-signing/" rel="bookmark">Authenticode in 2025 – Azure Trusted Signing</a></h2> <p>I’ve written about signing your code using Authenticode a lot over the years, from a post in 2015 about my first hardware token to a 2024 post about signing using a Digicert HSM. Recently, Azure opened their Trusted Signing Service…</p> 817 <div class="entry-meta"> 818 <time class="entry-date published" datetime="2025-03-12T13:40:42-05:00">2025-03-12</time><time class="updated" datetime="2026-03-12T17:49:05-05:00">2026-03-12</time> </div><!-- .entry-meta --> 819 </div><!-- .entry-wrapper --> 820 </article> 821 822 823 <article data-post-id="11416" 824 class="tag-security category-dev category-security category-web type-post" 825 > 826 827 <div class="entry-wrapper"> 828 <h2 class="entry-title"><a href="https://textslashplain.com/2025/02/21/guidelines-for-secure-filename-display/" rel="bookmark">Guidelines for Secure Filename Display</a></h2> <p>Many years ago, I wrote the first drafts of Chromium’s Guidelines for Secure URL Display. These guidelines were designed to help feature teams avoid security bugs whereby a user might misinterpret a URL when making a security decision. From a…</p> 829 <div class="entry-meta"> 830 <time class="entry-date published" datetime="2025-02-21T14:32:53-06:00">2025-02-21</time><time class="updated" datetime="2026-06-10T12:33:58-05:00">2026-06-10</time> </div><!-- .entry-meta --> 831 </div><!-- .entry-wrapper --> 832 </article> 833 834 835 <article data-post-id="12343" 836 class="tag-infosecttp tag-phishing tag-scam category-security category-web type-post" 837 > 838 839 <div class="entry-wrapper"> 840 <h2 class="entry-title"><a href="https://textslashplain.com/2025/02/20/attack-techniques-i-already-hacked-you-scams/" rel="bookmark">Attack Techniques: “I Already Hacked You” Scams</a></h2> <p>Scammers often try to convince you that you’ve already been hacked and you must contact them or send them money to prevent something worse from happening. I write about these a bunch: Another common “Bad thing already happened” scam is…</p> 841 <div class="entry-meta"> 842 <time class="entry-date published" datetime="2025-02-20T10:05:14-06:00">2025-02-20</time><time class="updated" datetime="2025-04-24T14:11:11-05:00">2025-04-24</time> </div><!-- .entry-meta --> 843 </div><!-- .entry-wrapper --> 844 </article> 845 846 847 <article data-post-id="12262" 848 class="tag-races category-running type-post" 849 > 850 851 <div class="entry-wrapper"> 852 <h2 class="entry-title"><a href="https://textslashplain.com/2025/02/10/winter-2025-races/" rel="bookmark">Winter 2025 Races</a></h2> <p>Austin Half On January 19th, I ran the newly-renamed “Austin International Half Marathon” (formerly 3M). The night before I had spaghetti and meat sauce with the kids, and the morning of, I woke at 5:15 and had a cup of…</p> 853 <div class="entry-meta"> 854 <time class="entry-date published" datetime="2025-02-10T12:33:07-06:00">2025-02-10</time><time class="updated" datetime="2025-02-13T17:40:39-06:00">2025-02-13</time> </div><!-- .entry-meta --> 855 </div><!-- .entry-wrapper --> 856 </article> 857 858 859 <article data-post-id="12153" 860 class="tag-cruising tag-travel category-life category-running category-travel type-post" 861 > 862 863 <div class="entry-wrapper"> 864 <h2 class="entry-title"><a href="https://textslashplain.com/2025/01/14/welcome-to-2025/" rel="bookmark">Welcome to 2025!</a></h2> <p>
864I’d intended to write this post weeks ago, but I’ve been rather unproductive. I ran the Dallas Half Marathon with an out-of-town friend on December 15th. It was a hard and very slow trek, but I managed to get back…</p> 865 <div class="entry-meta"> 866 <time class="entry-date published" datetime="2025-01-14T17:23:46-06:00">2025-01-14</time><time class="updated" datetime="2025-01-16T13:18:15-06:00">2025-01-16</time> </div><!-- .entry-meta --> 867 </div><!-- .entry-wrapper --> 868 </article> 869 870 871 <article data-post-id="12063" 872 class="tag-life tag-mortality category-life type-post" 873 > 874 875 <div class="entry-wrapper"> 876 <h2 class="entry-title"><a href="https://textslashplain.com/2024/12/13/on-mortality/" rel="bookmark">On Mortality</a></h2> <p>Content Warning: This post is about mortality. This morning, I awoke from a dream. I’d just discovered a ticking time bomb was a fake, and the dream ended as I said to my companion “There’s nothing quite as exhilarating as…</p> 877 <div class="entry-meta"> 878 <time class="entry-date published" datetime="2024-12-13T10:48:38-06:00">2024-12-13</time><time class="updated" datetime="2026-04-09T17:18:31-05:00">2026-04-09</time> </div><!-- .entry-meta --> 879 </div><!-- .entry-wrapper --> 880 </article> 881 882 883 <article data-post-id="12022" 884 class="tag-motw tag-security tag-zones category-security type-post" 885 > 886 887 <div class="entry-wrapper"> 888 <h2 class="entry-title"><a href="https://textslashplain.com/2024/12/12/mark-of-the-web-real-world-protection/" rel="bookmark">Mark-of-the-Web: Real-World Protection</a></h2> <p>Two years ago, I wrote up some best practices for developers who want to take a file’s security origin into account when deciding how to handle it. That post was an update of a post I’d written six years prior…</p> 889 <div class="entry-meta"> 890 <time class="entry-date published" datetime="2024-12-12T13:21:14-06:00">2024-12-12</time><time class="updated" datetime="2026-08-31T13:02:09-05:00">2026-08-31</time> </div><!-- .entry-meta --> 891 </div><!-- .entry-wrapper --> 892 </article> 893 894 895 <article data-post-id="11990" 896 class="tag-chromium tag-dev tag-hardware category-dev category-tech type-post" 897 > 898 899 <div class="entry-wrapper"> 900 <h2 class="entry-title"><a href="https://textslashplain.com/2024/12/06/my-new-desktop/" rel="bookmark">My New Desktop</a></h2> <p>After a frustrating morning with my troublesome P1 Gen 7 laptop, I decided it was time to bite the bullet and stop working off laptops full-time, a habit that I inexplicably fell into at the start of the pandemic. I…</p> 901 <div class="entry-meta"> 902 <time class="entry-date published" datetime="2024-12-06T21:58:01-06:00">2024-12-06</time><time class="updated" datetime="2024-12-18T09:52:56-06:00">2024-12-18</time> </div><!-- .entry-meta --> 903 </div><!-- .entry-wrapper --> 904 </article> 905 906 907 <article data-post-id="11876" 908 class="tag-career tag-fiddler tag-performance category-bluebadge category-books category-life category-storytelling category-tech type-post" 909 > 910 911 <div class="entry-wrapper"> 912 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/24/fiddler-my-mistakes/" rel="bookmark">Fiddler – My Mistakes</a></h2> <p>On a flight back from Redmond last week, I finally read Linus Torvalds’ 2002 memoir “Just For Fun.” I really enjoyed its picture of Linux (and Torvalds) early in its success, with different chapters varyingly swooning that Linux had 12…</p> 913 <div class="entry-meta"> 914 <time class="entry-date published" datetime="2024-11-24T21:51:21-06:00">2024-11-24</time><time class="updated" datetime="2025-12-11T11:13:30-06:00">2025-12-11</time> </div><!-- .entry-meta --> 915 </div><!-- .entry-wrapper --> 916 </article> 917 918 919 <article data-post-id="11859" 920 class="tag-download tag-networking tag-performance category-browsers category-dev category-web type-post" 921 > 922 923 <div class="entry-wrapper"> 924 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/22/parallel-downloading/" rel="bookmark">Parallel Downloading</a></h2> <p>
924I’ve written about File Downloads quite a bit, and early this year, I delivered a full tech talk on the topic. From my very first days online (a local BBS via 14.4 modem, circa 1994), I spent decades longing for…</p> 925 <div class="entry-meta"> 926 <time class="entry-date published" datetime="2024-11-22T12:12:39-06:00">2024-11-22</time><time class="updated" datetime="2026-05-29T13:21:09-05:00">2026-05-29</time> </div><!-- .entry-meta --> 927 </div><!-- .entry-wrapper --> 928 </article> 929 930 931 <article data-post-id="11805" 932 class="tag-defender tag-infosecttp tag-security category-design category-security category-tech type-post" 933 > 934 935 <div class="entry-wrapper"> 936 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/18/security-software-an-overview/" rel="bookmark">Security Software – An Overview</a></h2> <p>Last Update: 15 September 2026 I’ve spent nearly my entire professional career in software security: designing software to prevent abuse by bad actors. I’ve been battling the bad guys for over two decades now, from hunting security bugs in Microsoft…</p> 937 <div class="entry-meta"> 938 <time class="entry-date published" datetime="2024-11-18T14:00:50-06:00">2024-11-18</time><time class="updated" datetime="2026-09-15T16:50:55-05:00">2026-09-15</time> </div><!-- .entry-meta --> 939 </div><!-- .entry-wrapper --> 940 </article> 941 942 943 <article data-post-id="11663" 944 class="tag-authenticode tag-best-practices tag-defender tag-smartscreen tag-windows category-security category-tech type-post" 945 > 946 947 <div class="entry-wrapper"> 948 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/15/best-practices-for-smartscreen-apprep/" rel="bookmark">Best Practices for SmartScreen AppRep</a></h2> <p>Last Updated: September 9, 2026 Last year, I wrote about how Windows integrates SmartScreen Application Reputation to help ensure users have a secure and smooth experience when running downloaded software. tl;dr: When a user runs a downloaded program, Windows/Edge call…</p> 949 <div class="entry-meta"> 950 <time class="entry-date published" datetime="2024-11-15T13:46:24-06:00">2024-11-15</time><time class="updated" datetime="2026-09-09T11:46:57-05:00">2026-09-09</time> </div><!-- .entry-meta --> 951 </div><!-- .entry-wrapper --> 952 </article> 953 954 955 <article data-post-id="11757" 956 class="tag-defender tag-infosecttp tag-security tag-windows category-security category-tech type-post" 957 > 958 959 <div class="entry-wrapper"> 960 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/15/defensive-technology-controlled-folder-access/" rel="bookmark">Defensive Technology: Controlled Folder Access</a></h2> <p>Most client software’s threat models (e.g. Edge, Chrome) explicitly exclude threats where the local computer was compromised by malware. That’s because, without a trusted computing base, it’s basically impossible to be secure against attackers. This concept was immortalized decades ago…</p> 961 <div class="entry-meta"> 962 <time class="entry-date published" datetime="2024-11-15T11:39:17-06:00">2024-11-15</time><time class="updated" datetime="2026-08-12T13:41:24-05:00">2026-08-12</time> </div><!-- .entry-meta --> 963 </div><!-- .entry-wrapper --> 964 </article> 965 966 967 <article data-post-id="11667" 968 class="tag-politics category-life category-politics category-storytelling type-post" 969 > 970 971 <div class="entry-wrapper"> 972 <h2 class="entry-title"><a href="https://textslashplain.com/2024/11/11/on-politics/" rel="bookmark">On Politics</a></h2> <p>I do not come from an especially political family. One parent has not voted in decades, and the other votes regularly, but is not an enthusiast and values harmony over potentially-divisive political discussions. Politically, I am left of center– the…</p> 973 <div class="entry-meta"> 974 <time class="entry-date published" datetime="2024-11-11T10:04:24-06:00">2024-11-11</time><time class="updated" datetime="2026-06-01T10:32:03-05:00">2026-06-01</time> </div><!-- .entry-meta --> 975 </div><!-- .entry-wrapper --> 976 </article> 977 978 979 <article data-post-id="11560" 980 class="tag-hardware tag-lenovo category-reviews category-tech type-post" 981 > 982 983 <div class="entry-wrapper"> 984 <h2 class="entry-title"><a href="https://textslashplain.com/2024/10/28/lenovo-p1-gen7/" rel="bookmark">Lenovo P1, Gen7: Meh</a></h2> <p>
984I’ve been a loyal user of Thinkpads for over twenty-five years now, and I currently own four (with another on loan from Microsoft). In July, the screen on my Lenovo X1 Yoga Gen 6 failed at an inopportune time, and…</p> 985 <div class="entry-meta"> 986 <time class="entry-date published" datetime="2024-10-28T11:13:23-05:00">2024-10-28</time><time class="updated" datetime="2024-11-14T09:15:01-06:00">2024-11-14</time> </div><!-- .entry-meta --> 987 </div><!-- .entry-wrapper --> 988 </article> 989 990 991 <article data-post-id="11539" 992 class="tag-amsi tag-defender tag-infosecttp tag-malware tag-security category-security category-tech type-post" 993 > 994 995 <div class="entry-wrapper"> 996 <h2 class="entry-title"><a href="https://textslashplain.com/2024/10/25/defensive-technology-antimalware-scan-interface-amsi/" rel="bookmark">Defensive Technology: Antimalware Scan Interface (AMSI)</a></h2> <p>Endpoint security software faces a tough challenge — it needs to be able to rapidly distinguish between desired and unwanted behavior with few false positives and false negatives, and attackers work hard to obfuscate (or cloak) their malicious code to…</p> 997 <div class="entry-meta"> 998 <time class="entry-date published" datetime="2024-10-25T15:31:31-05:00">2024-10-25</time><time class="updated" datetime="2026-06-10T12:08:29-05:00">2026-06-10</time> </div><!-- .entry-meta --> 999 </div><!-- .entry-wrapper --> 1000 </article> 1001 1002 1003 <article data-post-id="11484" 1004 class="tag-dev tag-extensions tag-privacy tag-security category-browsers category-dev category-web type-post" 1005 > 1006 1007 <div class="entry-wrapper"> 1008 <h2 class="entry-title"><a href="https://textslashplain.com/2024/10/13/content-blocking-in-manifest-v3/" rel="bookmark">Content-Blocking in Manifest v3</a></h2> <p>I’ve written about selectively blocking content in browsers several times over the last two decades. In this post, I don’t aim to convince you that ad-blocking is good or bad, instead focusing on one narrow topic. Circa 2006, I was…</p> 1009 <div class="entry-meta"> 1010 <time class="entry-date published" datetime="2024-10-13T11:59:18-05:00">2024-10-13</time><time class="updated" datetime="2025-05-27T11:25:22-05:00">2025-05-27</time> </div><!-- .entry-meta --> 1011 </div><!-- .entry-wrapper --> 1012 </article> 1013 1014 1015 <article data-post-id="11438" 1016 class="tag-infosecttp tag-malware tag-smartscreen tag-zip category-browsers category-security category-web type-post" 1017 > 1018 1019 <div class="entry-wrapper"> 1020 <h2 class="entry-title"><a href="https://textslashplain.com/2024/10/02/attack-techniques-encrypted-archives/" rel="bookmark">Attack Techniques: Encrypted Archives</a></h2> <p>Tricking a user into downloading and opening malware is a common attack technique, and defenders have introduced security scanners to many layers of the ecosystem in an attempt to combat the technique: With all this scanning in place, attackers have…</p> 1021 <div class="entry-meta"> 1022 <time class="entry-date published" datetime="2024-10-02T09:52:40-05:00">2024-10-02</time><time class="updated" datetime="2024-10-02T14:17:17-05:00">2024-10-02</time> </div><!-- .entry-meta --> 1023 </div><!-- .entry-wrapper --> 1024 </article> 1025 1026 1027 <article data-post-id="11381" 1028 class="tag-cruising tag-travel category-life category-travel type-post" 1029 > 1030 1031 <div class="entry-wrapper"> 1032 <h2 class="entry-title"><a href="https://textslashplain.com/2024/09/16/welcome-to-fall-i-guess/" rel="bookmark">Welcome to Fall, I guess?</a></h2> <p>Two months without a blog post? Sheesh. A lot has happened in two months, although perhaps nothing especially interesting. I splurged on a new laptop, a Lenovo P1 Gen7 (22-core Ultra 9 185H and 64 gigs of memory). It’s big,…</p> 1033 <div class="entry-meta"> 1034 <time class="entry-date published" datetime="2024-09-16T17:05:12-05:00">2024-09-16</time><time class="updated" datetime="2025-01-14T15:17:29-06:00">2025-01-14</time> </div><!-- .entry-meta --> 1035 </div><!-- .entry-wrapper --> 1036 </article> 1037 1038 1039 <article data-post-id="2004" 1040 class="tag-browsers tag-ux tag-webdev category-browsers category-web type-post" 1041 > 1042 1043 <div class="entry-wrapper"> 1044 <h2 class="entry-title"><a href="https://textslashplain.com/2024/07/15/browser-features-find-in-page/" rel="bookmark">Browser Features: Find in Page</a></h2> <p>For busy web users, the humble Find-in-Page feature in the browser is one of the most important features available. While Google or Bing can get you to the page you’re looking for faster than ever before, once you get to…</p> 1045 <div class="entry-meta">
1046 <time class="entry-date published" datetime="2024-07-15T10:49:20-05:00">2024-07-15</time><time class="updated" datetime="2024-09-20T00:08:45-05:00">2024-09-20</time> </div><!-- .entry-meta --> 1047 </div><!-- .entry-wrapper --> 1048 </article> 1049 1050 1051 <article data-post-id="11164" 1052 class="category-life category-storytelling type-post" 1053 > 1054 1055 <div class="entry-wrapper"> 1056 <h2 class="entry-title"><a href="https://textslashplain.com/2024/06/10/memento-mori-farewells/" rel="bookmark">Memento Mori – Farewells</a></h2> <p>A sad part of getting older is losing friends along the way. But it’s an important reminder that every day is a gift, and no tomorrow has been promised. Last week brought the sad news that David Ross has passed…</p> 1057 <div class="entry-meta"> 1058 <time class="entry-date published" datetime="2024-06-10T13:18:34-05:00">2024-06-10</time><time class="updated" datetime="2024-06-11T14:28:18-05:00">2024-06-11</time> </div><!-- .entry-meta --> 1059 </div><!-- .entry-wrapper --> 1060 </article> 1061 1062 1063 <article data-post-id="11137"
1064 class="tag-infosecttp tag-phishing category-security category-web type-post" 1065 > 1066 1067 <div class="entry-wrapper"> 1068 <h2 class="entry-title"><a href="https://textslashplain.com/2024/06/05/attack-techniques-paypal-invoice-scams/" rel="bookmark">Attack Techniques: Invoice Scams</a></h2> <p>Today in “Attack techniques so stupid, they can’t possibly succeed… except they do!” — we look at Invoice Scams. PayPal and other sites allow anyone (an attacker) to send anyone (their victims) an invoice containing the text of the attacker’s…</p> 1069 <div class="entry-meta"> 1070 <time class="entry-date published" datetime="2024-06-05T15:10:41-05:00">2024-06-05</time><time class="updated" datetime="2026-03-17T14:31:01-05:00">2026-03-17</time> </div><!-- .entry-meta --> 1071 </div><!-- .entry-wrapper --> 1072 </article> 1073 1074 1075 <article data-post-id="11097" 1076 class="tag-clipboard tag-infosecttp tag-motw tag-zones category-security category-web type-post" 1077 > 1078 1079 <div class="entry-wrapper"> 1080 <h2 class="entry-title"><a href="https://textslashplain.com/2024/06/04/attack-techniques-trojaned-clipboard/" rel="bookmark">Attack Techniques: Trojaned Clipboard</a></h2> <p>Today in “Attack techniques so stupid, they can’t possibly succeed… except they do!” — the trojan clipboard technique. In this technique, the attacking website convinces the victim to paste something the site has silently copied to the user’s clipboard into…</p> 1081 <div class="entry-meta"> 1082 <time class="entry-date published" datetime="2024-06-04T15:10:44-05:00">2024-06-04</time><time class="updated" datetime="2026-09-08T10:40:20-05:00">2026-09-08</time> </div><!-- .entry-meta --> 1083 </div><!-- .entry-wrapper --> 1084 </article> 1085 1086 1087 <article data-post-id="11050" 1088 class="tag-authenticode tag-security tag-signing tag-smartappcontrol category-security type-post" 1089 > 1090 1091 <div class="entry-wrapper"> 1092 <h2 class="entry-title"><a href="https://textslashplain.com/2024/05/22/authenticode-in-2024/" rel="bookmark">Authenticode in 2024</a></h2> <p>My 2021-2024 Authenticode certificate expired yesterday, so I began the process of getting a replacement last week. As in past years, I again selected a 3 year OV certificate from DigiCert. Validation was straightforward. After placing my order, I got…</p> 1093 <div class="entry-meta"> 1094 <time class="entry-date published" datetime="2024-05-22T11:08:03-05:00">2024-05-22</time><time class="updated" datetime="2026-03-03T16:25:33-06:00">2026-03-03</time> </div><!-- .entry-meta --> 1095 </div><!-- .entry-wrapper --> 1096 </article> 1097 1098 1099 <article data-post-id="11020" 1100 class="tag-infosecttp category-security category-web type-post" 1101 > 1102 1103 <div class="entry-wrapper"> 1104 <h2 class="entry-title"><a href="https://textslashplain.com/2024/05/21/attack-techniques-remote-control-software/" rel="bookmark">Attack Techniques: Remote Control Software</a></h2> <p>In yesterday’s post, I outlined the two most successful (and stupid simple) attack techniques that you might not expect to work (and you’d be so very wrong): Today, let’s explore number 3: “Please give me control of your computer so…</p> 1105 <div class="entry-meta"> 1106 <time class="entry-date published" datetime="2024-05-21T11:55:29-05:00">2024-05-21</time><time class="updated" datetime="2026-09-10T16:14:27-05:00">2026-09-10</time> </div><!-- .entry-meta --> 1107 </div><!-- .entry-wrapper --> 1108 </article> 1109 1110 1111 <article data-post-id="10974" 1112 class="tag-infosecttp tag-malware tag-security category-security type-post" 1113 > 1114 1115 <div class="entry-wrapper"> 1116 <h2 class="entry-title"><a href="https://textslashplain.com/2024/05/20/attack-techniques-full-trust-script-downloads/" rel="bookmark">Attack Techniques: Full-Trust Script Downloads</a></h2> <p>While it’s common to think of cyberattacks as being conducted by teams of elite cybercriminals leveraging the freshest 0-day attacks against victims’ PCs, the reality is far more mundane. Most attacks start as social engineering attacks: abusing a user’s misplaced…</p> 1117 <div class="entry-meta"> 1118 <time class="entry-date published" datetime="2024-05-20T13:19:15-05:00">2024-05-20</time><time class="updated" datetime="2026-08-14T16:47:10-05:00">2026-08-14</time> </div><!-- .entry-meta --> 1119 </div><!-- .entry-wrapper --> 1120 </article> 1121 1122 1123 <article data-post-id="10959" 1124 class="category-life category-running category-travel type-post" 1125 > 1126 1127 <div class="entry-wrapper"> 1128 <h2 class="entry-title"><a href="https://textslashplain.com/2024/05/17/spring-2024-updates/" rel="bookmark">Spring 2024 Updates</a></h2> <p>After a slow and painful 2024 Cap10K, I ran the HEB Sunshine Run 10K on May 5th in 1:05:53, just 22 seconds faster, but without pain or surprises. After months without running several hours per week, my fitness has definitely…</p> 1129 <div class="entry-meta"> 1130 <time class="entry-date published" datetime="2024-05-17T09:32:38-05:00">2024-05-17</time><time class="updated" datetime="2024-05-20T10:02:58-05:00">2024-05-20</time> </div><!-- .entry-meta --> 1131 </div><!-- .entry-wrapper --> 1132 </article> 1133 1134 1135 <article data-post-id="10880" 1136 class="tag-browsers tag-chrome tag-edge tag-security tag-webdev category-browsers category-security category-web type-post" 1137 > 1138 1139 <div class="entry-wrapper"> 1140 <h2 class="entry-title"><a href="https://textslashplain.com/2024/05/06/err_blocked_by_client-and-html5-sandbox/" rel="bookmark">ERR_BLOCKED_BY_CLIENT and HTML5 Sandbox</a></h2> <p>Recently, many Microsoft employees taking training courses have reported problems accessing documents linked to in those courses in Chrome and Edge. In Edge, the screen looks like this: But the problem isn’t limited to Microsoft’s internal training platform, and can…</p> 1141 <div class="entry-meta"> 1142 <time class="entry-date published updated" datetime="2024-05-06T19:35:40-05:00">2024-05-06</time> </div><!-- .entry-meta --> 1143 </div><!-- .entry-wrapper --> 1144 </article> 1145 1146 1147 <article data-post-id="10838" 1148 class="tag-chrome tag-edge tag-extensions category-browsers category-web type-post" 1149 > 1150 1151 <div class="entry-wrapper"> 1152 <h2 class="entry-title"><a href="https://textslashplain.com/2024/04/23/mouse-gestures-in-edge/" rel="bookmark">Mouse Gestures in Edge</a></h2> <p>Over twenty years ago, the Opera browser got me hooked on mouse gestures, a way for you to perform common browser actions quickly. After I joined the IE team in 2004, I fell in love with a browser extension written…</p> 1153 <div class="entry-meta"> 1154 <time class="entry-date published" datetime="2024-04-23T17:47:28-05:00">2024-04-23</time><time class="updated" datetime="2024-04-24T09:09:36-05:00">2024-04-24</time> </div><!-- .entry-meta --> 1155 </div><!-- .entry-wrapper --> 1156 </article> 1157 1158 1159 <article data-post-id="10529" 1160 class="tag-electric tag-money category-uncategorized type-post" 1161 > 1162 1163 <div class="entry-wrapper"> 1164 <h2 class="entry-title"><a href="https://textslashplain.com/2024/04/21/going-electric-solar-1-year-later/" rel="bookmark">Going Electric – Solar 1 Year Later</a></h2> <p>
1164In March of 2023, I had an 8kw solar array installed and I was finally permitted to turn it on starting April 21, 2023. My pessimistic/optimistic assumption that my buying an expensive solar array was going to be the trigger…</p> 1165 <div class="entry-meta"> 1166 <time class="entry-date published" datetime="2024-04-21T10:15:27-05:00">2024-04-21</time><time class="updated" datetime="2024-08-15T15:59:30-05:00">2024-08-15</time> </div><!-- .entry-meta --> 1167 </div><!-- .entry-wrapper --> 1168 </article> 1169 1170 1171 <article data-post-id="10756" 1172 class="tag-browsers tag-chrome tag-edge tag-securitybugsthatarent category-browsers category-security type-post" 1173 > 1174 1175 <div class="entry-wrapper"> 1176 <h2 class="entry-title"><a href="https://textslashplain.com/2024/04/10/browser-security-bugs-that-arent-javascript-in-pdf/" rel="bookmark">Browser Security Bugs that Aren’t: JavaScript in PDF</a></h2> <p>A fairly common security bug report is of the form: “I can put JavaScript inside a PDF file and it runs!” For example, open this PDF file with Chrome, and you can see the alert(1) message displayed: Support for JavaScript…</p> 1177 <div class="entry-meta"> 1178 <time class="entry-date published" datetime="2024-04-10T15:45:11-05:00">2024-04-10</time><time class="updated" datetime="2024-11-26T12:55:29-06:00">2024-11-26</time> </div><!-- .entry-meta --> 1179 </div><!-- .entry-wrapper --> 1180 </article> 1181 1182 1183 <article data-post-id="10727" 1184 class="tag-fitness tag-races category-running type-post" 1185 > 1186 1187 <div class="entry-wrapper"> 1188 <h2 class="entry-title"><a href="https://textslashplain.com/2024/04/09/a-slow-10k/" rel="bookmark">A Slow 10K</a></h2> <p>I “ran” the Capitol 10K for a third time on Sunday. It did not go well, but not for any of the reasons I worried about. The rain stopped hours before the race, and the course wasn’t wet. My knees…</p> 1189 <div class="entry-meta"> 1190 <time class="entry-date published" datetime="2024-04-09T12:39:10-05:00">2024-04-09</time><time class="updated" datetime="2025-04-07T08:37:59-05:00">2025-04-07</time> </div><!-- .entry-meta --> 1191 </div><!-- .entry-wrapper --> 1192 </article> 1193 1194 1195 <article data-post-id="10651" 1196 class="tag-infosecttp tag-security tag-webdev category-browsers category-security category-web type-post" 1197 > 1198 1199 <div class="entry-wrapper"> 1200 <h2 class="entry-title"><a href="https://textslashplain.com/2024/03/27/attacker-techniques-gesture-jacking/" rel="bookmark">Attacker Techniques: Gesture Jacking</a></h2> <p>A few years back, I wrote a short explainer about User Gestures, a web platform concept whereby certain sensitive operations (e.g. opening a popup window) will first attempt to confirm whether the user intentionally requested the action. As noted in…</p> 1201 <div class="entry-meta"> 1202 <time class="entry-date published" datetime="2024-03-27T12:24:03-05:00">2024-03-27</time><time class="updated" datetime="2024-04-24T10:56:34-05:00">2024-04-24</time> </div><!-- .entry-meta --> 1203 </div><!-- .entry-wrapper --> 1204 </article> 1205 1206 1207 <article data-post-id="10598" 1208 class="tag-chrome tag-defender tag-edge tag-network-protection tag-smartscreen category-browsers category-security category-web type-post" 1209 > 1210 1211 <div class="entry-wrapper"> 1212 <h2 class="entry-title"><a href="https://textslashplain.com/2024/03/20/pushstate-and-url-blocking/" rel="bookmark">pushState and URL Blocking</a></h2> <p>The Web Platform offers a handy API called pushState that allows a website’s JavaScript to change the URL displayed in the address bar to another URL within the same origin without sending a network request and loading a new page.…</p> 1213 <div class="entry-meta"> 1214 <time class="entry-date published" datetime="2024-03-20T12:36:29-05:00">2024-03-20</time><time class="updated" datetime="2025-04-08T12:25:56-05:00">2025-04-08</time> </div><!-- .entry-meta --> 1215 </div><!-- .entry-wrapper --> 1216 </article> 1217 1218 1219 <article data-post-id="10542" 1220 class="tag-browsers tag-chrome tag-edge tag-extensions tag-malware tag-security category-browsers category-security category-web type-post" 1221 > 1222 1223 <div class="entry-wrapper"> 1224 <h2 class="entry-title"><a href="https://textslashplain.com/2024/03/07/browser-extensions-powerful-and-potentially-dangerous/" rel="bookmark">Browser Extensions: Powerful and Potentially Dangerous</a></h2> <p>Regular readers of my blogs know that I love browser extensions. Extensions can make using your browser more convenient, fun, and secure. Unfortunately, extensions can also break web apps in bizarre or amusing ways, dramatically slow your browser performance, leak…</p> 1225 <div class="entry-meta"> 1226 <time class="entry-date published" datetime="2024-03-07T14:55:02-06:00">2024-03-07</time><time class="updated" datetime="2026-07-30T16:03:44-05:00">2026-07-30</time> </div><!-- .entry-meta --> 1227 </div><!-- .entry-wrapper --> 1228 </article> 1229 1230 1231 <article data-post-id="10460" 1232 class="tag-fitness tag-races category-running category-travel type-post" 1233 > 1234 1235 <div class="entry-wrapper"> 1236 <h2 class="entry-title"><a href="https://textslashplain.com/2024/02/28/second-seaside-half/" rel="bookmark">Second Seaside Half</a></h2> <p>
1236I ran my second Galveston Half Marathon on Sunday, February 25th. The course was identical to last year’s race, starting at Stewart beach heading north before looping back down to the Pleasure Pier before returning to the start/finish line on…</p> 1237 <div class="entry-meta"> 1238 <time class="entry-date published" datetime="2024-02-28T17:24:08-06:00">2024-02-28</time><time class="updated" datetime="2024-02-28T17:29:21-06:00">2024-02-28</time> </div><!-- .entry-meta --> 1239 </div><!-- .entry-wrapper --> 1240 </article> 1241 1242 1243 <article data-post-id="10443" 1244 class="tag-security category-design category-life type-post" 1245 > 1246 1247 <div class="entry-wrapper"> 1248 <h2 class="entry-title"><a href="https://textslashplain.com/2024/02/22/the-importance-of-feedback-loops/" rel="bookmark">The Importance of Feedback Loops</a></h2> <p>This morning, I found myself once again thinking about the critical importance of feedback loops. I thought about obvious examples where small bad things can so easily grow into large bad things: – A minor breach can lead to complete…</p> 1249 <div class="entry-meta"> 1250 <time class="entry-date published" datetime="2024-02-22T15:04:32-06:00">2024-02-22</time><time class="updated" datetime="2024-03-06T15:18:45-06:00">2024-03-06</time> </div><!-- .entry-meta --> 1251 </div><!-- .entry-wrapper --> 1252 </article> 1253 1254 1255 <article data-post-id="10383" 1256 class="tag-browsers tag-cloaking tag-defender tag-infosecttp tag-phishing tag-security tag-smartscreen category-design category-security category-web type-post" 1257 > 1258 1259 <div class="entry-wrapper"> 1260 <h2 class="entry-title"><a href="https://textslashplain.com/2024/02/20/cloaking-detonation-and-client-side-phishing-detection/" rel="bookmark">Cloaking, Detonation, and Client-side Phishing Detection</a></h2> <p>Today, most browsers integrate security services that attempt to protect users from phishing attacks: for Microsoft’s Edge, the service is Defender SmartScreen, and for Chrome, Firefox, and many derivatives, it’s Google’s Safe Browsing. URL Reputation services do what you’d guess…</p> 1261 <div class="entry-meta"> 1262 <time class="entry-date published" datetime="2024-02-20T11:49:35-06:00">2024-02-20</time><time class="updated" datetime="2026-08-21T17:04:09-05:00">2026-08-21</time> </div><!-- .entry-meta --> 1263 </div><!-- .entry-wrapper --> 1264 </article> 1265 1266 1267 <article data-post-id="10354" 1268 class="tag-fitness tag-races tag-reviews category-running type-post" 1269 > 1270 1271 <div class="entry-wrapper"> 1272 <h2 class="entry-title"><a href="https://textslashplain.com/2024/02/03/x22i-treadmill-review/" rel="bookmark">x22i Treadmill Review</a></h2> <p>I love my treadmill, but two years in, I cannot recommend it. On New Year’s Day 2022 I bought a NordicTrack x22i Incline Trainer (a treadmill that supports 40% incline and 6% decline) with the aim of getting in shape…</p> 1273 <div class="entry-meta"> 1274 <time class="entry-date published" datetime="2024-02-03T20:33:07-06:00">2024-02-03</time><time class="updated" datetime="2026-07-22T19:14:43-05:00">2026-07-22</time> </div><!-- .entry-meta --> 1275 </div><!-- .entry-wrapper --> 1276 </article> 1277 1278 1279 <article data-post-id="10336" 1280 class="tag-chrome tag-download tag-edge category-browsers category-web type-post" 1281 > 1282 1283 <div class="entry-wrapper"> 1284 <h2 class="entry-title"><a href="https://textslashplain.com/2024/01/29/how-downloads-work/" rel="bookmark">How Downloads Work</a></h2> <p>I delivered a one hour session on the internals of file downloads in web browsers at THAT Conference 2024. The slides are here and a MP3 of the talk is available. If you’d prefer to read, much of the content…</p> 1285 <div class="entry-meta"> 1286 <time class="entry-date published" datetime="2024-01-29T12:44:59-06:00">2024-01-29</time><time class="updated" datetime="2024-01-31T14:37:48-06:00">2024-01-31</time> </div><!-- .entry-meta --> 1287 </div><!-- .entry-wrapper --> 1288 </article> 1289 1290 1291 <article data-post-id="10301" 1292 class="tag-fitness tag-races category-life category-running type-post" 1293 > 1294 1295 <div class="entry-wrapper"> 1296 <h2 class="entry-title"><a href="https://textslashplain.com/2024/01/23/cold-and-slow-half/" rel="bookmark">
1296A Cold and Slow 3M Half</a></h2> <p>My second run of the 3M Half Marathon was Sunday January 21, 2024. My first half-marathon last year was cold (starting at 38F), but this year’s was slated to be even colder (33F) and I was nervous. For dinner on…</p> 1297 <div class="entry-meta"> 1298 <time class="entry-date published" datetime="2024-01-23T10:51:22-06:00">2024-01-23</time><time class="updated" datetime="2024-01-25T08:01:45-06:00">2024-01-25</time> </div><!-- .entry-meta --> 1299 </div><!-- .entry-wrapper --> 1300 </article> 1301 1302 1303 <article data-post-id="10190" 1304 class="tag-encryption tag-infosecttp tag-security category-design category-security category-tech type-post" 1305 > 1306 1307 <div class="entry-wrapper"> 1308 <h2 class="entry-title"><a href="https://textslashplain.com/2024/01/03/the-blind-doorkeeper-problem-or-why-enclaves-are-tricky/" rel="bookmark">The Blind Doorkeeper Problem, or, Why Enclaves are Tricky</a></h2> <p>When trying to protect a secret on a client device, there are many strategies, but most of them are doomed. However, as a long-standing problem, many security experts have tried to chip away at its edges over the years. Over…</p> 1309 <div class="entry-meta"> 1310 <time class="entry-date published" datetime="2024-01-03T15:51:45-06:00">2024-01-03</time><time class="updated" datetime="2026-09-14T11:43:33-05:00">2026-09-14</time> </div><!-- .entry-meta --> 1311 </div><!-- .entry-wrapper --> 1312 </article> 1313 1314 1315 <article data-post-id="10264" 1316 class="tag-best-practices tag-career tag-chrome tag-google category-dev category-storytelling type-post" 1317 > 1318 1319 <div class="entry-wrapper"> 1320 <h2 class="entry-title"><a href="https://textslashplain.com/2024/01/02/coding-at-google/" rel="bookmark">Coding at Google</a></h2> <p>I wrote this a few years back, but I’ve had occasion to cite it yet again when explaining why engineering at Google was awesome. To avoid it getting eaten by the bitbucket, I’m publishing it here. Background: From January 2016…</p> 1321 <div class="entry-meta"> 1322 <time class="entry-date published" datetime="2024-01-02T15:36:42-06:00">2024-01-02</time><time class="updated" datetime="2025-06-25T17:35:09-05:00">2025-06-25</time> </div><!-- .entry-meta --> 1323 </div><!-- .entry-wrapper --> 1324 </article> 1325 1326 1327 <article data-post-id="9863" 1328 class="tag-fitness tag-races category-running category-storytelling type-post" 1329 > 1330 1331 <div class="entry-wrapper"> 1332 <h2 class="entry-title"><a href="https://textslashplain.com/2023/12/19/fall-races/" rel="bookmark">Fall 2023 Races</a></h2> <p>While I’ve been running less, I haven’t completely fallen out of the habit, and I still find spending an hour on the treadmill to be the simplest way to feel better for the rest of the day. Real-world racing remains…</p> 1333 <div class="entry-meta"> 1334 <time class="entry-date published" datetime="2023-12-19T08:23:19-06:00">2023-12-19</time><time class="updated" datetime="2025-11-05T13:42:32-06:00">2025-11-05</time> </div><!-- .entry-meta --> 1335 </div><!-- .entry-wrapper --> 1336 </article> 1337 1338 1339 <article data-post-id="10162" 1340 class="tag-infosecttp tag-protocol tag-webtoapp category-security category-tech type-post" 1341 > 1342 1343 <div class="entry-wrapper"> 1344 <h2 class="entry-title"><a href="https://textslashplain.com/2023/12/07/defense-techniques-blocking-protocol-handlers/" rel="bookmark">Defense Techniques: Blocking Protocol Handlers</a></h2> <p>Application Protocols represent a compelling attack vector because they’re the most reliable and cross-browser compatible way to escape a browser’s sandbox, and they work in many contexts (Office apps, some PDFs handlers, some chat/messaging clients, etc). Some protocol handlers are…</p> 1345 <div class="entry-meta"> 1346 <time class="entry-date published" datetime="2023-12-07T13:04:45-06:00">2023-12-07</time><time class="updated" datetime="2024-01-17T11:20:34-06:00">2024-01-17</time> </div><!-- .entry-meta --> 1347 </div><!-- .entry-wrapper --> 1348 </article> 1349 1350 1351 <article data-post-id="10115" 1352 class="tag-infosecttp category-security type-post" 1353 > 1354 1355 <div class="entry-wrapper"> 1356 <h2 class="entry-title"><a href="https://textslashplain.com/2023/11/22/attack-techniques-steganography/" rel="bookmark">Attack Techniques: Steganography</a></h2> <p>Attackers are incentivized to cloak their attacks to avoid detection, keep attack chains alive longer, and make investigations more complicated. One type of cloaking involves steganography, whereby an attacker embeds hidden data inside an otherwise innocuous file. For instance, an…</p> 1357 <div class="entry-meta"> 1358 <time class="entry-date published updated" datetime="2023-11-22T15:30:07-06:00">2023-11-22</time> </div><!-- .entry-meta --> 1359 </div><!-- .entry-wrapper --> 1360 </article> 1361 1362 1363 <article data-post-id="10071" 1364 class="tag-chrome tag-edge tag-troubleshooting category-browsers category-web type-post" 1365 > 1366 1367 <div class="entry-wrapper"> 1368 <h2 class="entry-title"><a href="https://textslashplain.com/2023/11/14/troubleshooting-edge-or-chrome-broken-ui/" rel="bookmark">Troubleshooting Edge (or Chrome) Broken UI</a></h2> <p>Last time, we looked at how to troubleshoot browser crashes. However, not all browser problems result in the tab or browser crashing entirely. In some cases, the problem is that some part of the browser UI doesn’t render correctly. This most…</p> 1369 <div class="entry-meta"> 1370 <time class="entry-date published" datetime="2023-11-14T09:51:17-06:00">2023-11-14</time><time class="updated" datetime="2023-12-12T22:50:21-06:00">2023-12-12</time> </div><!-- .entry-meta --> 1371 </div><!-- .entry-wrapper --> 1372 </article> 1373 1374 1375 <article data-post-id="10022" 1376 class="tag-browsers tag-chrome tag-crash tag-edge tag-troubleshooting category-browsers category-dev type-post" 1377 > 1378 1379 <div class="entry-wrapper"> 1380 <h2 class="entry-title"><a href="https://textslashplain.com/2023/11/09/troubleshooting-edge-or-chrome-browser-crashes/" rel="bookmark">Troubleshooting Edge (or Chrome) Browser Crashes</a></h2> <p>
1380In the modern browser world, there are two types of crashes: browser crashes and renderer crashes. In a browser crash, the entire browser window with all of its tabs simply vanishes, either on startup, or at some point afterward. The…</p> 1381 <div class="entry-meta"> 1382 <time class="entry-date published" datetime="2023-11-09T08:46:37-06:00">2023-11-09</time><time class="updated" datetime="2024-04-16T13:09:37-05:00">2024-04-16</time> </div><!-- .entry-meta --> 1383 </div><!-- .entry-wrapper --> 1384 </article> 1385 1386 1387 <article data-post-id="9580" 1388 class="tag-electric tag-money category-life category-tech type-post" 1389 > 1390 1391 <div class="entry-wrapper"> 1392 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/24/driving-electric-one-year-in/" rel="bookmark">Driving Electric – One Year In</a></h2> <p>One year ago, I brought home a new 2023 Nissan Leaf. I didn’t really need a car, but changing rules around tax credits meant that I pretty much had to buy the Leaf last fall if I wanted to save…</p> 1393 <div class="entry-meta"> 1394 <time class="entry-date published" datetime="2023-10-24T10:30:24-05:00">2023-10-24</time><time class="updated" datetime="2026-07-07T17:42:31-05:00">2026-07-07</time> </div><!-- .entry-meta --> 1395 </div><!-- .entry-wrapper --> 1396 </article> 1397 1398 1399 <article data-post-id="9819" 1400 class="tag-authentication tag-browsers tag-security category-browsers category-web type-post" 1401 > 1402 1403 <div class="entry-wrapper"> 1404 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/23/protecting-auth-tokens/" rel="bookmark">Protecting Auth Tokens</a></h2> <p>Authenticating to websites in browsers is complicated. There are numerous different approaches: Each of these authentication mechanisms has different user-experience effects and security properties. Sometimes, multiple systems are used at once, with, for example, a Web Forms login being bolstered…</p> 1405 <div class="entry-meta"> 1406 <time class="entry-date published" datetime="2023-10-23T14:44:52-05:00">2023-10-23</time><time class="updated" datetime="2024-09-19T16:08:56-05:00">2024-09-19</time> </div><!-- .entry-meta --> 1407 </div><!-- .entry-wrapper --> 1408 </article> 1409 1410 1411 <article data-post-id="9766" 1412 class="tag-chrome tag-defender tag-edge tag-network-protection tag-networking tag-security tag-smartscreen category-security category-web type-post" 1413 > 1414 1415 <div class="entry-wrapper"> 1416 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/17/serviceworkers-vs-network-filtering/" rel="bookmark">ServiceWorkers vs. Network Filtering</a></h2> <p>In a recent post, I explored how the design of network security features impact the tradeoffs of the system. In that post, I noted that integrating a URL check directly into the browser provides the security check with the best…</p> 1417 <div class="entry-meta"> 1418 <time class="entry-date published" datetime="2023-10-17T08:46:44-05:00">2023-10-17</time><time class="updated" datetime="2024-11-08T11:50:18-06:00">2024-11-08</time> </div><!-- .entry-meta --> 1419 </div><!-- .entry-wrapper --> 1420 </article> 1421 1422 1423 <article data-post-id="9748" 1424 class="tag-infosecttp tag-security category-security type-post" 1425 > 1426 1427 <div class="entry-wrapper"> 1428 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/16/security-the-impact-of-time/" rel="bookmark">Security: The Impact of Time</a></h2> <p>Two years ago, I wrote a long post about the importance of time, and how practical time machines can help reduce emergencies into more mundane workitems. Today, we revisit the same topic, with a focus on the security impact of…</p> 1429 <div class="entry-meta"> 1430 <time class="entry-date published" datetime="2023-10-16T17:11:23-05:00">2023-10-16</time><time class="updated" datetime="2026-08-04T15:30:49-05:00">2026-08-04</time> </div><!-- .entry-meta --> 1431 </div><!-- .entry-wrapper --> 1432 </article> 1433 1434 1435 <article data-post-id="9692" 1436 class="tag-browsers tag-cloaking tag-infosecttp tag-phishing tag-scam tag-security tag-spoofing category-browsers category-security category-web type-post" 1437 > 1438 1439 <div class="entry-wrapper"> 1440 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/13/beware-urls-are-pointers-to-mutable-entities/" rel="bookmark">Beware: URLs are Pointers to Mutable Entities</a></h2> <p>Folks often like to think of URLs as an entity that can be evaluated: “Is it harmless, or is it malicious?” In particular, vendors of security products tend to lump URLs in with other IoCs (indicators of compromise) like the…</p> 1441 <div class="entry-meta"> 1442 <time class="entry-date published" datetime="2023-10-13T11:04:22-05:00">2023-10-13</time><time class="updated" datetime="2026-06-10T12:31:34-05:00">2026-06-10</time> </div><!-- .entry-meta --> 1443 </div><!-- .entry-wrapper --> 1444 </article> 1445 1446 1447 <article data-post-id="9667" 1448 class="tag-best-practices tag-microsoft category-bluebadge type-post" 1449 > 1450 1451 <div class="entry-wrapper"> 1452 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/11/email-etiquette-avoid-bcc/" rel="bookmark">Email Etiquette: Avoid BCC’ing large distribution lists</a></h2> <p>While Microsoft corporate culture has evolved over the years, and the last twenty years have seen the introduction of new mass communication mechanisms like Yammer and Teams, we remain an email heavy company. Many product teams have related “Selfhost” or…</p> 1453 <div class="entry-meta"> 1454 <time class="entry-date published" datetime="2023-10-11T09:04:12-05:00">2023-10-11</time><time class="updated" datetime="2023-10-11T11:30:33-05:00">2023-10-11</time> </div><!-- .entry-meta --> 1455 </div><!-- .entry-wrapper --> 1456 </article> 1457 1458 1459 <article data-post-id="9647" 1460 class="category-bluebadge category-fiddler-2 category-storytelling type-post" 1461 > 1462 1463 <div class="entry-wrapper"> 1464 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/05/fiddler-turns-twenty/" rel="bookmark">Fiddler Web Debugger Turns 20</a></h2> <p>Twenty years ago (!!?!) was the first official release of Fiddler. I still run Fiddler for some task or another almost every working day. I still run my version (Fiddler Classic) although some of the newer tools in the Fiddler…</p> 1465 <div class="entry-meta"> 1466 <time class="entry-date published" datetime="2023-10-05T09:41:54-05:00">2023-10-05</time><time class="updated" datetime="2023-10-06T09:36:25-05:00">2023-10-06</time> </div><!-- .entry-meta --> 1467 </div><!-- .entry-wrapper --> 1468 </article> 1469 1470 1471 <article data-post-id="9607" 1472 class="tag-browsers tag-chrome tag-defender tag-edge tag-https tag-network-protection tag-privacy tag-security category-browsers category-security category-web type-post" 1473 > 1474 1475 <div class="entry-wrapper"> 1476 <h2 class="entry-title"><a href="https://textslashplain.com/2023/10/04/security-tradeoffs-privacy/" rel="bookmark">Security Tradeoffs: Privacy</a></h2> <p>
1476In a recent post, I explored some of the tradeoffs engineers must make when evaluating the security properties of a given design. In this post, we explore an interesting tradeoff between Security and Privacy in the analysis of web traffic.…</p> 1477 <div class="entry-meta"> 1478 <time class="entry-date published" datetime="2023-10-04T09:41:10-05:00">2023-10-04</time><time class="updated" datetime="2026-09-10T12:05:49-05:00">2026-09-10</time> </div><!-- .entry-meta --> 1479 </div><!-- .entry-wrapper --> 1480 </article> 1481 1482 1483 <article data-post-id="9497" 1484 class="tag-browsers tag-compatibility tag-security tag-standards category-browsers category-security category-web type-post" 1485 > 1486 1487 <div class="entry-wrapper"> 1488 <h2 class="entry-title"><a href="https://textslashplain.com/2023/09/15/security-tradeoffs/" rel="bookmark">Security: Tradeoffs</a></h2> <p>Absolute security is simple– put your PC in a well-guarded vault, and never power it on. But that’s not what PCs are built for, and good luck finding a job that would pay you for such advice. Security Engineering (like…</p> 1489 <div class="entry-meta"> 1490 <time class="entry-date published" datetime="2023-09-15T12:12:07-05:00">2023-09-15</time><time class="updated" datetime="2023-10-24T11:31:02-05:00">2023-10-24</time> </div><!-- .entry-meta --> 1491 </div><!-- .entry-wrapper --> 1492 </article> 1493 1494 1495 <article data-post-id="9468" 1496 class="tag-webdev category-dev category-security category-web type-post" 1497 > 1498 1499 <div class="entry-wrapper"> 1500 <h2 class="entry-title"><a href="https://textslashplain.com/2023/09/14/web-platform-weirdness-babies-and-bathwater/" rel="bookmark">Web Platform Weirdness: Babies and Bathwater</a></h2> <p>When moving from other development platforms to the web, developers often have a hard time understanding why the web platform seems so … clunky. In part, that’s because the platform is pretty old at this point (>25 years as an…</p> 1501 <div class="entry-meta"> 1502 <time class="entry-date published" datetime="2023-09-14T13:30:41-05:00">2023-09-14</time><time class="updated" datetime="2023-09-14T14:01:34-05:00">2023-09-14</time> </div><!-- .entry-meta --> 1503 </div><!-- .entry-wrapper --> 1504 </article> 1505 1506 </div> 1507 <button type="button" class="wp-block-button__link" data-next="https://textslashplain.com/wp-json/newspack-blocks/v1/articles?className=is-style-default&excerptLength=40&showImage=0&moreButton=1&showAuthor=0&postLayout=grid&postsToShow=100&typeScale=3&showExcerpt=1&showFullContent=0&showReadMore=0&infiniteScroll=0&readMoreLabel=Keep%20reading&showDate=1&showCaption=0&showCredit=0&disableImageLazyLoad=0&fetchPriority&imageShape=landscape&minHeight=0&moreButtonText&showAvatar=1&showCategory=0&showTagLabels=1&columns=3&colGap=3&mediaPosition=top&&&categoryJoinType=or&includeSubcategories=1&&&&&&&imageScale=3&mobileStack=0&sectionHeader&specificMode=0&textColor&customTextColor&singleMode=0&showSubtitle=0&postType%5B0%5D=post&textAlign&includedPostStatuses%5B0%5D=publish&deduplicate=1&page=2"> 1508 <span class="label"> 1509 Load more posts </span> 1510 <span class="loading"></span> 1511 </button> 1512 <p class="error"> 1513 Something went wrong. Please refresh the page and/or try again. </p> 1514 1515 1516 </div> 1517 <div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow noopener noreferrer" 1518 data-shared="sharing-twitter-5799" 1519 class="share-twitter sd-button share-icon" 1520 href="https://textslashplain.com/browse-all-posts/?share=twitter" 1521 target="_blank" 1522 aria-labelledby="sharing-twitter-5799" 1523 > 1524 <span id="sharing-twitter-5799" hidden>Share on X (Opens in new window)</span> 1525 <span>X</span> 1526 </a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer" 1527 data-shared="sharing-facebook-5799" 1528 class="share-facebook sd-button share-icon" 1529 href="https://textslashplain.com/browse-all-posts/?share=facebook" 1530 target="_blank" 1531 aria-labelledby="sharing-facebook-5799" 1532 > 1533 <span id="sharing-facebook-5799" hidden>Share on Facebook (Opens in new window)</span> 1534 <span>Facebook</span> 1535 </a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-88727790-5799-6aaa57acef2fb' data-src='https://widgets.wp.com/likes/?ver=16.3-a.1#blog_id=88727790&post_id=5799&origin=textslashplain.com&obj_id=88727790-5799-6aaa57acef2fb' data-name='like-post-frame-88727790-5799-6aaa57acef2fb' data-title='Like or Reblog'><h3 class="sd-title">Like this:</h3><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>Like</span></span> <span class="loading"><svg class="jetpack-spinner" width="18" height="18" 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="indef
1535inite"/></path></svg><span class="screen-reader-text">Loading…</span></span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div> </div><!-- .entry-content --> 1536 1537 </article><!-- #post-5799 --> 1538 1539 </main><!-- #main --> 1540 </section><!-- #primary --> 1541 1542 1543 </div><!-- #content --> 1544 1545 1546 <footer id="colophon" class="site-footer responsive-max-width"> 1547 1548 <aside class="widget-area responsive-max-width" role="complementary" aria-label="Footer"> 1549 <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/"> 1550 <label> 1551 <span class="screen-reader-text">Search for:</span> 1552 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 1553 </label> 1554 <input type="submit" class="search-submit" value="Search" /> 1555 </form></section><section id="pages-3" class="widget widget_pages"><h2 class="widget-title">Pages</h2> 1556 <ul> 1557 <li class="page_item page-item-1"><a href="https://textslashplain.com/about/">About</a></li> 1558<li class="page_item page-item-5799 current_page_item"><a href="https://textslashplain.com/browse-all-posts/" aria-current="page">Browse All Posts</a></li> 1559<li class="page_item page-item-7207"><a href="https://textslashplain.com/categories/">Categories</a></li> 1560<li class="page_item page-item-12129"><a href="https://textslashplain.com/cruises/">Cruises</a></li> 1561<li class="page_item page-item-3855"><a href="https://textslashplain.com/ieinternals-archive/">IEInternals Archive</a></li> 1562<li class="page_item page-item-12762"><a href="https://textslashplain.com/races/">Real-World Races</a></li> 1563 </ul> 1564 1565 </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> 1566</section><section id="blog-stats-3" class="widget blog-stats"><h2 class="widget-title">Blog Stats</h2><ul><li>2,513,791 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'> 1567 <option value='-1'>Select Category</option> 1568 <option class="level-0" value="49635188">bluebadge (16)</option> 1569 <option class="level-0" value="178">books (3)</option> 1570 <option class="level-0" value="138">browsers (186)</option> 1571 <option class="level-0" value="148">design (27)</option> 1572 <option class="level-0" value="6504">dev (88)</option> 1573 <option class="level-0" value="10138408">fiddler (26)</option> 1574 <option class="level-0" value="124">life (55)</option> 1575 <option class="level-0" value="1054996">perf (20)</option> 1576 <option class="level-0" value="398">politics (2)</option> 1577 <option class="level-0" value="3279">privacy (27)</option> 1578 <option class="level-0" value="309">reviews (2)</option> 1579 <option class="level-0" value="1675">running (20)</option> 1580 <option class="level-0" value="801">security (177)</option> 1581 <option class="level-0" value="1400">storytelling (50)</option> 1582 <option class="level-0" value="318">tech (41)</option> 1583 <option class="level-0" value="200">travel (9)</option> 1584 <option class="level-0" value="1">Uncategorized (16)</option> 1585 <option class="level-0" value="151">web (155)</option> 1586 <option class="level-0" value="374741">windmills (12)</option> 1587</select> 1588</form>
1588<script> 1589( ( dropdownId ) => { 1590 const dropdown = document.getElementById( dropdownId ); 1591 function onSelectChange() { 1592 setTimeout( () => { 1593 if ( 'escape' === dropdown.dataset.lastkey ) { 1594 return; 1595 } 1596 if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) { 1597 dropdown.parentElement.submit(); 1598 } 1599 }, 250 ); 1600 } 1601 function onKeyUp( event ) { 1602 if ( 'Escape' === event.key ) { 1603 dropdown.dataset.lastkey = 'escape'; 1604 } else { 1605 delete dropdown.dataset.lastkey; 1606 } 1607 } 1608 function onClick() { 1609 delete dropdown.dataset.lastkey; 1610 } 1611 dropdown.addEventListener( 'keyup', onKeyUp ); 1612 dropdown.addEventListener( 'click', onClick ); 1613 dropdown.addEventListener( 'change', onSelectChange ); 1614})( "cat" ); 1615 1616//# sourceURL=WP_Widget_Categories%3A%3Awidget 1617</script>
1617 1618</section><section id="grofile-3" class="widget widget-grofile grofile"> <img 1619 src="https://2.gravatar.com/avatar/89c27d27b73dd3690b3dad59f3a539d1?s=320" 1620 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" 1621 class="grofile-thumbnail no-grav" 1622 alt="ericlaw" 1623 loading="lazy" /> 1624 <div class="grofile-meta"> 1625 <h4><a href="https://gravatar.com/ericlaw1979">ericlaw</a></h4> 1626 <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> 1627 </div> 1628 1629 1630 <p><a href="https://gravatar.com/ericlaw1979" class="grofile-full-link"> 1631 View Full Profile → </a></p> 1632 1633 </section> </aside><!-- .widget-area --> 1634 1635 1636 1637 <div class="site-info"> 1638 <a class="site-name" href="https://textslashplain.com/" rel="home">text/plain</a><span class="comma">,</span> 1639<a href="https://wordpress.com/?ref=footer_custom_powered">Powered by WordPress.com</a>. </div><!-- .site-info --> 1640 </footer><!-- #colophon --> 1641 1642</div><!-- #page --> 1643 1644<!-- -->
1645<script type="speculationrules"> 1646{"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"}]} 1647</script>
1647 1648<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" >
1649<script defer src="https://s0.wp.com/wp-content/js/bilmur.min.js?m=202638"></script>
1649 1650 <div style="display:none"> 1651 <div class="grofile-hash-map-89c27d27b73dd3690b3dad59f3a539d1"> 1652 </div> 1653 </div> 1654 <div id="jp-carousel-loading-overlay" style="display: none;"> 1655 <div id="jp-carousel-loading-wrapper"> 1656 <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> 1657 </div> 1658 </div> 1659 <div class="jp-carousel-overlay" style="display: none;"> 1660 1661 <div class="jp-carousel-container"> 1662 <!-- The Carousel Swiper --> 1663 <div 1664 class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions" 1665 itemscope 1666 itemtype="https://schema.org/ImageGallery"> 1667 <div class="jp-carousel swiper-wrapper"></div> 1668 <div class="jp-swiper-button-prev swiper-button-prev"> 1669 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1670 <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12"> 1671 <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/> 1672 </mask> 1673 <g mask="url(#maskPrev)"> 1674 <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/> 1675 </g> 1676 </svg> 1677 </div> 1678 <div class="jp-swiper-button-next swiper-button-next"> 1679 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1680 <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12"> 1681 <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/> 1682 </mask> 1683 <g mask="url(#maskNext)"> 1684 <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/> 1685 </g> 1686 </svg> 1687 </div> 1688 </div> 1689 <!-- The main close buton --> 1690 <div class="jp-carousel-close-hint"> 1691 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1692 <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14"> 1693 <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"/> 1694 </mask> 1695 <g mask="url(#maskClose)"> 1696 <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/> 1697 </g> 1698 </svg> 1699 </div> 1700 <!-- Image info, comments and meta --> 1701 <div class="jp-carousel-info"> 1702 <div class="jp-carousel-info-footer"> 1703 <div class="jp-carousel-pagination-container"> 1704 <div class="jp-swiper-pagination swiper-pagination"></div> 1705 <div class="jp-carousel-pagination"></div> 1706 </div> 1707 <div class="jp-carousel-photo-title-container"> 1708 <div class="jp-carousel-photo-caption"></div> 1709 </div> 1710 <div class="jp-carousel-photo-icons-container"> 1711 <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility"> 1712 <span class="jp-carousel-icon"> 1713 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1714 <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 1715 <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"/> 1716 </mask> 1717 <g mask="url(#maskInfo)"> 1718 <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/> 1719 </g> 1720 </svg> 1721 </span> 1722 </a> 1723 <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility"> 1724 <span class="jp-carousel-icon"> 1725 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1726 <mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> 1727 <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"/> 1728 </mask> 1729 <g mask="url(#maskComments)"> 1730 <rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/> 1731 </g> 1732 </svg> 1733 1734 <span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span> 1735 </span> 1736 </a> 1737 </div>
1738 </div> 1739 <div class="jp-carousel-info-extra"> 1740 <div class="jp-carousel-info-content-wrapper"> 1741 <div class="jp-carousel-photo-title-container"> 1742 <div class="jp-carousel-photo-title"></div> 1743 </div> 1744 <div class="jp-carousel-comments-wrapper"> 1745 <div id="jp-carousel-comments-loading"> 1746 <span>Loading Comments...</span> 1747 </div> 1748 <div class="jp-carousel-comments"></div> 1749 <div id="jp-carousel-comment-form-container"> 1750 <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> 1751 <div id="jp-carousel-comment-post-results"></div> 1752 <form id="jp-carousel-comment-form"> 1753 <label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label> 1754 <textarea 1755 name="comment" 1756 class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" 1757 id="jp-carousel-comment-form-comment-field" 1758 placeholder="Write a Comment..." 1759 ></textarea> 1760 <div id="jp-carousel-comment-form-submit-and-info-wrapper"> 1761 <div id="jp-carousel-comment-form-commenting-as"> 1762 <fieldset> 1763 <label for="jp-carousel-comment-form-email-field">Email (Required)</label> 1764 <input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" /> 1765 </fieldset> 1766 <fieldset> 1767 <label for="jp-carousel-comment-form-author-field">Name (Required)</label> 1768 <input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" /> 1769 </fieldset> 1770 <fieldset> 1771 <label for="jp-carousel-comment-form-url-field">Website</label> 1772 <input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" /> 1773 </fieldset> 1774 </div> 1775 <input 1776 type="submit" 1777 name="submit" 1778 class="jp-carousel-comment-form-button" 1779 id="jp-carousel-comment-form-button-submit" 1780 value="Post Comment" /> 1781 </div> 1782 </form> 1783 </div> 1784 </div> 1785 <div class="jp-carousel-image-meta"> 1786 <div class="jp-carousel-title-and-caption"> 1787 <div class="jp-carousel-photo-info"> 1788 <div class="jp-carousel-caption" itemprop="caption description"></div> 1789 </div> 1790 1791 <div class="jp-carousel-photo-description"></div> 1792 </div> 1793 <a class="jp-carousel-image-download" href="#" aria-label="Download image" target="_blank" style="display: none;"> 1794 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 1795 <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18"> 1796 <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"/> 1797 </mask> 1798 <g mask="url(#mask0)"> 1799 <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/> 1800 </g> 1801 </svg> 1802 <span class="jp-carousel-download-text"></span> 1803 </a> 1804 <div class="jp-carousel-image-map" style="display: none;"></div> 1805 </div> 1806 </div>
1807 </div> 1808 </div> 1809 </div> 1810 1811 </div> 1812 1813
1813<script type="text/javascript"> 1814 window.WPCOM_sharing_counts = {"https://textslashplain.com/browse-all-posts/":5799}; 1815 </script>
1815 1816
1816<script> 1817 /(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); 1818 </script>
1818 1819
1819<script type='text/javascript' src='https://textslashplain.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?m=1719276502'></script>
vendor: 1 bytes, line 1819
1819
1820<script id="grofiles-cards-js" src="https://secure.gravatar.com/js/gprofiles.js?ver=202638"></script>
vendor: 1 bytes, line 1820
1820
1821<script id="wpgroho-js-extra"> 1822var WPGroHo = {"my_hash":""}; 1823//# sourceURL=wpgroho-js-extra 1824</script>
vendor: 1 bytes, line 1824
1824
1825<script type='text/javascript' src='https://textslashplain.com/_static/??wp-content/plugins/jetpack/modules/wpgroho.js,wp-content/plugins/jetpack/_inc/build/likes/queuehandler.min.js?m=1789494668'></script>
vendor: 1 bytes, line 1825
1825
1826<script id="jetpack-stats-js-before"> 1827_stq = window._stq || []; 1828_stq.push([ "view", {"v":"ext","blog":"88727790","post":"5799","tz":"-5","srv":"textslashplain.com","hp":"atomic","ac":"2","amp":"0","j":"1:16.3-a.1"} ]); 1829_stq.push([ "clickTrackerInit", "88727790", "5799" ]); 1830//# sourceURL=jetpack-stats-js-before 1831</script>
vendor: 1 bytes, line 1831
1831
1832<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202638.js"></script>
vendor: 1 bytes, line 1832
1832
1833<script id="jetpack-carousel-js-extra"> 1834var jetpackSwiperLibraryPath = {"url":"https://textslashplain.com/wp-content/plugins/jetpack/_inc/blocks/swiper.js"}; 1835var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https://textslashplain.com/wp-admin/admin-ajax.php","nonce":"23d7084282","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%2F2023%2F10%2F05%2Ffiddler-turns-twenty%2F","blog_id":"1","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"]}; 1836//# sourceURL=jetpack-carousel-js-extra 1837</script>
vendor: 1 bytes, line 1837
1837
1838<script type='text/javascript' src='https://textslashplain.com/_static/??-eJyFT8sOgjAQ/CHLSmKCHIyfQkpbcWH7CNvS+PdWUjx48TTJPDIzOQh0ipI2DDODRo6wGaf9CjmI4On1QKLGomtmPhVKeReNi2CTCJQmdFyMylt+wmxikGoZal6m6K2MEdWhiBLazcCrgjEhaXAm866N5NXCH5hKL0cWG5r8T/9ZdUyqhTCUc7VIydUnNvQdcxD13N3e2u7aX/qu7c9vwxNpXg=='></script>
vendor: 1 bytes, line 1838
1838
1839<script id="sharing-js-js-extra"> 1840var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"}; 1841//# sourceURL=sharing-js-js-extra 1842</script>
vendor: 1 bytes, line 1842
1842
1843<script id="sharing-js-js" src="https://textslashplain.com/wp-content/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js?ver=16.3-a.1"></script>
vendor: 1 bytes, line 1843
1843
1844<script id="sharing-js-js-after"> 1845window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 1846window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350"; 1847window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {}; 1848window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400"; 1849//# sourceURL=sharing-js-js-after 1850</script>
vendor: 1 bytes, line 1850
1850
1851<script id="wp-emoji-settings" type="application/json"> 1852{"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"}} 1853</script>
vendor: 1 bytes, line 1853
1853
1854<script type="module"> 1855/*! This file is auto-generated */ 1856var 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)))}); 1857//# sourceURL=https://textslashplain.com/wp-includes/js/wp-emoji-loader.min.js 1858</script>
1858 1859 <iframe src='https://widgets.wp.com/likes/master.html?ver=20260916#ver=20260916' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe> 1860 <div id='likes-other-gravatars' role="dialog" aria-hidden="true" tabindex="-1"><div class="likes-text"><span>%d</span></div><ul class="wpl-avatars sd-like-gravatars"></ul></div> 1861 1862</body> 1863</html> 1864<!-- 1865 generated in 1.828 seconds 1866 161858 bytes batcached for 300 seconds 1867-->
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.