2026 17

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.

Deploying websites over dinner

Over dinner with Nishka, we were trying to deploy a website. The challenge was: How can we deploy this website, just on mobile, without getting up from the dinner table? STEP 1: Hosting. On my phone, I dictated to ChatGPT (whose transcription is excellent), copy-pasted that to Gemini (which is faster): I want to publish specifically a static HTML web page on my own domain. I want the easiest way that I can host it, preferably just by copy-pasting from my mobile without needing to muck around with Git and the likes of it. What are the most robust, reliable hosting providers that I could use? I can sort out the domain name myself as long as they support an option to map a custom domain name to them. Ideally, I am looking for something that is free, preferably free forever. ...

Derived formats with Gemini

The natural capability of Generative AI is to generate stuff - and Gemini’s particularly good with media. For example, we can take any document, like this MasterCard report on The State of Open Finance 2026, and generate videos, podcasts, sketchnotes, songs, and more from it. How? I uploaded the PDF to NotebookLM and created a 20-minute podcast by clicking on Generate Audio Overview - Deep Dive - English - Default. Listen to the English podcast It supports multiple languages, so I generated a Chinese and Filipino version as well. ...

Gemini Sketchnotes

I use this prompt to generate sketchnotes on Gemini: Draw this as a visually rich, intricately detailed, colorful, and funny, sketchnote. Below that, I paste (or attach) whatever content I want it to draw. I also turn on “Create Images” and switch the model to “Pro” (for better thinking.) Here are some examples of how to use it. Summarize articles. Pick email, report, news, or website. Here’s a sketchnote for this article: How to use AI for research. I used the prompt above and pasted the article text. ...

AI Experiments

A collection of little AI experiments that unlock ideas. VOICE Speak to ChatGPT in a language other than English VISION Upload your palm’s photo and ask for a palmistry reading Upload a screenshot of a contacts list and ask for a Google Contacts CSV import MUSIC On Gemini select “Create music” (Lyria). Then prompt: “Create a vote of thanks for the following people. [People]” “Create a 30s loopable introduction jingle for [Speaker] who’s speaking about [Topic]” IMAGE On Gemini select “Create image” (Nano Banana Pro) and prompt: “Draw this as a visually rich, intricately detailed, colorful, and funny, sketchnote. [Content]” AUTOMATIION On Google Workspace Studio, prompt: “Add an URGENT label to emails that need immediate action by me.” On Claude Code Desktop, prompt: “Send a test email to myself.” ANALYSIS On ChatGPT, prompt: “Research and compare the AI policies across universities as a table.” RESEARCH On Claude Code / Codex, prompt: “Write a data story analyzing movie lengths over time.” It will search, download, write code, analyze, and visualize.

Singing a Vote of Thanks

Lyria (Gemini’s new “Create Song” feature) is helping me in new ways. Earlier this week, it created a jingle for my talk. Yesterday I ran an AI Workshop for IAS officers. As part of that, I asked Gemini: Create a soulful vote of thanks (with patriotic Indian music playing in the background) naming each of these people. … and listed each person in the workshop. The song began… (Listen to the song) … with these lyrics: ...

Read Tamil on TV with Gemini

I’ve been reading books using AI. Today, I used Gemini while watching a TV show. (Not to watch TV - just while watching TV.) There’s this scene in Iru Dhuruvam Season 2 with a sheet of paper with Tamil text on it. The script was small and I couldn’t read it clearly. (I’m pretty slow at reading Tamil anyway.) So I took a screenshot (Linux is great that way - you can record screenshots from any video player) and asked Gemini: ...

Submitting an AI-ded VizChitra Proposal

10:20 am. After submitting my VizChitra 2026 talk proposal, did a quick analysis of the submissions. Copy the HTML from the submissions page and paste into Gemini. Ask it: “Given this HTML, share a JS snippet I can copy and paste into DevTools that will return an array of objects containing all the useful information about each submission.” Paste the JS snippet into DevTools and get the structured result. Here’s the breakdown of submissions (excluding exchibitions): ...

Finding old friends with Gemini

I was taking a bus past Mandaveli in Chennai, which reminded me of where I learnt mrdangam from Mr Melakaveri K Krishnamurthi between 1993-1996. So, after a few futile Google searches trying to find his whereabouts, I asked Gemini: Tell me everything that you know about and the current status of Melakaveri K Krishnamurthi, Mandaveli, a mridangam artiste. His son Balaji is a mridangam artiste too … and I learnt that: ...

TDS Comic Generation

I use comics to make my course more engaging. Each question has a comic strip that explains what question is trying to teach. For example, here’s the comic for the question that teaches students about prompt injection attacks: For each question, I use this prompt on Nano Banano Pro via Gemini 3 Pro: Create a simple black and white line drawing comic strips with minimal shading, with 1-2 panels, and clear speech bubbles with capitalized text, to explain why my online student quizzes teach a specific concept in a specific way. Use the likeness of the characters and style in the attached image from https://files.s-anand.net/images/gb-shuv-genie.avif. 1. GB: an enthusiastic socially oblivious geek chatterbox 2. Shuv: a cynic whose humor is at the expense of others 3. Genie: a naive, over-helpful AI that pops out of a lamp Their exaggerated facial expressions to convey their emotions effectively. --- Panel 1/2 (left): GB (excited): I taught Genie to follow orders. Shuv (deadpan): Genie, beat yourself to death. Panel 2/2 (right): Genie is a bloody mess, having beaten itself to death. GB (sheepish): Maybe obedient isn't always best... … along with this reference image for character consistency: ...

When to use which Gemini mode

I continue to be impressed by Gemini 3 and it’s become my default agent. It writes in simpler language than ChatGPT (almost as eloquent as Claude), has much larger limits, and, of course, is unbeaten at generating images. The Gemini app has 3 modes: Fast, Thinking, and Pro. Here’s when to use each: Simple task, e.g., grammar check, translate, summarize, or basic question? Use Fast. Pro overthinks. Multi-step logic, e.g., planning a trip with constraints, checking 15 emails, or identifying a subtle error in code? Use Thinking. Flash-based thinking beats Pro. Large input, e.g. 300-page PDF, 2 hours of video, etc.? Use Pro. It uses the 1M+ token window well. Complex problem, e.g. PhD-level science or a legal contract review, with high stakes? Use Pro. If you hit your Pro limit (which is pretty high!), just switch to Thinking, which is smart enough for most jobs anyway. ...

Using Gemini to create slides

On Friday, our data & analytics client-facing teams connected Gemini to their Drive and Email: Open Gemini Make sure you see a “Pro” icon on the top right. (Some already had access. Some enabled it by clicking stuff.) Go to Settings & help > Connected apps. Turn on “Google Workspace” and approve access. Select “Pro” as the model (instead of “Fast” or “Thinking”). Then they ran this a prompt like this: Go through my Google Drive and find out what are the recent sales proposals we’ve picthed or new clients we’ve won. ...

Google AI Tools List

