puran's post

2024-12-10 TIL: Interview Success Strategies & Top Podcasts of 2024
I interviewed at six top companies in Silicon Valley in six days, and stumbled into six job offers
After dropping Hamer at school, I felt guilty reading an article about programmers preparing for interviews—something I’d aspired to but never pursued. I later browsed Apple’s 2024 U.S. podcast rankings, adding episodes to Overcast for future listening.
I discovered my passport had expired and applied for renewal online, but the initial review failed. Concerned about needing to apply at my registered residence, I rushed to the Beijing Exit-Entry Administration Bureau. Thankfully, the staff resolved the issue on-site without an appointment and eased my anxiety.
In the afternoon, I worked on PopupManager issues. In the evening, I played badminton and admired Hamer’s self-motivation to study, a remarkable change from her younger years.
2024-12-09 TIL: Genie 2, Conventional Commits, and Playful Tech Terms
A commit message standard that integrates seamlessly with SemVer.
fix
: Bug fix → triggers a PATCH
version bump.feat
: New feature → triggers a MINOR
version bump.BREAKING CHANGE
: API incompatibility → triggers a MAJOR
version bump.Lately, the sun has been rising later and later. This morning, Hamer didn’t wake up as early as she usually does. When I went to wake her, I noticed five or six little birds perched on the tree outside the window. The scene was so peaceful.
After dropping Hamer off at school, I stopped by Nanchengxiang to buy breakfast. Today’s breakfast was especially hearty, but in the end, we couldn’t finish it all. Later, I practiced English with Speak and tried out a theme I had created myself—it felt pretty effective.
I spent the day working efficiently using the Pomodoro method, and I completed the task of saving a Layer as a KmlTrack. It’s now basically done.
In the evening, I came home early. Although I didn’t do anything particularly special, just relaxing and spending time with my family made the simple moments feel especially fulfilling.
2024-12-08 TIL: Notre Dame and Bullpen
巴黎圣母院
牛棚
Today, Xiaoyan took Hamer to Pop Land, fulfilling Hamer’s wish to visit again after getting a stamp there yesterday.
While they were out, I stayed home, finishing the 2023 World Baseball Classic final and watching highlights from other games. Feeling restless after spending most of the day indoors, I went for a refreshing walk.
In the evening, I picked them up and stopped by a crowded Christmas market at FLO. On the way home, the cold night air made the scooter ride feel especially freezing.
2024-12-07 TIL: Dental Health and Baseball Basics
Dia
The first permanent molar, also known as the six-year molar, is the earliest permanent tooth to erupt, usually around age six.
A highly effective method to prevent decay in the grooves of young permanent teeth.
The count matters
strike, ball, hit, foul ball, and fair ball
This morning, Hamer had a nosebleed, so I stayed with her until she felt calm. Later, we went to the basketball court, where she excitedly practiced her shots.
At noon, she cooked her favorite scallion oil noodles. After lunch and a quick nap, she attended dance class, then got a dental sealant, earning praise for her healthy teeth.
In the evening, Hamer cooked an upgraded noodle dish with sausage and shrimp, enjoying it immensely. Meanwhile, I reviewed baseball rules and watched the 2023 World Baseball Classic finals.
Excitingly, I also learned I’ll be speaking at the DS session—a thrilling first for me!
2024-12-06 TIL: DevToys, Cline
How DevToys became cross-platform and extensible
Cline vs Cursor
Last night, Hamer wet the bed, something she hadn’t done in a long time. She woke up calmly, got ready efficiently, and we even arrived at school early. The sunrise was beautiful, with clouds looking like casual brushstrokes across the sky.
In the morning, I had an idea for an ArcGIS Earth-themed project and brainstormed with ChatGPT. At work, I continued experimenting with the Cursor editor, trying its useful features, and worked on enhancing my Python project.
After work, I went out for dinner and drinks with colleagues, enjoying a rare moment of relaxation.
2024-12-05 TIL: Cursor, MAUI Challenges, and Quotation Mark Rules
Cursor, The AI Code Editor.
@
Development effort is more than double compared to Native. And the output or quality of apps you get is inferior.
Today, Hamer slept in and woke up upset about missing her early start. She cried to Grandma, but I stayed calm, giving her space to work through her emotions. Later, we talked, and she felt better.
At work, I explored the Cursor AI code editor. Initially unimpressed, I changed my mind after using it with a real project. Its smart predictions, editing capabilities, and context handling significantly boosted my coding efficiency.
At noon, I followed my fitness routine. In the evening, Xiaoyan arrived back. Hamer and I cooked noodles and discussed ways to improve her morning routine.
2024-12-04 TIL: P/Invoke, C# Iterators, Cross-Platform WPF, and ‘Dulce Domum’
Ever needed to call native functions from a DLL in your .NET app? P/Invoke (Platform Invoke) bridges the gap between managed and unmanaged code.
Key Ingredients for P/Invoke:
DllImport
Attribute: Declares the external method and specifies the DLL.Marshaling
: Automatically converts between managed (C#) and unmanaged (native) types.System.Runtime.InteropServices
: Provides tools for defining P/Invoke signatures and managing interop behavior.In C#, the yield
keyword simplifies the creation of iterators, enabling methods to return elements of a collection one at a time without the overhead of creating temporary collections or implementing complex iterator logic.
The Ultimate Scratchpad for C#
A cross-platform WPF that enables you to reuse your code and extend your app’s reach.
tā, walk in slippers.
Dulce Domum (lit. Sweetly Homeward) is a tune composed by Robert Ambrose in 1876. This phrase is used as the title of chapter 5 of the 1908 novel The Wind in the Willows.
lit.
is an abbreviation for “literal” or “literally”.This morning, Hamer woke up before the alarm, got ready on her own, and we admired a beautiful sunrise as we headed to school. On my way back, I stopped to buy a fried dough stick for my mother-in-law, and we enjoyed a long breakfast, talking about family and her past.
I spent the day fixing bugs and learning about P/Invoke, yield, and LINQPad. Xiaoyan shared a photo of her birthday noodles, which inspired me to cook her something similar.
In the evening, Hamer helped serve dinner from Hema, and we stayed within budget. Later, we enjoyed watching baseball highlights of Chinese Taipei’s games in the 2024 WBSC Premier 12 baseball tournament.
2024-12-03 TIL: NMEA Insights, SQL Tips, and Whimsical Observations: From Pac-Man to The Wind in the Willows
$GPGGA
, $GPRMC
, $GPGSA
, and $GPGSV
.
$GPGGA
and $GPRMC
contain location and time-related data.$GPGSA
and $GPGSV
provide satellite-related information.$GPRMC,194000.000,A,3401.8431,N,11711.4761,W,24.43,145.27,061020,,,D*4F
$GPGGA,194000.000,3401.8431,N,11711.4761,W,2,10,1.0,478.9,M,-32.5,M,2.0,0000*4D
$GPGGA
: Time in HHMMSS.SSS
format.$GPRMC
: Time (HHMMSS.SSS
) + Date (DDMMYY
), e.g., 194000.000
(UTC 19:40:00.000) and 061020
(6th October 2020).$
and *
. Example: 4D
.TIMESTAMP
with the format: yyyy-mm-dd hh24:mi:ss
(24-hour clock, no AM/PM).This morning, Hamer woke up on her own, surprising me as she called from the bathroom. I admired her for waking up early three days in a row. The sunrise on our way to school was beautiful, and I felt grateful not to have to nag her to get ready.
Xiaoyan left for a business trip. I rushed to a meeting, then spent the day fixing bugs, including a tricky NMEA data issue.
In the evening, I enjoyed playing badminton with colleagues. Later, my mother-in-law visited, and we had a meaningful chat about health and family.
2024-12-02 TIL: Flock, Location Properties, and Language Nuances
PointsCount
is distinct from Count
in a Part.AdditionalSourceProperties
property, useful for storing extra attributes for a location, such as customized node types like start node, end node, and vertex.Last night, strong winds made it colder this morning. Hamer woke up early, got ready, and arrived at school by 7:25. After dropping her off, I stopped by the supermarket for fruit and corn.
At home, I made breakfast and then practiced English. I spent the morning working on a playback issue and discussed the solution with my colleagues. In the afternoon, I fixed the issue. In the evening, Hamer and I watched baseball and figure skating.
During lunch, I reflected on how I could be kinder to my mother-in-law and reduce Hamer’s material possessions to help her develop independence.
I didn’t realize it’s already December before writing this journal—time has flown by.
Hamer woke up early wanting to exercise, but I was too tired, having not slept well. She watched her iPad until I got up around nine, and we decided to go play basketball. We planned for only thirty minutes since we needed to catch a special effects movie at the Science Center. However, we stayed longer, and things got rushed. At home, I reminded Hamer repeatedly that we were late, but she was slow getting ready, and I ended up being stern. We weren’t in the best mood as we left, but talked it out on the way.
We missed the movie but accepted it calmly. Hamer enjoyed learning about the scientists' names and their birthdates. Afterward, we explored the main exhibit, which was interesting, and ate McDonald’s outside under the sun, like a picnic. Hamer was thrilled with her burger, fries, and Sprite.
In the afternoon, Hamer played at the children’s area while I napped. Afterward, we strolled around and caught a stunning sunset, with half the sky in dark hues and the other side glowing red. Back home, we cooked noodles, and Hamer put on a face mask, curious why kids have them.
On Monday morning, Hamer climbed into our bed early to keep sleeping. Both she and Xiaoyan were too tired to get up since yesterday had been exhausting. It was pretty cold when we left home, and Hamer mentioned that she’d wear her fleece-lined school uniform from now on.
While waiting at home before work, I happened to hear a song by The Carpenters. Xiaoyan said to me, “I taught you how to sing this song, remember?” She asked if I could still recall it. I replied, “Of course I do—it was at the track.” Xiaoyan was really surprised, thinking I wouldn’t remember that detail, and she was delighted. She taught me this song line by line when we were still in school, during one of our first walks on the track after we started dating.
I got to work a bit late today, and after a morning meeting, I didn’t get much done until the afternoon when I finally made some progress.
Later, during a chat with Hamer, she said the happiest part of her day was going to school. That was a big surprise but also made me really happy. School used to be something she dreaded and avoided. I asked her what made her most nervous, and her answer was also school—she still feels tense in class, but it seems she’s getting used to it.
Today was Sprint day, and in the morning, the team reviewed the list of issues needing resolution—most of which came from the external testing team. Though the list was quite long, it felt manageable. My main focus was on handling the mutual exclusivity between G and other functionalities.
As the workday was ending, I started tackling a S123 issue. While discussing with the PE, I realized that a logic error had been made. By 11 p.m., I thought I was close to untangling the issue, but the more I looked into it, the more complex it became. I knew I wouldn’t be able to solve it tonight. I let my colleague go home and decided to stay back and continue working on it until around 1:30 a.m., trying to get as far as I could before calling it a day.
I got home after 10 p.m. tonight, feeling quite satisfied. Most of the G features are complete, and the device connection issues, which had worried me, were mostly resolved thanks to a colleague’s help.
Throughout the morning, my biggest headache was the S123 reading and editing permissions issue. I kept experimenting with my idea of using the REST API to check edit permissions. By 10:30 a.m., I finally got the update and delete logic working, and took a break to relax. Later, I ran into another issue when editing geometry. Adding different layers created permission management problems, which made me anxious. I discussed it with the S123 team and kept thinking about it through lunch. By the afternoon, I managed to solve it, then quickly moved on to address the UI problems I had missed earlier, and finished off the G recording and data display. Without noticing, it was already night, and I worked until 10 p.m.
When I got home, Xiaoyan and Hamer were finishing a dance workout. Around 11 p.m., they went to get ready for bed, while I scrolled my phone aimlessly until I finally went to sleep at 1 a.m.
This morning, I looked for places near home where we could exercise and found some community centers and soccer fields. We got up late and rode to brunch, enjoying bagels, pasta, and fries. During brunch, I saw an open tennis court for the evening and booked it. Afterward, we picked up a tennis racket for Hamer, and she went to her dance class.
While she danced, I explored a nearby community center. The basement gym felt eerie, but once I got familiar with the place, it was better. I ended up in the library and read Scarcity Brain until it was time to get Hamer, who was eager to check out the gym.
Afterward, Hamer did some homework, knowing we planned to hike tomorrow and play tennis later. We struggled a bit with tennis, using an automatic launcher, but Hamer enjoyed using cones to catch the balls. Compared to badminton, tennis felt more challenging, and I considered getting a coach eventually.
After tennis, we went out for dinner, and when we got home, Hamer finished more homework. She then did a dance workout with Xiaoyan while I, exhausted, went to bed early.