{
"path": "/3m5k7i7v3fs2b",
"site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m3zpxhfl3c2s",
"$type": "site.standard.document",
"title": "Dev Log 16: 2025-11-13",
"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": [],
"plaintext": "Mccabre"
}
},
{
"$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": "This is a code analysis tool I made. It recycles concepts and snippets stashed away as I've been working on beacon."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 25,
"byteStart": 21
},
"features": [
{
"uri": "https://tangled.org/@desertthunder.dev/mccabre",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 87,
"byteStart": 81
},
"features": [
{
"uri": "https://github.com/desertthunder/mccabre",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "You can check it out here (docsite coming soon - GH actions aren't set up on its mirror)"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 119,
"byteStart": 103
},
"features": [
{
"uri": "https://crates.io/crates/parserst",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 128,
"byteStart": 124
},
"features": [
{
"uri": "https://github.com/stormlightlabs/git-storm",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "I'm finding that this ends up happening a lot with me, where I start writing a script or a feature and just pull it out and make something small with it."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Notable things as far as personal workflows go here is practicing \"documentation driven development.\" I wrote the documentation before the implementations for this project to keep myself on track."
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Beacon"
}
},
{
"$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": "This project is an exercise in the insanity induced by accruing technical debt. "
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "The codebase is huge and the docsite when printed (it's an mdbook site) would be over 100 pages."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Pattern matching is a complex feature. It's no wonder it's so recent to Python."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Unions in particular required a bit of refactoring"
},
"children": []
}
]
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 60,
"byteStart": 55
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
}
],
"plaintext": "I've extended the CLI to render diagnostics behind the debug command (it's not included in release builds)"
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Speaking of which, I need to make a release roadmap for this project"
},
"children": []
}
]
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"language": "shellscript",
"plaintext": "$ beacon debug diagnostics src/\n\n⚡ Running comprehensive diagnostics on 5 file(s)...\n\n✓ 0 Parse Errors\n\n✗ 3 Lint Issues\n ▸ src/main.py:5:1 [BEA015] 'os' imported but never used\n 5 import os\n ~~\n ▸ src/utils.py:10:5 [BEA018] 'x' is redefined before being used\n 10 x = 2\n ~\n ▸ src/helper.py:3:1 [BEA015] 'sys' imported but never used\n 3 import sys\n ~~~\n\n✗ 2 Type Errors\n ▸ src/main.py:12:9 Cannot unify types: Int ~ Str\n 12 z = x + y\n ~~~~~\n ▸ src/utils.py:20:5 Undefined type variable: τ5\n 20 result = unknown_func()\n ~~~~~~~~~~~~\n\nSummary: 5 total issue(s) found",
"syntaxHighlightingTheme": "tokyo-night"
}
},
{
"$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": "There's still some work to be done (type solving internals like τ5 are probably useless to an end user)"
},
"children": []
}
]
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreiasoergx3lfhosrnfb3wu66tv4wtlibmgsbzfxyqcxneegu4yj254",
"uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3m5k7ihfeuc2b",
"commit": {
"cid": "bafyreidfui2s4n34k6fjokxspvbsiv757qaylns3mpamawbyfrc2jkobay",
"rev": "3m5k7ihhutw2z"
},
"validationStatus": "valid"
},
"description": "BLARGH",
"publishedAt": "2025-11-13T22:25:39.739Z"
}