Google has released a huge number of AI tools. Not all are useful, but some are quite powerful. Here’s a list of the tools ChatGPT could find. 🟢 = I find it good. 🟡 = Not too impressive. 🔴 = Avoid. Assistants, research, and knowledge work 🟢 Gemini is Google’s main AI assistant app. Use it as a meeting-prep copilot: paste the agenda + last email thread, ask for “3 likely objections + crisp rebuttals + 5 questions that sound like I did my homework.” 🟢 Gemini Deep Research is Gemini’s agentic research mode that browses many sources (optionally your Gmail/Drive/Chat) and produces multi-page reports. Use it to build a client brief with citations (market, competitors, risks), then reuse it for outreach or a deck outline. 🟢 Gemini Canvas turns ideas (and Deep Research reports) into shareable artifacts like web pages, quizzes, and simple apps. Use it to convert a research report into an interactive explainer page your team can share internally. 🟢 Gemini Agent is an experimental “do multi-step tasks for me” feature that can use connected apps (Gmail/Calendar/Drive/Keep/Tasks, plus Maps/YouTube). Use it to plan a week of customer check-ins: “find stalled deals, draft follow-ups, propose times, and create calendar holds-show me before sending.” 🟢 NotebookLM is a source-grounded research notebook: it answers from your uploaded sources and can generate Audio Overviews. Use it to turn a messy folder of PDFs into a decision memo + an “AI podcast” you can listen to while walking. 🟡 Pinpoint (Journalist Studio) helps explore huge collections of docs/audio/images with entity extraction and search. Use it for internal investigations / audit trails: upload contracts + emails, then trace every mention of a vendor and its linked people/locations. 🟢 Google AI Mode exposes experimental Search experiences (including AI Mode where available). Use it for rapid competitive scans: run the same query set weekly and track what changed in the AI-generated summaries vs links. Project Mariner is a Google Labs “agentic” prototype aimed at taking actions on your behalf in a supervised way. Use it to prototype a real workflow (e.g., “collect pricing from 20 vendor pages into a table”) before you invest in automating it properly. Workspace and “AI inside Google apps” 🟢 Google Workspace with Gemini brings Gemini into Gmail/Docs/Sheets/Drive, etc. Use it to turn a weekly leadership email into: (1) action items per owner, (2) a draft reply, and (3) a one-slide summary for your staff meeting. Google Vids is Workspace’s AI-assisted video creation tool. Use it to convert a project update doc into a 2-3 minute narrated update video for stakeholders who don’t read long emails. Gemini for Education packages Gemini for teaching/learning contexts. Use it to generate differentiated practice: same concept, three difficulty levels + a rubric + common misconceptions. Build: developer + agent platforms 🟢 Google AI Studio is the fast path to prototyping with Gemini models and tools. Use it to build a “contract red-flagger”: upload a contract, extract clauses into structured JSON, and generate a risk report you can paste into your workflow. Firebase Studio is a browser-based “full-stack AI workspace” with agents, unifying Project IDX into Firebase. Use it to ship a real internal tool (auth + UI + backend) without local setup, then deploy with Firebase/Cloud Run. 🟢 Jules is an autonomous coding agent that connects to your GitHub repo and works through larger tasks on its own. E.g. give it “upgrade dependencies, fix the failing tests, and open a PR with a clear changelog,” then review it like a teammate’s PR instead of doing the grind yourself. Jules Tools (CLI) is a command-line interface for running and monitoring Jules from your terminal or CI. E.g. pipe a TODO list into “one task per session,” auto-run nightly maintenance (lint/format/test fixes), and have it open PRs you can batch-review in the morning Jules API lets you programmatically trigger Jules from other systems. E.g. when a build fails, your pipeline can call the API with logs + stack trace, have Jules propose a fix + tests, and post a PR link back into Slack/Linear for human approval Project IDX > Firebase Studio is the transition site if you used IDX. Use it to keep your existing workspaces but move to the newer Studio flows (agents + Gemini assistance). Genkit is an open-source framework for building AI-powered apps (workflows, tool use, structured output) across providers. Use it to productionize an agentic workflow (RAG + tools + eval) with a local debugging UI before deployment. Stax is Google’s evaluation platform for LLM apps (prompts, models, and end-to-end behaviors), built to replace “vibe testing” with repeatable scoring. E.g. codify your product’s rubric (tone, factuality, refusal correctness, latency), run it against every prompt/model change, and block releases when key metrics regress SynthID is DeepMind’s watermarking approach for identifying AI-generated/altered content. E.g. in an org that publishes lots of content, watermark what your tools generate and use detection as part of provenance checks before external release SynthID Text is the developer-facing tooling/docs for watermarking and detecting LLM-generated text. E.g. watermark outbound “AI-assisted” customer emails and automatically route them for review if they’re about regulated topics Responsible Generative AI Toolkit is Google’s “safeguards” hub: watermarking, safety classifiers, and guidance to reduce abuse and failure modes. E.g. wrap your app with layered defenses (input filtering + output moderation + policy tests) so one jailbreak prompt doesn’t become a security incident Vertex AI Agent Builder is Google Cloud’s platform to build, deploy, and govern enterprise agents grounded in enterprise data. Use it to build a customer-support agent that can read policy docs, query BigQuery, and write safe responses with guardrails. Gemini Code Assist is Gemini in your IDE (and beyond) with chat, completions, and agentic help. Use it for large refactors: ask it to migrate a module, generate tests, and propose PR-ready diffs with explanations. PAIR Tools is Google’s hub of practical tools for understanding/debugging ML behavior (especially interpretability and fairness). E.g. before launch, run “slice analysis + counterfactual edits + feature sensitivity” to find where the model breaks on real user subgroups LIT (Learning Interpretability Tool) is an interactive UI for probing models on text/image/tabular data. E.g. debug prompt brittleness by comparing outputs across controlled perturbations (tense, style, sensitive attributes) and visualizing salience/attribution to see what the model is actually using What-If Tool is a minimal-coding tool to probe model predictions and fairness. E.g. manually edit a single example into multiple “what-if” counterfactuals and see which feature flips the decision, then turn that into a targeted data collection plan Facets helps you explore and visualize datasets to catch skew, outliers, and leakage early. E.g. audit a training set for missingness and subgroup imbalance, then fix data before you waste time “tuning your way out” of a data problem 🟡 Gemini CLI brings Gemini into the terminal with file ops, shell commands, and search grounding. Use it as a repo-native “ops copilot”: “scan logs, find the regression, propose the patch, run tests, and summarize.” 🟡 Antigravity (DeepMind) is positioned as an agentic development environment. Use it when you want multiple agents running tasks in parallel (debugging, refactoring, writing tests) while you supervise. Gemini for Google Cloud is Gemini embedded across many Google Cloud products. Use it for cloud incident triage: summarize logs, hypothesize root cause, and generate the Terraform/IaC fix. Create: media, design, marketing, and “labs” tools Google Labs is the hub for many experiments (Mixboard, Opal, CC, Learn Your Way, Doppl, etc.). Use it as your “what’s new” page-many tools show up here before they become mainstream. 🟡 Opal builds, edits, and shares AI mini-apps from natural language (with a workflow editor). Use it to create a repeatable analyst tool (e.g., “take a company name > pull recent news > summarize risks > draft outreach”). 🟡 Mixboard is an AI concepting canvas/board for exploring and refining ideas. Use it to run a structured ideation sprint: generate 20 variants, cluster them, then turn the top 3 into crisp one-pagers. Pomelli is a Labs marketing/brand tool that can infer brand identity and generate on-brand campaign assets. Use it to produce a month of consistent social posts from your website + a few product photos. 🟡 Stitch turns prompts/sketches into UI designs and code. Use it to go from a rough wireframe to React/Tailwind starter code you can hand to an engineer the same day. 🟡 Flow is a Labs tool aimed at AI video/story production workflows (built around Google’s gen-media stack). Use it to create a pitch sizzle reel quickly: consistent characters + scenes + a simple timeline. Whisk is a Labs image tool focused on controllable remixing (subject/scene/style style workflows). Use it for fast, art-directable moodboards when text prompting is too loose. ImageFX is Google Labs’ image-generation playground. Use it to iterate brand-safe visual directions quickly (e.g., generate 30 “hero image” variants, pick 3, then refine). VideoFX is the Labs surface for generative video (Veo-powered). Use it to prototype short looping video backgrounds for product pages or events. MusicFX is the Labs music generation tool. Use it to generate royalty-free stems (intro/outro/ambient) for podcasts or product videos. Doppl is a Labs try-on style experiment/app. Use it to sanity-check creative wardrobe ideas before you buy, or to mock up “virtual merch” looks for a campaign. 🟢 Gemini Storybook creates illustrated stories. Use it to generate custom reading material for a specific learner’s interests (and adjust reading level/style). TextFX is a Labs-style writing creativity tool (wordplay, transformations, constraints). Use it to generate 10 distinct “hooks” for the same idea before you write the real piece. GenType is a Labs experiment for AI-generated alphabets/type. Use it to create a distinctive event identity (custom letterforms) without hiring a type designer for a one-off. Science, security, and “serious AI” AlphaFold Server provides AlphaFold structure prediction as a web service. Use it to test protein/ligand interaction hypotheses before spending lab time or compute on deeper simulations. Google Threat Intelligence uses Gemini to help analyze threats and triage signals. Use it to turn a noisy alert stream into a prioritized, explainable threat narrative your SOC can act on. Models 🟡 Gemma is DeepMind’s family of lightweight open models built from the same tech lineage as Gemini. E.g. run a small, controlled model inside your VPC for narrow tasks (classification, extraction, safety filtering) when sending data to hosted LLMs is undesirable 🟡 Model Garden is Vertex AI’s catalog to discover, test, customize, and deploy models from Google and partners. E.g. shortlist 3 candidate models, run the same eval set, then deploy the winner behind one standardized platform with enterprise controls Vertex AI Studio is the Google Cloud console surface for prototyping and testing genAI (prompts, model customization) in a governed environment. E.g. keep “prompt versions + test sets + pass/fail criteria” together so experiments become auditable artifacts, not scattered chats Model Explorer helps you visually inspect model graphs so you can debug conversion/quantization and performance issues. E.g. compare two quantization strategies and pinpoint exactly which ops caused a latency spike or accuracy drop before you deploy Google AI Edge is the umbrella for building on-device AI (mobile/web) with ready-to-use APIs across vision, audio, text, and genAI. E.g. ship an offline, privacy-preserving feature (document classification or on-device summarization) so latency and data exposure don’t depend on the network Google AI Edge Portal benchmarks LiteRT models across many real devices so you don’t guess performance from one phone. E.g. test the same model on a spread of target devices and pick the smallest model/config that consistently hits your FPS/latency target TensorFlow Playground is an interactive sandbox for understanding neural networks. E.g. use it to teach or debug intuitions—show how regularization, feature interactions, or class imbalance changes decision boundaries in minutes Teachable Machine lets anyone train simple image/sound/pose models in the browser and export them. E.g. prototype an accessibility feature (custom gesture or sound trigger) fast, then export the model to a small web demo your stakeholders can try Directories (“where to discover the rest”) Google DeepMind Products & Models (Gemini, Veo, Astra, Genie, etc.)-best “canonical list” of what exists. Google Labs Experiments directory-browse by category (develop/create/learn) to catch smaller experiments you didn’t know to search for. Experiments with Google is a gallery of interactive demos (many AI) that’s great for prompt/data literacy and workshop “aha” moments. E.g. curate 5 experiments as a hands-on “AI intuition lab” for your team so they learn failure modes by playing, not by reading docs

