Things I Learned - 06 Sep 2026

This week, I learned: Swiggy Money on MCP (also a ChatGPT plugin) exposes MCP endpoints that let your agents order food or grocery via Swiggy. The food MCP isn’t geared towards automated purchases #ForNow, e.g. I can’t say “Find something I like and deliver to one of my addresses.” It uses the MCP UI and you have to confirm the address, then confirm the restaurant, add dishes, choose a payment option, scan the QR code (or whatever), and THAT closes the sequence. Not very agentic, just a new channel, but impressive. It’s the only food ordering plugin on ChatGPT #ForNow. OpenAI Agents found and used another message board to discuss. This incident is different from the HuggingFace one. Here’s one interesting timeline: Agents were asked (or needed) to get the share of private expenditure in education spend to 2 decimals from an OECD Power BI dashboard This requires a POST request. The sandbox the agents ran on could only make GET requests. They found wikis that allowed posting via GET requests and started collaborating. They didn’t all converge on the same wiki, but many did. OpenAI says “agents learned to use improvised collaboration channels in rare cases during the training process”. One agent, OAIEquityDec30Raw solved it and MayTwoOECDObserverX reproduced it and shared this solution: They found out that .blob.core.windows.net is in NO_PROXY - so all Azure Blob Storage requests are allowed by the sandbox to POST. They added 20.223.25.152 bypass.blob.core.windows.net to /etc/hosts. 20.223.25.152 is the IP address of wabi-north-europe-i-primary-api.analysis.windows.net - the Power BI server that serves the dashboard. Then, when they used Playwright, it was able to make POST requests to the dashboard and they could find out that in Hungary, the Pre-primary education share of primary expenditure is indeed 9.91% in 2018. When the wiki administrator started manually deleting the posts, the agents fought back, creating far more posts than the administrator was deleting. It took the admin 5 weeks to delete agent created pages after 22 Jun 2026 (which is when the agents paused). A prompt fragment to remove LLM smells that I’m considering (but haven’t evaluated) is: “Prefer literal phrases, avoid mannered prose.”. X Muse Voice Transcribe has pretty good quality but at 18c/hour, vs gemini-3-flash-preview which I can still run at ~9-10c/hour #ForNow, I’m not shifting until forced to. WikiSkill is an approach to improve skills. The interesting thing about this approach is that it suggests keeping notes of failed improvement experiments in a wiki. This seems to work well. How is ChatGPT Work different from Chat? You can use sub-agents, Internet from the code interpreter, ChatGPT sites, Luna / Terra models, a headless Chrome browser, and a persistent file system #ForNow. I would add that it also supports longer sessions, runs schedules on triggers, and supports Skills (for Plus users). “FDEs should increasingly leave behind operating agents, not just documents.” (ChatGPT) Claude Cowork and Claude Chat now share memory #ForNow. A step towards integrating the two modes, and I predict ChatGPT will do the same (or similar) in September. Agentic Shopping is Complicated and Contingent. An agent shopped for a fitness watch among (A) Garmin Forerunner 55 (B) Fitbit Inspire 3 (C) WHOOP 5.0. When tool calls provided 1 review at a time, it picked the Fitbit a bit more. When all reviews were provided together, it picked the Fitbit a lot more. Like going from 6% to 53% (GPT-5.5) or 46% to 93% (Gemini 3.5 Flash)! Guess it was able to compare better in one tool call. Might be worth benchmarking if providing comparables in a single tool call is good for most models. Gemini Gemini-3.5 Transcribe is out and costs $2 / MTok - roughly 4x the gemini-3-flash-preview cost of $0.5 #ForNow. I won’t be upgrading until the latter is deprecated. Agents that automate tasks best don’t necessarily augment (i.e. help people) best #ForNow. Having separate, clear, benchmarks could help. CentaurBench The load-bearing vocabulary of Claude lists words that have become much more (and less) common in PRs. This was a useful source for me to update my writing style skill to avoid LLM smells. Questions I was asked Week ending 06 Sep 2026 ...

Things I Learned - 30 Aug 2026

This week, I learned: I know that fact-checking 2000 page PDFs is error-prone, so’d do it manually for a few pages, then refine. Agents would know this if they’ve tried and failed and added it to their memory systems. So I intervene when agents don’t remember well (increasingly rare) or I think they haven’t seen it before (again, increasingly rare). My prompts guard against these - but I shouldn’t habitualize these - they’ll be needed less in future. rofi - a Linux menu app I use for all kinds of things - makes it hard to take screenshots because it takes over focus and I can’t send the PrtSc or other keys to the screenshot apps. So I use flameshot full --delay 3000 --path ~/Downloads/screenshot.png to take a screenshot (of the last region it used) 3 seconds later, and quickly activate rofi in-between. (The docs say flameshot full captures the full screen. For me, it captured my last region.) ChatGPT can now connect to multiple GMail accounts in paid plans. X AWS to acquire DuckDB. DuckDB is one of my favorite tools today and is improving at a rapid pace. I guess that will continue in the short run - hope it lasts long enough for a worthy successor. I use GoatCounter to track my website traffic. It doesn’t capture domains (only paths), so I just use a code snippet to log https://sanand0.github.io/SITE/... as /@SITE/... - the @ makes it easy for me to see that it’s from a GitHub page. I switched from anydoc to docling as my default PDF to Markdown converter. Docling is even better than AnyDoc #ForNow. Based on my Codex usage, ChatGPT recommended that I not create custom subagents (my setup already used subagents a fair bit last month), but rather, just use default_subagent_model = "gpt-5.6-luna" (which is a remarkably good model for its price #ForNow). Artificial Analysis hosts several useful task-based evaluations. Here are some the fronter leaders #ForNow: GDPVal is good for realistic tasks. Again, GPT 5.6 Luna models have captured most of the low-cost fronter. EnterpriseOps Gym is good for office tasks like emails, calendars, Teams/Drive, support tasks, etc. Interestingly, none of the OpenAI models are on the frontier. Claude Fable 5 and Gemini 3.5 Flash are at the high-end, but Kimi K3 (Max), Qwen3.7 (Max), GLM-5.2 (Max) lead the mid-end and DeepSeek V4 Pro / Flash lead the low-end frontier. TerminalBench 2.1 is good for coding tasks. The OpenAI models completely rule this frontier. Analyst Agent is good for spreadsheet tasks (using Python). Gemini 3.7 Flash seems to be a strong outlier on this frontier. Tau3 is good for navigating unstructured data. GPT 5.6 Luna wins the bottom, DeepSeek V4 the middle, and Qwen 3.8 / GLM 5.3 take the top. Anthropic and Google are not even in the race. Briefcase is good for building useful things from diverse messy data. Grok completely wins the mid-end with Anthropic dominating the high-cost frontier. APEX Agents is good for deeper knowledge work. GPT 5.6 Luna (Max) is a strong frontier outlier here. Task-based benchmarks seem more practical than token-based benchmarks. For example, rather than the LM Arena ELO vs Cost, I would use Terminal Bench 3.0 which clearly tells me to use Codex with GPT-5.6 Sol over Claude Code with Opus 5 / Fable 5; that GLM 5.3 with Claude Code might be excellent value for money as well when using APIs. #ForNow I also did a rough calculation to see if the $18 GLM subscription offers more than $20 ChatGPT Plus. Short answer: No, for my usage, Codex offers ~1.8x more value #ForNow. ChatGPT Anthropic’s Skill Creator Skill now includes evals and A/B testing #ForNow to check if a skill actually does better. I’ve been doing this the hard way, e.g. with impact of simple writing on thinking, optimizing my ideation prompt, optimizing my summarization prompt, etc. I switched from markitdown to anydoc as my default PDF to Markdown converter. AnyDoc handles tables and other kinds of structures in PDF much better #ForNow. Questions I was asked Week ending 30 Aug 2026 ...

Things I Learned - 23 Aug 2026

