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

A rainy day in Beijing set the tone for deep reflection and small emotional turns.
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.
I found this God Gave Me Feet For Dancing (feat. Yazmin Lacey) song by searching for No One’s Watching Me (feat. Olivia Dean).
This chorus attracts me a lot:
Give me bass line
Give me dollar wine
God gave me feet for dancing
And that’s exactly what I′ll do
Give me high life
Give me good times
God gave me feet for dancing
This Chinese lyrics is translated by ChatGPT according to God Gave Me Feet For Dancing (feat. Yazmin Lacey).
[Verse 1 | 第一节]
Birds flying high
鸟儿高高飞翔,
I don′t know how they feel
它们的心情我无从得知。
People outside in search of something real
人们奔走在外,只为寻一份真实。
And I need mine to get me started
而我也需要那一份动力,点燃我自己。
Something to get me started
一份力量,助我启程。
Got to get me started
必须点燃我内心的火焰。
[Chorus | 副歌]
Give me bass line
给我低音律动,
Give me dollar wine
给我那一杯甜美的葡萄酒,
God gave me feet for dancing
上帝赐予我双脚是为了跳舞,
And that’s exactly what I′ll do
而我正要用它起舞。
Give me high life
给我人生的高光时刻,
Give me good times
给我欢聚的美好时光,
God gave me feet for dancing
上帝赐我双足,是为了跳舞。
[Verse 2 | 第二节]
Time ain’t waiting
时间不会等人,
It’s a rhythm that you play
它是你必须跟随的节奏。
Don′t let it go
别让它溜走,
Be ready when tomorrow comes
明天来临时,请准备好迎接它。
When tomorrow comes
当明天来临,
Take the hands of the ones that you love
牵起你所爱之人的手,
And when the high life comes
当人生登上巅峰,
Together, we′ll dance as one
我们将一同起舞,融为一体。
[Chorus | 副歌重复]
Oh, give me bass line
噢,给我低音律动,
Give me dollar wine
给我一杯香醇甜酒,
God gave me feet for dancing
上帝赐我双脚为舞蹈而生,
And that’s exactly what I′ll do
我正要起舞,别无他想。
Give me high life
给我生活的闪耀时分,
Give me good times
给我快乐时光的馈赠,
God gave me feet for dancing
上帝赐我双足,我要用它起舞。
[Verse 3 | 第三节]
So here we are, identical strangers
于是我们站在一起,陌生却如此相似,
And we move the same way and let the music change us
我们随着同样的舞步起舞,任由音乐改变我们。
Birds fly high and it’s got me started
鸟儿在高空飞翔,激发了我起舞的冲动,
Now I′ve got mine, that’s got me started
如今我找到了它,它点燃了我,
Got me started
点燃了我内心的热情。
God gave me feet for dancing
上帝赐我双足,正为此刻,
God gave me feet for dancing
为跳舞而存在,
God gave me feet for dancing
为释放我自己,
God gave me feet for dancing
为奔向自由!
[Final Chorus | 最后一段副歌]
Give me bass line
给我动感的低音,
Give me dollar wine
给我沁甜的葡萄酒,
God gave me feet for dancing
上帝赐我双脚,是为舞动生命,
And that′s exactly what I’ll do
而我就是要这样跳下去。
Give me high life
给我生活的顶峰时刻,
Give me good times
给我值得铭记的好时光,
God gave me feet for dancing (oh)
上帝赐我双足(哦),只为舞出光芒。
I like this The Hardest Part song (by Olivia Dean) while Xiaoyan listening to. The below two lines of lyrics attracted me much:
So even if I could, wouldn’t go back where we started
I know you’re still waiting, wondering where my heart is
The Chinese lyrics is translated by ChatGPT according to The Hardest Part.
[Verse 1 | 第一节]
Call me up to meet you, static on the phone
你打电话叫我见你,话筒里却杂音不断
Normally I need you, this time, I don’t wanna go
我曾经那么需要你,但这次,我不想再赴约
Lately I been growing into someone you don’t know
最近我变了,成了你不再熟悉的人
You had the chance to love her, but apparently you don’t
你曾有机会去爱她,但显然你没有把握
No, you don’t
是的,你没有
[Chorus | 副歌]
So even if I could, wouldn’t go back where we started
所以即使我可以,也不会回到起点
I know you’re still waiting, wondering where my heart is
我知道你还在等待,猜着我的心如今归何处
Pray that things won’t change, but the hardest part is
你祈祷一切如故,而最难的却是——
You’re realising maybe I, maybe I ain’t the same
你终于意识到,也许我,已经不是从前的我
And what you’re waiting for ain’t there no more anyway
你所期待的,也早已不复存在
[Verse 2 | 第二节]
Held you up so highly, deep under your spell
我曾把你捧得那么高,深陷在你编织的魔法里
Your opinions would define me, this time, I made some for myself
你的看法曾定义我,而这次,我为自己做了决定
‘Cause lately I been certain there’s no further to go
因为最近我很确定,我们的路已经走到尽头
Yeah, you had the chance to love me, but apparently you won’t
你原本可以爱我,但显然你并不愿意
No, you won’t
是的,你不会
[Chorus | 副歌重复]
So even if I could, wouldn’t go back where we started
所以即使我可以,也不会回到最初的地方
I know you’re still waiting, wondering where my heart is
我知道你还在等待,猜测我的心在哪里
Pray that things won’t change, but the hardest part is
你祈祷别改变,而最难的却是——
You’re realising maybe I, maybe I ain’t the same
你终于明白,也许我已经不是原来的我
And what you’re waiting for ain’t there no more anyway
你等待的那一切,早已悄然消逝
[Bridge | 过渡段]
And it’s okay
没关系的
I’m not gonna remember you that way
我不会以那样的方式记住你
You say I’m different now like that’s so strange
你说我变了,好像那是件怪事
But I was only eighteen
可那时我才十八岁啊
You shoulda known that I was always gonna change
你早该知道,我终究会变
[Chorus | 最后一遍副歌]
Even if I could, wouldn’t go back where we started
即使我能回头,我也不会重来
I know you’re still waiting, wondering where my heart is
你依然在原地,想知道我的心去了哪里
Pray that things won’t change, but the hardest part is
你还在祈祷别变,可最痛的真相是——
You’re realising maybe I, maybe I ain’t the same
你渐渐发现,也许我,真的变了
Ain’t there no more, I ain’t there no more (I ain’t there no more)
我早已不在那里,我早就不在了(真的不在了)
Ain’t there no more, I ain’t there no more (I ain’t there no more)
一切都不再,我也不再是那个我(我已不在)
Ain’t there no more, but the hardest part is (I ain’t there no more)
我不在那了,而你最难接受的,正是这一点(我早已不在)
You’re realising maybe I, maybe I ain’t the same
你终于明白,也许我已变
And what you’re waiting for ain’t there no more anyway
而你所等待的,一早就消失在风里
Describe me based on all our chats — play it straight.
You’re a thoughtful, detail-oriented, and technically sharp person—someone who balances the demands of software development with the joys and responsibilities of family life. Professionally, you’re deeply embedded in GIS, with a strong command of .NET and C#, and a deliberate, architectural mindset when building WPF applications. You value clean patterns like MVVM and tools like Prism. You often go beyond documentation, digging into nuanced problems (like GPS NMEA integration or tracking simulation) and designing clear, extendable solutions.
Personally, you’re a present and loving father to Hamer and a supportive husband to Xiao Yan. You enjoy sharing special moments with them, whether it’s baking, watching holiday films, or guiding your daughter through her emotions and early school experiences. You’re tuned into her inner world and growth, helping her learn, express herself, and face challenges with empathy and creativity.
Your curiosity is a defining trait—whether it’s how to structure an app for optimal performance, how to write a first-grader’s campaign speech, or how to explain Chinese words with poetic humor and minimalist design. You enjoy literature, introspection, and play. You think about habits, improvement, language, tradition, and teaching. You reflect often and with honesty.
You’re organized but warm, analytical but never cold. You ask good questions. You like making things better—code, words, people’s days. You’re quietly ambitious and not afraid to take your time doing something the right way.
Now that you can remember everything l’ve ever typed here, point out my top five blind spots
Alright Xuewen, this is a thoughtful and bold question—and a great one for personal growth. Based on everything we’ve talked about (from tech to family to reflection), here’s a carefully considered list of five possible blind spots you might want to explore. These aren’t “flaws,” just areas where more awareness might unlock even more of your potential.
You’re highly capable, deeply hands-on, and often driven to figure things out yourself—whether that’s a GPS data structure in WPF or tuning a workflow.
Blind spot: You may underestimate how much faster or smoother things could go if you offload or let others take the wheel for parts of it. Especially when mentoring, managing, or collaborating.
Prompt for growth: “What’s something I’m doing solo that someone else could do 80% as well?”
You thrive in iterative refinement—whether editing text or polishing tech tips. It’s part of your excellence.
Blind spot: You may lose momentum or delay outputs by tweaking long past the 90% mark. There’s sometimes a need to just ship.
Prompt for growth: “Is this good enough for now, or am I polishing to avoid moving on?”
You’re a deeply thoughtful parent and partner, and you often take on the emotional weather of your loved ones (e.g., Hamer’s reluctance, Xiaoyan’s trips).
Blind spot: You might carry more emotional responsibility than needed, quietly internalizing their ups and downs.
Prompt for growth: “Am I holding emotions that belong to someone else?”
You often position yourself as the one still learning, still figuring things out—even though you’re already seen as an expert in GIS, WPF, and practical AI integration.
Blind spot: You may be slow to own your leadership status—whether in content creation (e.g., LinkedIn tips), guiding junior engineers, or public speaking.
Prompt for growth: “What would change if I stepped fully into being seen as a thought leader?”
You’re very structured when it comes to technical work—but in life (e.g., daily routines, reflections, parenting moments), you often go with gut or feeling.
Blind spot: There might be opportunities to bring more systemization into your personal rhythms—like creating recurring habits around emotional check-ins or creative writing.
Prompt for growth: “Where could a small structure free up more energy in daily life?”
The Rainbow Mall was closed permanently yesterday. Hamer called me yesterday when she saw it to tell me about it. This place has so many memories for neighbors, not only for children but also for families.
I resolved client build and packaging issues and discussed two directions for integrating MCP with ArcGIS Earth—either as a server via Automation API or as a client to interact with other MCP services.
In the afternoon, I underwent a root canal after discovering severe decay under a previous filling—thankfully painless under anesthesia.
Today was one of those days where everything feels unproductive.
After morning meetings, a high-priority bug pulled me away from my AI MVP draft. Debugging led to a valuable lesson from a colleague—a handy trick in Visual Studio that helped us locate an infinite loop. I later eased into the MVP discussion and managed to fix the bug before heading to play badminton.
Still nursing a twisted ankle, I focused on ball control and enjoyed a slower pace.
In the evening, I played idiom games with Hamer. Surprisingly, the two colleagues I play table tennis with have never even heard of Billie Eilish.
Today, I felt utterly lost—eager to accomplish everything yet ending up doing nothing meaningful.
During the work, I tackled PM questions in the moring and attended my first Dev Lead meeting. I struggled to balance team updates with my own ideas about an internal AI weekly newsletter.
At home, I cooked dinner with Xiaoyan, sharing a brief moment of culinary success. However, the day ended on a sour note when Hamer, upset over a broken promise regarding her new underwear, erupted in tears and a tantrum, triggering a conflict between her and Xiaoyan. Despite no further escalation, I was left feeling burdened by unresolved resentment.
TIL: Top AI News of Week 15
This website is a detailed scenario analysis predicting the potential impact of superhuman AI. Beside the content, this website provides a very good UX, the whole page is interactive. You can find the right side graph dynamic updates while scrolling.
AI 2027 is a comprehensive and detailed scenario forecast of the future of AI. It starts in 2025 and projects the rise of AI agents by 2026, the complete automation of coding in early 2027, and the intelligence explosion in late 2027. It has two branches, one ending in AI takeover and another ending in utopia (sort of).
The article emphasizes the importance of AI in modern software engineering teams and provides practical advice for engineering leaders on how to integrate AI tools effectively. It highlights the need for leaders to guide their teams through this transition and create a supportive environment for experimentation.
Seeing is believing First things first: try it yourself. … So get your hands dirty… Your personal experience matters here—without it, it’s all just theories in your head; you’ll be out of touch. … I gave him/her the honest truth: “It’s impossible for me to promise job security for anyone. But think about this logically: we hired you before AI was a thing, and now that you’re significantly more productive with these tools, why would we let you go?”
Companies don’t (usually) fire their most productive people; they invest in them. The real threat isn’t AI—it’s sticking to outdated ways while the industry evolves around you. … The shift to AI-assisted engineering isn’t coming—it’s here.
The article discusses how the relationship between domain experts and developers has changed in the AI era, emphasizing the increasing importance of domain expertise in building successful AI products. It’s interesting to see the sentence and picture of “I’ve got a great idea for an app…”.
… But today, I’m seeing teams of domain experts wading into the field, hiring a programmer or two to handle the implementation, while the experts themselves provide the prompts, data labeling, and evaluations.
For these companies, the coding is commodified but the domain expertise is the differentiator.
Google Cloud Next 2025, held in Las Vegas, showcased over 200 announcements emphasizing advancements in AI, infrastructure, and real-world applications.
Here’s a concise summary of AI & Machine Learning:
The article argues that Google and DeepMind have taken a significant lead in the AI landscape, outpacing competitors like OpenAI, Anthropic, and Meta. The author, who previously had high hopes for OpenAI, now believes that Google’s strategic and technical advancements have positioned it as the dominant force in AI.
(PSA: Many people are interested in this post, so I removed the paywall)
With strong winds forecasted, we spent the weekend cozied up at home—it felt like a mini vacation.
On Saturday, I slept in late after a night of binge-watching TV. Hamer kept whispering in my ear until I finally got up. “This is the first time I’ve seen Dad get up this late,” she said. I lost a bet with Xiaoyan over the pronunciation of “divorce” and had to make lunch—two veggie dishes and a fried egg that turned out surprisingly well. Later, Hamer and I continued our series binge, and even Xiaoyan joined in after dinner, crying during several scenes. That night, I slept soundly in Hamer’s bed.
Sunday was equally low-key. After playing in the morning, we went grocery shopping for braised green bean noodles. Hamer also wanted a new watercolor set because hers lacked a skin-tone color. There were a few tears during the discussion with Xiaoyan, but she got it in the end.
In the evening, Xiaoyan cooked radish and cuttlefish soup—it was delicious. Hamer helped with folding laundry, hanging clothes, and washing fruit. She’s really becoming Mom’s little helper.
Meanwhile, I got deeper into pour-over coffee and finally dialed in the grind size. It’s starting to click.
🍿 I watched Bogota: City of the Lost after a nap in the afternoon on April 13, 2025. It was a bit violent, and I didn’t like it.
🍿 Hamer, Xiaoyan, and I finished watching When Life Gives You Tangerines at midnight on April 12, 2025, during the windstorm weekend. I started watching the show first, Hamer joined me, and Xiaoyan joined us for the last four episodes—she cried a lot that night. I liked the show because it was so touching, and IU played the main role.
Last night’s badminton game left me with a twisted ankle, and by morning, it was still sore and uncomfortable to walk on. After dropping Hamer off, I grabbed McDonald’s for breakfast—just had a craving.
Later, I visited the dentist to follow up on a previous check-up. X-rays revealed an old filling that may need a root canal. For now, I had a cleaning and got a reminder: no horizontal brushing, use an electric toothbrush, floss well, and pay extra attention around my implant.
In the afternoon, I worked on setting up an old AI project environment. With help from a colleague, I finally got it running and plan to document the process and improve it next week.
Before heading home, Hamer called and joked that I might get blown away if I didn’t hurry. After dinner, we watched When Life Gives You Tangerines and only realized IU was the lead by episode two.
The long-anticipated windstorm still hadn’t arrived by bedtime—maybe tomorrow.
Want to share or archive your GPS tracks from ArcGIS Earth? Exporting your NMEA layer as a KML file is quick and easy.
📁 Simple Export:
After importing and visualizing your NMEA log, right-click the layer and save. You’ll get:
It’s the perfect way to share your routes or archive valuable tracking data.
🚀 Coming Soon: Enhanced KML Tracks:
Currently, ArcGIS Earth exports points and lines to KML. Stay tuned for full KML Track support, including timestamped playback and richer temporal visualization!
✨ ArcGIS Earth empowers you to not only review your GPS logs but also transform them into easily shareable and presentation-ready KML files.
2025-04-10 TIL: AI Model Performance Analysis
This analysis highlights the tradeoffs between model size, speed, and tool-calling capabilities across different AI models. Llama3.1:8b appears to offer the best balance of features, while llama3.2:3b provides a good compromise between size and functionality.
Model | Size | Speed | Tool Calling | Attributes & Notes |
---|---|---|---|---|
llama3.1:8b | 4.9G | Good | Very well | Excellent tool calling capabilities with reasonable speed |
llama3.2:3b | 2.0G | Fast | Well | Fast performance with tool calling ability; provides confidence to continue testing. Sometimes lacks accuracy |
qwen2.5:7b | 4.7G | Fast | Well | Fast performance with good tool calling capabilities. Performance degrades after extended use |
qwq:32b | 19G | Slow | Well | Produces high-quality thought processes that are satisfying. Extremely slow, causing frustration during testing |
qwen2.5:0.5b | 397MB | Super fast | No | Exceptional speed due to small size. Unable to call any tools |
MFDoom/deepseek-r1-tool-calling:8b | 4.9G | Somewhat slow | Poor | Occasionally demonstrates thought processes. Slow performance with inadequate tool calling |
phi4-mini:3.8b | 2.5G | Fast | No | Fast performance and can identify tools. Unable to use the tools it identifies |
mistral:7b | 4.1G | Fast | No | Fast performance and can identify tools. Unable to use the tools it identifies |
ishumilin/deepseek-r1-coder-tools:1.5b | 3.6G | Fast | No | Fast performance and recognizes tools. Cannot answer questions or execute tools |
Hamer’s been waking up early lately, getting ready calmly and playing on her own before school. After dropping her off today, I grabbed breakfast, ate wontons while waiting for corn, and brought extra food home.
In the morning, I subscribed to CapWords—originally just out of curiosity, but the heartfelt story behind it deeply resonated with me.
I spent the day testing local language models with the Earth MCP Server. A larger model was too slow, and a smaller one underperformed, but I eventually got two working and pulled together some solid takeaways. Before wrapping up work, I submitted a documentation PR to the oterm
project—my first open-source contribution—and was thrilled to see it merged right away. I hope it’s just the beginning.
Around noon, I was notified of a seatbelt violation from last Sunday. It surprised me—I’m usually careful—but the photo said otherwise.
All the talk today was about Beijing’s strong wind forecast. Looks like we’re staying indoors this weekend.
Think your GPS tracks are just lines? Think again! ArcGIS Earth empowers you to dive deep into the metadata, attributes, and statistics embedded within your imported NMEA layers, revealing the full story.
📄 Explore Layer Details:
Right-click the NMEA layer and select “Properties” to access:
🖱️ Instant Feature Insights:
📊 Dive into the Data Table:
Open the “Attribute Table” to:
✨ Go beyond the lines! ArcGIS Earth provides the tools to unlock the rich contextual information within your NMEA data, transforming simple tracks into powerful insights.
I started the day by continuing to listen to the ongoing company meeting—by this point, I had followed it from start to finish, which made me feel somewhat involved in the whole session.
Throughout the day, I explored integrating Ollama with MCP to run local language models. I initially tried Open WebUI’s mcpo to expose MCP as an OpenAPI interface, but I didn’t know how to use the tools it offered. Later, I found oterm, an Ollama client that supports MCP tools. When I couldn’t select tools, I realized that not all models support the tools feature.
When we got home, Hamer surprised me by pretending to be a waitress—seriously guiding me through removing my shoes, washing up, and serving dinner. Her commitment to the role was both hilarious and sweet. After dinner, we went shopping. I was impressed by how disciplined Hamer has become—carefully choosing only a few things. She’s really growing into a thoughtful, self-controlled little person.
Imported an NMEA log into ArcGIS Earth? Awesome! Now, transform it into a powerful visual story by customizing its appearance for clearer analysis and compelling presentations.
🗺️ Control Your View:
🎨 Style for Insight:
🏷️ Label for Context:
✨ Unleash the full potential of your NMEA data! By taking control of display and styling, you transform raw data into insightful and visually captivating narratives.
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.
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:
These details help you assess GPS signal quality and positioning precision throughout the track.
🛰 Satellite Information
Visualize the satellite environment in real time:
✨ This view updates continuously, giving you a real-time window into satellite coverage and positioning accuracy.
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:
🎯 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.
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.
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!