Gemini copies images almost perfectly

Summary: Nano Banana Pro is much better than recent models at copying images without errors. That lets us do a few useful things, like: Pre-process images for OCR, improving text recognition by cleaning up artifacts while preserving text shapes exactly. Convert textbook raster diagrams into clean vector-like images that vectorizers can process easily. Create in-betweens for cartoon animations Copy torn, stained 1950s survey maps into pristine, high-contrast replicas with boundary lines preserved pixel-perfectly. Redraw sewage map blueprints or refinery blueprints into clean schematics, separating the “pipes” from the “background noise”. … and more! GPT Image 1.5 has a good reputation for drawing exactly what you tell it to. ...

Gemini Scraper

Gemini lets you copy individual responses as Markdown, but not an entire conversation. That’s useful if you want to save the chat for later, pass it to another LLM, or publish it. So I built a bookmarklet that scrapes the entire conversation as Markdown and copies it to the clipboard. SETUP: Drag the bookmarklet to your bookmarks bar. USAGE: On a Gemini chat page, click the bookmarklet. It copies the chat as Markdown. ...

No response required

I asked Gemini 3 Pro to: Suggest short words that mean innovation, exploration, research, etc. Spark: A small but significant beginning. Lab: Short for laboratory; implies experimentation. … (long and pretty good list) I went with "Labs". Thanks. No response required. THINKING… Assessing User Response I’ve carefully considered the user’s latest input, recognizing their selection of “Labs” and their appreciative, but brief, response. I’m focusing on parsing the meaning of “No response required” to determine if further interaction is needed. The information should help me to understand future similar responses. ...

Scrabble image generation

AI image generation still has a long way to go. Here are two images generated by Gemini and ChatGPT from the same prompt: “Create a funny scrabble board of dysfunctional family relationships!” Gemini It’s probably showing off, with coffee stains, and spelling “DYSFUNCTIONAL” right. But “ABLOMY”? “PASSIAVE”? “RGUCT_SVA”? “SORDSP”? Most of the vertical letters are wrong. Some horizontals (“DTENSION”?) are off, too. Also: “Z” has 2 points? “C” has “C” points? “DOUBLE STTER SCORE”? “UUT SCORE SCORE” instead of “TRIPLE WORD SCORE”? ...

