puran's post

This morning, Hamer snuggled into bed, and I enjoyed the peaceful warmth. After dropping her off, I felt calm, a feeling that lingered from finishing my journal last night.
Reflecting on how to guide Hamer, I picked up Positive Discipline. Xiaoyan and I had discussed her unkind behavior toward friends. I considered punishment but felt uneasy, so I decided on a positive conversation instead.
That evening, we talked. I shared my thoughts, and she listened. We agreed on key ideas: respect others, take space when needed, and repair relationships with actions like a note or hug. Afterwards, Hamer eagerly wrote an apology letter, decorated it, and seemed at ease.
Work was light today. I addressed feedback on the G feature and summarized key points on System.IO.Pipelines. Xiaoyan took the day off and picked up Hamer. I also decided to keep my journal concise for privacy and sustainability.
I woke up relatively early this morning, and Hamer and I headed to the small square, full of excitement to continue our training. The weather was noticeably cooler than yesterday, but our enthusiasm remained undiminished. We started with agility ladder drills, ran two laps, and played badminton for a while. Just then, Hamer’s classmate arrived. My original plan was to replicate yesterday’s activities: practicing the agility ladder, then playing tennis, and finishing with the ring toss game. However, Hamer seemed to lose interest in the agility ladder. She felt she had practiced enough and didn’t want to continue.
I insisted on sticking to the plan and tried to persuade her to join. At first, she resisted; then, she ignored me entirely, focusing instead on setting up the props for the ring toss game. While I was practicing with her classmate, I noticed Hamer arranging the materials for the ring toss. Deliberately, I told her, “Even if you get it ready, we’re not going to play it right now.” Hamer probably felt ignored, and her frustration boiled over—she burst into tears out of anger. My patience wasn’t great either. Instead of comforting her, I criticized her behavior. Hamer, now even angrier, directed her frustration at her classmate, saying some hurtful things. What had started as a cheerful morning ended in an unpleasant fallout. Frustrated, we hastily packed up and went home.
On the way back, I felt sorry for Hamer’s classmate and saddened by the conflict. Deep down, I realized the situation wasn’t entirely her fault; I bore some responsibility too. I had approached the activity as a structured training session, trying to recreate yesterday’s joy, while Hamer saw it as playtime. By forcing my plan on her, I had ignored her feelings.
When we got home, Xiaoyan was awake, and Hamer ran to her, tearfully recounting what had happened. This led to a family discussion. While we emphasized that it was wrong for Hamer to say hurtful things to her friend, I also admitted my fault in not planning the activity well or communicating my ideas with her beforehand.
After emotions had settled, Hamer turned to drawing. She made a card expressing her love for her mom and, close to noon, handed me a small piece of paper with a mini apology letter written on it. Reading her letter, I felt touched and reflective. I realized I had been too eager to replicate yesterday’s happiness and had unintentionally ruined the moment. Life often works that way—when we try too hard to force joy, we lose its essence. Sometimes, letting things unfold naturally yields better results.
For lunch, I planned to reheat the braised noodles with green beans from the night before but accidentally turned the heat too high, burning them. With the noodles ruined, Xiaoyan stepped in to save the day by quickly whipping up plain noodles. Hamer and I tried to help, but we only managed to create more chaos. Surprisingly, Xiaoyan’s noodles turned out delicious, and both Hamer and I devoured two big bowls. Grandma, however, found them a bit bland and ate only a small portion.
In the afternoon, our family visited the Beijing Science Center’s Children’s Playground for the first time. Hamer was thrilled and quickly captivated by the science-themed toys and exhibits. The center was enormous, with the children’s area spanning three floors. It was well-designed, catering to children’s interests while introducing scientific concepts in fun and interactive ways. We marveled at the place, remarking, “With a free facility like this, who needs amusement parks?” We stayed from 1:30 until the center closed at 4:20, leaving reluctantly. On the way home, Hamer kept saying how much she wanted to come back.
During the ride back, we debated whether to eat out or dine at home and eventually decided on Domino’s Pizza. After dinner, we returned home relatively early. After washing up, Hamer climbed into bed and fell asleep quickly, looking content and happy. We tidied up a bit and went to bed early as well, wrapping up an eventful yet fulfilling day.
I noticed that a pattern resembling a map had formed on the egg while I was having breakfast.
We started the morning with delight, excited to invite Hamer’s friend for training (or “playing” as Hamer saw it). But we ended it with frustration and hurt.
When I woke up this morning, I felt refreshed and energized—it had been an especially good night’s sleep. Around 8:30, I started packing up to take Hamer to meet her classmate for some exercise. Hamer was particularly excited about the agility ladder and rings that had arrived just the day before. She’d seen others playing with them and thought they looked like a lot of fun.
When we got to the venue, we began by following video tutorials to learn footwork drills using the agility ladder. Hamer and her classmate jumped around, laughing and having a blast. Afterward, we switched to playing badminton. Hamer struggled to hit the shuttlecock and became a bit frustrated, so she set down her racket and grabbed a tennis ball instead. We decided to toss the ball to each other, trying to keep it from touching the ground. Our initial goal was 10 passes, but it proved so difficult that we lowered it to 5. When we finally achieved it, we all cheered.
Next, we experimented with catching the ball using rackets and played agility ring games, like throwing a ring and jumping to it. We took turns twice, then tried forward, backward, and side jumps. Anyone who made a mistake had to run a lap as a penalty. I ended up running twice, which had Hamer and her classmate laughing uncontrollably.
While running, I suggested a relay race, and they were thrilled. We ran three laps around the field, working well together. Despite being sweaty and exhausted, the laughter never stopped. The final game was their favorite—ring toss. Using leaves as “money” to buy rings, the two kids had a blast, laughing and jumping around. Before we knew it, it was noon, and we packed up to head home. On the way, Hamer jokingly pretended to cry, saying, “I don’t want to leave my classmate!”
After lunch, we relaxed in the living room for a while. Seeing it was nearly time for dance practice, Hamer and I began to get ready. Before leaving, I told her, “While you’re dancing, I’ll write in my journal, okay?” She found the idea novel and agreed. At the dance studio, I dropped her off and went to a nearby community study room to write. As I typed, memories of the joyful morning filled my mind, and an hour and a half flew by.
After picking up Hamer, we stopped to buy some cake. On the way, she suddenly asked, “What’s a journal?” After I explained, she said, “I want to write one too!” We agreed that next Saturday, after dance practice, we’d bring our supplies to the study room and write journals together.
When we got home, Xiaoyan was napping, so I helped Hamer with her homework. There wasn’t much to do, so she finished quickly, eating a few small cakes in the process and even taking some with her when we went out again. She wanted to join me at the hair salon, so we went together. Along the way, she chattered excitedly, saying, “I love playing with my classmate’s dad; he’s so much fun!” At the salon, I got a haircut while she had her hair washed, thoroughly enjoying the experience.
On our way back, we hurried to buy groceries. My task for the evening was to make braised noodles with green beans since I’d lost a bet with Xiaoyan over who would cook dinner on Saturday. The green beans cost 10 yuan, and the noodles 5 yuan. When Hamer heard the total price, she laughed and said, “So cheap!” I took the opportunity to explain, “That’s one of the benefits of eating at home.”
At home, Hamer spent a long time chatting on the phone with her classmate while I got busy in the kitchen. Xiaoyan stood nearby with chestnuts, occasionally feeding me bites as I worked. It had been a while since I last cooked, so I carefully followed the recipe step by step, washing, chopping, and cooking the ingredients. Though busy, I found it enjoyable. When Hamer finished her call, she came into the kitchen wanting to help, but by then I was nearly done. She stayed anyway, pretending to arrange dishes and playing the role of a restaurant server.
After an hour, the braised noodles were finally ready. Both Xiaoyan and Hamer loved them, showering me with compliments. That long-lost sense of accomplishment filled me with satisfaction.
In the evening, we lounged on cushions and the sofa in the living room, watching Klaus together while relaxing. During this time, Hamer wrote her Christmas wish list for Santa, ready for him to “collect” it. It wasn’t until 10:30 that we slowly got up to wash up and end the day.
This morning, I placed a phone playing a pinyin song beside Hamer’s pillow before leaving the room. After a while, I returned to wake her, and she slowly got up. Just as she was heading to the bathroom, she suddenly mentioned her nose was bleeding. I quickly helped her pinch her nose to stop the bleeding and assisted her to the bathroom, thinking it might have been caused by the dry overnight air. Later, I noticed her nails were quite long—perhaps she had scratched her nose and ruptured a blood vessel. I silently reminded myself to trim her nails in the evening.
While washing up and getting dressed, Hamer was extra cautious, worried her nose might not have fully stopped bleeding. She was even afraid to blow her nose when she saw mucus. Before we left, she grew anxious again, concerned there might still be traces of blood her classmates would notice. Her mood dipped, and her attitude while packing wasn’t great. We left about five minutes later than usual. She seemed bothered by the delay, but I reassured her, saying, “Today’s a special situation; it’s okay. The teacher will understand.”
After dropping her off at school, I felt unsettled on the way home, reflecting on the chaotic morning. Back at home, as I prepared breakfast and coffee, my frustration showed on my face. Once I finished, I sat down to write in my journal. As the words flowed, my mood gradually eased. Later, while getting ready for work, I noticed Xiaoyan’s expression seemed off. When I asked her what was wrong, she snapped, “So it’s okay for you to have a bad attitude, but no one else can?” I wanted to argue but decided to stay quiet.
The morning was spent addressing the spacing record issue I had discovered the night before. Despite revising it several times, there were still gaps. Thankfully, a colleague caught the problem during the Pull Request review and pointed it out; otherwise, it could have caused major issues. In the afternoon, we went out for field testing, and this time, everything went smoothly. Our first Release Candidate (RC) version was completed on schedule, marking a satisfying milestone.
Around lunchtime, on a whim, I decided to hit the gym. First, I had enough time, and second, I worried that if new issues popped up later in the day, I might miss the chance again. I packed my bag and headed out, feeling unusually cheerful. At the gym, I started with some cardio before moving on to strength training. While there, I bumped into a colleague doing heavy deadlifts. Feeling inspired, I decided to try it myself. She cautioned me, “Your back just recovered; it’s better to avoid this exercise.” Ignoring her advice, I went ahead. The weight was heavy, and after just three lifts, my lower back started to feel uncomfortable. I immediately stopped and switched to bench presses, squats, hip thrusts, and a few new machines. By the end, my arms were sore, but most of my body felt fine—except for my back, which was noticeably strained.
Close to the end of the workday, I thought I’d get home early. I called Xiaoyan and suggested we go out for Hunan noodles together. I also called Hamer and invited her along. Picking her up on my electric scooter, we met Xiaoyan near the noodle shop. By then, my lower back pain had worsened. After finishing our meal, we headed home as the night grew colder. Hamer fell asleep on the scooter, exhausted from the day. On the chilly winter night, the three of us rode home together. Xiaoyan teased me, saying, “You’re just looking for hardship—why didn’t you take the subway instead?” But as I glanced up at the sky, my mood unexpectedly lifted. The night was clear and bright, scattered with clouds, and a single shining star hung in the sky, as if guiding our way. In that moment, everything felt just fine.
Back home, Hamer stayed asleep, skipping her bedtime routine before climbing into bed. I lay flat on the floor to ease my back and ended up chatting with a colleague about ideas from our recent 1-on-1 session.
This morning, I took Hamer and her friend out for some exercise. We used agility ladder ropes and rings, played badminton and tennis, ran three relay races, and finished with a fun ring toss game. The whole morning flew by in no time!
Today, I experienced “Murphy’s Law” firsthand: anything that can go wrong will go wrong, and if you’re worried about something happening, it’s even more likely. Recently, I moved a “sample interval” task on my Kanban to-do list directly into “done” without properly addressing it. As a result, during this afternoon’s testing, the related issue was uncovered—a mistake born of negligence that taught me a harsh lesson.
The day started off relatively smoothly. In the morning, we had a fairly short sprint meeting, and afterward, I continued working on the debugging issue in Visual Studio that I had left unresolved yesterday. Due to .NET version incompatibility, the debugging functionality wasn’t working properly, which had been bothering me all day. Fortunately, I managed to resolve it before noon. However, because I hadn’t controlled the variables well during testing, I’m still unsure which solution actually worked. I wasn’t willing to risk starting over to test again—time is just too precious, and the process too frustrating.
By noon, I had installed some VS plugins and even explored how to batch-install them via the command line. When I checked the time, it was already 1:30 PM, so I quickly grabbed lunch. In the afternoon, I focused on optimizing the device connection logic and made significant changes. Just as I was fully immersed in work, a colleague discovered a critical issue during testing—the very one tied to Murphy’s Law that I mentioned earlier. The overlooked details had finally caught up with me. The problem surfaced at the worst possible time, which was a bit demoralizing. I then spent most of the afternoon troubleshooting, reproducing, and fixing the issue. By the time I finished, it was already past 8 PM, and my planned gym session had to be canceled. On the way home, I did some on-site testing to verify if the problem was truly resolved, only to stumble upon another major issue. Although it was a bit of a headache, I felt somewhat relieved—it was caught early enough. After giving it some thought, I now have a rough idea of how to address it and plan to tackle it tomorrow at work.
In the evening, Xiaoyan supervised Hamer while she did her homework. Toward the later part, Hamer’s focus completely broke down—she was jumping around with Xiaoyan doing exercises, cutting small pieces of paper, and then fiddling with the mini textbooks I had brought back for her. When she only had one page of homework left, Hamer, after washing up, simply declared, “I’m not doing it anymore,” and packed up to go to bed.
Before bed, Xiaoyan and I chatted about some of the troubles she’s been having with her friends. Lately, she’s been receiving a lot of negative energy, which has left her feeling a bit overwhelmed. I listened quietly. Although I couldn’t offer much help, I hoped she felt a bit more at ease and would eventually find her own way to cope. Toward the end of the conversation, Xiaoyan suddenly brought up what happened last night—she asked what I was thinking when Hamer was walking ahead of us by herself. When I told her, “I was annoyed too,” she cut me off with, “Alright, stop talking.” She could sense that what I was about to say wasn’t what she wanted to hear. Even so, we continued the conversation. I explained my perspective and listened to hers. Although she was still a bit unhappy in the end, we managed to get everything out in the open, which was a good thing overall.
Today, I experienced “Murphy’s Law” firsthand: anything that can go wrong will go wrong. If you’re worried about something happening, it becomes even more likely. A task related to the sample interval on my Kanban to-do list was marked as “done” a few days ago without actually being addressed. This afternoon, during testing, the issue related to it was discovered.
Last night, Xiaoyan had planned to continue taking Hamer to school, but by morning, she felt too tired and ultimately gave up on the idea. She decided not to go to work today, opting instead to take a day off and rest.
The morning’s work went relatively smoothly. I followed the Pomodoro rhythm to tackle tasks and maintained high efficiency. However, around noon, I impulsively upgraded Visual Studio, which led to a frustrating chain of issues. When I resumed work in the afternoon, I discovered a problem with the compiled version due to a .NET version mismatch, making debugging impossible. I tried the usual method of modifying global.json
to specify the default version, but it didn’t work. Then, I installed a new SDK for VS, but that didn’t solve it either. I even reinstalled Visual Studio in an attempt to roll back to the previous version, but the issue persisted. The entire afternoon was consumed by this problem, and despite my efforts, it remained unresolved, leaving me feeling incredibly irritated.
In the meantime, I managed to complete some overdue cross-testing tasks, but that hardly made up for the time wasted on the debugging environment issues. Frustrated, I resorted to writing code on my personal computer and debugging on a test machine. Although this workflow was cumbersome, I managed to fix the remaining bugs before the end of the workday. As for the .NET problem, I had no choice but to leave it for tomorrow.
After work, I went to a café to meet Xiaoyan. She had been there in the afternoon having a meal with her colleagues. Later, we went to Hema, where Grandma and Hamer joined us. What was supposed to be a relaxed family shopping trip turned sour over a bag of chips.
Hamer wanted to buy chips, but Xiaoyan refused, worried about the health implications of eating too much junk food. This led to a back-and-forth argument between them. Xiaoyan began a lengthy lecture, starting with the health issues of chips, then moving on to our weekly shopping expenses, and even suggesting canceling next Wednesday’s shopping trip altogether. Hamer gradually lost patience, showing visible frustration and even a bit of anger. Standing on the sidelines, I couldn’t help but feel annoyed too. When Xiaoyan mentioned canceling next week’s trip, I felt it was an unreasonable remark. Since we’ve established Wednesday shopping as a regular family activity, why couldn’t we discuss and find a compromise? If we think some snacks are unhealthy or the expenses are exceeding our budget, we could set rules and adjust gradually. Flat-out rejecting someone’s choice of snack or casually proposing to cancel our routine entirely seemed unnecessary.
On the way home, Hamer walked far ahead of us, as if trying to avoid us. I also didn’t feel like making eye contact with Xiaoyan, and the atmosphere was somewhat awkward. However, as we neared home, Xiaoyan suddenly started running with Hamer, playing around, and eventually, the tension between them dissipated.
At home, Xiaoyan and I had dinner while Hamer quietly worked on her homework. After dinner, Xiaoyan did a dance workout. I watched some Korean drama before joining her, while Hamer remained focused on completing her assignments.
Today is a special day. In the morning, when the alarm went off, Xiaoyan opened her eyes. I nudged her and asked, “Are you taking Hamer to school today?” Last night before bed, she had mentioned wanting to try something different, but she hadn’t agreed to my suggestion at the time. This time, however, she got up. She woke Hamer, helped her freshen up, packed her schoolbag, and then took her to school. By 7:39, they were already at the school gate, much earlier than usual. When Xiaoyan returned home, she even made coffee for us, making the start of the day particularly warm.
Most of the daytime was spent debugging, mainly focusing on adjustments to the G feature while also quickly completing testing tasks for the mobile app. Since I didn’t use the Pomodoro timer, the work rhythm felt a bit chaotic, and it seemed like time wasn’t utilized efficiently—something I’ll need to improve on going forward.
In the evening, Hamer came home and proactively finished her homework. During a conversation, Hamer told Xiaoyan that she had been moved to the last row in class. Xiaoyan asked how she felt about it, and Hamer replied, “Not much.” Hearing this, I felt a bit anxious and initially blamed the teacher: why was she moved to the last row again? It seemed like such decisions lacked any clear rules. But on second thought, Hamer herself didn’t seem to connect this to other issues like she did last time, nor did she show any particular emotions. This helped ease my concerns a bit. I decided to observe her state first and refrain from intervening, allowing her to adapt and view the situation from her own perspective. I wondered: if we appeared overly concerned, would it make Hamer think sitting in the last row was a “bad” thing? She might even feel that sharing such small matters is burdensome, and might stop sharing them with us in the future.
Outside of today’s main plans, I spent a considerable amount of time on my blog. In the morning, I checked my email and found that the domain migration was complete. I used some time before work to configure the domain. Initially, I was a bit confused when setting up the domain records, especially with the fields “Hostname” and “Value” in the interface—they didn’t make much sense to me. However, after consulting some resources, I finally resolved the issue.
Before bed, I continued optimizing the blog, changing the theme to Alpine, which aligns better with my aesthetic preferences, and adding a few new pages. The overall framework of the blog is beginning to take shape and looks decent at first glance. Next, I plan to further optimize the pages by adding sections like TIL (Today I Learned), Journal, and Parenting, while also refining the About page. Lastly, and most importantly, I need to focus on creating more content.
This morning, Hamer woke up quite early. After asking Siri to stop her alarm, she ran over to the sofa where I was sleeping and curled up next to me for a while, mumbling sleepily, “I can’t get up.” Looking at her tired expression, I thought about how she hadn’t slept well last night. Before bed, she kept saying she “couldn’t fall asleep,” but as soon as she switched to our bed, she fell asleep almost instantly—probably exhausted from all the climbing and playing yesterday.
The morning felt long and filled with small, tedious tasks. I spent a good chunk of time updating code dependencies. Last Friday, before leaving work, I encountered an issue with the .NET environment that made compiling impossible, and I still hadn’t fully resolved it today. I need to set aside time to sort out these fundamental problems; leaving them unresolved is really dragging down productivity. While working on device management for the G feature, I initially planned a major overhaul to streamline the handling of device statuses. However, one issue after another kept cropping up. By 2 p.m., I still hadn’t made much progress, which left me feeling a bit frustrated.
For lunch, I went out and got a sandwich. As I ate, I reflected: maybe I should take things one step at a time. First, the current logic isn’t fully sorted out; second, making a big change at this stage feels a bit risky. So, I shifted my focus to handling device removal. Although the progress was limited, it gave me a small sense of stability.
I headed home a little earlier than usual in the evening and found Hamer lying on the floor doing her homework. After she read out a list of words from her teacher, we went out together to pick up Xiaoyan. After dinner, Hamer continued working on her assignments. I stayed with her and helped guide her through the remaining tasks. By the time we were done, I felt like my day was complete and wasn’t motivated to do much else. I idly scrolled through my phone, watched a bit of TV, washed the dinner dishes, and replaced the filter in the water purifier. After wrapping up these small chores, I was pretty tired myself and headed to bed early for some rest.
I woke up before 6 a.m. today. Though I couldn’t fall back asleep, I didn’t get up right away. Instead, I stayed in bed scrolling through my phone and came across a thought-provoking comment on Zhihu about “removing primary school-level education from kindergarten.” One part of the comment really struck me:
“Hiring graduates from prestigious universities like 985 and 211 schools doesn’t even require offering a high salary or using manipulative motivation tactics; just pile the work on them. The dedication to progress, sense of responsibility, and meritocratic values instilled by the education system will naturally push them to invest time and get things done—working overtime if necessary. They can’t help themselves.”
This sentiment captured exactly how I’ve been feeling lately. Last night, after playing badminton, I gave a colleague a ride on my e-bike, and he remarked, “I’m barely into my job here, and I’ve already seen such intense overtime.” I couldn’t help but wonder: if I don’t throw myself completely into this, how should I approach situations like this?
After I got up, Hamer also got up on her own, washed up, and got dressed. She was moving slowly, but today I didn’t urge her on. When we were leaving, she insisted on bringing an umbrella. We searched for a while but couldn’t find the one she wanted. I handed her an umbrella that she had decorated herself before, but she didn’t want to risk getting it wet. In the end, we decided not to use an umbrella and rode the e-bike through the drizzle.
The light rain continued throughout the day, and when I got home in the evening, it was still falling, which disrupted our plans to play badminton. Hamei was a little disappointed, so instead, I played with her at home for a while. Looking over her school log, I noticed she didn’t have too many tasks. But when it came time to review math, she was visibly reluctant and seemed irritable, though I couldn’t figure out exactly why.
As it was almost time to go shopping, I told her to get changed. Unexpectedly, she kept changing her clothes several times until she was satisfied. Then, while looking for her socks, she couldn’t find the pair she’d just taken off, which made her frustrated. Watching her impatiently search from the doorway, I asked, “Is there another way? Maybe you could check one item at a time, or put on a different pair, or even go without socks?” But she stubbornly insisted on finding the exact pair she’d taken off and wouldn’t look on her own; she grew increasingly upset and started crying.
I didn’t help her and stood by, feeling a bit annoyed myself. Then she got angry at me, picked up her grandma’s phone, and called Xiaoyan to complain, telling her she didn’t want to go to Hema with me. Xiaoyan patiently comforted her and suggested she could walk there by herself with an umbrella. Hamer immediately brightened up at this idea. After finding her socks with grandma’s help, she picked up the umbrella and dashed out the door without a backward glance.
On the way, she walked along the sidewalk while I rode my e-bike in the adjacent bike lane. At one point, she even jogged alongside me with a slight look of determination on her face. Watching her run like that made me feel a mix of amusement and relief. When we arrived at Hema, her mood had mostly settled. Though she still mentioned being “mad” at me, it was clear she was feeling much better.
Back at home, Xiaoyan and I ate dinner while Hamer practiced her eye exercises, and then she reviewed her math lessons.
The workload today was relatively light; most of it involved following up on recent changes to the RT module and compiling a list of technical points worth studying in depth. I spent quite a bit of the afternoon troubleshooting an issue with S123 authentication. I couldn’t make any headway until a colleague informed me that the version I was using didn’t yet include the necessary hotfix.
In the evening, I didn’t do anything particularly noteworthy. I applied for an Apple account for Hamer, removed a few categories from my blog only to realize that some articles were no longer visible as a result, and followed up on some questions regarding domain migration. There wasn’t much that felt especially fulfilling, and by the time it reached past eleven, I ended the day feeling a bit unsatisfied.