Puran
Today I Learned ArcGIS Earth Photos Reading Search Stats
  • 2025-05-14

    A light rain and thunder started the day, but Hamer’s cheerful breakfast from 7-Eleven lifted our mood. By noon, the sky cleared, and I went to the gym for leg training—sweaty but rewarding. I listened to a podcast about parents using exaggerated praise to boost kids’ emotional value, which I might try with Hamer.

    In the evening, our family relaxed by the river with snacks and a makeshift shoebox table. Hamer and I ran and played while Xiaoyan rested.

    At work, I designed the AI Chat backend and integrated the build process into Jenkins to improve team efficiency.

    A young girl and a woman are sitting on a boardwalk having a picnic with food and drinks, while the woman is using her phone near a waterfront.
    → 10:34 PM, May 14
    Also on Bluesky
  • 2025-05-13

    I spent the day diving into CefSharp’s JavaScript Binding and successfully ran a sample using the new registration method. Noticing a mistake in the official docs, I updated the Wiki and submitted a PR to fix it—my second accepted contribution to the project, marking a small step into open source.

    After badminton in the evening, I rode my e-bike to meet my classmate. A heavy storm hit just as I arrived at the wrong hotel—lucky timing. We chatted over dinner, waited out the hailstorm, and I rode home once the rain stopped around 9:50 p.m.

    the rain turned into a torrential storm, even with hail at one point.
    → 10:28 PM, May 14
    Also on Bluesky
  • 2025-05-12

    After work, I took Xiaoyan and Hamer to sit by the river, a spontaneous idea born during yesterday’s run. We brought fruit and chairs, chatted in the breeze, and later enjoyed hot ramen together—it was a short outing, but deeply fulfilling.

    In the morning, I woke up sore from recent workouts and considered focusing on leg strength for marathon prep.

    At work, after a meeting, I studied JavaScript Binding in CefSharp.

    A person sitting and looking at their phone while another person is standing nearby with a bag against a wall.
    → 10:40 PM, May 12
    Also on Bluesky
  • 2025-05-11

    It was a full and joyful day. In the morning, our family visited museums separately—Xiaoyan took Hamer to the Science Museum, while I explored a traditional Chinese medicine exhibit with Grandma.

    In the afternoon, I visited the Archaeology Museum and was impressed by the immersive cave-like design and bilingual display quality.

    In the evening, I unexpectedly ran 10 km, plus a 1 km sprint, while listening to The Art of Loving by the riverside.
    Before bed, Xiaoyan and I had a rare, meaningful conversation about future plans—something we hadn’t done peacefully in a long time.

    A museum exhibit features ancient artifacts, display cases, and illuminated script on dark walls.
    → 10:34 PM, May 12
    Also on Bluesky
  • 2025-05-10

    I woke up early and suddenly decided to rearrange the bedroom layout to reuse our old wardrobe. Spent the morning reorganizing, including tidying up the small room. Hamer loved the new setup and rushed to try out her bed.

    After lunch, everyone went their separate ways—Xiaoyan to a dental appointment, Hamer to dance class with Grandma, and I went to play soccer. The game lacked energy, but I chatted a bit with teammates on the subway ride home.

    Later, I met Xiaoyan and Hamer in Sanlitun, hung out with Hamer for a while, and saw a confident little girl climbing impressively, which left a strong impression.

    Children are playing on a wave-shaped climbing structure with nets and slides in a playground.
    → 10:25 PM, May 12
    Also on Bluesky
  • 2025-05-09

    It was a rainy day in Beijing. I dropped Hamer off at school with just one raincoat—she ran in through the rain, which made me feel a bit guilty. Xiaoyan and I commuted together, and during breakfast, we had a brief disagreement about the messy house.

    At lunch, I squeezed in a light gym session.

    Work was smooth: I finalized the AI newsletter and joined a productive meeting where a collegue shared a flexible new framework for the AI Assistant. I spent the evening debugging an MCP tool issue, finally resolving it by 8 p.m. before heading home exhausted.

    → 10:16 PM, May 12
    Also on Bluesky
  • 2025-05-08

    Today felt like an emotional roller coaster—starting with anxiety in the early morning, turning into worry later in the morning, followed by a glimmer of progress around noon, sinking into helplessness in the afternoon, and finally ending with relief in the evening. All of this was triggered by a technical presentation I wasn’t prepared for. … I was about to head out but figured I might as well sit in and listen to the CoP meeting to get a feel for its format and vibe. After some quick greetings, the sharing session began. The presenter’s slides were polished and their delivery was smooth. It made me a bit nervous about my own future presentation—my content is still incomplete, some parts borrow other people’s ideas, and my slide design is fairly plain.

    → 9:56 PM, May 12
    Also on Bluesky
  • 2025-05-07

    Last night, Xiaoyan came home very late because of a flight delay and woke me with the doorbell.

    This morning, Hamer anxiously asked whether she needed to rewrite her math assignment, only to learn that she just needed to make corrections—yet she still has to redo it fully this evening.

    During my commute, I admired colorful blooms and used ChatGPT for flower identification. It provided a more accurate and detailed result than the now-retired Flower Recognition app.

    I spent the day preparing my MCP presentation, generating new flowcharts from the spec and code, and planning to polish and map out the demos and Q&A.

    After work, I arrived home early and finalized Hamer’s statistics report, though she insisted that Mom help instead because she finds me “nitpicky.”

    Six different types of Chinese Roses are shown, each with a name, description, and distinct color: Golden Celebration (yellow), Hybrid Tea (red), Sexy Rexy (pink), Polyantha Rose (light pink), Peace (orange), and Iceberg (white).
    → 10:07 PM, May 7
    Also on Bluesky
  • 2025-05-06

    Returning to work after the Labour Holiday, I spent the morning helping Hamer decide on a topic for her statistics assignment—she ultimately chose to map sports courts and player numbers. By bedtime, she had sketched out her layout and is ready to colour it tomorrow. I also outlined my upcoming MCP presentation and found more substance than I had expected.

    A young girl is drawing on a piece of paper at a wooden table with various items, including an iPad and snacks, around her.
    → 11:40 PM, May 6
    Also on Bluesky
  • TIL: AI Weekly Newsletter of Week 17

    TIL: AI Weekly Newsletter of Week 17

    💻

    AI-Assisted Programming

    Go Read Peter Naur’s “Programming as Theory Building” and Then Tell Me That LLMs Can Replace Human Programmers

    Dave Gauer invokes Peter Naur’s seminal essay “Programming as Theory Building” to argue that LLMs lack the essential “theory” human programmers develop through active engagement with a codebase, and thus cannot truly replace human developers.

    To replace human programmers, LLMs would need to be able to build theories by Ryle’s definition or Naur must be wrong about the nature of programming.

    I’m betting neither is true.

    Andrej Karpathy on AI-Assisted Coding

    Andrej Karpathy’s tweet outlines a deliberate, step-by-step “inner loop” for AI-assisted coding—distinguishing serious, production-grade work from casual “vibe coding.” He emphasizes a controlled, incremental, and learning-focused workflow that:

    1. Feeds the model just enough context.
    2. Requests high-level approaches before code.
    3. Manually reviews unfamiliar APIs.
    4. Tests and commits changes.

    Vibe Coding Is Not an Excuse for Low-Quality Work

    Vibe coding—rapid, AI-driven code generation based on conversational prompts—can supercharge productivity, but Addy Osmani warns it must never be an excuse for substandard engineering. He frames AI as “your intern, not your replacement,” and provides a concise field guide for responsible AI-assisted development.

    Let’s acknowledge the good: AI-assisted coding can be a game-changer.
    …
    However, as any seasoned engineer will tell you, speed means nothing if the wheels fall off down the road.
    …
    Think of these as the new “move fast, but don’t break everything” handbook—a set of guardrails to keep quality high when you’re vibing with the code.

    Rules:

    1. Always review AI-generated code.
    2. Establish coding standards and follow them.
    3. Use AI for acceleration, not autopilot.
    4. Test, test, test.
    5. Iterate and refine.
    6. Know when to say no.
    7. Document and share knowledge.

    the illusion of ai productivity

    New Model Releases

    OpenAI: Introducing Our Latest Image Generation Model in the API

    OpenAI is bringing the natively multimodal model that powers ChatGPT to the API via gpt-image-1, enabling developers and businesses to integrate professional-grade image generation directly into their own tools and platforms.

    gpt image api

    Dia – Ultra-Realistic One-Pass TTS

    Dia is a 1.6 B-parameter text-to-speech model from Nari Labs, capable of generating ultra-realistic dialogue in a single pass.

    dia

    Cutting-Edge Vision & Captioning

    Describe Anything: Detailed Localized Image and Video Captioning

    Describe Anything is a state-of-the-art framework for detailed localized captioning (DLC) that empowers users to obtain rich, context-aware descriptions of specific regions within images or videos—specified via points, boxes, scribbles, or masks. It sets a new standard by combining innovative architecture, scalable data strategies, and robust evaluation.

    dam

    Developer Productivity Tools

    DeepWiki – Automatic Wiki Docs for GitHub Repos

    Devin AI has launched DeepWiki, a free tool that generates structured, wiki-style documentation for any GitHub repository. It simplifies understanding unfamiliar codebases by providing a comprehensive overview directly from the repo URL.

    → 11:20 PM, Apr 28
    Also on Bluesky
  • 2025-04-27

    Today, I spent a make-up workday testing our MCP server using Cherry Studio and SiliconFlow instead of Claude Desktop, and refactored poorly structured parameters into typed classes. Despite steady progress, I missed my usual excitement when tests didn’t yield expected results.

    In the evening, Xiaoyan’s friend joined us for a Brazil-themed dinner, and Hamer dove into her new extracurricular books—she even picked one up on her own, which made me quietly proud.

    Overall, I felt tired and a bit unmotivated, but reminded myself it’s okay to take things at a slower pace sometimes.

    vSeveral bamboo shoots are displayed in a basket next to a stack of bamboo stalks.
    → 11:16 PM, Apr 27
    Also on Bluesky
  • 2025-04-26

    Hamer started her day by building a tiny notebook and sharpening a pencil to match. After breakfast, we returned to Tianqiao Theater for Into Ballet, arriving early to join the introduction part and waiting for a while at the backstage send-off after the performance.

    Following a quick lunch, I headed to a soccer match—playing goalkeeper and leading a thrilling late comeback—while Xiaoyan took Hamer to ballet and a dental appointment. Later, we reunited at a riverside café with live music and helped rescue a mandarin duck from aggressive peers using orange peels.

    In the evening, we relaxed for two hours at Liuliu’s dad’s barbershop, where we all got fresh haircuts and enjoyed the lively chatter.

    Into Ballet
    → 11:32 PM, Apr 26
    Also on Bluesky
  • 2025-04-25

    Xiaoyan dropped Hamer at school before leaving for Handan on a business trip.

    At work, I completed a major cleanup of our MCP server projects—adding tests, updating pyproject.toml, managing dependencies, and refreshing READMEs—wrapping it up by 8 p.m.

    In the evening, I briefly reviewed Hamer’s math homework. She delighted in role-playing as the teacher and reading her Chinese characters aloud. Later, she practiced the Rubik’s cube—her finger movements growing more confident—even as sleepiness soon set in.

    Hamer made the old school phones
    → 12:01 AM, Apr 26
    Also on Bluesky
  • 2025-04-24

    Tonight was my first real attempt this year to help Hamer with her homework. She pointed three enhancements after my requesting: no asking her to explain answers, no interrupting her snacks, and she’d prefer Mom help instead.

    Her teacher had shared extra exercises and called to discuss her struggles—rushing through problems, getting distracted, or not fully grasping concepts. It made me realize I need to be more involved in her learning going forward.

    In the morning, Xiaoyan took Hamer to school. Hamer joked, “Do you even know where my school is?”—a funny moment between them.

    At work, I focused on MCP transport types, explored uv, and began organizing the project for long-term maintenance. Slow but satisfying progress.

    Hamer's work with routine. A colorful children's drawing featuring flowers and abstract designs on one half, and a child with playful text, hearts, and some numbers on the other half.
    → 11:20 PM, Apr 24
    Also on Bluesky
  • 2025-04-23

    This morning’s meeting felt dull—low energy all around, and I wasn’t in top form either. I hate feeling that way but haven’t figured out how to fix it yet.

    I continued refining the MCP server based on ArcGIS Portal Service, uncovering more subtle issues as I went.

    In the afternoon, I had the next stage of my root canal—cavity filling and crown prep. Thankfully, it wasn’t painful.

    Evening was spent fixing Xiaoyan’s Line account. After trying and failing to recover it with a temporary number from sms-man, we had to start fresh—meaning re-adding all her contacts.

    On the tech front, I signed up for WildCard, activated Anthropic’s API, and tested Claude Code. With Gemini available via Google AI Studio, I’ll hold off for now. Next up: exploring the llm CLI tool with its Gemini and Anthropic plugins. Looking forward to diving deeper.

    Two people wearing blue shirts are running near a distinctive, large structure resembling a bird's nest, with white barricades and tents in the background.
    → 12:11 AM, Apr 24
    Also on Bluesky
  • 2025-04-22

    I woke up early and dove back into the official MCP docs—so well written that re-reading them sparked new insights. It helped me refine some lingering thoughts from yesterday’s discussion, giving me more clarity moving forward.

    The morning was filled with meetings. Our usual weekly session felt oddly quiet with few attendees, but the room filled quickly for Zhongzhi’s presentation on supplemental medical insurance—a stark contrast.

    Before lunch, there is an update on the UC planning, maybe there still a chance.

    In the afternoon, I focused on the Portal Service MCP server using Cursor and Claude 3.7 Sonnet. But this time, the generated results didn’t click. I spent hours debugging with little progress. It made me think: maybe it’s time to go back to basics and handwrite the logic based on the docs for deeper understanding.

    After work, I joined a relaxed basketball session. No hard running, just fluid movement. It felt great—no back pain this time.

    And yes, the Rubik’s cube craze is still going strong—I solved it in the bathroom, during my ping-pong break, while walking, resting, and again after getting home. Each solve is faster and smoother. It’s become my steady little ritual throughout the day.

    A person wearing a black helmet and glasses is smiling while holding a solved Rubik's Cube in a sunny outdoor setting.
    → 9:41 PM, Apr 22
    Also on Bluesky
  • 2025-04-21

    Today, I felt deeply immersed in my own world, until my colleague came by in the evening to discuss some MCP-related matters. Although I didn’t have all the answers, our conversation clarified many things I want to explore with MCP. I felt like I had broken out of a closed-off state. When I later worked on the AI news, I found myself reenergized.

    In the morning, I stuck to my plan and made steady progress, but by the afternoon, my energy dipped. I wasn’t sure if it was due to poor sleep or the slow performance of the local model, which started to frustrate me.

    Throughout the day, I became completely absorbed in solving the Rubik’s cube. I practiced while waiting for Xiaoyan, during my midday walk, at lunch, back at the office, waiting at traffic lights, and even after dinner. The Rubik’s cube was my constant companion today.

    I became completely absorbed in solving the Rubik’s cube
    → 11:25 PM, Apr 21
    Also on Bluesky
  • Here is the magic for puran.blog/2025/04/2…

    → 11:22 PM, Apr 21
    Also on Bluesky
  • 2025-04-20

    This morning, Hamer and I headed out to watch the Beijing Half Marathon. She was fascinated by the huge crowd of runners, and we stayed until the 8km cut-off point.

    Craving lamb offal soup, we went to Xiaoguan Market. Hamer curiously tried my lamb tripe and ended up eating the entire extra portion I had ordered.

    At home, I practiced solving the Rubik’s Cube, following a tutorial. Xiaoyan tried to nap beside me while I made clicking sounds—she was not thrilled. Later, she took Hamer to a café with her math homework. They also discovered a massive playground near Side Park—definitely worth a revisit.

    I kept practicing the Cube and finally solved it around 3 p.m.—an exciting moment. I continued practicing until I got faster, then watched a Korean drama that was underwhelming but passable. By night, I felt mentally drained and didn’t want to start anything new.

    Hamer and I headed out to watch the Beijing Half Marathon
    → 11:13 PM, Apr 21
    Also on Bluesky
  • 2025-04-19

    It was a vibrant Saturday.

    We started the day with the Beijing Half Marathon Family Run, completing the 2km race hand in hand. After enjoying generous race packs and a relaxing brunch, Xiaoyan and Hamer went to dance class while I played goalie at football—earning praise for some solid saves.

    Later, we explored Sanlitun, talked about DIY doll-making, drank in a riverside bar, had some late-night noodles, and enjoyed Reply 1988 together before bed.

    We took part in the Beijing Half Marathon Family Run
    → 11:05 PM, Apr 21
    Also on Bluesky
  • TIL: Top AI News of Week 16

    TIL: Top AI News of Week 16

    💻

    AI as Normal Technology

    The essay “AI as Normal Technology” by Arvind Narayanan and Sayash Kapoor, presents a perspective that contrasts with both utopian and dystopian narratives surrounding artificial intelligence (AI). Instead of viewing AI as an autonomous, potentially superintelligent entity, the authors argue that AI should be considered a “normal technology”—a tool that, while transformative, remains under human control and integrates gradually into society.

    To view AI as normal is not to understate its impact—even transformative, general-purpose technologies such as electricity and the internet are “normal” in our conception. But it is in contrast to both utopian and dystopian visions of the future of AI which have a common tendency to treat it akin to a separate species, a highly autonomous, potentially superintelligent entity.
    The statement “AI is normal technology” is three things: a description of current AI, a prediction about the foreseeable future of AI, and a prescription about how we should treat it.
    …
    A note to readers. This essay has the unusual goal of stating a worldview rather than defending a proposition. The literature on AI superintelligence is copious. We have not tried to give a point-by-point response to potential counter arguments, as that would make the paper several times longer. This paper is merely the initial articulation of our views; we plan to elaborate on them in various follow ups.

    ai-as-normal-technology

    In the Matter of OpenAI vs LangGraph

    The article discusses the ongoing debate in the AI community between two approaches: using large language models (LLMs) directly versus integrating them with more structured workflows. This debate is highlighted by the recent release of OpenAI’s “Practical Guide to Building Agents,” which has received mixed reviews compared to Anthropic’s equivalent guide.

    At the heart of the battle is a core tension we’ve discussed several times on the pod - team “Big Model take the wheel” vs team “nooooo we need to write code” (what used to be called chains, now it seems the term “workflows” has won).
    …
    You should read Harrison’s full rebuttal for the argument, but minus the LangGraph specific parts, the argument that stood out best to me was that you can replace every LLM call in a workflow with an agent and still have an agentic system.

    • LangChain - How to think about agent frameworks
    • OpenAI - A practical guide to building agents

    Harrison Agent Frameworks table

    Introducing OpenAI o3 and o4-mini

    On April 16, 2025, OpenAI introduced two new AI models—o3 and o4-mini—marking significant advancements in reasoning capabilities and tool integration within ChatGPT.

    For the first time, our reasoning models can agentically use and combine every tool within ChatGPT
    …
    The combined power of state-of-the-art reasoning with full tool access translates into significantly stronger performance across academic benchmarks and real-world tasks, setting a new standard in both intelligence and usefulness.

    OpenAI o3 and o4-Mini Are More Impressive Than I Expected

    The article concludes that OpenAI’s o3 and o4-mini significantly advance AI capabilities, challenging Google’s dominance. These models integrate perception, action, and reasoning into a cohesive system, marking a new dimension in AI. Though not perfect, their capabilities and cost-effectiveness position them as strong competitors. Further testing is needed to fully grasp their potential and limitations.

    o3 and o4-mini are the first AI systems to approach full interactivity across three layers: modalities (perception), tools (action), and disciplines (cognition). Senses, limbs, cortex.
    In a way, this release marks the end of “AI model” as a useful category. We kept calling them models out of habit. But these should have been called systems all along.

    OpenAI Codex CLI

    The Codex CLI is open-sourced. Don't confuse yourself with the old Codex language model built by OpenAI many moons ago (this is understandably top of mind for you!). Within this context, Codex refers to the open-source agentic coding interface. [...]

    I like that the prompt describes OpenAI’s previous Codex language model as being from “many moons ago”. Prompt engineering is so weird.

    → 9:59 PM, Apr 21
    Also on Bluesky
  • A 3:2 ratio 3D-rendered capsule, horizontally floating against a soft blue background. The left half is solid Esri blue, featuring the white Esri logo and the slogan “THE SCIENCE OF WHERE”. The right half is transparent, fully filled with map textures, elevation details, road networks, and abstract GIS-style lines. The capsule has a realistic, high-tech appearance, with soft lighting and balanced composition. The word “ArcGIS” is clearly displayed on top of the internal map in the transparent section, standing out prominently.

    → 2:29 PM, Apr 20
    Also on Bluesky
  • I made it after two hours continuous learning from youtu.be/KFn-Cw_K1…

    → 2:24 PM, Apr 20
    Also on Bluesky
  • 2025-04-18

    A rainy day in Beijing set the tone for deep reflection and small emotional turns.

    → 10:17 PM, Apr 18
    Also on Bluesky
  • 2025-04-17

    While fixing an AI build issue during work, I accidentally dampened a colleague’s enthusiasm by responding too formally to her design share—something she later kindly pointed out.

    At home, Hamer’s mystery about being kept after school had us guessing until she finally confessed: she scored a bit low on her math test.

    I ended the day with a slow jog and stumbled upon a riverside bar serving craft IPA—a peaceful, unexpected find.

    Arrow Factory Brewing
    → 10:47 PM, Apr 17
    Also on Bluesky
← Newer Posts Page 4 of 39 Older Posts →
  • RSS
  • JSON Feed
  • Lucky
  • Archive
  • About