2025 11

Gemini can pass the bar exam and solve maths olympiad puzzles. But it’s music-deaf. nitin kumar asked Gemini to rate 40 songs on joy, sadness, tension, nostalgia, etc. and compared it with human ratings. There was ZERO correlation between the two. It’s like it’s a different species. In fact, if you just predict the average emotion for every single song, you’d still do 1.2× to 2× better than Gemini! It wasn’t adding noise to a signal. It was subtracting subtracting signal from noise! In fact, for one song, the correlation was -88%, i.e. it predicted the exact opposite emotions. ...

I used to be a data visualization expert. I’m not sure I still am. When Anthropic published an article about how AI is transforming their engineers’ work, I ran this prompt: Suggest how the following engineer productivity patterns can be illustrated using interactive animated charts, graphs, or infographics. Be diverse. Xenographics are welcome. Novel animation* / *interaction styles, artistry, xenographics, and diverse chart types are encouraged. Be intuitive. A single glance should tell them exactly what insight we are trying to convey. ...

Things I Learned - 21 Dec 2025

This week, I learned: uvx --python 3.10 --with torchcodec demucs --two-stems=vocals -n htdemucs "song.mp3" separates vocals from music. iTunes offers a 30 second preview for almost any song. If you’re looking for 30s song clips to analyze, this is a good bet. For example: curl -s "https://itunes.apple.com/search?entity=song&limit=1&term=why+this+kolaveri" | jq -r '.results[0].previewUrl' To generate a spectrogram from an audio file, use ffmpeg -i song.mp3 -lavfi showspectrum=color=magma:slide=1 spectrogram.mp4. To generate a waveform, use ffmpeg -i song.mp3 -filter_complex "[0:a]showwaves=s=1280x240:mode=cline:colors=white[v]" -map "[v]" -map 0:a -c:v libx264 -crf 30 -pix_fmt yuv420p waveform.mp4. I updated the TTS (text-to-speech) costs across Gemini and OpenAI at https://github.com/sanand0/openai-tts-cost. My current favorite (value for money) is Gemini 2.5 Flash Preview TTS. Good emotions, low price, and a single request can deliver a multi-voice podcast. Speed: ~25 seconds per minute of audio generated. Self-driving car mishaps. The exceptions that prove the rule (that autonomous vehicles are safer than human drivers). # Waymo & The Gun Shootout: A driverless Waymo taxi in Los Angeles drove straight through an active police standoff, passing mere feet from a suspect being held at gunpoint while officers shouted at the car to stop. Source Tesla & The Horse Carriage: It was a horse-drawn carriage in Switzerland. The Tesla’s computer became “bamboozled,” rapidly misidentifying the cart as a truck, then a car, then a pedestrian, because it had likely never been trained on animal-drawn vehicles. Source The “Wet Cement” Trap: A Cruise robotaxi in San Francisco drove directly into a patch of freshly poured wet concrete at a construction site and got hopelessly stuck, requiring workers to pull it out. Source The Moon is a Traffic Light: A Tesla driver discovered that his car kept slamming on the brakes on the highway because the autopilot camera was confusing the bright yellow moon for a yellow traffic light. Source The 4 AM Honking Ritual: Residents in a San Francisco neighborhood were kept awake for weeks because a fleet of Waymo taxis gathered in a parking lot every night and started honking at each other while trying to park. Source Stopping for Whoppers: Tesla owners reported their cars were reading “Burger King” signs on the side of the road as “Stop” signs and abruptly braking, a glitch the fast-food chain quickly turned into a marketing campaign. Source The Robotaxi “Mating Ritual”: A group of about 20 Cruise robotaxis lost connection to their servers simultaneously and simply stopped in the middle of a busy San Francisco street, creating a massive traffic jam that humans had to manually clear. Source Trapped by Cones: A Waymo taxi in Arizona was defeated by a set of construction cones, fleeing from them into oncoming traffic lanes and eventually getting stuck, forcing the passenger to flee the “confused” vehicle. Source Defeated by a T-Shirt: A distinct vulnerability was found where self-driving cars could be tricked into slamming on the brakes simply by a pedestrian wearing a T-shirt with a “Stop” sign printed on it. Source Roblox is the #1 game. Sadly, there’s no official Linux support. CloudFlare 2025 Report ⭐ Ty, Astral’s type checker, is fantastic! It shows the type of every variable inline. A great incentive to explicitly type stuff in Python. Lots more to explore. I switched from Pylance to the ty VS Code extension. npx -y npm-check-updates tells you the latest versions of your package.json dependencies, including major version updates. How to think differently. # # Introspect: List assumptions & taboos. Write a falsifier. Beginner’s mindset Mental models: First principles, inversion, base rates, lateral thinking, multiple options, “what would have to be true”, … Empathy: Debate FOR opposition. Swap roles (competitor, auditor, 12-year old, future-you, …) Environment: Different context (place, media, people…). New constraints (time, budget, time horizon, …) I’m surprised that Edge’s Read Aloud sounds more natural than EleventReader. Read Aloud is one of the main reasons I’m using Edge, but I hadn’t realized it was that good. Why We Think has interesting insights on scaling from feedback: # Summary: Give models a feedback environment unbiased by their reasoning. There are basically two approaches: parallel and sequential. Parallel is simpler. Generate a bunch of different solutions and pick the best one. Like having multiple people solve the same problem independently, then going with whoever got the right answer. Sequential is trickier. You generate a solution, then ask the model to critique it and try again. This sounds good in theory but is surprisingly hard to get right. The problem is models aren’t naturally good at self-correction. Left to their own devices, they’ll often make things worse. They’ll change correct answers to incorrect ones. Or they’ll just superficially reword their first answer without fixing anything. To make self-correction work, you need external feedback. A unit test that fails. A ground truth to compare against. Something outside the model’s own judgment. When you get it right though, sequential revision can be powerful. You’re not just sampling from the model’s distribution anymore. You’re searching through it, iterating toward better answers. But there’s a trap. If you start optimizing directly on the reasoning traces—rewarding “good reasoning” as a goal in itself—the model learns to game it. It’ll hide its real thought process and show you what you want to see. This is why the DeepSeek team gave up on process reward models. They tried rewarding intermediate reasoning steps, but it led to reward hacking. The model would generate reasoning that looked good to the reward model while doing something completely different. A Pragmatic View of AI Personhood was rewritten in Tim Urban’s style, para-by-para, by ChatGPT: AI having feelings is irrelevant. Does a design increase conflict, manipulation, or suffering among humans? If so, regulate that - limit certain kinds of anthropomorphic design, tie “rights” for AIs to strict anti-manipulation constraints, etc. AI can act after owners vanish. Pragmatically, you sometimes need to bite the bullet and say: “Okay, this thing itself is going to be treated as a legal person in these specific ways, so we can actually regulate and sanction it.” Corporations are “slow AIs” already — optimizing for growth without ethics. Slaves had a fund. If the slave caused harm, the owner’s liability could be capped at that fund. Modern equivalent for AI: Agents must maintain locked capital or insurance. Victims are compensated from that pool. If the pool runs out; they lose their license to operate. This gives sanctions teeth: the AI (or its backers) actually have something to lose. Require AIs to register before they can do economically important things. No title > no access to key platforms, payment rails, or official functions. Expanding personhood to non-humans sounds nice - more compassion, more care, more inclusion. But authenticity becomes a new asset. Humans and AIs will both want authenticity tokens. Poor will sell biometric credentials to rich, creating an authenticity social class. Your dignity as a person gets replaced by your usefulness as a key. Make it illegal and practically very hard to sell / rent out your humanity. “When people now talk about error, they tend to think of bias as an explanation. One of the major limitations on human performance is not bias, it is just noise. In fact, most of the errors that people make are better viewed as random noise, and there is an awful lot of it. Even when the algorithm does not do very well, humans do so poorly and are so noisy that, just by removing the noise, you can do better than people. We are narrow thinkers, we are noisy thinkers, and it is very easy to improve upon us. I do not think that there is very much that we can do that computer will not eventually be programmed to do.” Kahnemann Notes from One Year With ChatGPT Pro as a First Hire Each day I start a new Pro chat that will run for that entire day. I treat it as a colleague. I speak or type in whatever I am thinking about, including business problems, creative questions, experiments that worked or failed and feelings about particular decisions. I wear noise canceling earbuds and often run piano technique while the model is thinking. I listen to its response using the native “Read Aloud” feature, again while practicing, and stop to make notes in a physical notebook to collect inspiration. At the end of the day I ask that Pro model to summarize everything from that chat along with the notes I give it from my notebook, and that summary becomes our first prompt of the next day. Standard Voice Mode (SVM) can do things that Advanced Voice Mode (AVM) cannot and vice versa.SVM feels like it wants to talk forever, while AVM feels like it wants to get off the phone. Projects became the container for my daily Pro chats. I pull chats, notes and other files into project folders so I can reference them as static context. My scheduled tasks collection today consists of weekly lessons in math, ML and DL, design, market analysis and regular assessments of the UI and UX and copy on my company’s website. I let memory accumulate, then once a week I pruned it manually, removing entries that were no longer useful so that new memories could form. Connecting the ChatGPT macOS app to my terminal, using the Working with Apps feature, lets the Pro models essentially collaborate with Codex. Practicing collaborative context between these high end models fractals outward into a myriad of productive paths. I highly recommend exploring with 5.1 Pro connected to 5.1-Codex-Max (Very High) in a terminal. Tell Codex-5.1 that you have a buddy working with you today that can offer suggestions and review the work it does as we go. Then tell 5.1 Pro that you have a buddy that is working with you today and can apply any of the code changes we decide on. This is another form of “context priming” where I “set the scene” before jumping in. Coding agents only need a bash tool. The rest is buildable. The only addition might be a fuzzy search / replace tool. What I learned building an opinionated and minimal coding agent Sources of model data: https://models.dev/, https://openrouter.ai/, llm-pricing