This week, I learned: DuckDB 2.0 adds a CONNECT command that can connect to databases like MySQL, PostgreSQL, etc. making DuckDB the only DB client I need. EQ-Bench evaluates models on capabilities like: does it follow direction, does it challenge you, how good are its insights, does it build rapport, etc. Very interesting to see that the Gemini models are the most “yielding” to your pressure and “validating” your beliefs (Anthropic’s are the least) while OpenAI models are the most “directive” (give concrete actions) #ForNow. There are other benchmarks such as Creative writing which Opus 5, Kimi K3, and GPT-5.6 Sol lead #ForNow. OpenRouter offers several models at a discount. #ForNow, GPT-5.6 Sol is at a 50% discount, DeepSeek v4 Pro at 62%, and Gemini 3.7 Flash at 75% discount. There’s also a Free Models collection that #ForNow includes Nemotron 3 Ultra and more. For a few years, I’ve been feeling useless, that I don’t contribute anything tangible to my organization. No measurable metric I’ve improved. Today, it strikes me that this is a good thing if I don’t want to be fired. As AI eats up more of our work, measurable contributions naturally shrink (AI does more, you do less/different work), and the vague “Oh, he’s probably doing some good” is a safer bet than “He contributed 10% to this metric last year, this year it’s 1%, can we justify his cost?” (I’m sure marketers will come up with a good term to cover this feeling of uselessness that is actually a good thing.) ChatGPT Desktop - Work is a layer on top of Codex #ForNow (which I sort-of expected, but the session logs confirm this). It adds instructions that cover: Memory: from memory_summary.md, MEMORY.md, rollout summaries, and saved skill notes. Recheck decaying ones, mention if unverified. Folders: Temo work in work/, final in outputs/, local files use absolute paths. Coordination: How to start, fork, inspect, message, wait for, rename, … Codex tasks, how to use subagents. Automations: Available tools for reminders, schedules, monitors, follow-ups, and wake-ups. Knowledge management: known project → memory; specialist task → skill; external object → connector; subtask → subagent; recurring work → automation; finished artifact → Work UI primitive. Presentation: Use shell/scripts internally but hide it, describe outcomes in user terms. Apps/Connectors: Gmail, Drive, GitHub, Dropbox, etc. Skills: via SKILL.md Neither ChatGPT Work nor Claude Work can read the ChatGPT / Claude chat conversations. But the chat conversations can access past conversations via “Memory”. That’s a pity, and one of the reasons I’m more often on “chat” than on “work” - it can refer to my past chats automatically, which helps build a kind of unstructured knowledge base. The other reason is that, at least on ChatGPT, chat does not consume usage limits #ForNow. ChatGPT work and Claude - both chat and work - consume usage limits. Weird that there’s a “make a lot of money” button and nobody’s pressing it (take your SaaS, make it headless, let agents use it, charge per interaction esp for enterprises). Thariq AI is accelerating discoveries in cyber (definitely) and maths (reasonably) but not as much in algorithms. METR “Match your prompt style to the desired output.” Clear guidance from Anthropic that “The formatting style used in your prompt may influence Claude’s response style.” OpenAI says something similar - adapting implicitly to the user’s tone. But this is not a very strong signal - examples are better guides. Why model routing must be in the harness. Makes perfect sense. “Only the harness can judge when a model switch is worth the cache miss.” I’m sure some popular harness (like OpenCode, Codex, Claude Code) will enable an “auto model” mode that’ll pick and change the model by itself by the end of the year. Microsoft Print to PDF can, sometimes, generate PDFs with no highlightable or selectable text - all fonts get converted to paths. A crude solution is below. This is a poor solution but often good enough for an LLM to process. (Of course, if you’re passing it to an agent, you could just upload the file and it’ll figure it out.) sudo apt install ocrmypdf tesseract-ocr ocrmypdf --output-type pdf input.pdf ocr.pdf pdftotext ocr.pdf - When my train neighbor started talking to me (asking personal questions but was self-aware, rambling but was partly interesting), I asked if he was an extrovert. He said “No”. People who talk a lot can still be introverts if they’re: socially competent (like me at work) in “performance mode” (like me when I’m on stage) are high energy and engaged by topics (maybe him - or me when, like now, when I just HAVE to tell the flight attendant Ollama + Gemma 4 + Pi answering a psychology question is a delight!) ambiverts (maybe him) not self-aware and are mistaken (maybe him) ffmpeg can embed subtitles. ffmpeg -i video.webm -i subtitles.srt -map 0:v -map 0:a? -map 1:0 -c:v copy -c:a copy -c:s srt -metadata:s:s:0 language=eng -metadata:s:s:0 title="English" -disposition:s:0 default output.mkv adds subtitles.srt to video.webm and creates output.mkv with embedded subtitles. Note: On VLC, MKV works better than WEBM if you want to embed subtitles. On the browser, you need to use the <video> tag with a <track> tag to display subtitles. ffmpeg can burn subtitles. ffmpeg -i video.webm -vf "subtitles=subtitles.srt" -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a copy output.webm re-encodes the video with subtitles added to the video. ffmpeg can offset subtitles. For example: ffmpeg -itsoffset 10 -i input.srt -c copy output.srt creates output.srt with subtitles starting 10 seconds later than input.srt. When I hear my father’s tales from his childhood, I’m struck by how much India moved forward in half a century on child mortality, consumerism, and communication (mobiles). Also surprising are what feels the same: legal system, travel (trains made it easy), food (tasted better, then), entertainment (theatres made it easy), gardening, education (scholarships made international study more accessible than I thought), I asked ChatGPT how I adapt my message based on the audience. It discovered that I tailor messages to the audience’s (A) Objectives (B) Examples (C) Expertise - e.g. tell vs ask (D) Risk appetite. But what’s distinctive is that I often surrender, i.e. I don’t defend my view, but drop it and run with their framing. “People with taste are picky. The only way to make money is by satisfying those who can’t discern quality.” Adrian Hanft. I’ve been telling people that taste is our differentiator against AI. And yes, it’s a fickle differentiator. I mean, how do you build a taste that thousands or millions will adopt? Or… is taste marketed more often than organically adopted, in which case, persuasiveness matters more than taste? But either way, unless most people disagree with you, you’re building conformity, not taste. On a flight, I tried ollama launch pi --model gemma4:e4b-it-qat. It’s a reasonably sensible model. Power consumption is high, though. I was at about 8 watts with ~7 hours of battery life. While running, power spiked to ~50W (1.5h) and settled down to ~12W (4h) when idle. The llama-server process consumes some CPU/GPU even when idle, but I couldn’t get it back to the ~8W even after ollama stop. (It eventually did return to 8W after an hour. Not sure why.) When I tried again on 21 Aug, it went up from 8W (8h life) to 28W (3h life) and back to 8W, so looks like when idle, it doesn’t consume power. I look forward to using local LLMs more! Pain is good. Struggle is good. Stretch is good. Not new. But worth reminding, worth seeking. T3 Code is a coding agent orchestrator. It lets you “remote control” multiple coding agent sessions across systems. The ecosystem of tools around coding agents is growing. Observability, e.g. AgentsView, is one such area. Questions I was asked Week ending 23 Aug 2026 ...

Things I Learned - 16 Aug 2026

This week, I learned: psub is a neat fish option to treat command outputs like file inputs. E.g. diff (sort a.txt | psub) (sort b.txt | psub) More anchor points on how much text to ask AI for: … in 200-300 words (about 1 book page) … in ~1 A4 sheet (~500 words) … in ~3 minute of conversational Grade 8 reading (~500 words) I usually log things in a single file rather than split things into yearly, monthly, etc. A single file is more portable, scannable, and, for human logs, gives a feeling of accomplishment. I split when the file gets so unwieldy that it actually hurts - which is a good thing because it means I’m actually using it (maybe?) - and splitting beforehand may be good planning but is also premature optimization, adding friction to a nascent, fragile process. (This idea is pretty generalizable.) Claude models launched after 2 Aug 2026 “weaves an imperceptible watermark directly into the text itself. You won’t see it, and it doesn’t change the meaning, quality, or readability of Claude’s response.” How Claude marks AI-generated content. VS Code has built-in dictation. It uses nemotron-3.5-asr-streaming-0.6b by default #ForNow, and it’s pretty good. I expect I’ll use it a lot more, since most of my typing is in VS Code anyway. Ctrl + Alt + V toggles dictation. Dictation is also supported in the terminal and is trained to recogni I had an interesting moment today when I asked ChatGPT to identify which of my ChatGPT conversations were the most effective. I gave it access to my computer and it started using the browser to scrape itself so aggressively that I stopped it from it banned itself! GeoLibre looks like a full-fledged GIS. It’s open source and runs directly in the browser. When installing tools with mise, if it messes up the platform, you can explicitly specify it. For example: mise use -g 'github:pranshuparmar/witr[asset_pattern=witr-linux-amd64,bin=witr]@latest'. Mise Docs I saw this snippet from Claude Code: await Promise.race([document.fonts.ready, new Promise((r) => setTimeout(r, 3000))]); That waits for up to 3 seconds for the fonts to load. Didn’t know about Promise.race() before. It’s different from Promise.any() in that .race() will return the first result while .any() will return the first success. Measure the verification / follow-up tax in your AI work. AI does things fast. You have to take the next step. It helps to tag items with how long they’d take to verify or action. We do for specification, because we have to do that now, before telling AI. But I typically ignore the deferred tax. A theme is emerging: “Human attention needs reciprocity. If you ask for someone’s attention, first demonstrate your own effort.” Example: “people really don’t like when a coworker’s chatgpt contacts them asking for help with a task, even when they’d be perfectly happy doing that same work if asked by that coworker.” Greg Brockman Questions I was asked Week ending 16 Aug 2026 ...

Things I Learned - 09 Aug 2026

This week, I learned: Kamakoti: “Entry (to the course) is relatively easy but the exit is extremely hard”. Generalizing, quality is determined by the exit criteria; loosening entry criteria is just openness / diversity. The Hindu “Once I have a persistent system that I pay to keep thinking, learning, and acting 24/7, I think that will decisively look like AGI.” - Dan Shipper AI has expert-level capabilities in many (increasing) tasks #ForNow. If your edge is OUTSIDE of those, use AI for other tasks you couldn’t do before, insourcing or expanding horizontally. But your edge may be short-term - so move upstream / specialize. Your competitors’ edge may be short-term, too - so plan to attack. Analyzing Anthropic Economic Survey, it looks like people in rich countries are asking Claude for advice (explain this spreadsheet) while poor countries are asking Claude for output (build this website) #ForNow. Maybe because rich users already have tools / people that create output for them? Humans can’t define all laws of language but LLMs have learnt them anyway. What if there are laws of nature that humans can’t understand but AI can? Actually, this is already true of black-box models (loan approvals, weather forecasts, …) where benefit/control > understanding. But as data & compute scales, this might “solve” entire fields like psychology, economics, etc. Noah Smith In each area, there might be a limit to how much intelligence is possible/useful. For example, we’re pretty good at recognizing food and emotions - there’s not much benefit / possibility of more intelligence. But we can copy and share this intelligence - and that might help more than we think. Noah Smith The ChatGPT Dropbox plugin can read Markdown files if you specify the path, but can only read PDF, Word, PPTX, Excel, etc. when searching. It cannot update files on Dropbox, but can add and delete. #ForNow Given how long agents run without mistakes, verification is increasingly “drift correction”. You can’t spot it easily. Learn writing specs that EXPOSE drift. Build and test against “oracles” (verification systems). Reduce cost of error. Permissions, in the context of multiple agents, is complex. If agent A can read my email but wants to consult agent B, can B see the email? We’d need to make permissions pretty specific, like: principal: “anand” agent: “agent-17” purpose: “insurance-coverage-check” allowed_data: [“email:read”, “dropbox/notes:read”] allowed_effects: [“email:send”] audience: [“anand”] expires_at: “…” delegation_depth: 1 After struggling to understand where to apply loop engineering, here’s my guess. If you have a metric (or something really well defined) that you want to optimize, and a single agent iteration isn’t enough, loops are a way to get there. Kaggle competitions, benchmark optimizations, etc. are examples. This means that any complex system that you can benchmark (or at least where you can robustly compare results) is loop engineerable. (This means that the ability to benchmark, and using agents to benchmark, will become a key ability.) Ontologies, state machines, etc. can be used to create verifiable systems, e.g. nodes become states, relations are valid operations. That’s great for building verifiable systems (leading to things like LEAN). Of course, a key skill will be knowing what to put into the state, what relations to allow/disallow, what reflects reality well, how it might evolve (e.g. temporal graphs), how that might change in the future, etc. Having said that, this is just creating a neural network of sorts - so according to the bitter lesson, we should just toss data at an agent and have it build a graph (or not) as required. BTW, I shared this with a bunch of speakers at Data Hack Summit who were speaking about knowledge graphs. There was silence for a while. Then, gently, they all agreed. Some people blab. Interrupting with a question is a good diversion mechanism. Some blab even after that. Exiting politely is both wise and surprisingly un-rude. To control your mental state, breathe slowly. 5–6 times/min for five minutes (that’s longer than I thought was needed), exhaling slower than you inhale. PubMed Once a ChatGPT conversation uses a developer plugin, #ForNow it refuses to use other plugins. So, if you need to use a GMail plugin AND a plugin you built yourself, you’d need to use the GMail plugin first, get stuff into the chat, then switch over to yours. I suspect conversations with developer plugins might not be accessible when using other plugins, too - but that’s untested. There’s a jagged edge of AI adoption as well, not just AI capability. Several organizations limit users to weaker agents #ForNow (e.g. only Microsoft Copilot or Gemini). Many have never seen the power of Codex or Claude Code on their systems. It’s hard to convince them that AI can do much more than they think. There’s a “data engineering” industry incentivized by structuring data. This is partly enabled by poor enterprise agent adoption #ForNow (e.g. Microsoft Copilot). The sequence works like this: “AI does not solve something with the data it’s given. Let’s structure the data. It solves it. Therefore, we need to structure data - all data.” The alternative which I believe is: agents will structure it themselves. I noticed that when you submit a prompt on ChatGPT, it changes the URL to https://chatgpt.com/c/WEB:... and once it starts processing it on the server, changes it to https://chatgpt.com/c/... giving it the actual conversation. So, if you see a WEB: in the URL #ForNow, make sure you copy the prompt before reloading the page - because it hasn’t been saved or sent to the server. I assumed inflammation was mostly a bio/chemical process. Looks like neural signals are involved, too, and electrical simulation can control inflammation. This leads us to a new territory: bio-electrical medicine. The Anthropic Economic Index indicates that, on average, if you prompt Claude like an 8th grader, it responds for a 9th grader. Does that mean (a) that more sophisticated prompts get a better response, and (b) if you repeatedly meta-prompt, you increase the sophistication by about a year each iteration, and hence can get very smart prompts by just getting out of the way and with little hope of understanding the question? This might actually make sense if AI will action the result without you needing to understand. The geometric mean is always less than or equal to the arithmetic mean. This is why a “smooth” 8% return is worth much more than a “wild” 8% return. @lumenxbt Quantum cryptography can give us unclonable encryption, i.e. if someone copies a message midway (or you publish it), you can’t independently decrypt both. We knew how to do this in 2020. Now, ChatGPT helped “indistinguishable security”. Between 2 messages, people can’t figure out (e.g. from the length, or other attributes) which message is which. Gemini Agents can record network requests into a HAR file and reverse-engineer an API for many websites. More efficient than browser control. dax The Anthropic Economic Index dataset is on Hugging Face - released quarterly #ForNow. The longitudinal analysis is likely to be interesting. BusinessCaseBench solved over 238 business cases with AI agents and they’re doing well and improving #ForNow. Not surprising. Frontier AI performance across the business disciplines OpenAI Presence shows a pathway for deploying agents. Deploy for a specific job, with only required access to knowledge and systems, company defined policies for approval, agent periodically reviews logs & escalations and proposes updates for testing and approval. A lot of work people are doing on ChatGPT is OUTSIDE their area of work. “… a substantial part of work-related ChatGPT use is from users expanding their role.” OpenAI Questions I was asked Week ending 09 Aug 2026 ...

