1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 3 4<head profile="http://gmpg.org/xfn/11"> 5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6<meta name="viewport" content="width=device-width, initial-scale=1" /> 7 8<title> bunnie's blog</title> 9 10<link rel="stylesheet" href="https://www.bunniestudios.com/wordpress/wp-content/themes/default/style.css?v=9" type="text/css" media="screen" /> 11<link rel="pingback" href="https://www.bunniestudios.com/wordpress/xmlrpc.php" /> 12 13<style type="text/css" media="screen"> 14 15 #page { background: none; } 16 17</style> 18 19 20 21<meta name='robots' content='max-image-preview:large' /> 22
23<script> 24MathJax = { 25 tex: { 26 inlineMath: [['$','$'],['\\(','\\)']], 27 processEscapes: true 28 }, 29 options: { 30 ignoreHtmlClass: 'tex2jax_ignore|editor-rich-text' 31 } 32}; 33 34</script>
34 35<link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> 36<link rel="alternate" type="application/rss+xml" title="bunnie's blog » Feed" href="https://www.bunniestudios.com/blog/feed/" /> 37<link rel="alternate" type="application/rss+xml" title="bunnie's blog » Comments Feed" href="https://www.bunniestudios.com/blog/comments/feed/" /> 38<style id="wp-img-auto-sizes-contain-inline-css"> 39img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 40/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 41</style> 42<style id="wp-emoji-styles-inline-css"> 43 44 img.wp-smiley, img.emoji { 45 display: inline !important; 46 border: none !important; 47 box-shadow: none !important; 48 height: 1em !important; 49 width: 1em !important; 50 margin: 0 0.07em !important; 51 vertical-align: -0.1em !important; 52 background: none !important; 53 padding: 0 !important; 54 } 55/*# sourceURL=wp-emoji-styles-inline-css */ 56</style> 57<style id="wp-block-library-inline-css"> 58: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;
58--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}} 59 60/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 61</style> 62<style id="wp-block-button-inline-css"> 63.wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1% - var(--wp--style--block-gap, .5em)*(1 - var(--wp--block-button--width)/100))}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1%)}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:transparent;background-image:none} 64/*# sourceURL=https://www.bunniestudios.com/wordpress/wp-includes/blocks/button/style.min.css */ 65</style> 66<style id="wp-block-image-inline-css"> 67.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
67cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
67@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} 68/*# sourceURL=https://www.bunniestudios.com/wordpress/wp-includes/blocks/image/style.min.css */ 69</style> 70<style id="wp-block-paragraph-inline-css"> 71.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} 72/*# sourceURL=https://www.bunniestudios.com/wordpress/wp-includes/blocks/paragraph/style.min.css */ 73</style> 74<style id="wp-block-buttons-inline-css"> 75.wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} 76/*# sourceURL=https://www.bunniestudios.com/wordpress/wp-includes/blocks/buttons/style.min.css */ 77</style> 78 79<style id="classic-theme-styles-inline-css"> 80/*! This file is auto-generated */ 81.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} 82/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 83</style> 84 85<style id="global-styles-inline-css"> 86: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--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,
860) 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: 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-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-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-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;}
86.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;} 87/*# sourceURL=global-styles-inline-css */ 88</style> 89 90<link rel='stylesheet' id='email-subscribers-css' href='https://www.bunniestudios.com/wordpress/wp-content/plugins/email-subscribers/lite/public/css/email-subscribers-public.css?ver=5.5.13' media='all' />
91<script id="jquery-core-js" src="https://www.bunniestudios.com/wordpress/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 91
91
92<script id="jquery-migrate-js" src="https://www.bunniestudios.com/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
92 93<link rel="https://api.w.org/" href="https://www.bunniestudios.com/blog/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.bunniestudios.com/wordpress/xmlrpc.php?rsd" /> 94<meta name="generator" content="WordPress 7.1.2" /> 95<style id="wp-custom-css"> 96/** call-to-action button **/ 97.cta { 98 background: #ffeef860; 99 background-image: -webkit-linear-gradient(top, #ffeef860, #fee0f0ff); 100 background-image: -moz-linear-gradient(top, #ffeef860, #fee0f0ff); 101 background-image: -ms-linear-gradient(top, #ffeef860, #fee0f0ff); 102 background-image: -o-linear-gradient(top, #ffeef860, #fee0f0ff); 103 background-image: linear-gradient(to bottom, #ffeef860, #fee0f0ff); 104 -webkit-border-radius: 4; 105 -moz-border-radius: 4; 106 border-radius: 4px; 107 -webkit-box-shadow: 2px 2px 5px #666666; 108 -moz-box-shadow: 2px 2px 5px #666666; 109 box-shadow: 2px 2px 5px #666666; 110 color: #404040; 111 font-size: 12px; 112 padding: 5px 5px 5px 5px; 113 text-decoration: none; 114} 115 .cta:hover { 116 background: #ffeef860; 117 background-image: -webkit-linear-gradient(top, #fee0f0ff, #ffeef860); 118 background-image: -moz-linear-gradient(top, #fee0f0ff, #ffeef860); 119 background-image: -ms-linear-gradient(top, #fee0f0ff, #ffeef860); 120 background-image: -o-linear-gradient(top, #fee0f0ff, #ffeef860); 121 background-image: linear-gradient(to bottom, #fee0f0ff, #ffeef860); 122 text-decoration: none; 123} 124</style> 125</head> 126<body class="home blog wp-theme-default"> 127<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 127-128
127 128<script async src="https://www.googletagmanager.com/gtag/js?id=
128UA-73296428-1
vendor: 12 bytes, line 128
128"></script>
129<script> 130
vendor: 134 bytes, lines 130-134
130window.dataLayer = window.dataLayer || []; 131 function gtag(){dataLayer.push(arguments);} 132 gtag('js', new Date()); 133 134 gtag('config', '
134UA-73296428-1
vendor: 4 bytes, line 134
134');
135</script>
135 136<div id="page"> 137 138 139<div id="header" role="banner"> 140 <a href="https://www.bunniestudios.com/blog/"><div id="headerimg"></div></a> 141</div> 142<hr /> 143 144 <div id="content" class="narrowcolumn" role="main"> 145 146 147 148 <div class="post-7612 post type-post status-publish format-standard hentry category-name-that-ware" id="post-7612"> 149 <h2><a href="https://www.bunniestudios.com/blog/2026/name-that-ware-august-2026/" rel="bookmark" title="Permanent Link to Name that Ware, August 2026">Name that Ware, August 2026</a></h2> 150 <small>August 30th, 2026 <!-- by bunnie --></small> 151 152 <div class="entry"> 153 154<p class="wp-block-paragraph">The Ware for August 2026 is shown below.</p> 155 156 157 158<figure class="wp-block-image size-large"><img decoding="async" src="https://bunniefoo.com/ntw/ntw_aug_26.jpg" alt=""/></figure> 159 160 161 162<p class="wp-block-paragraph">Technically, this is an integrated circuit – just from a very different era than last month’s ware!</p> 163 </div> 164 165 <p class="postmetadata"> Posted in <a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/" rel="category tag">name that ware</a> | <a href="https://www.bunniestudios.com/blog/2026/name-that-ware-august-2026/#comments">8 Comments »</a></p> 166 </div> 167 168 169 <div class="post-7603 post type-post status-publish format-standard hentry category-baochip category-name-that-ware" id="post-7603"> 170 <h2><a href="https://www.bunniestudios.com/blog/2026/winner-name-that-ware-july-2026/" rel="bookmark" title="Permanent Link to Winner, Name that Ware July 2026">Winner, Name that Ware July 2026</a></h2> 171 <small>August 30th, 2026 <!-- by bunnie --></small> 172 173 <div class="entry"> 174 175<p class="wp-block-paragraph">The structure in question for last month’s ware are a pair of NPN transistors that form the core of a bandgap voltage reference circuit.</p> 176 177 178 179<p class="wp-block-paragraph">As its name implies, a bandgap voltage reference generates a near-constant voltage for use inside chips. The voltage is intended to be fairly constant over process variations, temperature variations, and power supply fluctuations. The circuit itself is <a href="https://bunniefoo.com/ntw/ntw_july_2026_annotated.png" data-type="link" data-id="https://bunniefoo.com/ntw/ntw_july_2026_annotated.png">extremely clever</a>, using circuit elements that have offsets that move in opposite directions with temperature to cancel each other out. Without this circuit, chips would have performance characteristics that strongly depend upon its operating temperature. Therefore, almost every system on chip has at least one of these.</p> 180 181 182 183<figure class="wp-block-image size-large"><img decoding="async" src="https://bunniefoo.com/ntw/ntw_july_2026_annotated.png" alt=""/></figure> 184 185 186 187<p class="wp-block-paragraph">If you’re ever looking at a chip micrograph, the circuit will jump out because it’s likely to be the only thing that has two arrays of perfectly square NPN transistors next to each other. I’ve highlighted the active transistors in pink. In this case, the transistor ratio is 1:64. Modern chip designs will always include a ring of extra “dummy” transistors around the active transistors. The reason for the dummies is that they protect the core from process variations. At these insanely small geometries, a well-known problem is that transistors on the edge of an array behave differently from those in the core. This is due to a myriad of problems, but a simple example of the problem for visualization purposes is to imagine the devices going through an etching process: the concentration of the etchant will depend upon the density of the pattern being etched. The devices on the edge of an array will etch at a different rate than those in the center, and thus they will have a slightly different net performance characteristic. As a result, for very sensitive circuits like a bandgap voltage reference, it’s standard practice to “throw away” the edge devices as their characteristics are harder to control.</p> 188 189 190 191<p class="wp-block-paragraph">The orange region above the pair of NPN transistors is a pair of PMOS devices that are current mirrors that drive the NPN transistors. The blue square are a pair of resistors, and the green square is a differential amplifier that forms the active circuit core of the bandgap circuit. These
191circuits are so commonplace that it’s fairly easy to find a representative schematic just Googling for one:</p> 192 193 194 195<figure class="wp-block-image size-large"><a href="https://www.researchgate.net/figure/Schematic-of-the-proposed-bandgap-circuit_fig2_2978563"><img decoding="async" src="https://bunniefoo.com/ntw/Schematic-of-the-proposed-bandgap-circuit.png" alt=""/></a></figure> 196 197 198 199<p class="wp-block-paragraph">The above was one of the first hits I got googling for “<a href="https://www.researchgate.net/figure/Schematic-of-the-proposed-bandgap-circuit_fig2_2978563" data-type="link" data-id="https://www.researchgate.net/figure/Schematic-of-the-proposed-bandgap-circuit_fig2_2978563">bandgap circuit</a>“. The actual topology of this schematic is not exactly the same, but very similar to the circuit in the layout above.</p> 200 201 202 203<p class="wp-block-paragraph">When looking at a large, unknown die shot, I will often orient myself by first looking for a bandgap circuit, and then looking for an SRAM. Between the two of these, I get a size standard to which I can use to compare analog and digital circuits against, and work my way from there towards other functional elements on a chip.</p> 204 205 206 207<p class="wp-block-paragraph">While nobody guessed this circuit, asdf’s response gave me a chuckle, so I’ll give asdf the prize. Drop me an email to claim your prize!</p> 208 </div> 209 210 <p class="postmetadata"> Posted in <a href="https://www.bunniestudios.com/blog/category/baochip/" rel="category tag">baochip</a>, <a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/" rel="category tag">name that ware</a> | <a href="https://www.bunniestudios.com/blog/2026/winner-name-that-ware-july-2026/#respond">No Comments »</a></p> 211 </div> 212 213 214 <div class="post-7589 post type-post status-publish format-standard hentry category-name-that-ware" id="post-7589"> 215 <h2><a href="https://www.bunniestudios.com/blog/2026/name-that-ware-july-2026/" rel="bookmark" title="Permanent Link to Name that Ware, July 2026">Name that Ware, July 2026</a></h2> 216 <small>July 30th, 2026 <!-- by bunnie --></small> 217 218 <div class="entry"> 219 220<p class="wp-block-paragraph">The Ware for July 2026 is shown below.</p> 221 222 223 224<figure class="wp-block-image size-large"><img decoding="async" src="https://bunniefoo.com/ntw/ntw_july_2026.jpg" alt=""/></figure> 225 226 227 228<p class="wp-block-paragraph">I’ve got silicon on the brain, so I’m going to give a die shot another go at name that ware. Hopefully this one is a bit easier than the last one. This excerpt is a design pattern I look for and find on almost every SoC. It’s technically showing a bit more than just the part I’m focused on, so as a hint I’m primarily interested in identifying the structure towards the lower left corner of this image.</p> 229 230 231 232<p class="wp-block-paragraph">If you’ve seen one of these before, you’ll know what it is – it’s pretty unmistakable, and a design pattern that’s highly conserved across processes, nodes and foundries. Bonus points to anyone that can explain some of the reasons why things are organized the way they are!</p> 233 234 235 236<p class="wp-block-paragraph"></p> 237 </div> 238 239 <p class="postmetadata"> Posted in <a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/" rel="category tag">name that ware</a> | <a href="https://www.bunniestudios.com/blog/2026/name-that-ware-july-2026/#comments">8 Comments »</a></p> 240 </div> 241 242 243 <div class="post-7586 post type-post status-publish format-standard hentry category-name-that-ware" id="post-7586"> 244 <h2><a href="https://www.bunniestudios.com/blog/2026/winner-name-that-ware-june-2026/" rel="bookmark" title="Permanent Link to Winner, Name that Ware June 2026">Winner, Name that Ware June 2026</a></h2> 245 <small>July 30th, 2026 <!-- by bunnie --></small> 246 247 <div class="entry"> 248 249<p class="wp-block-paragraph">The Ware for June 2026 is an SGI RM6-64 raster manager, from a KONA/InfiniteReality graphics system. Congrats to Christian for naming it! email me for your prize.</p> 250 251 252 253<p class="wp-block-paragraph">This gem of a board was gifted to me by someone at SGI back when I worked there in…I want to say 1998? I even still have the name plate from my cubicle, from back before the ‘bunnie’ nickname really stuck…</p> 254 255 256 257<figure class="wp-block-image size-large"><img decoding="async" src="https://bunniefoo.com/bunnie/sgi_nameplate.jpg" alt=""/></figure> 258 259 260 261<p class="wp-block-paragraph">Back then, if you wanted to do graphics, SGI was the only game in town, but I joined the party late. Within six months of joining, most of the division I was in had jumped ship for these then little-known upstarts of nVidia and ATI. Lacking any connections and the office a ghost town (my office building was eventually acquired by another startup that’s become a household name, you might have heard of them: Google. Still really weird visiting friends that work on that campus…), I went back to the familiarity of MIT and got my PhD, and that was the last time I held a job in Silicon Valley. Ironically, my main project today is doing silicon, just not in the Valley. What’s that old saying…<em>you can take the boy out of Silicon Valley, but you can’t take the silicon out of the boy</em>?</p> 262 263 264 265<p class="wp-block-paragraph">It was pretty impressive what they could do at the board level at SGI. That all got eaten up by Moore’
265s Law and integrated graphics…and now that Moore’s Law has run out of steam, we’re returning with gusto to the huge rack servers with lots and lots of interconnect!</p> 266 </div> 267 268 <p class="postmetadata"> Posted in <a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/" rel="category tag">name that ware</a> | <a href="https://www.bunniestudios.com/blog/2026/winner-name-that-ware-june-2026/#comments">3 Comments »</a></p> 269 </div> 270 271 272 <div class="post-7582 post type-post status-publish format-standard hentry category-name-that-ware" id="post-7582"> 273 <h2><a href="https://www.bunniestudios.com/blog/2026/name-that-ware-june-2026/" rel="bookmark" title="Permanent Link to Name that Ware, June 2026">Name that Ware, June 2026</a></h2> 274 <small>June 30th, 2026 <!-- by bunnie --></small> 275 276 <div class="entry"> 277 278<p class="wp-block-paragraph">The Ware for June 2026 is shown below:</p> 279 280 281 282<figure class="wp-block-image size-large"><a href="https://bunniefoo.com/ntw/ntw-june-2026.jpg"><img decoding="async" src="https://bunniefoo.com/ntw/ntw-june-2026_sm.jpg" alt=""/></a></figure> 283 284 285 286<figure class="wp-block-image size-large"><a href="https://bunniefoo.com/ntw/ntw-june-2026b.jpg"><img decoding="async" src="https://bunniefoo.com/ntw/ntw-june-2026b_sm.jpg" alt=""/></a></figure> 287 288 289 290<p class="wp-block-paragraph">This board is from my personal collection of “favorite boards” that I’ve collected over the years. A lot of old memories associated this one – both figuratively and literally.</p> 291 292 293 294<p class="wp-block-paragraph">I’ve received some feedback that gmail in particular is marking my email updates as spam. Not sure I have a good way to fix this yet, as the blog is also under heavy attack from automated AI spammers at the same time (to the tune of several thousand requests a day).</p> 295 296 297 298<p class="wp-block-paragraph">You’ll notice that the blog has no ads, so I also have no budget for moderation, paid mailers, or fancy anti-spam tools. I’ll noodle on a durable solution to this problem in my copious spare time, but for now, if you’re not receiving the email updates, please try to convince Google this is not spam by marking it as ham in your inbox. Yes, have also received feedback that this is ineffective and that “the way” is to pay a service that specializes in sending spam *ahem* marketing emails, but see my previous comment about this being a lean, ad-free blog. But, maybe if enough readers mark the emails as not spam, “The Algorithm” might be convinced people actually wanted the updates they signed up for?</p> 299 </div> 300 301 <p class="postmetadata"> Posted in <a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/" rel="category tag">name that ware</a> | <a href="https://www.bunniestudios.com/blog/2026/name-that-ware-june-2026/#comments">16 Comments »</a></p> 302 </div> 303 304 305 <div class="navigation"> 306 <div class="alignleft"><a href="https://www.bunniestudios.com/blog/page/2/" >« Older Entries</a></div> 307 <div class="alignright"></div> 308 </div> 309 310 311 </div> 312 313 <div id="sidebar" role="complementary"> 314 <ul> 315 <li id="email-subscribers-form-1" class="widget widget_email-subscribers-form"><div class="emaillist" id="es_form_f1-n1"><form action="/blog/#es_form_f1-n1" method="post" class="es_subscription_form es_shortcode_form es_ajax_subscription_form" id="es_subscription_form_6ab4e025a505c" data-source="ig-es" data-form-id="1"><div class="es-field-wrap"><label>Name*<br /><input type="text" name="esfpx_name" class="ig_es_form_field_name" placeholder="" value="" required="required" /></label></div><div class="es-field-wrap"><label>Email*<br /><input class="es_required_field es_txt_email ig_es_form_field_email" type="email" name="esfpx_email" value="" placeholder="" required="required" /></label></div><input type="hidden" name="esfpx_lists[]" value="d80f73a28285" /><input type="hidden" name="esfpx_form_id" value="1" /><input type="hidden" name="es" value="subscribe" /> 316 <input type="hidden" name="esfpx_es_form_identifier" value="f1-n1" /> 317 <input type="hidden" name="esfpx_es_email_page" value="7582" /> 318 <input type="hidden" name="esfpx_es_email_page_url" value="https://www.bunniestudios.com/blog/2026/name-that-ware-june-2026/" /> 319 <input type="hidden" name="esfpx_status" value="Unconfirmed" /> 320 <input type="hidden" name="esfpx_es-subscribe" id="es-subscribe-6ab4e025a505c" value="
3200ec027ddf1" /> 321 <label style="position:absolute;top:-99999px;left:-99999px;z-index:-99;"><input type="email" name="esfpx_es_hp_email" class="es_required_field" tabindex="-1" autocomplete="-1" value="" /></label><input type="submit" name="submit" class="es_subscription_form_submit es_submit_button es_textbox_button" id="es_subscription_form_submit_6ab4e025a505c" value="Subscribe" /><span class="es_spinner_image" id="spinner-image"><img src="https://www.bunniestudios.com/wordpress/wp-content/plugins/email-subscribers/lite/public/images/spinner.gif" alt="Loading" /></span></form><span class="es_subscription_message " id="es_subscription_message_6ab4e025a505c"></span></div></li><li id="block-2" class="widget widget_block"> 322<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex"> 323<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/sponsors/bunnie">Sponsor bunnie on Github</a></div> 324</div> 325</li><li id="categories-4" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> 326 <ul> 327 <li class="cat-item cat-item-4"><a href="https://www.bunniestudios.com/blog/category/administrative/">Administrative</a> 328</li> 329 <li class="cat-item cat-item-74"><a href="https://www.bunniestudios.com/blog/category/baochip/">baochip</a> 330</li> 331 <li class="cat-item cat-item-70"><a href="https://www.bunniestudios.com/blog/category/betrusted/">betrusted</a> 332</li> 333 <li class="cat-item cat-item-16"><a href="https://www.bunniestudios.com/blog/category/ponderings/biology/">Biology</a> 334</li> 335 <li class="cat-item cat-item-38"><a href="https://www.bunniestudios.com/blog/category/chibitronics/">chibitronics</a> 336</li> 337 <li class="cat-item cat-item-6"><a href="https://www.bunniestudios.com/blog/category/chumby/">chumby</a> 338</li> 339 <li class="cat-item cat-item-69"><a href="https://www.bunniestudios.com/blog/category/covid-19/">covid-19</a> 340</li> 341 <li class="cat-item cat-item-66"><a href="https://www.bunniestudios.com/blog/category/ponderings/feminism/">Feminism</a> 342</li> 343 <li class="cat-item cat-item-20"><a href="https://www.bunniestudios.com/blog/category/gongkai/">gongkai</a> 344</li> 345 <li class="cat-item cat-item-2"><a href="https://www.bunniestudios.com/blog/category/hacking/">Hacking</a> 346</li> 347 <li class="cat-item cat-item-73"><a href="https://www.bunniestudios.com/blog/category/iris/">IRIS</a> 348</li> 349 <li class="cat-item cat-item-7"><a href="https://www.bunniestudios.com/blog/category/chumby/made-in-china/">Made in China</a> 350</li> 351 <li class="cat-item cat-item-18"><a href="https://www.bunniestudios.com/blog/category/hacking/made-in-italy/">Made in Italy</a> 352</li> 353 <li class="cat-item cat-item-54"><a href="https://www.bunniestudios.com/blog/category/hacking/name-that-ware/">name that ware</a> 354</li> 355 <li class="cat-item cat-item-17"><a href="https://www.bunniestudios.com/blog/category/hacking/netv/">NeTV</a> 356</li> 357 <li class="cat-item cat-item-28"><a href="https://www.bunniestudios.com/blog/category/novena/">novena</a> 358</li> 359 <li class="cat-item cat-item-67"><a href="https://www.bunniestudios.com/blog/category/hacking/open-source/">open source</a> 360</li> 361 <li class="cat-item cat-item-5"><a href="https://www.bunniestudios.com/blog/category/ponderings/">Ponderings</a> 362</li> 363 <li class="cat-item cat-item-71"><a href="https://www.bunniestudios.com/blog/category/betrusted/precursor/">precursor</a> 364</li> 365 <li class="cat-item cat-item-3"><a href="https://www.bunniestudios.com/blog/category/social/">Social</a> 366</li> 367 <li class="cat-item cat-item-19"><a href="https://www.bunniestudios.com/blog/category/the-factory-floor/">The Factory Floor</a> 368</li> 369 <li class="cat-item cat-item-1"><a href="https://www.bunniestudios.com/blog/category/uncategorized/">Uncategorized</a> 370</li> 371 </ul> 372 373 </li><li id="pages-3" class="widget widget_pages"><h2 class="widgettitle">Pages</h2> 374 <ul> 375 <li class="page_item page-item-2266"><a href="https://www.bunniestudios.com/blog/2012-name-that-ware-calendar/">2012 Name That Ware Calendar</a></li> 376<li class="page_item page-item-133"><a href="https://www.bunniestudios.com/blog/contact-bunnie/">Contact bunnie</a></li> 377<li class="page_item page-item-2362"><a href="https://www.bunniestudios.com/blog/crosslicense-1-0-xl-1-0/">Crosslicense 1.0 (XL-1.0)</a></li> 378<li class="page_item page-item-1932"><a href="https://www.bunniestudios.com/blog/on-influenza-a-h1n1/">On Influenza A (H1N1)</a></li> 379<li class="page_item page-item-1022 page_item_has_children"><a href="https://www.bunniestudios.com/blog/on-microsd-problems/">On MicroSD Problems</a> 380<ul class='children'> 381 <li class="page_item page-item-3592"><a href="https://www.bunniestudios.com/blog/on-microsd-problems/on-hacking-microsd-cards/">On Hacking MicroSD Cards</a></li> 382</ul> 383</li> 384<li class="page_item page-item-3107"><a href="https://www.bunniestudios.com/blog/the-12-gongkai-phone/">The $12 “Gongkai” Phone</a></li> 385<li class="page_item page-item-2812 page_item_has_children"><a href="https://www.bunniestudios.com/blog/the-factory-floor-part-1-of-4the-quotation-or-how-to-make-a-bom/">The Factory Floor, Part 1 of 4:<br>The Quotation (or, How to Make a BOM)</a> 386<ul class='children'> 387 <li class="page_item page-item-2831"><a href="https://www.bunniestudios.com/blog/the-factory-floor-part-1-of-4the-quotation-or-how-to-make-a-bom/the-factory-floor-part-2-of-4on-design-for-manufacturing/">The Factory Floor, Part 2 of 4:<br>On Design for Manufacturing</a></li> 388 <li class="page_item page-item-2850"><a href="https://www.bunniestudios.com/blog/the-factory-floor-part-1-of-4the-quotation-or-how-to-make-a-bom/the-factory-floor-part-3-of-4-industrial-design-for-upstarts/">The Factory Floor, Part 3 of 4:<br> Industrial Design for Startups</a></li> 389 <li class="page_item page-item-2911"><a href="https://www.bunniestudios.com/blog/the-factory-floor-part-1-of-4the-quotation-or-how-to-make-a-bom/the-factory-floor-part-4-of-4picking-and-maintaining-a-partner/">The Factory Floor, Part 4 of 4:<br>Picking (and Maintaining) a Partner</a></li> 390</ul> 391</li> 392<li class="page_item page-item-1927"><a href="https://www.bunniestudios.com/blog/why-the-best-days-of-open-hardware-are-yet-to-come/">Why the Best Days of Open Hardware are Yet to Come</a></li> 393<li class="page_item page-item-236"><a href="https://www.bunniestudios.com/blog/add-a-vga-lcd-to-a-chumby/">Add a VGA LCD to a Chumby</a></li> 394<li class="page_item page-item-27"><a href="https://www.bunniestudios.com/blog/dvorak-on-the-tandy-102/">Dvorak on the Tandy 102</a></li> 395<li class="page_item page-item-21 page_item_has_children"><a href="https://www.bunniestudios.com/blog/hackdac/">HackDAC</a> 396<ul class='children'> 397 <li class="page_item page-item-24"><a href="https://www.bunniestudios.com/blog/hackdac/hackdac-implementation/">HackDAC Implementation</a></li> 398 <li class="page_item page-item-22"><a href="https://www.bunniestudios.com/blog/hackdac/hackdac-theory/">HackDAC Theory</a></li> 399</ul> 400</li> 401<li class="page_item page-item-40"><a href="https://www.bunniestudios.com/blog/hacking-the-pic-18f1320/">Hacking the PIC 18F1320</a></li> 402<li class="page_item page-item-51"><a href="https://www.bunniestudios.com/blog/modifying-s400-scanner
402-for-watermark-enhancement/">Modifying the S400 Scanner for Watermark Enhancement</a></li> 403<li class="page_item page-item-36"><a href="https://www.bunniestudios.com/blog/pictures-of-logic-gates-in-silicon/">Pictures of Logic Gates in Silicon</a></li> 404<li class="page_item page-item-3"><a href="https://www.bunniestudios.com/blog/some-hacks-ive-done/">Some hacks I’ve done</a></li> 405<li class="page_item page-item-15"><a href="https://www.bunniestudios.com/blog/diodes-solitons-and-taoism/">Diodes, Solitons, and Taoism</a></li> 406<li class="page_item page-item-11"><a href="https://www.bunniestudios.com/blog/name-that-ware-contest-rules/">Name that Ware Contest Rules</a></li> 407 </ul> 408 409 </li><li id="linkcat-9" class="widget widget_links"><h2 class="widgettitle">Stuff</h2> 410 <ul class='xoxo blogroll'> 411<li><a href="https://www.cafepress.com/bunniestudios" title="bunnie studios logo merchandise (for fun, I make no profit)">bunniestudios logo merch</a></li> 412<li><a href="https://bunniefoo.com/bunnie/factpub.pdf" title="White paper on Factpub fact-extraction copyright paywall bypass">Factpub Whitepaper</a></li> 413<li><a href="https://bunniestudios.com/bunnie/" rel="me" title="My old home page">Old home page</a></li> 414<li><a href="https://bunniestudios.com/bunnie/phdthesis.pdf" title="My PhD thesis">PhD thesis</a></li> 415 416 </ul> 417</li> 418<li id="search-3" class="widget widget_search"><form role="search" method="get" id="searchform" class="searchform" action="https://www.bunniestudios.com/blog/"> 419 <div> 420 <label class="screen-reader-text" for="s">Search for:</label> 421 <input type="text" value="" name="s" id="s" /> 422 <input type="submit" id="searchsubmit" value="Search" /> 423 </div> 424 </form></li><li id="meta-3" class="widget widget_meta"><h2 class="widgettitle">Meta</h2> 425 <ul> 426 <li><a href="https://www.bunniestudios.com/wordpress/wp-login.php">Log in</a></li> 427 <li><a href="https://www.bunniestudios.com/blog/feed/">Entries feed</a></li> 428 <li><a href="https://www.bunniestudios.com/blog/comments/feed/">Comments feed</a></li> 429 430 <li><a href="https://wordpress.org/">WordPress.org</a></li> 431 </ul> 432 433 </li> </ul> 434 </div> 435 436 437 438<hr /> 439<div id="footer" role="contentinfo"> 440<!-- If you'd like to support WordPress, having the "powered by" link somewhere on your blog is the best way; it's our only promotion or advertising. --> 441 <p> 442 bunnie's blog is proudly powered by <a href="http://wordpress.org/">WordPress</a> <br /><a href="https://www.bunniestudios.com/blog/feed/">Entries (RSS)</a> and <a href="https://www.bunniestudios.com/blog/comments/feed/">Comments (RSS)</a>. <!-- 44 queries. 0.710 seconds. --> 443 </p> 444</div> 445</div> 446 447<!-- Gorgeous design by Michael Heilemann - http://binarybonsai.com/kubrick/ --> 448 449
449<script type="speculationrules"> 450{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/blog/*"},{"not":{"href_matches":["/wordpress/wp-*.php","/wordpress/wp-admin/*","/wordpress/wp-content/uploads/*","/wordpress/wp-content/*","/wordpress/wp-content/plugins/*","/wordpress/wp-content/themes/default/*","/blog/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 451</script>
vendor: 1 bytes, line 451
451
452<script id="email-subscribers-js-extra"> 453var es_data = {"messages":{"es_empty_email_notice":"Please enter email address","es_rate_limit_notice":"You need to wait for some time before subscribing again","es_single_optin_success_message":"Successfully Subscribed.","es_email_exists_notice":"Email Address already exists!","es_unexpected_error_notice":"Oops.. Unexpected error occurred.","es_invalid_email_notice":"Invalid email address","es_try_later_notice":"Please try after some time"},"es_ajax_url":"https://www.bunniestudios.com/wordpress/wp-admin/admin-ajax.php"}; 454//# sourceURL=email-subscribers-js-extra 455</script>
vendor: 1 bytes, line 455
455
456<script id="email-subscribers-js" src="https://www.bunniestudios.com/wordpress/wp-content/plugins/email-subscribers/lite/public/js/email-subscribers-public.js?ver=5.5.13"></script>
vendor: 1 bytes, line 456
456
457<script id="mathjax-js" src="//cdn.jsdelivr.net/npm/mathjax@4/tex-chtml.js?ver=7.1.2"></script>
vendor: 1 bytes, line 457
457
458<script id="wp-emoji-settings" type="application/json"> 459{"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://www.bunniestudios.com/wordpress/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 460</script>
vendor: 1 bytes, line 460
460
461<script type="module"> 462/*! This file is auto-generated */ 463var 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)))}); 464//# sourceURL=https://www.bunniestudios.com/wordpress/wp-includes/js/wp-emoji-loader.min.js 465</script>
465 466</body> 467</html> 468 469<!-- Dynamic page generated in 0.710 seconds. --> 470<!-- Cached page generated by WP-Super-Cache on 2026-09-24 16:32:37 --> 471 472<!-- 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.