(untitled)
I might’ve just participated in money laundering: a guy walked into the no-cash coffee shop I’m at, craving that sweet, sweet coffee, trying to pay with cash. Sometimes you just need that fix, so I paid, and now I’m up 1 SEK 🚀
Recent content on bjorn.now
I might’ve just participated in money laundering: a guy walked into the no-cash coffee shop I’m at, craving that sweet, sweet coffee, trying to pay with cash. Sometimes you just need that fix, so I paid, and now I’m up 1 SEK 🚀
beads 1.0.1 flipped the export.auto default to on, so old projects silently start exporting issues.jsonl after upgrade. To opt back out, run: bd config set export.auto false New projects get prompted during init, only existing projects will get this nice surprise. If you’re using dolt’s git export instead, commit the config change and delete the issues.jsonl file.
When dolt’s journal is corrupted, dolt fsck --revive-journal-with-data-loss will truncate it back to the last valid record. I found this error message when starting dolt up after upgrading the server: invalid journal record at offset 5831169: invalid journal record: CRC checksum does not match. To recover, go to your dolt DB: cd ~/.beads/shared-server/dolt/ \ && dolt fsck…
dolt’s shared server won’t pull until all databases on the server have committed changes, not just the beads project you’re pulling. You’ll get Error 1105 (HY000): cannot merge with uncommitted changes and it’s confusing when the beads project you’re working in has autocommit on. The uncommitted changes are in a different project that’s also using the shared server. The fix is to go through your…
You can manually clone a dolt database from its git remote when bd bootstrap or bd init won’t cooperate. bd dolt stop: stop the server in the git repo you’re restoring so you can operate on its database cd ~/.beads/shared-server/dolt: go to the shared dolt server (it’s .beads/dolt/beads otherwise, I think) rm -rf : remove the DB if it exists already dolt clone…
sometimes on windows I can’t delete files, even in an administrator terminal, so I start WSL and rm -rf it. there’s no questions. 🤷
Migrating an old beads backup to 0.62.0 I got a wall of Warning: failed to restore issues row: Error 1054 (HY000): Unknown column 'hook_bead' in 'issues'. Made a quick script to fix up the backup format: https://gist.github.com/gaqzi/c2d760627daceffa1f062f93244c3e8e
I had a breakthrough while working on bjornstack that made me realize how I could make an MVP of breadcrumb, the tool I’ve wanted to build for ~18 months. So anyway, bjornstack is my opinionated take on how to write code, aimed at constraining and guiding genies to get their work done. And while working on it, like I have been whenever I’m working with genies, I got thoughts that I wanted to…
Warranty Void If Regenerated by Scott Werner (via Valentine): His shop was in a corrugated steel building on Highway 29, between a feed store and a Laundromat. It had a waiting area with four plastic chairs and a coffee machine that Tom had specified himself and which made coffee that was, by consensus of his clients, exactly adequate and no better. He’d tried to improve the spec three times. Each…
today’s windows fun: when sshing into a Windows machine (what a modern world we live in) and trying to operate on git repos using Azure DevOps in HTTPS mode, it’ll fail because wincredman doesn’t work over SSH. remote desktop to type git push it is https://github.com/git-ecosystem/git-credential-manager/blob/main/docs/credstores.md#windows-credential-manager
and now I’ve strung up all the beads experiences from the last couple of days 😆
To switch beads from a per-project dolt server to the shared server, do a backup, configure shared-server, and restore. I was running in “a server per repo” mode and it’s just unnecessary, they clash in annoying ways when switching repos, and once I understood how beads store data in git I embraced dolt and the shared server. I had hesitated because I had somehow connected it with DoltHub, and…
Beads with dolt store data in git refs, not branches, and won’t share it anywhere until you manually configure a remote. After bd init, your dolt data only exists locally. You can check with bd dolt remote list which will show “No remotes configured.”
I tweak the default beads setup to work with Claude instead of the generic agent integration. As of beads 0.62.0, this is what I run: # configure agents later bd init --shared-server --skip-agents # setup a CLAUDE.md and configure claude hooks to re-prime beads bd setup claude --project bd hooks install # move local settings to project settings mv .claude/settings{.local,}.json # amend init commit…
When beads can’t find or create a dolt database, delete the local dolt state and reinit. The errors look like this: Error: failed to open Dolt store: database "bs" not available after CREATE DATABASE: Error 1049 (HY000): database not found: bs or: Error: failed to open database: database "bs" not found on Dolt server at 127.0.0.1:3308
Start with the smallest test print you can, no, even smaller, when iterating on a 3D model. Top: the first print, fully believing I had nailed everything on the first try (also some hope, it was printing over night so hey, it might mean I’m done with this first design) Middle: second print, cut smaller but enough to let the device rest. Made me realize I hadn’t taken into account that the device…
Iterating on a 3D print takes 20+ minutes per attempt (maybe that can be improved?) and somehow that feels more fun than waiting on a slow test suite. Maybe it’s because when I’m waiting on the printer I just work on other software projects. Or watch TV. 🤷♀️
I printed a grip strength trainer from Maker World which my mom has been using and said she caught herself opening jars she hadn’t been able to open on her own before. I’m enjoying these random finds from getting the printer 🙂 https://makerworld.com/en/models/2161255-grip-strength-trainer-medium_30kg
I didn’t really realize just how big 5mm is until I used it as a ‘reasonable tolerance’ when designing a 3D printed bin. It’s now looser than a really poor joke!
and now I own an apartment, time for the renovations to begin, and then hopefully I’ll stay here for a while 😄
The Scotty Test: Before proceeding past any failure, ask yourself: “Would Scotty walk past a warp core leak because it existed before his shift?” found while perusing Gas Town’s prompts for the refinery, to steer agents to fixing things. yoinking that
git rm --cached will remove a file from git’s tracking but leave it on the filesystem. Great if you accidentally commit something that should’ve been in .gitignore.
Thoughts on Welcome to Gas Town by Bill de hÓra: Steve’s description of Gas Town itself reads like a mash-up of social deduction game mechanics, control-plane software, and management theory. It feels, especially on the latter aspect, heavily designed in a modernist urban planning sense. Personally, for AI and agent-driven development, I find myself veering toward constraint-based approaches:…
I shared a prompt to help create “AI expert prompts” to help you learn a domain, and I’m realizing I didn’t mention the dangers. As every company that gives you a genie to talk to says “they can get things wrong.” The problem is that as a non-expert you don’t know what you don’t know, so you don’t know when the genie is so confidently wrong. When I started a company I figured, why not do the books…
I was reading Our First Accelerated Expertise Course from Commoncog, and the section Why This Training Approach is So Weird got me keen on seeing if I could get the genie to help me build experts for sensemaking, so I can learn to see the world as those experts do. So far I’ve created one expert, and I’ve had a useful conversation (I realized I was not seeing the forest for the trees), so sharing…
autocorrect made ’teater’ (swedish, you can guess the word) into ’tester’ and somehow that seems correct for me, even if it was ’teater’ this time
I have been wondering how Steve Yegge gets quality when vibing and this seems to be how, from the emergency manual Tending the Invisible Garden: When you work with Gas Town, you don’t usually have time to inspect the code you’re creating. That’s not your role. But you need to make sure the code meets your quality bar. How do you ensure your garden is healthy if you can’t see it?
Use git config core.hooksPath script/hooks and it’ll use the scripts in script/hooks as hooks in the git project. Version controlled, and no need to update symlinks as scripts come and go.
heh, there’s a warning about gas town burning through tokens… this walk around shops in Karlstad is sponsored by the 2pm quota reset
how often I typo ‘gt’ to ‘git’? trending to 1
Becoming More by Martijn Faassen: I want to admit that this AI/human me, this centaur me – my human understanding is on occasion limited. I lean on the AI quite a bit. Perhaps it isn’t genuine understanding. A tricky question in epistemology. Let’s not even talk about the AI understanding something, or not. I do know this. I’ve always leaned on other people’s understanding - I’ve reused computers,…
Most developers don’t build new things by Robby Russell: We inherit. We understand. We stabilize. We extend. We improve what we can without destabilizing what already works. This kind of work rarely attracts attention. It looks like incremental improvement and steady compounding over time. But if most of your career is going to be spent in the second act, then the real question isn’t whether you…
3D printer arrived, unboxed, assembled, calibrated, and currently huffing and puffing at plastic because they be moist. 12 hours until I get to hit print 😭
TIL: if DHL is sending two parcels from the same vendor, shipped at the same time, they might send it to two different places that are kilometers away from each other so you better make sure to set them to the same place. Relatedly, my new 3D printer has arrived, and at some point the filament will arrive at another distribution point
Set GENERIC_TIMEZONE for n8n or you’ll get ERROR: You specified an invalid date. when you try to publish a time triggered workflow. I had done a server migration and completely missed the .env file when copying, and after recreating it all started working.
Relocating Rigor by Chad Fowler (via Muthu). Generative systems only work if invariants are explicit rather than implicit. Interfaces must be real contracts, not incidental boundaries. Evaluation must be ruthless. Failures must be loud and immediate. The engineer’s job shifts from typing code to specifying intent and verifying outcomes. This is very much how I’m currently thinking about working…
Add commands to both permissions.allow and sandbox.excludedCommands to run them outside Claude Code’s sandbox by default, because allow grants permission to run at all and excludedCommands runs them unsandboxed. { "permissions": { "allow": [ "Bash(pnpm test:unit:*)", "Bash(pnpm test:e2e:*)" ] }, "sandbox": { "excludedCommands": [ "pnpm test:unit:*", // Same commands, different purpose "pnpm…
Write out colon subcommands explicitly for Claude Code permissions because test:* doesn’t match test:unit (prefix matching treats them as separate commands), and the fallback test* is too broad (matches testAndDestroyEnvironment). For example: { "permissions": { "allow": [ "Bash(pnpm test:unit:*)", // Allows pnpm test:unit --arg etc. "Bash(pnpm test:e2e:*)", "Bash(pnpm test*)" // ❌ <- will allow…
I hoped to be blazing new trails professionally and not because I was dropping the niece off at daycare after 10-20cm of snow (the wind drift makes it hard to estimate)
well, relearning not to run the kettle when just turning on the dishwasher also taught me that my NAS is on the same circuit, guess I should move it to be plugged in on another breaker before it breaks 😅
borrowed a full-sized Swedish keyboard for the new PC, and I swear, my fingers hurt. Contorting to hit special chars and stretching all over… Ordered a TKL (sans numpad) Keychron with ANSI/US layout and I’ll just figure out how to type Swedish in Windows as well as I do on my mac 😅 now… colemak?
also, very impressed by tailscale and how easy it makes creating my own “enterprise-like WAN” where all my machines can talk to each other. I set it up on the new machine and left it in the coworking space and it’s just accessible now that I’m home if inspiration strikes (work/life balance? pff 😉)
aw hell, switching to a dedicated windows machine cut my iteration time down drastically: browser e2e test went 5m -> 1m. virtualized OS + translation from my arm host to x64 because of old .NET seems to have been quite the culprit for slowness 😅
I’m installing Windows on a new machine for the first time in forever and during installation I had to use my other machine to download drivers so it could connect to the internet and continue. As a mac user it surprises me but I guess it shouldn’t. Maybe this Intel WiFi 7 card is just too new…
when doing research on how to format stuff and you’re looking at UN CEFACT codes, have you dug too deep? https://github.com/schemaorg/schemaorg/wiki/Using-UN-CEFACT-Codes
majorly nerdsniped myself today by fixing bugs that were easy to manually fix, but, now I have fully refactored my script and fixed the problem 😅
Marking the content/ folder for your Hugo site as a “Source Root” in IntelliJ lets you use Path from Source Root to get the path to the file without the content/ prefix you don’t need when linking internally. To make linking internally easier, I created an Alfred app snippet ({{ }}), so now I only have to open the other post, double-tap shift, type “source root”, then run the snippet, and all…
three pokes until all blood was collected for tests today, par for getting blood out of my miserly veins. the nurse seemed amused by my warnings that I’m often a difficult case, then a bit relieved afterward that this was normal 😁
I keep getting surprised when overtaken by others while walking here in Sweden. Back in Singapore I was the one overtaking people. Then again, so many Swedes tower over me, and I at least cottaged over people in Singapore 😉
a tea filter ball (one of those little mesh ball on a chain) and a Clever Dripper really works great for brewing oolong tea 😁