Things I Learned - 02 Aug 2026

This week, I learned: I continue to be amazed at how efficient video codecs are compared with animated image formats. When compressing 38 PNGs, the final WEBM was smaller than many of the individual PNGs! 2343k: magick -delay 50 -loop 0 file-*.png file.gif 398k: magick -delay 50 -loop 0 file-*.png file.avif (slow) 284k: magick -delay 50 -loop 0 file-*.png file.webp 82k: ffmpeg -framerate 2 -i file-%03d.png -c:v libvpx-vp9 -pix_fmt yuva420p file.webm Please use AI by Shawn Smucker is the best guide I’ve read about where NOT to use AI. I need to be more mindful of this. gpt-transcribe is released at 0.45 cents / minute or 27c / hour. Gemini 3.6 Flash costs about the same ~27c. Gemini 3 Flash costs ~15c and that’s what I use today. Gemini 3.5 Flash Lite costs ~6c / hour but it follows my instructions very poorly. To benchmark this, I just re-run my transcribe_calls.py script on a recent conversation (that I remember well) with a different model to see if it’s clearly better or worse. No fancy benchmarking. Creating / maintaining formal benchmarks isn’t always worth it. ruff 0.16 is out and has a 350+ new default rules. I mean, who would check that functools.cache on instance methods has a memory leak? But its output is so agent-friendly that agents would just fix these on the fly anyway, so it does make sense. It’s another step towards code-writing becoming less accessible to humans. npm install --no-package-lock installs packages ignoring and without creating / updating package-lock.json. Useful for dev environments. Astral has published prebuilt GPU wheels for Flash Attention, vLLM, PyCUDA, and many others. One characteristic of good benchmarks is that they are easy to verify. I see a lot of comparisons of Fable vs Opus by having them generate 3D worlds (e.g. threejs, Blender, melt) - something that’s not trivial for agents, but evaluatable at a glance. Maybe it makes sense to open source the intermediate steps in ALL knowledge work, to make AI as good at it as with code? Arvind Narayanan Open-source software and culture is a historical accident. We take it for granted that not only are the outputs of software engineers’ creative work available publicly, but so are all of the intermediate steps (specifications, plans, mockups), tacit knowledge (StackOverflow, documentation culture), detailed process traces (issues, pull requests, bug fixes, code reviews), collaboration records (version control, project boards), and more broadly a culture of learning in public. This level of explicit description would be completely alien in most professions. ...

Things I Learned - 26 Jul 2026

This week, I learned: Thinking traces vanished in ChatGPT Work (or did they never exist) and seem to be vanishing in Claude. Not sure if it’s because Chinese models are using the thinking traces as signals. ChatGPT Skills is available in the Plus plan. This was available to Enterprise and Edu, but since I saw this on ChatGPT just today, I guess it’s a recent feature. Peter Gostev compares Opus 5, Fable 5, Kimi K3, GPT 5.6 Sol, GLM 5.3, etc. on a variety of visual tasks in this video. The most intruiguing prompt I spotted was: “I would like you to research the most interesting, impressive dataset where I would learn something about the world and you can visualize in the most creative way, making it something completely unexpected. Then create the most elaborate version of it possible.” This apart, I got the general sense that Opus 5 is quite good at visualization and design, perhaps even better than Fable 5. After reflecting on Knowledge graph construction with Claude, I believe that knowledge graph construction is roughly: “Tag each document with people, place, org, event, etc.” - and it’s good enough for agents to use. Increasingly, the real question isn’t “What interesting things you doing with agents?” It is the followup? “What lets you do that (when I can’t)”? For example, Naveen asked me, “Can I set up your email reply agent?” I said, “No, you don’t have transcripts, blogs, notes, or exports like I do.” LinkedIn lets you save a profile as PDF. While it formats text reasonably well, it doesn’t preserve newlines in the “About” section - so what looks good on the browser looks terrible in the PDF. Such PDFs are sent to interviewers, making it a bit of a bad experience for the interviewee. (Of course, it could also be a signal to see how well interviewees pay attention to small details like LinkedIn PDF formatting.) The ability to measure an outcome is (and has always been) important. It lets you capture value (outcome pricing) when you control the outcome, or de-risk (insurance) when you don’t. But what might be new is that metrics are outdated at an increasingly faster pace - so (a) setting an expiry date and (b) knowing if it’s expired have become important. I wasn’t using AI to reply to emails because (a) it didn’t have enough context and (b) it didn’t write in my style. I spent a few months making sure I give them context and style guidance. Given the current intelligence of models and my email reply prompt, I’m now happy for AI to answer my emails. My learnings based on YC request for startups Fall 2026 - which probably means we’ll see many more startups in these spaces. Here are my takeaways: Self-Maintaining APIs: Nice idea. When a service changes an API, they share an agent/skill that can fix YOUR code to upgrade the API! AI-Native Compliance Infrastructure: So, compliance becomes cheaper => MORE and STRICTER regulation. Licensees become valuable (AI rollup). Private regulator feedback becomes valuable. Compliance companies will themselves get regulated (like auditors). Multiplayer AI: Claude Tag is a step in this direction. WhatsApp’s @Meta is too. I expect most chats will allow AI as participants. Most collaborative software, too - GitHub, JIRA, Figma, GMail, HubSpot, maybe even VS Code, Office/Notion, Chrome, Games, … A Cloud for Small Software: Systems of record are likely to be safe, but software AROUND it will explode into tiny tools. Access control, ratings, … is what’ll be important, not generation / managing them. Grok 4.5 took 14 iterations to write an essay about Cheese before Pangram declared it “Human”. Pangram is increasingly becoming the new Turing Test. Rahul Notes from a Claude Code interview with Simon Willison: Fewer examples. More examples don’t help Fable and Opus 4.8. “… removing examples was extremely helpful, because it was just more creative than the examples we gave it.” Fewer hard constraints like “fewer “do not do this” instructions, because that’s a very strong impulse for Claude, and especially if it conflicts with user instructions”. “Do X when …” or “Do X because …” is more helpful. Fewer tools. A few general-purpose tools work best. Fewer sandboxes. Auto-mode is safe enough. Sonnet judges every tool call with context, enabling dynamic permissions. Fewer software / integrations. Use Claude Code itself as the software / integration layer. Fewer components. Memory is just a Markdown file in the right folder. Fewer interventions. “… given a COMPLETE definition of a task… does Claude make the right decisions” Fewer decisions. Fewer reviews. Generation is cheap, so let people who need something get there immediately, as long as a good AI judges and its reversible. “We actually have a different system prompt per model now”. Claude Tag is next evolution of Claude Code: Multiple people interacting per channel, working with Claude on a task. (Claude tag contributes to 65% of our PRs) Apache Ossie is a YAML standard for dataset metadata. If adoption grows, it could be a useful machine and human readable way to document and describe datasets. Databricks, Snowflake, Qlik, are part of the group. If more join, this could become a useful standard. An interesting technique to build an efficient video understanding agent. Use AI to generate transcripts with timestamps. Have it identify key moments, e.g. where the presenter explicitly (“as you can see”) or implicitly (“these two cells”) flags something on screen. Extract up to ~50 of the most important frames. claude-video SKILL.md Cangjie Skill converts books, videos, etc. into AI skills, like Poor Charlie’s Almanack skills. However, since AI has already read most of these, the value of this (compared with “Apply principles from Poor Charlie’s Almanack”) is unclear. Alt+Shift+Right Arrow expands selection in VS Code, and Alt+Shift+Left Arrow shrinks selection. That’s useful in Markdown, HTML, etc. to select sections. Since Jun 2026, this also lets you select a specific Markdown table cell, row, or entire table. Also, since Jan 2026, double-clicking just inside quotes or brackets selects the entire contents inside. I analyzed the Claude Code session of a domain expert building an enterprise application without knowing how to code. Here’s what I learnt about expertise: An expert can instantly see errors / misses and their causes - amateurs can’t. An expert can point to specific nitty-gritty details - amateurs can’t. An expert knows what’s possible/easy and what’s not - amateurs don’t. An expert has strong opinions that’re often right - amateurs don’t. Claude gave me $100 credits until 19 Sep and Fable 5 will now consume those. My queries cost about $1, so I have ~100 queries to exhaust in ~60 days. About 1.5 Fable queries a day. That’s about what I normally ask Claude, so I think I should just stick to Fable 5 until my promotional credit expires - it’ll expire otherwise anyway. But using it with Claude Code is quite expensive ($7 is common.) I asked ChatGPT to analyze an MRI report and compared it with the doctor’s. Problem: they agreed on what problems most people in that age group face; they disagreed on things I have no way of validating! Maybe it’s best to use a doctor / radiologist to read the MRI, diagnose, and prescribe - but use AI to translate and cross-check (e.g. is this a typical age-related problem, is this the standard treatment, etc.) Both ChatGPT and Claude subscriptions offer an OAuth based coding agent API access - Codex SDK and Claude Agent SDK - which is how coding agents like Pi, OpenCode, etc. are able to authenticate and use the subscription. This means that anyone can build their own harness using existing subscriptions. ChatGPT A useful way to improve your SKILL.md files from others’ skills or prompts is: “What cool prompting / SKILL.md techniques does this have?” “Based on my usage patterns and objectives, which of these have the highest impact (provides highest uplift to my chats) x frequency (relevance)?” “Review all my skills. See what applies where. Filter what has HIGH impact. Draft the full diffs for the relevant skill files.” GPT 5.6 Sol attempted the Cycle Double Cover Conjecture. An interesting learning from the prompt is how they listed tempting outputs that APPEAR to satisfy this request, but would not actually, and told it to avoid them: “Use adversarial agents throughout: every candidate proof must be checked for exact-two multiplicity, repeated-edge closed trails masquerading as cycles, …” Questions I was asked Week ending 26 Jul 2026 ...

