{
"path": "/3m54v6e6ag225",
"site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m3zpxhfl3c2s",
"$type": "site.standard.document",
"title": "Dev Log 12: 2025-11-08",
"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": "Noteleaf"
}
},
{
"$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": [
{
"index": {
"byteEnd": 140,
"byteStart": 130
},
"features": [
{
"uri": "https://grugbrain.dev/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "I'd completely over-engineered publishing/posting to leaflet and spent a lot of time debugging it. The service implementation is, thankfully, a lot simpler now."
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Storm"
}
},
{
"$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": [
{
"index": {
"byteEnd": 44,
"byteStart": 37
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
}
],
"plaintext": "I added a git tagging utility to the release command. It makes me wonder if integrating it with goreleaser would be a good idea."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 22,
"byteStart": 18
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
},
{
"index": {
"byteEnd": 61,
"byteStart": 48
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
},
{
"index": {
"byteEnd": 132,
"byteStart": 127
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#code"
}
]
}
],
"plaintext": "I suppose I don't have to address the fact that strings.Title is deprecated in Golang, and yet I find myself making an English Caser whenever I need it. It's a little annoying."
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"language": "go",
"plaintext": "package shared\n\nimport (\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n)\n\nvar caser = cases.Title(language.English)\n\nfunc TitleCase(s string) string {\n\treturn caser.String(s)\n}",
"syntaxHighlightingTheme": "gruvbox-dark-hard"
}
},
{
"$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": [
{
"index": {
"byteEnd": 71,
"byteStart": 58
},
"features": [
{
"uri": "https://stormlightlabs.github.io/beacon/configuration.html",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "I worked on configuration ergonomics today and added some documentation."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "The CLI work I did is actually pretty cool and the printed formatting looks great. Maybe I'll post a demo."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "More linter rules are implemented:"
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 40,
"byteStart": 36
},
"features": [
{
"uri": "https://stormlightlabs.github.io/beacon/lsp/lint_rules.html",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "BEA009,010,012,015,017,018 (details here)"
},
"children": []
}
]
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 37,
"byteStart": 14
},
"features": [
{
"uri": "https://github.com/stormlightlabs/beacon/blob/main/CONTRIBUTING.md",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "There are now contributing guidelines in the repo"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "TIL"
}
},
{
"$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": [
{
"index": {
"byteEnd": 188,
"byteStart": 181
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "Today I learned about debuggers commonly used in Golang & Rust. It's a little embarrassing to have been using both of these languages and toolchains for much of the last year but I finally setup Delve & LLDB, respectively. I might post some notes or a tutorial later today."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 23,
"byteStart": 18
},
"features": [
{
"uri": "https://docs.basedpyright.com/latest/benefits-over-pyright/pylance-features/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "BasedPyright is a thing, successfully doing one of the things I've been trying to do with beacon, namely an open source and powerful Python LSP. It's pretty cool. "
},
"children": []
}
]
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreid7i4gz2lawioxsmq2yblchu2ukhknzsh4akhlofsarpv6zcnti5a",
"uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3m54v6i2ym225",
"commit": {
"cid": "bafyreifuge55einlalgbqsqm5o6ucojdikwhyhdahr4wio64lrpcey5noi",
"rev": "3m54v6i5giu2e"
},
"validationStatus": "valid"
},
"description": "In which I try to write more",
"publishedAt": "2025-11-08T15:16:34.672Z"
}