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/config/_default/permalinks.yaml b/config/_default/permalinks.yaml index efcaf6c..8efe757 100644 --- a/config/_default/permalinks.yaml +++ b/config/_default/permalinks.yaml @@ -1,3 +1,2 @@ blog: blog/:year/:month/:slug/ photos: photos/:year/:month/:slug/ -tweets: tweets/:year/:month/:slug/ 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/2025/america-tips-into-fascism.md b/content/blog/2025/america-tips-into-fascism.md index a1f5d9b..2f39608 100644 --- a/content/blog/2025/america-tips-into-fascism.md +++ b/content/blog/2025/america-tips-into-fascism.md @@ -1,7 +1,8 @@ --- -title: "Link: America Tips Into Fascism" +title: "America Tips Into Fascism by Garrett Graff" slug: america-tips-into-fascism date: 2025-08-25T22:31:15-06:00 +categories: Links tags: - Politics - USA diff --git a/content/blog/2025/i-am-an-ai-hater.md b/content/blog/2025/i-am-an-ai-hater.md new file mode 100644 index 0000000..b7e3e14 --- /dev/null +++ b/content/blog/2025/i-am-an-ai-hater.md @@ -0,0 +1,18 @@ +--- +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 850f89d..72e7a7d 100644 --- a/content/blog/2025/ndstevenson-rings.md +++ b/content/blog/2025/ndstevenson-rings.md @@ -1,7 +1,8 @@ --- -title: "Link: Rings by ND Stevenson" +title: "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 new file mode 100644 index 0000000..344b6d3 --- /dev/null +++ b/content/blog/2025/student-again.md @@ -0,0 +1,32 @@ +--- +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/photos/2023/sunset-over-pajaro-dunes/index.md b/content/photos/2023/sunset-over-pajaro-dunes/index.md index 93c3822..beb585b 100644 --- a/content/photos/2023/sunset-over-pajaro-dunes/index.md +++ b/content/photos/2023/sunset-over-pajaro-dunes/index.md @@ -2,8 +2,7 @@ title: "Sunset over Pajaro Dunes" linkTitle: Pajaro Sunset date: 2023-05-28T20:12:13-07:00 -categories: Travel -tags: ["Beaches"] +tags: [Travel, Beaches] --- {{< tess >}}, EJ, and I took a little weekend trip over Memorial Day this year diff --git a/content/photos/2025/laits-go/index.md b/content/photos/2025/laits-go/index.md new file mode 100644 index 0000000..a9f75c5 --- /dev/null +++ b/content/photos/2025/laits-go/index.md @@ -0,0 +1,12 @@ +--- +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 new file mode 100644 index 0000000..9800790 --- /dev/null +++ b/content/photos/2025/laits-go/laits-go.jpg @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..9906a17 --- /dev/null +++ b/content/photos/2025/lake-louise/index.md @@ -0,0 +1,18 @@ +--- +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 new file mode 100644 index 0000000..03573af --- /dev/null +++ b/content/photos/2025/lake-louise/lake-louise.jpg @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..31f917e --- /dev/null +++ b/content/photos/2025/lake-louise/thumbnail.jpg @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..d2d92fa --- /dev/null +++ b/content/photos/2025/mushrooms/index.md @@ -0,0 +1,15 @@ +--- +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 new file mode 100644 index 0000000..73a0aaf --- /dev/null +++ b/content/photos/2025/mushrooms/mushrooms.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:136f13e4a42d4b00734a1beb03ff021867fd4f5715c1a5211467a18bf65aa296 +size 1869246 diff --git a/content/tweets/_content.gotmpl.tmp b/content/tweets/_content.gotmpl.tmp deleted file mode 100644 index c8f07df..0000000 --- a/content/tweets/_content.gotmpl.tmp +++ /dev/null @@ -1,42 +0,0 @@ -{{/* 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 deleted file mode 100644 index dc31a57..0000000 --- a/content/tweets/_index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -title: Tweets ---- diff --git a/i18n/en.yaml b/i18n/en.yaml index 1d98149..11d2838 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -11,6 +11,3 @@ nethackScore: Score nethackDungeonLevel: Dungeon Level nethackCharacterLevel: Character Level nethackHP: HP - -favorites: Favorites -retweets: Retweets diff --git a/layouts/tweets/list.html b/layouts/tweets/list.html deleted file mode 100644 index 07ecbc5..0000000 --- a/layouts/tweets/list.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ 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 deleted file mode 100644 index 4cf8edf..0000000 --- a/layouts/tweets/page_summary.html +++ /dev/null @@ -1,18 +0,0 @@ -
- {{ .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 new file mode 100644 index 0000000..2cc4671 --- /dev/null +++ b/scripts/erynwells_me/deployment.py @@ -0,0 +1,72 @@ +#!/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/scripting/command.py b/scripts/erynwells_me/scripting/command.py index 8014cb5..3e43e39 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, _: argparse.ArgumentParser): + def add_arguments(self, parser: argparse.ArgumentParser): raise NotImplementedError() diff --git a/scripts/website b/scripts/website index 958d748..356a985 100755 --- a/scripts/website +++ b/scripts/website @@ -9,10 +9,12 @@ import argparse 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(), ] diff --git a/themes/termlite b/themes/termlite index 4c101a5..d158b0d 160000 --- a/themes/termlite +++ b/themes/termlite @@ -1 +1 @@ -Subproject commit 4c101a552eb10ed87a5bec5bee741e65aa80daec +Subproject commit d158b0db8ebaaad35c5ed7fea31db7bee930eb03