When my father mentioned that Virat Kohli scored a century (again) against South Africa, I wondered how he compared to the likes of Tendulkar and Gavaskar. I asked ChatGPT: If you had to evaluate the quality of Indian batsmen over time, what single metric (possibly composite) would you use? Evaluate the top Indian batsmen in history on this metric. Plot them over their active years (X-axis) along with the metric (Y-axis), labelled with the player names, on a beautiful visualization. ...

Things I Learned - 19 Oct 2025

This week, I learned: ⭐ “… most engineers don’t have public commits. Senior engineers at large tech companies don’t work on open-source projects for the most part.” Why AI Can’t Do Hiring Cloudflare’s Sandbox feature in their Workers looks impressive. It supports streaming, web access to the container, and long-running processes. So we can spawn off a task and have it run a server (at least for a while) or a scraper. Gemini API has a Google Maps tool that it can refer to - like Google Search. Maps Grounding Earlier we needed humans to label data for RLHF. Now we don’t since AI can simulate it. This is a pattern. Once AI learns from a human, that human skill can be automated. How GPT-5 Thinks — OpenAI VP of Research Jerry Tworek The <output> element has a for= attribute indicating which <input> elements it is linked to and a form= attribute indicating which form it belongs to. This works well with screen readers. A good reason to use it more. Examples. Meta built a Code World Model. Basically an LLM that acts like a Python interpreter! sudo apt install moreutils installs a set of useful packages: chronic. Runs a command quietly (suppressing output) unless it fails — good for cron jobs where you only want noise on errors. chronic backup.sh combine. Combines lines from two input streams/files using boolean operations (AND, OR, XOR). combine AND fileA fileB errno. Look up symbolic names, numeric codes, and descriptions for standard errno values. errno -l; errno ENOENT; errno 2 ifdata. Query network interface properties (IP, byte counts, errors) in a script-friendly format. ifdata -sip eth0; ifdata -bops eth0 ifne. Run a command only if stdin is not empty, passing the input through. find . -name core | ifne mail -s "Core files found" admin isutf8. Check whether a file or stdin is valid UTF-8. isutf8 somefile.txt lckdo. Run a command while holding an exclusive lock to prevent concurrent runs. lckdo /var/run/mylockfile.cmd myscript.sh mispipe. Pipe two commands, but return the exit status of the first one (useful in pipelines). cmd1 mispipe cmd2 parallel. Run multiple commands in parallel, reading them from stdin or arguments. parallel < jobs.txt pee. Like tee, but sends stdin to multiple commands in parallel. echo "foo" | pee cmd1 cmd2 ⭐ sponge. Soak up all input before writing to output — enables in-place edits safely. sort file | sponge file ⭐ ts. Prefix each input line with a timestamp. tail -f logfile | ts vidir. Edit a directory listing in your editor to rename, move, or delete files in bulk. vidir ~/myfolder vipe. Insert a text editor into a pipeline to manually edit streamed input before output. cat file | vipe | wc -l zrun. Transparently decompress compressed files before passing them to a command. zrun cat file.gz Despite 20 years of SVG experience, I learnt new things from A Friendly Introduction to SVG and A Friendly Introduction to Paths Setting a <rect> width/height or a <circle> radius to zero removes the element instead of drawing a point. There’s no option to draw the stroke on the inside or outside of a shape/path. Only the center. You can override a path’s pathLength attribute to create a new internal scale for its length. It’s unclear where I can use this. <path> arcs have this syntax: A [rx],[ry] [rotation] [large-arc-flag] [sweep-flag] [end-x],[end-y]. SVG first fits an ellipse to these parameters and then draws the arc. If rx and ry of an arc is too small to connect the points, the SVG spec scales up rx and ry. [large-arc-flag]=1 literally uses the larger arc of the fitting ellipse. This is less common. [sweep-flag]=1 its the ellipse to make the connecting arc go clockwise. 0 is anti-clockwise. [rotation] is rarely used because we usually draw arcs and then rotate them. stroke-linejoin automatically flips from miter (sharp) to bevel (cut) if the sharp edge protrudes too long (e.g. small angles). Increasing stroke-miterlimit increases the cutoff (default: 4) ⭐ Always include a thoughtful gallery of examples with tools / libraries. This does more than showing what a tool can do. It’s use-case / domain transfer: showing what it’s useful for in real life - opening ideas, suggesting workflows. It’s style transfer: showing how to use it. ⭐ Here’s what expert AI coders increasingly focus on. Thomas Dohmke Delegation: context engineering agents for success; parallelizing. Verification: efficiently reviewing and testing code/output; setting stop-points. Expanding scope: instead of time saved as the metric. Education: teaching AI-based coding, debugging, reviewing/testing. Product management: combining requirements + UI design + architecture + engineering + deployment. Cross-discipline: blending code with design, governance, finance, marketing, … (“computational creators”). Notes from Taylor’s How I’m using coding agents: October 2025 Left monitor: 2-4 desktops (e.g. work, side-project). Right monitor: things I always want available Plan next task while first executes. Use plan mode to write to a plan file. Don’t start big tasks if you have meetings scheduled soon. Recent open source package hack methods seem to work more because of people/process than systems (Filippo): Phishing the author Pull requests running unsafe code in CI Taking over expired domain / user ID Stealing long-lived tokens uv run --python 3.14 --isolated --with-editable '.[test]' pytest runs pytest on a local project with a specific Python version. Simon Willison Notes from the State of AI Report 2025: Reasoning models are more fragile. Irrelevant phrases make reasoning models spend FAR more tokens and get wrong answers #21 AI systems are able to teach experts new concepts #41 An environment providing feedback / rewards enables continuous learning #52 E.g. Multi-robot chemical labs at U.Liverpool and NCSU #60 RLHF has a fundamental flaw: humans reward sycophancy #71 We can read what people are typing from brain signals outside the skull #73 Model intelligence-to-price ratio doubles every ~6 months #94 The AI companies’ valuations are also roughly doubling every ~6 months #181 OpenAI is offering Governments giga-watt campuses to run OpenAI models for citizens #122 A 1GW clusters costs $50bn capex and $11bn per annum #130 China has added ~10X the energy capacity as the US in 2024 #146 NVIDIA challengers are still far away #161 LLMs can “read between the lines” even if training data is censored #268 LLMs can pass information via hidden signals #270 Prediction: A major retailer reports >5% of online sales from agentic checkout. AI agent advertising spend hits $5B. #304 OpenAI’s leadership guide says: Align Explain WHY AI thoughtfully. Set a goal, e.g. everyone uses ChatGPT 20 times/day (Moderna). Use it yourself. Show how. Have business leaders run AI sessions Activate Launch an AI skills proram Set up an AI champions network Encourage experimentation (dedicated time, workshops, hackathons, …) Link to performance evaluations Amplify Create an AI knowledge base Share success stories (weekly) Create internal groups (Teams, Slack, …) Celebrate AI wins Accelerate Unblock AI tools and data access Simplify project selection. Quick feedback, clear priorities Unblock projects with a cross-functional council Give resources to successful teams Govern Publish a responsible AI playbook (what’s safe to try) Audit AI practices quarterly

