diff --git a/.gitattributes b/.gitattributes index 0b5b3d4..90fc636 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ *.jpg filter=lfs diff=lfs merge=lfs -text *.jpeg filter=lfs diff=lfs merge=lfs -text *.pxm filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 2ca23d2..2073fc6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +LightroomExports/ node_modules/ public/ /documentation/mirrors/ diff --git a/Makefile b/Makefile index 49a5f74..fea5233 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ # Eryn Wells +BUILD_DIR=public + CONTENT_PATH=content DEPLOY_USER=eryn @@ -14,14 +16,18 @@ NETHACK_LOGFILE_DATA_FILE=data/nethack/logfile/$(HOSTNAME).json .PHONY: site deploy clean -site: nethack +site: @echo "Building site" - hugo --buildDrafts --buildFuture --enableGitInfo + hugo --buildFuture --enableGitInfo --destination "$(BUILD_DIR)" deploy: site + @echo "Removing .DS_Store files from $(DEPLOY_LOCATION)" + find "$(BUILD_DIR)" -name .DS_Store -print -delete @echo "Deploying to $(DEPLOY_LOCATION)" - rsync -avz --no-times --no-perms --delete public/ $(DEPLOY_LOCATION) - git tag -f deploy-$(shell date +%Y-%m-%d) + rsync -avz --no-times --no-perms --delete "$(BUILD_DIR)/" "$(DEPLOY_LOCATION)" + git tag -f $(shell ./scripts/website deployment next-tag) + +deployall: nethack deploy nethack: nethack-logfile nethack-commit @@ -34,13 +40,5 @@ endif nethack-commit: $(NETHACK_LOGFILE_DATA_FILE) if ! git diff --quiet $<; then git commit -m "Update Nethack logfile for $(HOSTNAME)" -- $<; fi -weeknotes: YEAR=$(shell date '+%Y') -weeknotes: WEEK_NUMBER=$(shell date '+%V') -weeknotes: UPCOMING_SUNDAY=$(shell scripts/weeknotes show --date) -weeknotes: PAGE_PATH=$(shell scripts/weeknotes show) -weeknotes: $(PAGE_PATH) - hugo new -k weeknotes --clock "$(UPCOMING_SUNDAY)" -c "$(CONTENT_PATH)" "$(PAGE_PATH)" - sed -I -e "s/%%WEEK_NUMBER%%/$(WEEK_NUMBER)/" "$(PAGE_PATH)" - clean: - rm -rf public/ + rm -rf "$(BUILD_DIR)/" diff --git a/archetypes/link.md b/archetypes/link.md new file mode 100644 index 0000000..5a8d835 --- /dev/null +++ b/archetypes/link.md @@ -0,0 +1,9 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +slug: link-{{ .Name }} +date: {{ .Date }} +categories: links +draft: true +tags: [] +--- + diff --git a/archetypes/weeknotes.md b/archetypes/weeknotes.md index 93bbb34..1bae5a0 100644 --- a/archetypes/weeknotes.md +++ b/archetypes/weeknotes.md @@ -1,9 +1,10 @@ --- -title: "Weeknotes for {{ time.Now.Format "2006" }}W%%WEEK_NUMBER%%" +title: "Notes on {{ time.Now.Format "2006" }}W%%WEEK_NUMBER%%" slug: weeknotes-{{ time.Now.Format "2006" }}w%%WEEK_NUMBER%% -date: {{ .Date }} +date: {{ .Date | time.Format "2006-01-02" }} categories: weeknotes -tags: [] +tags: + - Weeknotes draft: true --- diff --git a/assets/css/099_format_tweaks.css b/assets/css/099_format_tweaks.css new file mode 100644 index 0000000..453f2cc --- /dev/null +++ b/assets/css/099_format_tweaks.css @@ -0,0 +1,18 @@ + + + + + +/************************ + * PARAGRAPH-SPACED LIST + ************************/ + +p + .paragraph-spaced-list { + margin-block-start: var(--space-paragraph); +} + +.paragraph-spaced-list { + li + li { + margin-block-start: var(--space-paragraph); + } +} diff --git a/assets/images/memes/not-doing-it.png b/assets/images/memes/not-doing-it.png new file mode 100644 index 0000000..0dd9974 Binary files /dev/null and b/assets/images/memes/not-doing-it.png differ diff --git a/assets/scripts/rubiks/scrambler.js b/assets/scripts/rubiks/scrambler.js new file mode 100644 index 0000000..10a03c3 --- /dev/null +++ b/assets/scripts/rubiks/scrambler.js @@ -0,0 +1,123 @@ +class RubiksCubeScrambler extends HTMLElement { + static #RandomMoveHysteresisMaxLength = 2; + + #shadowRoot; + #movesListElement; + + #numberOfMovesToGenerate = 25; + + constructor() { + super(); + this.#shadowRoot = this.attachShadow({ mode: "open" }); + } + + scramble() { + console.log("Randomizing Rubik's cube..."); + + const movesList = this.#movesListElement; + + while (movesList.childElementCount > this.#numberOfMovesToGenerate) { + movesList.removeChild(movesList.lastChild); + } + + let randomMoveHysteresis = []; + + for (let i = 0; i < this.#numberOfMovesToGenerate; i++) { + const randomMove = this.#randomMove(randomMoveHysteresis); + + let moveItem; + if (i < movesList.childElementCount) { + moveItem = movesList.children[i]; + } else { + moveItem = document.createElement("li"); + movesList.appendChild(moveItem); + } + + moveItem.classList.add("scrambler__move"); + moveItem.classList.remove("scrambler__move--start", "scrambler__move--end"); + + if (randomMove.includes("2")) { + moveItem.classList.add("scrambler__move--start"); + } else if (randomMove.includes("'")) { + moveItem.classList.add("scrambler__move--end"); + } + + moveItem.innerText = randomMove; + } + } + + #randomMove(hysteresis) { + const faces = "FBLRUD"; + + let move; + do { + move = faces.charAt(Math.floor(Math.random() * faces.length)); + } while (hysteresis && hysteresis.includes(move)); + + if (hysteresis) { + hysteresis.unshift(move); + while (hysteresis.length > RubiksCubeScrambler.#RandomMoveHysteresisMaxLength) { + hysteresis.pop(); + } + } + + const modifierFactor = Math.random(); + if (modifierFactor < 0.33333) { + move = "2" + move; + } else if (modifierFactor < 0.666666) { + move = move + "'"; + } + + return move; + } + + #removeAllMoves() { + const element = this.#movesListElement; + while (element.hasChildNodes()) { + element.removeChild(element.lastChild); + } + } + + // MARK: Custom Element + + connectedCallback() { + let template = document.getElementById("rubiks-cube-scrambler-template"); + console.assert(template, "Couldn't find RubiksCubeScrambler component template in the document"); + + const shadowRoot = this.#shadowRoot; + shadowRoot.appendChild(template.content.cloneNode(true)); + + this.#movesListElement = shadowRoot.querySelector(".scrambler__move-list"); + + shadowRoot + .querySelector("button[name='scramble']") + .addEventListener("click", () => this.scramble()); + + const patternLengthInputElement = shadowRoot.querySelector(".scrambler__pattern-length > input"); + patternLengthInputElement.value = this.#numberOfMovesToGenerate; + patternLengthInputElement.addEventListener("input", event => { + try { + const integerValue = parseInt(event.target.value); + this.#numberOfMovesToGenerate = integerValue; + } catch (e) { + console.error("Non-integer value of pattern length field", e); + } + }); + + this.scramble(); + } + + attributeChangedCallback(name, oldValue, newValue) { + console.debug("RubiksCubeScrambler attribute changed", name, oldValue, newValue); + if (name === "count") { + try { + let newIntValue = parseInt(newValue); + this.#numberOfMovesToGenerate = newIntValue; + } catch (e) { + console.error("`count` attribute should have an integer value.", e); + } + } + } +} + +window.customElements.define("rubiks-cube-scrambler", RubiksCubeScrambler); diff --git a/config/_default/markup.yaml b/config/_default/markup.yaml index c271d52..0a8cb53 100644 --- a/config/_default/markup.yaml +++ b/config/_default/markup.yaml @@ -1,6 +1,10 @@ goldmark: renderer: unsafe: true + parser: + attribute: + block: true + title: true highlight: anchorLineNos: true lineNos: false diff --git a/config/_default/params.yaml b/config/_default/params.yaml index 9a44e25..ca8f50f 100644 --- a/config/_default/params.yaml +++ b/config/_default/params.yaml @@ -9,6 +9,12 @@ github: erynofwales instagram: erynofwales description: Home page of Eryn Rachel Wells +blog: + yearLimit: 3 + +photostream: + yearLimit: 3 + photos: gridSize: 200 thumbnailSize: 600 diff --git a/config/_default/permalinks.yaml b/config/_default/permalinks.yaml index 8efe757..7d4b0bc 100644 --- a/config/_default/permalinks.yaml +++ b/config/_default/permalinks.yaml @@ -1,2 +1,3 @@ blog: blog/:year/:month/:slug/ photos: photos/:year/:month/:slug/ +twitter: twitter/:year/:month/:slug/ diff --git a/config/_default/privacy.yaml b/config/_default/privacy.yaml index 86268a6..ad42382 100644 --- a/config/_default/privacy.yaml +++ b/config/_default/privacy.yaml @@ -1,2 +1,2 @@ -twitter: +x: enableDNT: true diff --git a/config/_default/services.yaml b/config/_default/services.yaml index 4ad50c5..4738995 100644 --- a/config/_default/services.yaml +++ b/config/_default/services.yaml @@ -1,2 +1,2 @@ -twitter: +x: disableInlineCSS: true diff --git a/content/_index.es.md b/content/_index.es.md index 4812de4..dec3a59 100644 --- a/content/_index.es.md +++ b/content/_index.es.md @@ -1,8 +1,20 @@ --- -title: Eryn Rachel Wells layout: single +draft: true +params: + renderHeadingAnchors: false --- -{{< nobreak >}}Ingeniera de software,{{< /nobreak >}} -alfarera, música, y -{{< nobreak >}}nerd en general.{{< /nobreak >}} +¡Hola! Me llamo Eryn Wells. Este es mi sitio web. ¡Bienvenidos! + + +## Personal + +Soy mujer queer, + + +## Profesional + +Desde 2011, he trabajado como ingeniera de software en varios companías alrededor del área +del Bahía de San Francisco. En 2016, me uní a [Apple][]. Hoy, trabajo en +tecnologías que diff --git a/content/_index.md b/content/_index.md index 503b1a2..e4ca8ce 100644 --- a/content/_index.md +++ b/content/_index.md @@ -6,53 +6,61 @@ params: Hi, I'm Eryn Wells. This is my website. Welcome! + ## Latest -Here are some of my most recent posts. You can also check out my [now][n] page. +Here are some of my most recent posts. {{< home/latest >}} + ## Personal -I'm a queer trans woman, {{< tess >}}' partner, and mom of [two cats][cats]. I +I'm a queer woman, {{< tess >}}' partner, and mom of [two cats][cats]. I was born in Seattle, {{< abbr Washington >}}WA{{< /abbr >}} and grew up in -Phoenix, {{< abbr Arizona >}}AZ{{< /abbr >}}. I attended [Oberlin College][ob] +Phoenix, {{< abbr Arizona >}}AZ{{< /abbr >}}. I attended [Oberlin College][] where I got a degree in Computer Science. My pronouns are [she/her][pronouns]. You can read more about me on my [about][ab] page, or [get in touch][where-am-i]. + ## Professional I've worked as a software engineer since 2011 for a variety of companies around -the San Francisco Bay Area. I joined [Apple][a] in 2016, where I currently work +the San Francisco Bay Area. I joined [Apple][] in 2016, where I currently work on password management and authentication technologies. My [résumé][r] has all the details. + ## Hobbies When I'm not working, you can reliably find me hacking on this website or [some -coding other project][gh]. I'm also a musician, and play piano, Irish tin -whistle, and modular synthesizer. Occasionally I [record][bc] [things][sc]. I -love outer space and astronomy; I will always get excited to look at the moon -with you, or check out anything through a telescope. I enjoy [photograhy][p], -mostly as a travel hobby. And I've been practicing iaido, a traditional Japanese -sword art, since early 2024. Other things I've been into include: bread baking, +other coding project][src]. I'm also a musician: I play piano, Irish tin +whistle, and modular synthesizer. Occasionally I [record things][sc] or offer +them [for sale][sc]. I love outer space and astronomy; I will always get excited +to look at the moon with you, or check out anything through a telescope. I enjoy +[photograhy][p], mostly as a travel hobby. And I've been practicing +[iaidō][mjer], a traditional Japanese sword art, at [Nishi Kaigan Iaidō +Dōjō][nkid] since early 2024. Other things I've been into include: bread baking, bicycling, calligraphy, ceramics, and knitting. -[a]: https://apple.com + +[Apple]: https://apple.com [ab]: {{< ref "/about" >}} [b]: {{< ref "/blog" >}} [bc]: https://erynwells.bandcamp.com/releases [cats]: {{< ref "/cats" >}} [eml]: mailto:Eryn%20Wells -[gh]: https://github.com/erynofwales +[src]: https://source.erynwells.me/eryn [ig]: https://www.instagram.com/erynofwales [m]: https://mastodon.social/@erynofwales [n]: {{< ref "/now" >}} -[ob]: https://www.oberlin.edu +[Oberlin College]: https://www.oberlin.edu [p]: {{< ref "/photos" >}} [pronouns]: http://pronoun.is/she [r]: {{< ref "/resume" >}} [sc]: https://soundcloud.com/purlsnbeeps [where-am-i]: {{< ref "/about/where-am-i" >}} +[mjer]: https://en.wikipedia.org/wiki/Mus%C5%8D_Jikiden_Eishin-ry%C5%AB +[nkid]: https://iaido.org diff --git a/content/about/_index.md b/content/about/_index.md index c0e779f..5c1da98 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -1,17 +1,16 @@ --- title: "Hi! 👋🏻" +layout: single resources: - name: me src: me.jpeg params: - alt: " - Me, wearing a hat and smiling slightly, standing in front of a stone background. - " + alt: > + Me, wearing a hat and smiling slightly, standing in front of a stone + background. --- -{{% section class=flow %}} - -{{< circular_image id=me name=me class="float-right" width=200 >}} +{{% section class=content--small-right-column %}} I'm Eryn. My pronouns are [she/her][p]. I'm a queer trans woman. I live in San Francisco, CA, on the unceded ancestral lands of the Ramaytush Ohlone people, @@ -21,6 +20,8 @@ I attended [Oberlin College][ob] where I got a degree in Computer Science. I speak English natively, and Spanish too, though I always need more practice. +{{< circular_image id=me name=me class="content--right-column" width=200 >}} + {{% /section %}} ## Hobbies diff --git a/content/about/where-am-i.md b/content/about/where-am-i.md index 660a718..a033245 100644 --- a/content/about/where-am-i.md +++ b/content/about/where-am-i.md @@ -3,11 +3,16 @@ title: "Where to Find Me" date: 2022-11-11T08:35:26-08:00 --- -Here's a list of places you can find me online. +Here's a list of places you can find me online. You can often find me on +services not listed here with the `erynofwales` or `erynrwells` handles. ## Social Media -- Cohost: [@eryn](https://cohost.org/eryn) +I'm really only on Instagram and Mastodon these days. My Twitter account is +still live, as an archive, but I don't post on it or look at it. Ditto for +Facebook. + +- Facebook: [erynofwales](https://www.facebook.com/erynofwales) - Instagram: [@erynofwales](https://instagram.com/erynofwales) - Mastodon: [@erynofwales](https://mastodon.social/@erynofwales) - Twitter: [@erynofwales](https://twitter.com/erynofwales) @@ -15,9 +20,10 @@ Here's a list of places you can find me online. ## Content - Bandcamp: [erynwells](https://erynwells.bandcamp.com/releases) -- Soundcloud: [purlsnbeeps](https://soundcloud.com/purlsnbeeps) -- YouTube: [Eryn Wells](https://www.youtube.com/channel/UCWb2pTDlC27R1PucyUPrypA) - GitHub: [erynofwales](https://github.com/erynofwales) +- Soundcloud: [purlsnbeeps](https://soundcloud.com/purlsnbeeps) +- StoryGraph: [erynrwells](https://app.thestorygraph.com/profile/erynrwells) +- YouTube: [Eryn Wells](https://www.youtube.com/channel/UCWb2pTDlC27R1PucyUPrypA) ## The Old Fashioned Way diff --git a/content/blog/2023/_index.md b/content/blog/2023/_index.md new file mode 100644 index 0000000..baadf43 --- /dev/null +++ b/content/blog/2023/_index.md @@ -0,0 +1,4 @@ +--- +title: 2023 +date: 2023-01-01 +--- diff --git a/content/blog/2023/less-instagram-more-blog.md b/content/blog/2023/less-instagram-more-blog.md index fb0ea98..c3465e4 100644 --- a/content/blog/2023/less-instagram-more-blog.md +++ b/content/blog/2023/less-instagram-more-blog.md @@ -23,7 +23,7 @@ also post quick notes and sketches of ideas. I've enjoyed reading some quicker posts from {{< tess >}} and [Elaine][e] this past year, and I'd like to follow their example. -{{< figures/youtube zSgiXGELjbc content-width >}} +{{< youtube zSgiXGELjbc >}} I'm not setting myself a specific goal here. The idea is just "more" in a certain general direction. I don't want to commit to a specific frequency or diff --git a/content/blog/2023/netscape-meteors/index.md b/content/blog/2023/netscape-meteors/index.md index ceaeed6..3f1598d 100644 --- a/content/blog/2023/netscape-meteors/index.md +++ b/content/blog/2023/netscape-meteors/index.md @@ -26,13 +26,13 @@ Navigator "meteors" animation. This one has a special place in my head and heart because it is so clearly connected to my memories of discovering the web as a kid. Here it is in its original 60×60 px glory: -{{< figures/image name=netscape60 shouldShowTitle=false >}} +{{< figures/image name=netscape60 shouldShowTitle=false size=small >}} I started out doing some web searches that turned up several versions. One was promising but far too big: 400×400 px. Worse, after some shoddy resize attempts, the "pixels" had become rectangular. -{{< figures/image name=rectangular-pixels shouldShowTitle=false >}} +{{< figures/image name=rectangular-pixels shouldShowTitle=false size=small >}} This would not do. @@ -81,7 +81,10 @@ that replaces those pixels with ones that match the surrounding pixels. Here's the modified 60×60 one and a bigger 240×240 px one, for good measure: -{{< figures/image names="netscape-modified60,netscape-modified240" shouldShowTitle=false >}} +{{< content-grid columns=2 >}} + {{< figures/image name="netscape-modified60" shouldShowTitle=false shouldResize=false size=small >}} + {{< figures/image name="netscape-modified240" shouldShowTitle=false shouldResize=false size=small >}} +{{< /content-grid >}} diff --git a/content/blog/2023/pajaro-dunes/index.md b/content/blog/2023/pajaro-dunes/index.md index 39a5da2..f4c0785 100644 --- a/content/blog/2023/pajaro-dunes/index.md +++ b/content/blog/2023/pajaro-dunes/index.md @@ -1,8 +1,7 @@ --- title: "Pajaro Dunes" date: 2023-05-30T08:31:34-07:00 -categories: Travel -tags: [Beaches, Tess, EJ, Vacations] +tags: [Travel, Beaches, Tess, EJ, Vacations] --- {{< tess >}}, EJ, and I took a weekend trip down the coast over Memorial Day diff --git a/content/blog/2023/trip-to-japan/index.md b/content/blog/2023/trip-to-japan/index.md index 41b74ee..48777d7 100644 --- a/content/blog/2023/trip-to-japan/index.md +++ b/content/blog/2023/trip-to-japan/index.md @@ -1,8 +1,10 @@ --- -title: "Trip to Japan" +title: Trip to Japan date: 2023-04-14T21:40:21+09:00 categories: Travel -tags: ["日本"] +tags: + - Travel + - japan --- At the beginning of April, {{< tess >}} and I took a trip to Japan for two diff --git a/content/blog/2024/ay-carmela.md b/content/blog/2024/ay-carmela.md new file mode 100644 index 0000000..6ce6d3d --- /dev/null +++ b/content/blog/2024/ay-carmela.md @@ -0,0 +1,56 @@ +--- +title: ¡Ay Carmela! +description: | + Pero nada pueden bombas
+ Donde sobra corazón +date: 2024-11-06T08:30:22-08:00 +categories: Politics +tags: + - Music + - United States + - España + - Guerra Civil Española +--- + +> ```text +> El ejército del Ebro +> Rumbala rumbala rum-ba-la +> El ejército del Ebro +> Rumbala rumbala rum-ba-la +> +> Una noche el río pasó +> ¡Ay Carmela! ¡Ay Carmela! +> Una noche el río pasó +> ¡Ay Carmela! ¡Ay Carmela! +> +> Pero nada pueden bombas +> Rumbala rumbala rum-ba-la +> Pero nada pueden bombas +> Rumbala rumbala rum-ba-la +> +> Donde sobra corazón +> ¡Ay Carmela! ¡Ay Carmela! +> Donde sobra corazón +> ¡Ay Carmela! ¡Ay Carmela! +> +> Contraataques muy rabiosos +> Rumbala rumbala rum-ba-la +> Contraataques muy rabiosos +> Rumbala rumbala rum-ba-la +> +> Deberemos resistir +> ¡Ay Carmela! ¡Ay Carmela! +> Deberemos resistir +> ¡Ay Carmela! ¡Ay Carmela! +> +> Pero igual que combatimos +> Rumbala rumbala rum-ba-la +> Pero igual que combatimos +> Rumbala rumbala rum-ba-la +> +> Prometemos resistir +> ¡Ay Carmela! ¡Ay Carmela! +> Prometemos resistir +> ¡Ay Carmela! ¡Ay Carmela! +> ``` +{cite="https://music.apple.com/us/album/ay-carmela/1119265269?i=1119265947" caption="Traditional; emphasis mine"} diff --git a/content/blog/2024/books/index.md b/content/blog/2024/books/index.md new file mode 100644 index 0000000..63eb5a9 --- /dev/null +++ b/content/blog/2024/books/index.md @@ -0,0 +1,64 @@ +--- +title: Books I Read in 2024 +slug: books +date: 2024-12-31 +tags: + - Books + - Reading +--- + +I enjoy reading quite a bit. Nevertheless, it's something I need to be +intentional about incorporating into my life. I usually to finish a modest +number of books in a year. This year I made it to a nice round ten. + +A big theme of the year is the [Murderbot Diaries][murderbot]. My friend Jess +recommended them to me a while back, and I finally got around to [All Systems +Red][murderbot1] last year. I was hooked enough that {{< tess >}} bought me the +subsequent three for Christmas last year. So you're gonna see almost all the +Murderbot books on this list. + +[Bindle Punk Bruja](https://marthawells.com/networkeffect.htm) by Desideria Mesa +: Mesa's debut novel is set in 1920s Kansas City and centers around Rose, the +daughter of Mexican immigrants who takes on the city's mob bosses with the help +of friends and some witchy magical powers. This was a gift from my sister +[Anna][anna] for Christmas last year. + +[The Deep Sky](https://www.yumekitasei.com/projects-6) by Yume Kitasei +: A murder mystery that takes place in space on a one-way mission to colonize a +far-off planet. A gift from my sister. + +[Wolfsong](https://www.tjklunebooks.com/wolfsong) by TJ Klune +: Warewolves, magic, queerness, and family. A gift from my sister. + +[Fingersmith](https://www.penguinrandomhouse.com/books/348400/fingersmith-by-sarah-waters/) by Sarah Waters +: Mystery, intrigue, gay ladies, and some incredible plot twists. Tess gave me +this one. + +[Artificial Condition](https://marthawells.com/murderbot2.htm) by Martha Wells +: Murderbot investigates its past. + +[Rogue Protocol](https://marthawells.com/murderbot3.htm) by Martha Wells +: Murderbot goes digging for evidence against its former corporate master, +GrayCris. + +[Exit Strategy](https://marthawells.com/murderbot4.htm) by Martha Wells +: Murderbot attempts to save its former owner from GrayCris. + +[Network Effect](https://marthawells.com/networkeffect.htm) by Martha Wells +: Continuing the Murderbot obsession, I picked up this one from a [Books +Inc][booksinc] in San Francisco's Marina district. + +[I'm Starting to Worry About This Black Box of Doom](https://us.macmillan.com/books/9781250285959/imstartingtoworryaboutthisblackboxofdoom/) by Jason Pargin +: Anna and I decided to read this together, book club style. It's a ridiculous +romp across the US with some deep commentary on the perils of social media: how +it promotes dogpiling in ways that can destroy lives, and the groupthink that +arises from being terminally online. + +[The Full Moon Coffee Shop](https://www.penguinrandomhouse.com/books/746333/the-full-moon-coffee-shop-by-mai-mochizuki/) by Mai Mochizuki +: A cute, short read about a mysterious popup coffee shop that appears in Kyōto +during the full moon. + +[murderbot]: https://marthawells.com/murderbot.htm +[murderbot1]: https://marthawells.com/murderbot1.htm +[anna]: https://www.instagram.com/anna.e.az/ +[booksinc]: https://booksinc.net diff --git a/content/blog/2024/cat-in-the-cream-cookies.md b/content/blog/2024/cat-in-the-cream-cookies.md new file mode 100644 index 0000000..3751f02 --- /dev/null +++ b/content/blog/2024/cat-in-the-cream-cookies.md @@ -0,0 +1,69 @@ +--- +title: "Cat in the Cream Cookies" +date: 2024-11-18 +tags: + - Cooking + - Cookies + - Oberlin + - Recipes +--- + +One of my favorite memories from my time as a student at [Oberlin][ob] was going +to the [Cat in the Cream][cat]. I saw a lot of great plays, improv shows, and +jazz ensembles by students, and several performances by visiting musical guests. + +The other highlight of these memories was the oatmeal chocolate chip cookies you +could get for $1. They're somewhere between a small cake and a cookie, often +fresh-baked (they often had a hard time keeping up with demand on show nights). +Honestly they're everything I want in a cookie. I think the recipe was printed +in an edition of the [Alumni Magazine][mag] at some point in the last several +years, but this [video][video] I found online was the closest I had to hand, so +I'm copying it here. + + +## Recipe + +**Yield:** 20 cookies + +### Tools + +* Measuring cups and spoons +* 2 large mixing bowls +* Spoon or electric mixer to mix wet ingredients +* Whisk to combine dry ingredients (optional) +* 1 or 2 half-size sheet pans for baking + + +### Ingredients + +* 2 cups butter, softened +* 1 cup granulated sugar +* 2 cups brown sugar or 2 tablespoons of molasses +* 4 eggs, lightly beaten +* 2 teaspoons vanilla +* 4 cups flour +* 2 teaspoons baking soda +* 2 teaspoons salt +* Dash cinnamon +* 4 cups oats +* 3 cups chocolate chips + + +### Method + +1. Preheat oven to 375°. +1. Combine butter, sugars, and/or molasses in a bowl. +1. Add eggs and vanilla. Stir to combine. +1. Mix flour, baking soda, salt, and cinnamon in a separate bowl. +1. Add dry ingredients above to the wet. Stir to combine. +1. Add in oats and chocolate chips. Stir to combine. +1. Drop in large hunks (about 1/4 cup) onto ungreased baking sheets. They don't + spread during baking, but you'll only get six cookies on a half sheet. +1. Bake until the edges are slightly brown. The original recipe says 20 minutes, + but 15 was enough in my oven. + + +[ob]: https://www.oberlin.edu +[cat]: https://www.thecatinthecream.com/our-menu.html +[video]: https://vimeo.com/827645032 +[mag]: https://www.oberlin.edu/communications/editorial/alumni-magazine diff --git a/content/blog/2024/chicago/index.md b/content/blog/2024/chicago/index.md new file mode 100644 index 0000000..dcf1469 --- /dev/null +++ b/content/blog/2024/chicago/index.md @@ -0,0 +1,68 @@ +--- +title: Chicago +date: 2024-10-05T18:58:05-05:00 +description: > + Tess and I traveled to Chicago to attend the wedding of one of my oldest + friends, visit some family, and do a little sightseeing. +resources: + - src: wedding.jpg + title: Bill and Ashley walked each other in. My dad officiated. + params: + alt: > + To the left, a man wearing a suit and white pastoral stole stands near a + mic. To the right, a woman in a white dress, and a man in a tuxedo walk + into the frame. Everyone is smiling. + - src: quincy.jpg + title: > + Wood plank platforms, Copperplate lettering, and wingding-style hands to + direct you where you need to go. + params: + alt: > + A large station sign, framed with a simple wood frame, hanging on the + railing around a station platform stairway. It declares the station's + name, Quincy, and points to exits to the left and right. + - src: tess-kerryman.jpg + title: > + The Kerryman is a great Irish bar in River North, owned and operated by + one of Tess' distant Irish cousins. + params: + alt: > + Tess, on the left, stands outside a large pub on a stree corner. The pub + has outdoor seating. +tags: + - Travel + - Friends + - Family + - "Chicago, IL" + - Illinois +--- + +This past week {{< tess >}} and I traveled to Chicago to attend the wedding of +Bill, one of my oldest friends, and his partner Ashley. + +{{< figures/image name=wedding.jpg >}} + +They've been a couple for a long time. I'm thrilled that they've decided to take +this step together, and grateful to have been invited to witness it. Bill also +asked my dad to perform the ceremony, and I think he did an excellent job. + +{{< figures/image name=quincy.jpg >}} + +After the wedding day, we spent several days in Chicago sightseeing and visiting +with friends and family. We went record shopping at [Reckless][reckless], walked +down Navy Pier and Michigan Avenue, rode the L (including a stop a the +delightfully old timey [Quincy Station][quincy]), took selfies at the +[Bean][bean], and caught Hokusai's [Great Wave Off Kanagawa][wave] at the [Art +Institute of Chicago][artic] on a limited exhibition. We had breakfast at +[Tary][tary], and stopped in for pints at [The Kerryman][kerryman], a pub owned +by one of Tess' distant Irish cousins. + +{{< figures/image name=tess-kerryman.jpg >}} + +[reckless]: https://www.reckless.com +[bean]: https://millenniumparkfoundation.org/art-architecture/cloud-gate/ +[artic]: https://www.artic.edu +[tary]: https://tarycoffee.com/menu +[kerryman]: https://kerrymanchicago.com/drinks/ +[wave]: https://en.wikipedia.org/wiki/The_Great_Wave_off_Kanagawa +[quincy]: https://www.transitchicago.com/station/quin/ diff --git a/content/blog/2024/chicago/quincy.jpg b/content/blog/2024/chicago/quincy.jpg new file mode 100644 index 0000000..11b1039 --- /dev/null +++ b/content/blog/2024/chicago/quincy.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b6c19b8a5f589b21a7ab8ee846e2c23c364335142c04457998cc89e948ac39e +size 1843640 diff --git a/content/blog/2024/chicago/tess-kerryman.jpg b/content/blog/2024/chicago/tess-kerryman.jpg new file mode 100644 index 0000000..a85126f --- /dev/null +++ b/content/blog/2024/chicago/tess-kerryman.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7dcfa33b5a9df82ae941f970324bcac5a25dbd36e900051032724a2af15bb2 +size 2452294 diff --git a/content/blog/2024/chicago/wedding.jpg b/content/blog/2024/chicago/wedding.jpg new file mode 100644 index 0000000..88e8463 --- /dev/null +++ b/content/blog/2024/chicago/wedding.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08c30e5304a8341e6734eb5ce53c3249c935eb1eaa0401e90726ff660f8cf0e8 +size 2870428 diff --git a/content/blog/2024/christmas-in-massachusetts/bluey-erin-kathleen.jpg b/content/blog/2024/christmas-in-massachusetts/bluey-erin-kathleen.jpg new file mode 100644 index 0000000..9dc868a --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/bluey-erin-kathleen.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d3444135aab32635f480ee8ca4a6797821ff9b6f0f68e51aa4dd0f9b5d6383e +size 3407880 diff --git a/content/blog/2024/christmas-in-massachusetts/bluey-green-door.jpg b/content/blog/2024/christmas-in-massachusetts/bluey-green-door.jpg new file mode 100644 index 0000000..83d88a6 --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/bluey-green-door.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c17df7d3f75b0f3b18f9b5d73c1aa63b54ce5d856742f7121f4b9e9c8632e54 +size 3836629 diff --git a/content/blog/2024/christmas-in-massachusetts/bowling.jpg b/content/blog/2024/christmas-in-massachusetts/bowling.jpg new file mode 100644 index 0000000..7ae2121 --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/bowling.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19005c6eb5ef6da85eafcfe5abc92cff98bd4a7b53156fee94204f0e100db359 +size 1129641 diff --git a/content/blog/2024/christmas-in-massachusetts/erin-snowballs.jpg b/content/blog/2024/christmas-in-massachusetts/erin-snowballs.jpg new file mode 100644 index 0000000..0c7a73f --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/erin-snowballs.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e171f8b999e0af9bf949e391397a78ef6c7dd34bffa127c62f78ad57917f185 +size 2557799 diff --git a/content/blog/2024/christmas-in-massachusetts/index.md b/content/blog/2024/christmas-in-massachusetts/index.md new file mode 100644 index 0000000..6f77a69 --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/index.md @@ -0,0 +1,117 @@ +--- +title: "Christmas in Massachusetts" +description: This year, I spent Christmas with Tess and Erin in Massachusetts. +date: 2024-12-25 +resources: + - src: snow-friend.jpg + title: The tiniest snow friend + - src: erin-snowballs.jpg + title: Erin making snowballs + - src: minot.jpg + title: Minot Light sits on an undersea ledge far out from shore + - src: sand-hills.jpg + title: The sea wall along Sand Hills Beach, where Tess spent many summers + - src: bluey-erin-kathleen.jpg + title: Heading into the Heeler's living room with Auntie Kathleen + - src: bluey-green-door.jpg + title: Waiting to go through the secret door! + - src: bowling.jpg + title: Erin's first game of candlepin bowling + - src: old-brigade.jpg + title: Danny (on the center mic) and the Old Brigade at Fox & Hound in Quincy, MA +tags: + - Holidays + - Christmas + - Family + - Tess + - Erin + - Candlepin Bowling + - Massachusetts +--- + +This year, {{< tess >}}, Erin, and I traveled to Massachusetts to spend +Christmas with Tess' family. This was my first year spending Christmas away from +my family in Arizona, and my first with Tess and Erin. + +One of my hopes for Christmas in a cold place was to see some snow. As luck +would have it, I woke up on Christmas Eve to find a light dusting! Erin and I +couldn't help ourselves: we rushed outside to make a few snowballs and the +tiniest snow man you've ever seen. + +{{< 2col >}} + {{< figures/image name=erin-snowballs.jpg >}} + {{< figures/image name=snow-friend.jpg >}} +{{< /2col >}} + +We opened presents and had a lazy Christmas morning. We had dinner at Tess' +parents' house, and then went over for Christmas dessert at her cousin's house +-- a truly massive family event with many extended family members attending. + +The next day, Tess and I went "down harbor" for lunch and a little walk around. +We stopped at [Lucky Finn](https://www.luckyfinncafe.com) for a coffee, and Tess +took me around to see some of her old summer stomping grounds. I asked her to +help me get a good view of [Minot Light][minot], but it turns out it's really +damn far out so I only managed a little speck on the horizon. + +{{< 2col >}} + {{< figures/image name=minot.jpg >}} + {{< figures/image name=sand-hills.jpg >}} +{{< /2col >}} + +On Friday, Tess, Erin, and I went candlepin bowling at [Alley Kat +Lane][alleykat] in Kingston. Despite some initial hesitation, Erin had a lot of +fun. It was my first time at candlepin bowling too, and I found it really fun! +Harder than "big ball" bowling, but also more approachable because of the +lighter, smaller ball. The opportunities to strategize how to use the fallen +pins to your advantage add an interesting element too. + +{{< 2col >}} + {{< figures/image name=bluey-erin-kathleen.jpg >}} + {{< figures/image name=bluey-green-door.jpg >}} +{{< /2col >}} + +On Saturday, Tess, Kathleen, and I took Erin to an immersive [Bluey camp][bluey] +in Burlington. She had a great time building a fort out of the big cushy +oversized "blocks" in Bluey and Bingo's playroom. + +{{< 2col >}} + {{< figures/image name=bowling.jpg >}} + {{< figures/image name=old-brigade.jpg >}} +{{< /2col >}} + +Our last day in town, we went out to brunch at [The Tinker's Son][tinker], and +went up to [The Fox & Hound][fox] in Quincy to watch Tess' cousin +[Danny][brigade] play Irish music. + +--- + +I had a lot of feelings going into this Christmas. Apart from one pandemic year, +I've spent every year with my family in Arizona. I was worried about being in a +new place with people I didn't know well, breaking long-standing traditions with +my own family, letting them down, and feeling homesick. + +Everyone in Tess' family was welcoming and supportive. Tess' mom even got me a +stocking for their fireplce with my name on it, and her dad filled it with many +of the same things he gives to the rest of the family members. I also got to +watch Erin experience Christmas as a kid for the first time: opening presents, +playing in the snow, snuggling and reading books or watching TV together. + +I was able to keep some of my family traditions too. Mom sent me a box of full +of cookies; I shopped for presents for my parents and sister. And when we +returned to California, I was able to have a video call with my family to open +presents together. + +The older I get the more see the point of Christmas to be about the +relationships to family, and the sense of home and community you get from being +with people you love. Despite a whole new experience, I really felt that this +year. In fact, I think being in a new place, enacting different traditions, let +me hold the traditions and rituals of Christmas as I've experienced up to now a +little more loosely, and to focus on the people that bring meaning to the +holiday and make those rituals happen. + +[minot]: https://en.wikipedia.org/wiki/Minot%27s_Ledge_Light +[bluey]: https://camp.com/bluey-x-camp-boston +[alleykat]: https://alleykatlane.com +[tinker]: https://www.thetinkersson.com +[fox]: https://www.foxandhoundquincy.com +[brigade]: https://www.instagram.com/theoldbrigade/ diff --git a/content/blog/2024/christmas-in-massachusetts/minot.jpg b/content/blog/2024/christmas-in-massachusetts/minot.jpg new file mode 100644 index 0000000..d97f476 --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/minot.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60395d73a2aa641b7d3f033474685bd2f9ef3128bb328f52456f432db579c1a3 +size 1976740 diff --git a/content/blog/2024/christmas-in-massachusetts/old-brigade.jpg b/content/blog/2024/christmas-in-massachusetts/old-brigade.jpg new file mode 100644 index 0000000..6684f09 --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/old-brigade.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3b5bd5931bdec32c2b54f7a63c6761d6951ee7e75891af6863aa127b2ed20ae +size 3163986 diff --git a/content/blog/2024/christmas-in-massachusetts/sand-hills.jpg b/content/blog/2024/christmas-in-massachusetts/sand-hills.jpg new file mode 100644 index 0000000..d58eebe --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/sand-hills.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c190c6ac37402e683c61715a71a1c4494c81a659a63403329a871017d9bf156 +size 3017239 diff --git a/content/blog/2024/christmas-in-massachusetts/snow-friend.jpg b/content/blog/2024/christmas-in-massachusetts/snow-friend.jpg new file mode 100644 index 0000000..d08759f --- /dev/null +++ b/content/blog/2024/christmas-in-massachusetts/snow-friend.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:812fcea1bf412ac0fd89d790095ae641dcc0461c14caa11e5f7f53a3f479240a +size 2395627 diff --git a/content/blog/2024/departure-mono/index.md b/content/blog/2024/departure-mono/index.md new file mode 100644 index 0000000..5f74514 --- /dev/null +++ b/content/blog/2024/departure-mono/index.md @@ -0,0 +1,28 @@ +--- +title: "Departure Mono" +description: > + A fun fixed-width font evoking old school terminals and pixel fonts + from early computing. +date: 2024-12-28T08:19:53-05:00 +resources: + - src: screenshot.png + title: + params: + alt: > + A screenshot of the Departure Mono website. On the left, a small caption + "Departure Mono is a monospaced pixel font with a lo-fi technical vibe". + On the right are two examples: a personal letter on continuous feed + paper, and a notice on small stationary. +tags: + - Fonts + - Design + - Web Design +--- + +Here's a fun fixed-width pixel font I came across the other day: [Departure +Mono][dep]. It's got a neat old school terminal vibe, think VT100 or Commodore +64. + +{{< figures/image name=screenshot.png >}} + +[dep]: https://departuremono.com diff --git a/content/blog/2024/departure-mono/screenshot.png b/content/blog/2024/departure-mono/screenshot.png new file mode 100644 index 0000000..210aae2 Binary files /dev/null and b/content/blog/2024/departure-mono/screenshot.png differ diff --git a/content/blog/2024/eclipse/breanna-reading.jpg b/content/blog/2024/eclipse/breanna-reading.jpg new file mode 100644 index 0000000..ef77dae --- /dev/null +++ b/content/blog/2024/eclipse/breanna-reading.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c8907530f730f800e59101b9b26cd200b6f73c9bb045560ed0354ac4a73bf41 +size 1933691 diff --git a/content/blog/2024/eclipse/comadre-concha.jpg b/content/blog/2024/eclipse/comadre-concha.jpg new file mode 100644 index 0000000..0c9a71c --- /dev/null +++ b/content/blog/2024/eclipse/comadre-concha.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25ea86cacf4d35397f8dddfe949c83bf7abd1c8df23cf447820603abb4e40b50 +size 2144929 diff --git a/content/blog/2024/eclipse/diamondring.jpg b/content/blog/2024/eclipse/diamondring.jpg new file mode 100644 index 0000000..874875d --- /dev/null +++ b/content/blog/2024/eclipse/diamondring.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3f95920dc571ee9ac3fae17bd190d2a45e4fa85a94e50ea488bd79f9b5cb988 +size 1925477 diff --git a/content/blog/2024/eclipse/index.md b/content/blog/2024/eclipse/index.md new file mode 100644 index 0000000..5854fd9 --- /dev/null +++ b/content/blog/2024/eclipse/index.md @@ -0,0 +1,96 @@ +--- +title: Eclipse +date: 2024-04-09T20:26:31-05:00 +description: > + I traveled to Austin, TX to watch the total solar eclipse that passed over + North America, and visit my friend Breanna Carzoo. +tags: + - Travel + - Space + - Eclipse + - "Austin, TX" + - Texas + - Food + - Conchas + - Books + - Reading +resources: + - name: preparing + src: preparing.jpg + title: + - name: sol + src: sol.jpg + title: Sol + - name: ringoffire + src: ringoffire.jpg + title: The Ring of Fire + - name: diamondring + src: diamondring.jpg + title: Diamond Ring + - src: breanna-reading.jpg + title: Breanna read Greenlight to a room full of kids wearing bee antennae. + - name: concha + src: comadre-concha.jpg + title: > + An earl grey concha from Comadre. The most delicate, flavorful pan dulce + I've ever had. + params: + alt: > + A small round bun with a pinkish topping sittin on a napkin in front of + a traditional cardboard donut box. +--- + +{{< figures/image name=preparing >}} + +On April 8, the earth experienced a [total solar eclipse][nasa] tracking over +North America. I was so excited to be able to travel to the path of totality and +observe the eclipse with my friend and fellow space nerd, [Breanna +Carzoo][breanna]. + +My setup for all my eclipse photos was a [Fujifilm X-T5][xt5], with a [Canon EF +100mm Macro][lens] lens. I used a [Fringer EF-XT converter][converter] to mount +the EF lens on the X-T5. Of course I also had a solar filter. + +Here's one of my first test images. You can see a sun spot! + +{{< figures/image name=sol >}} + +During totality, when the moon fully covers the disc of the sun, a phenomenon +known as the "Ring of Fire" occurse. The sky is dark and most of the Sun's light +is hidden. In this state, it's possible to see the Sun's corona. + +{{< figures/image name=ringoffire >}} + +Just before and after totality is the "Diamond Ring" phase, when the last bit of +light from the Sun's disc shines through the craters and valleys of the moon's +surface. + +{{< figures/image name=diamondring >}} + +Austin, TX was pretty cloudy that day. I'm grateful we were able to see as much +of the eclipse as we did. The clouds made for some awesome effects too. I'm +particularly proud of my Diamond Ring image (above) with the additional drama +the clouds brought to an already stunning event. + +Apart from the eclipse, I got to see Breanna do a book event in Bee Cave, TX. +This town is adorable and leans hard into its name -- everything has a bee +theme. + +{{< figures/image name=breanna-reading.jpg >}} + +I was also eager to try [Comadre Panadería](https://comadrepanaderia.com) after +hearing about it from Claire Saffitz on [one of her videos][comadre-yt] on her +Dessert Person YouTube channel. I have a huge soft spot for conchas -- Mexican +pan dulces shaped like shells -- and these were _incredible_. + +{{< figures/image name=concha >}} + +All told, a very successful trip! Breanna and I had a great time hanging out +together, and despite the clouds we got some great views of the eclipse. + +[nasa]: https://science.nasa.gov/eclipses/future-eclipses/eclipse-2024/ +[breanna]: https://www.breannacarzoo.com +[xt5]: https://fujifilm-x.com/en-us/products/cameras/x-t5/ +[lens]: https://www.usa.canon.com/shop/p/ef-100mm-f-2-8l-macro-is-usm +[converter]: https://www.fringeradapter.com/canon-ef-to-fujifilm-x +[comadre-yt]: https://www.youtube.com/watch?v=kJTHTfJ-91E diff --git a/content/blog/2024/eclipse/preparing.jpg b/content/blog/2024/eclipse/preparing.jpg new file mode 100644 index 0000000..508d388 --- /dev/null +++ b/content/blog/2024/eclipse/preparing.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2148bc15896769676fe90239e5ca9db6d8dfecddf6b81aeebbf744dcd1c23c89 +size 2674771 diff --git a/content/blog/2024/eclipse/ringoffire.jpg b/content/blog/2024/eclipse/ringoffire.jpg new file mode 100644 index 0000000..d4547e3 --- /dev/null +++ b/content/blog/2024/eclipse/ringoffire.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e80cba7115954aff0f0b9273ba6dffc88718bd503c9417be326f6e5224096a20 +size 2896916 diff --git a/content/blog/2024/eclipse/sol.jpg b/content/blog/2024/eclipse/sol.jpg new file mode 100644 index 0000000..7c11191 --- /dev/null +++ b/content/blog/2024/eclipse/sol.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5e0ab1a47e9458ee74915c2f590304dfef1abc274a9abe8e40d96ad58dffe4a +size 145056 diff --git a/content/blog/2024/jackson-and-other-holes/barry-profile.jpg b/content/blog/2024/jackson-and-other-holes/barry-profile.jpg new file mode 100644 index 0000000..03a44be --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/barry-profile.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13194315d6a2fac61f53e90d38ebe33fd47d003d139234228612a480381c61c7 +size 7053052 diff --git a/content/blog/2024/jackson-and-other-holes/buck.jpg b/content/blog/2024/jackson-and-other-holes/buck.jpg new file mode 100644 index 0000000..1938549 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/buck.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b565d8e066e23fab93d9a5fd608fe0e02c1e0bf0b489df01db9b826c6393fc0 +size 4674598 diff --git a/content/blog/2024/jackson-and-other-holes/cairn.jpg b/content/blog/2024/jackson-and-other-holes/cairn.jpg new file mode 100644 index 0000000..8fa8872 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/cairn.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c62241b3f869bd12929c110b35ad56068efe0fe8cd5ffec63471b923783dcfba +size 1791979 diff --git a/content/blog/2024/jackson-and-other-holes/cowboy-bar-group-photo.jpg b/content/blog/2024/jackson-and-other-holes/cowboy-bar-group-photo.jpg new file mode 100644 index 0000000..7d89e17 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/cowboy-bar-group-photo.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63f08d4ed12e50711aa7de6ff40cb93a557171e8401c228dd575490b57def1b5 +size 4768284 diff --git a/content/blog/2024/jackson-and-other-holes/duck-butts.jpg b/content/blog/2024/jackson-and-other-holes/duck-butts.jpg new file mode 100644 index 0000000..c515297 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/duck-butts.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8282aa52129a604bcf64a794de2024f708ca7cbf99f631dbc5c884f565393d9d +size 15916253 diff --git a/content/blog/2024/jackson-and-other-holes/genevieve.jpg b/content/blog/2024/jackson-and-other-holes/genevieve.jpg new file mode 100644 index 0000000..2d892dc --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/genevieve.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50afe7102da154cb2a1264896b5b2899cbbbb0c5569d3ae60baf68337ddeb3c2 +size 5995046 diff --git a/content/blog/2024/jackson-and-other-holes/grand-canyon.jpg b/content/blog/2024/jackson-and-other-holes/grand-canyon.jpg new file mode 100644 index 0000000..99725b7 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/grand-canyon.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4aa281761426a6a147f9b1ef0cc00b9261352783b3e7a3189e27638f4250053e +size 8341406 diff --git a/content/blog/2024/jackson-and-other-holes/index.md b/content/blog/2024/jackson-and-other-holes/index.md new file mode 100644 index 0000000..f745106 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/index.md @@ -0,0 +1,387 @@ +--- +title: Jackson and Other Holes +date: 2024-10-28T16:16:28-06:00 +description: > + My fourth annual trip with a group of high school friends took us to + Yellowstone and Grand Teton National Parks. +categories: Travel +tags: + - Friends + - Idaho + - Wyoming + - Montana + - National Parks + - Yellowstone + - Grand Teton +resources: + - name: tetons-plane + src: tetons-plane.jpg + title: The view of the Grand Tetons on approach to JAC. + params: + alt: > + Four craggy peaks rise into a low cloud layer. A streak of flow streaks + off of the tallest peak like smoke from a candle. The foothills around + these mountains are covered in trees. + - name: tetons-airbnb + src: tetons-airbnb.jpg + title: The Grand Tetons from the Teton Valley, where our Airbnb was. + params: + alt: > + The four Teton peaks appear dramatically above a cluster of buildings in + the middle of a field. + - name: jackson-drug-co + src: jackson-drug-co.jpg + title: Jackson's town square is full of quaint shops and local color. + params: + alt: > + The Jackson Drug Company storefront at the corner of Cache and Deloney + in Jackson, Wyoming. There are white benches out front and clusters of + Halloween pumpkins decorating the doorway. The windows advertise ice + cream, meals, and alcohol for purchase. + - src: cowboy-bar-group-photo.jpg + title: > + The Million Dollar Cowboy Bar is quite a place. All the seats along the + bar are saddles! + params: + alt: > + Nine people sitting along a bar, smiling at the camera. The restaurant + is full of old-timey western decorations. Behind the group is a set of + pool tables with red felt. + - src: sunrise.jpg + title: > + The sunrise this morning was stunning, with the mountains lit from + behind. + params: + alt: > + The Teton mountains lit from behind by the rising sun. The sky is + colored dramatically in blues, pinks, and purples. In front of the + mountains is a mist layer and sillouettes of several farm buildings. + - src: prismatic-spring.jpg + title: The Grand Prismatic Spring + params: + alt: > + A large hot spring surrounded by flat barren fields. Around the rim are + dramatic orange, blue, and yellow rings. Steam billows from the surface. + - src: barry-profile.jpg + title: > + We spotted Barry the Bison grazing on the grasses along the Fairy Falls + trail, on the way up to the Grand Prismatic Spring observation point. + params: + alt: > + A bison in a field. In the background, steam rises from unknown sources. + - src: grand-canyon.jpg + title: > + The Grand Canyon of Yellowstone + params: + alt: > + A V-shaped canyon of solid yellow stone. A large waterfall pours water + into a river running along the bottom of the canyon. Trees cover the + canyon walls. + - src: buck.jpg + title: > + This guy kept circling back to the ditch on the far side of this road to + attack a traffic cone that, presumably, had committed some egregious + offense. + params: + alt: > + A young elk with a small set of antlers stands in the middle of a road. + Cars wait for him to pass. + - src: jenny-lake-panorama.jpg + title: A panorama of Jenny Lake. Photobomb by Alex. + params: + alt: > + A paraoramic photo of a clear, blue lake. Immediately behind it are + tree-covered mountains. On the far right of the frame, a person makes a + peace sign and sticks out their tongue at the camera. + - src: leigh-lake.jpg + title: Leigh Lake + params: + alt: > + A still lake reflects the image of the mountains behind it. In the near + foreground are various water plants. + - src: signal-mountain-1.jpg + title: + params: + alt: > + A broad landscape perspective showing a river running through a thick + forest. + - src: signal-mountain-2.jpg + title: + params: + alt: > + A landscape perspective showing a wide flat plain, partially covered in + trees. Roughly in the middle is a lake. + - src: mormon-row-out-buildings.jpg + title: > + A couple of the farm buildings in the Mormon Row area. These were built in + the early 20th century, and lived in until the 1970s! + params: + alt: > + Two weathered cabin-style buildings. The Teton mountains are in the + background. + - src: mormon-row-barn.jpg + title: > + One of the barns at the farthest-out settlement along Mormon Row. Hard to + complain about the view, but the wind out here was brutal. + params: + alt: > + A two-story barn with a variety of siding on each level. The roof of the + main part is a traditional barn shape. On the left is a small + trapezoidal extension. The Teton mountains are visible in the + background. + - src: mormon-row-cow-path.jpg + title: Following the cow paths through the fields. + params: + alt: > + In a dead field of short grasses a small path cuts through. Farther + along the path a person wearing a white shirt follows the cut. In the + background are a few buildings and one person. + - src: duck-butts.jpg + title: Butts. Lol. + params: + alt: > + Five ducks in a pond. Four of them have bobbed down into the water, with + their tail feathers pointing up. + - src: schwabacher-group.jpg + title: Most of our group, minus Tess and me (taking the photo). + params: + alt: > + Seven people almost all wearing sunglasses standing on a fallen tree. + The tree has numerous branches off of the main trunk. + - src: moose.jpg + title: Oh my god, there's a moose on the loose! + params: + alt: A moose stands in a field of sagebrush near a single tree. + - name: sunset-video + src: sunset.mov + title: The sunset from Schwabacher Landing + - src: genevieve.jpg + title: > + The Most Noble Pig, proprietor (I assume) of Cafe Genevieve in Jackson, + Wyoming. + params: + alt: > + A framed painting of a pig on a dark background. The pig looks sideways + at the viewer. The painting has a small caption plate saying "A Most + Noble Pig". The painting is mounted on a wall covered in a busy + wallpaper showing leaves, mushrooms, flowers, and pigs. +--- + +I recently returned from a trip with a group of my high school friends. This is +the fourth annual trip we've taken as a group, and we covered a lot of ground, +visiting three states and two national parks. Here's what we got up to. + + +## Day 1 + +We arrived at [Jackson Hole Airport][jac] (JAC) on Wednesday afternoon. This +airport is the only one [located in a national park][jacwp]. That fact coupled +with a flight path that brings planes in from the north means we got a stunning +first look at the Teton[^1] mountains from the plane. + +{{< figures/image name=tetons-plane >}} + +We stopped for beers at [Snake River Brewing][snakeriverbrew] in Jackson, +Wyoming before heading over the [Teton Pass][tetonpass] to our AirBnb, about six +miles outside of [Driggs, Idaho][driggs]. + +{{< figures/image name=tetons-airbnb >}} + +The [Teton mountains][tetons] are quite striking. I couldn’t get enough photos +of them, especially with the pastoral foregrounds of farm buildings and fields. +The photo above is from the deck of our Airbnb, on the opposite side of the +range from the one I took from the plane. + + +## Day 2 + +Our first full day was a relaxed tourist day in Jackson. We had lunch at [Grand +Teton Brewing][gtbrew] in [Victor, Idaho][victor], then drove over the pass to +Jackson. The town is situated around a central square that's surrounded by shops +and restaurants. + +{{< figures/image name=jackson-drug-co >}} + +We spent the afternoon wandering in and out of the local stores, and stopped in +the delightfully kitschy [Million Dollar Cowboy Bar][cowboy-bar] for drinks and +a round of pool. + +{{< figures/image name=cowboy-bar-group-photo.jpg >}} + +Dinner was pizza from [Pinky G's][pinkyg] in Victor. + + +## Day 3 + +We were up early today to drive into [Yellowstone National Park][yellowstonenp]. + +{{< figures/image name=sunrise.jpg >}} + +We opted to spend our day in the west and south side of the park, touring the +[Grand Prismatic][prismaticnps] [Spring][prismaticwp] and [Old +Faithful][oldfaithful]. I enjoyed reading about the geology of the area, and how +the volcanic activity below the surface drives the geysers, mud pots, and hot +springs the park is best known for. + +The Prismatic Spring was a bucket list item for me, so I was thrilled to get to +see it. + +{{< figures/image name=prismatic-spring.jpg >}} + +We hiked along the Fairy Falls trail to the overlook and spotted our first +megafauna of the trip: a bison! He was grazing along the trail. We named him +Barry. + +{{< figures/image name=barry-profile.jpg >}} + +From there we drove down the road to the [Old Faithful Visitor Education +Center][oldfaithfulvec]. We’d just missed an eruption, so we opted to hang out +until the next one. Meanwhile we had some lunch and wandered the visitor +center's exhibit on the various geothermal features in the geyser basin. + +Our last stops of the day were the [Grand Canyon of Yellowstone][grandcanyon] – +a name this group of Arizonans found somewhat bewildering – and Hayden Valley. +The Canyon didn’t disappoint; is indeed grand. + +{{< figures/image name=grand-canyon.jpg >}} + +On the way out of the park, we came across a group of elk, including a +particularly feisty young male who was determined to put a traffic cone in its +place. + +{{< figures/image name=buck.jpg >}} + +We stopped for dinner at the [Slippery Otter][slipperyotter] in West Yellowstone +before heading home. + + +## Day 4 + +The first of two days at [Grand Teton National Park][gtnp] started with +sandwiches from a small deli in [Moose, Wyoming][moosewy]. This town, along with +the airport, also sits within the national park boundaries. A little ways down +the road we came to [Jenny Lake][jennylake]. + +{{< figures/image name=jenny-lake-panorama.jpg >}} + +We also hiked around [Leigh Lake][leighlake], the next in a chain of lakes at +the immediate base of the mountains. + +{{< figures/image name=leigh-lake.jpg >}} + +We wrapped up this day with a drive up [Signal Mountain][signalmtn][^2] and an +unsuccessful moose-spotting drive down the Moose-Wilson Road. + +{{< figures/image name=signal-mountain-1.jpg >}} + +{{< figures/image name=signal-mountain-2.jpg >}} + +Before bed, a bunch of us enjoyed the hot tub and beautifully clear night skies. +We found Jupiter and Saturn, as well as several constellations. The Milky Way +was overhead as well. I *always* enjoy stargazing, and don’t get to do it nearly +enough under dark skies. This was a real treat. + + +## Day 5 + +Our first stop in the park was Mormon Row, a chain of houses and farm buildings +constructed by Mormon homesteaders in the early 20th century. + +{{< figures/image name=mormon-row-out-buildings.jpg >}} + +{{< figures/image name=mormon-row-barn.jpg >}} + +Seeing how these people carved a living out of a relatively harsh +environment[^3] is awe inspiring. + +{{< figures/image name=mormon-row-cow-path.jpg >}} + +We drove further down the road to [Lower Slide Lake][lowerslide] to spend a +little time relaxing and waiting for sunset. We skipped rocks and built cairns +at the lakeshore, and admired the scenic views of the farms across the lake. + +Our last scheduled stop was an attempt to catch the sun setting behind the +peaks. We drove out to [Schwabacher Landing][schwabacher] and hiked a little +ways in. This spot was a gorgeous place to wait for the sun. A bunch of the +group climbed into a fallen tree for a particularly silly group photo. + +{{< figures/image name=schwabacher-group.jpg >}} + +We also caught some duck butts! + +{{< figures/image name=duck-butts.jpg >}} + +I managed to take a time lapse video of the sun setting. It was going great +until the wind blew it off its jaunty perch on a branch. + +{{< figures/image name=sunset-video >}} + +On the way home we took another shot at catching a moose along the Moose-Wilson +Road, and this time we were successful! A short way down the road, we came to a +clearing where not one but two moose were grazing in the sagebrush. + +{{< figures/image name=moose.jpg >}} + +Given our prior unsuccessful attempt, several of us had tempered our +expectations going into this drive. That made seeing two moose so quickly into +the drive all the more exciting. + + +## Day 6 + +Time to head home. 😢 We broke camp at the Airbnb in the morning and said +goodbyes to a few of our group with flights out of Bozeman, Montana. Due to a +complication with our rental cars, I drove twice over Teton Pass to get everyone +to JAC who needed to be there. + +{{< figures/image name=genevieve.jpg >}} + +Trent, Tess, and I had a last lunch at [Cafe Genevieve][genevieve] in Jackson. +Then, we returned the rental car and caught our flights home. + + +## Hasta Luego + +This group means a lot to me. We’ve hung together through the worst of the +pandemic, and make time every year to spend a few days together. There are +challenges and small conflicts every year, but we always make it through and +continue to put in the work to make these trips happen. I’m so grateful for +that. + + +[^1]: Tess informed me shortly after landing of the meaning of the French word +_téton_. A fact that delighted me for the entirety of the trip. Two lesbians +traveling to the middle of the country to check out "the great tits" is about as +on the nose as it gets, isn’t it? +[^2]: The view from the top of signal mountain is breathtaking, however I +couldn’t help notice one of the water features bears a certain phallic +resemblance. +[^3]: Some of the signage here explained that the homesteaders picked this spot +because the nearby butte sheltered them from the wind. Several of us found +this fact unbelievable considering how windy it was that day. + +[jac]: https://www.jacksonholeairport.com +[jacwp]: https://en.m.wikipedia.org/wiki/Jackson_Hole_Airport +[snakeriverbrew]: https://www.snakeriverbrewing.com +[tetons]: https://en.wikipedia.org/wiki/Teton_Range +[tetonpass]: https://en.wikipedia.org/wiki/Teton_Pass +[victor]: https://victoridaho.gov +[gtbrew]: https://grandtetonbrewing.com +[pinkyg]: https://pinkygs.com +[driggs]: http://www.driggs.govoffice.com/ +[yellowstonenp]: https://www.nps.gov/yell/index.htm +[prismaticnps]: https://www.nps.gov/places/000/grand-prismatic-spring.htm +[prismaticwp]: https://en.wikipedia.org/wiki/Grand_Prismatic_Spring +[oldfaithful]: https://www.nps.gov/yell/planyourvisit/exploreoldfaithful.htm +[oldfaithfulvec]: https://www.nps.gov/yell/planyourvisit/oldfaithfulvec.htm +[grandcanyon]: https://www.nps.gov/yell/planyourvisit/canyonplan.htm +[slipperyotter]: https://www.yelp.com/biz/slippery-otter-pub-west-yellowstone +[gtnp]: https://www.nps.gov/grte/index.htm +[moosewy]: https://en.wikipedia.org/wiki/Moose,_Wyoming +[jennylake]: https://www.nps.gov/grte/planyourvisit/jennylakeplan.htm +[leighlake]: https://www.nps.gov/grte/planyourvisit/stringleighplan.htm +[signalmtn]: https://www.nps.gov/grte/planyourvisit/signalmountainplan.htm +[cowboy-bar]: https://www.milliondollarcowboybar.com/ +[lowerslide]: https://en.wikipedia.org/wiki/Lower_Slide_Lake +[schwabacher]: https://www.nps.gov/places/000/schwabacher-landing.htm +[genevieve]: https://genevievejh.com diff --git a/content/blog/2024/jackson-and-other-holes/jackson-drug-co.jpg b/content/blog/2024/jackson-and-other-holes/jackson-drug-co.jpg new file mode 100644 index 0000000..d4adf57 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/jackson-drug-co.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c034da530492524ef2a32de5b9c867a5eb406fa04c71328da0364d6d7be031b +size 8133185 diff --git a/content/blog/2024/jackson-and-other-holes/jenny-lake-panorama.jpg b/content/blog/2024/jackson-and-other-holes/jenny-lake-panorama.jpg new file mode 100644 index 0000000..a5cd71a --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/jenny-lake-panorama.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af9f2664719946847a6d55ac7b6440081176d8533c6c2c303c218c7ce88c7e79 +size 11451282 diff --git a/content/blog/2024/jackson-and-other-holes/leigh-lake.jpg b/content/blog/2024/jackson-and-other-holes/leigh-lake.jpg new file mode 100644 index 0000000..9ca5971 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/leigh-lake.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a928419b092af3ed38ac8e4be4c4ba2cfe510555541b708a80bca7bed3be66 +size 8312627 diff --git a/content/blog/2024/jackson-and-other-holes/magpie.jpg b/content/blog/2024/jackson-and-other-holes/magpie.jpg new file mode 100644 index 0000000..ed2687f --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/magpie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8fcb85cd1fc1302447b5b0f5bce24c27e54b30659f4790765882f31b86bcda +size 3481860 diff --git a/content/blog/2024/jackson-and-other-holes/moose.jpg b/content/blog/2024/jackson-and-other-holes/moose.jpg new file mode 100644 index 0000000..b7a46c8 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/moose.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f74db7326e293c8fd0420ce2fb616d58859dfee039c0b9cb1977ae9321e22db +size 5584779 diff --git a/content/blog/2024/jackson-and-other-holes/mormon-row-barn.jpg b/content/blog/2024/jackson-and-other-holes/mormon-row-barn.jpg new file mode 100644 index 0000000..5d5ed44 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/mormon-row-barn.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9880dc022207c888a6c40b01f9092446338ef09e227e3341da61004c5595dff0 +size 6210537 diff --git a/content/blog/2024/jackson-and-other-holes/mormon-row-cow-path.jpg b/content/blog/2024/jackson-and-other-holes/mormon-row-cow-path.jpg new file mode 100644 index 0000000..d7f8ce6 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/mormon-row-cow-path.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0c6963ea867fe258a68934fa4d77daa2704d7e46524bd87d4a62b3a47d56e34 +size 12509933 diff --git a/content/blog/2024/jackson-and-other-holes/mormon-row-out-buildings.jpg b/content/blog/2024/jackson-and-other-holes/mormon-row-out-buildings.jpg new file mode 100644 index 0000000..49c7a8e --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/mormon-row-out-buildings.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aefa8ea7fc5c8f470fbc69d6c1ddc4935d15566a315309d58f32b267f02c1165 +size 7877627 diff --git a/content/blog/2024/jackson-and-other-holes/old-faithful-selfie.jpg b/content/blog/2024/jackson-and-other-holes/old-faithful-selfie.jpg new file mode 100644 index 0000000..3a533c4 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/old-faithful-selfie.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce8439c5d37c5f7a4b52d050dc3a6b3f5adb392396b8d36320a33436d73ba463 +size 2110278 diff --git a/content/blog/2024/jackson-and-other-holes/prismatic-spring-1.jpg b/content/blog/2024/jackson-and-other-holes/prismatic-spring-1.jpg new file mode 100644 index 0000000..bdb8406 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/prismatic-spring-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:430aecd97bfe20dc57e13972bbc159370ff94604c5d13fdbe638b3dbdef9d6e8 +size 8586835 diff --git a/content/blog/2024/jackson-and-other-holes/prismatic-spring-2.jpg b/content/blog/2024/jackson-and-other-holes/prismatic-spring-2.jpg new file mode 100644 index 0000000..4260095 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/prismatic-spring-2.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baf35b3880af5f1cd0827ebd4f7a30e71fbc3185656c951ac4d0ce16ec2da431 +size 6000738 diff --git a/content/blog/2024/jackson-and-other-holes/prismatic-spring.jpg b/content/blog/2024/jackson-and-other-holes/prismatic-spring.jpg new file mode 100644 index 0000000..a093974 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/prismatic-spring.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3ebc422b8e6d4e5536d12959549da0d846f220a83534745916567ef645be42e +size 8586627 diff --git a/content/blog/2024/jackson-and-other-holes/schwabacher-group.jpg b/content/blog/2024/jackson-and-other-holes/schwabacher-group.jpg new file mode 100644 index 0000000..8b6ac9b --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/schwabacher-group.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82e68edc6a5ac9d226fa569d05bb7284aa87329da77573609a45460f394c8eff +size 11993850 diff --git a/content/blog/2024/jackson-and-other-holes/signal-mountain-1.jpg b/content/blog/2024/jackson-and-other-holes/signal-mountain-1.jpg new file mode 100644 index 0000000..1580ea3 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/signal-mountain-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c9d8c9b95d05d6d372a826038f39602513a4d7d244dcb83420f6bc72bd7918d +size 9367122 diff --git a/content/blog/2024/jackson-and-other-holes/signal-mountain-2.jpg b/content/blog/2024/jackson-and-other-holes/signal-mountain-2.jpg new file mode 100644 index 0000000..1c61a2d --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/signal-mountain-2.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82ce4fb27ffb594ff3b6705e63dae540dc65101d15480ddf994c0914d03ada74 +size 5925101 diff --git a/content/blog/2024/jackson-and-other-holes/sunrise.jpg b/content/blog/2024/jackson-and-other-holes/sunrise.jpg new file mode 100644 index 0000000..f87ee7b --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/sunrise.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e773c5f2a2054fba6d58827281bd5a3037b26960cce7bcb091857463f92ce2f8 +size 4798200 diff --git a/content/blog/2024/jackson-and-other-holes/sunset.mov b/content/blog/2024/jackson-and-other-holes/sunset.mov new file mode 100644 index 0000000..2e20598 --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/sunset.mov @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:529473200a5f97d3dd6b8dac2fbeee1f30144fac460041a2b74bae03527b9bfa +size 16819033 diff --git a/content/blog/2024/jackson-and-other-holes/tetons-airbnb.jpg b/content/blog/2024/jackson-and-other-holes/tetons-airbnb.jpg new file mode 100644 index 0000000..69cad5d --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/tetons-airbnb.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:880cf94fbe8b09b4903e095a6cfd059d1b4b4ed85e69b13c7bf0cacc26dff871 +size 1488085 diff --git a/content/blog/2024/jackson-and-other-holes/tetons-plane.jpg b/content/blog/2024/jackson-and-other-holes/tetons-plane.jpg new file mode 100644 index 0000000..67e329d --- /dev/null +++ b/content/blog/2024/jackson-and-other-holes/tetons-plane.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db1edc74758a26ae2ed6b51d08ee0c952cff04db3770b60c5bf041ed6d7a6953 +size 1853486 diff --git a/content/blog/2024/make-pattern-rules/Makefile b/content/blog/2024/make-pattern-rules/Makefile new file mode 100644 index 0000000..ba4db9d --- /dev/null +++ b/content/blog/2024/make-pattern-rules/Makefile @@ -0,0 +1,67 @@ +# A Makefile that explores pattern and grouped rules. This Makefile expects the +# GNU version of Make. + +# Relevant docs: +# https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html +# https://www.gnu.org/software/make/manual/html_node/Pattern-Match.html +# https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html +# https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html + + +NAMES=zip zap + +.PHONY: all clean + +all: $(NAMES:%=%.x) $(NAMES:%=%.y) + + +# Here's a simple pattern rule that generates a .txt file from a name. In this +# rule % represents the name (the 'stem' in Makefile lingo) in the targets and +# prerequisites, and $* represents the stem in the recipe. + +%.txt: + @echo "=> Making $*.txt" + python -c 'print("$*!".title())' > "$@" + + +# Here are a couple explicit rules that generate a single file given some input +# files. Note the input files (prerequisites) will be generated with the pattern +# rule above. + +zip.a : florp.txt + @echo "=> Making $@ with $<" + cat "$<" > "$@" + +zap.a : bloop.txt + @echo "=> Making $@ with $<" + cat "$<" > "$@" + + +# This is a Grouped rule, marked with &:. It indicates that the two target files +# are produced together in one invocation of the rule, rather than two separate +# files produced by the same rule. + +zip.x zip.y &: zip.a + @echo "=> Making XY files from $< with explicit rule" + echo "[X]" > zip.x + cat "$<" >> zip.x + echo "[Y]" > zip.y + cat "$<" >> zip.y + + +# Pattern rules with multiple targets are always Grouped, so you don't need the +# &: separator. + +%.x %.y : %.a + @echo "=> Making XY files from $< with pattern rule" + echo "[X]" > $*.x + cat "$<" >> $*.x + echo "[Y]" > $*.y + cat "$<" >> $*.y + + +clean: + rm -f bloop.txt florp.txt + rm -f $(NAMES:%=%.a) + rm -f $(NAMES:%=%.x) + rm -f $(NAMES:%=%.y) diff --git a/content/blog/2024/make-pattern-rules/index.md b/content/blog/2024/make-pattern-rules/index.md new file mode 100644 index 0000000..f41465b --- /dev/null +++ b/content/blog/2024/make-pattern-rules/index.md @@ -0,0 +1,127 @@ +--- +title: "Makefile Pattern Rules" +date: 2024-12-04T14:26:57-08:00 +publishDate: 2024-12-05 +resources: + - name: makefile + src: Makefile +tags: + - TIL + - Make + - Software +--- + +I recently found myself hacking on a Makefile (the GNU kind, not the [BSD +kind][bsdmake]) that made heavy use of pattern rules and grouped rules. These +are concepts I haven't spent a lot of time with so I wrote myself a small test +Makefile to explore them in a little more detail. + + +## Pattern Rules + +[Pattern rules][patterns] drive most of the usage of `make` as a tool for +building software. `make` includes a bunch of pattern rules for many of the +kinds of source files you're likely to encounter. For example, it has implicit +rules for building `.o` files out of `.c` files. + +Here's a simple pattern rule that generates text files: + +```make +%.txt: + @echo "=> Making $*.txt" + python -c 'print("$*!".title())' > $@ +``` + +The `%` is tells `make` that this is a patten rule. It's a placeholder for a +string of non-whitespace characters, which `make` calls a _stem_. You can +reference the stem in the body of the rule with the [automatic variable][auto] +`$*`. + +This particular rule creates a text file with a particular stem by echoing a +string to a file with this little Python snippet. + +Here's a slightly more complex pattern rule: + +```make +%.x : %.a + @echo "=> Making X file from $< with pattern rule" + echo "[X]" > $*.x + cat "$<" >> $*.x +``` + +The major difference with this rule is that it has a prerequisite (the part +after the colon) that also has a `%`. So, this rule defines how to build a `.x` +file from a `.a` file with the same stem. + +Later on, if I write a rule like this: + +```make +zip.a : florp.txt + @echo "=> Making $@ with $<" + cat $< > $@ +``` + +`make` will understand that it first needs to generate `florp.txt` with the +pattern rule for `%.txt`. Then it can execute this rule to build `zip.a`. + + +## Grouped Rules + +Grouped rules are another feature of `make` that lets you specify [more than one +output][multiples] for a given rule. If you're writing C family languages, this +is useful for generating a header and source file pair, and making sure that +they get updated together. + +```make +zip.x zip.y &: zip.a + @echo "=> Making XY files from $< with explicit rule" + echo "[X]" > zip.x + cat "$<" >> zip.x + echo "[Y]" > zip.y + cat "$<" >> zip.y +``` + +Generally when you write a rule with more than one output, `make` understands +that each of the ouput files is built separately with the same rule. However, a +rule with a `&:` separator indicates that the outputs are built from a single +invocation of the rule. `make` will rebuild the rule if any of the outputs is +out-of-date. + + +## Altogether Now + +You can combine pattern rules and group rules into a single rule too. This rule +creates a pattern for building a pair of `.x` and `.y` files from a `.a` file +with a particular stem. + +```make +%.x %.y : %.a + @echo "=> Making XY files from $< with pattern rule" + echo "[X]" > $*.x + cat "$<" >> $*.x + echo "[Y]" > $*.y + cat "$<" >> $*.y +``` + +These rules are always treated as a group. It doesn't matter if you use `:` or +`&:`. + + +## Rule Precedence + +The way `make` decides which rule to use to produce a file are a little subtle, +especially when you combine pattern rules and explicit rules. In general an +explicit rule should take precedence over a pattern. In my Makefile, the rule +that explicitly builds `zip.x` and `zip.y` will win over the pattern for `%.x` +and `%.y`. When multiple pattern rules match a target, the rules are [more +complex][matching]. + +--- + +Download the full [Makefile]({{< page/resource-ref makefile >}}). + +[bsdmake]: {{< ref "blog/2024/bsd-make" >}} +[auto]: https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html +[patterns]: https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html +[multiples]: https://www.gnu.org/software/make/manual/html_node/Multiple-Targets.html +[matching]: https://www.gnu.org/software/make/manual/html_node/Pattern-Match.html diff --git a/content/blog/2024/milk-bread-rolls/IMG_5143.jpeg b/content/blog/2024/milk-bread-rolls/IMG_5143.jpeg new file mode 100644 index 0000000..586a053 --- /dev/null +++ b/content/blog/2024/milk-bread-rolls/IMG_5143.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed6f2af4f217fa35c9043bd67884a44b36fea840957c86b095bd02590e8a7c56 +size 2691385 diff --git a/content/blog/2024/milk-bread-rolls/index.md b/content/blog/2024/milk-bread-rolls/index.md new file mode 100644 index 0000000..ed03ced --- /dev/null +++ b/content/blog/2024/milk-bread-rolls/index.md @@ -0,0 +1,36 @@ +--- +title: Milk Bread Rolls for Thanksgiving +date: 2024-12-01 +resources: + - name: rolls + title: + src: IMG_5143.jpeg + params: + alt: > + A set of ten rolls with golden brown tops arranged in a circular + cake pan. +tags: + - Cooking + - Recipes + - Baking + - Bread + - Thanksgiving +--- + +I made [Japanese Milk Bread Rolls][r] from King Arthur Baking for Thanksgiving. +They were a big hit! + +{{< figures/image name=rolls >}} + +The weirdest part for most Western bakers is probably the tangzhong, but it's a +pretty straight-forward roux, like you'd use to make gravy. The recipe has some +good instructions on how to do it. + +The most difficult part -- at least for me -- is probably the shaping because of +the coordination you need to turn the lump of dough in a circular motion on the +counter between your fingers. It took me a little while to get that, but now it +comes almost second nature. + +Totally recommend this one for holiday dinner! + +[r]: https://www.kingarthurbaking.com/recipes/japanese-milk-bread-rolls-recipe diff --git a/content/blog/2024/moon.md b/content/blog/2024/moon.md new file mode 100644 index 0000000..327e4b7 --- /dev/null +++ b/content/blog/2024/moon.md @@ -0,0 +1,13 @@ +--- +title: Moon +date: 2024-12-22T14:41:48-08:00 +tags: + - Space + - Moon +--- + +This post from Bartosz Ciechanowski all about the [Moon][moon] is as delightful +as it is educational. Their blog is full of extremely detailed posts about all +sorts of things. + +[moon]: https://ciechanow.ski/moon/ diff --git a/content/blog/2024/orlando-pride-nwsl-final/index.md b/content/blog/2024/orlando-pride-nwsl-final/index.md new file mode 100644 index 0000000..3745b45 --- /dev/null +++ b/content/blog/2024/orlando-pride-nwsl-final/index.md @@ -0,0 +1,30 @@ +--- +title: "Orlando Pride Win the NWSL Final!" +date: 2024-11-24T08:44:08-08:00 +resources: + - name: marta + src: marta.jpg + title: + params: + shouldResize: false + linksToFullSize: false + source: + url: https://www.instagram.com/p/DCvb5qzOi-E/ +tags: + - Sports + - Football + - NWSL + - Orlando Pride +--- + +On Saturday we watched the Orlando Pride play the Washington Spirit in the +final. They won 1-0 in an exciting game! + +{{< figures/image name=marta size=small >}} + +The Pride have had an amazing season, finishing first in the league standings +with a 18-2-6 record. + +I think my favorite part of the game was seeing Marta's mom in the stands. It +was her first trip to the United States. I love that she was able to be here for +such a big moment in her daughter's career. diff --git a/content/blog/2024/orlando-pride-nwsl-final/marta.jpg b/content/blog/2024/orlando-pride-nwsl-final/marta.jpg new file mode 100644 index 0000000..6aec92d --- /dev/null +++ b/content/blog/2024/orlando-pride-nwsl-final/marta.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94b7a35e57bb06ec34e35c2d2201b998e3e5eef315db06d192a7f2abccb1ff3c +size 445408 diff --git a/content/blog/2024/rubiks-scrambler.md b/content/blog/2024/rubiks-scrambler.md new file mode 100644 index 0000000..a0ac788 --- /dev/null +++ b/content/blog/2024/rubiks-scrambler.md @@ -0,0 +1,30 @@ +--- +title: Rubik's Cube Scrambler +date: 2024-11-13T15:34:22-08:00 +tags: + - Tech + - Puzzles + - Rubik's Cube + - HTML + - JavaScript + - CSS + - Web Components +--- + +Here's a silly thing I made while I was home sick today. It's a widget that +produces a randomized pattern of [moves][rmoves] to scramble a 3×3 [Rubik's +Cube][rcube]. + +
+ {{< rubiks/scrambler >}} +
+ +This thing is a [Web Component][wc]. The interactive logic lives inside a custom +[HTMLElement][htmlelement], and the content and styling are specified inside a +[`