{
  "path": "/3mehm6d3qtk23",
  "site": "at://did:plc:57od6g2ic3e3b3kauctjmo3k/site.standard.publication/3m5c6gbf36k2w",
  "tags": [
    "weekly recap"
  ],
  "$type": "site.standard.document",
  "title": "Week of 2026-02-02",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019c43c5-76ca-7554-8d61-5ad65f1e053d",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Hey all. Shame I feel a bit like crap, because I actually have things to talk about this week--though I'll still keep it to three. We'll see what we can do."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Habit-building"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 135,
                    "byteStart": 126
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#italic"
                    }
                  ]
                }
              ],
              "plaintext": "I'll start off meta: The main reason I have things to talk about this week is because I've made a concerted effort to journal every day. I'm not writing down every detail about what happened, but I'm just trying to hit the highlights once or twice a day. I managed to hit every day but Sunday."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 95,
                    "byteStart": 75
                  },
                  "features": [
                    {
                      "did": "did:plc:tft77e5qkblxtneeib4lp3zk",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 153,
                    "byteStart": 108
                  },
                  "features": [
                    {
                      "uri": "https://sidetrail.app/@taurean.bryant.land/trail/3m74nyr3vix2y",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "I've tried to \"commit\" to daily journaling in the past, to little success. @taurean.bryant.land's Sidetrail building an adhd-friendly weekly analog habit (which I haven't finished walking yet) weighs heavy on my mind, as a method for recalling what the days have held."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 59,
                    "byteStart": 51
                  },
                  "features": [
                    {
                      "did": "did:plc:7gm5ejhut7kia2kzglqfew5b",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 74,
                    "byteStart": 62
                  },
                  "features": [
                    {
                      "uri": "https://goals.garden",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "So, what's different this time? I've been aware of @sri.xyz's goals.garden since launch, but I finally connected this week that I could use it to reinforce my journaling. I think the atproto nerd in me is doing a lot of the heavy lifting, but hey--whatever works."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Silhouette/atp.pics"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 32,
                    "byteStart": 12
                  },
                  "features": [
                    {
                      "did": "did:plc:tft77e5qkblxtneeib4lp3zk",
                      "$type": "pub.leaflet.richtext.facet#didMention"
                    }
                  ]
                }
              ],
              "plaintext": "Speaking of @taurean.bryant.land, this post absorbed a bit of my time this week:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.bskyPost",
              "postRef": {
                "cid": "bafyreiebfdxpfgngtcxyf35beyse7g4hc45zbaqiz4lcmct44lemhvn4oe",
                "uri": "at://did:plc:tft77e5qkblxtneeib4lp3zk/app.bsky.feed.post/3me2eeyexhc2y"
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Turns out that the intention was more in the vein of defining a set of lexicon schemas for service-agnostic profiles on protocol, but where my brain went initially was \"it would be nice to be able to type a URL with my handle in it and instantly get my profile picture.\""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 116,
                    "byteStart": 101
                  },
                  "features": [
                    {
                      "uri": "https://silhouette.town",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 200,
                    "byteStart": 192
                  },
                  "features": [
                    {
                      "uri": "https://atp.pics",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "So, I wrote my idea, initially referring to it as Silhouette. It's available (at time of writing) at silhouette.town, but I don't intend to keep it there for long--taurean suggested I pick up atp.pics. I plan to slim down the service to just avatar photos, simplifying the URL in the process. Maybe I'll even do a little caching?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "The source is available here: "
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "src": "https://tangled.org/graham.systems/silhouette",
              "$type": "pub.leaflet.blocks.website",
              "title": "graham.systems/silhouette",
              "description": "Resolve your Bluesky avatar with a human URL",
              "previewImage": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreicmwwsq24fg4nprgy6r26auf37bccywnc4th54wxpl6cntbrkwfhy"
                },
                "mimeType": "image/png",
                "size": 15798
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Writing this out was a meditative exercise. I didn't use any agentic tools--I just opened up Helix, and proceeded to write a bunch of Deno code by hand."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Compared to my recent experience writing Trinkets, I ended up feeling a whole lot happier with the result, even though I'm more unsure about my decisions and covering edge cases. Perhaps there's still room to use an agent for reviewing my code? I honestly don't know if I could find value (or even listen to) an agent nag."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Overall, it was nice to have an idea and make it come to life that very same day--and to have complete agency in every line I wrote. I wouldn't recommend using it yet, since I'm about to change it a bunch--but hopefully I'll write about the usable version next week."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Overwatch?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 58,
                    "byteStart": 35
                  },
                  "features": [
                    {
                      "uri": "https://www.youtube.com/watch?v=N8Sgnn72e9Y",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "I made the mistake of watching the Overwatch 2026 Showcase. I haven't played the game for a very long time--not since before they introduced perks--so I was wholly unprepared for how compelled I would be to return to the game."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Here's a quick summary of showcase:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "They're introducing year-long story arcs within the Overwatch universe"
                  },
                  "children": [
                    {
                      "$type": "pub.leaflet.blocks.unorderedList#listItem",
                      "content": {
                        "$type": "pub.leaflet.blocks.text",
                        "facets": [],
                        "plaintext": "Vendetta has \"killed\" (off-screened) Doomfist and taken control of Talon"
                      },
                      "children": []
                    }
                  ]
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "They're starting the new season with 5 (five!) new heroes, with 5 more coming over the course of the year"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "New maps coming"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Menus overhauled (tbh it just looks like VALORANT now)"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "Improvements to Stadium (which I hadn't played until 2 days ago)."
                  },
                  "children": []
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "That's what I recall off the top of my head, at least. I reinstalled and played for a couple days last week."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "I mostly liked what I saw. The perks system is fresh and interesting, if a bit lacking in depth. I'm just hyped that there's a bit of... hype, for the title. I'm not sure if I'll stick around at all, since I'm not one to grind Competitive."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "My friends are the only anchor I have for these sorts of games, and I'm thankful that they've been patient with my relapse. They're not as enticed as I am by new, shiny heroes, but they've graciously reinstalled the game to indulge me. I suspect it will be uninstalled in a month at the latest."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Alright, I'm feeling a little better after testing out the new Deadlock hero Celeste. Hopefully your week has started out on the right foot--and I hope the rest of it is great as well! Thanks for reading, and I'll see you next week!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreid3bhwozr67xyxtn3xkq4rbnzqii53yaebdwcxnoha55hnjsdx7xy"
                },
                "mimeType": "image/png",
                "size": 2282626
              },
              "aspectRatio": {
                "width": 2000,
                "height": 1125
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          }
        ]
      }
    ]
  },
  "bskyPostRef": {
    "cid": "bafyreifrnsjqlxyaibcztx2amaa5stpvxkmfdkxmdoiyi3wd7obpfbmbky",
    "uri": "at://did:plc:57od6g2ic3e3b3kauctjmo3k/app.bsky.feed.post/3mehm6jolvs23",
    "commit": {
      "cid": "bafyreigseke4nlnmxhgedcpex3f4k4iyxtnhnet44jfqb4m7kavq54muaa",
      "rev": "3mehm6jqlpd25"
    },
    "validationStatus": "valid"
  },
  "description": "Featuring habit-building, Overwatch, and some old-fashioned nerd sniping",
  "publishedAt": "2026-02-09T23:31:04.531Z"
}