2025-12-20 Sat

2025-12-17 Wed

  • JetBrains/RustRover
    • Today I used a DevContainer in for the first time in Jetbrains ...
      • I saw a warning this morning when opening Langstar in Rust LRover:
        • Create Dev Container

        • Mounting sources on Windows and macOS can lead to performance degradation. We recommend using a clone of the sources inside the container.
        • Cancel Continue
      • So, I need to use a devcontainer to standardize how my dev envirnoment marshals resources, but now I need to do that not just in a way that can be utilized in Codespaces as well as locally, but ALSO I need to somehow do that in such a way that filesystem syncing is turned off, implying that it's cloned ...
      • It seems like the way devcontainers are meant to work in VSCode is different than in JetBrains. In Jetbrains, they want you to clone the project into a container AFAICT.
        • FeatureVS Code defaultJetBrains Clone
          FilesystemHost-mountedContainer-native
          PerformanceMedium–poorFast
          LSP / buildsSlowerFaster
          Git UXLocal GitContainer Git
          Warning dialogYesNo
          CI parityLowerHigher
      • As a result, we need to do File → Close Project, then do Remote Development → Dev Containers, then enter in the path to .devcontainer.json, then it will build the image.
      • I ended up filing Use named volume for /workspace in devcontainer to fix JetBrains file watching · Issue #711 · codekiln/langstar for this.
      • BTW w.r.t. Mermaid Diagrams ...
        • I used to use Mermaid diagrams exclusively for sharing representations of architecture with LLMs. Lately, I've noticed that they can just as well generate, and crucially, understand ascii art diagrams as well, which don't require a mermaidjs runtime to render for humans.
        • ┌─────────────────────────────────────────────────────────────────┐
          │                         HOST MACHINE                            │
          │  ┌─────────────────────────────────────────────────────────┐   │
          │  │  .devcontainer/                                          │   │
          │  │  ├── .env           ← Your secrets (gitignored)         │   │
          │  │  ├── docker-compose.yml  ← Reads .env for substitution  │   │
          │  │  └── devcontainer.json                                  │   │
          │  └─────────────────────────────────────────────────────────┘   │
          │                              │                                  │
          │                    Docker Compose                               │
          │                    substitutes ${VARS}                          │
          │                              │                                  │
          │                              ▼                                  │
          │  ┌─────────────────────────────────────────────────────────┐   │
          │  │                    CONTAINER                             │   │
          │  │  Environment variables set via docker-compose.yml        │   │
          │  │  ├── GITHUB_PAT=<from .env>                             │   │
          │  │  ├── AWS_ACCESS_KEY_ID=<from .env>                      │   │
          │  │  └── LANGSMITH_API_KEY=<from .env>                      │   │
          │  │                                                          │   │
          │  │  /workspace  ← Named Docker volume (code lives here)    │   │
          │  └─────────────────────────────────────────────────────────┘   │
          └─────────────────────────────────────────────────────────────────┘
        • For example, in this diagram, if you paste it into chatgpt, it will know exactly what's going on.
    • POSIX issues
      • using Claude/Code in a terminal ends up not receiving the ESC key for some reason using the new terminal in JetBrains.
        • In terminals, Ctrl-[ is literally the ASCII Escape character.
        • Use:
        • Ctrl + [
        • instead of:
        • Esc
        • Claude Code will treat it exactly the same.
Linked references — 1 page

Open the linked references

2025-12-16 Tue

  • Kindle app now answers questions about the book you’re reading | The Verge
    • I use AI heavily as a thought partner when reading today, I just have to do it outside of Kindle. I use Readwise Reader's "ghostwriter" feature, which similarly allows asking AI questions, at least once a day. I also regularly use ChatGPT with audio mode to do something similar when walking.
    • Most of my queries are requests to expand the details to fill in my knowledge or imagination,
    • For example, this morning, while reading an article, I asked, "where are places where Energy Return on Investment is typically used as a metric?" or "what are some examples of what the author means by 'heterodox economists' in this passage?"
    • Some of my queries are attempts to explore connections between different ideas. This morning on the way in to work, I asked ChatGPT on the article Ideas Aren’t Getting Harder to Find—Asterisk, "the author is attempting to explain why GDP growth has stagnated in recent decades as though that were something that was unexpected. My intuition makes me wonder, though, if GDP growth was just no longer a fair metric to use due to structural changes in the economy. Regulatory capture and the pressure to create financial instruments to smuggle capital into private, untaxable enclaves have turned the economy into an officially endorsed Ponzi scheme (or maybe my terminology is inaccurate ... there are many types of "rigged games" and Ponzi scheme may not be the exact type of rigged game that is most comparable to our economy ... what are some others)? In particular, GDP doesn't capture tacit efficiencies that people make in their industry. For example, if someone uses AI to automate most of their job, but they don't switch jobs, get a raise, or create new products, their job may just change in kind to expand to more surface area of their responsibilities without that showing up in revenue or profit or other metrics until much later. Can you help me unpack this?"
  • Read/ing Person/Cory Doctorow/Book/23/Red Team Blues - about 10% in. It's about Security and Crypto. Just love using Doctorow to review the crypto landscape in a fun story without having to peruse tech bro reddit. Pure Edu/tainment

2025-12-14 Sun

2025-12-12 Fri

  • Rust study
    • Rust/Book/TRPL/ch/04/02 References and Borrowing
      • I'm now starting to understand why for a perfectionist's language, Rust code tends to be less DRY than some other languages like Haskell.
    • Rust/Book/TRPL/ch/04/03 Fixing Ownership Errors
    • Langstar development
      • This morning I got in early and had two or three tries at using Git Worktrees to do work with Claude/Code. Even though I've been relatively successful lately using a DevContainer to do 3-5 trees, I'm finding that docker and the devcontainer crash more and more when I'm doing unattended coding on Rust. I think it might have to do with rust extensions doing type checking in the IDE on the various worktrees while the source code is changing, and Docker bumping into its memory limit. But I'm a bit surprised that 16 GB of RAM wasn't enough. It could also have to do with switching to Cargo/nexttest, which has a higher CPU burden. With one worktree active in claude code, I'm at 5.34 GB of container memory usage. Within 10 min it was up to 10GB.
    • Rust/Closure
    • Rust/async
    • Rust/script

2025-12-11 Thu

  • Added evaluation report: Markdown/Tool/Evaluation/Linters and Auto-Formatters for Table Alignment and Code Blocks
    • dprint is a rust based autoformatter, but it's also got some involvement with Webassembly ...
  • Rust learning
    • Rust/format - documented the format! macro for string formatting
    • Cargo/nexttest
      • I've started using this in Person/codekiln/GitHub/langstar.
        • It surprised me here
          • My question:
            • In python and js, tools like linters would typically be locked alongside the libraries and specified in the package manager. Does rust really differ from these that much?

          • ChatGPT/Response
            • cargo-nextest is a binary tool (cargo subcommand), not a Rust library. Binary tools must be installed via cargo install, not added to Cargo.toml dev-dependencies.
            • Yes — Rust really does differ here. The difference is structural:
              • Cargo only manages libraries you compile into your project. Cargo.toml is a crate manifest, not a general dependency manifest. Unlike JS (package.json) or Python (requirements.txt), it doesn't manage binary tools.
              • Rust ecosystem assumes tools are installed globally via cargo install, Nix, Docker, or OS package managers. This matches systems languages like Go/C++/Zig, not Python/JS.
              • Version-locking tools happens outside Cargo via devcontainer.json, Dockerfiles, Nix flakes, CI scripts, or a tools/ workspace crate.
            • Bottom line: Cargo intentionally separates build tools from build inputs. For reproducible tooling, use devcontainer/Docker/Nix/CI scripts, not Cargo.toml.
Linked references — 1 page

Open the linked references

Earlier