2026 1

Things I Learned - 11 Oct 2026

This week, I learned: Python 3.15 is out. My favorite features are: frozendict is hashable. So frozen dicts can be dict keys. Unpacking in Comprehensions. [*x for x in [[1, 2], [3, 4]]] = [1, 2, 3, 4]. {**x for x in [{1: 2}, {3: 4}]} = {1: 2, 3: 4}. Once you start thinking this way, it gets easier. UTF-8 is the default. In source and text processing. No encoding="utf-8" required. Lazy imports. The backward-compatible way to add it is __lazy_modules__ = ["module1", "module2"]. Sentinels. Use MISSING = sentinel("MISSING") instead of MISSING = object() and define def func(default=MISSING):. Having thought about it, I prefer having Google Meet / Teams / Zoom screens on the monitor to my side rather than the laptop in front of me. It looks odd when I look at someone on the screen and talk to them. But, people get used to that quickly and focus on what I’m saying. The advantage is that when I’m NOT looking at them and reading from my laptop screen, I’ll still look engaged because I’m staring at the camera! Google Docs supports Markdown natively. Finally. Artcraft has open source re-implementation of Adobe apps in Rust. This includes Photoshop, Illustrator, Premiere, After Effects, even Acrobat! OpenCode has a warming feature to keep the session cache live. Not sure how effective this is, but it’s an interesting idea. Hypothesis: An example is worth a dozen instructions (when guiding an LLM). I find myself repeatedly surprised by how well they copy the SPIRIT of my examples - even when I can’t verbalize what I intend. Voice recognition is improving rapidly. Whistle is a 17MB CPU-only transcription model. It even runs in the browser. Here’s how it transcribed what I said: “Up to 30 seconds in English, German, French, Spanish, Italian, Dutch or Polish, the first place downloads the 16.9 MB model and audio never leaves Oriona refields your device. Whistle does Wasn’t there three jobs, all of them on sort of them are the device. Transcription. 16 kilohertz mono audio monoario to 30 seconds in one pass the past in and then English German French and so on.” Not great, but impressive for a browser CPU model. VISA has been building Large Transaction Models. Predicting the next transaction, I guess, based on history of transactions. I’m curious to see how successful they are. LLMs might enable exploratory text - sort of like exploratory data visualizations. Tareq Ismail prototypes two ideas in Reading Long Form. One: hide what’s less relevant (in different ways). Two: let users re-organize text (fold, group, slide, …). I’d love controllable interfaces like these to read my feeds. The IITM BS students have set up WhatsApp and Telegram groups for most courses and assembled them into a single IITM BS Community site. Fans can be really effective in cooling laptops. I realized this when my laptop hit 79°C - just one short of my Ubuntu reboot limit. I blew continuously into the vents and within 15-20 seconds the temperature dropped to 7° down to 72°. (It would climb back, then I’d blow again. And so on. I was compressing my lecture video and this is more fun than watching it.) OpenAI is shutting down their fine-tuning platform (announced in May 2026). “Prompt-based approaches are now cheaper and faster – as such, we’re seeing fewer use cases that require fine-tuning.” Something I’d been seeing & predicting for some time now. OpenAI Discussion You can change your Github username A student told me they used ChatGPT Dots. It reported running Debian 13 and, when using the browser, revealed that it was a Mac (Mini?) running in the UK! Cloudflare has launched a Web Search API with multiple providers - of whom ceramic.ai is significantly cheaper at 25c / 1K queries. Others are over 20x more expensive #ForNow. just supports a global fallback. Create a ~/.justfile and the commands will run from any directory under your home that doesn’t have a justfile. If you have a justfile, add set fallback to inherit from the global justfile. ChatGPT What OpenAI showed is that the Navier Stokes equations can lead to an infinity in the solution. They found this by finding a counterexample. That’s typical of AI proofs #ForNow: finding counter-examples is easier than new solution approaches. Video The little pits in golf balls create small turbulences that prevent the air flow around the ball from creating a larger drag - so the ball travels farther. Neil deGrass Tyson - Video Cloudflare released Clef - a Jev-like decision model. It’s comparable in intelligence and supposed to have really low latency - sub 100ms. But when I benchmarked it, it was 400-600 ms from my machine in Singapore. Even from Cloudflare Workers, it was over 270 ms. I guess the HTTP call overhead might eat up a fair bit of the benefit - so websocket or other API methods are likely to emerge for such models. For an entire minute, I really thought Rajnikanth and Suresh Krissna were discussing Baasha 2 in this video. It’s AI generated, but now I see a bit more viscerally what this means for films and fakes! Mistakes I made Week ending 11 Oct 2026 ...

2021 1

Programming Minecraft with WebSockets LinkedIn

Unofficial Guide to Programming Minecraft with Websockets. My daughter got me hooked on Minecraft. (If you see me staring intently at you during a Zoom call, I’m probably fighting a mob.) As it turns out, Minecraft is pretty programmable. You can send it messages using websockets that can place blocks, create mobs, get information, and more. None of this is officially documented, though. So I spent a few weeks reverse-engineering this and put together a guide to programming Minecraft. ...

2012 1

Colour spaces

In reality, a colour is a combination of light waves with frequencies between 400-700THz, just like sound is a combination of sound waves with frequencies from 20-20000Hz. Just like mixing various pure notes produces a new sound, mixing various pure colours (like from a rainbow) produces new colours (like white, which isn’t on the rainbow.) Our eyes aren’t like our ears, though. They have 3 sensors that are triggered differently by different frequencies. The sensors roughly peak around red, green and blue. Roughly. ...

2010 1

R scatterplots

I was browsing through Beautiful Data, and stumbled upon this gem of a visualisation. This is the default plot R provides when supplied with a table of data. A beautiful use of small multiples. Each box is a scatterplot of a pair of variables. The diagonal is used to label the rows. It shows for every pair of variables their correlation and spread – at a glance. Whenever I get any new piece of data, this is going to be the very first thing I do: ...

2006 2

Great essays

Great essays by Dan Norman on design Paul Graham on life and programming Edward Tufte on visualisation

What programmers do

What programmers do.

2001 1

Microsoft interview question

“Write a one-line C expression to determine if a number is a power of 2”. Microsoft is famous for asking such questions to their programmers. Or you might want to find out what the assembly code CWD XOR AX, DX SUB AX, DX does. Satish’s site has the answer, but not the question. More questions: 1 2