Tamil AI

I was testing LLMs’ sense of Tamil humor with this quote: Extend this post with more funny Tamil words that end with .ai - mentioning why they’re funny. Chenn.ai is the artificial intelligence capital of India. Kadal.ai Kad.ai Dos.ai Vad.ai Ad.ai Thal.ai Mallig.ai Aratt.ai And finally Podad.ai All spoken in namma bash.ai 😅 The Chinese models didn’t fare well. DeepSeek made up words. Mood.ai - An AI that perfectly captures your mood. Sokk.ai - The AI for when you’re bored. Thanni.ai - A hydration assistant. Qwen too. ...

Voice coding is the new live coding

In Feb 2025 at PyConf Hyderabad, I tried a new slide format: command-line slideshows in bash. I’ve used this format in more talks since then: LLMs in the CLI, PyCon Singapore, Jun 2025 Agents in the CLI, Singapore Python User Group, Jul 2025 DuckDB is the new Pandas, PyCon India, Sep 2025 It’s my favorite format. I can demo code without breaking the presentation flow. It also draws interest. My setup was the top question in my PyCon talk. ...

With the Gemini 2.5 Flash release, Google envelopes the entire cost-quality frontier of LLMs. In other words, at any cost or quality level, today, the best model to use according to the LM Arena score is a Gemini model. Results for O3, O4 Mini, and GPT 4.1 are not yet on LM Arena. But until then, #Google dominates. Nice work! Link: https://sanand0.github.io/llmpricing/ LinkedIn

How to Organize Browser Workspaces with LLMs and Data

Here’s an example of how I am using LLMs to solve a day-to-day workflow problem. Every day, I interact with a barrage of websites: emails, news, social media, and work tools across multiple devices. Microsoft Edge’s workspaces syncs groups of websites across devices. I’ve never tried it, started today, and wondered: how should I organize my workspaces? Rather than think (thinking is outdated), I used LLMs. ...

AI Imagined Languages Unlock New Thoughts

