Puran
Today I Learned ArcGIS Earth Photos Reading Search Stats
  • 2025-04-08

    I went to bed late last night after an online company meeting, and when I woke up, it was still going. I tuned back in and was struck by how open and confident everyone was, regardless of role.

    The rest of the morning was filled with more meetings, but our team meetings felt flat—minimal interaction and little new information. It’s something I’ve been reflecting on.

    I spent the afternoon preparing NMEA data visuals for a presentation and began exploring LM Studio and Ollama’s Python SDK to see how local models might support MCP tasks.

    On the way home, I got my badminton racket restrung, filled a growler with beer, and grabbed barbecue for dinner.

    Xiaoyan and I also considered renting a car for a weekend trip now that I’m confident driving, but the windy forecast led us to postpone until next week.

    The heating pipes in Huanghua are all exposed on the surface. Several insulated pipes are supported by red metal frames next to a building and tree under a dark blue sky.
    → 10:12 PM, Apr 8
    Also on Bluesky
  • 🌍 #ArcGISEarth230Tips | Tip 45: Dive into Satellite & Location Details with NMEA Logs 🛰️📍

    Did you know that ArcGIS Earth not only replays NMEA GPS tracks—but also lets you explore detailed positioning and satellite data at every moment?

    📍 Go Beyond the Map with Location Information When working with an imported NMEA log, click the Location Information button to open two insightful tabs:

    🧭 Location Details

    Access key metrics about the device’s current position:

    • Latitude, Longitude, Altitude
    • Accuracy level and Fix type
    • HDOP (Horizontal Dilution of Precision)
    • VDOP (Vertical Dilution of Precision)
    • PDOP (Positional Dilution of Precision)

    These details help you assess GPS signal quality and positioning precision throughout the track.

    🛰 Satellite Information

    Visualize the satellite environment in real time:

    • View the relative position of each satellite in the sky
    • Signal strength is displayed with dynamic bars—longer and darker = stronger signal
    • A compass-style map shows satellites orbiting around the device at the center

    ✨ This view updates continuously, giving you a real-time window into satellite coverage and positioning accuracy.

    Screenshot of Garut Regency, Indonesia, from ArcGIS Earth
    → 9:46 PM, Apr 8
    Also on Bluesky
  • 🌍 #ArcGISEarth230Tips | Tip 44: Bring GPS Tracks to Life with NMEA Log Support 🛰

    Did you know ArcGIS Earth supports NMEA log file import, enabling you to visualize and analyze GPS tracks with ease?

    📡 What is NMEA 0183?

    NMEA 0183 is a widely adopted standard developed by the National Marine Electronics Association. It defines how GPS devices and marine instruments—such as sonar, anemometers, autopilots, and more—communicate using simple ASCII “sentences” over serial connections.

    It’s the most common GPS data format, supported by virtually every GPS manufacturer.

    🗺️ ArcGIS Earth Makes It Visual

    Simply import a NMEA-formatted log file into ArcGIS Earth to bring your movements to life on a map.

    🔁 Playback & Insight at Your Fingertips

    Once imported, select the NMEA layer to open the GNSS Toolbar and Dashboard:

    • ▶️ Play or pause the GPS track
    • 🐇🐢 Adjust playback speed in real time
    • 🧭 Choose your view mode: Track-Up, Keep at Center, or Keep within Window
    • 📊 View live stats: current speed, total distance, elevation gain, total time, and average speed
    • 📈 Monitor progress with an interactive elevation profile

    🎯 Real-World Application

    Whether you’re reviewing a field mission, validating GPS data, or training with real-world tracks, this feature transforms raw GPS logs into powerful, interactive stories.

    Screenshot of Zug, Western Sahara, from ArcGIS Earth
    → 11:19 PM, Apr 7
    Also on Bluesky
  • 2025-04-07

    This morning, Hamer woke up teary-eyed, missing Liuliu deeply. She cried as she got ready but gradually calmed down.

    After the dev meeting, I reflected on how to make these sessions more impactful.

    In the afternoon, I settled on NMEA playback as the focus for this week’s Earth 230 Tips, which gave me clarity and momentum. I also completed paperwork for my work-residence permit renewal—much easier now that the company is handling it directly.

    We decided to skip this week’s family badminton session. Xiaoyan felt I’ve been too critical during play, and Hamer said she was a bit tired. After dinner, we took a relaxing evening stroll and picked up some fresh fruit.

    Two people are playing table tennis in an outdoor park surrounded by trees and greenery.
    → 10:05 PM, Apr 7
    Also on Bluesky
  • 2025-04-06

    Today, I drove back to Beijing, covering 250 kilometers in 7 hours, bringing my total driving distance over the last two days to 400 kilometers—the longest I’ve ever driven. It was a challenging but rewarding experience, and by the end of the day, I truly felt like a “real driver.”

    We left around 11 a.m. and got home by 6 p.m. In the evening, we celebrated my mother-in-law’s 62nd birthday with a family dinner. Happy Birthday, Mom!

    Two women and a child pose at a table with birthday decorations and colorful lighting.
    → 11:17 PM, Apr 6
    Also on Bluesky
  • 2024-04-05

    Today, I drove on the highway for the first time—about 150 kilometers. I started out nervous but gradually found my rhythm, and by the end, I felt proud and accomplished.

    In the morning, we visited Huanghua Port and Golden Beach, where the wide river and sandy shores created a relaxing coastal feel. Hamer and Liuliu played in the sand while we strolled and chatted under the sun.

    In the afternoon, I drove Xiaoyan and Zhu Jian to Cangzhou West Station, tackling both local roads and the highway. The 100-kilometer stretch was intense at first, but I settled in and gained real confidence behind the wheel. Returning solo to Liuliu’s house, I felt calm and capable.

    That evening, the warm, everyday scene—Liu Dan in the kitchen, the kids playing—filled me with comfort and gratitude. Their family’s kindness and support made me feel truly at home.

    Two children and an adult stand near a rocky shoreline, looking at boats in the distance under a blue sky.
    → 11:10 PM, Apr 6
    Also on Bluesky
  • 2025-04-04

    We got up at 5 a.m. to head to Huanghua, where Liuliu’s dad drove us to visit her at her grandma’s place. Hamer and Liuliu were clearly thrilled to see each other, though they tried to play it cool. I was unsure about driving back to Beijing alone and hoped Liuliu’s dad could take the car while we returned by train.

    Lunch was a feast—seafood, lamb spine hotpot, and shrimp paste flatbread—that left me full well into the evening. We strolled through Xinyulou in the afternoon, and later, the four of us played mahjong until past 11. Afterward, Zhu Jian took me visit a local bathhouse for a soak and steam, spending the night there.

    A group of people is gathered around a table sharing a meal with various dishes.
    → 11:02 PM, Apr 6
    Also on Bluesky
  • 2025-04-03

    Tonight, we attended our first performance at the China National Opera House—a symphony and ballet set to The Yellow River. The music, staging, and dancing were breathtaking, and we left wanting to see it all over again.

    Since our e-bike couldn’t fit four, I planned to run home—but Hamer wanted to join. We waited backstage, caught glimpses of the dancers leaving, then walked home together, snacking on frozen grapes from 7-Eleven. We held hands, laughed, and skipped until she got tired. At Chuangshan Liquor Bar, we stopped for skewers and beer to rest.

    People are walking up and down an illuminated staircase leading to a large, ornate building with tall glass windows and lit architectural details.
    → 10:57 PM, Apr 6
    Also on Bluesky
  • The short holiday is coming, let’s go play with Hamer’s best friend.

    → 9:14 AM, Apr 4
    Also on Bluesky
  • 2025-04-02

    After dropping Hamer off at school this morning, I grabbed a big breakfast to share at home—more than we could finish.

    Most of the day was spent diving into the MCP C# SDK. While reviewing the official samples, I spotted a bug I initially planned to fix, only to find someone had already submitted a PR—so I added a supporting comment instead. I also spent time exploring how to integrate MCP with the Earth project but realized it’s not easy to integrate directly.

    In the evening, After shopping, we visited a print shop to print photos for Hamer.

    A red square sign with Chinese characters is mounted on a white wall above a fire extinguisher cabinet labeled in Chinese. 今天下午停水
    → 9:32 PM, Apr 2
    Also on Bluesky
  • 2025-04-01

    Hello, April.

    This morning, I woke up early and joined Hamer for a morning run. We ran and walked around 3 kilometers together—it was a joyful experience. On our walk back, she said the day felt like a weekend without school.

    At work, I learned I’ll be taking over the lead of a project. It didn’t hit me until I was added to the group, making me realize this new responsibility.

    In the evening, I grabbed some draft beer and skewers on a whim, and Xiaoyan couldn’t resist nibbling despite being full.

    There was a moment of misunderstanding with Hamer’s homework, where I was adamant I was right, but later discovered she was correct. I realized I need to listen to her more and not always assume my perspective is the right one.

    We also got our registration confirmed for the parent-child run at a local Half Marathon. Looking forward to it!

    A man and a child are smiling at the camera outdoors on a sunny morning.
    → 10:20 PM, Apr 1
    Also on Bluesky
  • Getting the schedule email didn’t make me excited. On the contrary, it made me a bit down when I saw the work area assigned.

    → 1:06 PM, Apr 1
    Also on Bluesky
  • Getting up early feels amazing! And going for a run with Hamer makes it even better. Hello, April!

    → 7:43 AM, Apr 1
    Also on Bluesky
  • 2025-03-31

    I spent the day optimizing the MCP server for ArcGIS Earth Automation API and troubleshooting data issues. Recorded demos using Claude as a client, which impressively handled polygon drawing and undo-delete commands.

    Evening brought news I wasn’t selected for the Beijing Half Marathon. After dinner with Xiaoyan, I helped Hamer with homework and fixed her alarm. When she wanted to join my run but hesitated, we planned a morning run for April 1st instead.

    らーめん
