--- title: Things I Learned - 16 Nov 2025 date: 2025-11-16T00:00:00+00:00 categories: - til description: I find faster Ubuntu mirrors, learn FLIP animation techniques, and analyze the Microsoft-OpenAI deal. Most excitingly, I calculate the low cost of using AI as a personal coach to analyze 180 of my recorded calls. keywords: [flip animation, gemini 2.5 flash, claude code, olmoearth, microsoft-openai deal, codemods, deepseek-v3.2-exp, vaultgemma] --- This week, I learned: - Windows 11 got some _very_ practical updates. Notepad now supports Markdown preview natively. MS Paint has an opacity filter. Microsoft Copilot can share screens and speak/listen. - Things I learn when Ubuntu drivers crashed on my laptop: - The [SG.GS Ubuntu ISO mirror](http://mirror.sg.gs/ubuntu-releases/24.04.3/ubuntu-24.04.3-desktop-amd64.iso) is a _lot_ faster than the [official Ubuntu ISO download](https://releases.ubuntu.com/24.04.3/ubuntu-24.04.3-desktop-amd64.iso) (5 min vs 12 hours). - [Rufus](https://rufus.ie/en/) and [balenaEtcher](https://www.balena.io/etcher/) are the de facto tools for bootable USB drives from ISO. - Gemini 2.5 Flash Image is not great at generating text. But a clever a workaround is to provide the rendered text as an image input! Also, Gemini 2.5 Flash Image seems to ignore commands that try style transfer (e.g. "turn me into Studio Ghibli"). [GemImg](https://github.com/minimaxir/gemimg) - [FLIP animation](https://css-tricks.com/animating-layouts-with-the-flip-technique/) is an efficient animation technique. - Capture the First position - Apply the Last position (changing position, size, rotation, etc.) - Invert, i.e. apply just the `transform` that'll move it back to the First position - Plan the animation. This _only_ needs to change transform, hence no DOM reflow. - Asking coding agents to create a [codemod](https://github.com/rajasegar/awesome-codemods) for large-scale refactoring works well [Peter Steinberger](https://x.com/steipete/status/1987771067998339352) - When to quit vs persist. [#](https://claude.ai/chat/8e9252da-6186-4876-be2e-d81c27a2cc7d) [#](https://chatgpt.com/c/6911a446-6018-8320-aed7-808be506d4e6) 1. Do stats/signals support positive outcome? QUIT if not. 2. Crossed any limits you set for yourself? QUIT if so. (Run pre-mortems to find these stats/signals and limits.) 3. Is the decision hard to reverse AND uncertainty high? QUIT if so. Else you can experiment cheaply. (Create reversibility.) 4. Are youI continuing because of past effort or pride? QUIT if so. (Set review cadence.) 5. Is there a better alternative? SWITCH if so. (Get outside help.) - Once a model generates an output, an agentic look tends not to change the fundamental approach and just tweaks it. So, if a solution is directionally wrong, restarting works better than iterating. [Agentic Pelican on a Bicycle](https://www.robert-glaser.de/agentic-pelican-on-a-bicycle/) - [Reading between the lines on the Microsoft OpenAI deal](https://claude.ai/share/4168c00c-49f3-4007-a26a-5699bf581648): - Microsoft values OpenAI's growth (financial return) than control - Neither trusts the other enough to decide what's AGI - Microsoft gets some wins: models until 2032 (even post AGI) as well as research IP. Both parties expect AGI between 2027-2030. - OpenAI keeps all consumer hardware - so is betting hard on hardware. It's more Apple than Microsoft territory - Divorce preparation: Microsoft can pursue AGI with other partners. OpenAI can purchase compute from anyone and release open weights models. Infra has more value than model dev! - [OlmoEarth](https://allenai.org/olmoearth) is a set of image models trained on labelled geospatial data. That's useful for deforestation and land cover monitoring, wildfire detection, urban growth monitoring, crop mapping, etc. The models are open weights and can be fine-tuned. - Claude Code's [output styles](https://code.claude.com/docs/en/output-styles) are a way of using Claude Code for anything (e.g. writing, analysis, research, personal advice, etc.), not just coding. Create a `~/.claude/output-style/your-style-name.md` and run `/output-style your-style-name` to replace the system prompt will be replaced. You can also use the `--system-prompt` and `--append-system-prompt` flags with the CLI. - Following [Ethan Mollick's lead](https://x.com/emollick/status/1987355374928769395?s=20) I asked: _I can travel back in time to any time before 1500 in India and change only one thing. What is the single thing you would change? Nothing obvious._. - [ChatGPT](https://chatgpt.com/share/6912a989-c858-800c-9039-a38b3f5b090e): **Create a single, simple, phonetic script** for all public life in India around 1100 CE. - [Claude](https://claude.ai/share/11be725d-cca3-4108-bafd-58eb3ce0510e): **institutionalize systematic historical recordkeeping**, introduce limited liability commercial entities, and mandate systematic translation of Sanskrit technical texts into all major regional languages. - How about now? ChatGPT suggests: **make all public rules and records computable by law**. Claude suggests: **make all state-level entitlements and civil documentation fully portable** across India. - For the first time in history, Russian troops surrendered to a wheeled drone that carried 138 pounds of explosives - [Washington Post](https://www.washingtonpost.com/world/2025/10/20/ukraine-russia-battlefield-land-drones). Given the cost and accessibility of drones, I guess drone terrorist attacks will soon emerge. - HTML + JS apps will last longer than server-side apps and it makes sense to write more of those. For essential back-end services, keep them generic. Specific services layers I see are: - Auth (e.g. Google Auth, Auth0, Supabase, ...) - Storage (e.g. Supabase, Firebase) - LLMs (e.g. OpenAI, Claude, OpenRouter) - Communications (e.g. EmailJS) - ... #TODO Extend with LLMs - https://gistpreview.github.io/ is an unofficial GIST preview tool. It accepts a `?GIST_ID` and displays the gist as a standalone HTML page. [Simon Willison](https://simonwillison.net/2025/Oct/23/claude-code-for-web-video/) - [XSLT is deprecated in Chrome](https://developer.chrome.com/docs/web-platform/deprecating-xslt). So the [`