2025 5

The 11 sites I visit most: ChatGPT. It’s replaced Google as my default knowledge source. I prefer it over Gemini, Claude, etc. because the app has good features (memory from past conversations, code interpreter, strong voice mode, remote MCP on web app, etc.) The OpenAI models have pros and cons, but the app features are ahead of competition. Gmail. It’s my work inbox. Interestingly, I check it more (and respond faster) than social channels (e.g. WhatsApp, Google Chat, LinkedIn). It also doubles up as my task queue. WhatsApp. It’s my default phone + messaging app. A fair bit of my work communication happens here, too. Prime Video. I mainly watch The Mentalist. Totally love Patrick Jane! Google AI Studio. Mostly for transcription. It’s better than Gemini on UI, ability to handle uploads, file-formats, etc. It’s also free (though the data is used for training.) My Talks page: https://sanand0.github.io/talks/. I give 1-1.5 talks a week, mostly on AI/ML topics. I use Marp to render Markdown slides and publish it here. Google Chat. It’s Straive’s social channel. I can’t use it from my phone, so I log in only if I need to check if I missed something. LinkedIn. It’s where I post by default. I don’t use it for networking and only connect with people I’ve met and know well. YouTube. Mostly for movie clips over dinner. I occasionally watch educational content. LLM Foundry: https://llmfoundry.straive.com/. LLM Foundry is Straive’s internal gateway to multiple model APIs (I built it). I use it to experiment with models, grab API keys, and demo LLMs to clients. Squoosh. I compress every image, every time. Mostly into WebP (hands-down the best format today), typically lossless with an 8-color palette, or lossy at ~0-10% quality for photos. The list will change. But the reasons probably won’t: fast, simple, automatable, and practical (for me). ...

Add derived slides from a transcript

Add appendices to (Marp) slide decks from transcripts to improve quality and learning. Write content for these 4 slide appendices based on the transcript, in the same style as the slides: - Quiz. List ≤5 non-trivial quiz questions based on the content, each ≤25 words. - Errata. Search only and fact-check every bullet points and list any corrections. Cite sources. - Counterpoints. Research and append alternative views to bullets. Cite sources. - Feedback. List ≤5 ways the speaker could improve clarity, engagement, or informativeness. Format the new slides as follows: - Begin each section with an H2 heading (≤7 words). - Each section lists ≤5 bullet points, each ≤25 words. - Write bullets as complete sentences. - Highlight in **bold** the top 1-3 phrases that address the section heading directly, if applicable. <SLIDES> ... </SLIDES> <TRANSCRIPT> ... </TRANSCRIPT>

Things I Learned - 20 Apr 2025

