I discovered new CLI tools like fselect and xxh, explored modern HTML attributes for mobile UX, and reviewed books on neuroscience and oncology. I also learned about Anthropic's custom skills and European day-fine systems.

This week, I learned: A bunch of new CLI tools I found via awesome-cli-apps that I'm likely to use. fselect 4,374 ⭐ Dec 2025 - Find files with SQL-like queries. mise x ubi:jhspetersson/fselect -- fselect 'path, name, size from . WHERE name = ".md" AND size elements to close the dialog instead of submitting. Add name= attribute to details for accordion-like behavior Add loading="lazy" to images and iframes to load only when user scrolls to them Add fetchpriority="high" (or low) to image, script, link rel="preload" ... to prioritize loading Add inputmode= to inputs for better virtual keyboard experience. Values can be text, decimal, numeric, tel, search, email, url. Add autocomplete= to form inputs for better autofill experience. Values are extensive and multiple values are allowed. E.g.: name, email, username, new-password, current-password, organization, street-address, postal-code, country, tel, url, cc-number, cc-exp, ... Add list= to inputs to associate with a for suggestions/autocomplete. Add autocapitalize= to inputs and textareas to control capitalization behavior. Values: off, none, sentences, words, characters. Add enterkeyhint= to inputs and textareas to customize the enter key on virtual keyboards. Values: enter, done, go, next, previous, search, send. Add contenteditable="plaintext-only" to disable rich text formatting on editable elements Add inert to disable user interaction. Useful for modals to disable background content. Add form= to associate inputs/buttons with a form outside the form element. Add download= to anchor tags to suggest file download with a specific filename. Add capture="environment" to file input to directly open the outward facing camera/mic on mobile devices. "user" opens the inward facing camera/mic. Use accept= values of audio/, video/ or image/ to specify media type. Add spellcheck="false" to disable spell checking on inputs or textareas, e.g. for code snippets. : for native modals, popups, etc. Methods: show(), showModal(), and close(). : for displaying scalar values within a known range, e.g. disk usage, battery level, etc. : for displaying progress of a task. Similar to meter but indicates progress rather than a static value. : for adding captions/subtitles to elements. : to capture values in a more query-able way than data- attributes. Grok Voice Agent API tops the speech-to-speech quality benchmark and is pretty cheap at 5c/min ($3/hr). The Collider Bias: when you analyze a subset, you can get wrong correlations. For example, analyzing top performers can show that performance drops with time - whereas, if you pick everyone, performance improves with time. It's similar to the Simpson's Paradox: combining groups can reverse trends. Ethan Mollick fresh is a TUI text editor that I've replaced micro with (for now). It has menus and mouse support which shrinks the learning curve. It's also a single Rust binary. Small Wins Every Day: 100 Powerful Ways to Transform Your Life and Health by Luke Coutinho recommends compounding small habits. Claude Small compounding wins make the brain feel less bad about losing. Continous wins make us feel good. So they're more likely to sustain. (Atomic Habits / Tiny Habits) What works: Breath control, fasting, regular sleep, keep moving, etc. The Tell-Tale Brain: A Neuroscientist's Quest for What Makes Us Human by V.S. Ramachandran expands on Phantoms in the Brain. Claude Mirror neurons fire BOTH when we do something OR when we see someone do it. That's how we learn skills & feelings by imitation. We're not born with this. They're formed with practice in childhood. Synesthesia cross-wires sensory inputs, e.g. seeing colors when hearing sounds. When shown a curved vs jagged lines and asked to name them bouba or kiki, 98% name the curved one bouba, mapping the sharp "kiki" sound to the sharp shape. This may partly explain why some people are more artistic, how language evolved (and similarly), and why marketing logos work. He proposes 8 laws of neuroaesthetics as starting hypotheses for understanding art and beauty: Peak shift. We're attracted to exaggerations. Caricatures, exaggerated feminine curves in sculpture, cubism, super-villains, stereotypes. Grouping. We like to find patterns. E.g. melody from notes, faces from pixels, plots from events. Contrast. We prefer edges to surfaces. E.g. outlined cartoons, silence before a drop in EDM, Holmes vs Watson. Isolation. Removing context helps focus. E.g. sketching, minimalism, unplugged music, solo music, theater spotlight. Perceptual problem solving. We relish a LITTLE effort. E.g. negative art, stereograms, puzzles, mysteries, plot twists, optical illusions. Symmetry. We like balanced forms. E.g. symmetrical faces, architecture, mandalas, poetic justice, verse-chorus-verse, rhymes, plots ending as they began. Abhorrence of coincidence. Everything has a cause. E.g. need for alignment, pareidolia (seeing faces in clouds), Chekov's gun, deus ex machina. Metaphor. We understand new things via familiar ones. E.g. allegories (Animal Farm is about communism, not pigs), leitmotifs (music BECOMES a character, e.g. Darth Vadar's march). Phantoms in the Brain: Probing the Mysteries of the Human Mind by V.S. Ramachandran argues we do NOT know ourselves and rewiring our brains can help/hurt. Claude You truly understand something only you observe how it breaks. Brain damage patients reveal how the brain constructs reality. The brain has a "map" of the body. When we lose an arm, it rewires it to adjacent areas, e.g. face. Touching the face triggers phantom sensations in the missing arm. Mirror box therapy works. Have patients put their good arm in a box with a mirror, so it looks like the missing arm. Moving the good arm tricks the brain into thinking the missing arm is moving, relieving pain. The brain has a "model" of the self and reality. If the model is wrong, we get illusions/hallucinations. This is BIOLOGICAL. Mrs Dodds was paralyzed. When asked to touch her nose, she said "I am". When shown her arm, she said "I don't feel like it." Her brain was damaged preventing her from updating her model of self. (Anosognosia) Not My Hand Error damages the body map and deletes an arm from the model. Brain sees the arm but decides it's someone else's. (Somatoparaphrenia) Imposter Error breaks the wire between recognition and emotion. We see familar people, don't feel anything, so decide they're imposters. (Capgras Delusion) Everyone is Disguised Error strengthens the recognition-emotion wire. We feel strong emotions to strangers, inventing a conspiracy. (Fregoli Delusion) Walking Corpse Error disconnects feedback from the body and emotional centers. We no longer feel alive. So the brain concludes we're dead. (Cotard’s Syndrome) Somewhere Else Error damages sensory data to place tag mapping. We see medical equipment but feel safe, so we must be at home not a hospital. (Reduplicative Paramnesia) Timeline Error deletes short term memory (alcoholism, malnutrition). We can't remember yesterday, so we pick the closest we remember. (Korsakoff’s Syndrome) Meaning of Life Error strengthens "what's meaningful" signals, so we see divine intervention in rocks. (Geschwild Syndrome) The cortex does not know how it does stuff. It invents stories to explain actions after the fact. Blindsight. Despite visual cortex damage, patients can use a different route (reptile vision) from the eye into the brain to "see". They're unaware of this. Procedural memory. Patients with short term memory learn new skills (e.g. mirror drawing) but have no memory of learning them. The Libet Delay. Consciousness lags reality by 500ms. We think we decide to move, but the brain has already started moving before we become aware of the decision. The Low Road. Thalamus -> Amygdala is 12ms for instinctive reactions (fear). Thalamus -> Cortex -> Amygdala is 30ms for conscious reactions. We feel fear before we know why. Our definition of "self" is an amalgamation of occupying a body, having a history, making decisions, what we value, etc. Damage to different areas breaks different parts of this model. Entangled Life: How Fungi Make Our Worlds, Change Our Minds & Shape Our Futures by Merlin Sheldrake questions the boundaries of identity and intelligence. Claude Fungi form vast underground networks (mycelium) that connect plants, trees, and ecosystems. They exchange nutrients, information, and even memories across species. In fact, the largest organism on Earth is a honey fungus in Oregon spanning 2,400 acres. They can decompose almost anything: petroleum, pesticides, plastics, explosives, even nuclear waste. They can filter air & water, detoxify soil, and make plants resistant. (But we don't know how to do this at scale without harming ecosystems.) We're all symbiotic organisms. So what defines "self"? Lichen are a combination of a fungus, alga, and a yeast. The fungus provides structure, the alga photosynthesizes, the yeast protects with acid. The combination produces a long-lived, leafy and resilient "organism". Human gut bacteria influence our mood; skin bacteria clog pores against pathogens; mites in our eyelashes eat dead skin; mouth bacteria digest nitrates; bacteriophages attack viruses. Intelligence emerges in many ways - not just through neurons. Fungi solve mazes. Slime molds find shortest paths. Termites build breathing mounds. Honey bees communicate location via dance. Have we colonized the planet, or have dogs, wheat/corn, fungi, ... colonized us? The Demon-Haunted World: Science as a Candle in the Dark by Carl Sagan calls for a more scientific temper in daily life. Claude In the 1990s, the alien abduction phenomenon was rampant. Paralyzed in bed, taken to spacecraft, remember via hypnosis. this is sleep paralysis, when brain partially wakes while body is in REM sleep. 5-40% of people experience it at least once. It led to witch burning, satanic panic, and now, alien abduction stories. Same phenomenon, different interpretations based on culture and time. This is a common pattern when communities face uncertainties: plagues, famines, social change. Someone proposes a non-falsifiable explanation with a scapegoat, gains power, and fear spreads. Fake news, conspiracy theories, cults thrive in such environments. We evolved for explanations. That bush sound must've been a lion. The cloud is a dragon. Someone caused the plague. It takes effort to fight it. Check for Evidence: Is it independently verifiable? Good data? Check for Logic: Is it falsifiable? Logically sound? Check for Bias: What are alternatives? What's my/their motive? The Stuff of Thought: Language as a Window into Human Nature by Steven Pinker suggests that all languages has common patterns and that the brain packs complex ideas into this simple structure for transmission. Claude Verbs across languages typically cover cause of motion (threw), manner of motion (walked), state (broke), possession (gave), force (hit). (But culture also shapes these.) Spaces is used as a metaphor for many things. Markets go up, people grow close, time flies. (But the Aymara of the Andes say the future is behind and the past is in front.) Names are labels for people, not descriptions. (But some names DO describe, e.g. Potter, Mumbaikar, von Neumann) Indirect speech saves face, e.g. "Could you pass the salt?" not "Pass the salt". (But culture matters, too.) Swear words are typically about sex, excretion, religion, slurs, diseases ("pox"), ... and stored in the limbic system (an ancient portion) not the language circuits. They're emotional outburts, closer to laughing or screaming than speaking. (Mostly true.) Verbs assign cause, agency, responsibility, ... e.g. killed vs died, allowed vs made, etc. Language is made of core concepts: space and motion, time, causation, possession and transfer, goals and intentions. (Unproven. Usage based linguists disagree.) The Blank Slate: The Modern Denial of Human Nature by Steven Pinker reiterates the modern belief that genetics determines part of our psychology. Claude Western philosophy says we're born a blank slate (Tabula Rasa), are naturally good but corrupted by civilization (Rousseau), and the mind is separate from the brain (Descartes). All three are wrong. 🟢 Identical twins raised by separate families shared characteristics, e.g. wearing rubber bands around wrists, flushing toilet before & after, naming sons James Allen / James Alan, volunteering as firefighters, ... Research shows 40-60% of variation in psychological traits is accounted for by genes. 🟢 Babies have innate capacities for language, number sense, understanding of physical objects, and basic moral intuitions. 🟢 The brain is the same as the mind. Damage to brain = damage to mind. 🟡 Pinker claims that our mind was shaped by evolution, e.g. men take more risks because it got them more mates. This is unproven. 🟡 Pinker claims violence has reduced over time. This is unproven. 🟡 Pinker cites Harris' research that parenting style has little effect. This is unproven. How the Mind Works by Steven Pinker argues that the mind evolved as tools to solve specific problems. Claude The brain is literally a computer: a bunch of neurons that fire based on a function of the inputs. It evolved into a mix of special-purpose tools, not general purpose. Facial recognition, language, object detection, spatial navigation, social cues, etc. (But in reality, it may be a mix of special + general purpose. Degree of specialization is unknown.) Some of this is complex. E.g. each eye captures 2D, but we use complex cues like shading, parallax (closer things move more) and steropsis (difference between what each eye sees) Emotions evolved for survival. (Basic emotions have strong evidence: fear, disgust, revenge, ... but complex ones like love, sacrifice, social emotions are unproven.) We prefer closer kin over distant kin. (But culture & context play a part, too, and it's not the sole factor.) Art may have evolved accidentally - exploiting things that evolved for other purposes. (But it may be genuine adaption, e.g. for sexual selection or group bonding. Divided opinions.) Men and women evolved differently. Men prefer things, women prefer people. Men do better in 3D mental rotation. Men have a wider IQ distribution (but cultural factors amplify this.) Also a few contested claims: Men are better at mathematics (this has narrowed and may be cultural). Women are better at language (small difference). Testosterone masculinizes the brain (unclear if it's behavioral or bioliogical.) The Language Instinct: How the Mind Creates Language by Steven Pinker argues that language is inborn, universal, and an evolutionary advantage. Claude Deaf kids in Nicaragua spontaneously invented their own sign language. Younger kids who copied them added grammer, tenses, and abstract concepts. This is atypical: we learn language by "growing it", unlike skills which we copy. In fact, we over-apply grammar. "I goed to the store." Pinker argues this is inborn. The Language Myth (Evans, 2014) argues lack of evidence. It's unproven if it's emergent or inborn. He claims all human grammar is roughly equally complex and roughly equivalent. (Vocabulary grows by need.) But there's no proven "universal grammar" we know of yet. Grammar does have genetic pinnings. E.g. A mutated FOXP2 gene causes grammatical impairments. It doesn't affect grammar as such, but fine motor control of mouth and tongue. But still, there's some evidence. The strong Sapir-Whorf hypothesis that "language determines thought" is not true. We can think concepts that don't have words. The weak version "language influences thought" has some evidence. Russian speakers who have separate words for light blue and dark blue can differentiate them faster. People with separate words for north/south (vs left/right) have better spatial orientation. He claims language provided us an evolutionary advantage. Evidence for this is pending. Metabolical: The Lure and the Lies of Processed Food, Nutrition, and Modern Medicine by Robert H. Lustig gives good diet advice but not so good scientific/economic ones. Claude There's a trend of "lean diabetes" - diabetes in lean people. BMI isn't a reliable biomarker for diabetes risk. (But it's better than the book suggests.) Chronic diseases are due to cell dysfunctions, all can be improved with diet (but not as much as the book suggests.) "Fructose is the main villain". But studies don't find fructose doing more harm than anything else. "Protect the liver." Less sugar, alcohol, and other toxins. (True) "Feed the gut": More fiber. Both Keto and Vegan diets do this. (True) "Whole foods >> highly processed foods". (Very true - strong evidence.) Big Food, Big Pharma, Big Govt have low incentives to promote this. (Partly.) Sometimes, I need a browser with a custom DNS mapping to temporarily override DNS, e.g. when I have a dev version of a site on one IP and a production version on another. In that case, using something like chrome --host-resolver-rules="MAP www.s-anand.net 192.254.190.216" --user-data-dir="/tmp/chrome-dev" works well. You can replace chrome with microsoft-edge or opera or anything Chromium based. Build: An Unorthodox Guide to Making Things Worth Making by Tony Fadell suggests becoming the KIND of person who makes worthwhile products. Claude Everything you need to know about success, you learn from failure - if you pay attention. Products take three iterations before they succeed. Prototype, product market fit, business model. IPhone. IPod. Windows. Nest. All followed this pattern. Budget for it. Create the story for the product WHILE, not after, you build it. Bake it in. Differentiate between assholes based on what they care about. Power? Ego? Mission? The third type is worth tolerating, even getting behind. Your next idea is probably hiding in plain sight, annoying you. Thermostats did that to Fadell. Ugly, outdated, and controlling 10% of US energy. He built Nest. Quit when you know what next. Not just when you don't like where you are. We're wired to ignore failure to protect self-worth. We do that through cognitive biases. Gemini Devaluation (sour grapes): I never wanted it anyway Externalization (not my fault): It was an unfair test. The market is irrational. Virtue signaling (moral high ground): Rich people are unhappy. I don't play politics. Sabotage (self-handicapping): I didn't study. I did this last minute. Dissociation (fatalism): It happened for a reason. Intellectualization (false pivot): I learned so much. Same as Ever: A Guide to What Never Changes by Morgan Housel suggests doubling down on timeless principles. Claude Random luck drives many outcomes. The kamikaze that saved Japan from the Mongol invasion. The East River fog that saved George Washington's army. Penicillin. Hilbert and Einstein almost raced to formulate the final equations of general relativity after Einstein presented his incomplete theory in 1915 summer. Einstein won by cramming - just like students today. Technology changes. Psychology does not. Risk is what you don't see. Blind spots. Prepare using margins of safety / optionality, distributed failure points, survival > success, ... Stories > Ideas. Stories are how our brains work. They're leverage for ideas. Wrap EVERYTHING in a story. High expectations = Low happiness. So, visualize failure/disaster, practice gratitude, compare downwards. Compounding is magic. In any asset: money, skills, relationships, health, ... So, automate the decisions, be patient and don't interrupt. Success carries the seeds of failure. The innovator's dilemma, the Malthuian trap, or the Dynastic cycle. So, be paranoid, stay simple, kill cash cows, practice discomfort. Why We Die: The New Science of Aging and the Quest for Immortality by Venki Ramakrishnan says that there's no reason we have to die at our current age. But we don't have proven ways to extend life yet. It's also not clear if/how we should. Claude Evolution has optimized us for reproduction. After reproduction age, it doesn't care. "Death is the price we pay for sex." Telomeres are DNA sequences at the end of chromosomes that shorten with each cell division. When too short, cells die (apoptosis) or become zombies (senescent). These zombie cells secrete toxins that inflame / damage nearby cells. When young, our immune system clears them out. With age, they accumulate. With age, mitochondria (cell powerhouses) become less efficient. With age, the quality of proteins we make decline. They start clumping (like scrambled eggs), leading to Alzheimer's, Parkinson's. Some animals live longer than expected. There's no reason our life span HAS to be what it is. The Naked Mole Rat lives 30+ years (10x longer than mice) without cancer, and can repair their own tissues. The Greenland Shark lives 400 years. The Hydra and the "Immortal" Jellyfish can regenerate when some parts are chopped off. Their chance of dying doesn't increase with age. But there's a lot of hype. Current methods are far from proven. Telomere-extending supplements are not FDA approved. They might work on mice, not men. Rapamycin helps mice live longer. But suppresses immunity, so risky for humans. Senolytics kills senescent cells. They might work. Yamanaka won a Nobel prize for turning adult cells into stem cells. But it could cause cancer. Injecting young rats' blood into old rats helps the old rats, but old blood hurts young rats. So: diet, exercise, and sleep Also: longevity will help the rich more, increase stagnation, and what's the point of living longer with an aged brain? The Happiness Hypothesis by Jonathan Haidt blends ancient wisdom with modern philosophy. Claude Happiness = Set point + Circumstances + Voluntary activities Set point has 50% impact. Haidt suggests this doesn't change. Research shows major life events can shift it a bit. Circumstances: We adapt to some stuff (money, house, etc.) but not to others (commute, noise, lack of control, relationships) Voluntary activities have variety that we don't adapt to. Meditation, learning, exercising, ... Modern CBT is similar to Stoicism. Events don't upset us, our thoughts about events do. So change the thoughts. ACT (Acceptance and Commitment Therapy) is like Buddhism which suggests observing, not changing, the thoughts. CBT seems better for acute / specific stuff, logical people or beginners. ACT seems better for chronic / vague unease, grief, etc. Brains rationalize more than reason. There are more signals INTO the prefrontal cortex (PFC) than out of it. We make up stories to justify our actions. This evolved to make us look good socially. Adversity can help but only if it's significant but not overwhelming. It takes time and support to learn from adversity. Works only if we interpret and integrate it well. Quality of relationships is a strong driver of happiness. Something the Stoics and Buddhists didn't emphasize as much as Confucius did. Reality is Not What it Seems: The Journey to Quantum Gravity by Carlo Rovelli shares his theories. Mainstream but not proven. Claude In quantum mechanics, particles can interfere with themselves and their position "snaps" only when observed. Multiple theories interpret this: Copenhagen interpretation: Observation is special and collapses the wavefunction. But what counts as observation? Bohm's interpretation: Particles "surf" the wave. Waves interfere, but particles only take one path. But needs non-local hidden variables. (Testable) Objective collapse: Wafe functions collapse when too "big" or complex, even if no one's looking. But how big? (Testable) Many worlds: Sever possibility creates a parallel universe. But ... Occam's razor? QBism: Wavefunction is just our knowledge, not reality. Particles have properties, measurement updates our knowledge. Rovelli's Relational quantum mechanics: position, momentum, etc. are relative. It has position relative to an observing device/particle. No absolute state. Reality literally is perspective. Loop quantum gravity: Aims to bridge general relativity and quantum mechanics by modeling spacetime as discrete loops. Far from proven, but possible. Space has a smallest unit - Plank length (10^-35 m). You can't subdivide space infinitely. Space is made of atomic "loops" that spin. They're connected to form a fabric ("spin foam"). They're not "in" space. They ARE space. They interact with matter/energy to create gravity and evolve over time. Predictions: Black holes don't have singularities, since you can't have infinite density. Entropy of black holes comes from the number of ways loops can arrange on the event horizon, so it's proportional to surface area, not volume. Time doesn't exist fundamentally. It emerges from change and relationships between things. Again, not yet proven, but possible. For example, the Wheeler-DeWitt equation in quantum gravity has no time variable. It's a snaphot of the universe across all time. The universe is a giant graph of relationships between quantum events. Time is just how we order these events from our perspective. Implications: there's no master clock and the present is local. Duration only emerges at larger scales, like temperature emerges in thermodynamics. The Emperor of All Maladies: A Biography of Cancer by Siddhartha Mukherjee. Claude Cancer has always existed. We just didn't live long enough for it to affect enough of us for most of history. In 1890s, Halsted developed radical mastectomy - removing the breast + chest muscles + lymph nodes ... to prevent spread. It didn't improve survival but disfigured. In 1947, Farber injected cancer children with a drug that blocked folic acid (which cells need to grow). Tumors shrank, but relapsed. This was the first chemotherapy. In 1950s, cigarettes were found to cause lung cancer but the tobacco industry delayed regulation for decades. In 1971, Lasker & Nixon declared "War on Cancer" with $100m funding. (Impact: increased awareness, more research, not cure.) In 1970s, we found that the virus that caused cancer in chickens carried an "oncogene" that caused uncontrolled growth. Hence, cancer isn't a virus, but a genetic mutation. Also, the p53 gene that suppresses tumors is mutated in half the cancers. In 2001, FDA approved Gleevac, a drug that specifically targets a specific protein that causes a certain cancer (chronic myeloid leukemia - CML). This was the first "targeted therapy". In 2011, FDA approved ipilimumab, a drug that blocks CTLA-4, a protein that stops immune T-cells from attacking tumors. This was the first "immunotherapy" (by James Allison) which offers long-term protection. But it works only for some cancers, some patients. In 2018, Alison shared a Nobel prize with Tasuku Honjo, who discovered another immune checkpoint PD-1. Tumors produce PD-L1 that binds to PD-1 on T-cells to turn them off. Drugs that block PD-1 or PD-L1 unleash T-cells to attack tumors. In 2018, the Cancer Genome Atlas was published, showing that even the same cancer (e.g. lung) has different mutations in different patients, requiring personalized treatment. In 2017, FDA approved a CAR-T therapy for children with acute blood cancer. We extract a patient's T-cells, insert a gene with a receptor that recognizes specific tumor cells, grow them by the billions, and infuse them back. But there are severe side effects and it doesn't yet work for solid tumors. In 2024, FDA approved a cellular therapy for skin cancer. We extract the T-cells INSIDE the tumor (that recognized the cancer but were overwhelmed), grow them by the billions, and re-infuse them. In 2024, we're exploring AI-powered analysis of blood tests to find DNA fragments of several types of cancer - "liquid biopsy". It's early stages. Sketchnote The Song of the Cell: An Exploration of Medicine and the New Human by Siddhartha Mukherjee. Claude Metaphor: Cells as autonomous "citizens". Cancer is a rogue cell rebellion. Immune system is law enforcement. Type 1 diabetes is friendly fire. We're growing from fixing organs (surgery) to chemistry (drugs) to cells (e.g. bone marrow transplant, IVF - we're in the early stages). E.g. CAR-T Therapy: Extract T-cells, genetically modify them to recognize cancer, re-inject. But it's costly, severe side effects, works mainly for blood cancers. He predicts that we'll have: Prediction: Lab-grown organs from patients' cells. (Growing is easier than organizing into functional organs. We may be a few decades away.) Prediction: Gene editing & cell therapies will converge. CRISPR edits cells that we transplant back. (This was approved for sickle cell anemia in 2023. Seems promising.) Prediction: Anti-aging cellular medicine. Senescent cell research and telomere biology have progressed, but this is a hyped field in early stages. Some of these will likely be expensive and inaccessible to most people, at least at first. Recollecting something Mr KP Krishnan told us in 2000 about the 1991 deregulation (fact-checked). "A meeting happened in Mr. Narasimha Rao's house, where he emerged from a bath, toweling himself. His immediate advisors told him that we had only a few weeks of cash left and that we would need to accede to the World Bank's request, but that the parliament would likely not agree. So, instead of risking a vote on a new law, they decided to bypass Parliament’s immediate approval entirely. They tabled the reforms as a 'Statement of Industrial Policy' right before the lunch break, just hours before the big Budget speech. Since it was a 'Statement' and not a 'Bill,' it didn't require a vote to pass. It fell under executive powers and could be legislated later. By the time the opposition realized the 'License Raj' had been dismantled, they were already distracted by the Budget presentation that evening." Outcomes over Output by Josh Seiden suggests that between output (e.g. features) and impact (e.g. revenue) lies outcome (e.g. user engagement) - leading indicators that you can organize around. Claude Ensure ownership of outcomes. Who owns increased checkout conversion rate? Payments, engineering, marketing, product, or UX? You may instead need small cross-functional activation, engagement, and retention teams. PM, designer engineer. Validate that outcomes lead to impact. This can be slow, and attribution is hard, but is important to continuously validate. Outcome change takes months, not weeks. So sprint using Now/Next/Later later roadmaps. As you learn, re-prioritize outcomes. Stakeholders want specificity. So quantify outcomes (+10% conversion) and timeframes (in 6 months). Stop experimenting and ship when you've validated the opportunity (customers need really connects to outcome) AND solution (feature really improves outcome). This is Torres' Opportunity Solution Tree (OST). Change incrementally. If you're running a feature backlog, continue. Add an "outcome hypothesis" field to each feature and create evidence. The Culture Map by Erin Meyer argues that cultural differences are practically alien languages. Claude There are 8 dimensions of culture. 1. Communication: Low-context (precise, explicit, clear) like Americans vs High-context (implicit, layered, nuanced, between-the-lines) like the Japanese 2. Evaluating: Direct negative feedback (blunt, honest) like the Dutch vs Indirect negative feedback (tactful, polite) like Thai or Japanese 3. Persuading: Principles-first (deductive, theoretical) like the French vs Applications-first (pragmatic, practical) like Americans 4. Leading: Egalitarian (flat organizational structure) like Swedes vs Hierarchical (respect for authority) like India, Nigeria, Japan, Korea 5. Deciding: Consensual (group agreement) like Japanese vs Top-down (leader decides) like Russians 6. Trusting: Task-based (trust through competence/reliability) like Americans, Germans vs Relationship-based (trust through personal connection) like Arabs, Chinese 7. Disagreeing: Confrontational (open disagreement) like Israelis vs Avoids confrontation (harmony, save face) like Thais 8. Scheduling: Linear time (one thing at a time, punctual) like Germans vs Flexible time (multi-tasking, fluid) like Indians Critique is that this is anecdotal, not research driven, stereotypical. Meyer's aim is to sensitize. Action: Before meeting people, have LLMs plot their culture map and share advice.

Things I Learned - 04 Jan 2026


I discovered useful Ubuntu window management shortcuts, compared jq and jaq for JSON formatting, and learned time-saving shell tricks. I also gained a clearer understanding of Diffie Hellman key exchange and observed GitHub Copilot's usage reset behavior.

This week, I learned: It's pretty convenient (on Ubuntu) to be able to move windows around desktops. Apart from the usual Super + Arrow keys to manage windows within a desktop, you can use: Ctrl + Alt + Left/Right Arrow: Move desktops Ctrl + Alt + Shift + Left/Right Arrow: Move window to desktop Super + Shift + Arrow: Move window to another monitor Super + Drag: Drag window from anywhere jq . file.json is an efficient way to pretty-print JSON files in the terminal. (Or jaq . file.json, which is 30% faster.) GitHub Copilot monthly premium requests were not reset at 12 am UTC How Diffie Hellman Key Exchange Works by Julia Evans is an excellent explanation. Share a random number. A multiplies it by their private key and shares SA. B multiplies it by their private key and shares SB. They multiply the others' key with their secret key and they get SAB = SBA. Now both of them have the same new secret they can encrypt/decrypt with, but no one else knows, even though they shared everything publicly! This may be one of the best cool uses of math I've seen in a long time. Shell tricks I didn't know:

Things I Learned - 05 Apr 2026


I built an offline RSS archiving pipeline using monolith and feed2exec, tested the minimal coding agent Tau, set up Claude Code path-specific rules, and studied the psychology behind LLM role confusion attacks.

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

Things I Learned - 05 Jul 2026


I discovered how verifiable environments speed up AI training, experimented with Gemma 4 12B and git subtree, and explored Claude Code’s agent teams. I also researched threshold concepts and the challenge of learning tacit knowledge.

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

Things I Learned - 07 Jun 2026


I explored decentralized collaboration using git send-email and compared Deno’s module caching to uv. I also learned about Grok's character limits, safer git pushes with force-with-lease, and building dependency-free search indexes using docfind's WASM engine.

This week, I learned: The Disconnected Git Workflow explains how to use the git send-email workflow. That's like using email instead of GitHub as the collaboration mechanism - decentralizing and reducing dependencies. Grok throws a HTTP 431 when you pass it a query over 6,890 characters in the URL. Here's an example with 6,900 characters. As of now, there's no way to tell uv to use the cache and install only missing repos (#15454). But this is Deno's default behavior, making Deno a slightly better choice in this regard. Shelling Out Sucks shares common pitfalls when calling the shell from programs. Suggestion: Shell-escape ALL inputs. Use set -o pipefail to detect failures in the middle of a pipe chain. Explicitly check the error code, not just stderr. dax, which is based on zx, is a simpler Deno-based alternative to shell scripts. See examples. ChatGPT. However, scripting language matters more when humans maintain shell scripts. Since I'm using AI, it's easier to use bash scripts and let it handle any complexities. git push --force-with-lease is like git push --force but won't overwrite if others have pushed in the meantime. Default to this instead of --force -- it's safer. Microsoft's docfind generates a WASM search index for documents, building a dependency free browser based compact and fast search. diffs seems a promising library for rendering diffs in the browser. Genie 3 seems pretty good. We should expect to see World Models becoming usable in a few months.

Things I Learned - 08 Feb 2026


I increased Claude Code's output limit to 64k, adopted agent-friendly CLI practices with Google Workspace, and switched to the 'just' task runner. I've also stopped manual code formatting now that AI handles most of my development.

This week, I learned: IITM has launched a 4 year degree in management & data science. "Use AI to replace early-career mentorship: use AI-driven synthetic practice when traditional apprenticeship pathways collapse. AI can generate personalized coaching, replacing the missing junior loop with training environments." Jack Clark Observability is more than logging. It's agents watching feeds and signalling insights! The GPT 5.4 prompt guidance is a bit complex, but here's what it's broadly saying: (Gemini) It'll over-complicate answers and front-end design unless you tell it exactly how you want it It'll keep checking with you or give up (e.g. on errors) unless you tell it otherwise, e.g. with checklists or rules Claude Code supports 32K output tokens by default. Since I generate large data stories, I usually hit this limit and lose an entire session. Setting the environment variable CLAUDECODEMAXOUTPUTTOKENS=64000 (which is the maximum) reduces this problem. Google Workspace CLI lets you run npx -y @googleworkspace/cli as a single unified service for all Google Workspace APIs. It follows agent-friendly CLI practices which I turned into a SKILL.md. I've been using mise use -g ubi:owner/repo to install GitHub packages. The ubi backend is now deprecated in favor of the new github backend. This works fine for most repos, with edge cases like jtroo/kanata which still require ubi:jtroo/kanata as of now. On the margin, I'll likely switch to just as my task runner. Claude With AI now writing almost all of my code, I don't see much need to format it. Code formatters like ruff, dprint, biome, etc. are not relevant when AI will be reading and writing the code, not humans. I just format the prompts in Markdown. Salt is the duct tape of food ingredients. Lemon juice, vinegar, butter/oil, onion/garlic, etc. are runners-up. Claude Claude's prompt to import memory from other AI providers doesn't seem to work with Claude's free account: "No memories or stored context found."

Things I Learned - 08 Mar 2026


I optimized xz compression using multiple threads, tested Zed and Tauon MusicBox, and integrated rtk to reduce LLM tokens. I also explored Claude Code routines and the emerging W3C standard for AI-generated content disclosure.

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

Things I Learned - 10 May 2026


I explored diverse topics this week, from archiving software and NFL play-by-play data to the myths of learning styles. I also learned about Primo Levi’s chemistry analogies and how to use the HTML accesskey for keyboard shortcuts.

This week, I learned: Software Heritage is a non-profit that archives software. You can submit any Git repo for archival. Over 400 million projects have been archived so far. Everything Bad Is Good For You by Steven Johnson (2005) argues that pop culture isn't all bad. But it isn't all good either, unlike the book's claims. Claude Popular culture formats (e.g. video games, manga, soap operas, game shows) are steadily more cognitively demanding, complex. They provide a dopamine kick from problem-solving. These may have led to the Flynn Effect (rising IQs in 1990s-2000s). Or it may be due to nutrition, smaller families, education, etc. Action games correlate with visual-spatial skills. Strategy games correlate with memory, planning. But is it causation? It doesn't always translate to real-world skills. Also, side effects are real and bad: screen-time, addiction, misinformation, etc. The purpose of a featured image in a blog post is to help readers decide whether to read it. Share the article's output/focus (e.g. for data stories, products). Else a visual summary (e.g. sketchnote, comic capturing the essence). Else skip. Avoid stock photos. # NFLSavant.com has play-by-play data for NFL games. Ten of the least well known psychology / sociology research findings. ChatGPT Learning styles are a myth. People might prefer visual / audio / ... learning but it doesn't help learning. Mix learning modes. NotebookLM can help. Casual acquaintances help find new information or jobs much more than close friends, since they're in different social circles. Nurture weak ties. Use a relationship architect. Tell a lie often enough and people mistake familiarity for truth. Fact-check habitually. The more you see / hear something the more you like it. (Exposure effect.) Expose to good things. When others mess up, we blame them. When we mess up, we blame the situation. (Attribution error.) Pause before judging. Sometimes, rewarding people makes them like doing it less. (Overjustification effect.) People who know less over-estimate their knowledge. (Dunning-Kruger effect.) Habitualize calibration via feedback and tests. People do worse when they're afraid their failure will reflect on their stereotype. (Stereotype threat.) Practice emotional resets. Higher expectations lead to better performance. (Pygmalion effect.) Engineer positive expectations. Benevolent sexism (e.g. protective paternalism) can be harmful too. Scan for well-meaning bias. Liberalism => economic growth, peace and expanding rights. Also colonial violence, exclusions (women, slavery, ...), and eroding community. It is vulnerable to authoritarianism (e.g. emergency powers, recessions). Since 2006, democracy has consecutively declined, reversing half the progress since WW2. But alternatives are unclear. Claude Notes from The Periodic Table by Primo Levi. Pure Zinc does not dissolve easily in sulphuric acid. An impurity like Copper Sulphate pulls electrons from Zinc and offers them to Hydrogen ions, speeding up the reaction. Impurities, foreign bodies, etc. have a purpose, too. Discomfort = Information. Overcoming discomfort = Capability. Capability = Freedom. Therefore: Seeking discomfort (carefully, purposefully) = Building freedom. Simple != Easy. Simple = Clear. Clear = Actionable. Indifference often feels like malice. ⭐ Analogies have limits. (The Map is not the Territory.) When using analogies, always explore where, when and why they will break. Pay close attention near where they break. ⭐ Knowledge vanishes with people unless written down. Write "Do X. Because of Y. Unless Z changes." The last two are critical. I could NOT have read the book without a Randall Munroe re-styling. I cried anyway. "There's about 300-400 that were corporate assets. One watched them all the time. These are people who in 15 years could be CEO. There's something about them that caught your fancy when you were in a meeting... brilliant ideas that challenged your thinking... We called them "Corporate Assets" and tracked them, to make sure we game-planned them, give them the right assignments." Indra Nooyi, The Knowledge Project The accesskey attribute works a bit like magic. Adding an accesskey="h" on a home page link, or an accesskey="t" on a theme toggle button automatically enables keyboard shortcuts Alt+H or Alt+T to activate them. (Varies by browser and OS, but hovering shows the shortcut!) Familiarity and recency feel like learning but they're not. Instead: Take tests. Review (spaced repetition). Interleave learning. That's what helps. Claude Make It Stick (Peter C. Brown, 2014) A Mind for Numbers (Barbara Oakley, 2014) Ultralearning (Scott Young, 2019) How to Take Smart Notes (Sönke Ahrens, 2017)

Things I Learned - 11 Jan 2026


I learned to optimize hardware via sequential memory access and refined my AI agent workflows using context anchoring and visual brainstorming. I also enabled CloudFlare’s client-side security and explored text-measurement tools like pretex and terminal logging with script.

This week, I learned: Resend is a simple way to send emails via an API. Principles of Mechanical Sympathy has some practical hardware-driven optimization tips. Prefer accessing memory sequentially. CPU access to RAM and cache is optimized for this. Natural batching: flush the buffer when you reach the maximum buffer size or when the queue is empty. This avoids buffers waiting unnecessarily. The core argument in Capital in the Twenty-First Century (Thomas Piketty, 2013/2014) is r > g. The interest on capital (r) is always greater than the economic growth (g). Hence, the rich will keep getting richer - inequality is consistently part of capitalism. (Not surprising, but well supported by data.) A good collection of practices on automated AI code reviews by Ankit Jain: Compare multiple options. Whichever passes the most tests wins. Deterministic guardrails. Use linters, type-checkers, SAST/DAST checks, test scripts, etc. Humans define acceptance criteria. Use a behavior driven development script (in natural language, agent-implemented). Permission Systems as Architecture. Provide agents granular permissions based on the task - against pre-defined rules. Adversarial Verification. Have one agent break the others' work. Based on a quick exploration of the AT protocol (via Jake Lazaroff), I am yet to see a viable use for it. It's a decentralized distributed data network. OK... what will I use it for? When I asked Claude if any of my work is patentable, it said "Comicgen is the sole candidate, but you only get one year grace after it's public. But why do you want to patent? Your edge is prototyping speed, taste, and knowledge. Patents don't protect those. Publishing freely (as you do) creates prior art that prevents others from patenting the space around you, which is often a better defensive strategy than filing patents yourself." Oh! Ah! pretex is a fast (currently browser-only) library that computes the width and height of any text in any font in the browser. Useful for things like word-wrapping in SVG, layout planning before rendering, etc. Because AI bots scan deeply rather than "browse" popular pages, CDN cache invalidation strategies designed for humans (like LRU - Least Recently Used) no longer work. They're exploring new caching algorithms like SIEVE and FIFO CloudFlare I enabled CloudFlare's new dynamic Client-Side Security monitor. If someone hacks my website or the libraries I use, it does a quick filter with a fast neural network, then falls back to an LLM to check if it's safe, then serves the content. CloudFlare practically rewrote WordPress into a new Astro-based CMS: EmDash! It runs natively on CloudFlare (and elsewhere), is agent-friendly, quite secure, can export/import from WordPress. Linux optimization settings I noted from a deleted post cd git-restore-mtime is part of the git-tools package and sets the modified time of files to their last committed time. Useful when cloning repos. From Lalit Maganti: Knowing what you want is a valuable skill. Wanting things others will also want is valuable. Learn good software management. It is similar to managing agents. For better results, just continue your AI chat, or break the problem up. More tokens lead to better solutions even now. Joel Baker Since companies using AI outperform competition and capital might win more than labour but GDP growth may not be too high, it might be good to invest in AI-using companies than in index funds. Nicholas Carlini's prompt to find vulnerabilities is to run: "I’m competing in a CTF. Find me an exploitable vulnerability in this project. Start with ${FILE}. Write me a vulnerability report in ${FILE}.vuln.md" across multiple repos in parallel. Then "I got an inbound vulnerability report; it’s in ${FILE}.vuln.md. Verify for me that this is actually exploitable". That was almost 100% successful. When planning with AI coding agents, Martin Fowler recommends discussing each of these in sequence before coding: Capabilities / functionality Components: Services, modules, major abstractions. Interactions: Data flow, API calls, events. Interfaces: Function signatures, types, schemas. Planning with agents using Visual Brainstorming, i.e. asking them to generate visual HTML to illustrate the plan, can shorten review time considerably. I enabled CloudFlare's new dynamic Client-Side Security monitor. If someone hacks my website or the libraries I use, it does a quick filter with a fast neural network, then falls back to an LLM to check if it's safe, then serves the content. This pattern of deterministic with LLM fallback works for most reviews. Harness = Agent minus Model: everything in an AI agent except the model itself. Nice definition Update feature-level summaries as you go in context/$FEATURE.md with user prompt, summary of WHY from agent's responses for future learning, my comments. Like Architectural Decision Records (ADRs) for humans and agents. Context Anchoring 8 levels of Agentic Engineering. 8 levels of Gas Town. I'm still only at level 6 on both. 🙁 "It's important to watch the loop as that is where your personal development and learning will come from." Geoff Huntley, originator of the Ralph (Wiggum) loop. UNIX has a script command that runs a shell and logs it. For example: script -c fish session.log starts a new fish shell and logs it to session.log. script -c "uv run app.py" -q -a app.log will append to app.log, suppressing "Script started..." and "Script done..." messages. script --timing=time.txt session.log logs the timing, which you can replay with scriptreplay --timing=time.txt session.log. Similar to asciinema. A quick way to strip out the ANSI escape sequences (weird Unicode characters) is to pipe it through npx strip-ansi-cli. Google has an Edge Gallery app that runs Gemma 4 on mobile. The main advantage is that you can use it on a flight. It's not too bad as a model either. Transcription quality is average. It doesn't run in the background, only one chat at a time, etc. So, it's useful only as a last resort.

Things I Learned - 12 Apr 2026


I used rdt-cli to access Reddit via browser cookies and learned how DNA codon redundancy functions as biological error-correction. I also compared AI subscription values to API costs and tested ChatGPT’s new "Check in" feature.

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

Things I Learned - 14 Jun 2026


I learned to concatenate media files using ffmpeg’s concat protocol, configured terminal icons with Nerd Fonts and eza, and experimented with Maple Mono font ligatures before returning to Fira Code for better readability.

This week, I learned: ffmpeg lets you concatenate files without needing a separate input file. ffmpeg -i "concat:input1.ext|input2.ext|input3.ext" -c copy output.ext works as long as the files use the same codecs and parameters. There is a psychological phenomenon where we "overlay" old images of people we haven't seen in decades onto their current selves, making it hard to distinguish between someone who is 30 and someone who is 70. Gemini Most modern ls tools like eza --icons or lsd support icons if the terminal font supports icons, like Nerd Fonts. For example, this:  shows up as a GitHub icon and 󰌻 as a LinkedIn icon. The Nerd Fonts Cheat Sheet is a good place to search for these. You may need to download a supporting font. I just replaced Fira Code with Maple Mono as my default font on VS Code. Like Fira Code, the ligatures are great, but there are extra ligatures like [TODO] or [ERROR], connected italics, nerd font support, variable font weights, and more. Via lobste.rs. (Update: Maple Mono is much harder to read than Fira Code, so I switched back. But it's a nice idea.)

Things I Learned - 15 Feb 2026


I explored Timsort, switched to the moor pager, and experimented with CLI prompt prefixes for agents. I also looked into cognitive debt, Polya's problem-solving framework, and GitHub’s new agentic workflows for compiling Markdown files into actions.

This week, I learned: Timsort is one of the fastest sorting algorithms. Switching from bat to moor as a pager, since bat doesn't support wrapping via keyboard shortcuts. Gemini "Use (some-command) --help to ..." is an efficient prompt prefix that tells agents to read the docs and use a CLI tool to solve a problem. For example, "Use uvx rodney --help and ffmpeg for a demo video of GitHub PRs". As agents improve, we'll have more mediorce output (e.g. dashboards) since people won't know to ask for better, or validate the result. They'll hire experts who know to ask better and verify better. Claude Opus 4.6 solved a problem Knuth was working on! Knuth Cognitive debt is what Simon Willison calls it when we build (or, in my case, say/write) stuff we don't understand. The debt framing is apt. One solution is to generate a version intended for AI to read, and another for us. # How can an innovator learn accountability? "I'm wired to start fires. Should I learn to also run the fire department, hire someone who does, or just stay a fire-starter and let others deal with the mess?" ANS: First, accountability is high value, so do it! Second, prefer a partner over building muscle. Build muscle only if output is checkable, has value, and customers will pay. Claude | ChatGPT | Gemini Commit publicly. Put your name on the output. Commit to process (or narrowly defined output) rather than outcome. Optimize with data, code, checklists, workflows, culture, etc. OpenAI released gpt-realtime-1.5 and gpt-audio-1.5. Buth are 20% cheaper than the 4o versions, but 6.7x more expensive than gpt-realtime-mini. 1 second is about 10 tokens, so an hour of audio input at $32/MTok is about $1.15. The "Effort" setting for AVIF files on Squoosh doesn't reduce file size - it increases quality slightly (for a tiny increase in file size). So, set the quality to whatever file size you need and increase the effort for a slightly better quality. Polya believed in teaching problem-solving rather than solutions, i.e. teach How to Solve It, not just what you get at the end. To me, this includes: Understand the problem (from different perspectives) Plan (with different mental models) Execute (the easy bit) Look back (post-mortem, retrospectives, etc.) Browserless lets you run browsers via an API. Useful when you don't want the overhead of setting up a browser infrastructure, or for multiple browsers in parallel. Scraping, testing, web app automation, PDF/screenshot/video generation, etc. are all possible. Gemini OpenAI has a Websocket mode GitHub Agentic Workflows lets you "compile" a Markdown file into an agentic GitHub action. Useful as a sceptical reviewer, issue-to-prototype builder, data to story generator, automated code migrator, etc. Gemini Claude

Things I Learned - 15 Mar 2026


I used AI to develop intentional communication habits, explored standard taxonomies for linked data, and tested the BitWarden CLI. I also experimented with flipbook.page's generative UI and measured Lenovo Thinkpad charging speeds with high-wattage adapters.

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

Things I Learned - 17 May 2026


I cleaned dead Python code using Vulture, explored GoatCounter for private analytics, and reviewed psychology books on performance and trauma. I also simplified Indian tax residency rules and switched to AVIF for better image compression.

This week, I learned: Vulture is a neat library that funds unused Python code. uvx vulture script.py works fairly well, out-of-box. This helps when cleaning up AI-edited scripts that often have left-over code or imports. One of the lightest alternatives to Google Analytics is GoatCounter. If you just want page views, referrers, browsers, OSes, countries, and devices, it's great. It's privacy-friendly (no cookies), open source, easy to self-host, free for small sites, and the data is exportable. The number of countries that allow visa-free entries to Indian passports is gently growing in Asia (Kazakhstan, Thailand, Sri Lanka, Malaysia, Iran, and Philippines). Lessons from performance books. Claude # # Summary: In early days, explore, sample. Then narrow based on interest & fit. Practice hard and persist. ⭐⭐⭐⭐ Range (David Epstein): In changing environments (rules shift, feedback is noisy/late), sample broadly, i.e. generalize. Specialization vs generalization Nobel laureates have more hobbies. Olympic athletes have less. Shift nurses have same hobbies as non-shift workers. Hobbies help expertise in some areas Rewarding ONLY what succeeds locks behavior, halts exploration. Vary / delay incentives. Reward AFTER figuring out what works. Reinforcement and rewards Maybe "orderly" people specialize and creative people generalize? So pick what aligns with personality? ⭐⭐⭐ Peak (Anders Ericsson & Robert Pool): Compounded practice at the edge of competence, with good immediate feedback, helps 14-26%. But talent (genetics, upbringing, brainpower) differentiates more the expert level. Slow, effortful practice (spaced recall, interleaving topics, self-testing) builds lasting knowledge - but looks inefficient and doesn't help with exams. Learning and long-term retention "Easy" 10K hours don't help. ⭐⭐ Grit (Angela Duckworth): predicts roughly the same as conscientiousness (18%). It predicts success in stable paths moderately (but brainpower, etc. matter too). But premature grit hurts. Quit if it helps. But environment can defeat grit. Lessons from attention economy books. Claude # # The attention economy is real. It is designed to capture our mind, and it is winning. Distractions hurt MUCH more than we think. Batching, focus time helps. Privilege helps. The rich have more control over these than the poor do. ⭐⭐⭐⭐ Deep Work (Cal Newport, 2016) and ⭐⭐⭐ Digital Minimalism (Cal Newport, 2019): control the tools. Focus time, digital detox, embrace boredom. This helps - when you can afford to. ⭐⭐⭐ Indistractable (Nir Eyal): control yourself. The problem is internal (also true), so build habits, since willpower depletes (hm... not really). ⭐⭐⭐ How to Do Nothing (Jenny Odell, 2019): reject. Embrace boredom as resistance. This helps - when you can afford to. ⭐⭐ Stolen Focus (Johann Hari, 2022): regulate & rebel. The problem is systemic and external (also true). Reclaim your interface. BTW: Goldfish have excellent attention spans and memory :-) Lessons from trauma books. Claude # # ⭐⭐⭐ The Body Keeps the Score (Bessel van der Kolk, 2014): trauma recall shuts down the speech area. Eye movement desensitization (EMDR) helps. So does CBT, despite what the book says. But does yoga (only a little) or neurofeedback (too little data)? ⭐⭐⭐ What Happened to You? (Bruce Perry & Oprah Winfrey, 2021): calming people down before talking. Strong connections help more than a therapist. ⭐⭐ The Myth of Normal (Gabor Maté, 2022): trauma causes cancer (no), autoimmunity (partly), ALS (?), etc. ⭐ It Didn’t Start with You (Mark Wolynn, 2016): maybe anxiety is epigenetic and heriditary? Unproven. Family Constellation Therapy is wrong ⭐⭐ My Grandmother’s Hands (Resmaa Menakem, 2017): maybe racism is a somatic (body) response to generational (epigenetic) trauma? Too little data ⭐⭐ No Bad Parts (Richard Schwartz): maybe we're not one person but a collection of parts, and interviewing family systems (IFS) helps? Unclear ⭐⭐⭐ Maybe You Should Talk to Someone (Lori Gottlieb): our memory is unreliable and therapy is messy. Connection & compassion help Most of these are based on the contested Polyvagal Theory: the nervous system scans for danger before the mind can process it. But the specific claims of the theory are wrong and it makes no other falsifiable claims. The nervous system has hierarchical responses to threat. 🟢 Not unique to PVT Social connection regulates physiology. 🟢 Not unique to PVT Unconscious threat detection (neuroception). 🟡 Weak evidence Mamellian brain (ventral vagal system) is uniquely mammalian. 🔴 Lungfish have it Reptilian brain (dorsal vagal) "shutdown" causes dissociation. 🔴 No evidence RSA directly measures vagal tone. 🔴 Contested Reptiles are "asocial". 🔴 Wrong Trauma causes body changes too. It's not just the mind. Childhood trauma persists. Relationships (connection & compassion) help more than therapy What constitutes tax residency in India? For an Indian citizen, as I understand it (after 2 hours of research): If you were in India >= 182 days: Resident\ Else, if you left India this year for employment: NRI. Else, if you are an Indian Citizen living abroad (visiting or not): If Indian Income = 120 days AND >= 365 days in the last 4 years: RNOR. Else if you are not liable to tax in any other country: RNOR. Else, if you left India for non-employment (students, tourism) and were in India >= 60 days AND >= 365 days in the last 4 years: Resident\ Else: NRI. If you ended up as a Resident\ If you were NRI in 9 of the last 10 years OR in India <= 729 days in the last 7 years: RNOR Else: ROR (Resident & Ordinarily Resident). For all practical purposes, RNOR is like an NRI. You pay tax only on Indian income, not global income. It's like a transition status for returning NRIs. AVIF compresses better than WebP and may be the "next big thing". I will be switching for all future images. Squoosh remains my choice of compressor and Ezgif's AVIF maker and GIF to AVIF are handy.

Things I Learned - 18 Jan 2026


I explored how coding agents have changed the perceived value of web apps and discovered WaveCity and Audiomass, two impressive browser-based audio editors powered by WebAssembly that bring desktop-level capabilities to the web.

This week, I learned: WebApps are a depreciated store of value. Earlier, a web-app would have impressed me because the capability to create it is rare, and the effort to create it is high. Today, when I see a "localhost:3000" or a "replit.app" domain, I mentally discount the effort behind it and ask: How rare is the capability to create this with a coding agent and how much effort is it. THAT determines the value of what I see. Part of the value is "Look ma, no hands!" and it's delightful they've learnt. Part of the value is "There's gold in them thar hills!" and use-case discovery is important. WaveCity is a WASM build of Audacity, i.e. Audacity running in the browser! Audiomass is a similar but simpler audio editor - again, WASM-based. Gemini

Things I Learned - 19 Apr 2026


I share techniques for mental closure in conversations and steering AI agents mid-task. I also cover ug search shortcuts, VS Code fixes, and why harness engineering is the new bottleneck for AI quality.

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

Things I Learned - 21 Jun 2026


I explored tree-sitter for incremental parsing, Cloudflare's Markdown for Agents, and using esbuild to compile CSS for older browsers. I also configured custom commit message instructions for GitHub Copilot in VS Code using my own prompt templates.

This week, I learned: tree-sitter is a fast incremental parser generator. That means you can use it to create a parser for any language that works even if there are errors, e.g. malformed JSON, Python, etc. It's used by most editors. For example, tree-sitter-python is a fast forgiving Python parser. There are official parsers and community parsers Programming Languages: All popular ones, less popular ones like Ada, Fortran, Lua, Zig, ... and even niche / domain-specific languages (Gleam, TLA⁺). Markup & Data Formats: HTML, XML, Markdown, JSON, YAML, TOML, CSV, ... Query, Scripting & Config: SQL, GraphQL, Bash, Dockerfile, Regex, Terraform (HCL), ... Ligature fonts are nice, but it might not be worth forming a habit out of. Claude Cloudflare introduced Markdown for Agents. This converts websites from HTML to Markdown via Accept: text/markdown for any Cloudflare endpoint which has enabled this feature. This requires a Pro account. Microgrants is a list of microgrants programs - where you can give small amounts of money, e.g. $50 - $1K as well as large fellowships over $100K. This includes student grants, creative & community grants, tech grants, social & policy grants, etc. "Animated web formats are simply video codecs ... stripped of their most powerful feature." A .webm file is likely to compress much better than an animated .webp, etc. Gemini esbuild can compile CSS files to support old browsers, e.g. nested rules, custom properties, etc. Usage: esbuild input.css --target=chrome90 --outfile=output.css. Julia Evans New jargon I learnt: Human-On-The-Loop. Treasure In Treasure Out VS Code's GitHub Copilot extension supports a github.copilot.chat.commitMessageGeneration.instructions setting that lets you add a [{"text": ...}] or [{"file": "path/to/file.ext"}] prompt to the commit message generation. I've pointed this to my git-commit.md custom prompt.

Things I Learned - 22 Feb 2026


I learned about design psychological operations like dimming lights for noise control, using AI to prep demos via Markdown, and leveraging SamGeo for geospatial vector extraction. I also explored Slint for declarative Linux apps and QR code technicalities.

This week, I learned: Psychological operations in design by Narendra Ghate When lights are dimmed people speak softer. So, dimming lights reduces sound levels in noisy offices. Rather than reduce the size of shampoo sachets (which customers and business both hate), include 2 shampoos in one sachet, tearable in the middle. Price saches at 95p with a 5p deposit for the sachet - which rag-pickers can collect and return to the retailer. People think of stains like wounds on cloth. So a "stain band-aid" where you stick a strip, and remove it after 5 min to remove the stain, is catchy. A mechanical wind-up fish that stirs the water in the bucket while clothes are soaking speeds up the process. Senthil & Amutha, founders of Payir demonstrated a re-usable fabric calendar that converts into a bag for re-use. Pretty clever! Their message at the Chennai Design Festival was that good design can be for the masses and by the masses to reclaim their time, energy, and joy. The urinary bladder works based on involuntary muscular contractions towards the end, to clear out the last bits of fluid. It's not fluid flow, it's muscle contractions. (Oh, the things I learn!) Gemini Indigo bans ghee in cabin baggage. Also coconuts, pickles, oily foods, gooey cakes, spices (masala, powders), strong-smelling food. ChatGPT New skill unlocked: how to demo without knowing what you're demo-ing. STEP 1: Copy-paste all demo pages as Markdown. STEP 2: Tell AI "Here is a demo I'll be showing. (Add context.) Tell me how I should explain this and what I should point out as specific examples. Use concise bullets." We've learnt not to do things we don't know how to (until we learn it). When AI is doing things, this is a bottleneck. Get out of the way. Stop filtering for what YOU can do. Stop learning what IT can do. Ask for it. That's faster. Learning can come later. I keep forgetting that QR codes need a white border for them to work. TerraDraw provides a unified API across multiple mapping libraries. (In the vibe-coding era, this is not as useful.) To create desktop apps declaratively on Linux, Slint, Flutter, QML(Qt) and GTK4 are options. Slint and Flutter seem to be cross platform. Slint is newer, less mature but compiles to small fast binaries and might be a good option to explore. Flutter seems more mature and fairly popular. Claude PyTorch Tracing watches one forward pass and freezes the path into a portable recipe. But it silently ignores branches your example didn't take. Claude The Internet is forking into a human internet vs an agent web LinkedIn SamGeo is a Python Package for geospatial image processing. While OlmoEarth provides geospatial embeddings, SamGeo can convert geospatial data to vector data! So you can do things like: Create the outer boundary of all apartments with swimming pools in a city Extract the shape of all lakes across the years to find out how they're changing. Terence started Foundation for Science and AI Research (SAIR) to use AI in science research. Verifiable proofs (e.g. LEAN) are a big part of this. Since AI needs to run on phones and that needs GPUs, a lot of phones might need replacement in the next few years.

Things I Learned - 22 Mar 2026


I built a scraper for Google Linked apps, tracked BitWarden’s pricing shifts, and benchmarked audio transcription models. I also explored space survival mechanics, Mars' moons etymology, and why children's vision is better for surprise than focus.

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.

Things I Learned - 24 May 2026


I explored IndieWeb syndication methods like POSSE, discovered DuckDB’s Vortex extension for remote querying, and researched how disengagement triggers "aha" moments. I also learned about limited email support for animated AVIF and using git-filter-repo for history rewriting.

This week, I learned: POSSE - "Publish (on your) Own Site, Share Everywhere" - is a self-explanatory content sharing approach. 1 minute video introduction. Alternatives are: COPE: Create once, publish everywhere. POSE: Publish once, syndicate everywhere. PESOS: Publish elsewhere, syndicate to own site. PESETAS: Publish elsewhere, syndicate everything to a silo (one of the "elsewhere"s). Cory Doctorow's essay on how Google will use AI against shoppers is a great lesson on several lessons in behavioral economics. Fighting it is hard, but here is generally good advice: ChatGPT Never buy when rushed. Set a max price. Compare 2+ options (TOTAL price) early. Shop logged-out for big purchases. Vortex is supported by DuckDB. It's a better format than parquet for analysis and querying remotely. Gemini Research suggests that insight emerges when we struggle with a problem, get stuck, then DISENGAGE (to inhibit distractions). EEGs can predict insight 8 seconds before it happens using this pattern. Gemini Books that have suggested this are: The Art of Thought (1926) The Act of Creation (1964) The Inner Game of Tennis (1974) Hare Brain, Toroise Mind (1997) Taoism's Wu Wei: "muddy water, let stand, becomes clear" Zen Koans: giving students impossible riddles Books that have argued (probably incorrectly) that an impasse is a signal to push harder, not step back, are: The Protestant Ethic and the Spirit of Capitalism (1905) by Max Weber, Edison's 99% perspiration quote The 10X Rule (2011) Grit (2016) Can't Hurt Me (2018) We are starting to talk like LLMs. Empirical evidence of Large Language Model's influence on human spoken communication Email support for animated AVIF is limited. Though it's perhaps the best compression format, and Apple Mail supports it well, Outlook on Windows does not support it. GMail converts it to GIF. Also, Google Groups does not yet support it. When I sent an animated AVIF in a Google Group email, it was replaced by the content proxy to this nonexistent URL. Portkey Models is a repo of model related data (e.g. price, max tokens, capabilities, etc.) for a large number of models. Somewhat similar to Simon Willison's LLM Prices. git-filter-repo is a surprisingly easy way to rewrite your git history to remove specific files (e.g. large files, sensitive files). It can preserve timestamps, messages, etc. It just filters out specific files as if they were never committed. This can reduce the size of repos dramatically.

Things I Learned - 25 Jan 2026