{
  "path": "/3m5yq7hwzzk2b",
  "site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m3zpxhfl3c2s",
  "$type": "site.standard.document",
  "title": "Dev Log 20: 2025-11-19",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [
                {
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 8
                  },
                  "features": [
                    {
                      "uri": "https://stormlightlabs.github.io/beacon/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Beacon (docs)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 37,
                    "byteStart": 31
                  },
                  "features": [
                    {
                      "uri": "https://github.com/stormlightlabs/beacon/releases/tag/v0.3.0",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "I drafted and released version v0.3.0 of Beacon. This release focused entirely around refining the type checker. Next up is creating configurable type checker modes."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "My goal was to finish this work by Saturday so it's pretty nice to be done early."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Today I'll break down v0.4.0 into subtasks for my PRs. Is it silly to be drafting PRs for no one to review?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 24,
                    "byteStart": 9
                  },
                  "features": [
                    {
                      "uri": "https://github.com/stormlightlabs/typeshed-stdlib-mirror",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Once the typeshed mirror has been integrated, look out for marketplace releases!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [
                {
                  "index": {
                    "byteEnd": 13,
                    "byteStart": 9
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/desertthunder.dev/mccabre",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Mccabre (code)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Beacon's test modules are ridiculously long so I'm working on extending the lines of code analysis to recursively walk a project/directory to rank files by length."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 114,
                    "byteStart": 106
                  },
                  "features": [
                    {
                      "uri": "https://github.com/torvalds/linux",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "This codebase has one of my \"wackier\" experiments with README files. I like the way plaintext READMEs are rendered on git hosts."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 69,
                    "byteStart": 65
                  },
                  "features": [
                    {
                      "uri": "https://github.com/toon-format/toon",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Some of the outputs come out as JSON. There's a lot around about TOON and it may be worth it to implement that. Creating bindings for serde may be a fun project too if it doesn't exist already."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Here's what the directory ranking looks like:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.code",
              "language": "shellscript",
              "plaintext": "================================================================================\nLINES OF CODE ANALYSIS\n================================================================================\n\nSUMMARY\n--------------------------------------------------------------------------------\nTotal files analyzed:        22\nTotal physical LOC:          3393\nTotal logical LOC:           2272\nTotal comment lines:         180\nTotal blank lines:           941\n\nDIRECTORIES RANKED BY Logical LOC\n--------------------------------------------------------------------------------\n\nDIRECTORY: ./crates/core/src\n  Total Physical:  1126 | Logical:  583 | Comments: 42 | Blank: 501\n\n  Files:\n    reporter.rs (Logical LOC: 212) - P: 260 | L: 212 | C: 16 | B: 32\n    loader.rs (Logical LOC: 150) - P: 204 | L: 150 | C: 8 | B: 46\n    config.rs (Logical LOC: 135) - P: 186 | L: 135 | C: 14 | B: 37\n    tokenizer.rs (Logical LOC: 61) - P: 442 | L: 61 | C: 4 | B: 377\n    error.rs (Logical LOC: 17) - P: 24 | L: 17 | C: 0 | B: 7\n    lib.rs (Logical LOC: 8) - P: 10 | L: 8 | C: 0 | B: 2\n\nDIRECTORY: ./crates/cli/src/commands\n  Total Physical:  625 | Logical:  527 | Comments: 2 | Blank: 96\n\n  Files:\n    analyze.rs (Logical LOC: 169) - P: 199 | L: 169 | C: 1 | B: 29\n    loc.rs (Logical LOC: 112) - P: 130 | L: 112 | C: 0 | B: 18\n    clones.rs (Logical LOC: 104) - P: 124 | L: 104 | C: 1 | B: 19\n    complexity.rs (Logical LOC: 99) - P: 118 | L: 99 | C: 0 | B: 19\n    dump_config.rs (Logical LOC: 38) - P: 48 | L: 38 | C: 0 | B: 10\n    mod.rs (Logical LOC: 5) - P: 6 | L: 5 | C: 0 | B: 1\n\nDIRECTORY: ./crates/core/src/complexity\n  Total Physical:  669 | Logical:  462 | Comments: 57 | Blank: 150\n\n  Files:\n    loc.rs (Logical LOC: 275) - P: 375 | L: 275 | C: 32 | B: 68\n    cyclomatic.rs (Logical LOC: 183) - P: 288 | L: 183 | C: 25 | B: 80\n    mod.rs (Logical LOC: 4) - P: 6 | L: 4 | C: 0 | B: 2\n",
              "syntaxHighlightingTheme": "nord"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "and here's file ranking:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.code",
              "language": "shellscript",
              "plaintext": "================================================================================\nLINES OF CODE ANALYSIS\n================================================================================\n\nSUMMARY\n--------------------------------------------------------------------------------\nTotal files analyzed:        22\nTotal physical LOC:          3393\nTotal logical LOC:           2272\nTotal comment lines:         180\nTotal blank lines:           941\n\nFILES RANKED BY Logical LOC\n--------------------------------------------------------------------------------\n\n1. ./crates/core/src/complexity/loc.rs (Logical LOC: 275)\n   Physical: 375 | Logical: 275 | Comments: 32 | Blank: 68\n\n2. ./crates/core/src/reporter.rs (Logical LOC: 212)\n   Physical: 260 | Logical: 212 | Comments: 16 | Blank: 32\n\n3. ./crates/cli/src/highlight.rs (Logical LOC: 200)\n   Physical: 236 | Logical: 200 | Comments: 2 | Blank: 34\n\n4. ./crates/core/src/complexity/cyclomatic.rs (Logical LOC: 183)\n   Physical: 288 | Logical: 183 | Comments: 25 | Blank: 80",
              "syntaxHighlightingTheme": "nord"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "These are both truncated."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.horizontalRule"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "To those that read these, many thanks! Please feel free to open issues or leave feedback!! Your thoughts are welcome and greatly appreciated. "
            }
          }
        ]
      }
    ]
  },
  "bskyPostRef": {
    "cid": "bafyreia3rvgrav6bhtq6n2nuaafo4xgorsw6snudbymwtzutarmd57kd2y",
    "uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3m5yq7mwy6s2b",
    "commit": {
      "cid": "bafyreieiuzuz3ibzxus62trqw6mc2hxfpddonwdlkpu5ayb5f4hjz5zgiq",
      "rev": "3m5yq7mzbmq26"
    },
    "validationStatus": "valid"
  },
  "description": "Released v0.3.0 of Beacon",
  "publishedAt": "2025-11-19T17:02:16.150Z"
}