Tag: miscellanea
-
2025 June 07
-
- Hello world!
- Well, this is kinda weird? I just noticed that all the H1s on my blog are the wrong sizes now.
- Turns out Firefox redefined H1 sizes in the built-in browser styles based on nesting within article, aside, nav, section? I guess this will be a thing in other browsers too?
- I'll have to fix that. I don't like this.
- Oh hey: I just discovered that turning off Settings > General > Keyboards > Smart Punctuation on iOS means I can stop typing invalid JSON in Obsidian
-
2025 June 06
-
- Hello world!
- My brain's been eaten by work for most of this week, so the blogging slowed down a bunch. Hoping to pick it up again soon.
- I'm almost afraid to mention that I spent a bunch of this week deep down an LLM vibe-coding rabbit hole in Windsurf.
- Just in time for Anthropic to cut Windsurf off from Claude models - oops.
- We'll see how good it all ends up being, but I cycled through a handful of models and ended up with about 11,000 lines of code.
- The code had unit tests and it pretty much did what I intended.
- It wasn't great code - a lot of it was boilerplate - but it's mostly stuff I would have ended up doing myself more tediously while fighting my ADHD.
- Trying to compose some thoughts somewhat along the lines of Harper Reed's LLM codegen workflow:
- I settled on a workflow that wasn't just pestering the agent with wishes.
- I had a series of discrete sessions, each started by creating a directory named for a new git branch. I wrote a shell script to semi-automate this.
- In that directory, I wrote a couple hundred words of intention in a spec.md file.
- I asked the agent to expand my intentions into a step-by-step plan.md file.
- I edited the plan and asked the agent to review it critically and ask questions.
- I answered the questions.
- I asked the agent to review it again and tell me if the plan looked clear enough to start implementing.
- When it said "yes", I told it to start implementing.
- The agent started implementing while I watched.
- Sometimes I interrupted and told it that it was on the wrong track. But, for long stretches I was just reviewing the code as it wrote.
- When it claimed to be done, I asked it to review the current changes against the plan and judge if it was really done.
- Sometimes it wasn't and it went back to work.
- When it petered out finally, I told it to make sure all the tests passed and linting errors were fixed. It did that.
- I made sure the tests made sense, myself, fixed a few that didn't. Then I told it to run the tests some more.
- Finally, when I was okay with the results, I told it to review our entire chat history for this session and summarize the results in a notes.md file.
- In particular, I told it to pay special attention to things we did that hadn't been captured in the plan. Try to come up with unexpected conditions and derive some lessons learned.
- These notes ended up being actually pretty good?
- These three artifacts - spec.md, plan.md, and notes.md - were committed along with the code. That marked the end of the session and the branch.
- Now, I won't say that each of the sessions I ran went perfectly. But, I expected it to be an exploration.
- I switched models a few times between Claude Sonnet 3.7, GPT-4.1, and SWE-1.
- I found Claude to usually work the best. It just sort of got to work and did the needful without enticing many objections from me.
- GPT-4.1 seemed to like to make very detailed plans (even after reading the plan.md), ask lots of questions, and then drive off into the ditch and need rescuing.
- SWE-1 was about in the middle - but I ended using it more because there's a promotion running right now that makes it free in Windsurf.
- Occasionally, I'd switch models mid-session just to see what happened. I'm not sure how to characterize the differences, but they each had slightly different coding styles.
- Claude and SWE-1 did better than GPT-4.1 at picking up from unfinished work in progress, I think?
- Still, even with the needful babysitting, between these models I did get stuff implemented and it looked a lot like what I would have written if I'd had the executive function to work at it as doggedly.
- I think I've learned that a focused scope and context window management are essential.
- A few times, I think I asked the agent to bite off more than it could chew? Maybe I blew out the context windows? This is something I could get quantified answers around, if I paid attention to the metrics.
- In those cases, I stopped the presses, backed up, and reworked the spec into a smaller scope.
- Sometimes, I found it handy to get to the point of having the plan.md tuned up, then started a fresh chat with only the plan as context to start. That seemed to work pretty well - again, I think freeing up some of the context window with more condensed material.
- Occasionally, I wandered off into the weeds myself and my session-based approach devolved into chatty iteration. That worked well for making very small tweaks and fussy updates.
- I also learned that I'm good at juggling lots of git commits as save states. Whenever things were in a decent enough state, time to commit now and clean up later.
- I forgot this a few times and lost some progress after driving into a ditch. But that wasn't too much of a hardship, since I could usually just scroll back in the chat and re-attempt the relative bits of the session for similar results.
- I should clean all these bullets up into a proper blog post, but maybe tomorrow. The tl;dr, I guess, is that I think I'm getting comfortable with this stuff.
- It's surprising me with how much it gets done.
- I'm getting less surprised with where & how it goes wrong.
- The failures seem manageable and the results seem decent.
- I had a kind of meta-chat with Claude about the above process, trying to think through some improvements.
- One interesting notion was to use some big cloud models for the spec.md to plan.md stage.
- But, then, switch to a local model running on my laptop for the actual process of implementing the plan.
- Then, switch back to a big model for the notes.md summary.
- If this worked, it could save a lot of tokens!
- I could also see all the above being bundled up and semi-automated into its own agentic workflow.
-
2025 June 04
-
- Hello world!
- The Verge, How to move a smart home
- We've moved a lot. Mostly, I distrust smart home gadgets and don't have many. But, several of the houses we've owned had lingering smart devices. Many of them ended up useless. Occasionally a Nest thermostat could be coaxed to betray its former owner and work for me. For the most part, it's a mess.
- Once upon a time in college, I got a dial-up network connection working to my Commodore Amiga 1200 in my dorm room. I sprinted across campus to a computer lab to telnet back into my A1200. It was so neat. And pointless. But neat.
- This, of course, was before it occurred to me that anyone with my temporary IP address could have also telnetted into my A1200. 🤷♂️
- Had some adventures in vibe coding, last night. Maybe I'll write about it? I keep reading folks saying this stuff doesn't work, but... it does?
-
2025 June 02
-
- Hello world!
- Jotted down a couple posts today on AI stuff that aren't particularly revelatory.
- If anything, they're just me trying to think out loud and clarify.
- I'm probably going to try writing more stuff like this, if only to be Wrong on the Internet and lure someone in to correct me. 😅
- Dang it, I don't wanna go to bed, I just discovered strudel.cc
-
2025 May 31
-
- Hello world!
- I need to come up with a process here that keeps these miscellanea posts marked as a draft, if I never get past "Hello world!"
- I start a new file every morning from a template, with the intent that I'll drop by and jot some things here throughout the day. But, this week turned out to be particularly busy. So, I went a few days never getting past "Hello world!" and that's not super interesting to publish.
- At some point, I want to hook this stuff up to Mastodon and Bluesky accounts. I don't want to just post templated nonsense. (Just intentional nonsense.)
- Maybe there's something in the air, because a week or two ago I got suddenly compelled to dive down a rabbit hole about the transformer robot watch I had when I was a kid in the 80s.
- The one I had was confiscated by a teacher and never given back. I'm still salty about that.
- But, just a couple days ago, I saw this video from Secret Galaxy on the history of the Kronoform watch
- From there, I found this giant-sized printable version of the Takara Kronoform in desktop clock form - I'm going to have to give that a try.
- I kind of want to try building some version of the robot watch with some smart guts. I probably won't get around to it, but why do smart watches have to be so boring?
- Maybe I can split the difference by sticking a smart display in the desktop clock version? Hook it up to Home Assistant and make it do... I don't know what.
-
2025 May 29
-
- Hello world!
- Been doing a bunch of vibe coding lately in Windsurf, "pairing" with Claude. A thing I keep wondering is how to make this process more multiplayer.
- Like, there's a conversation between Claude and I. But I can't easily share that transcript with another human teammate.
- That conversation is about as important as the code for making sense of things. More so, if we start to consider the code as an increasingly derivative product of the conversation.
- So, if my teammate is also working in Windsurf with Claude, they're missing all the context I built up that brought the project to its current state.
- And this isn't even getting into the notion of "mob coding" where maybe there's 2-3 of us humans with an AI agent riding shotgun.
- I'm thinking the conversation with the agent is a particular form of documentation that should be preserved - maybe as an artifact paired with each discrete git commit?
- Of course, the conversation is messy, with lots of iteration. So maybe it would help if there's a summary or a tl;dr ginned up at commit time, too? (That could be the commit message, I guess?)
- I like the notion of Architecture Decision Records (ADRs) - I wonder if something like that could work for iteration sessions with an AI agent?
- If we can scope a session to something discrete like a feature and capture the conversation from start to end in one of a rolling series of markdown files, that might be interesting context for both human and AI.
- I know all the above presupposes that coding with an AI agent is a real and valuable thing. But, after putting a bunch of hours into giving it a try, I've morphed from skeptical disbelief to cautious buy-in.
-
2025 May 28
-
- Hello world!
- Busy day, so not as many words spewed onto the internet.
- But, even if I'm not exactly producing best-sellers here, I've been fairly pleased with having gotten into a daily groove of writing.
-
2025 May 27
-
- Hello world!
- It's a caremad day, I guess.
- This blog publishes every 10 minutes, if I have changes to the day's markdown document.
- I'm starting to feel like that's a Pomodoro timer if I'm off on a rant. I need to beat the micro-deadline and be done with it.
-
2025 May 26
-
- Hello world!
- Figured I might write a bit more here over the weekend, but instead I mostly puttered around the house catching up on some needfuls.
- There's a part of me who kind of wished I'd taken photos and written about it - but meh, not everything needs documenting.
- Dumped some thoughts about Glitch, but also feeling a further rant brewing about how I'm really not feeling like it's 2004 again anymore.
- I'm not optimistic that anything like the open web as we know it survives the bots.
- Maybe something different follows?
- Maybe that looks like MCP?
- Maybe the web goes the way of dial-up BBSes - they're still around, mind you, but just as a weird little niche hobby that won't fund my mortgage.
- Mostly I'm really sad, lately. I'm trying to get past that to some renewed enthusiasm.
-
2025 May 22
-
- Hello world!
- Taking a couple days off work for a long weekend. First leisure activity scrubbing down my balcony to open it for the season.
- Home-ownership isn't so much a dream as it's a hobby and a part-time vocation.
-
2025 May 21
-
- Hello world!
- Boy, Sam & Jony really like to talk. What was that all about?
- After making the tweaks to this blog to make it easier to post and publish more frequently, I discovered that I'd doubled my AWS S3 bill! 😅
- Turns out that the process I set up over 7 years ago just re-uploads the entire site, every time I push a change. That wasn't a noticeable problem until I started pushing multiple times per day.
- So, I'm looking into a new workflow based on rclone that should be able to do more differential uploads based on changes.
- The first version of that workflow deleted the contents of my blog. (Oops.) The second version re-uploaded everything in about 6 minutes.
- One more thing I should write about if I get around to an entry describing the current state of this contraption.
- Juggling a couple AI related ideas in my head that might turn into a longer post:
- Seems to me like most AI-assisted tools these days are single-player and it's really hard to pass the baton of a project underway to someone else.
- Seems to me like many folks using AI-assisted tools think they're the only Chosen One in the world with access to those tools and everyone else around is an agency-free NPC
-
2025 May 20
-
- Hello world!
- Added support for a
draft: true
flag on entries here, which should at least help me keep half-broken things from deploying mid-rant - Now I just have to make sure to use that flag right so I still don't include half-broken things here 😅
- I should figure out a decent way for showing really long strings here, like the path names in that cloud saves post today 🤔
- How the hell do I remember things like "Pumas on Hoverbikes is at monkeybagel.com" but I have to remind myself to eat lunch as a separate step from making lunch?
-
2025 May 19
-
Hello world!
"Log Lady Look-Alike Contest Photos: She’s Got the Look (and the Log)"
- I love this city.
Interesting bugs here in my Rube Goldberg blogging machine involving Syncthing and Obsidian, where sync conflicts become clashing ghost entries 🤔
I should tweak support for a
draft
flag here, so that posts that I'm still editing don't get published automatically. This flow is almost too frictionless, at this point.I've been using Obsidian for about 5 years now for my daily notes. I've been tempted to take another swing at writing my own notebook, because I barely use any of Obsidian's fancier features. I mainly like that's it's a good cross-platform Markdown editor with a few plugins that I've settled on for regular use.
I have a vague notion to make a USB or wifi interface for an old Atari Video Touch Pad. Could use it as a Stream Deck (if I ever stream again) and / or hook it up to Home Assistant.
I need to find a better way to insert images like this 😅
-
2025 May 18
-
- Hello world!
- I made lentil stew and roasted coffee.
- Also cooked some dried pinto beans in the Instant Pot for dinners this week.
- Played a little Clair Obscur: Expedition 33 and DOOM: The Dark Ages.
- The Lampmaster is a jerk
- Beating a boss demon at tennis is fun
- Wanted to work on some tinkering projects but couldn’t quite find the motivation. 🤷♂️
-
2025 May 17
-
- Hello world!
- Today was Eurovision day, and not much else got done.
-
2025 May 16
-
- Hello world!
- I listen to podcasts at between 1.8x - 2.5x, depending on the day's mental weather. That means, when I've met a podcaster I listen to, they sound drugged or drunk to me.
- I’ve had folks tell me this sounds stressful. But, I get distracted in the gaps and my mind wanders. Easier for me to follow rapid word dumps.
- This is not a flex, this is a coping strategy.
- The new Peter Murphy album, "Silver Shade", sure is Peter Murphy.
- I don't hate this at all.
- I'm really digging the collabs he did here, teaming up with folks like Boy George, Trent Reznor, and Justin Chancellor.
- Hey, you, service provider on the web that I pay for: I am annoyed that I'm constantly signed out when I come to visit. You don't remember me, and you are constantly trying to call-to-action and dark-pattern me into your growth hacks when I already have an account.
-
2025 May 15
-
- Hello world!
- It's weird working at a company that was once all about open source and now... isn't so much. There are things I'm doing that I don't think I should be talking about. And yet, I want to talk about them.
- But, also, I think we should be talking about them. And also making it all open source. 🤷♂️
- Been checking out are.na - it seems like Pinterest for horn-rimmed-glasses aesthetics. That's not meant as an insult, mind you.
-
2025 May 14
-
- Hello world!
- Looks like I ended up with an AI-heavy posting day, today. I think I broke the seal yesterday. I'll probably post about other things in the near future.
- I've been meaning to write something up about the Rube Goldberg machine that runs this blog now. Writing this bullet point to irritate myself to do it soon, maybe.
- I bought a BOOX Tab Ultra C almost 2 years ago. I use it almost daily for writing notes and journal entries. It's also been pretty great for reading comics in color. Two things I really don't like about it:
- It's got a camera bump on the back, so it doesn't sit flat on a table without a case on.
- The case that came with it is disintegrating into dust.
- So, I'm considering trying to design my own replacement case - or at least a layer to stick on the back to even out the camera bump.
- Hoping to use #3dprinting and embed magnets that line up with the device's own internal case mounting magnets.
- But, like, why put a camera bump on a tablet?
- Why design a camera bump into anything, really? Just make the device thicker and fill the rest of the space with battery.
- I need to stop before I go on a cranky rant about my intense disgust for camera bumps and notches and other failures of design from Apple that the rest of the industry have just copied.
- Really, I'm just caremad, because I used to be a huge fan of Apple - had the sticker on my car and everything. But, they have betrayed me over the years with stuff that seems to matter only to me. 🤷♂️
- Just noticed that jpmonette/feed - a node.js module for generating RSS, Atom, and JSON feeds - got a new release a couple days ago after about 4 years of dormancy.
- Looks like they may have possibly fixed a few of the issues I had with it, when last I tried using it. 🤔
- I need to work links & bookmarks into this new blog in a better way. Like these:
- Nintendo Revises User Agreement, And If You Break It, Nintendo Reserves The Right to Brick Your Switch
- Well, that just makes me want to jailbreak my Switch even more and then never again connect it to the internet.
- Critical Warning for External Purchases in App Store
- Yeah, it's stuff like this that's got me fixed on switching back to Android with my next phone.
- I've only bought one iPhone and I've never felt the Courage or the Magic the whole time I've used it. It's never felt like my phone, always felt like a loaner with a breathalyzer and a bill acceptor slot.
- That said, the thing is physically a tank and will probably survive intact to annoy me for a few more years before I can justify the replacement cost.
-
2025 May 13
-
- Hello world!
- I'm in a weird place with this current AI wave in the tech industry. Drafting up some thoughts, maybe they'll turn into a post? I started just riffing here, but the riffing kept expanding, so I think I should give it some time to cook.
- And, indeed, I went ahead and posted a separate entry on what I'm thinking about AI and LLMs! Maybe too many words that no one will read, but I wanted to get it out of my head for future noodling.
- None of what I wrote there about AI & LLMs is particularly novel - in fact, the post is probably about 2 years behind the times. It's just that I think I needed to get it written down to get my own head straight. And maybe to refer to it later?
- Also, this AI stuff makes me self-conscious about my love of em dashes, which predates the popularity of LLMs for generating text? This shell command says I've used at least 172 of them around here:
find . -type f -name "*.md" -print0 | xargs -0 grep -o "—" 2>/dev/null | wc -l
- I can tell you exactly where I picked up my love of em dashes: Ayn Rand's Atlas Shrugged, sophomore year of high school. It was a conscious decision to adopt them. My opinions on that book have changed, but my use of em dashes remains insufferable.
- feedsmith: "Robust and fast parser and generator for RSS, Atom, JSON Feed, and RDF feeds, with support for Podcast, iTunes, Dublin Core, and OPML files."
- Well, that's relevant to my interests. Might be worth replacing my half-baked RSS template on this blog with that, at least.
-
2025 May 12
-
2025 May 11
-
2025 May 10
-
- Hello world!
- Nice day in Portland! Took the car to get serviced, walked for a sammich at Snappy's, then walked over to TOTL Games to see what's what there. Bought myself an Xbox 360 HDD expansion. Someday, I'll get around to hacking that thing and loading it up with all the Rock Band ever.
- Time for a bike ride! I've got a 15 mile route in Portland that I take around the Willamette River just about any weekend when the weather's pleasant. Not all that long, but rather pleasant, and gets me out of the house.
- I'm still playing with #meshtastic a little, but I think the two devices I have are really only receiving and not managing to transmit to anyone. At least, no one's ever really responded to any of my "ping" messages. Not sure whether I want to go further down the rabbit hole and buy any more robust antennas and the associated paraphernalia that goes along with.
- Responsive CSS is hard, let’s go shopping.
-
2025 May 09