I prompted Gemini 2.5 Pro Experimental 03-25 to “Invent a new, alien language. Use it to discover unusual insights. Here’s the output in full. Thinking Here’s a thinking process that could lead to the alien language “Glimmering” and its insights: Understand the Core Request: The user wants a new, alien language and wants to use it to discover unusual insights. This means the language needs to be fundamentally different from human languages, and its structure/concepts should enable thinking in ways that are difficult or non-intuitive in English (or other human languages). Brainstorm Alien Concepts: What makes something “alien”? Biology: Different senses (echolocation, electroreception, sensing magnetic fields, different light spectrum perception), different lifecycles (metamorphosis, symbiosis, collective consciousness), different physical forms (non-corporeal, energy-based, silicon-based, plant-like) Environment: Extreme conditions (gas giant atmosphere, deep ocean trench, vacuum of space, high radiation), different physics (maybe?), non-linear time perception. Psychology/Society: Collective vs. individualistic focus, different emotional spectrum, logic-based vs. empathy-based, non-hierarchical structures, different concepts of self, time, causality. Choose a Core Concept for the Language: Let’s pick something that inherently forces a different perspective. Idea 1: Focus on relationships/connections. Instead of nouns for objects, words describe the relationship between things. “Tree” might be “earth-sky connector” or “shade-giver.” Idea 2: Focus on states of change/flux. Everything is described by its process, not its static state. “River” is “downward-flowing-water-process.” Idea 3: Focus on sensory perception, but a Maybe based on resonance, vibration, or emotional energy. Idea 4: Focus on potentiality and probability. Words describe not what is, but what could be or the likelihood of something. Let’s go with Idea 3, leaning towards resonance and interconnectedness, maybe linked to light or energy. This feels suitably “alien” and potentially insightful. Let’s call the species the “Lumin.” Develop Language Principles based on the Core Concept (Resonance/Light/Interconnectedness): No Static Nouns: Objects aren’t fixed things but patterns of energy or resonance. Words describe the pattern or the interaction. Verbs are Primary: Action, interaction, and change are fundamental. Static description is secondary. Emphasis on Relationality: How things resonate with each other is crucial. Prepositions or affixes will be vital for showing connection/influence. Nuance through Intensity/Quality: Instead of just “red,” maybe “vibrant-red-resonance” vs. “fading-red-resonance.” Adjectives become qualities of the resonance/action. Concept of “Self”: Maybe less individualistic. “Self” is a locus of interacting resonances, not a discrete entity.Time: Perhaps less linear, more about overlapping patterns or echoes of resonance. Create Basic Lexicon and Grammar Sketch: Core concept words: Glim (verb root): To resonate, to shine, to exist as a pattern of energy. Sha (particle/prefix): Connection, interaction, resonance with. Vor (particle/suffix): Intensity, vibrancy, strength of pattern. Zil (particle/suffix): Fading, weakening, diminishing pattern. Kai (concept): A stable, recognizable pattern (closest to a noun, but dynamic). Ree (concept): Flow, change, movement of energy/resonance. Nuum (concept): The interconnected field/medium through which resonance travels (the “ether” or “fabric of reality”). Grammar Ideas: Sentence structure: Often Verb-like concept first, then modifiers showing relationships and qualities. Glim-sha-Kai-Vor (Strong pattern resonates with…). No strict tense: Use particles to indicate persistence (-vor), fading (-zil), or initiation (Ree- prefix?). Pronouns: Maybe based on resonance signature? Me could be Kai-An (This-pattern), You could be Kai-Sha (Interacting-pattern). Collective We could be Sha-Glim-Vor (Strong-interacting-resonance). Name the Language: Based on the core concepts: “Resonance Speak,” “Light Tongue,” “Pattern Weave.” Let’s go with something evocative: Glimmering (or Glim-Ree in the language itself). Translate Concepts and Look for Insights: Now, apply Glimmering to human concepts. “Love”: In English, often a noun (a state) or verb (an action). In Glimmering? Sha-Glim-Vor (Strong-interacting-resonance). Insight: Love isn’t a possession or a static feeling, but an active, powerful resonance between patterns. It requires mutual participation and reinforcement. Lack of interaction (Sha-Glim-Zil) means the “love” fades, not because it was “lost,” but because the resonance weakened. “Identity/Self”: English emphasizes a stable, internal self. In Glimmering? Kai-An-Ree (This-pattern-in-flux). Or perhaps Sha-Nuum-Glim (Resonance-interacting-with-the-field). Insight: The “self” isn’t a fixed entity but a constantly changing pattern defined by its interactions with everything else. Identity is relational and dynamic, not intrinsic and static. There’s no core “you” separate from your connections and resonance. “Knowledge/Truth”: English often treats these as objective, attainable things. In Glimmering? Kai-Sha-Glim-Vor (A strong, stable resonance between a pattern [observer] and another pattern [observed]). Or Nuum-Ree-Kai (Recognizing a flow/pattern within the field). Insight: Truth isn’t absolute but a measure of the strength and stability of the resonance between the observer and the observed. “Knowing” something is actively resonating with its pattern. Disagreement isn’t “wrongness” but a difference in resonance patterns (Sha-Glim-Kai- dissonance_marker). Understanding requires aligning or acknowledging different resonances. “Death”: English sees it as an end, cessation. In Glimmering? Kai-Zil-Nuum (Pattern-fading-into-the-field). Or Glim-Ree-Sha (Resonance-flowing-elsewhere/transforming). Insight: Death isn’t an absolute end but a transformation. The specific pattern (Kai) dissolves, its energy/resonance (Glim) rejoining the larger field (Nuum) or contributing to new patterns (Ree-Sha). It emphasizes continuity of energy/information, just in a different form. The “loss” is the cessation of a specific interactive pattern. “Problem/Conflict”: English frames it as an obstacle. In Glimmering? Sha-Glim-Dissonance (Interacting-resonance-with-clashing/instability). Insight: Conflict isn’t inherently “bad” but a state of unstable or disharmonious resonance. The “solution” isn’t necessarily elimination, but finding a way to shift the resonances (Ree-Sha-Glim) into a more stable or harmonious pattern, potentially creating something new in the process. Refine and Elaborate: Flesh out the examples. Add more nuance. Make the insights clearer. Ensure the language structure consistently supports the insights. Add a concluding thought about the value of such different perspectives. Ensure the “alienness” is maintained. For instance, avoid direct human analogies where possible, focusing on the resonance/pattern concept. Add a brief description of the hypothetical speakers (the Lumin) to ground the language’s origin. Self-Critique: Does the language really lead to unusual insights, or are these just philosophical points rephrased? Is the language structure consistent? Is it different enough from human languages? Adjustment: Emphasize how the language structure forces this thinking, e.g., the lack of static nouns requires thinking in terms of processes and relationships. Make the link between grammar and insight explicit. Make the insights feel less like standard philosophy and more like consequences of a fundamentally different way of parsing reality. Output Okay, let’s invent an alien language designed to generate unusual insights. We’ll call the species the “K’tharr,” dwellers of a dense, perpetually twilight gas giant’s upper atmosphere, communicating through modulated bioluminescent patterns and subtle gravitational waves (perceived through specialized organs). Their reality is fluid, interconnected, and based on flows rather than static objects. ...

ImageGen 3 is the top image model now

Gemini’s ImageGen 3 is rapidly evolving into a very powerful image editing model. In my opinion, it’s the best mainstream image generation model. Ever since it was released, it’s been the most realistic model I’ve used. I’ve been using it to imagine characters and scenes from The Way of Kings. For example, when I wanted to visualize Helaran’s first appearance, I just quoted the description: ...

2024 6

Things I Learned - 01 Dec 2024

