diff --git a/.gitignore b/.gitignore index 2073fc6..2ca23d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -LightroomExports/ node_modules/ public/ /documentation/mirrors/ diff --git a/Makefile b/Makefile index fea5233..72bf627 100644 --- a/Makefile +++ b/Makefile @@ -21,11 +21,9 @@ site: 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 "$(BUILD_DIR)/" "$(DEPLOY_LOCATION)" - git tag -f $(shell ./scripts/website deployment next-tag) + git tag -f deploy-$(shell date +%Y-%m-%d) deployall: nethack deploy diff --git a/archetypes/link.md b/archetypes/link.md deleted file mode 100644 index 5a8d835..0000000 --- a/archetypes/link.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -slug: link-{{ .Name }} -date: {{ .Date }} -categories: links -draft: true -tags: [] ---- - diff --git a/config/_default/permalinks.yaml b/config/_default/permalinks.yaml index 7d4b0bc..efcaf6c 100644 --- a/config/_default/permalinks.yaml +++ b/config/_default/permalinks.yaml @@ -1,3 +1,3 @@ blog: blog/:year/:month/:slug/ photos: photos/:year/:month/:slug/ -twitter: twitter/:year/:month/:slug/ +tweets: tweets/:year/:month/:slug/ diff --git a/content/_index.es.md b/content/_index.es.md index dec3a59..4812de4 100644 --- a/content/_index.es.md +++ b/content/_index.es.md @@ -1,20 +1,8 @@ --- +title: Eryn Rachel Wells layout: single -draft: true -params: - renderHeadingAnchors: false --- -¡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 +{{< nobreak >}}Ingeniera de software,{{< /nobreak >}} +alfarera, música, y +{{< nobreak >}}nerd en general.{{< /nobreak >}} diff --git a/content/_index.md b/content/_index.md index e4ca8ce..320c794 100644 --- a/content/_index.md +++ b/content/_index.md @@ -6,61 +6,53 @@ params: Hi, I'm Eryn Wells. This is my website. Welcome! - ## Latest Here are some of my most recent posts. {{< home/latest >}} - ## Personal -I'm a queer woman, {{< tess >}}' partner, and mom of [two cats][cats]. I +I'm a queer trans 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][] +Phoenix, {{< abbr Arizona >}}AZ{{< /abbr >}}. I attended [Oberlin College][ob] 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][] in 2016, where I currently work +the San Francisco Bay Area. I joined [Apple][a] 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 -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, +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, bicycling, calligraphy, ceramics, and knitting. - -[Apple]: https://apple.com +[a]: https://apple.com [ab]: {{< ref "/about" >}} [b]: {{< ref "/blog" >}} [bc]: https://erynwells.bandcamp.com/releases [cats]: {{< ref "/cats" >}} [eml]: mailto:Eryn%20Wells -[src]: https://source.erynwells.me/eryn +[gh]: https://github.com/erynofwales [ig]: https://www.instagram.com/erynofwales [m]: https://mastodon.social/@erynofwales [n]: {{< ref "/now" >}} -[Oberlin College]: https://www.oberlin.edu +[ob]: 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/blog/2023/pajaro-dunes/index.md b/content/blog/2023/pajaro-dunes/index.md index f4c0785..39a5da2 100644 --- a/content/blog/2023/pajaro-dunes/index.md +++ b/content/blog/2023/pajaro-dunes/index.md @@ -1,7 +1,8 @@ --- title: "Pajaro Dunes" date: 2023-05-30T08:31:34-07:00 -tags: [Travel, Beaches, Tess, EJ, Vacations] +categories: Travel +tags: [Beaches, Tess, EJ, Vacations] --- {{< tess >}}, EJ, and I took a weekend trip down the coast over Memorial Day diff --git a/content/blog/2025/ai-makes-me-sad.md b/content/blog/2025/ai-makes-me-sad.md deleted file mode 100644 index 2fee7d2..0000000 --- a/content/blog/2025/ai-makes-me-sad.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "AI Makes Me Sad" -description: Sad tooting about AI. -date: 2025-09-05T13:56:40-07:00 -draft: true -tags: - - AI - - Tech ---- - -[My own toot](https://mastodon.social/@erynofwales/115153168015169009) from a -few days on Mastodon: - -> I don't know what to do with how much I dislike AI and its relentless creep -> into my industry. The more I see of it, the more inevitable it seems, and the -> more alienated I feel from the software engineering industry. -> -> It could very well push me out of the industry, not because it steals my job, -> but because it robs me of the joy I had for this work. diff --git a/content/blog/2025/america-tips-into-fascism.md b/content/blog/2025/america-tips-into-fascism.md index 2f39608..a1f5d9b 100644 --- a/content/blog/2025/america-tips-into-fascism.md +++ b/content/blog/2025/america-tips-into-fascism.md @@ -1,8 +1,7 @@ --- -title: "America Tips Into Fascism by Garrett Graff" +title: "Link: America Tips Into Fascism" slug: america-tips-into-fascism date: 2025-08-25T22:31:15-06:00 -categories: Links tags: - Politics - USA diff --git a/content/blog/2025/hamonshu.md b/content/blog/2025/hamonshu.md deleted file mode 100644 index b3d952b..0000000 --- a/content/blog/2025/hamonshu.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Hamonshū" -date: 2025-09-18 -tags: - - Art - - Web Design - - Design - - japan ---- - -Eric Meyer's [website](https://meyerweb.com) has a hand-drawn ink motif that I -really dig. It's based heavily on drawings from the Hamonshū, a set of books -produced by Yūzan Mōri. This work was new to me, and I enjoyed flipping through -it on the Internet Archive, embedded below. - -
- -
diff --git a/content/blog/2025/i-am-an-ai-hater.md b/content/blog/2025/i-am-an-ai-hater.md deleted file mode 100644 index b7e3e14..0000000 --- a/content/blog/2025/i-am-an-ai-hater.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "I Am an AI Hater by Anthony Moser" -slug: link-i-am-an-ai-hater -date: 2025-08-28T08:36:59-06:00 -categories: links -tags: - - AI - - Tech ---- - -A [fierce argument][link] against AI by Anthony Moser. - -> But I am more than a critic: I am a hater. I am not here to make a careful -> comprehensive argument, because people have already done that. ... I am here -> to be rude, because this is a rude technology, and it deserves a rude -> response. - -[link]: https://anthonymoser.github.io/writing/ai/haterdom/2025/08/26/i-am-an-ai-hater.html diff --git a/content/blog/2025/ndstevenson-rings.md b/content/blog/2025/ndstevenson-rings.md index 72e7a7d..850f89d 100644 --- a/content/blog/2025/ndstevenson-rings.md +++ b/content/blog/2025/ndstevenson-rings.md @@ -1,8 +1,7 @@ --- -title: "Rings by ND Stevenson" +title: "Link: Rings by ND Stevenson" slug: ndstevenson-rings date: 2025-08-28T07:43:45-06:00 -categories: Links tags: - Comics - LGBTQIA+ diff --git a/content/blog/2025/student-again.md b/content/blog/2025/student-again.md deleted file mode 100644 index 344b6d3..0000000 --- a/content/blog/2025/student-again.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "I'm a Student Again" -description: I started taking Japanese classes at CCSF. -slug: student-again -date: 2025-09-02 -tags: - - Life - - School - - japanese - - CCSF ---- - -I've been fortunate to take two trips to Japan over the last couple years. -Leading up to those trips, I picked up learning Japanese, attempting to build -some basic language skills for getting around. At first, I used [Duolingo][dja] -but recently switched to [Migaku][mja]. - -When I returned from our most recent trip, I decided to find a class so I can -practice speaking skills. [Community College of San Francisco][ccsf] has an -excellent program called "[Free City][fc]" that grants free tuition to residents -of the city. It also has [Japanese program][ccsfja]. So I enrolled in their -online Japanese 1A course. - -This is my first time taking formal classes since I graduated college. I'm -looking forward to learning in a more structured way again, and also getting a -chance to practice speaking with people rather than talking at my phone screen. - -[dja]: https://www.duolingo.com/course/ja/en/Learn-Japanese -[mja]: https://migaku.com/learn-japanese -[ccsf]: https://www.ccsf.edu -[ccsfja]: https://www.ccsf.edu/degrees-certificates/japanese -[fc]: https://www.ccsf.edu/free-city diff --git a/content/blog/2025/student-again/index.md b/content/blog/2025/student-again/index.md deleted file mode 100644 index 6ae066d..0000000 --- a/content/blog/2025/student-again/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "I'm a Student Again" -description: I started taking Japanese classes at CCSF. -slug: student-again -date: 2025-09-02 -resources: - - name: textbooks - src: textbooks.jpg - title: My textbooks - params: - alt: > - Three textbooks fanned out on a dark wood desktop. From left to - right: Japanese for Busy People Book 1, Genki Book 1 Workbook, and - Genki Book 1 Textbook. -tags: - - Life - - School - - japanese - - CCSF ---- - -{{< figures/image name=textbooks >}} - -I've been fortunate to take two trips to Japan over the last couple years. -Leading up to those trips, I picked up learning Japanese, attempting to build -some basic language skills for getting around. At first, I used [Duolingo][dja] -but recently switched to [Migaku][mja]. - -When I returned from our most recent trip, I decided to find a class so I can -practice speaking skills. [Community College of San Francisco][ccsf] has an -excellent program called "[Free City][fc]" that grants free tuition to residents -of the city. It also has [Japanese program][ccsfja]. So I enrolled in their -online Japanese 1A (Intro to Japanese) and in-person Japanese 10A (Beginning -Conversational Japanese) courses. - -The scheduling constraints are more complex this time around. Juggling the -responsibilities of work, childcare, volunteer work, and other hobbies is a -challenge. It makes me appreciate the freedom I had in my late teens and -early-twenties. - -Nevertheless, I'm looking forward to learning in a more structured way again, -and also getting a chance to practice speaking with real people rather than -talking to the AI bots in my phone. - -[dja]: https://www.duolingo.com/course/ja/en/Learn-Japanese -[mja]: https://migaku.com/learn-japanese -[ccsf]: https://www.ccsf.edu -[ccsfja]: https://www.ccsf.edu/degrees-certificates/japanese -[fc]: https://www.ccsf.edu/free-city diff --git a/content/blog/2025/student-again/textbooks.jpg b/content/blog/2025/student-again/textbooks.jpg deleted file mode 100644 index 35404f1..0000000 --- a/content/blog/2025/student-again/textbooks.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:417787d6746c3c5bcf8ac51578bc9308e8ef72a5a60ca382a37b1d55ce59d8bd -size 1378980 diff --git a/content/blog/2025/two-neat-websites-from-miriam.md b/content/blog/2025/two-neat-websites-from-miriam.md deleted file mode 100644 index 27f9305..0000000 --- a/content/blog/2025/two-neat-websites-from-miriam.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Two Neat Websites From Miriam" -date: 2025-09-23T10:16:55-07:00 -tags: - - Pottery - - Web Design ---- - -A couple neat websites I learned about from [Miriam](https://www.miriamsuzanne.com): - -* [Learn Pottery](https://learnpottery.com) offers online pottery lessons. Makes -me want to pick up throwing again. -* [Utopia.fyi](https://utopia.fyi) helps you develop font size and spacing scales -for responsive web design. I read about it in OddBird's recent blog post about -[Designing for User Font-size and Zoom][ob]. - -[ob]: https://www.oddbird.net/2025/07/22/size-preferences/ diff --git a/content/blog/2025/weeknotes-2025w38.md b/content/blog/2025/weeknotes-2025w38.md deleted file mode 100644 index ce1ba32..0000000 --- a/content/blog/2025/weeknotes-2025w38.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Notes on 2025W38" -slug: weeknotes-2025w38 -date: 2025-09-21 -categories: weeknotes -tags: - - Weeknotes - - Trans - - japan - - japan-tokyo - - Trains - - Yamanote - - uspol - - Travel - - Unions ---- - -I'm pretty behind on weeknotes again. - ------ - -It has been a truly awful few weeks for trans people in the US. I am worried for -myself and for every other trans person navigating the daily terror of the -political climate here. You are loved and valid, no matter what they say. -:heart: - ----- - -Someone [compiled all the station ditties](https://yamanot.es) along the -Yamanote line in Tōkyō. Via [Jonathan Wight][wight], though the link is now -dead. - ---- - -[Jimmy Kimmel was removed from the air][kimmel] by a combination of ABC, Disney, -and Nexstar over comments he made about Charlie Kirk. His comments were mild at -best, and his removal portends bad things for freedom of speech and a free press -in the US. - ---- - -The US seems poised to pass a country-wide [bathroom ban][bathrooms] for trans -people. It would deny trans people the right to use the toilets matching their -gender, and _also_ deny them access to toilets matching their birth sex, -effectively preventing trans people from using the bathroom in any public space. -If this passes, I don't think I will be able to travel to the UK for any reason -for the forseeable future. - -Sol Elias draws a comparison to the current [moral panic][panic] around trans -rights and the "crack baby" era of the 1980s and 1990s. - ---- - -The team behind the Diablo franchise at Blizzard has [unionized][diablo]. -Congrats to them! - -[wight]: https://mastodon.social/@schwa/115125526450662142 -[kimmel]: https://mastodon.social/@verge/115112175537370858 -[bathrooms]: https://www.liberalcurrents.com/britains-bathroom-ban/ -[panic]: https://scalawagmagazine.org/2025/08/freak-generations-the-moral-panic-playbook-from-crack-babies-to-trans-kids/ -[diablo]: https://mastodon.social/@verge/115112175537370858 diff --git a/content/blog/2026/thirty-eight/index.md b/content/blog/2026/thirty-eight/index.md deleted file mode 100644 index 6a44e0b..0000000 --- a/content/blog/2026/thirty-eight/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Thirty Eight" -date: 2026-01-14 -draft: true -tags: - - Me - - Birthdays ---- - -I'm turning thirty eight today! - -Neil Armstrong was 38 when he walked on the moon. (Buzz Aldrin was 39.) Jack -Swigert was 38 when he timed the 14 second burn that brought Apollo 13 back into -position for reentry to Earth. diff --git a/content/photos/2023/sunset-over-pajaro-dunes/index.md b/content/photos/2023/sunset-over-pajaro-dunes/index.md index beb585b..93c3822 100644 --- a/content/photos/2023/sunset-over-pajaro-dunes/index.md +++ b/content/photos/2023/sunset-over-pajaro-dunes/index.md @@ -2,7 +2,8 @@ title: "Sunset over Pajaro Dunes" linkTitle: Pajaro Sunset date: 2023-05-28T20:12:13-07:00 -tags: [Travel, Beaches] +categories: Travel +tags: ["Beaches"] --- {{< tess >}}, EJ, and I took a little weekend trip over Memorial Day this year diff --git a/content/photos/2025/bow-river-valley/index.md b/content/photos/2025/bow-river-valley/index.md deleted file mode 100644 index 0047a0b..0000000 --- a/content/photos/2025/bow-river-valley/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Bow River Valley" -date: 2025-09-07T12:06:49-07:00 -tags: - - Travel - - Alberta - - Canada - - Banff ---- - -The [Bow River](https://en.wikipedia.org/wiki/Bow_River) runs down from the -Rockies, feeding Banff, Canmore, and Calgary. In this photo, the valley runs -roughly northwest. It was taken from the top of the [Banff -Gondola](https://www.banffjaspercollection.com/attractions/banff-gondola/). diff --git a/content/photos/2025/bow-river-valley/website-bow-river-valley.0640.jpg b/content/photos/2025/bow-river-valley/website-bow-river-valley.0640.jpg deleted file mode 100644 index bf80115..0000000 --- a/content/photos/2025/bow-river-valley/website-bow-river-valley.0640.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:543db6db0ec98c85c19c3809054dd61bd17abc3871125aaab587d7ca667c6f5f -size 557092 diff --git a/content/photos/2025/drink-coca-cola/coca-cola-sign.jpg b/content/photos/2025/drink-coca-cola/coca-cola-sign.jpg deleted file mode 100644 index e5eaba1..0000000 --- a/content/photos/2025/drink-coca-cola/coca-cola-sign.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebc818a7fcad4a578e2a6eecb3f3980852fcde6487980380b02637dd3c929f62 -size 780897 diff --git a/content/photos/2025/drink-coca-cola/index.md b/content/photos/2025/drink-coca-cola/index.md deleted file mode 100644 index 88e5fdc..0000000 --- a/content/photos/2025/drink-coca-cola/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Drink Coca-Cola" -date: 2025-09-10T18:26:15-07:00 -tags: - - Urban - - Advertising - - San Francisco - - Coca-Cola ---- - -I was standing on a neighborhood street corner recently and spotted this sign -hiding behind a parked car across the street. When the car moved, I snapped this -photo. - -It's kind of a curious thing, isn't it? It's an advertisement for Coke on a -low traffic residential corner that seems to have been there for a long time. -(It looks old.) It got me wondering what that corner was like 50 or 100 years -ago. Clearly the owner of the building has maintained it too: the paint has been -touched up here and there, and someone added the green frame at some point. - diff --git a/content/photos/2025/drink-coca-cola/thumbnail.jpg b/content/photos/2025/drink-coca-cola/thumbnail.jpg deleted file mode 100644 index 9980186..0000000 --- a/content/photos/2025/drink-coca-cola/thumbnail.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3353b44de2d4143ddeb7dd1386dde6ddae9b248d8feeeab0719d5ff63d7f0ba -size 364298 diff --git a/content/photos/2025/harvest-moon/harvest-moon.png b/content/photos/2025/harvest-moon/harvest-moon.png deleted file mode 100644 index 8a80b4c..0000000 Binary files a/content/photos/2025/harvest-moon/harvest-moon.png and /dev/null differ diff --git a/content/photos/2025/harvest-moon/index.md b/content/photos/2025/harvest-moon/index.md deleted file mode 100644 index e81ead0..0000000 --- a/content/photos/2025/harvest-moon/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Harvest Moon" -date: 2025-10-06T22:00:00-07:00 -tags: - - Space - - Astrophotography - - Moon ---- - -Monday October 6 was the full moon. As the closest full moon to the [autumnal -equinox][], it is the [Harvest Moon][]. It also happened to be a [supermoon][], -making it slightly bigger in the night sky. - -I shot this photo from my back deck with my Fujifilm X-T5 and a Canon 100mm -macro prime[^1]. Amazingly, this is a handheld shot too. I couldn't find a -necessary bit of my tripod to mount the camera, so I made do. - -[^1]: Photography nerds will notice these are _not_ compatible components; I use - a Fringer EF-FX mount adapter for this. - -[autumnal equinox]: https://en.wikipedia.org/wiki/September_equinox -[Harvest Moon]: https://en.wikipedia.org/wiki/Full_moon#Harvest_moon -[supermoon]: https://science.nasa.gov/moon/supermoons/ diff --git a/content/photos/2025/laits-go/index.md b/content/photos/2025/laits-go/index.md deleted file mode 100644 index a9f75c5..0000000 --- a/content/photos/2025/laits-go/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Lait's Go" -date: 2025-08-27T18:00:41-06:00 -tags: - - Travel - - Puns - - Milk ---- - -Spotted in a small café at the top of Sulphur Mountain in Banff, Alberta: a -delightful bilingual pun. In English, this milk is called "Milk 2 Go". In -French, it's called "Lait's Go". diff --git a/content/photos/2025/laits-go/laits-go.jpg b/content/photos/2025/laits-go/laits-go.jpg deleted file mode 100644 index 9800790..0000000 --- a/content/photos/2025/laits-go/laits-go.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:279144af6b160e6cfca33bdaa8eef58ea327c808e9c197160ee32eb89210bca6 -size 685432 diff --git a/content/photos/2025/lake-louise/index.md b/content/photos/2025/lake-louise/index.md deleted file mode 100644 index 9906a17..0000000 --- a/content/photos/2025/lake-louise/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Lake Louise" -date: 2025-08-27T10:15:06-06:00 -draft: true -tags: - - Travel - - Nature - - Lake Louise - - Alberta - - Canada ---- - -Some friends and I had the chance to travel to [Lake Louise][] this summer. It's -stunningly blue -- unlike any body of water I've ever seen -- and surrounded by -picturesque mountains. We had only a few hours here so we did a short hike -around the lake, and then headed to Moraine Lake. - -[Lake Louise]: https://www.banfflakelouise.com diff --git a/content/photos/2025/lake-louise/lake-louise.jpg b/content/photos/2025/lake-louise/lake-louise.jpg deleted file mode 100644 index 03573af..0000000 --- a/content/photos/2025/lake-louise/lake-louise.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a44dc55905599aefd486145c8b34609979c65f9f18ab53e3489309806884c91e -size 1036892 diff --git a/content/photos/2025/lake-louise/thumbnail.jpg b/content/photos/2025/lake-louise/thumbnail.jpg deleted file mode 100644 index 31f917e..0000000 --- a/content/photos/2025/lake-louise/thumbnail.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4af8c69dc4d56ec2e9b0bbc0692703ba6cc96afd23b9b38f9a2feaf9e0453f0 -size 224720 diff --git a/content/photos/2025/mushrooms/index.md b/content/photos/2025/mushrooms/index.md deleted file mode 100644 index d2d92fa..0000000 --- a/content/photos/2025/mushrooms/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Mushrooms" -date: 2025-08-27T09:55:45-06:00 -draft: true -tags: - - Nature - - Mushrooms - - Fungi - - Lake Louise - - Alberta - - Canada ---- - -A small colony of mushrooms growing on a stump. Found at Lake Louise, Alberta, -Canada. diff --git a/content/photos/2025/mushrooms/mushrooms.jpg b/content/photos/2025/mushrooms/mushrooms.jpg deleted file mode 100644 index 73a0aaf..0000000 --- a/content/photos/2025/mushrooms/mushrooms.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:136f13e4a42d4b00734a1beb03ff021867fd4f5715c1a5211467a18bf65aa296 -size 1869246 diff --git a/content/tags/eaoc/_index.md b/content/tags/eaoc/_index.md deleted file mode 100644 index d5330a3..0000000 --- a/content/tags/eaoc/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Erin Anne O'Connor -linkTitle: EAOC -slug: eaoc ---- diff --git a/content/tags/uspol/_index.md b/content/tags/uspol/_index.md deleted file mode 100644 index 8caccc6..0000000 --- a/content/tags/uspol/_index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: US Politics ---- diff --git a/content/tweets/_content.gotmpl.tmp b/content/tweets/_content.gotmpl.tmp new file mode 100644 index 0000000..c8f07df --- /dev/null +++ b/content/tweets/_content.gotmpl.tmp @@ -0,0 +1,42 @@ +{{/* vim: ft=gohtmltmpl: */}} + +{{ $tweets := slice }} +{{ with resources.Get "twitter/tweets.json" }} + {{ with . | transform.Unmarshal }} + {{ $tweets = . }} + {{ end }} +{{ end }} + +{{ range $tweets }} + {{ $tweet := .tweet }} + + {{ + $content := dict + "mediaType" "text/markdown" + "value" (partial "twitter/assembleTweetMarkdown.html" $tweet) + }} + + {{ $creationDate := partial "twitter/parseCreatedAtDate.html" $tweet.created_at }} + {{ $title := printf "Tweet on %s" (time.Format "2 January 2005" $creationDate) }} + {{ $path := printf "%s/%s" $creationDate.Year $tweet.id_str }} + + {{ $dates := dict "date" $creationDate }} + + {{ + $params := dict + "favoriteCount" $tweet.favorite_count + "retweetCount" $tweet.retweet_count + }} + + {{ + $page := dict + "title" $title + "dates" $dates + "content" $content + "kind" "page" + "params" $params + "path" $path + }} + + {{ $.AddPage $page }} +{{ end }} diff --git a/content/tweets/_index.md b/content/tweets/_index.md new file mode 100644 index 0000000..dc31a57 --- /dev/null +++ b/content/tweets/_index.md @@ -0,0 +1,3 @@ +--- +title: Tweets +--- diff --git a/content/uses/index.tok.md b/content/uses/index.tok.md deleted file mode 100644 index 7a04568..0000000 --- a/content/uses/index.tok.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: "mi kepeken e ni" -draft: true -toc: open ---- - -## Tech - -### Hardware - -[Apple M2 MacBook Air from 2022](https://www.apple.com/macbook-air-13-and-15-m2/) -: mi olin e ilo sona ni. tenpo pini la mi olin e ilo sona ante. ilo sona ante en -ilo sona ni li MacBook Air. tenpo ale la mi jo e ilo sona ante. kin la tenpo ale -la mi jo e ilo sona ni. - -[Apple Studio Display](https://www.apple.com/studio-display/) -: I was on the fence about a Cinema Display for a long time. I ordered and -canceled three times. Ultimately I gave in, and I'm quite happy with it. It's -mounted on a VESA arm attached to my desktop. - -### Software - -#### Development - -[Neovim](https://neovim.io/) -: tenpo suli la, mi kepeken e `vim`. ona li ilo nanpa wan pi pali lipu mi. - -[Visual Studio Code](https://code.visualstudio.com/) -: tenpo sike mute la mi alasa e VSCode. ona li jo e ijo pona mute. - -[Xcode](https://developer.apple.com/xcode/) -: mi pali lon [kulupu kili][apple]. Xcode li ilo pi pali lipu tawa. lon kulupu -kili la mi kepeken e Xcode. lon tomo mi, mi kepeken kin e Xcode. Xcode li pona. - -[Fork](https://fork.dev) -: A GUI client for `git`. I think Fork has totally changed how I use `git`. I -still use the command line for many things, but working through diffs, staging -changes, and even rebasing is so much easier in a GUI. - -#### Terminal - -[Terminal.app](https://support.apple.com/guide/terminal/welcome/mac) -: macOS's built in terminal emulator is solid. The only thing I miss from it now -and then is "true color" support, and that's only when I try to install a new -color theme in Neovim and everything goes haywire. - -[Zsh](https://www.zsh.org) -: I've been using Zsh since before it was cool. My shell config is full of -bespoke tweaks, including a prompt theme I'm rather proud of. - -#### Hosting - -[Digital Ocean](https://www.digitalocean.com) -: DO has hosted my VPS for a number of years. I moved there from Linode because -I wanted to run FreeBSD on my server. - -[FreeBSD](https://www.freebsd.org) -: My server OS of choice. It's secure, simple, and resilient, and I appreciate -the less-encumbered BSD license. - -[FastMail](https://www.fastmail.com/) -: I've used FastMail for years now as my email host. Their annual fees are quite -modest and they have a great feature set including a Sieve email filter editor, -and Masked Email for genearating ad hoc email addresses. I've never had a -problem with uptime, and the few times I've contacted support, they've been -helpful. - -[Hugo](https://gohugo.io) -: This whole website is built with Hugo. - -### Mobile - -[Doppler](https://brushedtype.co/doppler/) -: File-based music player. - -[Ivory](https://tapbots.com/ivory/) -: My Mastodon client of choice for macOS and iOS. - -[Overcast](https://overcast.fm/podcasts) -: My podcast player of choice. - -[Reeder](https://www.reederapp.com) -: RSS feed organizer and reader. I'm doing a lot more RSS these days. - -[Transit](https://transitapp.com) -: Helps me stay on top of bus schedules in San Francisco. - -## Music - -[Logic Pro](https://www.apple.com/logic-pro/) -: Apple's DAW is full of features and plugins (far more than I could ever use) -and it's hard to beat the corporate discount, much as I also love Ableton. - -[Shure SM7B](https://www.shure.com/en-US/products/microphones/sm7b) -: The SM7 is an iconic mic, and has been the go-to for voice actors, podcasters, -and musicians for 50 years. The excellent podcast Twenty Thousand Hertz did a -great [deep dive episode][20ksm7] on its history and place in the audio -industry. I have one on my desk at home, and it makes me sound great on work -video calls, and the occasional audio recording. - -[Moog Matriarch](https://www.moogmusic.com/synthesizers?type=202) -: I'm a bit of a Moog fangirl, and this might be my favorite of their synths. -It's just hard to beat the sound of a Moog. - -[Kawaii CA-65](https://kawaius.com/product/ca65/) -: I've been playing piano since I was seven years old. A digital piano is -perfect for the small apartments I've called home. This one has a fantastic -realistic action and it sounds great. - -## Coffee - -[Baratza Encore](https://www.baratza.com/product/encoretm-zcg485) -: It's affordable and does a pretty good job. - -[Kalita Wave](https://kalitausa.com/products/kalita-wave-185-stainless-steel-coffee-dripper) -: The Kalita is probably the easist single serve pour over dripper I've used. - -[Chemex](https://www.chemexcoffeemaker.com/six-cup-classic-series-coffeemaker.html) -: If I'm making coffee for more than just me, the Chemex is the biggest pour -over vessel I have. Makes yummy coffee too. - -## Gaming - -[Nintendo Switch](https://www.nintendo.com/us/switch/) -: Most of my gaming happens here. I play a lot of Mario Kart online with -friends, and I'm a big fan of both of the major Legend of Zelda titles that have -come out for it: Breath of the Wild and Tears of the Kingdom. - -[PlayStation 5](https://www.playstation.com/en-us/ps5/) -: I also have a PS5. I've played a ton of Horizon: Zero Dawn and the new Final -Fantasy 7 games. - -[Analogue Pocket](https://www.analogue.co/pocket) -: When I want to play my stock of Game Boy games, this thing is great. - -[apple]: https://www.apple.com -[vscode-vim]: https://marketplace.visualstudio.com/items?itemName=vscodevim.vim -[20ksm7]: https://www.20k.org/episodes/sm7 diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..d9e75ac --- /dev/null +++ b/deploy.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env zsh +# Deploy erynwells.me to my web root +# Eryn Wells + +print -P "%BFiltering .DS_Store files%b" +find . -name '.DS_Store' -print -delete + +print -P "%BGenerating site%b" +hugo + +echo +print -P "%BRsyncing site to nutmeg.erynwells.me%b" +rsync -avz --no-times --no-perms --delete public/ \ + eryn@nutmeg.erynwells.me:/srv/www/erynwells.me/html diff --git a/i18n/en.yaml b/i18n/en.yaml index 11d2838..1d98149 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -11,3 +11,6 @@ nethackScore: Score nethackDungeonLevel: Dungeon Level nethackCharacterLevel: Character Level nethackHP: HP + +favorites: Favorites +retweets: Retweets diff --git a/layouts/shortcodes/abbr.html b/layouts/shortcodes/abbr.html index 831c7f8..aa4e645 100644 --- a/layouts/shortcodes/abbr.html +++ b/layouts/shortcodes/abbr.html @@ -1 +1 @@ -{{ .Inner }}{{- "" -}} +{{ .Inner }} diff --git a/layouts/tweets/list.html b/layouts/tweets/list.html new file mode 100644 index 0000000..07ecbc5 --- /dev/null +++ b/layouts/tweets/list.html @@ -0,0 +1,14 @@ +{{ define "main" }} +
+ + + {{ $paginator := .Paginate .Pages.ByPublishDate.Reverse 100 }} + {{ range $paginator.Pages }} + {{ .Render "page_summary" }} + {{ end }} + + {{ partial "pagination.html" . }} +
+{{ end }} diff --git a/layouts/tweets/page_summary.html b/layouts/tweets/page_summary.html new file mode 100644 index 0000000..4cf8edf --- /dev/null +++ b/layouts/tweets/page_summary.html @@ -0,0 +1,18 @@ +
+ {{ .Content }} + + {{- if .Date -}} + {{/* TODO: Include time in this date */}} + {{- partial "page/date.html" (dict "page" . "style" "datetime") -}} + {{- end }} + +
+ {{ T "favorites" }} + {{ .Params.favoriteCount }} +
+ +
+ {{ T "retweets" }} + {{ .Params.retweetCount }} +
+
diff --git a/scripts/erynwells_me/deployment.py b/scripts/erynwells_me/deployment.py deleted file mode 100644 index 2cc4671..0000000 --- a/scripts/erynwells_me/deployment.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python3 -# Eryn Wells - -import argparse -import datetime -import subprocess -from typing import List -from .scripting import Command - - -DATE_FORMAT = "%Y-%m-%d" - - -class DeploymentCommand(Command): - @property - def help(self) -> str: - return 'Deployment tools' - - def add_arguments(self, parser: argparse.ArgumentParser): - commands = parser.add_subparsers(title="Deployment", required=True) - - deployment_command = commands.add_parser( - 'next-tag', - help='Calculate the next deployment tag for a given date, examining all other tags for that day' - ) - deployment_command.add_argument( - '--date', '-d', - type=self.__class__.parse_date_argument, - default=datetime.date.today(), - help="date to calculate a new deployment tag for (default: today)" - ) - deployment_command.set_defaults(handler=self.handle_next_deployment_tag_command) - - @staticmethod - def parse_date_argument(date_string: str) -> datetime.date: - return datetime.datetime.strptime(date_string, DATE_FORMAT).date() - - def handle_next_deployment_tag_command(self, args: argparse.Namespace): - next_deployment_tag = deployment_tag_for_date(args.date) - print(next_deployment_tag) - -def deployment_tag_for_date(date: datetime.date) -> str: - formatted_date = date.strftime(DATE_FORMAT) - - def deploy_tag_filter(tag): - return tag.startswith("deploy-") and formatted_date in tag - - filtered_tags = sorted(filter(deploy_tag_filter, git_tags())) - - if len(filtered_tags) == 0: - return f"deploy-{formatted_date}-01" - else: - last_tag = filtered_tags[-1] - components = last_tag.split("-") - if len(components) == 5: - # A previous numbered deployment. Add one to the last deployment - # number. - deployment_number = int(components[-1]) + 1 - return f"deploy-{formatted_date}-{deployment_number:02}" - else: - # An old style deployment tag that doesn't have a number. There - # should only ever be one of these. - assert len(filtered_tags) == 1 - return f"deploy-{formatted_date}-02" - - -def git_tags() -> List[str]: - return subprocess.check_output( - "git tag -l", - shell=True, - encoding="utf-8" - ).splitlines() diff --git a/scripts/erynwells_me/paths.py b/scripts/erynwells_me/paths.py index 5b7f51b..e20abc2 100644 --- a/scripts/erynwells_me/paths.py +++ b/scripts/erynwells_me/paths.py @@ -4,33 +4,16 @@ import os.path as osp -def root_dir() -> str: - '''Return the path to the root of the repository.''' - return osp.normpath(osp.join(osp.dirname(__file__), '..', '..')) - - -def assets_path() -> str: - '''Return the path to the assets directory.''' - path = osp.join(root_dir(), 'assets') - return path - - def content_path() -> str: '''Return the path to the content directory.''' - path = osp.join(root_dir(), 'content') + path = osp.abspath(osp.join(osp.dirname(__file__), '..', '..', 'content')) + assert osp.isdir(path) return path def blog_path() -> str: - '''Return the path to the blog content directory.''' return osp.join(content_path(), 'blog') def photos_path() -> str: - '''Return the path to the photos content directory.''' return osp.join(content_path(), 'photos') - - -content_dir = content_path -blog_dir = blog_path -photos_dir = photos_path diff --git a/scripts/erynwells_me/scripting/command.py b/scripts/erynwells_me/scripting/command.py index 3e43e39..8014cb5 100644 --- a/scripts/erynwells_me/scripting/command.py +++ b/scripts/erynwells_me/scripting/command.py @@ -20,5 +20,5 @@ class Command: def help(self) -> str: return '' - def add_arguments(self, parser: argparse.ArgumentParser): + def add_arguments(self, _: argparse.ArgumentParser): raise NotImplementedError() diff --git a/scripts/erynwells_me/weeknotes.py b/scripts/erynwells_me/weeknotes.py index 4115f2b..a014dd4 100644 --- a/scripts/erynwells_me/weeknotes.py +++ b/scripts/erynwells_me/weeknotes.py @@ -12,7 +12,7 @@ from .scripting import Command class WeeknotesCommand(Command): @staticmethod - def weeknotes_filename(year: str | int, week: str | int) -> str: + def weeknotes_filename(year: str, week: str) -> str: return f'weeknotes-{year}w{week}.md' @staticmethod @@ -26,7 +26,7 @@ class WeeknotesCommand(Command): week_number_str = next_sunday.strftime('%V') return blog.post_path(WeeknotesCommand.weeknotes_filename( - year, + str(year), week_number_str )) diff --git a/scripts/new-photo-post b/scripts/new-photo-post index bb04719..b36ba18 100755 --- a/scripts/new-photo-post +++ b/scripts/new-photo-post @@ -14,23 +14,12 @@ from erynwells_me.metadata import slugify from erynwells_me.paths import photos_path -def date_argument(value: str) -> datetime.datetime: - parsed_date = datetime.datetime.fromisoformat(value) - - if not parsed_date.tzinfo: - local_timezone = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo - parsed_date = datetime.datetime.combine(parsed_date.date(), parsed_date.time(), local_timezone) - - return parsed_date - - def parse_args(argv, *a, **kw): parser = argparse.ArgumentParser(*a, **kw) parser.add_argument('-e', '--edit', action='store_true') parser.add_argument('-n', '--dry-run', action='store_true') parser.add_argument('-t', '--title') parser.add_argument('-s', '--slug') - parser.add_argument('-d', '--date', type=date_argument) parser.add_argument('--dump-exif', action='store_true') parser.add_argument('photos', nargs='+') args = parser.parse_args(argv) @@ -40,7 +29,7 @@ def parse_args(argv, *a, **kw): def main(argv): args = parse_args(argv[1:], prog=argv[0]) - post_date: Optional[datetime.datetime] = args.date + earliest_exif_date: Optional[datetime.datetime] = None for index, photo in enumerate(args.photos): print(f'image\t\t{photo}') @@ -51,20 +40,14 @@ def main(argv): continue raw_exif = image._getexif() - friendly_exif = {} - if raw_exif: - friendly_exif = {TAGS[k]: v for k, v in raw_exif.items() if k in TAGS} + friendly_exif = {TAGS[k]: v for k, v in raw_exif.items() if k in TAGS} - photo_date = None - if not args.date: - try: - date_string = f'{friendly_exif["DateTime"]} {friendly_exif["OffsetTime"]}' - photo_date = datetime.datetime.strptime(date_string, '%Y:%m:%d %H:%M:%S %z') - except KeyError: - photo_date = datetime.datetime.strptime(friendly_exif["DateTime"], '%Y:%m:%d %H:%M:%S') - else: - photo_date = args.date - print(f'capture-time\t{photo_date.isoformat()}') + try: + date_string = f'{friendly_exif["DateTime"]} {friendly_exif["OffsetTime"]}' + exif_date = datetime.datetime.strptime(date_string, '%Y:%m:%d %H:%M:%S %z') + except KeyError: + exif_date = datetime.datetime.strptime(friendly_exif["DateTime"], '%Y:%m:%d %H:%M:%S') + print(f'capture-time\t{exif_date.isoformat()}') iso_rating = friendly_exif.get('ISOSpeedRatings') if iso_rating: @@ -83,24 +66,23 @@ def main(argv): if exposure_time: print(f'exposure-time\t{exposure_time}') - if not post_date or photo_date < post_date: - post_date = photo_date + if not earliest_exif_date or exif_date < earliest_exif_date: + earliest_exif_date = exif_date if index < len(args.photos) - 1: print() - if not post_date: - post_date = datetime.datetime.now() + if not earliest_exif_date: + earliest_exif_date = datetime.datetime.now() - year = post_date.year - month = post_date.month + year = earliest_exif_date.year + month = earliest_exif_date.month if args.slug: name = args.slug elif args.title: name = slugify(args.title) else: - photo = args.photos[0] name = osp.splitext(osp.basename(photo))[0] post_path_year = os.path.join(photos_path(), f'{year:04}', name) @@ -118,7 +100,7 @@ def main(argv): post_path = post_path_year try: - hugo_command = ['hugo', 'new', '--clock', post_date.isoformat(), post_path] + hugo_command = ['hugo', 'new', '--clock', earliest_exif_date.isoformat(), post_path] if not args.dry_run: result = subprocess.run(hugo_command) result.check_returncode() diff --git a/scripts/website b/scripts/website index e80b933..958d748 100755 --- a/scripts/website +++ b/scripts/website @@ -6,17 +6,13 @@ A Python interface to my personal website, Erynwells.me. ''' import argparse -import os -import os.path as osp from typing import List from erynwells_me.scripting import Command from erynwells_me.weeknotes import WeeknotesCommand -from erynwells_me.deployment import DeploymentCommand COMMANDS: List[Command] = [ WeeknotesCommand(), - DeploymentCommand(), ] @@ -33,14 +29,7 @@ def parse_args(commands: List[Command], argv, *a, **kw): def main(argv): - program_name = osp.basename(argv[0]) - args = parse_args(COMMANDS, argv[1:], prog=program_name) - - scripts_dir = osp.dirname(__file__) - repo_root_dir = osp.normpath(osp.join(scripts_dir, '..')) - if os.getcwd() != repo_root_dir: - os.chdir(repo_root_dir) - + args = parse_args(COMMANDS, argv[1:], prog=argv[0]) return args.handler(args) diff --git a/themes/termlite b/themes/termlite index 89cde7a..4c101a5 160000 --- a/themes/termlite +++ b/themes/termlite @@ -1 +1 @@ -Subproject commit 89cde7aefb96525c09f51ea6318aa666b31f8a98 +Subproject commit 4c101a552eb10ed87a5bec5bee741e65aa80daec