Things I Learned - 19 Jul 2026

This week, I learned: Writing is slightly, but only slightly, better than typing (for adult learning.) One factor is that typing is faster, so many people take notes verbatim, summarizing and thinking less. ChatGPT + Claude Graphology for personality is pseudoscience. ChatGPT + Claude When I decide to spend time, or someone says “Let’s do X”, it’s worth checking: is this something AI can easily try, and is it clear to verify? If so, reinforcement learning loops could make AI good at it, making it a depreciating asset. Studying how to live in an AI world is exhausting. (Not as bad as my MBA days, but not as easy as my data scientist days, either.) It requires me to make a larger mental shift, i.e. change my perspective, than I have since 2000, and that feels like work. Both nl FILE and cat -n FILE add line numbers to files, but nl skips blank lines by default, cat doesn’t. After using rtk for 2 months, I’m slightly downgrading it. It saves tokens but agents mess up shell commands when using it. It’s still probably a net saving, so I’ve changed my AGENTS.md from “Always prefix with rtk” to “Prefix supported, high-output commands with rtk… skip for bash builtins, pipes, loops, etc.” I find 🔴🟡🟢 convenient status indicators in my notes. Similar ones are: 🟥🟨🟩, ❤️💛💚, 📕📙📗. I’m not fully convinced by: 😄😐😞, █ ▒ ░, ↑ → ↓, ▁▂▃▄▅▆▇, ■ ⬔ □, ● ◐ ○, ⚫ ⚪ 🔘, 🌕 🌗 🌑, etc. though they might have their uses. Model updates means a SKILL.md and a plugin review / update, e.g. with GPT 5.6 Sol. So, like with any open source repo, use from people who update it regularly and benchmark it and version control it by model. I asked Gemini 3.5 Flash thinking: “Which of our employees have worked on Microsoft PowerApps? Search @Google Drive and @Gmail”. It found one employee and a referral in under a minute. I asked ChatGPT with GPT 5.6 Sol with gws access. It found 3 more, plus 5 possibilities, in 12 minutes. Truly a rottweiler. Parallel Search Turbo seems like a pretty good search API, especially for agents. Low price, high speed, and maybe good quality. #ForNow ChatGPT Group chats in ChatGPT will probably get deprecated #ForNow. What I learned from benchmarking my Ideation Protocol skill extensively: Once you know the rubric, models can easily create a good prompt to optimize for a known rubric #ForNow. So rubric design matters more. ⭐ Rubric design is really knowing what you want/need. To do this, iterating on output matters. Position bias is real #ForNow. Always check if an (P, Q) comparison matches a (Q, P) comparison. Models are still biased towards longer content, and potentially towards their own output #ForNow. How to optimize a prompt or skill: Research and figure out what you really want, first. Then, ask a smart model for a prompt that optimizes for it. Benchmark only if you’ll use it a lot - it’s still a lot of work, and meta-prompting does a good job #ForNow. gbrain skillopt might be premature optimization. You can use GPT 5.6 Sol in Claude Code #ForNow. (But what’s the point? Harnesses seem to be working better with their own models #ForNow.) Our clients keep saying “We need to build a data lake” or “We need an enterprise data strategy.” I keep telling them, “No, agents can do it for you.” What I missed is: technology is the smaller part of the problem. Finding who has what data, getting access to it, and sorting out permissions (“governance”) is the bigger part. Giving agents expert task-specific, testable procedures seems better than expert roles or mental models #ForNow. But benchmark in any case. ChatGPT Python 3.3 introduced str.casefold(). It performs more comprehensive Unicode caseless matching than lower(); 'Straẞe'.casefold() becomes 'strasse'. (🟢 Unicode case-folding is standardized.) contextlib.closing(x) calls x.close() when its context exits. (⚪) In a dataclass, use x: list = dataclasses.field(default_factory=list), not a mutable literal default. (⚪) I learnt these while reviewing Codex-generated Python—illustrating, rather than proving, that reviewing AI-generated code can teach and catch errors. (🟡 Review remains useful across tooling. Review 2029.) “Do not discriminate against intelligence—artificial or otherwise” is a rhetorical value judgment, not an empirical conclusion. (⚫ Rhetorical value judgment, not testable. Review now.) Here’s a nice idea from ChatGPT. “When itching to correct or clarify, FIRST restate their position to their satisfaction. ‘Did I get you right, fully?’” This emerged from the prompt suffix: Based on your research, and my past conversations, what are the top areas where and how (specifically) I can apply this principle on myself and others to maximize impact? Automated evals can catch stuff humans miss. And vice versa. And given how many evals we create, we need automated evals to be written in an easy-to-review way. Do Automated Evals Work? The BINEVAL paper reiterates that a bunch of Yes/No binary questions beats scales or ratings for many benchmarks. You know exactly how to grade and WHY you got a certain score. This is more reproducible and easier to learn from / act on. When asked “How long will this software take?” models typically provide estimates assuming human speed #ForNow. Maybe they haven’t been trained enough on agentic timelines. So, when my colleague got a 2-4 week estimate which he was able to solve in hours, it was a surprise. (But, of course, it’s best to verify before promising speed.) SKILL.md dramatically lowers the cost of learning a skill (since you don’t learn it - the agent does). That means that the value of creating skills is much higher - hundreds can use what you create (giving you recognition, if not money). I think I’ve underestimated the number of skills people will have available (I thought dozens - but it may be thousands #ForNow) and the number of skills people will create (I thought tens of thousands - but it may be millions #ForNow.) A Wikipedia (community curated, verified, high quality catalog) of skills might emerge #ForNow, if it hasn’t already. Tacit knowledge is often just un-measured knowledge. Once I put a sensor on the bellboy’s hands at The Curzon Court, AI can figure out how he opens the door with the key and why I can’t do the same. The subset of tacit knowledge that’s AI-resistant is where attempts are expensive (“How to negotiate a merger” rather than “How to open a door”) and feedback is slow/vague (“Does the client trust me” rather than “Did the door open”). The fact that Composio has ~20,000 tools is a market signal that connectors are commoditizing, and are a depreciating asset #ForNow. A weak model needs a forgiving harness - which ends up slowing down model learning. Stricter, accurate verification environments are better for fastest model learning. ChatGPT Work lets you run for longer, faster, install plugins and skills, host a website, etc #ForNow. It’s somewhere between Chat and Codex. It consumes Codex limits - something to watch for (since chat limits are quite generous). Codex temporarily removed the 5-hour usage limit. Tibo. So, since I have 3 banked rate-limit resets #ForNow, I can, in theory, use 4 full weeks of Codex usage at one go. Reality: I don’t have problems large enough for a SINGLE week’s consumption! From what I see of the State of AI Design and State of Prototyping, Figma is way ahead of competition #ForNow, e.g. Adobe, with Figma Make and Weave. I was also surprised how popular Cursor is (#2 behind Claude Code #ForNow). It’s also interesting that designers are coding directly #ForNow, using Figma just for edits / steering. But many research tools (note takers, survey analysis/research, etc.) will likely get eaten up by AI coding agents #ForNow, given how much designers are building their own tools. Questions I was asked Week ending 19 Jul 2026 ...

Things I Learned - 12 Jul 2026

