- 掃描 ID:
- ad30f143-866d-4b76-ab0d-b0de038a85e7已完成
- 已提交的 URL:
- https://blog.bigdinosaur.org/
- 報告完成時間:
連結 · 找到 18 個
從頁面中識別的傳出連結
連結 | Text |
---|---|
https://www.bigdinosaur.org | Home |
https://cog.discourse.group | Forum |
https://www.chroniclesofgeorge.com | George |
https://fangs.ink | Fangs |
https://spacecityweather.com | Space City Weather |
https://spacecityweather.com/how-space-city-weather-weathered-hurricane-laura/ | 1.5 million pageviews in a single day |
https://prismjs.com/ | PrismJS-based syntax highlighting |
https://en.wikipedia.org/wiki/C._J._Cherryh | C. J. Cherryh |
https://en.wikipedia.org/wiki/Arthur_C._Clarke | Clarke |
https://en.wikipedia.org/wiki/Frank_Herbert | Herbert |
JavaScript 變數 · 找到 14 個
在頁面的視窗物件上載入的全域 JavaScript 變數是在函數外部宣告的變數,可從目前範圍內程式碼中的任何位置存取
名稱 | 類型 |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
_wpemojiSettings | object |
generatepressMenu | object |
jQueryBridget | function |
EvEmitter | function |
matchesSelector | function |
fizzyUIUtils | object |
InfiniteScroll | function |
主控台記錄訊息 · 找到 0 條
記錄到 Web 主控台的訊息
HTML
頁面的原始 HTML 主體
<!DOCTYPE html><html lang="en-US"><head>
<meta charset="UTF-8">
<title>BigDino Blog – Tales of hacking and stomping on things, by Lee Hutchinson</title>
<meta name="robots" content="max-image-preview:large">
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<meta name="viewport" content="width=device-width, initial-scale=1"><link href="https://fonts.gstatic.com" crossorigin="" rel="preconnect">
<link href="https://fonts.googleapis.com" crossorigin="" rel="preconnect">
<link rel="alternate" type="application/rss+xml" title="BigDino Blog » Feed" href="https://blog.bigdinosaur.org/feed/">
<link rel="alternate" type="application/rss+xml" title="BigDino Blog » Comments Feed" href="https://blog.bigdinosaur.org/comments/feed/">
<script>
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/blog.bigdinosaur.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!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!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));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(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
</script>
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel="stylesheet" id="wp-block-library-css" href="https://blog.bigdinosaur.org/wp-includes/css/dist/block-library/style.min.css?ver=6.7.1" media="all">
<style id="classic-theme-styles-inline-css">
/*! This file is auto-generated */
.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}
</style>
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--contrast: var(--contrast);--wp--preset--color--contrast-2: var(--contrast-2);--wp--preset--color--contrast-3: var(--contrast-3);--wp--preset--color--base: var(--base);--wp--preset--color--base-2: var(--base-2);--wp--preset--color--base-3: var(--base-3);--wp--preset--color--accent: var(--accent);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 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,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 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 rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}: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;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.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;}.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;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel="stylesheet" id="dashicons-css" href="https://blog.bigdinosaur.org/wp-includes/css/dashicons.min.css?ver=6.7.1" media="all">
<link rel="stylesheet" id="generate-style-css" href="https://blog.bigdinosaur.org/wp-content/themes/generatepress/assets/css/main.min.css?ver=3.5.1" media="all">
<style id="generate-style-inline-css">
#nav-below {display:none;}
.is-right-sidebar{width:30%;}.is-left-sidebar{width:30%;}.site-content .content-area{width:100%;}@media (max-width:768px){.main-navigation .menu-toggle,.sidebar-nav-mobile:not(#sticky-placeholder){display:block;}.main-navigation ul,.gen-sidebar-nav,.main-navigation:not(.slideout-navigation):not(.toggled) .main-nav > ul,.has-inline-mobile-toggle #site-navigation .inside-navigation > *:not(.navigation-search):not(.main-nav){display:none;}.nav-align-right .inside-navigation,.nav-align-center .inside-navigation{justify-content:space-between;}}
.dynamic-author-image-rounded{border-radius:100%;}.dynamic-featured-image, .dynamic-author-image{vertical-align:middle;}.one-container.blog .dynamic-content-template:not(:last-child), .one-container.archive .dynamic-content-template:not(:last-child){padding-bottom:0px;}.dynamic-entry-excerpt > p:last-child{margin-bottom:0px;}
</style>
<link rel="stylesheet" id="generate-google-fonts-css" href="https://fonts.googleapis.com/css?family=Hind%3A300%2Cregular%2C500%2C600%2C700%7CCopse%3Aregular%7CJost%3A100%2C200%2C300%2Cregular%2C500%2C600%2C700%2C800%2C900%2C100italic%2C200italic%2C300italic%2Citalic%2C500italic%2C600italic%2C700italic%2C800italic%2C900italic&display=auto&ver=3.5.1" media="all">
<link rel="stylesheet" id="generatepress-dynamic-css" href="https://blog.bigdinosaur.org/wp-content/uploads/generatepress/style.min.css?ver=1731694773" media="all">
<link rel="stylesheet" id="generate-blog-css" href="https://blog.bigdinosaur.org/wp-content/plugins/gp-premium/blog/functions/css/style.min.css?ver=2.5.0" media="all">
<link rel="https://api.w.org/" href="https://blog.bigdinosaur.org/wp-json/"><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://blog.bigdinosaur.org/xmlrpc.php?rsd">
<meta name="generator" content="WordPress 6.7.1">
<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><link rel="icon" href="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/cropped-bigdino200-32x32.png" sizes="32x32">
<link rel="icon" href="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/cropped-bigdino200-192x192.png" sizes="192x192">
<link rel="apple-touch-icon" href="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/cropped-bigdino200-180x180.png">
<meta name="msapplication-TileImage" content="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/cropped-bigdino200-270x270.png">
<style id="wp-custom-css">
p a:link, p a:hover, p a:active, p a:visited {
font-weight:500;
text-decoration: underline;
}
.site-description > a, span.dashicons {
text-decoration: none !important;
font-weight:400 !important;
}
span.dashicons {
font-size:120%;
width:auto;
vertical-align:sub;
}
#site-navigation > div {
padding-bottom:.5em;
}
#masthead > div > p {
margin-top:0;
margin-bottom:.5em;
}
blockquote {
font-size: 1.1em;
line-height: 1.4;
font-weight: 400;
}
blockquote.wp-block-quote {
border-radius: 1.5em;
box-shadow: 0 5px 10px rgba(0,0,0, 0.2);
color: #000;
background-color:#f0f0f0;
font-size: 1em;
font-weight: normal;
}
code {
font-weight: 900;
background-color: #eee;
}
.has-drop-cap:not(:focus)::first-letter {
font-weight: 300;
} </style>
<script src="https://blog.bigdinosaur.org/wp-includes/js/wp-emoji-release.min.js?ver=6.7.1" defer=""></script></head>
<body class="home blog wp-custom-logo wp-embed-responsive post-image-below-header post-image-aligned-center infinite-scroll no-sidebar nav-below-header separate-containers header-aligned-center dropdown-hover" itemtype="https://schema.org/Blog" itemscope="">
<a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a> <header class="site-header" id="masthead" aria-label="Site" itemtype="https://schema.org/WPHeader" itemscope="">
<div class="inside-header grid-container">
<div class="site-logo">
<a href="https://blog.bigdinosaur.org/" rel="home">
<img class="header-image is-logo-image" alt="BigDino Blog" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/bigdino-blog-title-white.png" width="700" height="200">
</a>
</div><p class="site-description">Tales of hacking and stomping on things, by <a href="/email">Lee Hutchinson <span class="dashicons dashicons-email-alt"></span></a></p> </div>
</header>
<nav class="main-navigation nav-align-center sub-menu-left" id="site-navigation" aria-label="Primary" itemtype="https://schema.org/SiteNavigationElement" itemscope="">
<div class="inside-navigation grid-container">
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false">
<span class="gp-icon icon-menu-bars"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M0 96c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24zm0 160c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24zm0 160c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24z"></path></svg><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.03c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z"></path></svg></span><span class="mobile-menu">Menu</span> </button>
<div id="primary-menu" class="main-nav"><ul id="menu-site-main" class=" menu sf-menu"><li id="menu-item-442" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-442"><a href="https://www.bigdinosaur.org">Home</a></li>
<li id="menu-item-440" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-440"><a href="/about">About</a></li>
<li id="menu-item-441" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-441"><a href="https://cog.discourse.group">Forum</a></li>
<li id="menu-item-438" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-438"><a href="https://blog.bigdinosaur.org/" aria-current="page">Blog</a></li>
<li id="menu-item-443" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-443"><a href="https://www.chroniclesofgeorge.com">George</a></li>
<li id="menu-item-444" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-444"><a href="https://fangs.ink">Fangs</a></li>
</ul></div> </div>
</nav>
<div class="site grid-container container hfeed" id="page">
<div class="site-content" id="content">
<div class="content-area" id="primary">
<main class="site-main" id="main">
<article id="post-765" class="post-765 post type-post status-publish format-standard hentry category-web-stuff infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/unexpected-things-bye-bye-openlitespeed/" rel="bookmark">Unexpected things: Bye bye, OpenLiteSpeed</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2024-01-23T18:22:44-06:00" itemprop="dateModified">January 23, 2024</time><time class="entry-date published" datetime="2024-01-23T11:27:44-06:00" itemprop="datePublished">January 23, 2024</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<p class="has-drop-cap">After having absolutely no end of unexpected performance issues over on <a href="https://spacecityweather.com">Space City Weather</a> during the Houston “deep freeze” event of 2023, it seems likely that the core problem comes down to OpenLiteSpeed (or its PHP implementation) being unable to handle the traffic rush with the resources I’m willing to give it. This is disappointing, as I’ve been enjoying learning OpenLiteSpeed.</p>
<p>But so it goes. I’ve ripped out OLS in favor of Nginx, this time with FastCGI caching rather than leaning on Varnish. I’m publishing this little blog post on my personal blog just to make sure that the cache invalidation I’m doing on new post publication works—that kind of thing is annoyingly important. Fingers crossed, let’s see!</p>
<p>Update: Hey, it works—cached version of the front page was invalidated and a new one was served up with the blog post. This is good news!</p>
</div>
</div>
</article>
<article id="post-602" class="post-602 post type-post status-publish format-standard hentry category-web-stuff tag-code tag-openlitespeed tag-wordpress infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/configuring-wordpress-openlitespeed/" rel="bookmark">Configuring Wordpress & OpenLiteSpeed</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="entry-date published" datetime="2022-07-23T11:01:19-05:00" itemprop="datePublished">July 23, 2022</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-full"><img fetchpriority="high" decoding="async" width="269" height="255" src="https://blog.bigdinosaur.org/wp-content/uploads/2022/07/bigdino-left-cleanbg-ols-logo2.png" alt="A dinosaur who has stolen the OLS logo and looks very proud of himself" class="wp-image-609"></figure></div>
<p>I described <a href="https://blog.bigdinosaur.org/farewell-to-the-old-stack-welcome-aws-and-openlitespeed/" data-type="post" data-id="547">in a previous post</a> the 2022 changes in the BigDino web stack, with the biggest change being that we’re now using OpenLiteSpeed (“OLS”) as our web server application. There are a whole buttload of “how to install Wordpress on OLS” posts on the web and I ended up reading most of them during the process of switching the server over, but most of them are outdated in some way, and none of them included everything I ended up needing to do to get everything working.</p>
<p>Partially to document my configuration for the world but mainly so that I won’t ever have to look all this up from scratch again, here’s how I configured OpenLiteSpeed to serve up Wordpress quickly, safely, and securely. (I hope.)</p>
<p class="read-more-container"><a title="Configuring Wordpress & OpenLiteSpeed" class="read-more content-read-more" href="https://blog.bigdinosaur.org/configuring-wordpress-openlitespeed/#more-602" aria-label="Read more about Configuring Wordpress & OpenLiteSpeed">Read more</a></p> </div>
</div>
</article>
<article id="post-589" class="post-589 post type-post status-publish format-standard hentry category-personal tag-valve-index tag-vr infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/fixing-my-valve-indexs-extreme-tilt/" rel="bookmark">Fixing my Valve Index’s extreme tilt</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2022-07-02T20:37:40-05:00" itemprop="dateModified">July 2, 2022</time><time class="entry-date published" datetime="2022-06-27T09:36:20-05:00" itemprop="datePublished">June 27, 2022</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<p class="has-drop-cap">Over the past month or so, my Valve Index has been registering an annoying amount of tilt—when I put it on and start up SteamVR, the floor in VR-land is about five degrees out-of-whack with the actual floor. No amount of room setup re-running or view re-centering would touch the issue. The only fix I could find was to break tracking on the headset by covering it with a towel, then variously aiming the headset straight up or straight down and restoring tracking. Sometimes, this would straighten out the horizon, but often not.</p>
<p>You’d think there’d be an easy way to fix the headset’s tilt, too—like, why isn’t there a SteamVR option to adjust the angle of the horizon? Why is this such a massive issue?</p>
<p>Turns out there <em>is</em> a way to address the problem with SteamVR—but it requires screwing around with some jank-ass command line tools. Because of course it does.</p>
<p class="read-more-container"><a title="Fixing my Valve Index’s extreme tilt" class="read-more content-read-more" href="https://blog.bigdinosaur.org/fixing-my-valve-indexs-extreme-tilt/#more-589" aria-label="Read more about Fixing my Valve Index’s extreme tilt">Read more</a></p> </div>
</div>
</article>
<article id="post-547" class="post-547 post type-post status-publish format-standard hentry category-personal category-web-stuff tag-nginx tag-openlitespeed tag-varnish tag-wordpress infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/farewell-to-the-old-stack-welcome-aws-and-openlitespeed/" rel="bookmark">Farewell to the old stack, welcome AWS and OpenLiteSpeed</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:32:48-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2022-06-09T06:43:46-05:00" itemprop="datePublished">June 9, 2022</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<p class="has-drop-cap">Nginx and I have a long history. BigDinosaur.org first went online some time in 2010 with a little Apache-powered homepage, and it didn’t take long for me to switch over to Nginx—probably to be contrary, more than anything else, because Nginx was a fascinating underdog that was steadily winning web server market share with its speed and flexibility. I liked it. I <a href="https://blog.bigdinosaur.org/octopress-and-nginx/">blogged</a> about it. <a href="https://blog.bigdinosaur.org/nginx-stable-or-dev/">A lot.</a> I thought I’d found a piece of software I could live with forever.</p>
<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM.jpg" target="_blank" rel="noopener"><img decoding="async" width="1024" height="718" data-id="552" src="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-1024x718.jpg" alt="" class="wp-image-552" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-1024x718.jpg 1024w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-300x210.jpg 300w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-768x538.jpg 768w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-1536x1077.jpg 1536w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.47.02-PM-2048x1436.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px"></a><figcaption class="wp-element-caption">HAproxy, for SSL termination</figcaption></figure>
<figure class="wp-block-image size-large"><a href="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM.jpg" target="_blank" rel="noopener"><img decoding="async" width="1024" height="718" data-id="551" src="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-1024x718.jpg" alt="" class="wp-image-551" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-1024x718.jpg 1024w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-300x210.jpg 300w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-768x538.jpg 768w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-1536x1077.jpg 1536w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.46.45-PM-2048x1436.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px"></a><figcaption class="wp-element-caption">Varnish, for cache</figcaption></figure>
<figure class="wp-block-image size-large"><a href="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM.jpg" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1024" height="718" data-id="553" src="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-1024x718.jpg" alt="" class="wp-image-553" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-1024x718.jpg 1024w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-300x210.jpg 300w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-768x538.jpg 768w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-1536x1077.jpg 1536w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/Screen-Shot-2022-06-08-at-7.45.57-PM-2048x1436.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px"></a><figcaption class="wp-element-caption">Nginx, for static assets and reverse proxy</figcaption></figure>
</figure>
<p>And don’t get me wrong—Nginx is great. But in the decade since 2010, my web hosting ambitions have grown and I’ve incurred a lot of technical debt. Nginx gave way to <a href="https://blog.bigdinosaur.org/adventures-in-varnish/">Nginx and Varnish</a>, and then after the HTTPS revolution happened, <a href="https://blog.bigdinosaur.org/an-updated-look-at-the-bigdino-web-stack/">Nginx and Varnish and HAProxy</a>. For a time, things were good—Varnish is maybe a little heavy-duty for my needs, but I appreciated the crazy stuff it let me do with very fast redirects and screwing around with cookies. It made hosting Wordpress a little nutty, but my hosting strategies were working out well where I was applying them under real load over <a href="https://spacecityweather.com">Space City Weather</a>, which weathered a peak load of <a href="https://spacecityweather.com/how-space-city-weather-weathered-hurricane-laura/">1.5 million pageviews in a single day</a> during Hurricane Laura’s near-miss of the Houston area in 2020.</p>
<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura.png" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="500" src="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura-1024x500.png" alt="" class="wp-image-558" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura-1024x500.png 1024w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura-300x146.png 300w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura-768x375.png 768w, https://blog.bigdinosaur.org/wp-content/uploads/2022/06/garak-stats-laura.png 1164w" sizes="auto, (max-width: 1024px) 100vw, 1024px"></a><figcaption class="wp-element-caption">Traffic on Space City Weather during Hurricane Laura. The BigDino web stack (plus a hefty helping of Cloudflare magic) carried the day.</figcaption></figure></div>
<p>But as bulletproof as the Haproxy-Varnish-Nginx stack was, as the years wore on and things evolved, it grew to be kind of a pain in the butt to maintain—especially when mixed with Cloudflare on a few of the sites I maintain. Troubleshooting issues while dealing with both a caching CDN (Cloudflare) and a local cache layer (Varnish) sometimes caused me to pull my hair out. And after a decade on the same hosting stack, I was growing curious about some of the newer options out there. Was there something I could use to host my stuff that might give around the same level of performance, but without the complexity? Could I ditch my triple application stack sandwich for something simpler?</p>
<p class="read-more-container"><a title="Farewell to the old stack, welcome AWS and OpenLiteSpeed" class="read-more content-read-more" href="https://blog.bigdinosaur.org/farewell-to-the-old-stack-welcome-aws-and-openlitespeed/#more-547" aria-label="Read more about Farewell to the old stack, welcome AWS and OpenLiteSpeed">Read more</a></p> </div>
</div>
</article>
<article id="post-370" class="post-370 post type-post status-publish format-standard hentry category-web-stuff tag-code tag-wordpress infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/fixing-wordpress-annoyances/" rel="bookmark">Fixing Wordpress annoyances: welcome box, lowercase “p,” please, & syntax highlighting</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:56:08-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2021-02-13T17:44:34-06:00" itemprop="datePublished">February 13, 2021</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large is-resized"><img loading="lazy" decoding="async" width="270" height="254" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/bigdino-wordpress-login-notext.png" alt="" class="wp-image-513" style="width:200px;height:200px"></figure></div>
<p>So, hey, it turns out that while the grass is indeed a little bit greener over here on this side of the blogging fence, Wordpress still does a couple of things I don’t like and that need correcting. This gives me an opportunity to do that most overdone of blog posts—the “here’s how to add $THING to Wordpress!” post.</p>
<p>There are two problems we’re going to fix: the first is Automattic’s decision to make “Wordpress” (without camel-case) always render as “WordPress” (with camel-case) no matter how the author writes the word. We’re going to undo this unwanted trademark enforcement via a must-use plugin.</p>
<p>The second problem we’re going to fix is the block editor’s “Welcome Guide” popover, and its insistence at re-appearing even after being dismissed. The damn thing comes back every time I create a new post in a new browser window—I assume because for whatever reason its dismissal is recorded not in an actual site preference, but in a cookie or something. So we’re going to banish it permanently via another must-use plugin.</p>
<p>And then, since we’re already going to make a couple of must-use plugins, we’ll make one more—this one will add <a href="https://prismjs.com/">PrismJS-based syntax highlighting</a> to Wordpress. Which I will be typing with a lowercase “p.”</p>
<p class="read-more-container"><a title="Fixing Wordpress annoyances: welcome box, lowercase “p,” please, & syntax highlighting" class="read-more content-read-more" href="https://blog.bigdinosaur.org/fixing-wordpress-annoyances/#more-370" aria-label="Read more about Fixing Wordpress annoyances: welcome box, lowercase “p,” please, & syntax highlighting">Read more</a></p> </div>
</div>
</article>
<article id="post-353" class="post-353 post type-post status-publish format-standard hentry category-personal tag-wordpress infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/ah-wordpress-we-meet-again/" rel="bookmark">Ah, Wordpress, we meet again</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:55:56-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2021-02-10T20:00:26-06:00" itemprop="datePublished">February 10, 2021</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large"><img loading="lazy" decoding="async" width="200" height="199" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/Gutenberg-logo.png" alt="" class="wp-image-355" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/Gutenberg-logo.png 200w, https://blog.bigdinosaur.org/wp-content/uploads/2021/02/Gutenberg-logo-150x150.png 150w" sizes="auto, (max-width: 200px) 100vw, 200px"></figure></div>
<p>For all my bitching about Wordpress as my personal blogging platform, I don’t think I ever actually ended up using it. I went from Grey Matter to Octopress to Ghost to a pure static site, and I thought I’d stay that way. I thought we were done with change.</p>
<p>And yet, here we are. On Wordpress.</p>
<p>How the hell did we get here?</p>
<p class="read-more-container"><a title="Ah, Wordpress, we meet again" class="read-more content-read-more" href="https://blog.bigdinosaur.org/ah-wordpress-we-meet-again/#more-353" aria-label="Read more about Ah, Wordpress, we meet again">Read more</a></p> </div>
</div>
</article>
<article id="post-6" class="post-6 post type-post status-publish format-standard hentry category-web-stuff tag-code tag-haproxy tag-nginx tag-varnish infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/an-updated-look-at-the-bigdino-web-stack/" rel="bookmark">An updated look at the BigDino web stack</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:55:44-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2019-01-06T07:00:00-06:00" itemprop="datePublished">January 6, 2019</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large"><img loading="lazy" decoding="async" width="200" height="134" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/webbbbb-2.jpg" alt="" class="wp-image-301"></figure></div>
<p>It’s been some time since I’ve done a good ol’ infrastructure post, and the Bigdinosaur.org web stack has evolved a bit over the course of 2018. We’re still using HAProxy, Varnish, and Nginx, but the way these applications connect and how they communicate is very different from my 2017-era config. Let’s dive in!</p>
<p class="read-more-container"><a title="An updated look at the BigDino web stack" class="read-more content-read-more" href="https://blog.bigdinosaur.org/an-updated-look-at-the-bigdino-web-stack/#more-6" aria-label="Read more about An updated look at the BigDino web stack">Read more</a></p> </div>
</div>
</article>
<article id="post-15" class="post-15 post type-post status-publish format-standard hentry category-personal infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/pronunciation-of-names-and-places-in-c-j-cherryhs-foreigner-books/" rel="bookmark">Pronunciation of names and places in C.J. Cherryh’s “Foreigner” books</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:55:33-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2018-07-09T07:00:00-05:00" itemprop="datePublished">July 9, 2018</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large"><img loading="lazy" decoding="async" width="300" height="201" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/foreigner.jpg" alt="" class="wp-image-299"></figure></div>
<p>Author <a href="https://en.wikipedia.org/wiki/C._J._Cherryh">C. J. Cherryh</a> is one of the last great living masters of science fiction, easily on a par with <a href="https://en.wikipedia.org/wiki/Arthur_C._Clarke">Clarke</a>, <a href="https://en.wikipedia.org/wiki/Frank_Herbert">Herbert</a>, or <a href="https://en.wikipedia.org/wiki/Gene_Wolfe">Wolfe</a>. Her strength is in building worlds populated with believable humans and non-humans, and then writing those characters in such a way that the reader ends up deeply empathizing with them—even the most alien of aliens.</p>
<p>Her best-known works are the long-running <a href="https://en.wikipedia.org/wiki/Alliance%E2%80%93Union_universe">Alliance-Union</a> novels, which taken together describe a war-filled future history epic of the expansion of humankind off of Earth and into the rest of the galaxy. However, for the past couple of decades Cherryh has been focusing on a different series altogether: the <a href="https://en.wikipedia.org/wiki/Foreigner_universe"><em>Foreigner</em></a> books.</p>
<p>The series (starting with <em>Foreigner</em>) tells the tale of a lost human colony ship forced to take permanent refuge at far-off world populated by heretofore undiscovered aliens: the three-meter tall black-skinned atevi. Atevi don’t experience the same emotions as humans and have an innate perception of numbers that’s described as roughly analogous to the human perception of color. Humanity and atevi are similar enough that they quickly establish cordial relations, and different enough that war is inevitable.</p>
<p>But I’m not going to do a whole series recap—we’d be here forever, since the series at this point consists of 19 books with at least two more to come. Instead, I want to focus on a very touchy subject, and one about which readers of the books will no doubt have very spiky feelings: pronunciation of names and places.</p>
<p><strong><em>N.B.</em> Folks who haven’t read at least one <em>Foreigner</em> book should probably bail on this entry, because this post probably isn’t going to be super-interesting unless you’ve already got some Ragi words bouncing around in your head.</strong></p>
<p class="read-more-container"><a title="Pronunciation of names and places in C.J. Cherryh’s “Foreigner” books" class="read-more content-read-more" href="https://blog.bigdinosaur.org/pronunciation-of-names-and-places-in-c-j-cherryhs-foreigner-books/#more-15" aria-label="Read more about Pronunciation of names and places in C.J. Cherryh’s “Foreigner” books">Read more</a></p> </div>
</div>
</article>
<article id="post-18" class="post-18 post type-post status-publish format-standard hentry category-web-stuff tag-acme-sh tag-code tag-haproxy tag-letsencrypt infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/farewell-to-hpkp-hello-to-dns-01-and-ecdsa/" rel="bookmark">Farewell to HPKP, hello to DNS-01 and ECDSA</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:55:20-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2018-02-18T07:00:00-06:00" itemprop="datePublished">February 18, 2018</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large"><img loading="lazy" decoding="async" width="200" height="201" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/image02_1.png" alt="" class="wp-image-297" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/image02_1.png 200w, https://blog.bigdinosaur.org/wp-content/uploads/2021/02/image02_1-150x150.png 150w" sizes="auto, (max-width: 200px) 100vw, 200px"></figure></div>
<p>A few months back I switched on <a href="https://blog.bigdinosaur.org/making-letsencrypt-work-with-hpkp-and-leaf-pinning/">HTTP public key pinning</a>, a security scheme designed to make it more difficult for attackers to do nefarious things with the BigDino web server. HPKP is difficult to implement and comes with a long list of configuration pitfalls—and, as of today, I’m done with it.</p>
<p>Sixty-one days ago I stopped sending out HPKP headers, which I’d set to a sixty day duration. This morning, I ripped out the scaffolding of Certbot scripts and cron jobs that kept LetsEncrypt running properly with HPKP, and replaced them all with the blissful simplicity of Neilpang’s <a href="https://github.com/Neilpang/acme.sh">acme.sh</a> coupled with DNS-based validation.</p>
<p class="read-more-container"><a title="Farewell to HPKP, hello to DNS-01 and ECDSA" class="read-more content-read-more" href="https://blog.bigdinosaur.org/farewell-to-hpkp-hello-to-dns-01-and-ecdsa/#more-18" aria-label="Read more about Farewell to HPKP, hello to DNS-01 and ECDSA">Read more</a></p> </div>
</div>
</article>
<article id="post-26" class="post-26 post type-post status-publish format-standard hentry category-web-stuff tag-letsencrypt tag-nginx tag-startcom infinite-scroll-item" itemtype="https://schema.org/CreativeWork" itemscope="">
<div class="inside-article">
<header class="entry-header">
<h2 class="entry-title" itemprop="headline"><a href="https://blog.bigdinosaur.org/grieving-over-the-death-of-startssl/" rel="bookmark">Grieving over the death of StartSSL</a></h2> <div class="entry-meta">
<span class="posted-on"><time class="updated" datetime="2023-11-13T19:54:56-06:00" itemprop="dateModified">November 13, 2023</time><time class="entry-date published" datetime="2017-12-03T07:00:00-06:00" itemprop="datePublished">December 3, 2017</time></span> </div>
</header>
<div class="entry-content" itemprop="text">
<div class="wp-block-image">
<figure class="alignleft size-large"><img loading="lazy" decoding="async" width="362" height="250" src="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/20fdg8.jpg" alt="" class="wp-image-295" srcset="https://blog.bigdinosaur.org/wp-content/uploads/2021/02/20fdg8.jpg 362w, https://blog.bigdinosaur.org/wp-content/uploads/2021/02/20fdg8-300x207.jpg 300w" sizes="auto, (max-width: 362px) 100vw, 362px"></figure></div>
<p>What was once the web’s best source for free SSL/TLS certificates and affordable-by-normal-humans wildcard certs is dead, killed by shitty unethical behavior by a shitty company called WoSign. So thanks, WoSign—thanks for wrecking StartCom and their StartSSL service. You destroyed something wonderful and useful to millions of people. Hope it was worth it, dicks.</p>
<p>If there’s an upside to this mess, it’s that <a href="https://letsencrypt.org/">Let’s Encrypt</a> has mostly made StartSSL redundant. Where StartSSL was once the only place to go if you wanted free certificates, LE now fills that gap—<a href="https://scotthelme.co.uk/alexa-top-1-million-analysis-aug-2017/">very successfully</a>, too. And LE will begin offering free wildcard certificates <a href="https://arstechnica.com/information-technology/2017/07/lets-encrypt-to-start-offering-free-wildcard-certificates-for-https/">starting in 2018</a>, so that’s another need fulfilled.</p>
<p>But man, I am going to miss the hell out of StartCom and StartSSL.</p>
<p class="read-more-container"><a title="Grieving over the death of StartSSL" class="read-more content-read-more" href="https://blog.bigdinosaur.org/grieving-over-the-death-of-startssl/#more-26" aria-label="Read more about Grieving over the death of StartSSL">Read more</a></p> </div>
</div>
</article>
<nav id="nav-below" class="paging-navigation" aria-label="Archive Page">
<div class="nav-previous">
<span class="gp-icon icon-arrow"><svg viewBox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M305.913 197.085c0 2.266-1.133 4.815-2.833 6.514L171.087 335.593c-1.7 1.7-4.249 2.832-6.515 2.832s-4.815-1.133-6.515-2.832L26.064 203.599c-1.7-1.7-2.832-4.248-2.832-6.514s1.132-4.816 2.832-6.515l14.162-14.163c1.7-1.699 3.966-2.832 6.515-2.832 2.266 0 4.815 1.133 6.515 2.832l111.316 111.317 111.316-111.317c1.7-1.699 4.249-2.832 6.515-2.832s4.815 1.133 6.515 2.832l14.162 14.163c1.7 1.7 2.833 4.249 2.833 6.515z"></path></svg></span> <span class="prev" title="Previous"><a href="https://blog.bigdinosaur.org/page/2/">Older posts</a></span>
</div>
<div class="nav-links"><span aria-current="page" class="page-numbers current"><span class="screen-reader-text">Page</span>1</span>
<a class="page-numbers" href="https://blog.bigdinosaur.org/page/2/"><span class="screen-reader-text">Page</span>2</a>
<span class="page-numbers dots">…</span>
<a class="page-numbers" href="https://blog.bigdinosaur.org/page/5/"><span class="screen-reader-text">Page</span>5</a>
<a class="next page-numbers" href="https://blog.bigdinosaur.org/page/2/">Next <span aria-hidden="true">→</span></a></div> </nav>
</main>
</div>
</div>
</div>
<div class="site-footer">
<footer class="site-info" aria-label="Site" itemtype="https://schema.org/WPFooter" itemscope="">
<div class="inside-site-info grid-container">
<div class="copyright-bar">
© 2024 <a href="https://bigdinosaur.org">BigDinosaur.org</a>. <a href="/copyright-statement/">Some rights reserved</a>. <br>Questions? Comments? <a href="/email">E-mail me</a>. </div>
</div>
</footer>
</div>
<div class="infinite-scroll-path" aria-hidden="true" style="display: none;"><a href="https://blog.bigdinosaur.org/page/2/">Next Page »</a></div><script id="generate-a11y">!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("mousedown",function(){e.classList.add("using-mouse")}),e.addEventListener("keydown",function(){e.classList.remove("using-mouse")})}}();</script><style id="core-block-supports-inline-css">
.wp-block-gallery.wp-block-gallery-1{--wp--style--unstable-gallery-gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );gap:var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) );}
</style>
<!--[if lte IE 11]>
<script src="https://blog.bigdinosaur.org/wp-content/themes/generatepress/assets/js/classList.min.js?ver=3.5.1" id="generate-classlist-js"></script>
<![endif]-->
<script id="generate-menu-js-extra">
var generatepressMenu = {"toggleOpenedSubMenus":"1","openSubMenuLabel":"Open Sub-Menu","closeSubMenuLabel":"Close Sub-Menu"};
</script>
<script src="https://blog.bigdinosaur.org/wp-content/themes/generatepress/assets/js/menu.min.js?ver=3.5.1" id="generate-menu-js"></script>
<script src="https://blog.bigdinosaur.org/wp-content/plugins/gp-premium/blog/functions/js/infinite-scroll.pkgd.min.js?ver=3.0.6" id="infinite-scroll-js"></script>
<script id="generate-blog-js-extra">
var generateBlog = {"more":"+ More","loading":"Loading...","icon":"<span class=\"gp-icon spinner\">\n\t\t\t\t<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"1em\" height=\"1em\">\n\t\t\t\t\t<path d=\"M288 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32zM288 480c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32zM448 256c0 17.673 14.327 32 32 32 17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32zM32 288c-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32 17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zM391.764 391.764c-12.496 12.497-12.496 32.759 0 45.255 12.497 12.497 32.758 12.497 45.255 0 12.497-12.496 12.497-32.758 0-45.255-12.497-12.496-32.758-12.496-45.255 0zM74.981 120.235c-12.497-12.496-12.497-32.758 0-45.254 12.496-12.497 32.758-12.497 45.254 0 12.497 12.496 12.497 32.758 0 45.254-12.496 12.497-32.758 12.497-45.254 0zM120.235 391.765c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.496-12.497 32.758 0 45.254 12.496 12.497 32.758 12.497 45.254 0 12.497-12.496 12.497-32.758 0-45.254z\"\/>\n\t\t\t\t<\/svg>\n\t\t\t<\/span>","masonryInit":{"columnWidth":".grid-sizer","itemSelector":".masonry-post","stamp":".page-header","percentPosition":true,"stagger":30,"visibleStyle":{"transform":"translateY(0)","opacity":1},"hiddenStyle":{"transform":"translateY(5px)","opacity":0}},"infiniteScrollInit":{"path":".infinite-scroll-path a","append":"#main .infinite-scroll-item","history":false,"loadOnScroll":true,"button":null,"scrollThreshold":600}};
</script>
<script src="https://blog.bigdinosaur.org/wp-content/plugins/gp-premium/blog/functions/js/scripts.min.js?ver=2.5.0" id="generate-blog-js"></script>
</body></html><!--
Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com
Retrieved 1652 objects (296 KB) from Redis using PhpRedis (v6.1.0).
-->