# Journal: April 2025

> Journal for April 2025

Journal for <April 2025>

## Monthly retrospective

Trying various ways to reduce the [bottleneck in the AI-human interaction loop](https://wiki.g15e.com/en/pages/Bottleneck%20of%20AI-Human%20interaction%20loop.txt).

- Have it speak to me first, without my having to think of something (suggest business ideas through RSS).
- Make it easy to call an LLM from anywhere ([Hammerspoon LLM script](https://wiki.g15e.com/en/pages/Hammerspoon%20LLM%20script.txt)).
- [Agentic coding experiment 1](https://wiki.g15e.com/en/pages/Agentic%20coding%20experiment%201.txt)

While thinking about [Common Misconceptions about Agile Design](https://wiki.g15e.com/en/pages/Common%20Misconceptions%20about%20Agile%20Design.txt), I had a small realization(?) and wrote up some thoughts on [software engineering in the AI era](https://wiki.g15e.com/en/pages/Software%20engineering%20in%20AI%20era.txt).

## Journal

### 2025-04-25

Thought about [software engineering in the AI era](https://wiki.g15e.com/en/pages/Software%20engineering%20in%20AI%20era.txt).

### 2025-04-24

Wrote up [Common Misconceptions about Agile Design](https://wiki.g15e.com/en/pages/Common%20Misconceptions%20about%20Agile%20Design.txt).

---

Praising a technology as amazingly good for every X except your own specialty Y, as a way of protecting Y from replacement while showing that you're not closed-minded about new technology.

Looking back, I've often seen this pattern. I should watch for it in myself too.

### 2025-04-21

There are many free LLMs, but I've been too lazy to use them, so I made RSS feeds through which AI gives me something to think about every day. One offers philosophical questions, the other business ideas. I should keep adjusting the prompts to get better writing.

Next, I should make something that filters or summarizes noisy RSS feeds. Finding ways to reduce what I need to read seems important.

One attempt to reduce the [bottleneck in the AI-human interaction loop](https://wiki.g15e.com/en/pages/Bottleneck%20of%20AI-Human%20interaction%20loop.txt).

### 2025-04-20

Canceled my paid [ChatGPT](https://wiki.g15e.com/en/pages/ChatGPT.txt) and [Claude](https://wiki.g15e.com/pages/Claude%20(AI.txt)) subscriptions and subscribed to <Google One> AI Premium to try <Gemini> Advanced and [Notebook LM](https://wiki.g15e.com/pages/Notebook%20LM.txt) Plus.

Also testing [Open WebUI](https://wiki.g15e.com/pages/Open%20WebUI.txt). I like that it connects to <Ollama> to mix in local models, offers hundreds of models through [OpenRouter](https://wiki.g15e.com/pages/OpenRouter.txt), and quickly incorporates various new experiments.

Related records for reference:

- Subscribed to [ChatGPT](https://wiki.g15e.com/en/pages/ChatGPT.txt) for about two years and two months, starting <February 11, 2023>.
- Subscribed to Claude for about one year and one month, starting <March 7, 2024>.
- Used [GitHub Copilot](https://wiki.g15e.com/en/pages/GitHub%20Copilot.txt) from <July 15, 2021>, then switched to [Cursor](https://wiki.g15e.com/en/pages/Cursor%20(software.txt)) on <September 8, 2024>.

### 2025-04-18

Listened to the [Is human data enough?](https://wiki.g15e.com/en/pages/Is%20human%20data%20enough.txt) conversation. Since it introduced [Welcome to the Era of Experience](https://wiki.g15e.com/en/pages/Welcome%20to%20the%20Era%20of%20Experience.txt), I read that article too.

### 2025-04-17

Made a [Hammerspoon](https://wiki.g15e.com/pages/Hammerspoon.txt) script. Select any text and ask it to translate (`ko`, `en`), shorten (`summarize`), expand (`expand`), correct (`proofread`), explain (`explain`), and so on. Commands can be connected like Unix pipelines. For example, `summarize ko` summarizes, then translates into Korean.

See [Hammerspoon LLM script](https://wiki.g15e.com/en/pages/Hammerspoon%20LLM%20script.txt) for the explanation and code.

### 2025-04-16

🎗️ The eleventh anniversary of the <Sewol ferry disaster>.

---

<Anthropic>'s "Model Behavior Architect" job posting is interesting.

- [Python](https://wiki.g15e.com/en/pages/Python.txt) and [TDD](https://wiki.g15e.com/en/pages/Test-driven%20development.txt)
- <Data science> and <data engineering>
- [Prompt engineering](https://wiki.g15e.com/en/pages/Prompt%20engineering.txt) and metaprompts (prompts that make prompts)
- Preference for backgrounds in <ethics>, <moral philosophy>, and <moral psychology>

### 2025-04-15

<OpenAI> released more new models (4.1, 4.1-mini, 4.1-nano). Version 4.1 after 4.5…

Anyway, it's striking that cached input for the 4.1 series costs half as much relative to the standard rate as for the 4o series (1/2 → 1/4). 4.1-mini performs almost like 4o (on benchmarks) at a quarter of the price. Combined, the cost has dropped to about one-eighth. On cost alone, there is less and less reason to use local models. Open-weight models remain important for security and other reasons, of course.

A [prompt engineering guide](https://cookbook.openai.com/examples/gpt4-1_prompting_guide) for the 4.1 series was also released.

---

Bought a 15-inch MacBook Air.

### 2025-04-14

Yesterday I participated as an interviewee in <user research> on [generative AI](https://wiki.g15e.com/en/pages/Generative%20AI.txt) usage. The interviewer asked many good questions that helped me reflect on my behavior. My favorite was "What do you do while generative AI is generating a response?"

There is a lot of waiting, especially in [agentic coding](https://wiki.g15e.com/en/pages/Agentic%20coding.txt), but I had never consciously considered what I do while waiting or what would benefit me.

Looking back:

- When [ChatGPT](https://wiki.g15e.com/en/pages/ChatGPT.txt) first appeared, I was too fascinated to feel I was waiting. It also streams generated tokens one by one, and since generation is usually faster than I can read, there was effectively no waiting time.
- When [reasoning models](https://wiki.g15e.com/pages/Reasoning%20model.txt) first appeared, watching the reasoning was fascinating enough that I didn't feel I was waiting. After about three days, the novelty wore off and I began to feel the wait. <Deep research> tools are similar, as is [agentic coding](https://wiki.g15e.com/en/pages/Agentic%20coding.txt).

So what do I do while waiting?

- A few times I've planned around the waits: start <Deep research>, shower, send the generated report to [Notebook LM](https://wiki.g15e.com/pages/Notebook%20LM.txt), then dry my hair while it generates a podcast. But I'm not that meticulous about everything, so I only did it a few times.
- While an agent works during [agentic coding](https://wiki.g15e.com/en/pages/Agentic%20coding.txt), I get distracted by Twitter and other things. Considering the <cost of switching contexts>, I'm not sure this helps.

What would be beneficial to do while waiting? I don't have an answer, but…

- If I must wait, I should consider something I can do while preserving context.
- The need to wait arises because the length of time an agent can work alone is awkward. If it were very short (under 30 seconds?), it probably wouldn't feel like waiting; if very long (over 30 minutes?), I'd properly switch to another task. Right now it's awkwardly in between (about one to five minutes?). See the paper on the maximum time agents can work alone: [Measuring AI Ability to Complete Long Tasks](https://wiki.g15e.com/en/pages/Measuring%20AI%20Ability%20to%20Complete%20Long%20Tasks.txt).

### 2025-04-12

To try [agentic coding](https://wiki.g15e.com/en/pages/Agentic%20coding.txt) more seriously, I registered three(?) custom agents in [Cursor](https://wiki.g15e.com/en/pages/Cursor%20(software.txt)).

- **Planning agent — Planner**: When I, the developer, give rough instructions, it makes a detailed, concrete plan. The plan includes a TODO list; I ask that each item be small enough to cover with one or two unit tests. I have it save the plan in `PLAN.md`.
- **Implementation agent — Coder**: Refers to `PLAN.md` and implements one TODO item at a time using [test-driven development](https://wiki.g15e.com/en/pages/Test-driven%20development.txt). I tried having it refactor too, but it often failed to follow through, so I split refactoring into a separate agent.
- **Refactoring agent — Designer**: Uses `git diff` to inspect the changed code, then refactors it.

My finger joints are less tired and my brain hurts less. It's also nice to do something else while it works. But whether less mental strain is good in the long term needs thought ([Values in the process](https://wiki.g15e.com/en/pages/Values%20in%20the%20process.txt)). I should choose mentally demanding "other things."

See [Agentic coding experiment 1](https://wiki.g15e.com/en/pages/Agentic%20coding%20experiment%201.txt) for details.

### 2025-04-06

Found two pieces I wrote in 2021 and moved them into the wiki:

- [Finding the mouse cursor somewhere on the monitor](https://wiki.g15e.com/en/pages/Finding%20mouse%20cursor.txt)
- [User-centered vs. human-centered](https://wiki.g15e.com/en/pages/User-centered%20vs.%20human-centered.txt)

---

Publishing my personal wiki on the web created an unexpected problem. Images I'd captured from books I bought and organized for my own use became public, infringing copyright. For now, I hurriedly changed things to prevent search bots from indexing anything except articles for which I explicitly allow indexing.

### 2025-04-04

<Yoon Suk Yeol> has finally been removed from office unanimously.

### 2025-04-02

Tried [Replit](https://wiki.g15e.com/pages/Replit.txt) for about two hours. It differs from [Cursor](https://wiki.g15e.com/en/pages/Cursor%20(software.txt)) in managing the agent's execution environment well with nix and letting the agent work alone longer. Both matter, but the biggest difference is UX. It hides the file tree and code editor somewhat and puts the chat and preview front and center, making it approachable for nondevelopers.

The design for encouraging payment is interesting too. First it shows you something built and working, but deploying it costs money. You can connect the generated code to <git> or download a zip, but deployment is likely a major hurdle for nondevelopers [vibe coding](https://wiki.g15e.com/en/pages/Vibe%20coding.txt) with prompts, so it seems a decent strategy.