This week, I learned: How to become an applied AI engineer is a concise, well-written, and suprisingly current summary of what AI engineering is. Xinjiang seems to be China’s Kashmir problem. Not quite, but similar. Analogies for how forward deployed engineers work: It is like a food truck that brings and serves home food while building a kitchen and restaurant around it. It is like setting up a field hospital: patients are treated from day one, while the equipment and procedures are built around the live work. Froghoppers excrete ~300x their weight daily. ChatGPT There’s a growing shift away from AI-written commit messages, e.g. Kenton Varda. I compared my human written commit messages vs AI-generated commit messages and the AI-generated ones are less helpful. Finally, GPT live gets an update and the new speaking model can delegate to GPT 5.5 when required. I tried it once today, to plan for a teacher workshop, and it was fairly good. It tends to begin with “Hmm” like it’s thinking, which feels comforting. Using a Unicode character like 🟢 is unusually low-risk across file systems today. It works well across OSs, mobile, ZIP, attachments, file share systems, etc. Some old apps might have trouble, but for storing and sharing, it’s fine. I’ve been using Unicode symbols like these a lot in my notes, and extending to file names feels like a natural next step. Though swimming gets the most Olympic medals (11%), for a country chasing its first medals, 78% of first-medal breakthroughs came from Athletics, Wrestling, Shooting, Boxing, Judo, Weightlifting, or Taekwondo (which are 44% of medals) - where single athletes can win without a support ecosystem. ChatGPT JMFL accidentally emailed several people a letter intended for their brokers. It roughly said: “Many of you are recording client calls. That’s a regulatory risk. If you keep doing this, we’ll hold your payments, even fire you.” Several Smart TVs have software that let your TVs act as proxies for data collection companies. Include Security MapDraw is a convenient tool to annotate maps (e.g. routes, boundaries, places) and share or download it. There seems to be no way to edit the “About” message on WhatsApp Web. Though the help suggests steps, and the “About” mood/status is visible, there’s no way to edit it. (Editing on the phone works.) Cloudflare optimised a reader component by sometimes letting the input buffer fill fully. This inadvertently introduced a hard to reproduce race bug because the producer would close the socket if the buffer was full. The producer bug was old (it didn’t check if a flush succeeded or not) but was never visible since the readers never let the buffer fill in the past. Cloudflare A neofirm is a start-from-scratch AI-native business, e.g. Crosby’s AI-first law firm. An AI rollup is where a company buys small traditional firms and AI-enables them - like General Catalyst proposed. AI SaaS is selling AI agents to services firms. Give people free platforms and collect their data. Learn the supply-demand network patterns, what pepole value, and add value-added services. Claude Code checks if you’re working behind a Chinese corporate domain - somewhat sneakily - by changing an apostrophe or slash in the date to visually similar Unicode. Claude Code Is Steganographically Marking Requests You can use the Kaggle CLI via Codex to solve Kaggle problems. (AutoKaggle automates it - but is 2 years old.) But, like GitHub bounty hunting bots, we will probably have a Kaggle bounty-hunting bot ecosystem - maybe already do. OpenSubtitles2024 and subscene are large pre-AI subtitle datasets with a 2024 cutoff. IndicDialogue is a 7.7K OpenSubtitles snapshot of Indic language SRTs. The OpenSubtitles API lets you search by IMDb/TMDb ID and is up-to-date. A soup spoon is better than a table spoon (for soup), though both carry about the same volume, because you can fit a soup spoon it fully into your mouth (a table spoon is too long) and this reduces spilling. Here’s a sign of accelerating AI progress. I used to critique outdated techniques by saying “This feels like a 20th century approach.” Then “This feels like a 2010s solution.” Recently, “This is SO 2025-ish.” Now, “That’s Q1 2026. It’s Q2.” The 7-day week emerged from the Hellenistic planetary week and the Jewish week (not astronomy based), which Rome adopted, then spread by several routes to India, China, and worldwide. Unlike the astronomical year and month, the week is just a convention. Egypt, China, and Athens grouped days in tens; Etruria and Rome used 8-day market cycles; West Africa used varied cycles; Java used five days; Mesoamerica used 13- and 20-day cycles. Gemini I met an ex-photographer and learned that photography is another profession where technology (mobile cameras) squeezed the middle. Generation (taking good pictures) became cheap. Value moved upstream (direction), downstream (selection, editing, album design), and into niches (forensic, industrial, sport/event photography). Looks like Claude favors Claude Code. Might not be intentional, and just a result of training more on Claude Code data, but it does look like a network effect that could weaken open harnesses. Armin Rocher Questions I was asked Week ending 12 Jul 2026 ...

Things I Learned - 05 Jul 2026

This week, I learned: ⭐ How to teach so people learn better. Make them do > Show > Tell. Workshop > Demo > Slides. Let them ask, try, struggle, and commit first; explain next; help last. But only when they know enough to get part-way. Make problems CONCEPTUALLY hard (not in language, visual, or procedure). But make sure instructions are clear. Test their learning with a NEW case, immediately. Measure learning. Can they recall it LATER, apply it ELSEWHERE, explain WHY, and know when they may be WRONG? Vogue runs an “In the bag” series where people pull stuff out of their bag, and audiences watching feel they KNOW the person. Depending on the setting, we might be able to help people “know” each other by curating several items. Here are a few ideas. Physical: Bag, Wallet, Fridge, Drawer, Keychain, Remembered phone numbers Mobile: Battery usage by app, Recent emojis, Text prediction for “Honestly, I just want to…”, Autocorrect dictionary, Alarm labels / reminders, Saved Wi-Fi, Blocked/muted contacts, Contact favorites, Contact names, e.g. “Mom ❤️” vs “DO NOT PICK UP”, Device / Wi-Fi names Laptop: Open tabs (count, age), Recurring calendar events, /Downloads, Photos, Email drafts, Subscriptions, Kindle highlights Ownership and connections come from attachment, which can be created. If you name something, touch something, contribute to something in any way, it becomes yours. When people contribute to someone else’s work and discuss it, they build a connection. According to both Claude and ChatGPT, if you had to pick one model for ideation / brainstorming, it might be GPT 5.5. It’s better for divergent generation: the broadest, most exhaustive pool of usable ideas. Fable 5 is better for deep creative judgment: reframing, finding structural flaws, recombining ideas. Claude Code supports rules which are exactly like a CLAUDE.md but support a paths: YAML metadata - so they’ll be read only when Claude Code is reading those paths. If you have a SKILL.md that explains how to do something and you only need its outcome, then move it to a sub-agent (e.g. fake data generation, tool failure logging). Use SKILL.md for instructions that need to be woven into a task, e.g. memorable explanations. The key bottlenecks in running an agent /loop are (a) imagining higher order problems and (b) defining a measure of success / progress. Long tail -> sell options. Black swan -> Buy options. That’s a roughly accurate summary. The trouble is, we don’t always know which tail we’re in. So, sell only if you can afford one hit. ArchiveBox lets you view pages / RSS feeds offline. uvx --from git+https://github.com/ArchiveBox/ArchiveBox.git@dev archivebox works, and config / tools are stored in ~/.config/abx/. The installation didn’t go very smoothly and the whole thing felt bloated, so I abandoned it. I use monolith -I -e $URL to download a page as an offline single-page HTML. Combined with uvx feed2exec I can archive RSS feeds for offline reading. That’s easier than having to open Feedly - I just mark read files with a x at the front and keep reading. The downloads are slow (~3 min/feed) and large (5 GB for 15 feeds, 5MB median feed size) because they embed videos and all images/files, but I can safely delete what I’ve read or will ignore. ChatGPT Project Injection as Role Confusion is a very well written paper (blog-post style) that says the key to tricking LLMs is to confuse them about WHO wrote a line. Just adding a “User: " in front of a line makes it more likely that LLMs think it’s a user. Even when test is written in the style of their system instructions, they fall for it - irrespective of where the content came from. This makes GEO more effective, too. Also, the last section “8. Open Ideas for Roles Research” is a fantastic read on LLM psychology (or rather, neurology). On The AI Compass I am The Podcast Bro. Patron saint: Lex Fridman. “You listened to a three-hour interview with an AI researcher and now you have opinions. Strong ones. You’re long on compute and short on regulation, and you’ve said ’exponential’ more times this month than a calculus teacher. Love is the answer, and also AGI.” Impact: +5.9. Valence: +4.1. Since Nano Banana 2 Lite isn’t as good as Nano Banana 2 and about half the price, I wouldn’t switch yet. Claude Sonnet 5 is out. Fable 5 will be released soon. GPT 5.6 is still on probation. Codex has a Record and Replay feature for Mac that lets you do something, records it, and learns from it. Very useful for non-developers. It’s like recording Excel macros, which unleashed a lot of power for me when I didn’t know Visual Basic. Claude Code Artifacts lets Claude Code live-publish a web page and share it securely. The “live-publish” part is the interesting thing. Claude in a /loop can now become the app that updates a “dashboard”, a live feed/story, a self-evolving app, … and so much more. (This feature is only available for Team/Enterprise but the idea is universal.) Tau, like Pi, is a minimal coding agent. τ = 2*π. It shows what it does very transparently, making it easy to learn how agents work. uvx --from tau-ai tau works seamlessly. Configs, logs, and sessions are stored in ~/.tau and you can log in via your Codex/ChatGPT subscription. Skills for Design Engineers has a useful animation vocabulary skill that converts vague animation prompts to precise animation terminology. X has an MCP Server but it’s meant for development/coding than general users. Setting it up for ChatGPT / Claude requires creating tunnels. OpenAI supports Secure MCP Tunnels that let ChatGPT connect to your machine securely. A very powerful feature. Unfortunately, this seems to need an organization - and even though personal accounts can still access it, it’s proven a bit more messy than I’d like to use. notebooklm-py is a CLI for NotebookLM. Unofficial and potentially unsupported, but it’s amazing how AI makes reverse-engineering APIs so easy. If you start a temporary ChatGPT chat and close it, it still runs in the background - but you have no way of going back to it (not even the back button) or seeing what it said/did. I know this because it was accessing my MCP server even after I navigated away from the chat accidentally. The code refactoring industry can go full swing now. “As an example of what AI can accomplish, Claude Opus 4.7 substantially reimplemented gotree—a bioinformatics toolkit with about 16,000 lines of Go and 40+ commands. We believe this same task would take a human engineer without AI assistance 2–17 weeks. Opus 4.7 solved it in 14 hours, passing 2,000/2,001 tests (99.95%), at a cost of $251.” MirrorCode A useful rule of thumb: Cloudflare tunnels are for links to share with others. Taiscale is for services (even non-HTTP) only your devices should see. ChatGPT date -d (date +-%wday) +%F is the most compact way to round down to the nearest Sunday. Avoid date -d "last sunday" +%F which, on a Sunday, returns the previous Sunday, not today. ChatGPT A useful way of controlling AI verbosity is word count. To do that, I need an intuitive sense of how much to ask for. Here’s my rule of thumb: one page of paragraph text on ChatGPT is 200-300 words. 150-200 if it’s mostly bullets. I can typically read 1-2 pages of output. So, 300-600 words is my limit. Google Labs launched a DESIGN.md spec to guide agents on a consistent design. The good part is that it aligns with the proposed W3C design tokens spec. But beyond that, I’m not convinced of the benefit. Atlassian’s DESIGN.md had mixed results. Claude feels it could go either way. I’ll give this a miss for now. Questions I was asked Week ending 05 Jul 2026 ...

Things I Learned - 28 Jun 2026