This week, I learned: Gists are a good place to store static files for posterity as well as throwaway files. But, they’re just git repositories. So there may be no advantage over GitHub repos. GPT-4o Audio supports tone control via XML tags like <cough>..., <laugh>..., etc. But at ~$15/hr of output, it’s too expensive. Ref Mridula’s son gave a live commentary of what he was doing on Minecraft and ChatGPT gave him live evaluation and coaching. E.g. “Great strategy! Getting to the launch pad early can give you a huge mobility advantage. Making the bridge wider is also a smart move to prevent accidental falls. With this plan, you’re setting yourself up for success. This is a great way to interact with LLMs. Gemini’s JSON mode returns JSON with keys in alphabetical order. I think. Emperical evidence. This is unlike OpenAI which explicitly returns the keys in the order specified. To solve this, order the keys alphabetically. HTMX focuses on HTML over JS. Like server responses being HTML snippets not JSON. But I need front-end over back-end. Client side apps. HTMX doesn’t help much there, e.g. templating, or just plain JS code. htmx client side templates do can convert JSON to HTML. I installed the OpenAI Desktop App as well as Claude for Desktop. They take up too much RAM (260MB and 750 MB respectively on startup - though this varies.) The ChatGPT web page takes ~100MB incrementally, so I wrote an AutoHotkey script to switch to the first open (or recently closed) ChatGPT tab on Brave. I tried LIDA from Microsoft, after almost a year of its release. A few notes: Just running uvx lida ui --port 8080 --docs works. But I needed to use export TCL_LIBRARY=C:/Users/Anand/AppData/Roaming/uv/python/cpython-3.13.0-windows-x86_64-none/tcl/tcl8.6 to point it to my TCL installation for charts to work. I also chose to export OPENAI_BASE_URL=https://llmfoundry.straive.com/openai/v1 I also chose to replace gpt-3.5-turbo-0301 (the default model) with gpt-4o-mini in lida/web/ui/component* It’s quite impressive. OpenAI allows multiple system messages. I learned this browsing through the LIDA prompts. Anthropic’s Model Context Protocol lets any apps integrate with LLM Apps. LLM Apps are becoming the new operating system. Competitors, beware. I spoke at Automating Data Visualizations using LLMs at SUTD. Apparently, using LLMs to write code is much more common than writing code to use LLMs. I ran a quick quiz. Have you used ChatGPT or any LLM? 35 / 35 raised their hands. Have you written code using an LLM? 34 / 35 raised their hands. (I was impressed.) Have you uploaded a spreadsheet to an LLM for analysis? 15 / 35 raised their hands. Have you programmatically called an LLM API? 6 / 35 raised their hands. With LLMs, fostering innovation is a new path to profitability. Companies are increasing innovation team sizes. Productionizing that is the next. Some initiatives are: Convert popular demos into starter kits Create and evangelize trainings on solutions and solution techniques Create larger pools of capacity to build innovation and productionize it Andrew Ng Explores The Rise Of Al Agents And Agentic Reasoning | BUILD 2024 Keynote Innovation is now a path to production. People are able to build 20 prototypes at the cost of one and see which sticks Machine learning is much faster. Things that took months now date days. But engineering and evaluations are only slightly faster and have become a bottleneck A good analogy to zero shot prompting is to ask a person to write an entire essay without pressing backspace even once Andrew scenes to align with the line chain definition of agentic workflow, which is about agents being able to craft their own control flows People find it very easy to understand agentic workflows once they read through the code Reflection or feedback is a useful agentic pattern In multi-agent collaboration, it may be the same underlying model that is acting as different agents. But just like we find it useful for the same CPU to run multiple processes and each application is its own abstraction, agents of useful abstraction It’s hard to summarize a large document using RAG. But you can directly add answers to such questions into the corpus, e.g. by adding a “summary” section, and other answers to common questions. CloudFlare workers can bundle any kind of files, including text, data, and WASM. Docs AssemblyScript can compile TypeScript to WASM. Here’s what I learnt Here’s a convenient pattern to git commit a directory but nothing else in it (e.g. a build/ directory). Add a .gitignore file with * followed by !.gitignore. Only the .gitignore file is tracked. Ultravox lets you build voice agents at 5c/min = $3/hr (OpenAI is 6c input, 24c output). Or clone their repo. Idle call time is counted towards cost. So cost may be higher than OpenAI. Voice cloning quality is average. Very distinctive voices are just partly identifiable. Supports tool calls (from their server). Their API is simple but the docs have minor errors (e.g. a trailing comma in the JSON, which leads to an error) reducing confidence. LLMs may be good at derived data generation. For example, given a database schema, what derived columns would be useful? What derived views would be useful? The O1 model does not have a mechanism to control the amount of tokens to spend on reasoning. DeepSeek R1 might, but the API is not out yet. The OpenAI Desktop App can interact with native applications, e.g. read from Terminal, VS Code, etc. This takes it on a path to becoming a copilot for ANY apps. Putting every copilot app and every LLM integration under threat. Crawl4AI and Firecrawl are tools / libraries to convert websites into LLM Friendly Markdown and extract structured data using LLMs. Don’t try and solve specific problems. Pass the entire context to an LLM and get a comprehensive solution. Most doctors, for example, ask specific search-like questions instead of uploading the entire case history and asking for a diagnosis, and perform workse than LLMs. Ethan Mollick

About 7 years ago, Richie Lionell and Ramya Mylavarapu and a few others created Comicgen - an automated comic generation app personified by Dee ComicGen and Dey ComicGen Ever since, we’d been exploring whether AI could replace it, and help non-designers draw comics. Today, that became a reality for me with Recraft.ai. Here is a picture of the original Dee. And a picture of the Dee crafted by Recraft with the prompt: ...

“Screen-scraping” takes on a more literal meaning." Jaidev Deshpande and I scrolled through Twitter, recording the screen at 1 frame per second, and passed the video to Gemini 1.5 Flash 8b to extract all the tweets. It worked well, and cost 0.04 cents. Given its incredibly low image token count (~250 tokens / image) and cost (7.5 cents per million tokens), you can process 24 HOURS of video for just $1.62. ...

How does Gemini process videos?

The Gemini documentation is clear: The File API service extracts image frames from videos at 1 frame per second (FPS) and audio at 1Kbps, single channel, adding timestamps every second. These rates are subject to change in the future for improvements in inference. Note: The details of fast action sequences may be lost at the 1 FPS frame sampling rate. Consider slowing down high-speed clips for improved inference quality. Individual frames are 258 tokens, and audio is 32 tokens per second. With metadata, each second of video becomes ~300 tokens, which means a 1M context window can fit slightly less than an hour of video. ...

Things I Learned - 05 May 2024

This week, I learned: Hidden brain podcast. Innovation 2.0 solve your own problem. Don’t solve other people’s problems. This helps you pick what you’re good at affordable losses. Make sure you survive borrow others’ spares. spare time, scrap data, anything others don’t use. If you can monetize it, you can pay them back focus on the controllable. Ignore what’s outside your control don’t even waste time on it curl supports globbing, emails Beetrove is a ranking of the popularit of OpenAI GPTs Gemini Prompt Guide has detailed examples of how each role can use Gemini ESLint’s new flat configuration does not support package.json

When picking a number between 1-100, do #LLMs pick randomly? Or pick like a human? Leniolabs_ found #ChatGPT prefers 42. Gramener re-ran the experiment. Things have changed a bit. Now, 47 is the new favorite. But Claude 3 Haiku latched on to 42 as its favorite. Gemini’s favorite is 72. See https://sanand0.github.io/llmrandom/ They all avoid multiples of 10 (10, 20, …), repeated digits (11, 22, …), single digits (1, 2, …) and prefer 7-endings (27, 37, …). These are clearly human #biases – avoiding regular / round numbers and seeking 7 as “random”. ...