This week, I learned: The devcontainers.json spec encapsulates everything you need to get a codebase running for development - as opposed to production. E.g. VS Code extensions, linters, etc. Practical use for GitPod are: Make quick edits to repos that are not on your system (e.g. other people’s repos, or via others’ machines.) Run public workshops with a full coding environment. Give students assignments that have dependencies pre-installed. Collaborate on a work-in-progress codebase with my team. Share POCs with clients or public allowing them to edit it. Allow teams to install remote AI code extensions (e.g. Windsurf) that may be blocked inside the corporate firewall? AI coding can teach us new tech. For example I learned that tqdm.pbar can print logs while showing progress. It’s worth noting such learnings until it becomes a habit. #ai-coding If English is the new coding language, should prompts be versioned? Or at least stored, perhaps in a PROMPTS.md? #ai-coding marimo new "prompt" generates an entire new notebook using your prompt. Video Google Sheets now has an =AI(prompt, [range]) function Help Codex is more a proof-of-concept for agentic coding than a coding tool. #ai-coding You can’t run commands. Only prompts. You need to exit codex to run commands. So you can’t use it like a shell, e.g. like Warp.dev. It doesn’t index local code. It runs commands to figure out stuff. Code diffs and applying changes are clunky. The output is hard to read with text scrolling. codex.md can only handle 32K. ⭐ O3 and O4 have built-in tool use covering all of OpenAI’s tools, including containers. This allows them to manipulate images and natively understand them improving vision capabilities dramatically. GPT 4.1 can handle videos Notes from discussion with Balaji T: Zero-day options are options that expire on the same day. They are priced low. It’s almost just a gamble or a lottery ticket. But since the price is low, retail investors can invest. NIFTY is one of the largest markets for zero day options, surprisingly. There are several college grads who trade writing Python scripts. CoreWeave has taken over all the compute from OpenAI. Though the stock price has fallen, buying CoreWeave is the closest equivalent to buying OpenAI pre-IPO. However, every OpenAI product lost money, despite their 75% discounted compute from Microsoft. (With CoreWeave, the cost would be higher.) So their profitability depends on wiping out competition long-term. For investment research companies (hedge funds, VCs, etc.) increasing the number of companies they research is an advantage. So using AI for research is key. However, the quality of LLMs is too poor for financial analysis accuracy. We need better LLMs for spreadsheet analysis. We suffer from the Gell-Mann’s amnesia effect with LLMs. “You read a newspaper article in your field and find it’s rubbish. You turn the paper and believe it’s perfectly accurate on the next page”. Domain expertise will therefore become even more valuable in the near future. People don’t like AI being forced down their throats. MAS is forcing AI down banks whose execs are forcing it down the org. Bankers and analysts are grumbling about this. I visited SUTD InspireCon 2025. Here were some exhibits that caught my eye. A path marking app that uses cameras to draw a heatmap of people’s walking paths. Popular tracks are redder. Using drones for machine inspection. Portable immigration devices that let you scan passports, face recognition, fingerprint, mic/speakers, etc. Using accelerometer to detect unsafe gait and improve walking habits. UImagine: a web app builder. Interestingly, they used Webcontainers to run Node in the browser! Training a drone to follow a person Credibility detection via micro facial expressions PitchMe: providing real-time feedback to pitches / presentations Zetesis: a platform for people to ask questions during a lecture or meeting (independent of Zoom, Meet, etc.) Tinyeqn: helps grade student assignments The dynamic between domain experts and coders has changed. Now, rather than domain experts pitching ideas to developers who build the apps, developers are creating interfaces that allow the domain experts to shape the app. Ref Since even the cheapest LLMs do a good job of converting unstructured text into a JSON schema, for all practical purposes, adding a full text search on top of any structured API is a trivial exercise. (Of course, it can’t handle complex questions but that’s what agents are for.) Ref ⭐ Marp supports bespoke transitions which includes morphing animations. This can create a bar chart race just using Markdown! Nick Lansley, who I know from my work with Tesco, wrote a great article that includes advice for aspiring consultants: Re-connect with ex-colleagues Leave on good terms with your employer Have a 6-12 month financial buffer Hire an accountant / legal advisor to set up your business Focus on what you enjoy Have a 30-second elevator pitch Build a brand with blogs, social media, or talks Create a portfolio to reinforce your skills DeepCoder is currently the best 14b coding model, i.e. best if you want to code while on a flight. Ref #ai-coding docker model run can run models. Currently, only on Docker Desktop on Mac Ref

Voice Chat to Slides: My New AI-Powered Workflow

Here’s my new workflow for creating slide decks: ChatGPT interviews me and creates Markdown slides. I use Marp to convert Markdown to slides. LLMs create supporting images. I deploy on GitHub Pages. … and here are 2 decks created this way. Visualizing LLM Hallucinations LLMs in Education Let’s look at how I built the second example, step by step. ChatGPT interviews me and creates Markdown slides While walking 75 minutes from home to IIT Madras to deliver this talk, I had ChatGPT interview me in standard voice mode. ...

Things I Learned - 16 Mar 2025

