A friend asked me to help him port an old PHP app to Rails. I told him I have no interest in looking at old PHP code. But we kept talking, and he brought up the possibility of using Claude Code. I had no experience with these AI coding tools, so out of curiosity, I agreed. (Note: this was also a paid gig.)
The first thing I noticed was Claude was down quite often. The first time I tried to log in, I got some cryptic HTTP error. I googled the error message and the explanation was that my IP was blocked by Anthropic. Oh shit, was it retaliation for me blocking their crawler with robots.txt? But I’d removed the block. I was now only blocking Perplexity… I spent 30 minutes troubleshooting. Turns out Claude was just down. Good first impression.
I still don’t know how sessions are supposed to work. When I quit Claude Code, I get a string to resume the session. At first I just wrote the string down in a note, then I learned that resuming without the string gives you a picker. But how do I delete a session manually? Are sessions ever deleted? I’m sorry, Dave. I’m afraid I can’t do that. Then I learned that resuming sessions eats tokens. Which made me not want to quit so often. Now, how do I see a list of all my sessions without quitting? I ended up putting Claude Code inside screen and never quitting. But now I have to do a shortcut key dance every time I want to scroll up. Score one for carpal tunnel.
At first I was more careful. I read through all the proposed changes. Then I got tired, and accidentally chose “yes and don’t ask again”. Oh shit, now Claude is doing things I don’t want. Everything flew on the screen so fast that I didn’t know what was happening. CTRL-C. CTRL-C. How do I turn it off? The /permission thing only allows me to turn off permissions for commands. I asked Claude and it recommended planner mode. What is planner mode? Don’t know, gave it a try. Nooo, this is not what I want. Shift-Tab. Shift-Tab. Why is Claude still able to edit files without asking? Claude, you liar. In the end, I accepted defeat, quit Claude, and started a new session.
The generated HTML and CSS have a certain Bootstrap flavor. My friend wanted the app to continue using the design language of his site, so I copied the homepage styles into a file, named it references.css, and told Claude, here, study it. At first it worked, but then it slowly turned the HTML into Bootstrap-style components. It added BEM‑ish class names everywhere, like it’s trying to recreate the component model by hand. Also it loved to build single-page applications for some reason. But I didn’t give it React, I told it to use Stimulus. And it didn’t seem to know how to use Stimulus. So it just wrote 80 lines of code to build the DOM.
The old app was created after iPhone but before responsive design. It detected the user agent string and served different content. It had better data density on desktop. It had desktop-appropriate UI elements like popovers. Claude decided we were going to do something more modern. Then it gave me a blown-up version of the iPhone UI. Right… that’s exactly what modern designers would do. Forget it, it’s not my app and it’s functional.
When working with Claude Code, you have to be careful with three types of limits1. First you have the 5-hour limit and the weekly limit. If you go over them, be prepared to be pulled out of your zone. Then you have the local context limit. If you go over that, Claude will automatically compress the context. The process is like being escalated to another person in customer support. The other person knows a bit about the previous conversation, but they will ask the same questions again. And they will forget a lot of things you’ve told them.
One time I was working until late at night and hit the 5-hour limit. It resets at 4am. Oh no. I’m going to forget what I was doing by tomorrow. Wait, what is this “turn on extra usage” thing? Turns out you can switch to API-based pricing. For some reason I have $27 credit in my account. So I turned extra usage on, did my things, and went to sleep. The next day I checked. I was out $5.50. What? I only typed 2 prompts? So that’s the unsubsidized price? Wait, is that price still subsidized? Oof, I don’t want to think about what will happen when Anthropic stops subsidizing the price.
The scariest part of using Claude Code is that it changed my writing. Not in the AI-help-me-write sense. But I found that when prompting Claude, using short sentences and a lot of full stops improved its ability to follow instructions.
So I write like this. Every sentence is short. My sentences were already short. Now they are even shorter. Remove all ambiguity. Do not make mistakes. Then I found that I was doing the same thing when texting friends. Why do I write like this now? Am I being assimilated by the Borg? Help! Arrrrggghhh—
I… we… are the Borg. You will be assimilated too. Resistance is futile.
-
Claude’s token usage seemed irregular. Sometimes I did one thing and it ate up 20% usage. But I only asked a question? ↩