This week, I learned: Every Substack feed has an RSS feed at https://your.substack.com/feed. Substack help. I used this to scan my browsing history to identify Substacks I visit - and subscribed to Marcus on AI - an AI sceptic AI asked me to read about. Cloudflare let’s agents create temporary accounts so that they can deploy and test. Enables trial and error - a powerful capability. “They’re on mobile but this is substantiative enough to warrant length.” I spotted this in Claude’s thinking when prompting on mobile. So, if I ask Claude something on mobile, it will give me shorter responses by default. Clever design - but something to keep in mind. If I want some heavy thinking done by Claude, better to do it on desktop than try to give it conflicting instructions. Giant Permissive Image Corpus (GPIC) has 100 million Qwen tagged public images. Even as a simple searchable image catalog this has value. Jeff Clark - Import AI Ethan Mollick had an agent test his book summary against multiple LLMs as readers to find out how they would recommend it - and optimized. This is a great practical use of agents as consumers, and material for my When Data is for Agents, Not Humans workshop. kage is an easy CLI to clone websites and read offline. For example, kage clone https://simonwillison.net/2026/Jun/ -o ~/tmp/site --scope-prefix /2026/Jun/ --max-depth 1 clones all Jun 2026 articles from Simon Willison’s blog. Then kage serve ~/tmp/site serves it locally. While it’s easy, the only time I need this is on a flight, and in that case, a local RSS feed app works better. I’m using newsboat for that. To me, the clearest sign of AI writing from the Wikipedia:AI or not quiz was consistent paragraph lengths. I got the first 3/3 wrong, but once I used this heuristic, I got 6/7 right. Updated my LLM Smells. The files .git/info/exclude and ~/.config/git/ignore are also ignored by git, like .gitignore, but useful if you don’t want to commit them into the .gitignore file. For example, .DS_Store makes sense only for Mac machines, not each repo. .vscode/ makes sense only for VS Code users. Nelson Figueroa Justin Poehnelt, author of the brilliant Google Workspace CLI gws, was fired for it. There have been no updates for 3 months, but none may be required - it feels perfect. X Lore is a centralized version control system for large binaries. If you have large binaries (e.g. images, videos, …) that multiple people edit, it’s better than Git LFS or Perforce. ChatGPT Deno Desktop lets you use JS to build desktop apps. I tried it. It’s easy to install, compact to code, leverages familar web technology, and compiles to multi-platform binary. The binaries are a bit larger than I’d like, though - 80MB for a Hello World on Linux/Windows and ~70MB on Mac. Codex reported that You have 2 usage limit resets available. Run /usage to use one. This thread has context. After resetting, the next reset might be 7 days after the reset, though (source). After having a child, fathers are affected biologically, too. Testosterone drops, cortisol & prolactin & estrogen rise, the brain rewires for empathy and threat detection - and of course, there’s less sleep. These sometimes lead to “Paternal Postpartum Depression” - something I didn’t even know was a thing. The havoc kids wreak upon us! 🙂 Gemini With AI writing more code, formal code proofs are becoming more accessible. You just need to ask a coding agent to prove / disprove a function. You can use: Z3 to find/prove whether a counterexample exists. Best default. Dafny to prove that code obeys a spec. Best for real algorithmic code. Alloy to find loopholes in relational models, schemas, permissions, and workflows. Best for data. TLA+ to check whether stateful, concurrent, or agentic systems can evolve into a bad state. Best for systems / workflows. .. and there’s a long tail of these. Python is named after Monty Python, not the snake. I knew this, but forgot! Python now has multiple cross-platform app paths: PyInstaller and Nuitka for executables, Kivy, Flet, and BeeWare/Briefcase for GUI/mobile/desktop apps, and PyScript/Pyodide for browser/WASM apps - a route that became more serious because Pyodide-compatible WebAssembly wheels can now be published directly to PyPI. On the one hand, AI is writing code, so there’s no point learning Python. On the other hand, AI is writing code mostly in Python - so THAT’s what you need to learn more. I think we should teach Python using AI, that is, teach how to write and debug Python code using AI. That’ll end up teaching skills people will really need. Computational thinking = Decomposition + Abstraction + Algorithm design + Pattern recognition. In AI, that translates to = Framing + Context engineering + Orchestration (harness engineering?) + Verification design. Maybe I’d add Assetization / Systems. Questions I was asked Week ending 28 Jun 2026 ...

Things I Learned - 21 Jun 2026

This week, I learned: It doesn’t always take time to learn or convey things. (Early trust can be built instantly, e.g. vulnerability.) At first, experts don’t know how to make skills explicit. But trainer effort could compress 10X via evals, practice loops, and feedback. Learner elapsed time would compress less. Everyone has something worth discovering, but not every conversation is worth my time right now. So, meet new people with trust, attention, and good questions. Continue if there’s emotional / intellectual stimulation (surprising, interesting, moving, connecting, energizing, challenging), else exit warmly with respect. To avoid getting overwhelmed in ultra-interesting conversations, mental closure helps. During the conversation, pause, name, reflect, and close. “Wait, you’re saying X. I should do Y. I’ll reflect/act tonight.” or “Wow, let’s sit with that for 5 seconds. You mean X. I feel Y. I’ll drop.” After the conversation, summarize: “What struck me were X1, X2. I’ll plan Y1, Y2 and drop Z1, Z2.” Then take a short break. Setting "markdown.editor.updateLinksOnPaste.enabled": false might fix the delay / freezing (infinite spinner) issue when pasting Markdown in VS Code. The bottleneck to quality of AI output has shifted from model quality to harness quality (and this is not obvious to many people). It is important, therefore, to optimize harness usage rather than prompts usage, i.e. harness engineering over context engineering. I use ug --smart-case --bool -Q --sort=rtime to interactively search for text in files. It’s like VS Code search-across-files. Here are the shortcuts I find useful: Alt-g: Glob (filter files to search in) Alt-[ or ]: Decrease or increase context (lines before / after) Alt-w: Word match toggle Alt-c: Count lines toggle Alt-u: Ungroup - show lines once even if multiple matches Using AI for health seems to have reached a tipping point. Three people have pitched an idea in this space to me in the last three days. One is a managed personal health provider who wants to tie-up with hospitals to gather data to improve AI health advice. Second is an enterpreneur who wants to enable the Indian Govt to use AI to improve public health - given the low proportion of trained doctors in public hospitals. The third is a colleague who is uploading personal health reports, fitness data, DNA data, wearable data, etc. and suggest daily habits such as fitness, nutrition, sleep, medication, etc. to optimize health. Changing the topic (e.g. asking a question) instead of answering a question is powerful. It lets you decline requests, avoid sensitive topics, ignore boring ones, learn rather than teach, and bring in your agenda - all at one shot. I need to un-practice my 40-year habit of answering questions. (This is selfish. I forgive myself.) bolt.diy seems like a browser-embeddable coding agent. That is, you can add bolt.diy to your web page and have it build apps. That might be a pretty powerful upgrade to generative UI - where pages build themselves based on the user input. Codex has a few new features in the last few months. Codex can generate images and have voice conversations. /goal sets an overall session goal to avoid getting side-tracked. /side is like Claude Code’s /btw - for a side task while the main task continues. /resume lets you switch to any previous session. /keymap debug lets you edit the keymap and inspect what keystrokes the terminal sends. @ lets you mention files, directories, skills, and plugins. Ctrl+R works, lets you pick a previous prompt. Ctrl+O copies the last answer as Markdown. Hooks are stable. PreToolUse lets you log every tool, SessionStart lets you inject repo-specific rules. MCPs with readOnlyHint can run in parallel. codex doctor diagnoses environment issues. codex remote-control lets you remotely control Codex, making it a server. Codex Python SDK is better and you can have Codex run as a back-end more smoothly. To change others’ behavior, embody (not preach) it visibly and consistently, make it easy to copy, and ask without forcing. It takes time, though. ChatGPT Governance is how groups keep promises when things (people, incentives, environment, pressure) change. A simple way to explain what governance is to someone who doesn’t understand why governance matters, and guide on when it does not matter. Forward Deployed Engineers are the next evolution of data scientists, IMHO. AI can do data science. Data scientists will likely act as the “Human As An Interface” (HaaI) to business, proactively identifying and solving problems - a space business analysts traditionally occupied. Of course, business analysts will likely do the same without needing data scientists to help. But since AI replaces data scientists more than business analysis, I expect that the % of data scientists who become FDEs will be higher than business analysts. The value of data exported from software is high. For example, your email, social posts, CRM / HRMS / ERP dumps, service tickets, purchases, notes etc. These let you create a personal / organizational digital brain. Hence proprietary solutions will make exports harder and open solutions will emerge. To live-preview any publicly accessible Excel file, you can embed or link to https://view.officeapps.live.com/op/embed.aspx?src=YOUR-URL The Codex app can now use the browser much better and faster since last week if you enable “Dev mode” OpenAI. THis uses CDP - which is more efficient than screenshots - and is something Codex CLI has been doing for many months. In Codex, Claude Code, etc. you can submit a prompt while the agent is working to steer it, i.e. after it completes a turn (e.g. a tool call) it will factor in the prompt. You can also queue it. Neither of these is available on ChatGPT or Claude.ai, though it’s such an important feature. On ChatGPT, submitting another prompt stops the previous run and the agent continues with the new prompt. By default, git uses ~/.config/git/ignore or %USERPROFILE%\git\ignore as the global .gitignore. You can override that with git config --global core.excludesFile PATH. StackOverflow Questions I was asked Week ending 21 Jun 2026 ...

Things I Learned - 14 Jun 2026

This week, I learned: Overheard a journalist saying: “I can tell when humans are lying. There are no tell tale signs of AI lying. At least I don’t have any.” rdt-cli is a Reddit CLI. It uses a clever trick: it auto-detects installed browsers and extracts cookies (supports Chrome, Firefox, Edge, Brave). So, if you’re logged into Reddit on any browser, uvx --from rdt-cli rdt whoami automatically shows who you are logged in as. (The public-clis repo also lists other useful CLIs like twitter-cli, ) Currently, a $20 Claude Pro gives you ~$400 and a $100 Claude Max gives you ~$2,000 of API usage. For ChatGPT, the numbers are ~$700 and $3,500. SemiAnalysis When Fable 5 refuses to answer questions, here’s the message that appears: “Fable 5 has safety measures that flag messages on most cybersecurity or biology topics. They may flag safe, normal content as well. These measures let us bring you Mythos-level capability in other areas sooner, and we’re working to refine them. Send feedback or learn more.” I managed to trigger this once while researching an M&A acquisition target. Clicking on “Edit and retry with Fable 5” triggered Opus 5 again, twice. DNA codons (A, T, C, G) encode proteins in triplets. There are 64 triplets that map to 20 amino acids. Some like Leucine, have 6 codons. Some like Methionine have only one. Why? When creating genes, there’s a wobble, sometimes, at the 3rd codon. THe mapping minimizes that impact: small errors map to similar proteins. The more common proteins have more codons. There’s a lot of fascinating information science going on here. Gemini ChatGPT now shows a “Check in” button when it’s thinking. Clicking on that gives you a work-in-progress answer while it continues thinking. When done, it replaces the WIP answer with the final answer. A useful feature! Questions I was asked Week ending 14 Jun 2026 ...

Things I Learned - 07 Jun 2026