This week, I learned: Here is a training program on open source corporate policy. htmlq and pup query HTML. They’re like jq for HTML. Here are time-tested and robust ways to leverage serendipity: ChatGPT Place. Be in places with high, diverse, talent density. Bell Labs (1950s), MIT (1970s), Pixar (1990s). People. Meet diverse, talented people. Da Vinci’s Renaissance circles, Lockheed Martin’s Skunk Works. Free time for unstructured work. 3M’s 15% rule, Google’s 20% time, Edison’s Invention Factory. Curiosity. Learn unrelated fields. Darwin’s earthworm research, Ben Franklin’s ocean currents work. Serendipity. Systematically add randomness. Brian Eno’s Oblique Strategies, IDEO’s Deep Dives. Reframe failure as opportunities. Penicillin, Velcro, Post-it Notes. Ceremonies. Hackathons, lightning talks, coffee trials. What makes client-side computing on the browser powerful is There’s nothing to install Private by default: data stays with client Speed: no latency SemGrep is a lot less open source than it used to be. ChatGPT. That’s a pity. It was a good tool. Site builders and headless CMSs are gently eating into the dominant market share of open source CMSs (via PretaGov). WordPress is pretty much the dominant CMS in the world, followed by Drupal. WordPress is now VC backed and is not growing, so they seem to be attacking their own community. Umbraco CMS is the only open source CMS that’s growing. Maybe because it’s the only .NET one Craft CMS is the only proprietary CMS that’s growing. Site builders are growing as a category. SquareSpace is the leading one. Headless CMS is growing too. Statamic. Next.js. Nuxt.js, Contentful, Prismic, Storyblok, Gatsby, etc. Here’s a sample CI/CD pipeline with automated code review. Here is the script that generated it. Note the use of NVIDIA’s GPU Docker containers via nvcr.io Things I learnt about robotics. SO-ARM100 is an open-source 3D printable robot arm. Takes ~20 hours to print, ~1 hour to assemble. Costs ~$120. LeKiwi is a mobile version of this arm LeRobot is a set of HuggingFace models and datasets. The idea is, you can use one “control” robot to control the other. Do stuff manually, teach it ~50 times, and it learns how to do what you’re do. Pi0 is an LLM equivalent for robotics that predicts actions. HuggingFace ported that to LeRobot Most real robotics work is on SIMILATED “gym” environments, not costly/slow physical environments.PushT is a simple 2D version. ALOHA is a 3D one. ROS is a nightmare to install and run - on Windows and Mac. Robotics Academy is an open collection of easier ROS exercises. PSLab - Pocket Science Lab is a sensor kit for the phone / PC. Costs ~$100 but isn’t available anywhere. Getting it to work requires too much mucking around with USB drivers and it just doesn’t work. (BBC micro:bit may be more promising.) Getting stuff done with electronics is still really hard unless it’s well designed. It’s FASCINATING that robots can have arbitrary joints. Our intuitions (or even biomimicry) on how to move and do stuff is a POOR intuitive guide for how robots should act. MathML Core is a language and layout specification, distinct from MathML 2/3. It’s not fully compatible with JATS XML. latexmlmath converts TeX to MathML. m|math { font-family: "Noto Sans Math", "Noto Sans" } is a popular OpenType Math font. Browsers default to native fonts: e.g. Cambria Math on windows. Explore at https://fred-wang.github.io/MathFonts/. The people working on this at arXiv are: Deyan Ginev, Fred Wang, and Norbert Preining. Their work is sponsored by NSF. There’s a PDF UA2 standard for accessibility but there aren’t enough tools to generate it. LibreOffice is now on WASM. ZetaJS provides office in the browser. Has a CDN (that was down from our IP). 35M packaged binary. 100M of in-memory file-system loaded. Useful for: Document conversion, Thumbnail generation, Text extraction, Merging / splitting documents The Poincare Conjecture says that any finite 3D blob with has no holes can be deformed into a sphere. It took until 2003 to prove it because we didn’t have the tools to manipulate 3D shapes. Playbook driven agents are another approach to agentic workflows. Simon Willison Twine (docs) is an open source interactive fiction / story writing tool. Snowman is a browser-based Twine 2 story template format. These enable behavioural experimentation. Cheaper than using tools like Gorilla.sc and Pavlovia for behavioral experiments For example, you can present a social or political issue and see if people change their opinions more or less depending on the content/path they see. Or, if it varies by demographics. Or, check if repeated mentions or emotional hooks improve memory / retention. More research ideas Techniques to reduce Docker image sizes: Native Linux mount supports overlaying directories! Lower layer is read-only. Edits (including deletions) affect upper layer only. Docker uses this. docker image inspect shows layers. Always run RUN apt-get update && apt-get [packages] rather than in separate lines. Else RUN apt-get update gets cached with OLD update cache. Defer COPY till as late as possible, and COPY minimally - since it typically invalidates the cache. Skip development dependencies and temporary caches. Docker Dive via dive [IMAGE] analyzes image details and shows the file system in each layer. Use multi-stage builds. A: Create an image using FROM some-image AS builder and do what you want. Then, after that, B: FROM scratch (or FROM node:22-slim) use COPY --from=builder what-you-want. Use distroless images from GCR. It doesn’t have shells, package managers, etc. Fewer vulnerabilities. Playwright seems to be the emerging standard for modern browser testing/automation, beating Cypress and Selenium. “Openwashing” is a term where something is termed open source but is not. Photos from FOSSASIA are public. To publish images long-term GitHub is an option. Likely to last long-term. Clone-able. Archive.org is a good too but may suffer from bandwidth constraints. Imgur remains popular but it’s unclear if it will remain unrestricted. Flickr has had a flaky history with limits and commercialization. WikiMedia Commons deletes personal uploads by first-time contributors. Only files clearly useful for a large audience are retained. This table of LLM API data protection lists what use cases each provider’s terms of service allow from a security perspective. Unsloth might be one of the simplest ways of fine-tuning. For LLM UIs, Open Web UI seems most popular. Run via WEBUI_SECRET_KEY=... uvx --python 3.11 open-webui serve Text generation Web UI is less so. KoboldAI, LMQL, LM Studio, GPT4All, etc are far behind. GPT 4o Mini is probably a 8b parameter model. Ref “SRM"s are Small Reasoning Models - like Small Language Models. Phi-4 and DeepScaleR are SRMs. Gemma 3 is a multi-modal SLM. gemini-embedding-exp-03-07 leads the MTEB and is currently the top embedding model by a big margin. Apify is a cloud scraper platform. Here’s how they optimize their AI Web agent - Source: Remove redundant tags and attributes (e.g. accessibility, etc.). Explore readability. Add a unique gid to each element. Add the screenshot WITH a “Set of Marks” - “SoM” (read research paper) highlighting important clickable elements. Code output is brittle. Use tools / DSL - e.g. visit_url(url), click_element(text, gid, tagName), etc. GenAIScript increasingly looks like a promising way to automate LLM workflows in the browser. Ollama has a Windows download Marp is my new favorite way to generate slides from Markdown. Reveal.js is not easy with Markdown (though HTML works well.) The VS Code plugin makes development very easy Marp CLI makes deployment easy. I used it for my talk on LLM Hallucinations (source). Supports all bespoke features and plugins Transitions. Requires OS animation effects to be enabled Animated SVG backgrounds are a good add-on. A mental model to consider is: each chat conversation with an LLM is a person or a personality in itself. A day in the life of a model, where its personality evolves. Bots need structured content (e.g. Markdown, XML). Humans need rich content (e.g. HTML). Here are 4 ways to serve both, roughly in increasing order of sophistication: Different URLs. E.g. https://example.org/about/ vs https://example.org/about.md (this is how Jekyll or Hugo work). Use for static sites generators. JavaScript. Inject after Markdown: <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script><script>document.body.innerHTML = marked(document.body.textContent);</script>. Use for dynamically generated static sites. URL query parameters. E.g. ?format=markdown vs ?format=html vs ?format=json. Use in APIs. Content Negotiation. Based on the user agent and Accept header, serve Markdown or HTML. Send Vary: Accept to indicate that the response depends on the Accept header. Use for dynamic web apps. Notes from The Knowledge Project: Josh Wolfe: Human Advantage in the World of AI Agent optimization might become as popular as search engine optimization in the future. APIs are likely to be replaced by just chat requests that will do the same thing. APIs might be replaced by RPA, where somebody uses a chatbot to do the equivalence instead. Today, blue-collar workers may be more protected from AI than white-collar workers. Robots still can’t serve a meal well enough and aren’t progressing as fast as AI yet. There’s a lot of tacit knowledge in craftsmanship that will take a long time for machines to replace. Margins are fleeting. The only time you have large sustainable margins is when you truly have a monopoly. Cost is going down so quickly right now that all you have to do is wait, and stuff will become available for a very affordable or even a free price. The moat is really in the data. The models are not an advantage. Engineering and services on top of that are marginal. Machines will be doing science 24/7. All of the science data that we have will probably be the biggest leverage for humanity. The discovery of penicillin, Viagra, and rubber were all serendipitous. Machines should run with a little bit of randomness to benefit from this. Tesla might have gotten away with accounting fraud on warranty claims. But short sellers are likely to be after Elon Musk. With LLMs, the value of our social network has gone up considerably. Remember: The reason we believe things is not because we have thought through and analyzed them. It’s because the people around us believe in those things. It is now practical for a person to live on forever by sharing all their thoughts into an LLM. Kids can have a “Dad AI”. One good use of meeting recordings is to see where there are biases in the conversations and where the engagement is not high enough or how there are unproductive power balances. A great virtue of college is that it allows you to break free from your previous personality. For those four years, nobody knows who you are or cares what you wear. And you can be or grow into a very different person. The more content we put in into AI or social media, the harder it is to change ourselves. People are reporting that Roo Code is better than Windsurf. Roo Code is open source. Available as a VS Code extension and run-nable via git clone Roo Code supports Computer Use. It can read files, take screenshots from a built-in browser, controls it, and reads browser console logs. Opinions are mixed. A team member reported that it takes 10 LLM queries to do what Cursor does in 2. Another reported that it does in 1 query what Cursor does in 2. Notes from Thursday AI, 6 Mar 2025 Google’s AI overviews now use Gemini 2.0. They’ve introduced an AI mode that functions like a mini deep research tool, incorporating planning and search. (A Perplexity-killer). It’s a fine-tuned model that is extra cautious with topics like healthcare and always verifies information. QWQ from Quen competes with DeepSeq R1, but with only 32b parameters compared to R1’s several hundred billion. AI models are becoming less restrictive. Gemini and GPT-4.5 have relaxed some constraints, shifting more responsibility onto users, similar to Grok. What’s GPT-4.5 good for? It seems to excel in creativity, humor, education, emotional intelligence, and teaching. It follows instructions better and understands intent better. However, it’s not a major leap in coding or math. OpenAI’s Deep Research mode always uses O3, regardless of the model selected in the UI. Tencent has released a new video model available at https://aivideo.hunyuan.tencent.com/ and it appears to be quite good. Many clients now support Model Context Protocol (MCP), including Cursor, Claude Code, and Claude Desktop. The clients list is long. Some MCP uses include: Interact with GitHub using the GitHub API. Using Knowledge Graph memory to premember previous conversations Using the Cloudflare MCP server to perform Cloudflare actions. File retrieval and custom prompts – which MCP supports in addition to tools. Calling other MCPs or LLMs (conditionally) from an MCP, enabling the creation of full-fledged workflows. Composio offers a Hosted MCP service. CloudFlare lets you build remote MCP servers. Notagen is an open-source note generation engine that produces high-quality classical sheet music. Sesame has an open-source voice model worth exploring. DiffRhythm is a music generation model that appears to be quite good. 2 pass bounding box approach. Have an LLM generate bounding boxes. Then fix it. Ethan Mollick uv tool install and uv tool ensure-path are useful commands for installing and ensuring path for tools. Simon Willison