diff --git a/content/.obsidian/app.json b/content/.obsidian/app.json index a4e423f2..b8df249f 100644 --- a/content/.obsidian/app.json +++ b/content/.obsidian/app.json @@ -12,6 +12,21 @@ "NWYC", "VSA", "Flamework", - "yoink" - ] + "yoink", + "NSYNC", + "GPAs" + ], + "pdfExportSettings": { + "pageSize": "Letter", + "landscape": false, + "margin": "0", + "downscalePercent": 80 + }, + "promptDelete": false, + "tabSize": 4, + "useTab": false, + "smartIndentList": false, + "strictLineBreaks": false, + "showLineNumber": false, + "rightToLeft": false } \ No newline at end of file diff --git a/content/.obsidian/daily-notes.json b/content/.obsidian/daily-notes.json index 3ea86bfd..55ad354a 100644 --- a/content/.obsidian/daily-notes.json +++ b/content/.obsidian/daily-notes.json @@ -1,4 +1,4 @@ { - "folder": "notes/dailies", + "folder": "writing/notes/periodic/dailies", "template": "templates/daily.template" } \ No newline at end of file diff --git a/content/assets/Pasted image 20240417110140.png b/content/assets/Pasted image 20240417110140.png new file mode 100644 index 00000000..ad3a0cfc Binary files /dev/null and b/content/assets/Pasted image 20240417110140.png differ diff --git a/content/assets/Pasted image 20240421164430.png b/content/assets/Pasted image 20240421164430.png new file mode 100644 index 00000000..0e855547 Binary files /dev/null and b/content/assets/Pasted image 20240421164430.png differ diff --git a/content/assets/Pasted image 20240421164456.png b/content/assets/Pasted image 20240421164456.png new file mode 100644 index 00000000..43aa0e92 Binary files /dev/null and b/content/assets/Pasted image 20240421164456.png differ diff --git a/content/assets/Pasted image 20240421170010.png b/content/assets/Pasted image 20240421170010.png new file mode 100644 index 00000000..80f0bb76 Binary files /dev/null and b/content/assets/Pasted image 20240421170010.png differ diff --git a/content/assets/Pasted image 20240421173135.png b/content/assets/Pasted image 20240421173135.png new file mode 100644 index 00000000..4733de84 Binary files /dev/null and b/content/assets/Pasted image 20240421173135.png differ diff --git a/content/notes/dailies/2024-03-19.md b/content/notes/dailies/2024-03-19.md deleted file mode 100644 index 044615ac..00000000 --- a/content/notes/dailies/2024-03-19.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "2024-03-19" -date: "2024-03-19" -updated: "2024-03-19" -tags: - - notes/daily -draft: false ---- -⇐ [[2024-03-18]] | [[2024-03-20]] β‡’ - -## Today's Plan - -> - **[[2024-03-19#Morning Block|Morning Block]]**: Morning work session, typically 9am - 12pm -> - **[[2024-03-19#Afternoon Block|Afternoon Block]]**: Afternoon work session - usually the bulk of work. 12pm - 5pm -> - **[[2024-03-19#Evening Block|Evening Block]]**: Evening work session for CGC-related work, 5pm - ??? - -### Morning Block - -#### Cloud Testing - -In order to catch the spunky, sexy, broad amalgamation of ways that infrastructure can fuck up in The Cloudβ„’, it'll be nice to have a cloud-based test suite that logs back to monitoring channels - -- **PLAN:** - - [ ] **ADD**: Required networking changes to VPC - - [ ] **ADD**: Deploy & test networking changes to VPC - - [ ] Create Terraform infrastructure for new ECS entry -- **DELIVERABLES:** - - [ ] Tests running (successfully or not) in cloud - -### Afternoon Block - -#### Final Discord Webhook Work - -With access to the GET REST APIs for Discord, now (through a bot - [[2024-03-17#^d8dd81|not thrilled]], but w/e), I can do the final steps for deployment logging using Discord Forum channels - -- **PLAN:** - - [ ] Add webhook to internal C# library - - [ ] Create new `ILogger` sub-interface - - [ ] Create batcher - - [ ] Create sender - - [ ] Inject logic into NUnit `ITrace` -- **DELIVERABLES:** - - [ ] Threads created through `NUnit ITrace` - -### Evening Block - -#### Shop Highlight (for real, this time). - -This has been backburn'd for *way* too long. I *will* send this today, before I do *anything* else with CGC time. - -- **PLAN:** - - [ ] Review note last state - - [ ] Finish first draft - - [ ] Edit it (probably with AI. there is a time and a place for [[binglish]], and this is it.) - - [ ] Subject my partner to my shitty writing for proofread. -- **DELIVERABLES:** - - [ ] Highlight note sent as attachment & markdown. - -## Today's Report - -> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading - -N/A - -[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. -[^2]: https://discourse.pi-hole.net/t/commonly-whitelisted-domains/212 - commonly whitelisted domains for PiHole to avoid weird service shenanigans -[^3]: https://x.com/Josh_Merfeld/status/1769562704262660124?s=20 - some stats stuff around coin flip... falacies? that i want to take a look at later \ No newline at end of file diff --git a/content/notes/scratch/mushroom.md b/content/notes/scratch/mushroom.md deleted file mode 100644 index 619c6d5c..00000000 --- a/content/notes/scratch/mushroom.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: mushroom -date: 2024-03-25 -updated: 2024-03-05 -tags: - - notes/scratch -draft: false ---- - -[mushroom. πŸ„](http://xn--ei8h.chaoticgood.computer/) \ No newline at end of file diff --git a/content/notes/time-tracking.md b/content/notes/time-tracking.md deleted file mode 100644 index 3d92d596..00000000 --- a/content/notes/time-tracking.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Some initial thoughts about time tracking -date: 2024-02-27 -updated: 2024-02-27 -tags: - - goblin-slaying - - notes -draft: false ---- -Time-tracking is one of the tools I've picked up during my [[season-of-rhythm|Year of Rhythm]] and [[goblin-slaying]]. I'll probably write about it more, here, later. diff --git a/content/tags/mentoring/professional-dev.md b/content/tags/mentoring/professional-dev.md new file mode 100644 index 00000000..2262d475 --- /dev/null +++ b/content/tags/mentoring/professional-dev.md @@ -0,0 +1,4 @@ +--- +title: Resume Prep & Development +tags: +--- diff --git a/content/tags/projects/cgc/cgc-backstage.md b/content/tags/projects/cgc/cgc-backstage.md new file mode 100644 index 00000000..83efeb00 --- /dev/null +++ b/content/tags/projects/cgc/cgc-backstage.md @@ -0,0 +1,37 @@ +--- +title: CGC Backstage +date: 2024-04-21 +tags: + - projects/cgc/cgc-backstage +draft: false +--- +## Overview + +In a bit of an overlap of dayjob and CGC work, I'm working on spinning up a CGC instance of [Backstage](https://backstage.io) for business management. This has a benefit for both myself and others that work on CGC-flavor projects with me. + +Additionally, this'll be hosted (initially) on the Allytron box β€” some extra #projects/personal/homelab work, for flavor! + +## Deliverables + +1. CGC instance of Backstage, connected to the organization, with tree structure in place +2. Portability - particularly, ability to port over to #dayjob work +3. One scaffold of a plugin + +## Tasks + +### Upfront + +- [x] #task #projects/cgc/cgc-backstage Draft initial project reqs [completion:: 2024-04-21] +- [ ] #task #projects/cgc/cgc-backstage Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/cgc/cgc-backstage") + AND file.name != "cgc-backstage" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/cgc/cgc-gatsby-template.md b/content/tags/projects/cgc/cgc-gatsby-template.md new file mode 100644 index 00000000..ebcdcde9 --- /dev/null +++ b/content/tags/projects/cgc/cgc-gatsby-template.md @@ -0,0 +1,16 @@ +--- +title: CGC Gatsby Template +date: 2024-04-14 +tags: + - projects/cgc/cgc-gatsby-template + - engineering/typescript +draft: false +--- +## References + +```dataview +TASK +WHERE contains(tags, "#projects/cgc/cgc-misc") + AND file.name != "cgc-misc" +GROUP BY file.link +``` \ No newline at end of file diff --git a/content/tags/projects/cgc/cgc-misc.md b/content/tags/projects/cgc/cgc-misc.md new file mode 100644 index 00000000..8d1b99b4 --- /dev/null +++ b/content/tags/projects/cgc/cgc-misc.md @@ -0,0 +1,36 @@ +--- +title: ~ +date: 2024-04-17 +tags: + - projects/cgc/cgc-misc +draft: false +--- +## Overview + +TODO + +## Deliverables + +1. +2. +3. + +## Tasks + +### Upfront + +- [ ] #task #projects/dayjob/dayjob-misc Draft initial project reqs + +- [ ] #task #projects/dayjob/dayjob-misc Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/dayjob/dayjob-misc") + AND file.name != "Untitled" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/cgc.md b/content/tags/projects/cgc/index.md similarity index 100% rename from content/tags/projects/cgc.md rename to content/tags/projects/cgc/index.md diff --git a/content/tags/projects/dayjob/backstage-restarter.md b/content/tags/projects/dayjob/backstage-restarter.md new file mode 100644 index 00000000..bf63ee1f --- /dev/null +++ b/content/tags/projects/dayjob/backstage-restarter.md @@ -0,0 +1,34 @@ +--- +title: Restart Backstage Development +date: 2024-04-14 +tags: + - projects/dayjob/backstage-restarter +draft: false +--- +## Overview + +A few months ago, I played around with setting up a [Backstage](https://backstage.io/) environment for both work and CGC. It got backburner'd for a bit in favor of other projects, but with some upcoming free time, I'd like to get it started again + +## Deliverables + +1. Backstage environment documented, auth'd, and hooked to relevant GitHub repos +2. One scaffold for a custom plugin + +## Tasks + +### Upfront + +- [x] #task #projects/dayjob/backstage-restarter Draft initial project reqs [completion:: 2024-04-14] +- [ ] #task #projects/dayjob/backstage-restarter Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/dayjob/backstage-restarter") + AND file.name != "backstage-restarter" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/dayjob/dayjob-misc.md b/content/tags/projects/dayjob/dayjob-misc.md new file mode 100644 index 00000000..41440b5f --- /dev/null +++ b/content/tags/projects/dayjob/dayjob-misc.md @@ -0,0 +1,15 @@ +--- +title: ~ +date: 2024-04-17 +tags: + - projects/dayjob/dayjob-misc +draft: false +--- +## References + +```dataview +TASK +WHERE contains(tags, "#projects/dayjob/dayjob-misc") + AND file.name != "dayjob-misc" +GROUP BY file.link +``` \ No newline at end of file diff --git a/content/tags/projects/dayjob/fastlane-demo.md b/content/tags/projects/dayjob/fastlane-demo.md new file mode 100644 index 00000000..f1dcb475 --- /dev/null +++ b/content/tags/projects/dayjob/fastlane-demo.md @@ -0,0 +1,33 @@ +--- +title: Mobile App Deployments via Fastlane +date: 2024-04-14 +tags: + - projects/dayjob/fastlane-demo +draft: false +--- +## Overview + +I've already started this, but am putting it half-retroactively into [[obsidian-tasks-workflow|the new task system.]] + +## Deliverables + +1. Full Actions system for cross-store deployments of React Native apps + +## Tasks + +### Upfront + +- [x] #task #projects/dayjob/fastlane-demo Draft initial project reqs [completion:: 2024-04-14] +- [ ] #task #projects/dayjob/fastlane-demo Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/dayjob/fastlane-demo") + AND file.name != "fastlane-demo" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/dayjob.md b/content/tags/projects/dayjob/index.md similarity index 100% rename from content/tags/projects/dayjob.md rename to content/tags/projects/dayjob/index.md diff --git a/content/tags/projects/dayjob/terraform-testing.md b/content/tags/projects/dayjob/terraform-testing.md new file mode 100644 index 00000000..6d61c7c4 --- /dev/null +++ b/content/tags/projects/dayjob/terraform-testing.md @@ -0,0 +1,36 @@ +--- +title: +date: 2024-04-18 +tags: + - projects/dayjob/terraform-testing +draft: false +--- +## Overview + +Soft plan docs for using [Terraform LocalStack](https://docs.localstack.cloud/user-guide/integrations/terraform/) for local testing of infrastructure-as-code. +- [i] The goal here is to minimize the time on feedback loop for particularly hard-to-test, yet critical pieces of cloud infrastructure. The length of the current AFT feedback loop makes it a *particular pain in the ass* to test quickly & repeatedly, so something like this would be a huge boon +- [i] This isn't the first time something of the same flavor has come up β€” we looked previously at a stack for [locally validating Account Factory Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) code, but the fact that this setup is literally measured in epics gave us the impression that this wouldn't be a quick integration and we tabled it awhile back. + +## Deliverables + +- [-] Ability to locally test Account Factory Terraform on LocalStack + +## Tasks + +### Upfront + +- [x] #task #projects/dayjob/terraform-testing Draft initial project reqs [completion:: 2024-04-18] + +- [x] #task #projects/dayjob/terraform-testing Hindsight write-up [completion:: 2024-04-18] +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/dayjob/terraform-testing") + AND file.name != "terraform-testing" +GROUP BY file.link +``` + +## Hindsight + +[[terraform-localstack|Binned β€” rationale available]] \ No newline at end of file diff --git a/content/tags/projects/misc.md b/content/tags/projects/misc.md new file mode 100644 index 00000000..ed4bbe59 --- /dev/null +++ b/content/tags/projects/misc.md @@ -0,0 +1,22 @@ +--- +title: Miscellaneous Tasks +date: 2024-04-14 +tags: + - projects/misc +draft: false +--- +## References + +```dataview +TASK +WHERE contains(tags, "#projects/misc") + AND file.name != "misc" +GROUP BY file.link +``` + +## Other + +- [ ] #task #projects/misc Set up new work insurance. So long, Obamacare 🫑 [due:: 2024-04-19] +- [ ] #task #projects/misc Send Shop Highlght note πŸ“… 2024-04-15 +- [ ] #task #projects/misc Add resume template to Typst Universe πŸ“… 2024-04-17 +- [ ] #task #projects/misc Look into video transcoding management for homelab - likely requires management server to be transitioned from Alpine to Debian πŸͺ¦ \ No newline at end of file diff --git a/content/tags/projects/personal/aerospace-setup.md b/content/tags/projects/personal/aerospace-setup.md new file mode 100644 index 00000000..ee726f0c --- /dev/null +++ b/content/tags/projects/personal/aerospace-setup.md @@ -0,0 +1,43 @@ +--- +title: Aerospace setup for MacOS +date: 2024-04-14 +tags: + - projects/personal/aerospace-setup +draft: false +--- +## Overview + +I've been on a rampage trying to eliminate the need to use the mouse (oh, to become a true [never-mouse-er](https://www.youtube.com/watch?v=iJF2VT-ymjM)). Because MacOS spaces are... less than stellar to that end, I'm working on setting up [Aerospace](https://github.com/nikitabobko/AeroSpace) for this. + +I've already made some headway on this, using everything in conjunction with Hyperkey to set up navigation keys for workspaces: in particular: + +- The ability to move between workspaces using `Hyper+H and L` +- The ability to move between panes using `Hyper+J and K` +- The ability to move panes between workspaces using `Hyper+1, 2, ...` + +There are some additional odds-and-ends that I'd like to add on. + +## Deliverables + +1. Aerospace for basic tasks (moving, opening, closing windows) +2. Basic filter list for apps that [should be dialogs, but aren't](https://nikitabobko.github.io/AeroSpace/guide#dialog-heuristics) +3. New personal configuration setup for macOS + +## Tasks + +### Upfront + +- [x] #task #projects/personal/aerospace-setup Draft initial project reqs [completion:: 2024-04-14] +- [ ] #task #projects/personal/aerospace-setup Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/personal/aerospace-setup") + AND file.name != "aerospace-setup" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/personal/homelab/index.md b/content/tags/projects/personal/homelab/index.md new file mode 100644 index 00000000..f5d50d29 --- /dev/null +++ b/content/tags/projects/personal/homelab/index.md @@ -0,0 +1,7 @@ +--- +title: HomeLab Setup +tags: +--- +Projects related to [homelab](https://www.reddit.com/r/homelab/) setup. + +The philosophy for this is kinda cool - the general idea is that, with an old computer, you can set up [digital appliances](https://tteck.github.io/Proxmox/) to automate things in your home. It's come in handy for quite a few things β€” if you have a spare computer that you don't use anymore (even just an old laptop), I'd highly recommend giving it a go! \ No newline at end of file diff --git a/content/tags/projects/personal/homelab/research-annotation-storage.md b/content/tags/projects/personal/homelab/research-annotation-storage.md new file mode 100644 index 00000000..d7332edc --- /dev/null +++ b/content/tags/projects/personal/homelab/research-annotation-storage.md @@ -0,0 +1,37 @@ +--- +title: Research Annotation Storage +date: 2024-04-14 +tags: + - projects/personal/homelab/research-annotation-storage +draft: false +--- +## Overview + +The #annotations ongoing project has become pretty unmanageable pretty quickly - I have a bunch of scattered PDFs around. For legal reasons, I don't particularly want to add documents to this repository, so I'd like to instead store (authorized) copies of papers on my homelab server. + +I'll likely be going through [Calibre](https://calibre-ebook.com/) and [Calibre Web](https://github.com/janeczku/calibre-web) to manage these, with the added benefit that they can be sent to a Kindle for offline/outside reading β€” an important feature for summertime reading, especially in areas where it would be a bit inappropriate to bring my whole laptop. + +## Deliverables + +1. Calibre and Calibre Web builds +2. Clean system for uploading & organizing research to the backend server +3. Clean system for upload to external devices, such as a Kindle. + +## Tasks + +### Upfront + +- [x] #task #projects/personal/homelab/research-annotation-storage Draft initial project reqs [completion:: 2024-04-14] +- [ ] #task #projects/personal/homelab/research-annotation-storage Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/personal/homelab/research-annotation-storage") + AND file.name != "research-annotation-storage" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/projects/personal.md b/content/tags/projects/personal/index.md similarity index 100% rename from content/tags/projects/personal.md rename to content/tags/projects/personal/index.md diff --git a/content/tags/projects/personal/obsidian-periodic-notes-setup.md b/content/tags/projects/personal/obsidian-periodic-notes-setup.md new file mode 100644 index 00000000..7ab1df43 --- /dev/null +++ b/content/tags/projects/personal/obsidian-periodic-notes-setup.md @@ -0,0 +1,36 @@ +--- +title: +date: 2024-04-14 +tags: + - projects/personal/obsidian-periodic-notes-setup +draft: false +--- +## Overview + +To keep better track of my weeks and give a bit more of a constant trajectory, I'm setting up the [Obsidian Periodic Notes](https://github.com/liamcain/obsidian-periodic-notes). This'll mean adding weekly (and quarterly) templates that I'll be doing in tandem with the daily notes. + +## Deliverables + +1. Periodic note template for weekly notes on Sundays +2. Integration with #projects/personal/obsidian-tasks-workflow to call out projects and integrate upcoming tasks with due dates (😷) + +## Tasks + +### Upfront + +- [x] #task #projects/personal/obsidian-periodic-notes-setup Draft initial project reqs [completion:: 2024-04-14] +- [x] #task #projects/personal/obsidian-periodic-notes-setup Hindsight write-up [completion:: 2024-04-14] +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/personal/obsidian-periodic-notes-setup") + AND file.name != "obsidian-periodic-notes-setup" +GROUP BY file.link +``` + +## Hindsight + +Hot diggity damn, I am *loving* this new system. For the first time... probably *ever*, I have a good way to personally track deadlines and personal projects. + +I do have a somewhat nagging to-do in trying to figure out how to render Dataview queries on the final published website, but there's been some solace in kicking that can into #projects/cgc/cgc-gatsby-template. \ No newline at end of file diff --git a/content/tags/projects/personal/obsidian-tasks-workflow.md b/content/tags/projects/personal/obsidian-tasks-workflow.md new file mode 100644 index 00000000..33d4c569 --- /dev/null +++ b/content/tags/projects/personal/obsidian-tasks-workflow.md @@ -0,0 +1,54 @@ +--- +title: +date: 2024-04-14 +tags: + - projects + - "#goblin-slaying" +draft: false +--- +## Overview + + +As an ongoing need to set up a better personal task system, I'd like to better leverage the Obsidian Tasks plugin. Part of this is integrating a better system for keeping track of projects progress, and being able to effectively link it to the [[daily|daily notes]] (along with weekly/quarterly, as those start to... *actually happen*) + +My understanding is that the mechanism can work like this: + +1. Projects can be defined under the #projects tag (and subtags) +2. Tasks can be created by creating a checkbox item starting with #task, with an attached association to the appropriate #projects. +3. This will also let me do notes/articles/write-ups on certain projects, also providing a paper trail on what actually worked/didn't work and get a full timeline of attempts/trials/drafts. + +So, to start β€” let's give it a try with this project: setting up all of the above. + +## Deliverables + +1. +2. +3. + +## Tasks + +### Upfront + +- [x] #task #projects/personal/obsidian-tasks-workflow Draft initial project reqs [completion:: 2024-04-14] +- [x] #task #projects/personal/obsidian-tasks-workflow Set up basic workflow using Templates, Tasks & Dataview [completion:: 2024-04-14] +- [ ] #task #projects/personal/obsidian-tasks-workflow Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/personal/obsidian-tasks-workflow") + AND file.name != "obsidian-tasks-workflow" +GROUP BY file.link +``` + +## Hindsight + +Well, damn - I put this off for *literal weeks*, basically psyched myself out of doing a bunch of actual useful work, and it took... about an hour. I'd be lying if I said this was the first time something like this has happened. + +Admittedly, I did spend those weeks mulling over how to go about it, so it wasn't entirely time wasted. It is pretty funny, though, to think about how molehills can become mountains by just thinking about it for too long. + +Especially with the new template, setting up projects β€” CGC, personal, and dayjob β€” should be a breeze. I think it'll mesh well with a new project template block, since I'd be able to quickly define "I'll be working today on these three projects, and do these defined tasks" up front. + +I'm also pretty thrilled with the Tasks team's decision to allow forwarding, where I can manually mark a task with `[>]` to denote that it should be kicked to another day. Ideally, in the future, I'd take a look at how many of these I use, in order to measure, in a general sense, whether or not I've been getting better about biting off more than I can chew. + +10/10 would project again. diff --git a/content/tags/projects/personal/personal-misc.md b/content/tags/projects/personal/personal-misc.md new file mode 100644 index 00000000..e30938e5 --- /dev/null +++ b/content/tags/projects/personal/personal-misc.md @@ -0,0 +1,15 @@ +--- +title: ~ +date: 2024-04-17 +tags: + - projects/personal/misc +draft: false +--- +## References + +```dataview +TASK +WHERE contains(tags, "#projects/personal/personal-misc") + AND file.name != "personal-misc" +GROUP BY file.link +``` \ No newline at end of file diff --git a/content/tags/projects/personal/tweedin-in-sweden.md b/content/tags/projects/personal/tweedin-in-sweden.md new file mode 100644 index 00000000..50ff2465 --- /dev/null +++ b/content/tags/projects/personal/tweedin-in-sweden.md @@ -0,0 +1,39 @@ +--- +title: Tweedin' in Sweden +date: 2024-04-14 +tags: + - "#projects/personal/tweedin-in-sweden" +draft: false +--- +## Overview + +As part of my partner's research, she'll be attending a biomedical conference in Sweden later this year... *and guess who's hitching a ride?!* + +Thanks to a lack of recent travel and buildup of credit card miles, this should be a pretty cheap, straightforward trip. I'm super excited to travel abroad - going to Amsterdam in 2019 was an amazing experience, and I'm very lucky to have an intelligent, incredible partner β€” on whose coattails I can ride to incredible places πŸ‡ΈπŸ‡ͺπŸŽ‰ + +## Deliverables + +1. Flight plans to Sweden +2. Booking hotels for off-trip periods (periods before and after the conference) +3. Travel prep - passport checks, etc etc. + +## Tasks + +### Upfront + +- [x] #task #projects/personal/tweedin-in-sweden Draft initial project reqs [completion:: 2024-04-14] +- [x] #task #projects/personal/tweedin-in-sweden Investigate transfer miles to book the flights there/back. Possibly 'tiff it to get some better flights [due:: 2024-04-21] [completion:: 2024-04-21] +- [ ] #task #projects/personal/tweedin-in-sweden Figure out accommodations [due:: 2024-04-21] +- [ ] #task #projects/personal/tweedin-in-sweden Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#projects/personal/tweedin-in-sweden") + AND file.name != "tweedin-in-sweden" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/tags/seasons/.gitkeep b/content/tags/seasons/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/content/notes/season-of-rhythm.md b/content/tags/seasons/rhythm.md similarity index 98% rename from content/notes/season-of-rhythm.md rename to content/tags/seasons/rhythm.md index d4dc34e1..47138e33 100644 --- a/content/notes/season-of-rhythm.md +++ b/content/tags/seasons/rhythm.md @@ -1,9 +1,7 @@ --- -title: Spencer's Season of Rhythm +title: The Season of Rhythm date: 2024-02-27 -updated: 2024-02-27 tags: - - notes - goblin-slaying draft: false --- diff --git a/content/templates/annotation.template.md b/content/templates/annotation.template.md index 3a33db2e..591943c1 100644 --- a/content/templates/annotation.template.md +++ b/content/templates/annotation.template.md @@ -1,9 +1,8 @@ --- -title: TODO -date: "{{date}}" -updated: "{{date}}" +title: +date: <% tp.date.now() %> tags: - annotations +annotation-target: draft: false -annotation-target: --- diff --git a/content/templates/block.task.template.md b/content/templates/block.task.template.md deleted file mode 100644 index 66ad5805..00000000 --- a/content/templates/block.task.template.md +++ /dev/null @@ -1,8 +0,0 @@ -#### {{TASK}} - -{{Description}} - -- **PLAN:** - - [ ] -- **DELIVERABLES:** - - [ ] \ No newline at end of file diff --git a/content/templates/daily.template.md b/content/templates/daily.template.md index 502c6403..3cbf707b 100644 --- a/content/templates/daily.template.md +++ b/content/templates/daily.template.md @@ -1,28 +1,64 @@ ---- -title: "{{date}}" -date: "{{date}}" -updated: "{{date}}" -tags: - - notes/daily -draft: false ---- -⇐ [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", +1) %>]] β‡’ +<%* +// Set folder you want to get latest file for here +const folder = "tags/seasons"; -## Today's Plan +// Get frontmatter keys of interest +const createdAtKey = "date"; +const titleKey = "title"; + +const latestFileInFolder = app.vault.getMarkdownFiles().reduce((acc, file) => { + // Skip files not in folder + if (!file.path.startsWith(folder)) { + return acc; + } -> - **[[{{date}}#Morning Block|Morning Block]]**: Morning work session, typically 9am - 12pm -> - **[[{{date}}#Afternoon Block|Afternoon Block]]**: Afternoon work session - usually the bulk of work. 12pm - 5pm -> - **[[{{date}}#Evening Block|Evening Block]]**: Evening work session for CGC-related work, 5pm - ??? + // Get time file was created from frontmatter + const createdAt = app.metadataCache.getFileCache(file)?.frontmatter?.[createdAtKey]; + const noteTitle = app.metadataCache.getFileCache(file)?.frontmatter?.[titleKey]; -### Morning Block + // If file has created at frontmatter and if that file was created more recently than the currently found most recently created file, then set most recently created file to file + if ( + createdAt && + (!acc || new Date(createdAt).getTime() > new Date(acc.createdAt).getTime())) + { + acc = { file, noteTitle, createdAt }; + } + return acc; +}, null); +let latestFileSeasonTag = `seasons/${latestFileInFolder.file.basename}` -### Afternoon Block +let startDate = moment(latestFileInFolder.createdAt); +let now = moment(); +let days = now.diff(startDate, 'days', true); +let roundedDays = Math.ceil(days); +let sanitizedTag = latestFileInFolder.file.basename +sanitizedTag = sanitizedTag.charAt(0).toUpperCase() + sanitizedTag.slice(1) +let title = `${sanitizedTag}: Day ${roundedDays}` -### Evening Block +-%>--- +title: "<% title %>" +date: <% tp.date.now() %> +tags: + - <% latestFileSeasonTag %> + - notes/daily +draft: false +--- +⇐ [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", +1) %>]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("<% tp.date.now() %>") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` + +## Today's Plan diff --git a/content/templates/post.template.md b/content/templates/post.template.md index 0f18ec6a..560a8c1d 100644 --- a/content/templates/post.template.md +++ b/content/templates/post.template.md @@ -1,8 +1,6 @@ --- -title: TODO -date: "{{date}}" -updated: "{{date}}" -tags: - - notes +title: +date: <% tp.date.now() %> +tags: [] draft: false --- diff --git a/content/templates/project.template.md b/content/templates/project.template.md new file mode 100644 index 00000000..5d783117 --- /dev/null +++ b/content/templates/project.template.md @@ -0,0 +1,42 @@ +<%* +let title = tp.file.title +if (title.startsWith("Untitled")) { + title = await tp.system.prompt("Title"); +} +await tp.file.rename(title) +-%>--- +title: ~ +date: <% tp.date.now() %> +tags: + - <% tp.file.path(true).slice(5, -3) %> +draft: false +--- +## Overview + +TODO + +## Deliverables + +1. +2. +3. + +## Tasks + +### Upfront + +- [ ] #task #<% tp.file.path(true).slice(5, -3) %> Draft initial project reqs + +- [ ] #task #<% tp.file.path(true).slice(5, -3) %> Hindsight write-up +### Other + +```dataview +TASK +WHERE contains(tags, "#<% tp.file.path(true).slice(5, -3) %>") + AND file.name != "<% tp.file.title %>" +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/templates/task.block.template.md b/content/templates/task.block.template.md new file mode 100644 index 00000000..d757494b --- /dev/null +++ b/content/templates/task.block.template.md @@ -0,0 +1,9 @@ +<%* + var projectSlug = await tp.system.prompt("Project Slug:") + var projectFile = tp.file.find_tfile(projectSlug) + var projectFilePath = projectFile.path + var projectFileTag = projectFilePath.slice(5, -3) +%>### [[<% projectSlug %>]] + +- [ ] #task #<% projectFileTag %> +- [ ] #task #<% projectFileTag %> \ No newline at end of file diff --git a/content/templates/weekly.template.md b/content/templates/weekly.template.md new file mode 100644 index 00000000..1f807305 --- /dev/null +++ b/content/templates/weekly.template.md @@ -0,0 +1,83 @@ +<%* +// Set folder you want to get latest file for here +const folder = "tags/seasons"; + +// Get frontmatter keys of interest +const createdAtKey = "date"; +const titleKey = "title"; + +const latestFileInFolder = app.vault.getMarkdownFiles().reduce((acc, file) => { + // Skip files not in folder + if (!file.path.startsWith(folder)) { + return acc; + } + + // Get time file was created from frontmatter + const createdAt = app.metadataCache.getFileCache(file)?.frontmatter?.[createdAtKey]; + const noteTitle = app.metadataCache.getFileCache(file)?.frontmatter?.[titleKey]; + + // If file has created at frontmatter and if that file was created more recently than the currently found most recently created file, then set most recently created file to file + if ( + createdAt && + (!acc || new Date(createdAt).getTime() > new Date(acc.createdAt).getTime())) + { + acc = { file, noteTitle, createdAt }; + } + + return acc; +}, null); + +let latestFileTitle = latestFileInFolder.noteTitle; +let latestFileSeasonTag = `seasons/${latestFileInFolder.file.basename}` + +let startDate = moment(latestFileInFolder.createdAt); +let now = moment(); + +let weeks = now.diff(startDate, 'weeks', true); +let roundedWeeks = Math.ceil(weeks); + +let title = `${latestFileTitle}: Week ${roundedWeeks}` + +-%>--- +title: "<% title %>" +date: <% tp.date.now() %> +tags: + - <% latestFileSeasonTag %> + - notes/weekly +draft: false +--- +## Up & Coming + +TODO + +### Projects + +TODO + +## Tasks + +### Due + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("<% tp.date.now() %>") + dur(7 days) +SORT date ASC +GROUP BY file.link +``` + +### Done + +```dataview +TASK +WHERE typeof(completion) = "date" + AND completion >= date("<% tp.date.now() %>") + AND completion < date("<% tp.date.now() %>") + dur(7 days) +SORT date DESC +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/notes/annotations/college-admissions-and-the-stability-of-marriage.md b/content/writing/annotations/college-admissions-and-the-stability-of-marriage.md similarity index 100% rename from content/notes/annotations/college-admissions-and-the-stability-of-marriage.md rename to content/writing/annotations/college-admissions-and-the-stability-of-marriage.md diff --git a/content/notes/annotations/simple-economics-of-open-source.md b/content/writing/annotations/simple-economics-of-open-source.md similarity index 100% rename from content/notes/annotations/simple-economics-of-open-source.md rename to content/writing/annotations/simple-economics-of-open-source.md diff --git a/content/articles/binglish.md b/content/writing/articles/binglish.md similarity index 80% rename from content/articles/binglish.md rename to content/writing/articles/binglish.md index 43dca7d7..a4681ae2 100644 --- a/content/articles/binglish.md +++ b/content/writing/articles/binglish.md @@ -1,5 +1,5 @@ --- -title: "Binglish: The New Normal" +title: "GPTinglish: The New Normal" date: 2024-03-01 updated: 2024-03-01 tags: @@ -8,13 +8,12 @@ tags: - articles draft: false --- -## Binglish -> -> *bingΒ·lish*, *noun* (derogatory) +## GPTinglish + +> *GPTingΒ·lish*, *noun* (derogatory) > > - The default writing style of generative AI text models. (derogatory) > - Shorthand for a median style of writing, devoid of personality. (derogatory) -> - The way that a monkey's paw would grant Microsoft's wish to finally give Bing a generic English term like lowercase-g "google" (very derogatory) In writing a bit more, I've been back-and-forth on the extent to which I want to swear. The style of my writing is more-or-less the way that I speak out loud (which prompted a lot of "couldn't you make this a bit more professional?" feedback on the [[structured-streaming|Databricks post]]), and **when I speak out loud, I swear.** Obviously, the frequency depends - at work it's sparse (but not nil), on a personal level it's pretty frequent - but I do still pepper it in for effect in some places. The only times I can remember *not* swearing is when I was teaching math to K-12 students, and when writing posts here. @@ -34,21 +33,21 @@ This is obviously a concern for many reasons. **The internet is made up of a *wh That's not the case anymore, and it will likely not be the case ever again. I don't think this is the end of the *world* (probably. hopefully). I *do* think that this is the end of what I refer to as **the statistical median of language: boring, sanitized, business-speak.** -For the purposes of this note, I am going to refer to this type of language as **Binglish.** +For the purposes of this note, I am going to refer to this type of language as **GPTinglish.** -## Binglish is a Dead-On-Arrival Language +## GPTinglish is a Dead-On-Arrival Language -Binglish, to me, can be described in a few ways: +GPTinglish, to me, can be described in a few ways: - It's **Business English**. Office English. [[the-quest-to-slay-the-goblin#^9d3b38|LinkedInβ„’]] English. I hope, to those of you reading who have also worked a traditional office job, that you can recognize this shorthand as the type of thing that you'd find in your Outlook inbox; - It's **Boring English**. It's the median of the language, absent of all personality or human voice; and -- It's **Bing English**. Meant to half-heartedly celebrate Microsoft's role in solidifying what is very likely a [self-consuming business model](https://www.youtube.com/watch?v=Si_mGxIzHlU) , poised to consume the very medium it was trained on, this is the type of English that we (currently) see from Bing Copilot, ChatGPT, Gemini, and others +- It's **Bing-English**. Meant to half-heartedly celebrate Microsoft's role in solidifying what is very likely a [self-consuming business model](https://www.youtube.com/watch?v=Si_mGxIzHlU) , poised to consume the very medium it was trained on, this is the type of English that we (currently) see from Bing Copilot, ChatGPT, Gemini, and others -Absent explicit directives on tone, you can find examples of Binglish on *pretty much* every single chatbot you could open at the moment. It's informative. It's to the point. Once you get the hang of it, it's easy to both read *and* write. What's not to love? +Absent explicit directives on tone, you can find examples of GPTinglish on *pretty much* every single chatbot you could open at the moment. It's informative. It's to the point. Once you get the hang of it, it's easy to both read *and* write. What's not to love? -And - unfortunately for the mediums that rely on Binglish - it's *wildly* automatable, now. +And - unfortunately for the mediums that rely on GPTinglish - it's *wildly* automatable, now. -In an effort to formalize the English language into a common median, we have all but guaranteed that the data used to train LLMs has, by definition and in practice, mastered it and put all of us that use it at risk of automation. We can also see the remnants of human efforts to curtail widely-used bots from going outside Binglish at their default settings: +In an effort to formalize the English language into a common median, we have all but guaranteed that the data used to train LLMs has, by definition and in practice, mastered it and put all of us that use it at risk of automation. We can also see the remnants of human efforts to curtail widely-used bots from going outside GPTinglish at their default settings: ![[Pasted image 20240301125658.png]] *ChatGPT refuses to generate even a **generic list** of English swears...* @@ -64,15 +63,15 @@ In an effort to formalize the English language into a common median, we have all The takeaway, to me, seems as clear as day. -## Humans Need Not ~~Write Binglish~~ +## Humans Need Not ~~Write GPTinglish~~ -The market for Binglish is cornered. It's been automated away. **The need for writing in the median,** devoid of voice or personality, **has gone the way of horses in a world of cars.** The onus for humans, then, is not to *stop* writing, but instead to **write outside of the Binglish median.** +The market for GPTinglish is cornered. It's been automated away. **The need for writing in the median,** devoid of voice or personality, **has gone the way of horses in a world of cars.** The onus for humans, then, is not to *stop* writing, but instead to **write outside of the GPTinglish median.** One of my favorite examples of people who write with an inimitable voice is [Kyla Scanlon](https://substack.com/@kyla), who frequently writes and records thoughts about macro-economics. What makes her writing engaging is not just thoughtful analysis of economic trends, but the voice in which she writes it. It was specifically her post on [language and trust](https://kyla.substack.com/p/why-we-dont-trust-each-other-anymore) that spurred this note to turn into the length of an article. -While I feel like the market for dry, median writing was already withered in the wake of a rising palette preference for infotainment, it was the the advent of ChatGPT and widely-available generative text that has **thoroughly crushed the future prospects of Binglish as a human activity.** While I can make no guarantees that generative AI won't someday master imitation of human voice in writing - something that [has already reared its head in generative images](https://www.nytimes.com/2022/12/31/opinion/sarah-andersen-how-algorithim-took-my-work.html) and spurred [active efforts to curtail imitation and preserve unique styles](https://glaze.cs.uchicago.edu/index.html)), I have made a decision for my personal writing: +While I feel like the market for dry, median writing was already withered in the wake of a rising palette preference for infotainment, it was the the advent of ChatGPT and widely-available generative text that has **thoroughly crushed the future prospects of GPTinglish as a human activity.** While I can make no guarantees that generative AI won't someday master imitation of human voice in writing - something that [has already reared its head in generative images](https://www.nytimes.com/2022/12/31/opinion/sarah-andersen-how-algorithim-took-my-work.html) and spurred [active efforts to curtail imitation and preserve unique styles](https://glaze.cs.uchicago.edu/index.html)), I have made a decision for my personal writing: -**I don't want to write Binglish anymore.** +**I don't want to write GPTinglish anymore.** I find no joy in editing the way I write into a now-dead, median form of language, optimized for algorithms with its supply automated away by language models. I'd rather write in my own voice, with my own anachronisms and mistakes and weird vocal ticks and stray punctuation and weirdly-placed emoticons and deeply-nested parentheticals and... run-on sentences? Probably quite a few run-on sentences. diff --git a/content/articles/hello-blog.md b/content/writing/articles/hello-blog.md similarity index 100% rename from content/articles/hello-blog.md rename to content/writing/articles/hello-blog.md diff --git a/content/articles/littlefield.md b/content/writing/articles/littlefield.md similarity index 97% rename from content/articles/littlefield.md rename to content/writing/articles/littlefield.md index 53b891af..267a4f7d 100644 --- a/content/articles/littlefield.md +++ b/content/writing/articles/littlefield.md @@ -9,7 +9,7 @@ tags: - "#economics/market-design" - articles --- -[[season-of-rhythm|I am awful at sticking to routines]] - the only thing I can bear to check on every day is Twitter. Even if it means spending twice as long over the course of a weekend, I will *always* try to find a way to automate away routine manual work. +[[rhythm|I am awful at sticking to routines]] - the only thing I can bear to check on every day is Twitter. Even if it means spending twice as long over the course of a weekend, I will *always* try to find a way to automate away routine manual work. (All of the code used in this post can be found [here.](https://github.com/Spelkington/LittlefieldDriver/blob/main/ipynb/driver.ipynb)) diff --git a/content/articles/resume-ci-pipeline.md b/content/writing/articles/resume-ci-pipeline.md similarity index 100% rename from content/articles/resume-ci-pipeline.md rename to content/writing/articles/resume-ci-pipeline.md diff --git a/content/articles/robloxaville.md b/content/writing/articles/robloxaville.md similarity index 100% rename from content/articles/robloxaville.md rename to content/writing/articles/robloxaville.md diff --git a/content/articles/structured-streaming.md b/content/writing/articles/structured-streaming.md similarity index 100% rename from content/articles/structured-streaming.md rename to content/writing/articles/structured-streaming.md diff --git a/content/notes/arc-review.md b/content/writing/notes/arc-review.md similarity index 100% rename from content/notes/arc-review.md rename to content/writing/notes/arc-review.md diff --git a/content/notes/beethoven.md b/content/writing/notes/beethoven.md similarity index 100% rename from content/notes/beethoven.md rename to content/writing/notes/beethoven.md diff --git a/content/notes/caveat-lector.md b/content/writing/notes/caveat-lector.md similarity index 100% rename from content/notes/caveat-lector.md rename to content/writing/notes/caveat-lector.md diff --git a/content/notes/digital-gardening-with-quartz.md b/content/writing/notes/digital-gardening-with-quartz.md similarity index 96% rename from content/notes/digital-gardening-with-quartz.md rename to content/writing/notes/digital-gardening-with-quartz.md index 19f626a2..0f5a363c 100644 --- a/content/notes/digital-gardening-with-quartz.md +++ b/content/writing/notes/digital-gardening-with-quartz.md @@ -32,6 +32,4 @@ I was fortunate enough to stumble on [Maggie Appleton's Ethos on Digital Gardeni ## The cost of perfection is infinite -Putting things on a spectrum of "chaos" to "cultivated", in conjunction with the idea that ["the cost of perfection is infinite"](https://youtube.com/clip/Ugkx9fkAb69oHPNZ3EDJPCJxPfWbBdyrI8OO?si=rh3P1LQ8pOkT4Nja) (if not asymptotic), puts into hardly-uncertain terms that simply because a thing is not perfect, or close to it, necessarily means that it is unhelpful and should die a slow death in a draft bin. - - \ No newline at end of file +Putting things on a spectrum of "chaos" to "cultivated", in conjunction with the idea that ["the cost of perfection is infinite"](https://youtube.com/clip/Ugkx9fkAb69oHPNZ3EDJPCJxPfWbBdyrI8OO?si=rh3P1LQ8pOkT4Nja) (if not asymptotic), puts into hardly-uncertain terms that simply because a thing is not perfect, or close to it, necessarily means that it is unhelpful and should die a slow death in a draft bin. \ No newline at end of file diff --git a/content/notes/literal-scratch-piano.md b/content/writing/notes/literal-scratch-piano.md similarity index 100% rename from content/notes/literal-scratch-piano.md rename to content/writing/notes/literal-scratch-piano.md diff --git a/content/notes/literal-scratch-quicksort.md b/content/writing/notes/literal-scratch-quicksort.md similarity index 100% rename from content/notes/literal-scratch-quicksort.md rename to content/writing/notes/literal-scratch-quicksort.md diff --git a/content/notes/over-under-engineering.md b/content/writing/notes/over-under-engineering.md similarity index 95% rename from content/notes/over-under-engineering.md rename to content/writing/notes/over-under-engineering.md index d30ed1c1..7425ee5c 100644 --- a/content/notes/over-under-engineering.md +++ b/content/writing/notes/over-under-engineering.md @@ -42,6 +42,3 @@ Let's say, hypothetically, that my project follow-through rate started at 100% a $$(1.00 - 0.30)^5 = 0.16$$ *Yeesh*. 16% follow-through rate sounds rough, but when I look at a recent history of what I've accomplished versus what I've wanted to accomplish, the number seems somewhat reasonable. - - - diff --git a/content/notes/dailies/2024-02-25.md b/content/writing/notes/periodic/dailies/2024-02-25.md similarity index 86% rename from content/notes/dailies/2024-02-25.md rename to content/writing/notes/periodic/dailies/2024-02-25.md index d47b6ead..5446f39c 100644 --- a/content/notes/dailies/2024-02-25.md +++ b/content/writing/notes/periodic/dailies/2024-02-25.md @@ -6,6 +6,7 @@ tags: - horticulture - engineering/typescript - notes/daily + - seasons/rhythm draft: false --- [[2024-02-26]] β‡’ @@ -36,10 +37,10 @@ More work to be done in the endless struggle to avoid putting horses before cart ## Notes -- -- -- -- -- -- -- +- https://blog.partykit.io/posts/cursor-party +- http://www.bruno-latour.fr/sites/default/files/35-MIXING-H-ET-NH-GBpdf_0.pdf +- https://maggieappleton.com/gathering-structures +- https://maggieappleton.com/ambient-copresence +- https://github.blog/2023-10-05-a-developers-guide-to-open-source-llms-and-generative-ai/ +- https://github.blog/2023-10-04-how-to-communicate-like-a-github-engineer-our-principles-practices-and-tools/ +- https://www.rawgraphs.io/ diff --git a/content/notes/dailies/2024-02-26.md b/content/writing/notes/periodic/dailies/2024-02-26.md similarity index 93% rename from content/notes/dailies/2024-02-26.md rename to content/writing/notes/periodic/dailies/2024-02-26.md index 963628e7..9087e601 100644 --- a/content/notes/dailies/2024-02-26.md +++ b/content/writing/notes/periodic/dailies/2024-02-26.md @@ -8,6 +8,7 @@ tags: - engineering/devops - engineering/csharp - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-02-25]] | [[2024-02-27]] β‡’ @@ -51,8 +52,8 @@ Admittedly, a [minor distraction](https://bsky.app/profile/spencer.chaoticgood.c As a bit of a buzzer-beater against my self-imposed daily deadline of 12:00pm MT, I've decided to just publish this new blog format as-is. It doesn't quite have the same style and zest as the original, but I'd rather put this out to encourage myself to improve it rather than let it languish in a "refactor" branch on GitHub. -**UPDATE:** I did not beat the buzzer. It is currently 4:00AM the next day, and I am *definitely* not going to be deploying anything. Ironically, during this time I wrote the first posts about [[the-quest-to-slay-the-goblin|slaying The Goblin]] and [[season-of-rhythm|my Year of Rhythm]], which is ironic considering The Goblin certainly won tonight. +**UPDATE:** I did not beat the buzzer. It is currently 4:00AM the next day, and I am *definitely* not going to be deploying anything. Ironically, during this time I wrote the first posts about [[the-quest-to-slay-the-goblin|slaying The Goblin]] and [[rhythm|my Year of Rhythm]], which is ironic considering The Goblin certainly won tonight. ## Notes -- +- https://www.youtube.com/watch?v=0RFwyobtnKA diff --git a/content/notes/dailies/2024-02-27.md b/content/writing/notes/periodic/dailies/2024-02-27.md similarity index 76% rename from content/notes/dailies/2024-02-27.md rename to content/writing/notes/periodic/dailies/2024-02-27.md index 3f32baab..1cfb8d05 100644 --- a/content/notes/dailies/2024-02-27.md +++ b/content/writing/notes/periodic/dailies/2024-02-27.md @@ -6,6 +6,7 @@ tags: - engineering/csharp - engineering/python - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-02-26]] | [[2024-02-28]] β‡’ @@ -19,7 +20,7 @@ I didn't get nearly as much C# done as I'd wanted to yesterday - while I'm a bit ### B-Block - More [ChainSharp](https://www.nuget.org/packages/Theauxm.ChainSharp#readme-body-tab) step testing. - - As an aside, I think I've been dramatically over-complicating how I create separable PRs. This is one of my "Fuck, Theaux was right" moments that I increasingly have as I learn more C#. At some point, I'd like to do some gardening on philosophies for separable pull requests and commits. + - As an aside, I think I've been dramatically over-complicating how I create separable PRs. This is one of my "Fuck, Theaux was right" moments that I increasingly have as I learn more C#. At some point, I'd like to do some gardening on philosophies for separable pull requests and commits. ### M-Block - Checking on our internal project status - there's likely tasks I can pick up, but my current work is the only very-large-web I have left to untangle (unless I'm forgetting something, which is likely.) @@ -27,7 +28,7 @@ I didn't get nearly as much C# done as I'd wanted to yesterday - while I'm a bit ### E-Block - Today's E-block is a CGC day, so (sleep status pending) I'd like to work on actually taking what I have and uploading it to GitHub. This'll mean taking a look at the Quartz build process. - - Another aside - while I appreciate how much the developers of Quartz has made it user-friendly with a custom CLI, it abstracts away some of the usual development workflow and means I have to learn (and consequently fumble around with) a new thing. That said, I also don't know jack shit about frontend development and there's probably a good reason for that. + - Another aside - while I appreciate how much the developers of Quartz has made it user-friendly with a custom CLI, it abstracts away some of the usual development workflow and means I have to learn (and consequently fumble around with) a new thing. That said, I also don't know jack shit about frontend development and there's probably a good reason for that. - Oh, what's this?? A friend of mine asked me to take a look over his resume. He's still using [[resume-ci-pipeline|the old LaTeX version of my resume template]], so I'm real excited to get him moved over to the new Typst version (post pending). CGC blog stuff may get pushed back accordingly - not sure how high-capacity I'm feeling now at 5pm ## Today's Report diff --git a/content/notes/dailies/2024-02-28.md b/content/writing/notes/periodic/dailies/2024-02-28.md similarity index 84% rename from content/notes/dailies/2024-02-28.md rename to content/writing/notes/periodic/dailies/2024-02-28.md index db1a0d01..9f7c0881 100644 --- a/content/notes/dailies/2024-02-28.md +++ b/content/writing/notes/periodic/dailies/2024-02-28.md @@ -6,6 +6,7 @@ tags: - "#goblin-slaying" - engineering/csharp - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-02-27]] | [[2024-02-29]] β‡’ @@ -58,8 +59,8 @@ In a buzzer-beater, I learned a bit about D3 and finally settled on [how to use ## Notes -- - perhaps Projects is actually becoming... good? What a time to be alive! -- - Implementation as Backstage Plugin or Electron App? -- - unfortunately not the type of "app" i was hoping for. -- - would be nice to do a popup as an Arc boost -- - I'd like to, at some point, look at forking & adding the ability to add a song to a playlist. the selfcontrol stuff was quite a gateway drug, although i'll have to adapt to using TypeScript for extensions rather than creating shitty, poorly-tested bash. +- https://github.blog/2024-02-28-how-were-using-github-projects-to-standardize-our-workflows-and-stay-aligned/ - perhaps Projects is actually becoming... good? What a time to be alive! +- https://www.rawgraphs.io/ - Implementation as Backstage Plugin or Electron App? +- https://github.com/rawgraphs/rawgraphs-app - unfortunately not the type of "app" i was hoping for. +- https://github.com/jessejanderson/skylink - would be nice to do a popup as an Arc boost +- https://github.com/raycast/extensions/tree/c524392d80b35348811bae59831f29bfdbc34432/extensions/youtube-music/ - I'd like to, at some point, look at forking & adding the ability to add a song to a playlist. the selfcontrol stuff was quite a gateway drug, although i'll have to adapt to using TypeScript for extensions rather than creating shitty, poorly-tested bash. diff --git a/content/notes/dailies/2024-02-29.md b/content/writing/notes/periodic/dailies/2024-02-29.md similarity index 99% rename from content/notes/dailies/2024-02-29.md rename to content/writing/notes/periodic/dailies/2024-02-29.md index 628e64da..a5b78cd4 100644 --- a/content/notes/dailies/2024-02-29.md +++ b/content/writing/notes/periodic/dailies/2024-02-29.md @@ -7,6 +7,7 @@ tags: - "#engineering/typescript" - engineering/csharp - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-02-28]] | [[2024-03-01]] β‡’ diff --git a/content/notes/dailies/2024-03-01.md b/content/writing/notes/periodic/dailies/2024-03-01.md similarity index 99% rename from content/notes/dailies/2024-03-01.md rename to content/writing/notes/periodic/dailies/2024-03-01.md index e54976ff..145613e0 100644 --- a/content/notes/dailies/2024-03-01.md +++ b/content/writing/notes/periodic/dailies/2024-03-01.md @@ -5,6 +5,7 @@ updated: 2024-03-01 tags: - "#engineering/csharp" - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-02-29]] | [[2024-03-02]] β‡’ diff --git a/content/notes/dailies/2024-03-02.md b/content/writing/notes/periodic/dailies/2024-03-02.md similarity index 99% rename from content/notes/dailies/2024-03-02.md rename to content/writing/notes/periodic/dailies/2024-03-02.md index 50c47535..fcddf8ac 100644 --- a/content/notes/dailies/2024-03-02.md +++ b/content/writing/notes/periodic/dailies/2024-03-02.md @@ -6,6 +6,7 @@ tags: - mentoring - engineering/scratch - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-01]] | [[2024-03-03]] β‡’ diff --git a/content/notes/dailies/2024-03-03.md b/content/writing/notes/periodic/dailies/2024-03-03.md similarity index 99% rename from content/notes/dailies/2024-03-03.md rename to content/writing/notes/periodic/dailies/2024-03-03.md index 3f2c3bd6..8f15f43e 100644 --- a/content/notes/dailies/2024-03-03.md +++ b/content/writing/notes/periodic/dailies/2024-03-03.md @@ -5,6 +5,7 @@ updated: 2024-03-03 tags: - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-02]] | [[2024-03-04]] β‡’ diff --git a/content/notes/dailies/2024-03-04.md b/content/writing/notes/periodic/dailies/2024-03-04.md similarity index 93% rename from content/notes/dailies/2024-03-04.md rename to content/writing/notes/periodic/dailies/2024-03-04.md index 5e0058e6..3463bef5 100644 --- a/content/notes/dailies/2024-03-04.md +++ b/content/writing/notes/periodic/dailies/2024-03-04.md @@ -5,6 +5,7 @@ updated: 2024-03-04 tags: - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-03]] | [[2024-03-05]] β‡’ @@ -31,7 +32,7 @@ Back to the work week! We haven't had sprint planning, yet, so I'm not totally s > To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading & writing this -So, this particular report goes... well into tomorrow. I've been doing pretty good on my [[season-of-rhythm|sleep rhythm]] lately, so let's consider this 6:00AM posting a bit of a relapse. +So, this particular report goes... well into tomorrow. I've been doing pretty good on my [[rhythm|sleep rhythm]] lately, so let's consider this 6:00AM posting a bit of a relapse. I need to get... a couple hours of sleep before I need to be up in the morning, especially considering it's my partners birthday(!), so this'll be a brief EOD. I will personally blame whoever it is that made [this amazing set of proxmox LXC setup scripts](https://tteck.github.io/Proxmox/) for stealing my sleep tonight, in order to properly divert blame away from the true culprit: myself. diff --git a/content/notes/dailies/2024-03-05.md b/content/writing/notes/periodic/dailies/2024-03-05.md similarity index 98% rename from content/notes/dailies/2024-03-05.md rename to content/writing/notes/periodic/dailies/2024-03-05.md index 7310c0e7..8203967a 100644 --- a/content/notes/dailies/2024-03-05.md +++ b/content/writing/notes/periodic/dailies/2024-03-05.md @@ -4,6 +4,7 @@ date: 2024-03-05 updated: 2024-03-05 tags: - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-04]] | [[2024-03-06]] β‡’ diff --git a/content/notes/dailies/2024-03-06.md b/content/writing/notes/periodic/dailies/2024-03-06.md similarity index 99% rename from content/notes/dailies/2024-03-06.md rename to content/writing/notes/periodic/dailies/2024-03-06.md index 2864c5aa..df9f44b7 100644 --- a/content/notes/dailies/2024-03-06.md +++ b/content/writing/notes/periodic/dailies/2024-03-06.md @@ -6,6 +6,7 @@ tags: - engineering/devops - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-05]] | [[2024-03-07]] β‡’ diff --git a/content/notes/dailies/2024-03-07.md b/content/writing/notes/periodic/dailies/2024-03-07.md similarity index 99% rename from content/notes/dailies/2024-03-07.md rename to content/writing/notes/periodic/dailies/2024-03-07.md index b5ec88bc..7fb0811d 100644 --- a/content/notes/dailies/2024-03-07.md +++ b/content/writing/notes/periodic/dailies/2024-03-07.md @@ -6,6 +6,7 @@ tags: - projects/personal/homelab - "#engineering/devops" - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-06]] | [[2024-03-08]] β‡’ diff --git a/content/notes/dailies/2024-03-08.md b/content/writing/notes/periodic/dailies/2024-03-08.md similarity index 98% rename from content/notes/dailies/2024-03-08.md rename to content/writing/notes/periodic/dailies/2024-03-08.md index ba3da80e..3f79b4b7 100644 --- a/content/notes/dailies/2024-03-08.md +++ b/content/writing/notes/periodic/dailies/2024-03-08.md @@ -5,6 +5,7 @@ updated: 2024-03-08 tags: - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-07]] | [[2024-03-10]] β‡’ diff --git a/content/notes/dailies/2024-03-10.md b/content/writing/notes/periodic/dailies/2024-03-10.md similarity index 92% rename from content/notes/dailies/2024-03-10.md rename to content/writing/notes/periodic/dailies/2024-03-10.md index edcc1b94..51e27822 100644 --- a/content/notes/dailies/2024-03-10.md +++ b/content/writing/notes/periodic/dailies/2024-03-10.md @@ -6,6 +6,7 @@ tags: - projects/personal/homelab - engineering/typescript - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-08]] | [[2024-03-11]] β‡’ @@ -38,9 +39,9 @@ UGH. This damn homelab server sucked me in again in this evening. A linux LVM is - **GOAL:** Set up a Linux Live Disk that comes preconfigured with the utilities I need to **remotely** modify the server (e.g. lvm2, gparted, Chrome Remote Desktop (for remote-ness), etc) - **CONSTRAINT:** I only have access to a MacBook Pro M2, Steam Deck, and the current 256G Proxmox instance itself - - **SUBCONSTRAINT:** There's not many *customizable* options for flashing a customized Linux Live Disk on Mac - - **SUBCONSTRAINT:** The Steam Deck, despite being arch linux, *fucking sucks* at being used for Linux-y things due to the read-only[^1] root filesystem and kneecapped `pacman` installation - - **SUBCONSTRAINT:** All other Linux instances I have are virtualized on Proxmox, which makes creating custom drives onto actual hardware a pain in the ass + - **SUBCONSTRAINT:** There's not many *customizable* options for flashing a customized Linux Live Disk on Mac + - **SUBCONSTRAINT:** The Steam Deck, despite being arch linux, *fucking sucks* at being used for Linux-y things due to the read-only[^1] root filesystem and kneecapped `pacman` installation + - **SUBCONSTRAINT:** All other Linux instances I have are virtualized on Proxmox, which makes creating custom drives onto actual hardware a pain in the ass To get around this, I've settled (currently) on using [Linux Live Kit](https://www.linux-live.org/) on a virtualized Debian instance, customized with everything I need, and then doing a hardware passthrough of the USB drive to load the customized distro as a recovery disk. Ultimately, this means: diff --git a/content/notes/dailies/2024-03-11.md b/content/writing/notes/periodic/dailies/2024-03-11.md similarity index 98% rename from content/notes/dailies/2024-03-11.md rename to content/writing/notes/periodic/dailies/2024-03-11.md index cb1c5c65..9893512d 100644 --- a/content/notes/dailies/2024-03-11.md +++ b/content/writing/notes/periodic/dailies/2024-03-11.md @@ -5,6 +5,7 @@ updated: 2024-03-11 tags: - engineering/devops - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-10]] | [[2024-03-12]] β‡’ diff --git a/content/notes/dailies/2024-03-12.md b/content/writing/notes/periodic/dailies/2024-03-12.md similarity index 99% rename from content/notes/dailies/2024-03-12.md rename to content/writing/notes/periodic/dailies/2024-03-12.md index ab68a92a..0255a4f4 100644 --- a/content/notes/dailies/2024-03-12.md +++ b/content/writing/notes/periodic/dailies/2024-03-12.md @@ -5,6 +5,7 @@ updated: 2024-03-12 tags: - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-11]] | [[2024-03-13]] β‡’ diff --git a/content/notes/dailies/2024-03-13.md b/content/writing/notes/periodic/dailies/2024-03-13.md similarity index 99% rename from content/notes/dailies/2024-03-13.md rename to content/writing/notes/periodic/dailies/2024-03-13.md index 3a096983..0fa4e3be 100644 --- a/content/notes/dailies/2024-03-13.md +++ b/content/writing/notes/periodic/dailies/2024-03-13.md @@ -5,6 +5,7 @@ updated: 2024-03-13 tags: - projects/personal/homelab - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-12]] | [[2024-03-14]] β‡’ diff --git a/content/notes/dailies/2024-03-14.md b/content/writing/notes/periodic/dailies/2024-03-14.md similarity index 98% rename from content/notes/dailies/2024-03-14.md rename to content/writing/notes/periodic/dailies/2024-03-14.md index 3ac05620..02f2e605 100644 --- a/content/notes/dailies/2024-03-14.md +++ b/content/writing/notes/periodic/dailies/2024-03-14.md @@ -5,6 +5,7 @@ updated: 2024-03-14 tags: - economics/project-management - notes/daily + - seasons/rhythm draft: false --- ⇐ [[2024-03-13]] | [[2024-03-15]] β‡’ diff --git a/content/notes/dailies/2024-03-15.md b/content/writing/notes/periodic/dailies/2024-03-15.md similarity index 81% rename from content/notes/dailies/2024-03-15.md rename to content/writing/notes/periodic/dailies/2024-03-15.md index 09ed54fc..2f15da61 100644 --- a/content/notes/dailies/2024-03-15.md +++ b/content/writing/notes/periodic/dailies/2024-03-15.md @@ -7,7 +7,8 @@ tags: - projects/personal/homelab - business/admin - notes/daily - - projects/cgc/blog + - seasons/rhythm + - projects/cgc/cgc-gatsby-template draft: false --- ⇐ [[2024-03-14]] | [[2024-03-17]] β‡’ @@ -23,12 +24,12 @@ draft: false #### NUnit Discord Logger - **PLAN:** - - Create ASP.NET general service to collect & batch logs - - Create `ITrace` for use in NUnit tests - - Implement on test server webhook - once confirmed, move over to core server + - Create ASP.NET general service to collect & batch logs + - Create `ITrace` for use in NUnit tests + - Implement on test server webhook - once confirmed, move over to core server - **DELIVERABLES:** - - A message (locally) posted from NUnit to Discord - - Stretch goal is a webhook configuration able to create a new thread in a Forum channel[^3] + - A message (locally) posted from NUnit to Discord + - Stretch goal is a webhook configuration able to create a new thread in a Forum channel[^3] ### Afternoon Block #### Backstage Local Run @@ -36,22 +37,22 @@ draft: false As dayjob work starts shuffling up a bit more, I want to elbow for a bit of room to keep working on Backstage plugins. To do that, I need to get my local Backstage build back up-and-running - and probably *updated* as well, since god knows how long it has been since I got that running 😬 - **PLAN:** - 1. Redownload Backstage as a fresh repo - 2. Possible minor configuration - I'll likely test this on the CGC GitHub repository so I have the admin access needed to generate keys & pull information - 3. Taking a closer (more organized) look at the run scopes in the repo + 1. Redownload Backstage as a fresh repo + 2. Possible minor configuration - I'll likely test this on the CGC GitHub repository so I have the admin access needed to generate keys & pull information + 3. Taking a closer (more organized) look at the run scopes in the repo - **DELIVERABLES:** - 1. Docker Compose-able Backstage running locally for plugin development. hype hype hype! πŸŽ‰ + 1. Docker Compose-able Backstage running locally for plugin development. hype hype hype! πŸŽ‰ #### Shop Excerpt Written Today may be a dayjob early-release day, in which case I *really* need to get [[shop-highlight-note|the Shop Highlight excerpt]] written & sent. - **PLAN:** - 1. Take a look at the notes I took last week - 2. Jot down draft, run it through something to un-fuck my fucked writing style. + 1. Take a look at the notes I took last week + 2. Jot down draft, run it through something to un-fuck my fucked writing style. - **DELIVERABLES:** - 1. Deliver as formatted email w/ Markdown attachment. God bless Markdown - hopefully this time doesn't end up like [[digital-gardening-with-quartz#^1bc4a7|the last guest post I wrote]] 😬 - + 1. Deliver as formatted email w/ Markdown attachment. God bless Markdown - hopefully this time doesn't end up like [[digital-gardening-with-quartz#^1bc4a7|the last guest post I wrote]] 😬 + ### Evening Block #### Eco Server Run @@ -59,11 +60,11 @@ Today may be a dayjob early-release day, in which case I *really* need to get [[ The friends have settled on eco!! I believe I got most of this taken care of last night, but may need to adjust server run parameters. This'll be the first stress test of the Allytron's game container, so I don't totally know what the resource req will look like. - **PLAN:** - 1. Rally the lads! - 2. Monitor specs during run - 3. OPTIONAL: bully my partner into joining us + 1. Rally the lads! + 2. Monitor specs during run + 3. OPTIONAL: bully my partner into joining us - **DELIVERABLES:** - 1. Fun, enjoyment, social satisfaction, etc. etc. + 1. Fun, enjoyment, social satisfaction, etc. etc. ## Today's Report diff --git a/content/notes/dailies/2024-03-17.md b/content/writing/notes/periodic/dailies/2024-03-17.md similarity index 87% rename from content/notes/dailies/2024-03-17.md rename to content/writing/notes/periodic/dailies/2024-03-17.md index 6e3fe317..8ec41b26 100644 --- a/content/notes/dailies/2024-03-17.md +++ b/content/writing/notes/periodic/dailies/2024-03-17.md @@ -4,9 +4,10 @@ date: 2024-03-17 updated: 2024-03-17 tags: - notes/daily + - seasons/rhythm - engineering/typescript - - projects/cgc/blog - engineering/csharp + - "#projects/cgc/cgc-gatsby-template" draft: false --- ⇐ [[2024-03-15]] | [[2024-03-18]] β‡’ @@ -27,11 +28,11 @@ N/A Just to start the work week on a fresh note, I'm going to wrap up the Discord forum logging before anything else today. - **PLAN:** - 1. Test hooks manually onto a forum channel in a test server - 2. Transfer customizations over to a configuration file - 3. Insert the head commit hash for splitting threads by deployment + 1. Test hooks manually onto a forum channel in a test server + 2. Transfer customizations over to a configuration file + 3. Insert the head commit hash for splitting threads by deployment - **DELIVERABLES:** - - [ ] Threaded, batched logs, output to the test server forum channel + - [ ] Threaded, batched logs, output to the test server forum channel ### Evening Block @@ -40,10 +41,10 @@ Just to start the work week on a fresh note, I'm going to wrap up the Discord fo While [[2024-03-10#Today's Report|the current landing page]] isn't particularly bad, it isn't *good* either. I'd like to do some touch-ups, with inspiration from a couple of examples of quartz that have customized their sites to a greater degree. - **PLAN:** - 1. There's a particular Quartz site I saw that had a fantastic implementation of a landing page - I'll need to find that - 2. Review the code for their emitter (provided it's open-source β€” fingers crossed 🀞) + 1. There's a particular Quartz site I saw that had a fantastic implementation of a landing page - I'll need to find that + 2. Review the code for their emitter (provided it's open-source β€” fingers crossed 🀞) - **DELIVERABLES:** - - [ ] If feeling spicy, possibly give implementation a try. + - [ ] If feeling spicy, possibly give implementation a try. ## Today's Report @@ -58,7 +59,7 @@ I think that, personally, I need to start being better about catching myself get 1. Create well-written, well-scoped MVP documents for projects/milestones, and be better about catching myself wandering. Possibly a candidate for the new [[tags/projects/index|projects]] tag, perhaps? 2. Find a way to more aggressively remind myself to [[time-tracking|time-track]]. Judging by a drop in my tracking coverage (-70% compared to two weeks ago), I need *something* to keep me on track, there. - - I do need to give myself a bit of grace, here - a [[2024-03-10|recent lapse in medication]] left me pretty hobbled the past couple weeks. This week should be better. + - I do need to give myself a bit of grace, here - a [[2024-03-10|recent lapse in medication]] left me pretty hobbled the past couple weeks. This week should be better. 3. Adopt some kind of to-do list system. I [[2024-03-15|talked about this a bit, recently]], and I think I just need to kick myself into doing it. I need some better system for breaking milestones into subtasks, and then ranking them by priority/size. Ironically, I'm currently building a system specifically *for* this kind of thing β€” but having trouble getting momentum on it because, ironically, I don't have a well-defined list of things to do. Very chicken-and-the-egg As for *wins* today, I will say that the [[simple-economics-of-open-source|kick-off for an OSS economics research project]] and introduction/reorg of the tag and explorer systems for the site were wins. I do think that a tag-based explorer system meshes better with my intentions for the Quartz graph system, and is *way* easier for people to traverse. There is some fuckery afoot with the current way it's handling tag index pages (only showing subtags, and not base-level tags within the category) but I'm feeling much more confident with Quartz tag emitters, now. That'll be something on the chopping block, likely this week. diff --git a/content/notes/dailies/2024-03-18.md b/content/writing/notes/periodic/dailies/2024-03-18.md similarity index 63% rename from content/notes/dailies/2024-03-18.md rename to content/writing/notes/periodic/dailies/2024-03-18.md index 5ac9c028..3dc1d43f 100644 --- a/content/notes/dailies/2024-03-18.md +++ b/content/writing/notes/periodic/dailies/2024-03-18.md @@ -4,6 +4,7 @@ date: 2024-03-18 updated: 2024-03-18 tags: - notes/daily + - seasons/rhythm - engineering/csharp - engineering/devops draft: false @@ -23,15 +24,15 @@ draft: false In order to catch the spunky, sexy, broad amalgamation of ways that infrastructure can fuck up in The Cloudβ„’, it'll be nice to have a cloud-based test suite that logs back to monitoring channels - **PLAN:** - - [x] Wrap tests into Docker Container - - [x] Local test container/compose running (successfully or not) locally - - [x] Adapt, adjust environment variable & ASP.NET environment - - [x] Create image push to cloud via Actions - - [ ] **ADD**: Required networking changes to VPC - - [ ] **ADD**: Deploy & test networking changes to VPC - - [ ] Create Terraform infrastructure for new ECS entry + - [x] Wrap tests into Docker Container + - [x] Local test container/compose running (successfully or not) locally + - [x] Adapt, adjust environment variable & ASP.NET environment + - [x] Create image push to cloud via Actions + - [ ] **ADD**: Required networking changes to VPC + - [ ] **ADD**: Deploy & test networking changes to VPC + - [ ] Create Terraform infrastructure for new ECS entry - **DELIVERABLES:** - - [ ] Tests running (successfully or not) in cloud + - [ ] Tests running (successfully or not) in cloud ### Afternoon Block @@ -40,14 +41,14 @@ In order to catch the spunky, sexy, broad amalgamation of ways that infrastructu With access to the GET REST APIs for Discord, now (through a bot - [[2024-03-17#^d8dd81|not thrilled]], but w/e), I can do the final steps for deployment logging using Discord Forum channels - **PLAN:** - - [x] Generate webhook channel - - [ ] Add webhook to internal C# library - - [ ] Create new `ILogger` sub-interface - - [ ] Create batcher - - [ ] Create sender - - [ ] Inject logic into NUnit `ITrace` + - [x] Generate webhook channel + - [ ] Add webhook to internal C# library + - [ ] Create new `ILogger` sub-interface + - [ ] Create batcher + - [ ] Create sender + - [ ] Inject logic into NUnit `ITrace` - **DELIVERABLES:** - - [ ] Threads created through `NUnit ITrace` + - [ ] Threads created through `NUnit ITrace` ### Evening Block @@ -56,12 +57,12 @@ With access to the GET REST APIs for Discord, now (through a bot - [[2024-03-17# This has been backburn'd for *way* too long. I *will* send this today, before I do *anything* else with CGC time. - **PLAN:** - - [ ] Review note last state - - [ ] Finish first draft - - [ ] Edit it (probably with AI. there is a time and a place for [[binglish]], and this is it.) - - [ ] Subject my partner to my shitty writing for proofread. + - [ ] Review note last state + - [ ] Finish first draft + - [ ] Edit it (probably with AI. there is a time and a place for [[binglish]], and this is it.) + - [ ] Subject my partner to my shitty writing for proofread. - **DELIVERABLES:** - - [ ] Highlight note sent as attachment & markdown. + - [ ] Highlight note sent as attachment & markdown. ## Today's Report diff --git a/content/writing/notes/periodic/dailies/2024-03-19.md b/content/writing/notes/periodic/dailies/2024-03-19.md new file mode 100644 index 00000000..e2f88c7c --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-19.md @@ -0,0 +1,73 @@ +--- +title: "2024-03-19" +date: "2024-03-19" +updated: "2024-03-19" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-03-18]] | [[2024-03-20]] β‡’ + +## Today's Plan + +> - **[[writing/notes/periodic/dailies/2024-03-19#Morning Block|Morning Block]]**: Morning work session, typically 9am - 12pm +> - **[[writing/notes/periodic/dailies/2024-03-19#Afternoon Block|Afternoon Block]]**: Afternoon work session - usually the bulk of work. 12pm - 5pm +> - **[[writing/notes/periodic/dailies/2024-03-19#Evening Block|Evening Block]]**: Evening work session for CGC-related work, 5pm - ??? + +### Morning Block + +#### Cloud Testing + +In order to catch the spunky, sexy, broad amalgamation of ways that infrastructure can fuck up in The Cloudβ„’, it'll be nice to have a cloud-based test suite that logs back to monitoring channels + +- **PLAN:** + - [ ] **ADD**: Required networking changes to VPC + - [ ] **ADD**: Deploy & test networking changes to VPC + - [ ] Create Terraform infrastructure for new ECS entry +- **DELIVERABLES:** + - [ ] Tests running (successfully or not) in cloud + +### Afternoon Block + +#### Final Discord Webhook Work + +With access to the GET REST APIs for Discord, now (through a bot - [[2024-03-17#^d8dd81|not thrilled]], but w/e), I can do the final steps for deployment logging using Discord Forum channels + +- **PLAN:** + - [ ] Add webhook to internal C# library + - [ ] Create new `ILogger` sub-interface + - [ ] Create batcher + - [ ] Create sender + - [ ] Inject logic into NUnit `ITrace` +- **DELIVERABLES:** + - [ ] Threads created through `NUnit ITrace` + +### Evening Block + +#### Shop Highlight (for real, this time). + +This has been backburn'd for *way* too long. I *will* send this today, before I do *anything* else with CGC time. + +- **PLAN:** + - [ ] Review note last state + - [ ] Finish first draft + - [ ] Edit it (probably with AI. there is a time and a place for [[binglish]], and this is it.) + - [ ] Subject my partner to my shitty writing for proofread. +- **DELIVERABLES:** + - [ ] Highlight note sent as attachment & markdown. +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://discourse.pi-hole.net/t/commonly-whitelisted-domains/212 - commonly whitelisted domains for PiHole to avoid weird service shenanigans +[^3]: https://x.com/Josh_Merfeld/status/1769562704262660124?s=20 - some stats stuff around coin flip... falacies? that i want to take a look at later +[^4]: https://thesweetsetup.com/using-shortcuts-timery-options-when-opening/ - looking for countdown timers, stumbled on this. when i first got my iPhone and started time tracking, I had an obscene setup for Shortcuts to manage timery. A couple have survived, but it's good to see i didn't tread that path alone +[^5]: https://www.reddit.com/r/Cortex/comments/w1tyc7/comment/igmvr68/?utm_source=share&utm_medium=web2x&context=3 - oh? apparently rosemary[^4] is known in the niche productivity circles i frequent?? +[^6]: https://github.com/Yakitrak/obsidian-cli - obsidian CLI commands +[^7]: https://taskwarrior.org/docs/best-practices/ - god damn, i'm about to get waterboarded in tracking philosophy. +[^8]: https://publish.obsidian.md/tasks/Introduction - i have certainly gotten as far off track as humanly possible. +[^9]: https://youtube.com/clip/Ugkxw1BDLRth5UiQ-qhMKSb9O4EtiJ3wiTsM?si=jk54XcBh9oNBOlBD diff --git a/content/writing/notes/periodic/dailies/2024-03-20.md b/content/writing/notes/periodic/dailies/2024-03-20.md new file mode 100644 index 00000000..60e517f2 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-20.md @@ -0,0 +1,39 @@ +--- +title: 2024-03-20 +date: 2024-03-20 +updated: 2024-03-20 +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-03-19]] | [[2024-03-22]] β‡’ + +## Today's Plan + +> - **[[2024-03-20#Morning Block|Morning Block]]**: Morning work session, typically 9am - 12pm +> - **[[2024-03-20#Afternoon Block|Afternoon Block]]**: Afternoon work session - usually the bulk of work. 12pm - 5pm +> - **[[2024-03-20#Evening Block|Evening Block]]**: Evening work session for CGC-related work, 5pm - ??? + +### Morning Block + + + +### Afternoon Block + + + +### Evening Block + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://dev.to/joeholmes/creating-a-diy-digital-garden-with-obsidian-and-gatsby-378e - I'm thinking I'll be going to Gatsby. +[^3]: https://www.gatsbyjs.com/starters/juxtdesigncc/gatsby-starter-obsidian-garden - ah, yep. +[^4]: https://www.gatsbyjs.com/docs/how-to/performance/improving-site-performance/ - I'm not gonna let content load time issues fuck me again. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-03-22.md b/content/writing/notes/periodic/dailies/2024-03-22.md new file mode 100644 index 00000000..a46c8404 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-22.md @@ -0,0 +1,36 @@ +--- +title: "2024-03-22" +date: "2024-03-22" +updated: "2024-03-22" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-03-20]] | [[2024-03-24]] β‡’ + +## Today's Plan + +> - **[[2024-03-22#Morning Block|Morning Block]]**: Morning work session, typically 9am - 12pm +> - **[[2024-03-22#Afternoon Block|Afternoon Block]]**: Afternoon work session - usually the bulk of work. 12pm - 5pm +> - **[[2024-03-22#Evening Block|Evening Block]]**: Evening work session for CGC-related work, 5pm - ??? + +### Morning Block + +Feeling particularly demotivated to write block tasks today, since I'm largely just spinning on the same stuff. yeesh. + +### Afternoon Block + + + +### Evening Block + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-03-24.md b/content/writing/notes/periodic/dailies/2024-03-24.md new file mode 100644 index 00000000..37c532d7 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-24.md @@ -0,0 +1,37 @@ +--- +title: "2024-03-24" +date: "2024-03-24" +updated: "2024-03-24" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-03-22]] | [[2024-03-27]] β‡’ + +## Today's Plan + +*Yeesh* - I really fell off the wagon on these posts. Oops! πŸ˜… + +This did bring up some pretty noticeable flaws in the way that I work. What happened was: + +1. On [[2024-03-17]] I started looking at new systems for task management. +2. This brought me to the Obsidian Task plugin, which is a pretty involved process for task management. +3. This brought up some wicked formatting issues with the way my current Quartz website works +4. Because of the lack of customizability I've seen with Quartz, I made a call that it didn't fit my needs and that a Gatsby implementation of Obsidian Sync would be better +5. This ended up being a weird situation where I started a new local Git branch for the Gatsby transfer, which also threw off a ton of stuff with my Obsidian vaults and knocked my workflow totally out of whack +6. The rest of the week ended up being a combination of high-workload and low-E-block-motivation, so I didn't prioritize fixing my workflow until now. + +I'm still processing the takeaways from this. I really enjoy doing these daily posts because they provide structure and rhythm to my day and I felt that lack of structure throughout the week. I'd liken a potential solution to "avoiding avalanches", especially when working on version controlled projects where branches tend to snowball into giant monoliths. I'll mull it over, but in the meantime I think I've salvaged my workflow enough to keep these rolling out in the mean time. + +Granite and GitButler have been pitched as potential solutions to this. I've been trying Granite recently (on projects other than this one) but am of two minds that I may write about later. GitButler is on my list to try at some point. + +Another option is splitting this Obsidian vault into its own repository and using Git Submodules to manage these. We'll see β€” I've heard horror stories about Submodules but perhaps this is a good use case for them. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-03-27.md b/content/writing/notes/periodic/dailies/2024-03-27.md new file mode 100644 index 00000000..1b85c178 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-27.md @@ -0,0 +1,39 @@ +--- +title: 2024-03-27 +date: 2024-03-27 +updated: 2024-03-27 +tags: + - notes/daily + - seasons/rhythm + - consulting +draft: false +--- +⇐ [[2024-03-24]] | [[2024-03-28]] β‡’ + +## Today's Plan + +Okay. Phew. [[goblin-slaying|The Goblin]] has certainly been alive and well in me lately, but after blowing up my guardrails and repairing them (to some extent) I'm feeling... ready... to be ready... to start... to get back into... the swing of things. + +### Morning Block + +- Internal product demo prep & presentation + +### Afternoon Block + +- Finalizing internal testing image used throughout the entire CI/CD and deployment stacks + +### Evening Block + +- Consulting work! Helping scaffold out an analysis for a subcontracting opportunity - this isn't pro-bono so details are scarce, but very excited to see CGC be a business! with revenue! + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://tcude.net/monitoring-proxmox-with-influxdb-and-grafana/ - grafana monitoring dashboard for ProxMox +[^3]: https://www.freecodecamp.org/news/how-to-run-github-actions-locally/ - using `act` to locally run GitHub Actions +[^4]: https://github.com/mauwii/act-docker-images - actually good docker images to use with act +[^5]: Just a random thought - literacy in the abilities of technology is absolutely going to dominate every career in the next 20 years. The binglish article dunked on AI, but I genuinely believe that (in the tech literacy space) it's a net positive. In terms of "the health of information across the world", my stance still stands \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-03-28.md b/content/writing/notes/periodic/dailies/2024-03-28.md new file mode 100644 index 00000000..df8dd98c --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-28.md @@ -0,0 +1,24 @@ +--- +title: "2024-03-28" +date: "2024-03-28" +updated: "2024-03-28" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-03-27]] | [[2024-03-29]] β‡’ + +## Today's Plan + +Okay. I'm buckling down today and making these useful again. No more goblin. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://iximiuz.com/en/posts/from-docker-container-to-bootable-linux-disk-image/ - huh - burning a docker image into a bootable drive? +[^3]: https://github.com/iximiuz/docker-to-linux - what the fuck?? \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-03-29.md b/content/writing/notes/periodic/dailies/2024-03-29.md new file mode 100644 index 00000000..4c41f209 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-03-29.md @@ -0,0 +1,40 @@ +--- +title: 2024-03-29 +date: 2024-03-29 +updated: 2024-03-29 +tags: + - notes/daily + - seasons/rhythm + - engineering/csharp + - engineering/typescript +draft: false +--- +⇐ [[2024-03-28]] | [[2024-04-01]] β‡’ + +## Today's Plan + +Alright - cobbling together my rhythm again. For today - most of my team is out either sick, or for the eclipse running through Texas soon (ah, yes β€” the classic "eclipse day".) My boss told me to "either take the day off or work on something fun," so I think I'll be opting for the "something fun." + +There's a few side projects that I could pull off the shelf. One of them involves a few things I've been wanting to look at; namely: + +a) Rapid Prototyping +b) C#/TypeScript interactivity +c) Encryption & security standards + +We'll see how it goes! I've been looking at trying a faster workflow. One thing I've noticed (and lamented) about C# is how much *fucking* boilerplate there tends to be on ASP.NET project. It makes prototyping *incredibly* slow compared to, say, TypeScript and Python. I'm hoping to get around that for this project and, if all goes well, have a prototype for it by before the end of the day and pop off a bit early for some CGC work I'm *disastrously* behind on. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +Whew! Today's project went *great*, with a few particular highlights + +- In the process of trying to make this quick & painless, I've gotten *way* more comfortable with setting up Yarn monorepos for multi-language projects - this one in particular was a quick React/TS frontend and ASP.NET backend and... it works great! It does feel a bit odd to make a near-empty `project.json` and just remap a bunch of native `dotnet` commands to instead go through `yarn`, but *very* exciting +- I cannot emphasize enough how much heavy lifting Copilot did on the frontend. In general, I know *just* enough about Typescript and web development to be indisputably bad at it. However, the nice thing is that, in a case where you know core concepts but not notation, Copilot can help bridge the gap. + + The more I work professionally as an engineer, the more I come to accept that being able to read code is likely more important than being able to write it β€” and in this era, the gap seems to be widening. +- Okay - I rail on C# for being very boiler-plate-y, but β€” admittedly β€” starting with just a bare ASP.NET starter was *incredibly* refreshing. + +Between this and getting GitHub Actions to run, generally, locally on computers β€” that's two *huge* wins for this week. Ending the week on this note is *super* satisfying. Provided the holiday weekend, I think I'll be taking both days off this weekend. We'll pick back up on Monday! πŸŽ‰ + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-01.md b/content/writing/notes/periodic/dailies/2024-04-01.md new file mode 100644 index 00000000..ee107289 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-01.md @@ -0,0 +1,29 @@ +--- +title: 2024-04-01 +date: 2024-04-01 +updated: 2024-04-01 +tags: + - notes/daily + - seasons/rhythm + - engineering/csharp + - engineering/devops +draft: false +--- +⇐ [[2024-03-29]] | [[2024-04-02]] β‡’ + +## Today's Plan + +Alright! After a holiday weekend (truly) off, I'm getting back in the swing of things this week! The broad-strokes agenda: + +- [ ] Write up documentation for Friday's super fun (apparently top sneaky) project & proofread +- [ ] Get started on some Fastmatrix horticulture. +- [ ] For CGC, I have some clerical work to do - in particular, organizing tax documents (riveting!), getting back to a handful of research emails +- [ ] As a treat for the evening, there's either a) an analytics project or b) continuing Gatsby rewrite work. We'll see how the afternoon goes! + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-02.md b/content/writing/notes/periodic/dailies/2024-04-02.md new file mode 100644 index 00000000..469dc197 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-02.md @@ -0,0 +1,24 @@ +--- +title: "2024-04-02" +date: "2024-04-02" +updated: "2024-04-02" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-01]] | [[2024-04-03]] β‡’ + +## Today's Plan + +On the agenda today - my teammates are back from sick & vacation leave, so there's a bit of C# learnin's I'll need to do now that they're back! + +As for CGC, we'll see - rockin' a wicked headache today and may not go as far as working in the evening. A nap may be in order. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-03.md b/content/writing/notes/periodic/dailies/2024-04-03.md new file mode 100644 index 00000000..54fccd53 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-03.md @@ -0,0 +1,35 @@ +--- +title: "2024-04-03" +date: "2024-04-03" +updated: "2024-04-03" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-02]] | [[2024-04-04]] β‡’ + +## Today's Plan + +Okay! Another day down - ended a bit early yesterday due to the migraine, but after 14(!!) hours of sleep I'm feeling very ready to do a *full*, full day. + +On the chopping block: + +**NWYC:** +- [ ] Finalize report on some intricacies of Cybersource payment processing +- [ ] Research FastMatrix deployments for mobile applications +- [ ] Begin a proof-of-concept for some deployment strategies I would like to make for other members of an internal team + +**CGC:** +I need to get back into the swing of CGC work in earnest. Absent a to-do list β€” emphasis warranted, as trying to upend my workflows to make room for one is what blew up the last two weeks β€” I believe my priorities are: +- [ ] chiseling apart an amalgamation of tiny tasks that have been haunting me the last two weeks +- [ ] Attempting to get a passable version of the new Gatsby template for the blog. Last I left off, I was (finally) able to get MD/MDX rendering. Next up is styling, emulating the same general behavior as the original Quartz template. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/da-flex-api-intro.html - Flex API, warning against client-side implementation. Redirects to Unified Checkout \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-04.md b/content/writing/notes/periodic/dailies/2024-04-04.md new file mode 100644 index 00000000..c77e826c --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-04.md @@ -0,0 +1,24 @@ +--- +title: "2024-04-04" +date: "2024-04-04" +updated: "2024-04-04" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-03]] | [[2024-04-05]] β‡’ + +## Today's Plan + + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://medium.com/@jwag/fastlane-with-react-native-and-github-actions-f6ee97f34d0a - FastLane deployment for iOS and Android, React Native Specific Implementation \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-05.md b/content/writing/notes/periodic/dailies/2024-04-05.md new file mode 100644 index 00000000..226ab6f8 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-05.md @@ -0,0 +1,23 @@ +--- +title: "2024-04-05" +date: "2024-04-05" +updated: "2024-04-05" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-04]] | [[2024-04-06]] β‡’ + +## Today's Plan + + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-06.md b/content/writing/notes/periodic/dailies/2024-04-06.md new file mode 100644 index 00000000..dd1ef586 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-06.md @@ -0,0 +1,22 @@ +--- +title: "2024-04-06" +date: "2024-04-06" +updated: "2024-04-06" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-05]] | [[2024-04-07]] β‡’ + +## Today's Plan + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: turnkey-install-security-updates \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-09.md b/content/writing/notes/periodic/dailies/2024-04-09.md new file mode 100644 index 00000000..33a9145b --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-09.md @@ -0,0 +1,28 @@ +--- +title: "2024-04-09" +date: "2024-04-09" +updated: "2024-04-09" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-06]] | [[2024-04-11]] β‡’ + +## Today's Plan + +Ugh. I've gotten so caught up in homelab stuff that this has totally fallen by the wayside. I heard once that it takes 90 days to establish a habit, and it appears I only got... + +Eh. 25 days in, depending on how you count it? I'd have to take a look at the actual dates, but it looks like around [[2024-03-14]] was when it *really* dropped off. Of all the days to fall off the wagon, Pi Day is the wildest. + +I'll find some way to get this together with a retrospective. There were some on-and-off periods of getting things done in that time β€” by no means did I get *nothing* done, but it certainly was not a planned period. There was a *lot* of homelab work done in that time. + +I think I'm going to hit a resting point with all of that, though, which means I can get back to these write-ups β€” along with some adjacent work β€” to fill that time instead. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-11.md b/content/writing/notes/periodic/dailies/2024-04-11.md new file mode 100644 index 00000000..95c02cb1 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-11.md @@ -0,0 +1,22 @@ +--- +title: "2024-04-11" +date: "2024-04-11" +updated: "2024-04-11" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-09]] | [[2024-04-14]] β‡’ + +## Today's Plan + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-14.md b/content/writing/notes/periodic/dailies/2024-04-14.md new file mode 100644 index 00000000..3fe554d8 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-14.md @@ -0,0 +1,56 @@ +--- +title: "2024-04-14" +date: "2024-04-14" +updated: "2024-04-14" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-11]] | [[2024-04-15]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-14") + dur(2 days) +SORT date ASC +``` + +## Today's Plan + +### [[obsidian-tasks-workflow]] + +- [x] #task Install & initially configure Obsidian Tasks & Dataview for #projects/personal/obsidian-tasks-workflow[created:: 2024-04-14] [completion:: 2024-04-14] +- [x] #task Test pull individual tasks from project from across repo into #projects/personal/obsidian-tasks-workflow[created:: 2024-04-14] [completion:: 2024-04-14] + - It feels a bit odd, but putting the task writeup in the `/tags` directory may alleviate Tasks requiring a direct tag link to parse/query. It may also encourage me to make sure all tags have index pages. +- [ ] #task Configure Raycast Obsidian Tasks to add Tasks to daily template by default for #projects/personal/obsidian-tasks-workflow [created:: 2024-04-14] + - So, unfortunately, it appears that I can't auto-append to the current daily note. I'm sure there's a couple ways I could skirt around this but it's really not worth my time right now. For now, I'm going to have to be happy with [[tags/projects/misc|using a scratch note for tacking miscellaneous tasks.]] +- [ ] #task #projects/personal/obsidian-tasks-workflow PR to Raycast Obsidian plugin to allow directives ({{ ... }}) in the link. I'd like to append tasks to specifically the date on which they were created. Granted, I should probably get used to how Tasks work before altering anything. [priority:: lowest] [created:: 2024-04-14] +- [x] #task Create a project page template for quick access #projects/personal/obsidian-tasks-workflow [completion:: 2024-04-14] +- [x] #task #projects/personal/obsidian-tasks-workflow Add project backlog to #projects tag tree [created:: 2024-04-14] [completion:: 2024-04-14] +- [x] #task #projects/personal/obsidian-tasks-workflow create new project block template for daily notes [created:: 2024-04-14] [completion:: 2024-04-14] + +### [[obsidian-periodic-notes-setup]] + +- [x] #task #projects/personal/obsidian-periodic-notes-setup Install & configure directory structure [completion:: 2024-04-14] +- [x] #task #projects/personal/obsidian-periodic-notes-setup Create template with upcoming tasks query [completion:: 2024-04-14] +### [[tags/projects/misc]] + +- [x] #task #projects/misc CGC taxes [completion:: 2024-04-14] +- [x] #task #projects/misc Personal taxes (happy US tax day eve!! πŸŽ‰πŸ’Έ) [completion:: 2024-04-14] +- [x] #task #projects/misc Arc Browser spring cleaning - move [[tags/projects/personal/homelab/index|Allytron]] browser entries out of Personal space to declutter entry point [completion:: 2024-04-14] + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +I am *back!* + +Sometimes you have those wonderful, magic days where everything seems to fit together. Shoutout to Obsidian and the custom plugins community - the way that Tasks, Dataview, Templater, and Periodic Notes come together is just... \**mwah*\* chef's kiss, so good. + +For the first time in a couple weeks, I feel like I finally, once again, have a handle on the snowball of small thing that have built up over time. In the same way that starting writing helped get ideas out of my brain and onto a page (digital, but it still counts!), I have high hopes this'll do the same for tasks. + +I'll have to remember this when it comes time to create the [[cgc-gatsby-template|Gatsby templates]] for the new styles. + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-15.md b/content/writing/notes/periodic/dailies/2024-04-15.md new file mode 100644 index 00000000..692107ba --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-15.md @@ -0,0 +1,63 @@ +--- +title: "2024-04-15" +date: "2024-04-15" +tags: + - notes/daily + - seasons/rhythm +draft: false +--- +⇐ [[2024-04-14]] | [[2024-04-16]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-15") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` + +## Today's Plan + +Alright - I'd like to hit the ground running this week so I can take next week easy, possibly with a long weekend. + +As an aside - if this projects system works out, I may want to try retroactively applying these to earlier daily notes. + +### [[fastlane-demo]] + +- [ ] #task #projects/dayjob/fastlane-demo Finish setting up local instances of Android Studio & Xcode. It's days like this that make me glad I'm not usually in the mobile app development business. + - [x] #task #projects/dayjob/fastlane-demo I'm going to have to fetch a shitload of developer certificates and keys from both the Apple and Google stores. Yeesh. Recording here for a process doc [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo **iOS** [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo Create app, developer profile, certificate from Apple [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo Create calendar entries for key/cert expiration dates [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo **ANDROID** [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo AMEND: Install [OpenJDK](https://jdk.java.net/)(?) instead of Java 17, as encryption library is required for [android signing keys](https://stackoverflow.com/questions/76516045/cannot-find-any-provider-supporting-rsa-none-oaepwithsha1andmgf1padding-when-t) [completion:: 2024-04-15] + - [x] #task #projects/dayjob/fastlane-demo *Manually* create keystore using play's keysign `jar`/java [completion:: 2024-04-15] + - It looks like there's a *lot* of setup to go before either of these are upload-able, including the initial seed build on Google Play so that the application can get a default bundle name. Yuck. + +### [[tags/projects/misc]] + +- [ ] #task #projects/misc Before I leave the office, sending out that highlight note. +- [x] #task #projects/misc When I take out the bins after work today, I should take a bit of time to de-clutter Karmala while they're front and center. [completion:: 2024-04-17] +- [x] #task #projects/misc Laundry party. I'm quickly running out of pants. [completion:: 2024-04-17] +- [ ] #task #projects/misc If I'm feeling real spicy, there's a couple pairs of pants I need to iron & sew cuffs into. +- [x] #task #projects/misc I've got a dinner to go to this evening as an ✨ esteemed and accomplished alumni 🌈 of the University of Utah β€” I think there's some kind of panel going on. i am very excited to [impart some sage wisdom on the local youths](https://www.youtube.com/watch?v=OZFgxalnsmE) [completion:: 2024-04-15] + +### [[cgc-gatsby-template]] + +- [x] #task #projects/cgc/cgc-gatsby-template Finish periodic notes setup such that: [completion:: 2024-04-15] + - [x] #task #projects/cgc/cgc-gatsby-template Seasonal entries (e.g. [[rhythm|the Season of Rhythm]]) are set as a "soft" quarterly entry [completion:: 2024-04-15] + - [x] #task #projects/cgc/cgc-gatsby-template Weekly & Daily entries are titled based on the current season [completion:: 2024-04-15] + - [x] #task #projects/cgc/cgc-gatsby-template Weekly & Daily entries get tagged based on the current season [completion:: 2024-04-15] + - This should be active tomorrow - very excited! + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +Well... I *did* say that [[obsidian-tasks-workflow#Hindsight|the new tasks workflow would be a good measurement for overestimating how much I can do in a day]]. That seems to've been proven correct - the task plans for the fastlane demo have taken longer than expected. It's interesting β€” there's just a *lot* cookin' on automated app deployments that I hadn't considered. In particular, I've noticed how many options there are during app store deployments (both iOS and Android) that are, under normal circumstances, handled by the stores or IDEs themselves β€” certs, keys, etc. etc. Unfortunately, that luxury doesn't seem to exist when automating everything yourself. + +I am very excited, though, to more tightly integrate seasonal themes into the day-to-day. While I wasn't writing every day for the past few weeks, I (thankfully, for my own sanity) did keep up a pretty good rhythm β€” with some notable periods of exception, but hey, it's all in progress. + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://zachyoung.dev/posts/templater-snippets/ - templater snippets \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-17.md b/content/writing/notes/periodic/dailies/2024-04-17.md new file mode 100644 index 00000000..4440c276 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-17.md @@ -0,0 +1,65 @@ +--- +title: "The Season of Rhythm: Day 51" +date: 2024-04-17 +tags: + - seasons/rhythm + - notes/daily +draft: false +--- +⇐ [[2024-04-15]] | [[2024-04-18]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-17") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` +## Today's Plan + +It's interesting how "I need a break" is less a logical thought and more of a gut feeling that bubbles up over time. I may want to take a look at doing a pseudo-vacation sometime soon - even just a 3-day something-or-another would be good to put on the books, just to hang a carrot in front of myself. + +Today is going to be mainly throwing myself back into app store deployment stuff, and then likely an afternoon of spring cleaning. Fairly straightforward. + +### [[dayjob-misc]] + +- [x] #task #projects/dayjob/dayjob-misc AMEND: An emergency issue came up - no details here. IYKYK. [completion:: 2024-04-18] + +### [[fastlane-demo]] + +- [>] #task #projects/dayjob/fastlane-demo Finish setting up local instances of Android Studio & Xcode. It's days like this that make me glad I'm not usually in the mobile app development business. + - [>] #task #projects/dayjob/fastlane-demo Last I left off, I was dealing with the dumb OpenJDK stuff on the Play Store SDK. With that past, I can go back in and pull in all the variables, hopefully getting the seed build for the Play Store. +- [>] #task #projects/dayjob/fastlane-demo Get React Native scaffold to a full-build state: `/ios` and `/android` directories out with full, deploy-able builds +- [>] #task #projects/dayjob/fastlane-demo Set up initial, ***laneless*** fastlane deployment. Possibly find some way to test it locally, so I don't get stuck in Actions, `please-work-this-time` commit messages +- [>] #task #projects/dayjob/fastlane-demo Demo! +- [>] #task #projects/dayjob/fastlane-demo Fill in tickets retroactively. + +### [[cgc-gatsby-template]] + +- [I] #task #projects/cgc/cgc-gatsby-template Given that Obsidian is ultimately a web frontend, with themes made in CSS... It wouldn't be a bad idea to try and use Obsidian's CSS theme directly to render the website. There's a possibility to use symlinks to just fetch the `css` file out of the `.obsidian` directory and place it where Gatsby expects CSS to live. Food for thought. + - [i] If this does end up being the case (and I'm hoping it does, since it'd be a very nice way to... not have to worry about CSS myself, to be honest) I'd also like a clean way to shout-out the theme, possibly in the footer. + - [i] As of right now, this is the [AnuPpuccin](https://github.com/AnubisNekhet/AnuPpuccin) theme and I *love* it β€” the Catppuccin Mocha theme available for Obsidian scared me away with the sheer number of color highlights, so if I could kick some attention over to Anubis that would be nice. Once everything is up, I'll have to [buy her a coffee](https://buymeacoffee.com/anubisnekhet) +- [I] #task #projects/cgc/cgc-gatsby-template Another facet to take into account is the possibility of "solidifying" `dataview` queries on the site[^2]. + +### [[homelab/index]] + +- [-] #task #projects/personal/homelab Well β€” it looks like I vastly overestimated the strength of my hardware for video transcoding via Tdarr. + - [i] I was hoping that the use of the 970 would be good for bulk transcodes, but it appears the main bottleneck of the system are the memory and CPU. + - [i] It wasn't a total waste of time - this is the first time I've ever delved into CPU prioritization, and being able to prioritize critical tasks (e.g. cloud storage, DNS) over tertiary background things like transcoding is hardly a bad thing. It definitely alleviates my anxiety over keeping the CPU at high loads for prolonged periods, since I'd be able to know that critical tasks won't get pushed out of the way and the system will remain *relatively* stable. + - [i] That said, on a usage/wear level alone, I'll have to table transcoding for now. Having the server in my bedroom does give a functional cap on how/when I put the server under heavy loads, as my partner and I are the ones that have to deal with the noise of the cooling fans. I still have the LXC available in case it's something I want to revisit later. + - [i] Unfortunately, it appears that, by and large, the only recommendations for "what to use a GPU in a homelab server" for are + 1. Gaming (but more-or-less requires a VM, locking down a whole graphics card) + 2. Transcoding + 3. Machine Learning + - [i] So... in a way, I'm in exactly the same position I was [[2024-03-12#Jellyfin & GPU Passthrough|a month ago]], but this time down $130. As much as I like to say that "the price of learning is teaching", this time the price of learning was a GTX 750TI *and* a GT 1030. There are officially more graphics cards in my house than people. *Whoops* Β―\\_(ツ)_/Β― + - [I] *However...* After looking at TDARR, I saw that there's at least *some* ability to use a GPU over a network. I wonder if it would be possible to have a Windows VM that *communicates* with a GPU-enabled LXC, allowing for a gaming VM that doesn't put the entire card on lock. Food for thought. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: https://blacksmithgu.github.io/obsidian-dataview/resources/develop-against-dataview/ - NPM library for Dataview execution \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-18.md b/content/writing/notes/periodic/dailies/2024-04-18.md new file mode 100644 index 00000000..35efba18 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-18.md @@ -0,0 +1,59 @@ +--- +title: "Rhythm: Day 52" +date: 2024-04-18 +tags: + - seasons/rhythm + - notes/daily +draft: false +--- +⇐ [[2024-04-17]] | [[2024-04-19]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-18") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` + +## Today's Plan + +Yesterday was thrown off a bit by an incident that came up during the day, so most of today will be post-mortem on yesterday. If time permits, I'd like to get reacquainted with whatever was left the day before. + +As for CGC, I'd like to stay after a bit and chisel at the Gatsby template, possibly taking a look at yesterday's idea for directly using the current Obsidian theme for the site. + +## Tasklist + +### [[dayjob-misc]] + +- [-] Setting up a system for re-ingesting modified CloudWatch logs back into CloudWatch. + - [i] Juice wasn't worth the squeeze. +- [!] #task #projects/dayjob/dayjob-misc Cleanup after yesterday's incident management - possible technical write-up of the issue. [completion:: 2024-04-18] + +### [[terraform-testing]] + +- [x] #task #projects/dayjob/terraform-testing Review Hashicorp docs for [LocalStack](https://www.youtube.com/watch?v=DDa1PcHRQ4I) [completion:: 2024-04-18] +- [x] #task #projects/dayjob/terraform-testing Take task notes, create soft plan [completion:: 2024-04-18] + +### [[fastlane-demo]] + +- [>] #task #projects/dayjob/fastlane-demo Finish setting up local instances of Android Studio & Xcode. It's days like this that make me glad I'm not usually in the mobile app development business. + - [>] #task #projects/dayjob/fastlane-demo Last I left off, I was dealing with the dumb OpenJDK stuff on the Play Store SDK. With that past, I can go back in and pull in all the variables, hopefully getting the seed build for the Play Store. +- [>] #task #projects/dayjob/fastlane-demo Get React Native scaffold to a full-build state: `/ios` and `/android` directories out with full, deploy-able builds +- [>] #task #projects/dayjob/fastlane-demo Set up initial, ***laneless*** fastlane deployment. Possibly find some way to test it locally, so I don't get stuck in Actions, `please-work-this-time` commit messages +- [>] #task #projects/dayjob/fastlane-demo Demo! +- [>] #task #projects/dayjob/fastlane-demo Fill in tickets retroactively. + +### [[homelab/index]] + +- [I] #task #projects/personal/homelab At some point, it would be nice to take a look at a self-hosted version of [LanguageTools](https://languagetool.org/dev) to see if it's possible to set up super particular rules around my writing style & dictionary. At the very least, *something* to do with the GPU. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +[^2]: - https://taoofmac.com/space/blog/2023/02/18/1845 - super similar blog!! \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-19.md b/content/writing/notes/periodic/dailies/2024-04-19.md new file mode 100644 index 00000000..f8019441 --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-19.md @@ -0,0 +1,35 @@ +--- +title: "Rhythm: Day 53" +date: 2024-04-19 +tags: + - seasons/rhythm + - notes/daily +draft: false +--- +⇐ [[2024-04-18]] | [[2024-04-20]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-19") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` + +## Today's Plan + +### [[dayjob-misc]] + +- [ ] #task #projects/dayjob/dayjob-misc Appends & edits to access control document. + + + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. +<% `[^${parseInt(tp.file.content.match(/\[\^(\d+)/g).map(matched => matched.match(/\d+/)[0]).pop()) + 1}]` %>: https://labs.jstor.org/blog/introducing-juncture/ - Juncture, an interactive essay infrastructure from... JSTOR? \ No newline at end of file diff --git a/content/writing/notes/periodic/dailies/2024-04-21.md b/content/writing/notes/periodic/dailies/2024-04-21.md new file mode 100644 index 00000000..03f2428c --- /dev/null +++ b/content/writing/notes/periodic/dailies/2024-04-21.md @@ -0,0 +1,44 @@ +--- +title: "Rhythm: Day 55" +date: 2024-04-21 +tags: + - seasons/rhythm + - notes/daily +draft: false +--- +⇐ [[2024-04-19]] | [[2024-04-22]] β‡’ + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-21") + dur(2 days) +SORT date ASC +GROUP BY file.link +``` + +## Today's Plan + +*Yeesh*. Starting the day halfway through - just got back from a drag brunch and I feel like somebody has activated noise cancelling on my literal ear drums. + +Main thing today is to chew through some smaller things that have been building up. No formal task blocks today β€” if time permits, I'll take a look at the CGC Backstage. + +### [[cgc-backstage]] + +- [x] #task #projects/cgc/cgc-backstage Re-instantiated template on `#latest` - fresh push to repo [completion:: 2024-04-21] +- [ ] #task #projects/cgc/cgc-backstage +- [ ] #task #projects/cgc/cgc-backstage Operational build hosted on Allytron +- [ ] #task #projects/cgc/cgc-backstage GitHub CGC Organization Data Pull +- [ ] #task #projects/cgc/cgc-backstage GitHub CGC Organization Authentication. It'll be just me, for right now β€” *oh, so lonely* + +### [[cgc-misc]] + +- [I] #task #projects/cgc/cgc-misc At some point, I would like to do an #annotations project on management research on transitioning from a small- to medium-sized business. I have, in passing, *heard* about Executive MBA classes dedicated entirely to this subject, but have never read the research myself. + +## Today's Report + +> To have the full intended experience, please listen to the [Pikmin 2 "Today's Report" theme](https://www.youtube.com/watch?v=l1fCmKZnq3U&list=PLwyW5mbdZMGN8mGTqvDhsBs37SW4TkHcw&index=85) while reading + +N/A + +[^1]: [[caveat-lector|caveat lector]] β€” This is a daily note! I don't actively maintain any information in daily notes, so please be cautious in following any advice here. \ No newline at end of file diff --git a/content/writing/notes/periodic/weeklies/.gitkeep b/content/writing/notes/periodic/weeklies/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/content/writing/notes/periodic/weeklies/2024-W16.md b/content/writing/notes/periodic/weeklies/2024-W16.md new file mode 100644 index 00000000..4b8bdcde --- /dev/null +++ b/content/writing/notes/periodic/weeklies/2024-W16.md @@ -0,0 +1,45 @@ +--- +title: "The Season of Rhythm: Week 7" +date: 2024-04-14 +tags: + - notes/weekly +draft: false +--- +## Up & Coming + +Okay! After an incredibly strong start today, I'm feeling ready to tackle an amalgamation of small things that I need to take care of. With the introduction of project pages and universal task management, I can now handle consolidating tasks for a given project across the entire Obsidian vault - particularly (and, most exciting-ly) the daily notes where I spend most of my time. + +### Projects + +- #projects/dayjob/fastlane-demo +- #projects/cgc/cgc-gatsby-template +- #projects/personal/tweedin-in-sweden + +## Tasks + +### Due + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-14") + dur(7 days) +SORT date ASC +GROUP BY file.link +``` + +### Done + +```dataview +TASK +WHERE typeof(completion) = "date" + AND completion >= date("2024-04-14") + AND completion < date("2024-04-14") + dur(7 days) +SORT date DESC +LIMIT 5 +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/writing/notes/periodic/weeklies/test.md b/content/writing/notes/periodic/weeklies/test.md new file mode 100644 index 00000000..ccebd073 --- /dev/null +++ b/content/writing/notes/periodic/weeklies/test.md @@ -0,0 +1,43 @@ +--- +title: "The Season of Rhythm: Week 7" +date: 2024-04-15 +tags: + - seasons/rhythm + - notes/weekly +draft: false +--- +## Up & Coming + +TODO + +### Projects + +TODO + +## Tasks + +### Due + +```dataview +TASK +WHERE !completed + AND typeof(due) = "date" + AND due <= date("2024-04-15") + dur(7 days) +SORT date ASC +GROUP BY file.link +``` + +### Done + +```dataview +TASK +WHERE typeof(completion) = "date" + AND completion >= date("2024-04-15") + AND completion < date("2024-04-15") + dur(7 days) +SORT date DESC +GROUP BY file.link +``` + +## Hindsight + +TODO \ No newline at end of file diff --git a/content/notes/putting-selfcontrol-on-raycast.md b/content/writing/notes/putting-selfcontrol-on-raycast.md similarity index 92% rename from content/notes/putting-selfcontrol-on-raycast.md rename to content/writing/notes/putting-selfcontrol-on-raycast.md index 36017c6d..8e22ab20 100644 --- a/content/notes/putting-selfcontrol-on-raycast.md +++ b/content/writing/notes/putting-selfcontrol-on-raycast.md @@ -11,7 +11,7 @@ draft: false --- > I talk a lot in this post. You may want to skip to [[putting-selfcontrol-on-raycast#The Useful Part|the useful part]]. -So, during this recent period of [[season-of-rhythm|trying to break quite a few years of bad work habits]], I've been putting up little guardrails in my own life to keep myself on-track when I want to stay on-track. One issue I've run into - especially during a *particularly tumultuous US election year* - is a tendency to check the news. +So, during this recent period of [[rhythm|trying to break quite a few years of bad work habits]], I've been putting up little guardrails in my own life to keep myself on-track when I want to stay on-track. One issue I've run into - especially during a *particularly tumultuous US election year* - is a tendency to check the news. And then, five minutes later, check the news again. diff --git a/content/notes/qamo.md b/content/writing/notes/qamo.md similarity index 100% rename from content/notes/qamo.md rename to content/writing/notes/qamo.md diff --git a/content/notes/raycast-review.md b/content/writing/notes/raycast-review.md similarity index 100% rename from content/notes/raycast-review.md rename to content/writing/notes/raycast-review.md diff --git a/content/notes/robloxaville-remaster.md b/content/writing/notes/robloxaville-remaster.md similarity index 100% rename from content/notes/robloxaville-remaster.md rename to content/writing/notes/robloxaville-remaster.md diff --git a/content/notes/scratch/brevity.md b/content/writing/notes/scratch/brevity.md similarity index 100% rename from content/notes/scratch/brevity.md rename to content/writing/notes/scratch/brevity.md diff --git a/content/notes/scratch/chaotic-good-eggplant.md b/content/writing/notes/scratch/chaotic-good-eggplant.md similarity index 100% rename from content/notes/scratch/chaotic-good-eggplant.md rename to content/writing/notes/scratch/chaotic-good-eggplant.md diff --git a/content/notes/scratch/dnd-cafe-vibes.md b/content/writing/notes/scratch/dnd-cafe-vibes.md similarity index 100% rename from content/notes/scratch/dnd-cafe-vibes.md rename to content/writing/notes/scratch/dnd-cafe-vibes.md diff --git a/content/notes/scratch/press-f-to-commit.md b/content/writing/notes/scratch/press-f-to-commit.md similarity index 100% rename from content/notes/scratch/press-f-to-commit.md rename to content/writing/notes/scratch/press-f-to-commit.md diff --git a/content/notes/scratch/shop-highlight-note.md b/content/writing/notes/scratch/shop-highlight-note.md similarity index 92% rename from content/notes/scratch/shop-highlight-note.md rename to content/writing/notes/scratch/shop-highlight-note.md index 7c74e1ce..8e91733b 100644 --- a/content/notes/scratch/shop-highlight-note.md +++ b/content/writing/notes/scratch/shop-highlight-note.md @@ -21,7 +21,7 @@ draft: true 3. How has being a member of The Shop Workspace impacted your work and creativity? - Possibly talk about [[the-quest-to-slay-the-goblin|the goblin]]? - - Touch on [[season-of-rhythm|the season of rhythm]] without coming across as a wacko cult maniac + - Touch on [[rhythm|the season of rhythm]] without coming across as a wacko cult maniac 4. Share a memorable moment or achievement that happened while working at The Shop. diff --git a/content/notes/scratch/some1-entry.md b/content/writing/notes/scratch/some1-entry.md similarity index 100% rename from content/notes/scratch/some1-entry.md rename to content/writing/notes/scratch/some1-entry.md diff --git a/content/writing/notes/scratch/terraform-localstack.md b/content/writing/notes/scratch/terraform-localstack.md new file mode 100644 index 00000000..5039558b --- /dev/null +++ b/content/writing/notes/scratch/terraform-localstack.md @@ -0,0 +1,78 @@ +--- +title: Terraform LocalStack Testing +date: 2024-04-18 +tags: + - "#engineering/devops" + - projects/dayjob/terraform-testing + - notes/scratch +draft: false +--- +## Primary Takeaways + +There are two reasons AFT/AWS would want to buy into something like this: + +1. Ability to quickly iterate on the *validity* of AFT deployments +2. Ability to quickly iterate on the *functionality* of AWS infrastructure + +I don't think I'd recommend Terraform LocalStack at the moment: + +1. **Validity Testing:** + - LocalStack, to some extent, butts up against AFT in such a way that *properly* vetting the validity of new deployments would, in essence, require not just emulating AWS but also AFT. To that end, there may be [better alternatives](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/validate-account-factory-for-terraform-aft-code-locally.html) for this that would both be less of a lift (as the code/process is already written) *and* get a more accurate test of validity against AFT infrastructure. +1. **Functionality:** + - There is no question that we would need to buy into the full Pro version ($70/user/month) to get close to emulating the particular services we're interested in β€” namely, critical pieces such as Cognito. + - Being able to quickly test in LocalStack's Pro version wouldn't negate the cost we would need to *also* test these pieces on actual AWS infrastructure. In effect, we'd be double-paying for a partially-emulated environment. + - The alternative to this may be to continue focusing on end-to-end testing in the already-existing AWS development environments, allowing us to programmatically test on infrastructure that (should ideally, with AFT) be a near-direct mirror of the application production environments. + +## [Hashicorp Demo Video](https://www.youtube.com/watch?v=DDa1PcHRQ4I) + +### [Demo Section](https://youtu.be/DDa1PcHRQ4I?si=ZKzMLKGAfttcp94n&t=419) + +- SPIKE Reference: HashiCorp Deploy + - TODO +- Demo for a lambda reading into an S3 bucket +- Application for AFT would need to be in multiple steps β€” particularly, global customizations into account customizations + - Environment would need to preemptively load an additional layer for the account request resources, but this should be trivial - would need to be starter account system variables in [TODO: SERVICE NAME] +- Goes over the particulars of the infrastructure they're attempting to deploy - should be arbitrary, but we'd want to set up a specific test account for our purposes. `sandbox` is comin' back, baybeeeeee +- SPIKE Reference: LocalStack Docs + - TODO + - Localstack extensions (labelled alternatives in the docs) + - This seems to reference a docker compose system, which makes sense, since AWS is made of a bajillion different services. This might be the approach, as we realistically only need the 6-7 services that we tend to use (+ dependencies for those services) +- **DOCKER COMPOSE** + - Debug level to see output - requires passthrough of docker socket and a localstack local volume + - TODO: Mermaid graph of interaction between local terraform instance, LocalStack docker stack, actual AWS account + - NOTE: The concern I'd have is the frequency at which AWS updates and cadence at which LocalStack would update alongside it. I would have concerns about having tests passing here as a hard requirement for merging in a PR. + - That said, this would still be invaluable as both a local development tool *and* a canary-in-the-coalmine with incoming deployments. + - SPIKE: Broadcasting non-blocking warning outputs in GitHub Actions +- Goes in-depth on a practical example, not necessarily needed. +- **AWS SERVICE FEATURE COVERAGE**: + - This lends itself to the amount of drift between LocalStack and AWS itself - thankfully, they seem to be documenting this well. + - Considering this video was released 5 months ago, I doubt this has halted development. + - Community and Pro Versions + - LocalStack Actions Integrations + +#### TAKEAWAYS: + +1. We would likely go with the Docker Compose version, selecting specific services to use. +2. Because we have the additional AFT layer on top of our "vanilla" terraform, there will likely be "degrees of correctness" to using this in our workflows: + 1. **BRONZE:** In the Customizations repository, we add the infrastructure to locally test a given account customization directory, adding a Compose file to each to declare which services the account actively requires. + 2. **SILVER:** We pull in the `requests` and `global-customizations` repositories, emulating the general "pipeline" that AFT provides us by applying the layers in the same order AFT would when we deploy a new account + 3. **GOLD:** We emulate (or more likely, see if somebody else has already tried to emulate) the Account Factory Terraform setup process, likely running two stacks: one for the AFT account + pipeline, and the other for the "new" account. + - [I] Hold your *horses:* What if we created a "pure" LocalStack docker stack, applied the original Account Factory Terraform `.tf` file to *that*, and then just... built *that* into an image? +3. The ability to emulate the target test account as-is may not be feasible - in essence, setting up the LocalStack would only emulate a from-scratch deployment. Not necessarily a good or bad thing β€” just a consideration. + +## [LocalStack Docs](https://docs.localstack.cloud/overview/) + +1. **QUESTION:** Does LocalStack [offer good support](https://docs.localstack.cloud/user-guide/aws/feature-coverage/#emulation-levels) for the services we use? + - NOTE: The two levels of emulation they offer are `CRUD` for response-only, and `Emulated` for actual logic emulation. + - NOTE: Some services are locked behind the Pro version + - **SUPPORT LEVELS**: + 1. RDS (Databases): `**, Emulated` + 2. Cognito: Locked in Pro, [variable support](https://docs.localstack.cloud/references/coverage/coverage_cognito-identity/) + 3. User Pools: `**-****, CRUD` + 4. VPCs: `***-****, CRUD` + 5. ECR: Locked in Pro, [variable support](https://docs.localstack.cloud/references/coverage/coverage_ecr/) + 6. ELB: Variable, v1 as `***, CRUD`, v2 as Pro feature + 7. Key Management Service: Pro + 8. Lambda: Pro + +I'm going to pause here before researching any further. It appears that the cost here is $70/user/mo for LocalStack pro, and many of the services we'd hope to use it for appear to be locked in the Pro version. \ No newline at end of file diff --git a/content/notes/scratch/the-best-side-of-the-road.md b/content/writing/notes/scratch/the-best-side-of-the-road.md similarity index 100% rename from content/notes/scratch/the-best-side-of-the-road.md rename to content/writing/notes/scratch/the-best-side-of-the-road.md diff --git a/content/notes/scratch/unstable-marriage.md b/content/writing/notes/scratch/unstable-marriage.md similarity index 100% rename from content/notes/scratch/unstable-marriage.md rename to content/writing/notes/scratch/unstable-marriage.md diff --git a/content/notes/scratch/warning-about-slabtops.md b/content/writing/notes/scratch/warning-about-slabtops.md similarity index 100% rename from content/notes/scratch/warning-about-slabtops.md rename to content/writing/notes/scratch/warning-about-slabtops.md diff --git a/content/notes/stability-of-marriage.md b/content/writing/notes/stability-of-marriage.md similarity index 100% rename from content/notes/stability-of-marriage.md rename to content/writing/notes/stability-of-marriage.md diff --git a/content/notes/strong-and-weak-opinions.md b/content/writing/notes/strong-and-weak-opinions.md similarity index 75% rename from content/notes/strong-and-weak-opinions.md rename to content/writing/notes/strong-and-weak-opinions.md index e2e195ed..c2422119 100644 --- a/content/notes/strong-and-weak-opinions.md +++ b/content/writing/notes/strong-and-weak-opinions.md @@ -19,15 +19,15 @@ There's a term that floats around that *feels* new. It's not something that I'd What… does this mean? I'd never seen it in an academic slide deck before, but I can name a few high-profile instances of the label used. While it's usually surrounding frameworks, I've seen it used in other places as well: - During C# related work β€” I have previously used [Wrapt](https://wrapt.dev/) as a [[csharp]] web API scaffolding tool, which [describes its default options as opinionated](https://wrapt.dev/docs/customizing-wrapt-projects#smart-defaults) - - On wandering through the chain of opinions, Wrapt's opinions are, in turn, based on the Vertical Slice Architecture (VSA) opinions I'd first seen in [Jimmy Bogart's post on VSA](https://www.jimmybogard.com/vertical-slice-architecture/), a recommended must-read by my team at NWYC + - On wandering through the chain of opinions, Wrapt's opinions are, in turn, based on the Vertical Slice Architecture (VSA) opinions I'd first seen in [Jimmy Bogart's post on VSA](https://www.jimmybogard.com/vertical-slice-architecture/), a recommended must-read by my team at NWYC - During [[roblox]]-related CGC work: [β€œFlamework is a highly opinionated game framework”](https://www.npmjs.com/package/@flamework/core) - - Interestingly, this description has since been replaced to say (as of writing) β€œFlamework is an extensible game framework.” β€” thought I was going insane in trailing back after seeing that phrase there months ago and not finding it, but [[Pasted image 20240305234056.png|a stale Google Index reference]] shows that I'm not crazy (on this one, at least). I am curious about the onus behind the wording change, because I do actually believe that the new description better captures the intent of the Flamework package. - - **UPDATE:** After [talking to the creator of the package](https://discord.com/channels/476080952636997633/498292664471388160/1215744361317404742), this change was made as the project evolved from a personal single-user project to a broadly-used staple of Roblox/TypeScript development. In particular, the [Modding API](https://fireboltofdeath.dev/docs/flamework/modding) is what spurred the description change, as it allows an end-user to yoink very nifty behavior like dependency injection and decorators and attach it to custom utilities. + - Interestingly, this description has since been replaced to say (as of writing) β€œFlamework is an extensible game framework.” β€” thought I was going insane in trailing back after seeing that phrase there months ago and not finding it, but [[Pasted image 20240305234056.png|a stale Google Index reference]] shows that I'm not crazy (on this one, at least). I am curious about the onus behind the wording change, because I do actually believe that the new description better captures the intent of the Flamework package. + - **UPDATE:** After [talking to the creator of the package](https://discord.com/channels/476080952636997633/498292664471388160/1215744361317404742), this change was made as the project evolved from a personal single-user project to a broadly-used staple of Roblox/TypeScript development. In particular, the [Modding API](https://fireboltofdeath.dev/docs/flamework/modding) is what spurred the description change, as it allows an end-user to yoink very nifty behavior like dependency injection and decorators and attach it to custom utilities. - Stumbling on the [black](https://github.com/psf/black) python formatter while wrangling [[python|Python/Databricks]] codebases at M Science - - This is probably the most severe(?) case of opinionated software I've ever seen β€” it is literally named after the Henry Ford quote regarding available paint jobs for the Model T: **β€œAny color the customer wants, as long as it's black”** - - The black repository is also home to [one of my favorite GitHub Issues of all time](https://github.com/psf/black/issues/378), in which a senior staff engineer at Twitter requested the ability to configure 2-space tabs instead of 4-space tabs. - - The response to **one of the most influential tech companies to ever exist** requesting a (seemingly) minor change in order to adopt it as the standard code formatter for their **entire** Python codebase was a resounding: **β€œno.”** + - This is probably the most severe(?) case of opinionated software I've ever seen β€” it is literally named after the Henry Ford quote regarding available paint jobs for the Model T: **β€œAny color the customer wants, as long as it's black”** + - The black repository is also home to [one of my favorite GitHub Issues of all time](https://github.com/psf/black/issues/378), in which a senior staff engineer at Twitter requested the ability to configure 2-space tabs instead of 4-space tabs. + + The response to **one of the most influential tech companies to ever exist** requesting a (seemingly) minor change in order to adopt it as the standard code formatter for their **entire** Python codebase was a resounding: **β€œno.”** Anybody who has ever seen highly-opinionated flame wars in the comments of Reddit threads, Stack Overflow posts, or β€” frankly β€” between *any work call between more than, say, **two** engineers in the same field,* opinions have the potential to run **very strong.** diff --git a/content/notes/supply-chain.md b/content/writing/notes/supply-chain.md similarity index 100% rename from content/notes/supply-chain.md rename to content/writing/notes/supply-chain.md diff --git a/content/notes/the-quest-to-slay-the-goblin.md b/content/writing/notes/the-quest-to-slay-the-goblin.md similarity index 100% rename from content/notes/the-quest-to-slay-the-goblin.md rename to content/writing/notes/the-quest-to-slay-the-goblin.md diff --git a/content/writing/notes/time-tracking.md b/content/writing/notes/time-tracking.md new file mode 100644 index 00000000..23892099 --- /dev/null +++ b/content/writing/notes/time-tracking.md @@ -0,0 +1,10 @@ +--- +title: Some initial thoughts about time tracking +date: 2024-02-27 +updated: 2024-02-27 +tags: + - goblin-slaying + - notes +draft: false +--- +Time-tracking is one of the tools I've picked up during my [[rhythm|Year of Rhythm]] and [[goblin-slaying]]. I'll probably write about it more, here, later. diff --git a/content/writing/notes/typst-resume-template.md b/content/writing/notes/typst-resume-template.md new file mode 100644 index 00000000..c017d246 --- /dev/null +++ b/content/writing/notes/typst-resume-template.md @@ -0,0 +1,614 @@ +--- +title: Typst Resume Template +date: 2024-04-21 +tags: + - mentoring/professional-dev +draft: false +--- +> This guide is a direct copy of the Resume Template on the [Typst Universe](https://typst.app/universe/package/resume-starter-cgc) portal. New versions, or extra thoughts, will be available in #mentoring/professional-dev + +Welcome to the 2.0 version of the Super Cool Resume Template: now with 100% less LaTeX! + +This is a second major iteration of the Resume Template made by Spencer Elkington, originally created for the University of Utah's Triangle Engineering Professional Education students. It is now also used for Chaotic Good Computing professional development mentoring & consulting. You can find more resources at https://chaoticgood.computer + +If you have any questions, feedback, or advice, please feel free to contact me at spencer@chaoticgood.computer + +If you publicly post or share the source code to your resume, you're totally allowed (and I would encourage you) to delete all of the commented sections in the template. + +## Quickstart: How to use this template + +1. If you haven't already, create a (free!) Typst account at https://typst.app +2. Once you have an account, go to https://typst.app/universe/package/resume-starter-cgc +3. Click on "Create Project in App", give your project a title, and press "Create" +4. Start editing! This copy is your own personal copy to edit however you want! + - If you would like to edit a copy of the resume without the guide, use the `resume.typ` file. + +### Opinion: Why should you use this template? + +This template will handle 99.9% of your resume's formatting for you so you don't have to spend time massaging the formatting in an editor like Word or Google Docs, or worry that the template you're using doesn't mesh with the jobs you're applying for. Having the formatting pre-baked means you can take more time to focus on your content - easily the most important part of your applications. + +To be clear: the formatting here is OPINIONATED. Although the format has been refined over a period of about 4 years based on a number of meetings with recruiters, hiring managers, and employees at both small and large companies across a number of technical and professional industries, it does still represent many of my own opinions. That said, it'll provide you with a good starting point to work off of as you slowly develop your own resume & style moving forward. + +If this is your first resume, I'd recommend sticking with this formatting for now. However, if you're either recreating a previous resume, or if you get far along enough into your career that you want to flavor it up a bit, you can find all of the templating in the `resume.typ` file included in this project. + +### Basics of Resumes + +In general, resumes ought to be *one page* of concise, bulleted, well-formatted descriptions of things about yourself and things you've done that explain who you are and what you can do to somebody who's looking to hire somebody like you. + +While there are exceptions to the one-page rule (which would make it a CV, reserved for people with Ph.Ds and many publications, or those with decades in their field and significant and notable achievements), you should keep it to one page. Having more than one page on your resume will lead to one of two likely reactions: + +1. "This person clearly didn't need to use two (or more) pages", which immediately shifts the reviewer to a mindset that you're overestimating your credentials; or +2. The person reviewing your resume doesn't even think to check how many pages there are and only sees the first one anyway + +In general, if you want to include more information about yourself that would spill your resume past the first page, you should use LinkedIn as your "full" resume and continue to keep this document to just a one-page review of the most relevant things about yourself. + +Along with this, there are two sections that people expect to see on resumes: + +1. Education (or equivalent) section (see the Education section for more details) +2. Experience section (see the Experience section for more details) + +### Basics of Typst + +Previously, this template was created in LaTeX, another PDF typesetting language. To celebrate its 40th(!) birthday, we're killing it in favor of Typst! + +Typst is a gentler PDF typesetting language that supports putting far more of the "noise" of your formatting into a separate file. That way, the only thing you really have to worry about is putting your content into this file. + +To learn more about Typst, you can find the documentation here: https://typst.app/docs + +## Header & Contact Information + +This is where you should put your name, your contact information, and your general location! + +```typ +#import "util/resume.template.typ": * +#show: resume.with( + author: "Dr. Emmit \"Doc\" Brown", + location: "Hill Valley, CA", + contacts: ( + [#link("mailto:sample_resume@chaoticgood.computer")[Email]], + [#link("https://chaoticgood.computer")[Website]], + [#link("https://github.com/spelkington")[GitHub]], + [#link("https://linkedin.com/in/spelkington")[LinkedIn]], + ) +) +``` + +![[Pasted image 20240421164430.png]] + +### Opinion: Specifying Your Location + +Sometimes, people put their full mailing address on their resume. I personally believe that you should leave your location to ONLY the general metropolitan area you're in. This is for a few reasons: + +- Full mailing addresses are noisy, and wherever possible you should try to eliminate noise from your resume. Recruiters only really need to know your general location, so it's better to just keep it short and simple. +- As a general safety rule-of-thumb, you should try to not publicly post the address of the place you sleep on the internet. Β―\\_(ツ)_/Β― + +### Opinion: Including Your Phone Number + +Personally, I would HIGHLY advise you leave your personal phone number off of your resume. Odds are, you'll be sending this resume to one of two types of places: + +1. Public areas, such as LinkedIn, Indeed, a website you own, etc. +2. Private areas, such as a potential employer's application portal or a private message + +Given that this may be in public areas, posting your phone number on the resume itself may pose the risk of opening you up to unsolicited calls & harassment. As somebody who has had their number leaked and been harassed with it since then, that's a hard genie to put back into the bottle - I strongly advise against taking that risk. + +However, when you're privately sending your resume, you're likely to be putting your phone number into a separate application field anyway, or even sending your resume over a private channel directly. In that case, a private recipient will *already have your contact information, including your phone number*. This means that having your phone number here has a lot of risk and virtually no added reward. + +Unless you have a good, explicit reason for doing so, don't put your phone number on your resume. + +### Opinion: Use Hyperlinks! + +In the year of our lord 20XX, it is *vastly* more likely that somebody reviewing your resume is using a digital, internet-connected device. This may vary industry-to-industry, but the chances of a person printing your resume to review it become lower and lower each year. + +When somebody is viewing your resume digitally, you have the massive advantage of being able to include hyperlinks to other areas of the internet on your resume! This effectively turns the document into a landing page for other valuable resources: + +- Your LinkedIn, email, GitHub, website, etc. +- The sites of companies that you've worked for to provide additional context about where you worked +- Elaborate or "follow up" projects you've done and skills you've had with real-world proof that you've posted on the internet + +On the other hand, there is a risk that somebody out there is still printing stacks of resumes to review. Additionally, you may have to print off your resume from time to time - something that can come of often if you're, for example, a student attending your university's job fairs. In that case, you may need to tune your hyperlinks to still be usable on printed paper. + +> IF YOU'RE WORRIED YOUR RESUME WILL BE PRINTED, MODIFY THE TEXT OF THE HYPERLINK TO BE THE SAME AS THE LINK ITSELF. + +## Education + +This is where formal education goes! While this is usually university education, it doesn't have to be. You can also include: + +- Certification Programs +- Boot Camps +- Associates/college degrees + +```typ += Education +#edu( + institution: "University of California, Berkeley", + date: "Aug 1953", + location: "Berkeley, CA", + degrees: ( + ("Ph.D.", "Theoretical Physics"), + ), +) + +#edu( + institution: "University of Colombia", + date: "Aug 1948", + gpa: "3.9 of 4.0, Summa Cum Laude", + degrees: ( + ("Bachelor's of Science", "Nuclear Engineering"), + ("Minors", "Automobile Design, Arabic"), + ("Focus", "Childcare, Education") + ), +) +``` + +![[Pasted image 20240421164456.png]] + +If what you put here is not "education" in the normal sense and fits more with the subjects above, you may want to consider renaming it. However, the general advice I've received from technical recruiters, technical interviewers, and fellow professionals over the years is that an Education section containing university degrees should usually stay at the top of your resume. + +**TIP FOR UNIVERSITY STUDENTS:** Companies will use this information to background check to confirm you have the degree you claim to have. Because this is one of the background check entries that HAS to check out, **DO NOT MODIFY THE TYPE, NAME, OR GRADUATION DATE OF YOUR DEGREES, MINORS, OR EMPHASES.** + +Believe me β€” as somebody who has a degree in "Quantitative Analysis of Markets and Organizations," I sure do wish I could abbreviate that down to "Quantitative Economics" for the sake of space and not having to explain what the hell that means. *However* β€” because that is the God-given name of my degree, that HAS to stay EXACTLY consistent in order to comply properly with background checks. + +However, as a sneaky way around that requirement, you *can* add additional information here in an *unofficial* way. For example, "Focus" is not typically a University-registered piece of information, and something you have a bit of wiggle room on. For example, if you studied Computer Science and your coursework *mainly focused* on front-end development, but you didn't get a *formal emphasis* in "Frontend Development", you could do: + +```typ +degrees: ( + ("Bachelor's of Science", "Computer Science"), + ("Focus", "Frontend Development") +) +``` + +Degree paths on the university level can vary from very broad to very specific - especially on a graduate level. This additional degree entree field trick is a good way to sneak additional context into your education section in a way that won't hit snags during a background check. + +### Opinion: Including Your GPA + +GPA is a testy subject. Some of us have great GPAs, some of us have alright GPAs, and some of us had an off year (or two, if you were in college during COVID) and if you ask us about it, we'll avoid the subject entirely. Additionally, some companies require a GPA, others would prefer you have it, and some (the cool ones) don't give a hoot what your GPA is. Here is the general rule-of-thumb for when to (or to not) include your GPA: + +- **DEFINITELY** include your GPA **IF**: + - it is above a ~3.5/4.0 (which is usually the threshold of Deans List or your university's equivalent); OR + - you know for a fact that the company you're applying for requires it. +- **POSSIBLY** include your GPA **IF**: + - your GPA is between a 3.0 and 3.5, and you feel it would help your applications. +- **PROBABLY** don't include your GPA **IF**: It's below a 3.0. + +If you do want to include your GPA, the `#edu` section will automatically format it for you if you add a `gpa` value to your entry. + +You can also use the `gpa:` field to elaborate on extra tags like "Dean's List", "Honors", "(Summa) Cum Laude", etc. + +### Opinion: Including a Graduation Date + +If you're currently in an education program, you should put the estimated month and year you believe you'll be finishing your program. You have two ways you can do this: + +1. Set the `date` field to some variant of "Estimated MONTH 20XX" +2. Just put the month and year in the future that you intend to graduate. + +Prior to graduating, I opted to go with option 2 and never ran into issues. In general, people and Applicant Tracking Systems (ATS) are smart enough to intuit that a graduation date in the future means that you're still a student. + +## Skills + +The Skills section is where you can give an overarching view of what you're good at and what you know! This section is broken out into categories. In general, here are some breakouts that I've used in the past: + +- **Expertise/Key Skills:** Subjects, fields, and "soft" skills that you're knowledgeable in. KEEP THIS ONE. +- **Software:** specific pieces of software relevant to your industry that you're comfortable using +- **Languages:** Usually this means "programming languages," but I've seen the polyglots among us use a Languages section for written/spoken languages as well +- **Certifications:** If you feel like certifications you have don't fit into your Education section well, or you don't want to spend as much vertical space listing them, you can place them here instead + +### Opinion: What Should You Put Here? + +So, one thing you *have* to understand is that human reviewers are *not* the only audience for your resume. When you're applying to for jobs and not personally handing off your resume to another human being, you should assume that your resume is going to be reviewed by an Applicant Tracking System (ATS) before it ever even sees human eyes. + +ATS are bots used to pre-review resumes. *In general,* these bots are doing a comparison analysis of your resume against the description of the job you're applying for. One of the primary things it does is a *keyword analysis,* where it is more-or-less asking the question: + +> How many keywords in this resume match keywords in the job description? + +THIS SECTION IS THE PLACE TO MATCH THOSE KEYWORDS. + +This section will be the part of your resume that changes *the most.* Ideally, you'll be fine-tuning this section for each application you do to best fit your resume against the description of the job you're applying for. + +This is where "commenting out" comes in handy. In Typst, you can add `//` (or `Ctrl+/`, if you're using the Typst editor) before any text to remove the text from your final resume WITHOUT removing it from this file. This makes it very easy to make new versions of your resume without actually permanently deleting it. + +In general, the workflow I advise for creating this section is an "everything in the kitchen sink" approach: + +1. Put in ALL of your skills and interests, all the languages you comfortably know, all the software you know how to use, etc., into each category. +2. Order each section by how comfortable or skilled you are with what you've listed. For example, if you put "Python" and "JavaScript" into the Languages section and are more comfortable with Python, put that first in the list. +3. Comment out the entire list. +4. Take the job description of a job you'd like to apply for and put it into a keyword analysis service like JobScan (https://jobscan.io) or ChatGPT to get all the job's keywords out of the description. +5. Uncomment (remove the `//`) of things in each section that match the job description until the category is a line long OR you hit the end of your list +6. (Optional) If you noticed keywords in the job description that you would be comfortable adding, add them to the list. + +### Opinion: Including Programming Languages + +Engineers get real weird about which programming languages you include on your resume. In general, here is the unspoken, unwritten policy around programming languages on your resume: + +> If a technical interviewer sees a programming language on your resume, they will assume it's fair game for a technical interview. + +Now - how does this mesh with the advice above to add things in the job description to your resume? Here's the rule of thumb for whether or not to include a language on your resume: + +You should include a programming language **IF**: + +1. You are already comfortable enough with that language to do a technical interview using that language; OR +2. You are reasonably acquainted with a language AND feel that you can learn enough β€” fast enough β€” to do a technical interview in that programming language in 2 or less full-time, dedicated days of brushing up on that language + +Option 2 is an ethically dicey and professionally risky move to make, but not totally unrealistic. I'd advise that the line you should draw is: + +> If I'll need to frequently look up basic syntax in that language by the time I apply for this job, I probably shouldn't include it. + +### Opinion: Including Software + +Software will be incredibly industry- and job-specific. It would be impossible to give a comprehensive list of things you should include across all industries - however, I can give you some advice on what *not* to include: + +- Do NOT include text editors. If you're in the software industry, this includes your IDE! +- Do NOT include operating systems UNLESS: + - It is a niche and specific operating system (e.g., Red Hat Linux); AND/OR + - It is because you've done OS-level development on it, in which case you should be VERY specific (e.g., Linux Kernel Dev, Windows PowerShell, etc.); OR + - It is specifically mentioned in the requirements for the job. +- Do NOT include professional chat apps like Slack, Teams, Discord, etc. UNLESS: + - You have done some kind of advanced development on it, in which case you should be VERY specific (e.g., Slack Bots) + - For whatever reason, the job description explicitly mentions it. Keep in mind: if the job description says anything along the lines of "Familiar with [APP]", you should giggle to yourself because that's an objectively weird thing to list in your job description. +- AND PLEASE + - FOR THE LOVE OF GOD + - DO NOT + - INCLUDE + - MICROSOFT WORD OR OFFICE 365 + - BECAUSE IF YOU INCLUDE THOSE + - EVERYONE WHO READS YOUR RESUME + - WILL MAKE FUN OF YOU BEHIND YOUR BACK + - OR POSSIBLY EVEN TO YOUR FACE + - BECAUSE IT IS + - THE MODERN EQUIVALENT + - OF LISTING "TYPING" AS A SKILL + +If you have a buddy, contact, or even friend-of-a-friend working in the industry you're applying for, it'd be in your best interest to ask them for a once-over to make sure nothing you put here feels silly. + +### Opinion: Stating Proficiency in a Language + +For both natural languages and programming languages, I have sometimes seen people list their proficiency next to the languages: e.g. + +> Languages: C# (advanced), Python (proficient), ... + +or + +> Languages: English (fluent), Spanish (fluent), Arabic (conversational)... + +I would highly recommend this for natural languages. I would somewhat, possibly β€” *maybe* β€” recommend it for programming languages. If you do it for one language, though, you should really do it for all languages. Only doing it for one or two languages β€” but none of the others β€” may seem to imply you don't know the other languages as well and are listing it as a form of cheap talk. + +If you want to emphasize particular skill with a programming language, you can also: + +1. List it towards the start of the list; and +2. Inline-bold it to emphasize expertise. + +This strategy allows the design to convey the idea of proficiency through emphasis, and doesn't require you to waste valuable space to declare proficiency for all the languages you list. + +### Opinion: Hyperlink Your Skills + +I personally believe that this area is a good candidate for hyperlinks. For example, I tend to hyperlink my strongest areas/software/languages in particular to examples of when I've worked with or done those things in the wild. This is a good reason you should strive to make projects of yours open source with good `README`s, or post your accomplishments somewhere (a website, blog, LinkedIn, Twitter, Instagram, etc.). + +### Opinion: Dedicating an Entire Section to Skills + +When you're trying to keep your resume down to one page, vertical space is a valuable resource. In that regard, section headers are pretty expensive, taking up about ~3 bullet points for each one you use. While they're important for breaking up your resume into sections for comprehensibility reasons, too many can become a waste of vertical space that could otherwise be used in better ways. + +I included a Skills header in this template because people explicitly break this section out often enough that I wanted to make it plug-and-play for those transferring old resumes over. However, I'd highly recommend rolling your Skills section into your Education section by deleting (or commenting out) the `Skills` line below. + +The exception to this rule is that you should have a dedicated skills section if you're largely self-taught and feel that an Education section may not be a good fit. + +## Work Experience + +This is where you make your resume shine! By and large, the advice here applies to all other sections of your resume, as the pattern through the rest of the resume uses the same "Experience" (`#exp`) method for formatting. + +```typ += Experience +#exp( + role: "Theoretical Physics Consultant", + project: "Doc Brown's Garage", + date: "June 1953 - Oct 2015", + location: "Hill Valley, CA", + summary: "Specializing in development of time travel devices and student tutoring", + details: [ + - Lead development of time travel devices, resulting in the ability to travel back and forth through time + - Managed and executed a budget of \$14 million dollars gained from an unexplained family fortune + - Oversaw QA testing for time travel devices, minimizing risk of maternal time-travel related incidents + ] +) + +#exp( + role: "Teaching Assistant", + project: "University of Colombia, Wernher von Braun Lab", + date: "Oct 1949 - June 1953", + summary: "Integrating German scientists' curriculi for undergraduate audiences", + details: [ + - Assisted in designing physics course structure and assignments in English, Spanish and German + - Designed confidential rocket designs used in NASA Space Race initiatives and the Apollo Program + - Developed and executed university DEI initiatives and onboarding programs for transfer professors + ] +) +``` + +![[Pasted image 20240421170010.png]] + +Each experience entry has the following attributes you can add: + +1. Job Title (`role:`) +2. Employer/Project Title (`project:`) +3. Date (`date:`) + - This should be a `MONTH 20XX - MONTH 20XX` entry, using "Present" or "Current" to denote the position you currently work at. + - For these dates β€” and, in general, all dates on your resume - I'd recommend abbreviating months (e.g., `January -> Jan`, `December -> Dec`, etc.) to conserve space. +4. Location (`location:`) (OPTIONAL) + - In the era of remote work, the location of a job has lost quite a bit of signal. IN MY OPINION, the location you state in your header would provide an interviewer or recruiter with enough information about your location, causing additional role locations to fall a bit into the same "noise" category we talked about above. However, some reasons you may want to include it are: + - You're applying for a job that you know will be doing a more thorough background check, such as a government, military-adjacent, or high-security position + - You want to put "Remote" for some of your positions to make it incredibly clear that you are a remote worker with no interest in relocating to an office. + - You're using cool places you've worked to flavor your resume and start conversations in your interviews (e.g., "Oh, wow, you've been to France/worked in New York/yodeled in Singapore/etc. etc.? Tell me more about that!") +5. Role/employer/project summary (`summary:`) (OPTIONAL) + - I've seen this on enough resumes, and have warmed up to it over time. This can be used to give a *brief(!!!)* description of the company you worked at, projects you focused on, or role you worked in. + - This can be especially helpful at both larger companies to specify what specific vertical you worked in, or at smaller companies to give on-page context to who they are and what they do. + - In some circumstances, it can substitute as a bullet point and give you more room in your bullet points to drill down into specifics without having to give overarching context. +6. Details β€” VERY IDEALLY BULLET POINTS β€” describing the entry (`details:`) + +### Opinion: Creating New Entries + +For the details section of your experience entries, I would HIGHLY recommend keeping it to exclusively bullet points. Typically, the range of bullet points you should have for an experience entry is: + +- Three bullet points by default; with +- (Maybe) Four bullet points for your current (or particularly cool or relevant) positions and projects; and +- (Possibly) Two bullet points for old or "thinner" projects or experiences (e.g. seasonal employments, short-term projects, old experience, etc.) + +*That's a lot of bullet points*, which means that the bulk of your resume will be SHORT, CONCISE SNIPPETS describing aspects of your experiences. + +### Opinion: Creating Well-Structured Bullet Points + +> IF YOU TAKE NOTHING ELSE AWAY FROM THIS TEMPLATE, IT SHOULD BE THIS. + +Bullet points are going to be making up the bulk of your resume, so it's important to make sure that they're concise, to-the-point, and convey exactly why you're a good fit for the job you're applying for. This structure is informed by a *lot* of reviews with technical recruiters, professionals/engineers, and hiring managers at companies of many different sizes. You should do your best to make sure that every bullet point has these three components - known as an XYZ structure: + +- **X:** What you did +- **Y:** How you did it +- **Z:** The (measurable) result + +While there are *a lot* of ways to include these three components in your bullet points, the general "out-of-the-box" structure is below: + +> [VERB] a [NOUN] using [METHOD] for [REASON], resulting in [RESULT] + +If that makes zero sense, don't worry β€” here's an example: + +> Optimized data pipelines written in **Spark/AWS** for financial analysis, resulting in >$1M annual compute cost reductions + +That one matches almost one-to-one with the structure above and has all three components: + +- **X:** What you did (Optimized data pipelines) +- **Y:** How you did it (Used knowledge of Spark and AWS) +- **Z:** The (measurable) result (Saved lots of money on compute costs) + +For the sake of brevity, we'll do just the one example up here. However, I'll post samples of other bullet points from other resumes that do a good job of including these three components. + +If you're trying to hammer out your first few bullet points in that structure and are thinking to yourself, "Wow, this is hard!" β€” don't worry! It takes awhile (and a lot of trial-and-error) to get the hang of, but will become a lot easier as you write more. + +Additionally, this is a really good reason to have somebody else review your bullet points (and your resume in general) β€” to this day, I still ask people to review my resume to make sure my bullet points get the point across well, and convey the three points from that structure concisely. + +### Opinion: Including Measurable Results + +In general, if you have measurable results of your actions that you can include in bullet points, you should. It demonstrates to others the effectiveness of the actions you took in terms of metrics that people understand how to interpret. However, it is *by far* the hardest part of a bullet point to include, and you may not be able to include a measurable result for a couple different reasons: + +1. You simply don't have a measurable result associated with the bullet point +2. You may be constrained by an NDA or equivalent restriction on publicly providing hard numbers, metrics, or details + +If you don't have a measurable result to include, don't worry β€” the X (what) and Y (how) components are still enough to make a good bullet point. However, if you're in a position to gather those metrics (for example, if you're still at your current company and have the ability to measure or find that data), I'd advise taking the time to go do that. + +This is also a matter of opinion! Sometimes β€” especially if you work at a company that doesn't religiously measure Key Performance Indicators (KPIs) β€” the exactness of the metrics you have access to will vary wildly. If you're in a scientific field, you may have *very precise* measurements down to a lot of significant figures. On the other hand, in industry, maybe your measurements are ballpark estimates, like the type you'd find in an executive summary. + +In general, I'd limit the number of "significant figures" of your metrics to 2 digits. 2 digits is enough to get a whole-number percent (e.g. 25%) or a good monetary estimate (e.g. $120,000 or $120k). + +Additionally, the exactness of a measurable result you include should be something you can justify to both yourself and others. + +Philosophically, I'd consider the ability to justify a statement to be the difference between "an estimate" and "bullshit." + +**FOR EXAMPLE:** I worked in a job where, as an employee, I proposed a new system we use now for replicating AWS environments and spinning up new infrastructure (TL;DR copy and pasting big pieces of technology automagically). Before we had that system, engineers would just do the whole thing by hand. + +Before I worked there, there was an occasion where the team had to reconstruct an entirely sandboxed copy of an application, by hand, for a new client. If memory serves, this took a few engineers roughly 4 months. Now, with the new system, we can do the same task in about 3 hours. + +*On paper*, the actual optimization would be: + +> 3 engineers * 40 hours * 12 weeks = 1440 hours +> 1440 hours previously - 3 hours now, +> 1437 saved / 1440 hours originally = +> +> a 99.7% time optimization. + +HOWEVER β€” I hadn't done that math until literally just now, as I was typing it. When I wrote the bullet point for that entry on my own resume, I vaguely went "3 hours now versus 3 months before? That's probably more than 90% Β―\\_(ツ)_/Β―" + +As of writing, that bullet point on my entry is: + +> Create **Terraform/AWS** deployment systems, reducing new AWS application spin-up times by >90% + +Is it precise? Absolutely not. Can I justify it? Probably, if I had to. So that's the metric that I used. + +(Although I probably will make it more specific now that I've done the math.) + +When it comes to results that you know exist beyond a shadow of a doubt, but don't have incredibly hard data on, using a `~` in front of the number is your best friend. + +(Of all the characters available on the standard keyboard, `~` is certainly the one that most represents the mathematical equivalent of "vibes.") + +For example, if you improve, refine, or automate a tedious process at work and the consensus among the people you've helped is "This is about twice as fast now!", you shouldn't hesitate to throw down a "~50% improvement" as a measurable result. + +If you're looking for measurable results at your current position, you have the incredible advantage of *still being at your current position.* KPIs - the things you can measure to gauge the success of your work - are both a difficult thing to collect and a valuable thing to have, as they can help you get new job or build a case for increased compensation at your current job now. If you can, take time at your current job to build structures that allow you to accurately measure results of your actions. + +### Opinion: Keep Your Bullets Concise! + +When you're writing bullet points, you should try to keep them to a whole-integer number of lines used. Here's a less-weirdly-phrased example to illustrate what I mean: + +```typ +- Lead development of time travel devices, resulting in the + ability to travel back and forth through time ........................ +``` + +In that case, see how there's quite a bit of space remaining on the second line? We usually refer to this as a *"hanging bullet point"*. Hanging bullet points are an issue for a few reasons: + +1. Vertical space on your resume is a valuable resource, especially if you're doing a RESUME resume (and not a CV) where you should limit yourself to one page. In this case, you're sacrificing an extra line for only half as much information, when it may be better spent creating a separate bullet point. +2. The reader has to now read into a second line. When somebody is quickly reviewing your resume, they may not bother reading that far into a single bullet point. +3. In a very wishy-washy "the-vibes-are-off" kind of way, it causes the whitespace of your resume to look uneven and your resume to look slightly incomplete, especially if the second line is only one or two words. + +In general, you should really aim to avoid these instances altogether. A few solutions you have (in the order I'd recommend them) are: + +1. Trim the bullet point to fit onto a single line. + - This is what I recommend most of the time, as it also has the added benefit of forcing you to be more concise in your wording to get the point across +2. Split the bullet point into two distinct bullet points. + - In this case, you may be able to massage things around in a way that gives you two concise points rather than one inconcise one +3. Add more context to the bullet point (a method you used or another measurable result) to strengthen the point in the space that you have + - **I don't recommend this**. While I've seen it done well (in cases where there was no logical way to split the bullet point AND the extra space was used to add really good metrics), I'd wager that 99% of the time people use two lines for a bullet point, it's because they're rambling and should've done Option 1 or Option 2 instead. + +### Opinion: Mention Your Skills (and make them bold!) + +Often, in constructing your bullet points, the Y component (how you did it) will involve a specific technology, process, skill, or programming language. In that case, I highly advise that you inline bold (surround the text with asterisks, e.g. `*Python*`, `*Illustrator*`, etc). + +The reason I recommend this is because of the "talk is cheap" principal. In the Skills section of a resume, it is very, *very* easy for people to overestimate their skill in things. I can vividly recall the time I put `SQL` in my Skills section, only to absolutely eat shit on a SQL technical interview I got as a result. + +(I did not get the job.) + +Interviewers understand that this section is very easy to overpack, which is why I said above that the section is largely for the benefit of strengthening your ability to get past ATS by including tokens from the job description. However, your projects and experience - especially ones that you can hyperlink to - are far less likely to be total bullshit, and so mentions of specific technologies, languages, and skills here hold far more signal potential for reviewers. + +By inline-bolding specific mentions of technology, software, and languages you use, you're both encouraged to mention them more often (which strengthens your match score with ATS) and also gives interviewers a very quick second confirmation that you can back up the skills you've put in your Skills section. + +I have also seen people inline bold the measurable results they include in their bullet points. I'm personally pretty neutral on this practice, as it has the potential to highlight your more impressive achievements, but also potentially adds noise to your resume. *Caveat lector* - reader beware! + +### Opinion: "But I don't want to use bullet points!" + +You really should. Especially at large companies, your resume will largely be viewed at a glance and the conciseness of well-structured bullet points reflects that reality. + +The exception is those of you making a CV, which means you probably (you *should*) have a PhD or many, *many* years of professional experience and massive accomplishments to boot. If that's the case, this template is still able to accommodate much of what you need. In your case, though, the expectation is likely that you describe things like publications, papers, presentations, etc. with concise abstracts (abstract-of-your-abstract) rather than bullet points. + +If that does apply to you (once again, if you're not sure it does then it probably doesn't), the `details:` field of the `#exp` format does allow you to do non-bulleted descriptions while still taking advantage of the built-in formatting for everything else. + +### Opinion: Ordering Your Experience + +As you get further into your working life, old experiences may start to feel "stale", either because they were many years ago or because they don't fit as well with your current career aspirations. If you start running out of vertical space to keep your resume under one page and feel you want to trim down your Experience section, my general guidelines would be: + +1. Always order your experiences chronologically. + - There is a bit of wiggle room with jobs that you hold (or have held) concurrently. In those cases, I'd recommend breaking ties for which experience should go first by which one feels more relevant to the job you're currently applying for. +2. If you don't have a very long history of work (for example, you're still very new to working professionally), trim bullet points that aren't relevant to your current applications off of some entries. Prioritize trimming bullets from older experiences first! +3. If you're trimming an experience to just one bullet point, you should remove it altogether. + +WHEN YOU'RE TRIMMING THINGS OFF *ANYWHERE* OFF OF YOUR RESUME, YOU SHOULD PREFER TO COMMENT THEM OUT RATHER THAN DELETE THEM ENTIRELY. + +From the bajillion requisites of what constitutes a good bullet point, you should assume that they're a real pain in the ass to get right. Once you've made good bullet points for an entry, lean towards commenting that entry (or individual bullet points) out rather than deleting them entirely. + +It could be the case later that an entry you've trimmed previously would be a good fit with your current applications. In that case, rather than have to re-make the entry from scratch, you can simply uncomment the relevant information and restore it to your resume as-is. + +### Opinion: Listing Gap Periods + +When trimming experience, one thing you want to avoid is gaps on your resume. The entries in your experience section should ideally represent one continuous block of time, with potentially some occasional one-month gaps between entries. + +While I (as a reviewer) tend to ignore gaps because there's a billion totally valid reasons those can happen (Maybe they were a full-time student, or taking care of a loved one, or got laid off and worked in an unrelated field to make ends meet, or took care of a child or parent, or they stumbled on a bag of money and fucked off to bike Europe for a year, etc.). However, sometimes significant resume gaps freak people out. + +If you're in the process of removing non-relevant experience from your resume and find yourself with a noticeable gap (>4 months), I'd recommend adding a summarized-but-not-detailed entry for the gap period. + +For example: + +```typ +#exp( + role: "Caretaker", + project: "Gap Period", + date: "April 2020 - March 2021", + summary: "Provided full-time support to vulnerable family members during COVID-19", + details: [] +) +``` + +This entry is concise, explains the gap period, and conserves vertical space on your resume. + +Honestly? If anybody has a problem with a well-explained gap period, they have no business leading or hiring people. + +### Opinion: Hyperlinking in your Experience + +As usual, I'd recommend including some hyperlinks in these sections under the assumption that a reviewer will be seeing this on a digital device and could hypothetically click on the links for additional context. + +In general, the hyperlinks I tend to include are: + +- In the headers, with links to the company's website or product that you worked on; and +- Sparingly in the bullet points, with links to publicized achievements or products you helped work on and mention explicitly in a bullet point. +- In some cases, links to additional resources mentioned in your bullet points + - I see this used most often in fields related to "real science" (e.g. chemistry, biology, mechanical engineering) or in cases where industries are regulated (education, manufacturing, safety, environmental consulting) where it can be worth relating to specific documentation for procedures, legal compliance documentation, public-use datasets, or firm-level certification processes + +## Additional Sections + +In general, the only hard-advised sections of a resume that I've seen consistently recommended are the Education (or equivalent) and Experience sections. The other sections are largely up to you. However, here are some recommendations based on other sections I've seen people use to great effect, or use on my own resume: + +- Projects, especially if you're in the tech industry where personal projects are encouraged or expected +- Volunteering +- Charity +- Leadership +- Awards (which, depending on your preferences, could reasonably use a different entry format) + +```typ += Projects + +#exp( + role: link("https://www.imdb.com/title/tt0088763/")[The Delorean], + project: "Doc Brown's Garage", + date: "May 1954 - June 1985", + summary: "A stylish and fully-featured vehicle capable of time travel - with mixed results", + details: [ + - Designed vehicle modifications allowing for time travel and *37% increased cup holder capacity* + - Ethically sourced materials from various international Colombian and Libyan providers + - Coordinated business relationships with potential clients and interested parties + ] +) + +#exp( + role: "Doc Brown's Mega Cup-o-Matic", + project: "Doc Brown's Garage", + date: "October 1949 - June 1953", + details: [ + - Filed a patent for a new type of car cupholder, for storing cups of nuclear material up to 1L + - Developed nuclear hazard procedures for high school students interested in time and nuclear physics + ] +) + += Volunteering +#exp( + role: "Student Advisor", + project: "Doc's Kidz After-School Child Care Service", + date: "May 1954 - June 1985", + summary: "Giving random highschoolers hands-on experience in live nuclear engineering", + details: [ + - Created community initiative to teach local student(s) about the wonders of nuclear physics + - Provided interesting time travel research opportunities for students to add to their college applications + ] +) +``` + +![[Pasted image 20240421173135.png]] + +A flavor of section that I see a lot - and would NOT recommend - is something along the lines of "Hobbies" or "Interests". This is occasionally recommended to give "flavor" to your resume or "humanize" you in some way. + +(I understand that putting quotes around "flavor" and "humanize" make me sound like a boring robot of a person, but bear with me, here.) + +> If you're tempted to make (or are transferring over from an old resume that has) a Hobbies (or Hobbies-adjacent) section, I would advise you structure your hobbies as Projects and use a Projects section instead. + +Many hobbies (sports, programming, gaming, knitting(?), graphic design/drawing, writing, woodworking, baking, etc) can be safely structured in the same way Projects would be, and allow you to highlight interesting things about yourself in a way that follows the same design pattern as the rest of your experiences. + +### Opinion: Making Additional Sections Work + +If you're making a resume for the first time or are early in your career, you may feel yourself straining to fill vertical space. If that's the case - or if you're just looking to liven up your resume a bit - I'd recommend doing a "throw it all in the kitchen sink" approach. + +With this approach, create new entries for anything that you could possibly conceive of as being interesting, taught you skills, or could be an even half-viable answer to somebody asking you "So, what have you done with your life?" A lot of things that don't feel like they'd fit into the hand-shakey, back-pat-y world of business, industry, and academia can be spun into things that feel like they belong on a resume. + +Some examples of experiences people have put that have been used to great effect, and some general examples of how I've seen them stated, are: + +- Sports Leagues/Fitness (intramural, professional, etc) + - Constructing routines + - Designing training plans + - Cooperation/collaboration +- Gaming (competitively, recreationally, collaboratively (e.g. D&D)) + - Competitively (cooperation/team-building/recruiting) + - Speedrunning (attention to detail, QA, methodology) + - Creating games as a learning experience + - Playing/leading D&D as a design experience (homebrewed content, especially), coordinating people, etc. +- Woodworking/Construction +- Planning projects +- Creating designs +- Solving problems +- Making brownies + - This isn't even a bit. The guy's name is Dylan, and his brownies kicked so much ass that they got these-brownies-kicked-ass-type awards. He had it on his CV and got into MIT β€” probably not *solely* off the brownies, but I'd take an even-money bet that it helped. + +In general, whatever you throw in the kitchen sink, the key is describing it with the same structure and detail as your experience, trying to fit it into the XYZ bullet structure as well as possible. Even if your experience is really weird, the way you describe it can be the difference between "Why did they even bother mentioning that?" and "Oh, that is pretty impressive!" + +I would also recommend having the same approach with these entries as you'd take for your Skills section, where you pretty judicially add and remove (comment out!) things from this section for the jobs you're applying for, based on what might fight best with the general "vibe" of the applications you're doing. While your job experience is a pretty binary "Describe the last X jobs you've had over the last Y years", this section is very fluid by comparison. + +In this section especially, I'd recommend following the guidance for hyperlinking mentioned in the Experience section above. \ No newline at end of file diff --git a/content/notes/utah-office-consult.md b/content/writing/notes/utah-office-consult.md similarity index 100% rename from content/notes/utah-office-consult.md rename to content/writing/notes/utah-office-consult.md