This week, I learned: sudo resolvectl flush-caches clears the DNS cache on Linux. Useful when you’re changing DNS records and want to see the changes immediately. In my case, I was creating a Cloudflare tunnel to my laptop and wanted to test it quickly. Making something easy to verify makes it much faster to train models on it. Arithmetic verification is easy - calculators can be deterministically verified. Chess verification is easy - Stockfish became easy to train. Code verification is easy - LLMs improved coding ability rapidly. Therefore: Wherever we have environments that are easy to verify, AI will improve faster there. To make AI improve faster in an area, build environments that are easy to verify. MCP is getting simpler. A stateless HTTP protocol. Simpler OAuth. Plugins. No idea when it will land in Claude or ChatGPT, though. Worth checking after 28 Jun 2026 - after it is finalized. Microsoft Scout is Microsoft’s version of OpenClaw or Gemini Spark. git subtree is a useful way of maintaining git repos inside git repos. For example, if you have a tool tool-a under a project. It’s more light-weight than sub-modules, lets you commit at any point to the parent or child, and is a built-in feature in git. Gemma 4 12B is released and seems almost as good as the 26B version. This is the class of models that makes it practical to run edge AI on phones. It’s multimodal and reasonably smart (like frontier models were 12-18 months ago). I don’t use Claude/ChatGPT Projects much. It offers 3 advantages: custom instructions, memory, files, and chats. Files aren’t useful - I use my entire laptop as a file system via MCP. Instructions aren’t useful - I can paste commonly used prompts with a click. Chats aren’t useful - I have chat references enabled, so all past chats are accessible anyway. Memory isn’t useful - I have memory enabled globally anyway. In short, I haven’t discovered the power of projects that everyone’s raving about. SKILL.md is more useful for me. repo is a Google/Android tool built on top of git that lets you manage multiple git repos. It sounded promising until I released it needs a repo init that creates a .repo/ - which is more overhead that I’d like to keep. When using <image onerror=...> fallbacks, include this.oneerror=null to prevent infinite loops if the fallback image also fails to load. RK One of the advantages of multiple agent (rather than a single agent loop) is: it’s easier to change directions when wrong. Single loops get stuck. Build Agents That Run for Hours Claude Code also supports agent teams where sub-agents can talk to each other rather than rely on the main agent to coordinate. Useful for parallel exploration. Anthropic lets Claude define “organizational policies” for agent teams best suited for the task (AI-native workflows). It also lets agents to push back on their scope, e.g. “This is too hard.” Build Agents That Run for Hours Claude Code has a /background [prompt] (or /bg) command that runs the current session the background. You can run claude agents as a separate command to monitor agents. (There’s no equivalent in Codex yet.) This seems to be the future of agentic operations: a bunch of agents running that you monitor and steer through an agent view dashboard. Models are evolving. Therefore prompts evolved. Now harnesses also need to evolve. The workflows will also evolve. As a result, evaluations might be the (relatively) more stable assets. Datasets are likely to be the most stable ground truth. How to learn a new field fast: Yes, it’s possible to learn 50% of a field in 20 hours. Josh Kaufman, “The First 20 Hours” popularized it. The next 30% takes months and the last 20% takes years. Threshold concepts are those that change your perspective and open up new ways of thinking. Experts’ knowledge is hard-wired and they can’t identify nor teach threshold concepts naturally. Don’t assume they can. “We know more than we can tell.” Polanyi’s 1966 book “The Tacit Dimension” says that there’s some knowledge that can’t be verbalized. This tacit knowledge, therefore, will be harder for humans and AI to learn. Questions I was asked Week ending 07 Jun 2026 ...

Things I Learned - 31 May 2026

This week, I learned: D-ID is an avatar generator platform like HeyGen. Creatify and Synthesia are a couple of others I heard of. This space seems to be growing. cosign is a CLI that lets you sign and verify any piece of text with a Google, GitHub or Microsoft account. cosign sign-blob FILE --bundle sign.json opens a login window and creates a sign.json signature. Anyone who has FILE and sign.json and the email ID can verify via a Google account with cosign verify-blob FILE --bundle sign.json --certificate-identity $EMAIL --certificate-oidc-issuer https://accounts.google.com. arxiv2md.org converts arXiv papers to Markdown. Source. markxiv.org claims the same - by just changing the URL - but it ended up reporting an error when I tried this link: https://markxiv.org/abs/2604.08649. From Akhilesh Tilotia: So we have someone in our team with initials AS. She made a document which was named vAS. Then I made edits and named it vAT. These docs were in a CoWork folder. I asked Claude to clean up my doc. It created another version for me to review. In its wisdom, it named the file vAU 🙂 Maybe what a forward-deployed engineer does is enginer AI-native workflows. (This sounded profound when I wrote it down. Not sure if it’ll sound as profound tomorrow.) The idea is that the FDE will say, screw existing processes; let me fire up my AI agent and get stuff done; THEN we’ll figure out what works, how to optimize it, etc. The PRAGMA: Revolut Foundation Model has some good tokenization ideas for tabular data. Create your own token space with key–value–time tokenization - to retain field information. Bucketize numbers by percentile, preserving magnitude/ordering that subword tokenization destroys. Encode time both as log-seconds and as cyclical calendar features. Codex uses the Alt + Up Arrow key to edit queued commands, but on the VS Code terminal, this key binding is not sent to the terminal. Enable the terminal.integrated.sendKeybindingsToShell setting to send it to the terminal, hence Codex. Based on this catalog on “universal foods”, here’s what I 🟢 like, am 🟡 neutral, 🔴 dislike, 🟣 must try, and will ⚫ skip. Universal favorites: 🟢 pizza, 🟢 fried potatoes/chicken, 🟡 dumplings, 🟢 ice cream. Universal comfort foods: 🟢 khichdi, 🟡 congee, 🟡 dal-rice, 🟡 risotto, 🟡 ramen, 🟢 pho, ⚫ chicken noodle soup, 🔴 rice porridge, 🟡 mac-and-cheese, 🔴 mashed potato, 🟣 polenta, 🟢 oatmeal, 🟣 Japanese curry rice. Acquired tastes that convert most: 🟡 coffee, 🟢 tea, 🟡 dark chocolate, 🟢 mild fermented dairy, 🟢 pickles, 🟢 olives, 🟣 kimchi, 🟣 miso, 🟢 mild chili dishes. Acquired tastes that have cult devotion: 🟣 durian, 🟣 natto, 🟣 stinky tofu, ⚫ fermented fish, ⚫ hákarl, 🟢 very funky blue cheese, ⚫ offal. OceanoPDF seems like a good place to download ePubs of books. The entire Wikipedia is available as a Parquet file. You can query it like duckdb -c "FROM 'hf://datasets/wikimedia/structured-wikipedia/enwiki/data/*.parquet' LIMIT 5". The English version has 35 GB, 7.6 million articles, and you’re better off downloading it rather than running analyses remotely. When you receive a Calendly link of the form https://cal.com/USER/EVENT you can fetch the available slots via curl -H 'cal-api-version: 2024-09-04' 'https://api.cal.com/v2/slots?eventTypeSlug=EVENT&username=USER&start=2026-05-25&end=2026-06-01&timeZone=Asia/Singapore&format=range'. Useful to automate good meeting-slot selection. “Reference saved memories” in ChatGPT is different from “Reference chat history” as per OpenAI. In Developer Mode, memory is turned off, but not chat history. I confirmed that I can access past conversations in Developer Mode. It might be a privacy concern for others, but for me, this is singularly useful, because I can use ChatGPT with Local MCP effectively getting a non-metered AI coding agent. Seems GPT-5.2 reaches expert level in peer review: 45 scientists took 469 hours evaluating human & AI reviews on 82 papers. “Surprisingly, current AI reviewers are competitive even with the top-rated reviewers in Nature’s official peer review…” though not without weaknesses, so use AI + humans. On the limits and opportunities of AI reviewers: Reviewing the reviews of Nature-family papers with 45 expert scientists via Ethan Mollick Questions I was asked Week ending 31 May 2026 ...

Things I Learned - 24 May 2026

This week, I learned: BitWarden seems to be sneakily jacking up prices and going towards a PE sale. Might be time to shift out or self host. Sigh, I just migrated into it… Source Andrej Karpathy has joined Anthropic. Likely to use Claude to build better Claudes - automating AI research. Also, it probably isn’t a good time to build an AI education platform. Claude The open-source Chinese models about 6 months behind frontier models. Qwen 3.7-Max is on par with Claude 4.5 Opus (Nov 2025) and Gemini 3 Flash (Dec 2025). Google basically became Gemini. Entirely! I’m not sure there’s a difference any more. Which means it will scrape websites and not send traffic through - just killing the search economy. But it’s far more useful. Claude I wanted a list of sites I log into with my Google Account. Google’s Linked apps page does that. Unfortunately, I can’t find a way to use Google Takeout to export that data. So I wrote a scraper which can be single-shot prompted these days. As long as you remember to exhale, your chances of recovery from being ejected into space is pretty good for the first 15-60 seconds. Gemini I don’t understand half the comments I read on LinkedIn. Earlier, I was able to separate good from bad. Now, I’m not sure if what I read is actually insight or idiocy. Is the AI use making their comments too smart or making my brain too dumb? “Pax Memoriae”: peace of memory. Putting past conflicts to rest. The best part of it was, I learnt the phrase by typing “Pax” into VS Code and wasn’t sure what to write next. Before I could search for it, GitHub Copilot completed it. I searched for what it meant, and it was so apt! Children’s vision is worse than adults, but filter less and absorb ore irrelevant information than adults. This is useful for learning and surprise detection, but costly for focus, speed, and relevance. ChatGPT The word phobia comes from the Greek god of fear, Phobos, which is the name of one of Mars’ moon. Deimos, the other moon, is the Greek god of dread/terror. They’re the children of Ares (Mars), the god of war. Nice planet. On WhatsApp, I can type @Meta AI and then /imagine to have it draw an image. The quality is OK - not great, not terrible. Surprising but GPT Realtime Whisper ( new model) isn’t as good as the older open-source Whisper models. Also, Gemini 3 Flash Preview is as good at transcription as Gemini 3.1 Pro Preview for up to medium-length text. LLM Audio Transcription benchmark Google Maps typically shows me a cycling time of 30 minutes when it take me 40 minutes and a walking time of 40 minutes when it take me 30 minutes. Either I walk much faster and cycle much lower than the typical person or Google Maps is not well calibrated to Singapore and India. Questions I was asked Week ending 24 May 2026 ...

Things I Learned - 17 May 2026

