1<!DOCTYPE html> 2<html lang="en-US" class="no-js"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <link rel="profile" href="https://gmpg.org/xfn/11"> 7 <link rel="pingback" href="https://dmitrybrant.com/xmlrpc.php"> 8
8<script> 9(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement); 10//# sourceURL=twentyfifteen_javascript_detection 11</script>
11 12<title>Dmitry Brant – He's just this guy, you know?</title> 13<meta name='robots' content='max-image-preview:large' /> 14<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 15<link rel="alternate" type="application/rss+xml" title="Dmitry Brant » Feed" href="https://dmitrybrant.com/feed" /> 16<link rel="alternate" type="application/rss+xml" title="Dmitry Brant » Comments Feed" href="https://dmitrybrant.com/comments/feed" /> 17<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://dmitrybrant.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdmitrybrant.com%2F" /> 18<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://dmitrybrant.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdmitrybrant.com%2F&format=xml" /> 19<style id="wp-img-auto-sizes-contain-inline-css"> 20img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 21/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 22</style> 23<link rel='stylesheet' id='twentyfifteen-jetpack-css' href='https://dmitrybrant.com/wp-content/plugins/jetpack/modules/theme-tools/compat/twentyfifteen.css?ver=16.2' media='all' /> 24<style id="wp-emoji-styles-inline-css"> 25 26 img.wp-smiley, img.emoji { 27 display: inline !important; 28 border: none !important; 29 box-shadow: none !important; 30 height: 1em !important; 31 width: 1em !important; 32 margin: 0 0.07em !important; 33 vertical-align: -0.1em !important; 34 background: none !important; 35 padding: 0 !important; 36 } 37/*# sourceURL=wp-emoji-styles-inline-css */ 38</style> 39<style id="wp-block-library-inline-css"> 40: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;
40--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}} 41 42/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 43</style> 44<style id="classic-theme-styles-inline-css"> 45/*! This file is auto-generated */ 46.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 47/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 48</style> 49 50<style id="global-styles-inline-css"> 51: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: #fff;--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--dark-gray: #111;--wp--preset--color--light-gray: #f1f1f1;--wp--preset--color--yellow: #f4ca16;--wp--preset--color--dark-brown: #352712;--wp--preset--color--medium-pink: #e53b51;--wp--preset--color--light-pink: #ffe5d1;--wp--preset--color--dark-purple: #2e2256;--wp--preset--color--purple: #674970;--wp--preset--color--blue-gray: #22313f;--wp--preset--color--bright-blue: #55c3dc;--wp--preset--color--light-blue: #e9f2f9;--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,
510) 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--gradient--dark-gray-gradient-gradient: linear-gradient(90deg, rgba(17,17,17,1) 0%, rgba(42,42,42,1) 100%);--wp--preset--gradient--light-gray-gradient: linear-gradient(90deg, rgba(241,241,241,1) 0%, rgba(215,215,215,1) 100%);--wp--preset--gradient--white-gradient: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(230,230,230,1) 100%);--wp--preset--gradient--yellow-gradient: linear-gradient(90deg, rgba(244,202,22,1) 0%, rgba(205,168,10,1) 100%);--wp--preset--gradient--dark-brown-gradient: linear-gradient(90deg, rgba(53,39,18,1) 0%, rgba(91,67,31,1) 100%);--wp--preset--gradient--medium-pink-gradient: linear-gradient(90deg, rgba(229,59,81,1) 0%, rgba(209,28,51,1) 100%);--wp--preset--gradient--light-pink-gradient: linear-gradient(90deg, rgba(255,229,209,1) 0%, rgba(255,200,158,1) 100%);--wp--preset--gradient--dark-purple-gradient: linear-gradient(90deg, rgba(46,34,86,1) 0%, rgba(66,48,123,1) 100%);--wp--preset--gradient--purple-gradient: linear-gradient(90deg, rgba(103,73,112,1) 0%, rgba(131,93,143,1) 100%);--wp--preset--gradient--blue-gray-gradient: linear-gradient(90deg, rgba(34,49,63,1) 0%, rgba(52,75,96,1) 100%);--wp--preset--gradient--bright-blue-gradient: linear-gradient(90deg, rgba(85,195,220,1) 0%, rgba(43,180,211,1) 100%);--wp--preset--gradient--light-blue-gradient: linear-gradient(90deg, rgba(233,242,249,1) 0%, rgba(193,218,238,1) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--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(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}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-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-yellow-color{color: var(--wp--preset--color--yellow) !important;}.has-dark-brown-color{color: var(--wp--preset--color--dark-brown) !important;}.has-medium-pink-color{color: var(--wp--preset--color--medium-pink) !important;}.has-light-pink-color{color: var(--wp--preset--color--light-pink) !important;}.has-dark-purple-color{color: var(--wp--preset--color--dark-purple) !important;}.has-purple-color{color: var(--wp--preset--color--purple) !important;}.has-blue-gray-color{color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-color{color: var(--wp--preset--color--light-blue) !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-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-yellow-background-color{background-color: var(--wp--preset--color--yellow) !important;}.has-dark-brown-background-color{background-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-pink-background-color{background-color: var(--wp--preset--color--medium-pink) !important;}.has-light-pink-background-color{background-color: var(--wp--preset--color--light-pink) !important;}.has-dark-purple-background-color{background-color: var(--wp--preset--color--dark-purple) !important;}.has-purple-background-color{background-color: var(--wp--preset--color--purple) !important;}.has-blue-gray-background-color{background-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-background-color{background-color: var(--wp--preset--color--light-blue) !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-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-yellow-border-color{border-color: var(--wp--preset--color--yellow) !important;}.has-dark-brown-border-color{border-color: var(--wp--preset--color--dark-brown) !important;}.has-medium-pink-border-color{border-color: var(--wp--preset--color--medium-pink) !important;}.has-light-pink-border-color{border-color: var(--wp--preset--color--light-pink) !important;}.has-dark-purple-border-color{border-color: var(--wp--preset--color--dark-purple) !important;}.has-purple-border-color{border-color: var(--wp--preset--color--purple) !important;}.has-blue-gray-border-color{border-color: var(--wp--preset--color--blue-gray) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-light-blue-border-color{border-color: var(--wp--preset--color--light-blue) !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;}
51.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-dark-gray-gradient-gradient-gradient-background{background: var(--wp--preset--gradient--dark-gray-gradient-gradient) !important;}.has-light-gray-gradient-gradient-background{background: var(--wp--preset--gradient--light-gray-gradient) !important;}.has-white-gradient-gradient-background{background: var(--wp--preset--gradient--white-gradient) !important;}.has-yellow-gradient-gradient-background{background: var(--wp--preset--gradient--yellow-gradient) !important;}.has-dark-brown-gradient-gradient-background{background: var(--wp--preset--gradient--dark-brown-gradient) !important;}.has-medium-pink-gradient-gradient-background{background: var(--wp--preset--gradient--medium-pink-gradient) !important;}.has-light-pink-gradient-gradient-background{background: var(--wp--preset--gradient--light-pink-gradient) !important;}.has-dark-purple-gradient-gradient-background{background: var(--wp--preset--gradient--dark-purple-gradient) !important;}.has-purple-gradient-gradient-background{background: var(--wp--preset--gradient--purple-gradient) !important;}.has-blue-gray-gradient-gradient-background{background: var(--wp--preset--gradient--blue-gray-gradient) !important;}.has-bright-blue-gradient-gradient-background{background: var(--wp--preset--gradient--bright-blue-gradient) !important;}.has-light-blue-gradient-gradient-background{background: var(--wp--preset--gradient--light-blue-gradient) !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;} 52/*# sourceURL=global-styles-inline-css */ 53</style> 54 55<style id="jetpack-stats-inline-css"> 56img#wpstats{display:none} 57/*# sourceURL=jetpack-stats-inline-css */ 58</style> 59<link rel='stylesheet' id='twentyfifteen-style-css' href='https://dmitrybrant.com/wp-content/themes/twentyfifteen/style.css?ver=7.1.2' media='all' /> 60<link rel='stylesheet' id='child-style-css' href='https://dmitrybrant.com/wp-content/themes/twentyfifteen-child/style.css?ver=1.0.0' media='all' /> 61<link rel='stylesheet' id='twentyfifteen-fonts-css' href='https://fonts.googleapis.com/css?family=Noto+Sans%3A400italic%2C700italic%2C400%2C700%7CNoto+Serif%3A400italic%2C700italic%2C400%2C700%7CInconsolata%3A400%2C700%7CSpecial+Elite%3A400%2C700&subset=latin%2Clatin-ext' media='all' /> 62<link rel='stylesheet' id='genericons-css' href='https://dmitrybrant.com/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' media='all' /> 63<link rel='stylesheet' id='twentyfifteen-block-style-css' href='https://dmitrybrant.com/wp-content/themes/twentyfifteen/css/blocks.css?ver=20240715' media='all' />
64<script id="jquery-core-js" src="https://dmitrybrant.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 64
64
65<script id="jquery-migrate-js" src="https://dmitrybrant.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 65
65
66<script id="twentyfifteen-script-js-extra"> 67var screenReaderText = {"expand":"\u003Cspan class=\"screen-reader-text\"\u003Eexpand child menu\u003C/span\u003E","collapse":"\u003Cspan class=\"screen-reader-text\"\u003Ecollapse child menu\u003C/span\u003E"}; 68//# sourceURL=twentyfifteen-script-js-extra 69</script>
vendor: 1 bytes, line 69
69
70<script data-wp-strategy="defer" defer id="twentyfifteen-script-js" src="https://dmitrybrant.com/wp-content/themes/twentyfifteen/js/functions.js?ver=20250729"></script>
70 71<link rel="https://api.w.org/" href="https://dmitrybrant.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://dmitrybrant.com/wp-json/wp/v2/pages/1671" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://dmitrybrant.com/xmlrpc.php?rsd" /> 72<meta name="generator" content="WordPress 7.1.2" /> 73<link rel="canonical" href="https://dmitrybrant.com/" /> 74<link rel='shortlink' href='https://dmitrybrant.com/' /> 75</head> 76 77<body class="home wp-singular page-template-default page page-id-1671 wp-embed-responsive wp-theme-twentyfifteen wp-child-theme-twentyfifteen-child"> 78<div id="page" class="hfeed site"> 79 <a class="skip-link screen-reader-text" href="#content"> 80 Skip to content </a> 81 82 <div id="sidebar" class="sidebar"> 83 <header id="masthead" class="site-header"> 84 <div class="site-branding"> 85 <p class="site-title"><a href="https://dmitrybrant.com/" rel="home" aria-current="page">Dmitry Brant</a></p> 86 <p class="site-description">He's just this guy, you know?</p> 87 88 <button class="secondary-toggle">Menu and widgets</button> 89 </div><!-- .site-branding --> 90 </header><!-- .site-header --> 91 92 <div id="secondary" class="secondary"> 93 94 <nav id="site-navigation" class="main-navigation"> 95 <div class="menu-main-menu-container"><ul id="menu-main-menu" class="nav-menu"><li id="menu-item-930" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-930"><a href="/" aria-current="page">Home</a></li> 96<li id="menu-item-1678" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1678"><a href="https://dmitrybrant.com/blog">Blog</a></li> 97<li id="menu-item-944" class="menu-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-944"><a>Software</a> 98<ul class="sub-menu"> 99 <li id="menu-item-1715" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1715"><a href="https://dmitrybrant.com/software-for-windows">For Windows / macOS / Linux</a></li> 100 <li id="menu-item-1716" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1716"><a href="https://dmitrybrant.com/software-for-android">For Android</a></li> 101 <li id="menu-item-1748" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1748"><a href="https://dmitrybrant.com/other-projects">Miscellaneous / archived</a></li> 102 <li id="menu-item-2580" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2580"><a href="https://rivendell.dmitrybrant.com">Truly miscellaneous / experimental</a></li> 103 <li id="menu-item-948" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-948"><a href="https://dmitrybrant.com/donate">Donate</a></li> 104</ul> 105</li> 106<li id="menu-item-931" class="menu-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-931"><a>DiskDigger</a> 107<ul class="sub-menu"> 108 <li id="menu-item-950" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-950"><a href="http://diskdigger.org">For Windows/Linux/macOS</a></li> 109 <li id="menu-item-951" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-951"><a href="http://diskdigger.org/android">For Android</a></li> 110</ul> 111</li> 112<li id="menu-item-2239" class="menu-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2239"><a>How To</a> 113<ul class="sub-menu"> 114 <li id="menu-item-2240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2240"><a href="https://dmitrybrant.com/how-to-raspberry-pi">How To: Raspberry Pi</a></li> 115 <li id="menu-item-2253" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2253"><a href="https://dmitrybrant.com/how-to-emulation">How To: Emulation</a></li> 116 <li id="menu-item-2266" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2266"><a href="https://dmitrybrant.com/how-to-tape-backup-and-recovery">How To: Tape backup and recovery</a></li> 117 <li id="menu-item-2247" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2247"><a href="https://dmitrybrant.com/how-to-image-processing-and-management">How To: Image processing and management</a></li> 118 <li id="menu-item-2260" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2260"><a href="https://dmitrybrant.com/how-to-web-stuff">How To: Web stuff</a></li> 119 <li id="menu-item-2441" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2441"><a href="https://dmitrybrant.com/how-to-microcontrollers">How To: Microcontrollers</a></li> 120 <li id="menu-item-2537" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2537"><a href="https://dmitrybrant.com/openstick">How To: OpenStick</a></li> 121 <li id="menu-item-2548" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2548"><a href="https://dmitrybrant.com/lichee-pi-nano">How To: Lichee Pi Nano</a></li> 122 <li id="menu-item-2269" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2269"><a href="https://dmitrybrant.com/how-to-miscellaneous">How To: Miscellaneous</a></li> 123</ul> 124</li> 125<li id="menu-item-2229" class="menu-toggle menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2229"><a>Data recovery</a> 126<ul class="sub-menu"> 127 <li id="menu-item-2230" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2230"><a href="https://dmitrybrant.com/inventory-media">Inventory</a></li> 128</ul> 129</li> 130<li id="menu-item-1004" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1004"><a href="http://dmitrybrant.com/category/religion-and-philosophy">Musings</a> 131<ul class="sub-menu"> 132 <li id="menu-item-1015" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1015"><a href="http://dmitrybrant.com/category/religion-and-philosophy">Religion and Pseudoscience</a></li> 133 <li id="menu-item-1013" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1013"><a href="https://dmitrybrant.com/things-americans-say-wrong">Things Americans Say Wrong</a></li> 134 <li id="menu-item-1014" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1014"><a href="https://dmitrybrant.com/fun-with-the-bible-code">Fun With the Bible Code</a></li> 135</ul> 136</li> 137<li id="menu-item-1762" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1762"><a href="https://dmitrybrant.com/about">Aboutâ¦</a> 138<ul class="sub-menu"> 139 <li id="menu-item-1763" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1763"><a href="https://dmitrybrant.com/software-chronology">Software chronology</a></li> 140</ul> 141</li> 142</ul></div> </nav><!-- .main-navigation --> 143 144 145 <div id="widget-area" class="widget-area" role="complementary"> 146 147 <aside id="recent-posts-3" class="widget widget_recent_entries"> 148 <h2 class="widget-title">Recent Posts</h2><nav aria-label="Recent Posts"> 149 <ul> 150 <li> 151 <a href="https://dmitrybrant.com/2026/09/26/timeline-of-the-far-future">Timeline of the far future</a> 152 <span class="post-date">September 26, 2026</span> 153 </li> 154 <li> 155 <a href="https://dmitrybrant.com/2026/09/13/relativity-park-taming-the-speed-of-light">Relativity Park: taming the speed of light</a> 156 <span class="post-date">September 13, 2026</span> 157 </li> 158 <li> 159 <a href="https://dmitrybrant.com/2026/09/04/return-to-zork-now-moddable">Return to Zork: now moddable!</a> 160 <span class="post-date">September 4, 2026</span> 161 </li> 162 <li> 163 <a href="https://dmitrybrant.com/2026/08/23/claude-x-retrocomputing-emulating-a-qic-117-tape-drive">Claude à retrocomputing: emulating a QIC-117 tape drive</a> 164 <span class="post-date">August 23, 2026</span> 165 </li> 166 <li> 167 <a href="https://dmitrybrant.com/2026/08/16/an-emulator-for-the-tc2000-supercomputer">Claude à retrocomputing: emulating the TC2000 supercomputer</a> 168 <span class="post-date">August 16, 2026</span> 169 </li> 170 </ul> 171 172 </nav></aside><aside id="search-3" class="widget widget_search"><h2 class="widget-title">Search…</h2><form role="search" method="get" class="search-form" action="https://dmitrybrant.com/"> 173 <label> 174 <span class="screen-reader-text">Search for:</span> 175 <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> 176 </label> 177 <input type="submit" class="search-submit screen-reader-text" value="Search" /> 178 </form></aside><aside id="calendar-2" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar" class="wp-calendar-table"> 179 <caption>October 2026</caption> 180 <thead> 181 <tr> 182 <th scope="col" aria-label="Monday">M</th> 183 <th scope="col" aria-label="Tuesday">T</th> 184 <th scope="col" aria-label="Wednesday">W</th> 185 <th scope="col" aria-label="Thursday">T</th> 186 <th scope="col" aria-label="Friday">F</th> 187 <th scope="col" aria-label="Saturday">S</th> 188 <th scope="col" aria-label="Sunday">S</th> 189 </tr> 190 </thead> 191 <tbody> 192 <tr> 193 <td colspan="3" class="pad"> </td><td id="today">1</td><td>2</td><td>3</td><td>4</td> 194 </tr> 195 <tr> 196 <td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td> 197 </tr> 198 <tr> 199 <td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td> 200 </tr> 201 <tr> 202 <td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td> 203 </tr> 204 <tr> 205 <td>26</td><td>27</td><td>28</td><td>29</td><td>30</td><td>31</td> 206 <td class="pad" colspan="1"> </td> 207 </tr> 208 </tbody> 209 </table><nav aria-label="Previous and next months" class="wp-calendar-nav"> 210 <span class="wp-calendar-nav-prev"><a href="https://dmitrybrant.com/2026/09">« Sep</a></span> 211 <span class="pad"> </span> 212 <span class="wp-calendar-nav-next"> </span> 213 </nav></div></aside> </div><!-- .widget-area --> 214 215 </div><!-- .secondary --> 216 217 </div><!-- .sidebar --> 218
219 <div id="content" class="site-content"> 220 221 <div id="primary" class="content-area"> 222 <main id="main" class="site-main site-main-page" role="main"> 223 224 225<article id="post-1671" class="article-main-page post-1671 page type-page status-publish hentry"> 226 227 <header class="entry-header"> 228 </header><!-- .entry-header --> 229 230 <div class="entry-main-page"> 231 <div id="mainHeader" class="main-page-header"> 232<div class="main-page-headerpanel"> 233<p class="main-title">Dmitry Brant</p> 234<p>Software whisperer.</p> 235<p>Lead engineer (Android) at<br /> 236<a href="https://wikimediafoundation.org">Wikimedia Foundation</a>.</p> 237<p>Digital forensics /<br /> 238data recovery specialist.</p> 239</div> 240</div> 241<ul class="main-page-list"> 242<li><a href="/software-for-windows"><img decoding="async" src="/images/win1.gif">Software (Windows)</a></li> 243<li><a href="/software-for-android"><img decoding="async" src="/images/and1.gif">Software (Android)</a></li> 244<li><a href="/blog"><img decoding="async" src="/images/blog1.gif">Blog</a></li> 245<li><a href="/other-projects"><img decoding="async" src="/images/other1.gif">Other projects</a></li> 246</ul> 247<div class="main-page-contact-icons"> 248<div class="main-page-contact-1"><img decoding="async" src="/images/talk1.gif">Contact:</div> 249<p><a title="Email" href="mailto:[email protected]" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/email.svg"></a><a title="Twitter" href="https://twitter.com/dmitrybrant" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/twitter.svg"></a><a title="Facebook" href="https://www.facebook.com/brant.dmitry" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/facebook.svg"></a><a title="LinkedIn" href="https://www.linkedin.com/in/dmitrybrant/" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/linkedin.svg"></a><a title="GitHub" href="https://github.com/dbrant" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/github.svg"></a><a title="Flickr" href="https://www.flickr.com/photos/dmitrybrant/" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/flickr.svg"></a><a title="YouTube" href="http://www.youtube.com/user/dmitrybrant/videos?view=0&flow=grid" target="_blank" rel="noopener noreferrer"><img decoding="async" class="custom-footerimg" src="/images/youtube.svg"></a></p> 250</div> 251 </div><!-- .entry-content --> 252 253 254</article><!-- #post-## --> 255 256 </main><!-- .site-main --> 257 </div><!-- .content-area --> 258
259<script> 260document.getElementById("mainHeader").style.backgroundImage = "url('/himg/db" + (Math.floor(Math.random() * 6) + 1) + ".jpg')"; 261</script>
261 262 263 264 </div><!-- .site-content --> 265 266 <footer id="colophon" class="site-footer" role="contentinfo"> 267 <div class="site-info"> 268 269 Copyright © 1980–2026 Dmitry Brant 270 </div><!-- .site-info --> 271 </footer><!-- .site-footer --> 272 273</div><!-- .site --> 274
275<script type="speculationrules"> 276{"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/twentyfifteen-child/*","/wp-content/themes/twentyfifteen/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 277</script>
vendor: 1 bytes, line 277
277
278<script id="jetpack-stats-js-before"> 279_stq = window._stq || []; 280_stq.push([ "view", {"v":"ext","blog":"182975189","post":"1671","tz":"-4","srv":"dmitrybrant.com","j":"1:16.2"} ]); 281_stq.push([ "clickTrackerInit", "182975189", "1671" ]); 282//# sourceURL=jetpack-stats-js-before 283</script>
vendor: 1 bytes, line 283
283
284<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202640.js"></script>
vendor: 1 bytes, line 284
284
285<script id="wp-emoji-settings" type="application/json"> 286{"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://dmitrybrant.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 287</script>
vendor: 1 bytes, line 287
287
288<script type="module"> 289/*! This file is auto-generated */ 290var 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)))}); 291//# sourceURL=https://dmitrybrant.com/wp-includes/js/wp-emoji-loader.min.js 292</script>
292 293
294<script> 295document.addEventListener("DOMContentLoaded", function () { 296 document.querySelectorAll(".menu-toggle > a").forEach(function (el) { 297 el.addEventListener("click", function (e) { 298 e.preventDefault(); 299 const parent = el.parentElement; 300 parent.classList.toggle("open"); 301 }); 302 }); 303}); 304</script>
304 305</body> 306</html> 307<!-- Dynamic page generated in 0.114 seconds. --> 308<!-- Cached page generated by WP-Super-Cache on 2026-10-01 07:57:57 --> 309 310<!-- super cache -->
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.