710 lines
15 KiB
HTML
710 lines
15 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Leaky</title>
|
||
<meta name="description" content="The long-running and erratically updated blog of Kathleen Fitzpatrick.">
|
||
<link rel="alternate" href="feed/feed.xml" type="application/atom+xml" title="kfitz">
|
||
<script async="" src="https://talk.hyvor.com/embed/embed.js" type="module"></script>
|
||
<link rel="webmention" href="https://webmention.io/kfitz.info/webmention">
|
||
<link rel="pingback" href="https://webmention.io/kfitz.info/xmlrpc">
|
||
|
||
|
||
|
||
|
||
|
||
<style>/**
|
||
* okaidia theme for JavaScript, CSS and HTML
|
||
* Loosely based on Monokai textmate theme by http://www.monokai.nl/
|
||
* @author ocodia
|
||
*/
|
||
|
||
code[class*="language-"],
|
||
pre[class*="language-"] {
|
||
color: #f8f8f2;
|
||
background: none;
|
||
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
|
||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||
font-size: 1em;
|
||
text-align: left;
|
||
white-space: pre;
|
||
word-spacing: normal;
|
||
word-break: normal;
|
||
word-wrap: normal;
|
||
line-height: 1.5;
|
||
|
||
-moz-tab-size: 4;
|
||
-o-tab-size: 4;
|
||
tab-size: 4;
|
||
|
||
-webkit-hyphens: none;
|
||
-moz-hyphens: none;
|
||
-ms-hyphens: none;
|
||
hyphens: none;
|
||
}
|
||
|
||
/* Code blocks */
|
||
pre[class*="language-"] {
|
||
padding: 1em;
|
||
margin: .5em 0;
|
||
overflow: auto;
|
||
border-radius: 0.3em;
|
||
}
|
||
|
||
:not(pre) > code[class*="language-"],
|
||
pre[class*="language-"] {
|
||
background: #272822;
|
||
}
|
||
|
||
/* Inline code */
|
||
:not(pre) > code[class*="language-"] {
|
||
padding: .1em;
|
||
border-radius: .3em;
|
||
white-space: normal;
|
||
}
|
||
|
||
.token.comment,
|
||
.token.prolog,
|
||
.token.doctype,
|
||
.token.cdata {
|
||
color: #8292a2;
|
||
}
|
||
|
||
.token.punctuation {
|
||
color: #f8f8f2;
|
||
}
|
||
|
||
.token.namespace {
|
||
opacity: .7;
|
||
}
|
||
|
||
.token.property,
|
||
.token.tag,
|
||
.token.constant,
|
||
.token.symbol,
|
||
.token.deleted {
|
||
color: #f92672;
|
||
}
|
||
|
||
.token.boolean,
|
||
.token.number {
|
||
color: #ae81ff;
|
||
}
|
||
|
||
.token.selector,
|
||
.token.attr-name,
|
||
.token.string,
|
||
.token.char,
|
||
.token.builtin,
|
||
.token.inserted {
|
||
color: #a6e22e;
|
||
}
|
||
|
||
.token.operator,
|
||
.token.entity,
|
||
.token.url,
|
||
.language-css .token.string,
|
||
.style .token.string,
|
||
.token.variable {
|
||
color: #f8f8f2;
|
||
}
|
||
|
||
.token.atrule,
|
||
.token.attr-value,
|
||
.token.function,
|
||
.token.class-name {
|
||
color: #e6db74;
|
||
}
|
||
|
||
.token.keyword {
|
||
color: #66d9ef;
|
||
}
|
||
|
||
.token.regex,
|
||
.token.important {
|
||
color: #fd971f;
|
||
}
|
||
|
||
.token.important,
|
||
.token.bold {
|
||
font-weight: bold;
|
||
}
|
||
.token.italic {
|
||
font-style: italic;
|
||
}
|
||
|
||
.token.entity {
|
||
cursor: help;
|
||
}
|
||
/*
|
||
* New diff- syntax
|
||
*/
|
||
|
||
pre[class*="language-diff-"] {
|
||
--eleventy-code-padding: 1.25em;
|
||
padding-left: var(--eleventy-code-padding);
|
||
padding-right: var(--eleventy-code-padding);
|
||
}
|
||
.token.deleted {
|
||
background-color: hsl(0, 51%, 37%);
|
||
color: inherit;
|
||
}
|
||
.token.inserted {
|
||
background-color: hsl(126, 31%, 39%);
|
||
color: inherit;
|
||
}
|
||
|
||
/* Make the + and - characters unselectable for copy/paste */
|
||
.token.prefix.unchanged,
|
||
.token.prefix.inserted,
|
||
.token.prefix.deleted {
|
||
-webkit-user-select: none;
|
||
user-select: none;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding-top: 2px;
|
||
padding-bottom: 2px;
|
||
}
|
||
.token.prefix.inserted,
|
||
.token.prefix.deleted {
|
||
width: var(--eleventy-code-padding);
|
||
background-color: rgba(0,0,0,.2);
|
||
}
|
||
|
||
/* Optional: full-width background color */
|
||
.token.inserted:not(.prefix),
|
||
.token.deleted:not(.prefix) {
|
||
display: block;
|
||
margin-left: calc(-1 * var(--eleventy-code-padding));
|
||
margin-right: calc(-1 * var(--eleventy-code-padding));
|
||
text-decoration: none; /* override del, ins, mark defaults */
|
||
color: inherit; /* override del, ins, mark defaults */
|
||
}
|
||
/* This is an arbitrary CSS string added to the bundle */
|
||
/* Defaults */
|
||
@font-face {
|
||
font-family: "Atkinson Hyperlegible";
|
||
src: url('/css/files/atkinson-hyperlegible-latin-400-normal.woff2') format('woff2');
|
||
font-display: swap;
|
||
}
|
||
@font-face {
|
||
font-family: "Atkinson Hyperlegible";
|
||
font-weight: bold;
|
||
src: url('/css/files/atkinson-hyperlegible-latin-700-normal.woff2') format('woff2');
|
||
font-display: swap;
|
||
}
|
||
@font-face {
|
||
font-family: "Atkinson Hyperlegible";
|
||
font-style: italic
|
||
src: url('/css/files/atkinson-hyperlegible-latin-400-italic.woff2') format('woff2');
|
||
font-display: swap;
|
||
}
|
||
|
||
:root {
|
||
--font-family: "Atkinson Hyperlegible", -apple-system, system-ui, sans-serif;
|
||
--font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
|
||
font-size: 18px;
|
||
}
|
||
|
||
/* Theme colors */
|
||
:root {
|
||
--color-gray-20: #e0e0e0;
|
||
--color-gray-50: #C0C0C0;
|
||
--color-gray-90: #333;
|
||
|
||
--background-color: #fff;
|
||
|
||
--text-color: var(--color-gray-90);
|
||
--text-color-link: #d61d4a;
|
||
--text-color-link-active: #853439;
|
||
--text-color-link-visited: #e8325e;
|
||
|
||
--syntax-tab-size: 2;
|
||
}
|
||
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--color-gray-20: #e0e0e0;
|
||
--color-gray-50: #C0C0C0;
|
||
--color-gray-90: #dad8d8;
|
||
|
||
/* --text-color is assigned to --color-gray-_ above */
|
||
--text-color-link: #1493fb;
|
||
--text-color-link-active: #6969f7;
|
||
--text-color-link-visited: #a6a6f8;
|
||
|
||
--background-color: #15202b;
|
||
}
|
||
}
|
||
|
||
|
||
/* Global stylesheet */
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
@view-transition {
|
||
navigation: auto;
|
||
}
|
||
|
||
html,
|
||
body {
|
||
padding: 0;
|
||
margin: 0 auto;
|
||
font-family: var(--font-family);
|
||
color: var(--text-color);
|
||
background-color: var(--background-color);
|
||
}
|
||
html {
|
||
overflow-y: scroll;
|
||
}
|
||
body {
|
||
max-width: 40em;
|
||
}
|
||
|
||
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
|
||
.visually-hidden {
|
||
clip: rect(0 0 0 0);
|
||
clip-path: inset(50%);
|
||
height: 1px;
|
||
overflow: hidden;
|
||
position: absolute;
|
||
white-space: nowrap;
|
||
width: 1px;
|
||
}
|
||
|
||
p:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
p {
|
||
line-height: 1.5;
|
||
}
|
||
|
||
li {
|
||
line-height: 1.5;
|
||
}
|
||
|
||
a[href] {
|
||
color: var(--text-color-link);
|
||
}
|
||
a[href]:visited {
|
||
color: var(--text-color-link-visited);
|
||
}
|
||
a[href]:hover,
|
||
a[href]:active {
|
||
color: var(--text-color-link-active);
|
||
}
|
||
|
||
main,
|
||
footer {
|
||
padding: 1rem;
|
||
}
|
||
main :first-child {
|
||
margin-top: 0;
|
||
}
|
||
|
||
header {
|
||
border-bottom: 1px dashed var(--color-gray-20);
|
||
}
|
||
header:after {
|
||
content: "";
|
||
display: table;
|
||
clear: both;
|
||
}
|
||
|
||
footer {
|
||
border-top: 1px dashed var(--color-gray-50);
|
||
}
|
||
|
||
.links-nextprev {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
gap: .5em 1em;
|
||
list-style: "";
|
||
border-top: 1px dashed var(--color-gray-20);
|
||
padding: 1em 0;
|
||
}
|
||
.links-nextprev > * {
|
||
flex-grow: 1;
|
||
}
|
||
.links-nextprev-next {
|
||
text-align: right;
|
||
}
|
||
|
||
table {
|
||
margin: 1em 0;
|
||
}
|
||
table td,
|
||
table th {
|
||
padding-right: 1em;
|
||
}
|
||
|
||
pre,
|
||
code {
|
||
font-family: var(--font-family-monospace);
|
||
}
|
||
pre:not([class*="language-"]) {
|
||
margin: .5em 0;
|
||
line-height: 1.375; /* 22px /16 */
|
||
-moz-tab-size: var(--syntax-tab-size);
|
||
-o-tab-size: var(--syntax-tab-size);
|
||
tab-size: var(--syntax-tab-size);
|
||
-webkit-hyphens: none;
|
||
-ms-hyphens: none;
|
||
hyphens: none;
|
||
direction: ltr;
|
||
text-align: left;
|
||
white-space: pre;
|
||
word-spacing: normal;
|
||
word-break: normal;
|
||
overflow-x: auto;
|
||
}
|
||
code {
|
||
word-break: break-all;
|
||
}
|
||
|
||
/* Header */
|
||
header {
|
||
display: flex;
|
||
gap: 1em .5em;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
padding: 1em;
|
||
}
|
||
.home-link {
|
||
font-size: 1.5em; /* 16px /16 */
|
||
font-weight: 700;
|
||
margin-right: 2em;
|
||
}
|
||
.home-link:link:not(:hover) {
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* Nav */
|
||
.nav {
|
||
display: flex;
|
||
padding: 0;
|
||
margin: 0;
|
||
list-style: none;
|
||
}
|
||
.nav-item {
|
||
display: inline-block;
|
||
margin-right: 1em;
|
||
}
|
||
.nav-item a[href]:not(:hover) {
|
||
text-decoration: none;
|
||
}
|
||
.nav a[href][aria-current="page"] {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
/* Posts list */
|
||
.postlist {
|
||
list-style: none;
|
||
padding: 0;
|
||
padding-left: 1.5rem;
|
||
}
|
||
.postlist-item {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: baseline;
|
||
counter-increment: start-from -1;
|
||
margin-bottom: 1em;
|
||
}
|
||
.postlist-item:before {
|
||
display: inline-block;
|
||
pointer-events: none;
|
||
content: "" counter(start-from, decimal-leading-zero) ". ";
|
||
line-height: 100%;
|
||
text-align: right;
|
||
margin-left: -1.5rem;
|
||
}
|
||
.postlist-date,
|
||
.postlist-item:before {
|
||
font-size: 0.8125em; /* 13px /16 */
|
||
color: var(--color-gray-90);
|
||
}
|
||
.postlist-date {
|
||
word-spacing: -0.5px;
|
||
}
|
||
.postlist-link {
|
||
font-size: 1.1875em; /* 19px /16 */
|
||
font-weight: 700;
|
||
flex-basis: calc(100% - 1.5rem);
|
||
padding-left: .25em;
|
||
padding-right: .5em;
|
||
text-underline-position: from-font;
|
||
text-underline-offset: 0;
|
||
text-decoration-thickness: 1px;
|
||
}
|
||
.postlist-item-active .postlist-link {
|
||
font-weight: bold;
|
||
}
|
||
|
||
/* Archive list */
|
||
.archivelist {
|
||
padding: 0;
|
||
padding-left: 2.5rem;
|
||
}
|
||
.archivelist-item {
|
||
align-items: baseline;
|
||
margin-bottom: 1em;
|
||
}
|
||
.archivelist-item::marker {
|
||
text-align: right;
|
||
margin-left: -1.5rem;
|
||
font-size: 0.8125em; /* 13px /16 */
|
||
color: var(--color-gray-90);
|
||
}
|
||
.archivelist-date {
|
||
font-size: 0.8125em; /* 13px /16 */
|
||
color: var(--color-gray-90);
|
||
word-spacing: -0.5px;
|
||
}
|
||
.archivelist-link {
|
||
font-size: 1.1875em; /* 19px /16 */
|
||
font-weight: 700;
|
||
flex-basis: calc(100% - 1.5rem);
|
||
padding-left: .25em;
|
||
padding-right: .5em;
|
||
text-underline-position: from-font;
|
||
text-underline-offset: 0;
|
||
text-decoration-thickness: 1px;
|
||
}
|
||
.archivelist-item-active .archivelist-link {
|
||
font-weight: bold;
|
||
}
|
||
|
||
|
||
/* Tags */
|
||
.post-tag {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
text-transform: capitalize;
|
||
font-style: italic;
|
||
}
|
||
.postlist-item > .post-tag {
|
||
align-self: center;
|
||
}
|
||
|
||
/* Tags list */
|
||
.post-metadata {
|
||
display: inline-flex;
|
||
flex-wrap: wrap;
|
||
gap: .5em;
|
||
list-style: none;
|
||
border-top: 1px dashed var(--color-gray-20);
|
||
border-bottom: 1px dashed var(--color-gray-20);
|
||
padding: 3px 0px 3px 0px;
|
||
margin: 0;
|
||
font-size: .8em;
|
||
}
|
||
.post-metadata time {
|
||
margin-right: 1em;
|
||
}
|
||
|
||
/* Direct Links / Markdown Headers */
|
||
.header-anchor {
|
||
text-decoration: none;
|
||
font-style: normal;
|
||
font-size: 1em;
|
||
margin-left: .1em;
|
||
}
|
||
a[href].header-anchor,
|
||
a[href].header-anchor:visited {
|
||
color: transparent;
|
||
}
|
||
a[href].header-anchor:focus,
|
||
a[href].header-anchor:hover {
|
||
text-decoration: underline;
|
||
}
|
||
a[href].header-anchor:focus,
|
||
:hover > a[href].header-anchor {
|
||
color: #aaa;
|
||
}
|
||
|
||
h2 + .header-anchor {
|
||
font-size: 1.5em;
|
||
font-weight: bold;
|
||
}
|
||
|
||
h1 {
|
||
font-weight: bolder;
|
||
}
|
||
|
||
summary {
|
||
font-size: 1.5em;
|
||
font-weight: bold;
|
||
margin-bottom: .5em;
|
||
}
|
||
|
||
img {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
blockquote {
|
||
display: block;
|
||
margin-left: 2em;
|
||
margin-right: 3em;
|
||
padding-left: 10px;
|
||
border-left: 10px solid var(--text-color-link);
|
||
}
|
||
|
||
hr.new {
|
||
border: none;
|
||
border-top: 1px dashed var(--color-gray-50);
|
||
}
|
||
/* Webmention Section */
|
||
|
||
.webmentions {
|
||
display:block;
|
||
text-align: left;
|
||
}
|
||
.webmentions__facepile {
|
||
display:flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
.webmentions__face {
|
||
width: 2rem;
|
||
height: 2rem;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
flex: none;
|
||
}
|
||
.webmentions__list {
|
||
list-style-type: none;
|
||
padding:0;
|
||
}
|
||
.webmentions__item {
|
||
margin-bottom: 2rem;
|
||
}
|
||
|
||
/* Single Webmention */
|
||
|
||
.webmention {
|
||
display:block;
|
||
}
|
||
.webmention__meta,
|
||
.webmention__author {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
.webmention__meta {
|
||
margin-bottom:.5rem;
|
||
}
|
||
.webmention__author {
|
||
margin-right:.25rem;
|
||
}
|
||
.webmention__author__photo {
|
||
height: 3rem;
|
||
width: 3rem;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
margin-right:.5rem;
|
||
}
|
||
.webmention__pubdate {
|
||
font-style: italic;
|
||
}
|
||
/* Message Box */
|
||
.message-box {
|
||
--color-message-box: #ffc;
|
||
|
||
display: block;
|
||
background-color: var(--color-message-box);
|
||
color: var(--color-gray-90);
|
||
padding: 1em 0.625em; /* 16px 10px /16 */
|
||
}
|
||
.message-box ol {
|
||
margin-top: 0;
|
||
}
|
||
|
||
@media (prefers-color-scheme: dark) {
|
||
.message-box {
|
||
--color-message-box: #082840;
|
||
}
|
||
}</style>
|
||
</head>
|
||
<body>
|
||
<a href="#skip" class="visually-hidden">Skip to main content</a>
|
||
|
||
<header>
|
||
<a href="/" class="home-link">kfitz</a>
|
||
<nav>
|
||
<h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation menu</h2>
|
||
<ul class="nav">
|
||
<li class="nav-item"><a href="/">Home</a></li>
|
||
<li class="nav-item"><a href="/blog/">Archive</a></li>
|
||
<li class="nav-item"><a href="/about/">About</a></li>
|
||
<li class="nav-item"><a href="/projects/">Projects</a></li>
|
||
<li class="nav-item"><a href="/presentations/">Presentations</a></li>
|
||
<li class="nav-item"><a href="/teaching/">Teaching</a></li>
|
||
<li class="nav-item"><a href="/feed/feed.xml">Feed</a></li>
|
||
</ul>
|
||
</nav>
|
||
</header>
|
||
|
||
<link href="/pagefind/pagefind-ui.css" rel="stylesheet">
|
||
<script src="/pagefind/pagefind-ui.js"></script>
|
||
<div id="search"></div>
|
||
<script>
|
||
window.addEventListener('DOMContentLoaded', (event) => {
|
||
new PagefindUI({ element: "#search", showSubResults: true });
|
||
});
|
||
</script>
|
||
|
||
<main id="skip">
|
||
<heading-anchors>
|
||
|
||
<h1 id="leaky">Leaky</h1>
|
||
|
||
<ul class="post-metadata">
|
||
<li><time datetime="2005-02-22">22 February 2005</time></li>
|
||
<li><a href="/tags/condo/" class="post-tag">condo</a>, </li>
|
||
<li><a href="/tags/networks/" class="post-tag">networks</a></li>
|
||
</ul>
|
||
|
||
<p>The leak in my garage continues unabated, through three plumbers who can’t seem to figure out what the problem is, when I keep telling them that the leak isn’t <em>coming from</em> my condo, it’s only <em>ending up</em> in my condo. They run my showers and flush my toilets, and say, nope, no leak here. And leave.</p>
|
||
<p>If that were the only leakage, though, it might be more bearable. I think we’re moving up on the forty-days-and-forty-nights mark here in SoCal, or maybe it just seems like it’s got to be divine wrath falling from the sky. What’s clear is that I don’t think I’ve actually been fully dry in over a week. The basement of our office building has flooded repeatedly, and my classroom — in that basement — is now dank and cold. Enough. Or, in case English just isn’t carrying enough weight with the divine these days: <em>Basta. Ca suffit.</em></p>
|
||
<p>On a happier note, though, I’ve gotten my wi-fi all wi’d and fi’d, and so am able to work from my second-floor-landing office nook now. I’m still having to negotiate the security issue, though; my after-market <a href="http://www.memorysolutions.com/orapaica1.html">original Airport card</a> and my new <a href="http://www.netgear.com/products/details/WGR614.php">router</a> simply can’t get together on either WEP or WPA. So right now I’m using MAC address control to prevent random folks from glomming onto my bandwidth, but my packets are nonetheless still leaking out all over the neighborhood. Of course, my packets are largely dull, so it’s probably not an issue, but I’m just saying.</p>
|
||
|
||
<ul class="links-nextprev"><li class="links-nextprev-prev">← Previous<br> <a href="/running-log-week-14/">Running Log, Week 14</a></li><li class="links-nextprev-next">Next →<br><a href="/more-marcus/">More Marcus</a></li>
|
||
</ul>
|
||
|
||
<hyvor-talk-comments website-id="9100" page-id="/leaky/"></hyvor-talk-comments>
|
||
|
||
<div class="webmentions" id="webmentions">
|
||
<h3 id="webmentions-2">Webmentions</h3>
|
||
|
||
|
||
<p>No replies yet.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</heading-anchors>
|
||
</main>
|
||
|
||
<footer>
|
||
<p><em>Built with <a href="https://www.11ty.dev/">Eleventy v3.0.0</a>. All content <a href="https://creativecommons.org/licenses/by/4.0/deed.en">CC BY 4.0</a> if you're human.</em></p><p></p>
|
||
</footer>
|
||
|
||
<!-- This page `/leaky/` was built on 2024-12-08T18:38:31.622Z -->
|
||
<script type="module" src="/dist/rJ3_G-2ArF.js"></script>
|
||
</body>
|
||
</html>
|