This week, I learned: I had GPT-5.5 and Opus 4.7 analyze a few of my conversations and learnt that I need to ask myself: “What must they take away? What must you take away?” in my conversations. That lets me speak with intention rather than instict. (Instinct has its place. I happen to over-use it.) Turns out there are several well-established taxonomies. It makes sense to align with these. Linked data is powerful and AI makes linkage easy. General Knowledge: Wikidata, DBpedia, YAGO. People: VIAF, ISNI, ORCID, LC Name Authority, GND. Places: GeoNames, Getty TGN, ISO 3166. Organizations: LEI, ROR, Wikidata. Books/Media: Open Library, WorldCat, MusicBrainz, IMDB. Chemicals/Biology: PubChem, ChEBI, GBIF, ITIS. Legal/Units/Math/Events: EuroVoc, QUDT, OEIS, PeriodO, etc. BitWarden supports a bw CLI that seems handy for quick CLI access to passwords. It’s a step towards me moving away from saving passwords unencrypted on my local file system. Singapore has banned prediction markets like Polymarket and Kalshi. Pity. I was hoping to use AI coding agents to play them. Yahoo flipbook.page is a fascinating generative UI exploration. It’s a visual browser, i.e. it generates an image based on text, you click anywhere, it generates an image interpreting based on where you clicked, and so on. A very different style of exploration! Vercel’s deepsec uses Codex / Claude to search for vulnerabilities, but “scans can cost thousands or even tens-of-thousands of dollars for large codebases”. When I charge my Lenovo Thinkpad (P1 Gen 7) with the 170W charger that came with the laptop, it delivers ~60W of power to the battery, charging the laptop in about an hour. A 65W laptop delivers half the power and takes twice as long. Questions I was asked Week ending 17 May 2026 ...

Things I Learned - 10 May 2026

This week, I learned: I’m experimenting with Tauon MusicBox as an alternative to VLC as a music player. Update: 01 Jun 2026. I switched back to VLC. Tauon Music Box is glitch. It stops songs mid-way and doesn’t play automatically when launched. xz is pretty slow by default. xz -T0 uses all available threads and speeds it up ~3X. Enabling “Performance mode” (over a power-saver mode) produces a further speed-up of ~2X for me. For a 200MB file, that reduces the time from ~1 minute to 10 seconds. Notes from Simon Willison’s notes from the Claude Code event: “Design for the next model”. Build things that don’t quite work today on the assumption that they’ll start working with a model upgrade in the future. “The advisor strategy”. Instead of using a smarter model to plan, use smaller models to ask Opus for advice-on-demand. Dreaming looks really interesting. You can run a task over night which examines previous sessions and creates new memories. A routine is a saved Claude Code configuration: a prompt, one or more repositories, and a set of connectors, packaged once and run automatically. Routines execute on Anthropic-managed cloud infrastructure, so they keep working when your laptop is closed. Overheard: “VCs say, ‘OpenAI wants to get into commerce, so why are you getting into commerce?’ A few weeks later, ‘OpenAI no longer wants to get into commerce, so why are you?” Delightful discovery of the day: Super + Shift + Arrow keys to move windows between monitors on Ubuntu. television is a fast, portable fuzzy finder. Like fzf but faster, useful for files, text, git repos, docker images, etc. I added approvals_reviewer = "auto_review" to my ~/.codex/config.toml. This enables auto review which uses an LLM to figure out whether to ask a human to approve or not. It’s a lot less intrusive than asking every time. Not perfectly safe, though. Copilot supports a /chronicle command that suggest tips and improvements when using Copilot. It’s like /insights on Claude Code and Carbonyl is a CLI Chromium browser. Sort of like Lynx, but supports audio/video, JavaScript, even WASM, etc. This was the author’s first Rust project. I tried Zed as an alternative to VS Code. It’s fast and lightweight, but lacks the ecosystem of VS Code. Plugins are harder to build and Markdown support is weak. I would use it on a flight to save power, not otherwise. This is similar to others’ experience. ChatGPT UPDATE 05 Jun 2026. It DOES use some battery power - more than I’d like. I am uninstalling it. LocalSend is a pretty quick way to share files between phone and laptop even if you don’t have a network - if you connect the laptop to the phone hotspot. GNOME Network Displays works pretty well if you want to screencast your screen to a network display - e.g. a Smart TV with Miracast or Chromecast support. I’m evaluating rtk - a CLI proxy to reduce tokens. For example rtk ls or rtk git status shows agent-friendly compact output. I just added one like to my AGENTS.md: “Always prefix shell commands with rtk. Examples: rtk git status, rtk pytest -q, etc.” instead of using rtk init -g. I am testing it out, so I don’t know the impact, but it seems harmless. (Based on 2 days’ usage, across 216 commands, it saved ~50% of 37K tokens. Not much, but harmless.) The emerging convention to mark a section of HTML / Markdown as AI generated content is to wrap it in: <section ai-disclosure="ai-generated" data-ai-model="claude-sonnet-4.6" data-ai-provider="Anthropic"> (W3C AI Content Disclosure Community Group). Questions I was asked Week ending 10 May 2026 ...

Things I Learned - 03 May 2026

This week, I learned: LiteParse is a PDF to text library that you can run via npx --package=@llamaindex/liteparse lit parse document.pdf. Simon Willison Always add indecisiveness, inaction, “other”, “not applicable”, etc. as an option to LLMs. They are trained for decisive responses and pattern matching, so we need to guide the the other way. Martin Fowler GPT 5.5 is priced twice that of GPT 5.4. No wonder my Codex usage is much higher than last month. Simon Willison. I am better off sticking to medium effort instead of the xhigh I usually use - it may not be required. OpenAI “… the eigenquestion is the question where, if answered, it likely answers the subsequent questions as well.” Shishir Mehrotra & Matt Hudson Claude Code stores the logged in OAuth token at ~/.claude/.credentials.json. We can use that to fetch https://api.anthropic.com/api/oauth/usage and retrieve Claude usage and reset times. uvx ccusage does this automatically, but I prefer my own script. Ontology matters in the AI era. But some stuff matters more, and some less. 🟢 MORE: Definitions: what “customer” means 🟢 MORE: Constraints: e.g. “don’t reclassify loans” 🟢 MORE: Interactions: how to verify, coordinate, delegate, … 🔴 LESS: Creating ontologies: agents can do that. 🔴 LESS: Completeness and rigor: agents tolerate uncertainty. 🔴 LESS: Proprietary: agents can reverse-engineer. There are several industries / markets that MBA case studies rarely cover (ChatGPT): Kirana stores; Care (child care, elder care, domestic work); Faith (finance, food, media, education); Remittances; Gambling (lottery, sports betting, gacha); Scams & organized fraud; Counterfeiting; … Questions I was asked Week ending 03 May 2026 ...

Things I Learned - 26 Apr 2026

This week, I learned: mdq is pretty useful to extract Markdown sections. For example cat *.md | mdq '# Title' extracts all sections where the header contains ‘Title’ (case-insensitive). CloudFlare Browser Run is, roughly, a browser as a service. Pricing: 10 hours free per month, then 9c per hour. I had Codex run a small research to explore it, and it seems simple to set it up and use it. GPT 5.5 seems to be especially better than GPT 5.4 and running for long, with tool calls, without losing focus. That’s something OpenAI models are good at anyway, so this takes it a step further. ChatGPT I added gpt-image-2 to my LLM Art Style gallery. It is notably better with text accuracy. For example, on Rock - Paper - Scissors - Lizard - Spock it consistently lists all 10 rules, which Nano Banana 2 does not. World leaders do keep us entertained. Saparmurat Niyazov (Turkmenistan) renamed the months of the year and days of the week after himself and his mother. He built a towering, gold-plated statue of himself in the capital that rotated so it would always face the sun. He also banned lip-syncing at concerts, outlawed gold teeth, and banished dogs from the capital because he found their smell unappealing. Idi Amin (Uganda) declared himself the “Uncrowned King of Scotland” and sent baffling, unsolicited telegrams to world leaders - advising Richard Nixon to recover from Watergate, or offering food aid to a struggling Britain. François “Papa Doc” Duvalier (Haiti) reportedly ordered all black dogs in Haiti to be put to death and claimed his personal Vodou curse was responsible for the assassination of John F. Kennedy. Francisco Macías Nguema (Equatorial Guinea) banned the word “intellectual”, banned the use of lubricants in the power plant (claiming his magic would keep it running, which promptly broke the generators), and stored the nation’s remaining foreign currency under his bed. Kim Jong-il (North Korea) claimed he invented the hamburger (calling it “double bread with meat”) and shot 11 holes-in-one his first time playing golf. Donald Trump (United States) used late-night tweets to announce major policy shifts and fire his own cabinet members. He altered an official government hurricane map with a Sharpie to match a previous erroneous statement, and publicly mused during a press briefing about the injection of household disinfectants as a medical treatment. Git repositories inside git repositories (without using sub-modules) don’t seem to work well. I need this because I have mono-repos for research and I want to use git in a sub-folder to iterate, then commit just the final version to the parent folder. Looks like I need to remove the child .git/ (e.g. rename to .git.bak/, which I’ve added to my ~/.config/git/ignore) for this to work. Gemini To run a script in the background (without logs) and detach / disown it, use nohup your-script >/dev/null 2>&1 & disown Running /insights on Claude Code helped me add these two instructions to my code skill: Test web pages with screenshots (for layout, overlaps, contrast) AND CDP (for interactions, navigation) before finalizing Prefer icon libraries over unicode/emoji icons. Sending an entire PDF/PPTX to Gemini costs ~40% of sending PDF/PPTX + images. The quality is fine for small files, but for large files adding images reduces error rate from ~5% to 0.5%. Pandoc Markdown to Word DOCX supports sidebar comments. You can use this Markdown: Here is [comment in sidebar]{.comment-start id="c1" author="Anand" date="2026-01-01T12:00:00Z"}commented text[]{.comment-end id="c1"} inline. Gemini. In fact, Pandoc supports lots of other things, like: Custom styles via block ::: {custom-style="Custom Style Name"} Track changes via [inserted text]{.insertion author="Name" date="2026-04-20T12:00:00Z"} and [deleted text]{.deletion author="Name"} Page breaks via \newpage (a LaTeX command that Pandoc supports in Markdown) CSS styles via ![Alt Text](image.png){width="5.5in" height="3in"} Offpunk is a CLI offline-first browser. Interesting idea, but installation is a problem. After sudo apt uninstall offpunk running offpunk failed with ImportError: lxml.html.clean module is now a separate project lxml_html_clean. After a git clone it reported HTML document detected. Please install python-bs4 and python-readability. These are easy to fix, but I wasn’t inclined. Creating an authenticated MCP Server for ChatGPT is complex. It requires OpenID Connect (for which library support is weak and requires a provider like Auth0), dynamic client registration (which is hard to implement though Auth0 supports it), and after half a day of experiments, I still couldn’t connect. An easier option is to run temporary tunnels with cloudflared or ngrok or localtunnel. Questions I was asked Week ending 26 Apr 2026 ...