&10;いっぱいたましい(一杯魂)
&10;らーめん ぎょうざ(らーめん 餃子)
&10;こだわりの そざいを つかいました(こだわりの素材を使いました)
&10;あじじまん(味自慢)
&10;ごくじょうラーメン(極上ラーメン)
    → 9:52 PM, Mar 31
    Also on Bluesky
  • 2025-03-30

    Today was a leisurely Sunday that began with sleeping in until Hamer asked for help reading her textbook. Initially, I suggested she practice independently, which led her to seek Grandma’s assistance before proudly returning to demonstrate her progress.

    My coffee experiment failed due to using espresso beans and too-fine grounds for pour-over brewing. At noon, we visited the Beijing Minsheng Art Museum for “The Origin of Civilization” exhibition, where LEGO recreations of archaeological sites and a bronze figure installation particularly impressed me.

    After lunch at Sunrise Ramen in its new Wangjing location, we explored 798 Art District. At Berry Bean café, Hamer bonded with a dog named Huahua while I admired specialty bikes. The day concluded at Tiaohai Bar, where we unexpectedly stayed for a dance concert featuring memorable performances by SkyChildren, NoGender, and a duet by Quqi and Erhan.

    Two people are posing playfully in front of large, colorful, transparent panels in a well-lit room.
    → 9:42 PM, Mar 31
    Also on Bluesky
  • 2025-03-29

    This morning, Hamer and I used GPT-4o to enhance one of her drawings—she was amazed, though she noticed its text recognition could be better. After breakfast at Xiaoguan Market, we met her classmate. Hamer didn’t join the group play, preferring one-on-one time, but still enjoyed observing.

    The wind on our way back was intense, and Xiaoyan later got her braces replaced. In the afternoon, I played in a football match with the CUGB alumni team after a four-year break—starting as goalkeeper and easing back into the game.

    Since neither of us could take Hamer to dance, Grandma stepped in. Last night, Hamer cried about it, but Xiaoyan had a clever solution: Grandma would take her to class, and later they’d go to The Box to visit Miniso.

    In the evening, we all played doubles at a new badminton gym, then grabbed barbecue on the way home—a relaxing end to a full day.

    trying to use GPT-4o to create a color platte
    → 9:41 PM, Mar 31
    Also on Bluesky
  • 2025-03-28

    Today, I continued working hands-on with the MCP server, this time using the ArcGIS Earth Automation API as the application scenario. I used Cursor together with Claude 3.7 Sonnet, referencing the official Model Context Protocol servers' Python SDK to carry out some Vibe Coding. By the end of the workday, I had successfully run through the core workflow. There’s still some polishing to do before submission, but it’s coming together nicely. I tested the setup using the MCP Inspector, which worked quite well. Toward the end of the day, I switched back to using Claude as the MCP Client for another round of testing. It was genuinely exciting to see Claude follow my instructions, call various tools, and interact with Earth—I could hardly wait to complete the whole workflow!

    As usual, I went to the gym at noon. I didn’t work out much, but the key thing is maintaining the habit.

    In the evening, it got really cold. I had originally planned to go pick up Xiaoyan from Sanlitun, but halfway there, I felt frozen and asked her to take the subway instead—I met her at the station. After dinner, Hamer continued putting up English conversation stickers with me. She had even called me after school to remind me to come home early so we could do it together. I had intended to watch a movie afterward, but Hamer came running over, asking to join. In the end, we watched the animated film Goldie together.

    Hamer made herself a cloth
    → 10:38 PM, Mar 28
    Also on Bluesky
  • 2025-03-27

    Today, I was completely immersed in developing an MCP server for ArcGIS Location Services, to the point of practically skipping meals and breaks. By the end of the workday, I had finally built a simple, functional version. In the evening, I also tried submitting it to Smithery, though I still need to figure out how to properly use the deployed server—something I’ll dig into later.

    Throughout the development process, I used uv to manage the Python project. The implementation was based on the ArcGIS Services Postman Collection, and I relied heavily on conversations with Claude and the Edit Mode in Cursor to guide my work. One of the trickiest parts was that the Postman Collection didn’t provide complete parameter details to the LLM, which led to a lot of misconfigured requests that took quite a bit of time to debug.

    I used Claude Desktop as an MCP Client to test the server and found that using conversational prompts to drive the LLM for testing was a surprisingly fun experience. However, debugging wasn’t the most convenient, so I’m planning to try out the MCP Inspector to streamline the process going forward.

    This morning, I also joined the CUGB Beijing Alumni Soccer Team group chat. The admin was super welcoming and gave me a great intro to the team, along with some useful info. I signed up to play in a match this Saturday afternoon—looking forward to getting out on the field and meeting everyone.

    In the evening, the On Running shoes Xiaoyan ordered for me arrived. The fit was perfect, and I really liked how they felt—so much so that I kept walking around the house in them all night. Later on, Hamer and I put up some immersive English-language stickers around the house for speaking practice. It was a fun little parent-child activity.

    Pictures enhanced by ChatGPT 4o Image Generation (the first 2 are BoJack Horseman style)
    → 11:01 PM, Mar 27
    Also on Bluesky
  • 2025-03-26

    I was tired in the afternoon from poor sleep and felt it during badminton, though I did test Xiaoyan’s new racket and liked it.

    I also published my half-marathon training plans on GitHub Gist, upgraded Claude to Pro, and used it as an MCP Client—its power impressed me.

    In the evening, Hamer and I shopped at Hema after dinner.

    Branches of a tree with budding pink flowers against a clear sky.
    → 10:38 PM, Mar 26
    Also on Bluesky
  • 2025-03-25

    I woke up after 4 a.m. and couldn’t fall back asleep. Around 5, Hamer had two nosebleeds, so I stayed with her until daylight. She got ready early for a field trip, and I spent the day building a half-marathon plan and researching badminton gear.

    I also fixed a symbology issue at work and studied HybridWebView.

    In the evening, I joined a community-organized badminton session for the first time. The event had great energy, friendly people, and even snacks and beer. I was impressed by the group leader’s dedication—he didn’t play but focused on serving everyone else.

    snacks and beer for the community badminton game
    → 8:28 AM, Mar 26
    Also on Bluesky
  • 2025-03-24

    This morning, Hamer had a nosebleed but quickly recovered. We overslept and had to rush to get her to school.

    I researched local badminton groups and found two promising platforms.

    At work, I worked on understanding an NMEA date read error, gaining insights into GPGGA, GPGSA, and GPRMC.

    I left work early today, headed home with Xiaoyan, and took Hamer to buy a 16K vocabulary notebook, which she loved.

    During lunch, I read an article on Trump’s education policy—initially, it seemed absurd to me, but after reading, I saw some valid points and realized my first impression was too hasty.

    → 9:39 PM, Mar 24
    Also on Bluesky
  • 2025-03-24 TIL: Exploring .NET SDK Global.json, Google Map Tiles, and Vibe Coding

    2025-03-24 TIL: Exploring .NET SDK Global.json, Google Map Tiles, and Vibe Coding

    💻

    .NET SDK global.json

    In the context of the .NET SDK, global.json is a file that allows you to specify which .NET SDK version to use when running .NET CLI commands, ensuring consistent builds across different development environments. 

    • The .NET CLI searches for a global.json file in the current working directory (which isn’t necessarily the same as the project directory) or one of its parent directories. 
    • The global.json file allows you to specify the desired SDK version, ensuring that all developers and CI/CD pipelines use the same SDK version, which helps avoid build inconsistencies. 
    • A basic global.json file might look like this: 
    {
      "sdk": {
        "version": "8.0.404"
      }
    }
    

    Google Map Tiles

    Google offers 2D, 3D (Photorealistic), and Street View tiles via the Map Tiles API, enabling developers to build immersive and customized map visualizations, including access to roadmap, terrain, satellite imagery, and street-level views

    2D Tiles:

    • Image files that divide the world into an indexed grid, offering roadmap, terrain, and satellite imagery.
    • Ideal for basic map visualizations, navigation interfaces, and geographic data display.

    Photorealistic 3D Tiles:

    • 3D meshes textured with high-resolution imagery (OGC 3D Tiles format), providing realistic views of buildings, monuments, and landmarks.
    • Useful for stunning 3D perspectives, enhanced navigation, and storytelling.
    • Demo: Photorealistic 3D Tiles demo.

    Street View Tiles:

    • Panoramic street-level images that allow users to explore landmarks, natural wonders, and interiors of places like museums or restaurants.
    • Used for immersive experiences, virtual tours, and detailed location views.

    Vibe Coding

    Andrej Karpathy

    There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good.

    Semantic Diffusion

    …while complaining about how the definition of “vibe coding” is already being distorted to mean “any time an LLM writes code” as opposed to the intended meaning of “code I wrote with an LLM without even reviewing what it wrote”.

    “Official” illustrative GIF

    Personally I use “vibe coding” when I feel like this dog.

    → 9:09 PM, Mar 24
  • 2025-03-23

    Today, Hamer and I hiked Baiwang Mountain with friends, enjoying a relaxed but fading peach blossom view. Later, we joined a lively pizza-making session, then played at Taiyanggong Park badminton near Ditan Park. Meanwhile, Xiaoyan slept nearly the entire day, only getting up in the evening.

    Hamer is trying to write down what's she found changes of Vernal
    → 11:12 PM, Mar 23
  • 2025-03-22

    Today was productive. After a morning nap, I read and took notes on A Road to Classical Music, carefully analyzing the third track while listening to the corresponding pieces, which deepened my understanding.

    In the afternoon, I took Hamer to dance class, then we got a haircut and hair wash. After that, we rushed to the hospital for my allergic rhinitis, and Hamer got a pit and fissure sealant.

    On the way home, we took a quick stroll through Liuyin Park, then later went to pick up Xiaoyan from her business trip in Inner Mongolia.

    In the morning, Hamer’s grandma took her to Decathlon and bought her a skateboard. I wasn’t keen on the idea, but since it was already done, I let it go.

    Hamer's painting on herself and me
    → 10:51 PM, Mar 22
    Also on Bluesky
  • 2025-03-31

    Today was both relaxed and busy—relaxed in the morning, when I had time to ease into the day and chat with Xiaoyan, but busy in the afternoon as I rushed to update icons and fix bugs, barely finishing by 8 PM.

    In the morning, I set up MAUI, finally getting the test app running and experimenting with HybridWebView. Using ChatGPT 4.5 and Gemini 2.0 Flash, I brainstormed a test setup—the results exceeded expectations, with Gemini 2.0 Flash even generating a professional 10-page document.

    In the evening, I joined colleagues for barbecue after working overtime. We had a lively conversation about work, family, and personal interests, losing track of time until almost midnight.

    A restaurant scene features tables cluttered with empty beer bottles, used dishes, and leftover food remnants, indicating a recently finished meal.
    → 12:38 AM, Mar 22
    Also on Bluesky
← Newer Posts Page 3 of 36 Older Posts →
  • RSS
  • JSON Feed
  • Lucky
  • Archive
  • About