[Personal Reflections] On Memory

Reading a few friends’ blogs brought back some recollections — though my brain is impressively forgetful. A while back I went down to Tainan, and before leaving I tried to recall what life there had been like. Strangely, I couldn’t. But once I actually arrived, something in my brain clicked, and memories of my university days played back like a fast-forwarded recording. Without many records to anchor them, I started to doubt my own past — my younger face, my old way of thinking. ...

October 6, 2007 · 2 min · 255 words · ChenFu Kuo

[Financial Perspective] Using BusinessWeek to Pick Stocks

Every now and then BusinessWeek profiles a company they consider outstanding at the time. The strange thing is, stocks featured prominently in the magazine have a curious tendency to become duds in the short term — not because the companies are bad, but it has a contrarian-investment flavor to it. You know Nike, right? The legendary stock trader who, after decades of navigating the markets, casually drew a swoosh and founded the company. The name means “endurance and perseverance” — stay patient and things will turn around. Pretty apt. But I’ve gotten sidetracked! ...

October 5, 2007 · 2 min · 249 words · ChenFu Kuo

[Personal Reflections] My Last Sport — Golf

After entering the workforce, my stamina has declined year by year, and I’ve grown increasingly out of shape. Now all I have left is a round of golf once every two weeks — or sometimes stretching to once a month. Today my instructor seemed to have reached his limit with me… probably feeling the same frustration a tutor feels when they want to shake a student. But I finally feel like I’ve made just a tiny bit of progress! XD ...

October 1, 2007 · 1 min · 115 words · ChenFu Kuo

[R&D Notes] Troubleshooting Busybox 1.7.2 taskset.c Compilation Errors

While compiling Busybox 1.7.2 using the default config (make defconfig) with a specific ARM toolchain, I encountered two specific compilation errors. One was related to the route applet, and the other was in taskset.c. I resolved the taskset.c issue by disabling it temporarily, but later found a proper fix. The root cause lies in a mismatch between uClibc (which Busybox is primarily designed for) and glibc. Specifically, the number of arguments for sched_getaffinity and sched_setaffinity differs between the two. ...

September 30, 2007 · 1 min · 206 words · ChenFu Kuo

[Work Notes] Ubuntu Dash vs Bash

To speed up the boot process, Ubuntu uses dash as the default shell instead of the traditional bash. You can verify this at /bin/sh → /bin/dash. If you want to switch back to the original bash, type the following at the prompt: sudo dpkg-reconfigure dash When the configuration window appears, select “No” to revert back to bash. Recommendation: If you’re doing software development on Ubuntu and write shell scripts, it’s safer to switch back to bash for compatibility. ...

September 25, 2007 · 1 min · 78 words · ChenFu Kuo

Ubuntu Transition: Dash vs. Bash

To accelerate boot times, Ubuntu moved to using Dash (/bin/dash) as the default system shell (/bin/sh), replacing the more feature-rich but slower Bash. You can verify this linkage by checking /bin/sh -> /bin/dash. While this is great for system performance, it can cause unexpected failures in shell scripts designed specifically with “Bashisms” (features unique to Bash). If you need to revert the default shell back to Bash for compatibility reasons, you can execute the following command: ...

September 25, 2007 · 1 min · 125 words · ChenFu Kuo

[Financial Perspective] Foxconn's New 6C+IP Strategy

BusinessWeek Issue 1035 — Lead Story: Joining forces with e-commerce’s army of ants, Terry Gou sets his sights on becoming an internet “flying tiger.” Taiwan’s most globally powerful manufacturer is undoubtedly Foxconn. To build a new strategic layout, Foxconn has been in negotiations to cooperate with Alibaba, China’s largest e-commerce platform — leveraging internet commerce to capture what matters most in the digital age: information and personalization. Four years ago, Foxconn expanded upward from its original three C’s (Computers, Communications, Consumer Electronics) by adding three more (Automotive Electronics, Channels, Content). Now, by bridging the gap between virtual and physical worlds, Foxconn has officially entered the internet industry. ...

September 24, 2007 · 3 min · 453 words · ChenFu Kuo

[Financial Perspective] Manulife CEO John Mineker on the Art of M&A

The key to rapid M&A: make personnel decisions swiftly, and avoid internal power struggles. Priority order for an insurance company’s development should be: → Introduce and innovate products → Build a more efficient organization → Expand distribution channels → Improve risk management → Pursue M&A The real key to winning in M&A is respect. Price matters, but the real secret is not overpaying — the true value of an acquisition is realized in long-term stock performance. ...

September 24, 2007 · 2 min · 247 words · ChenFu Kuo

[Personal Reflections] A Parent's Child

Looking at my parents’ silver hair and the lines the years have carved into their faces, my heart aches. After starting university, aside from a brief stint at home during military service, I’ve always been away — studying far from home, and now working even farther. Though I’ve never said it out loud, there’s a small knot of guilt that stays with me. I hope my parents live peacefully, healthily, and happily. That is my greatest wish for them. ...

September 24, 2007 · 1 min · 205 words · ChenFu Kuo

[R&D Notes] Implementing Linux Daemons in Embedded Systems

Implementing Daemons in Embedded Linux systems is a fundamental task for long-running services. Based on the excellent Linux Daemon Writing HOWTO by Devin Watson, I have refactored several processes in my current project to run as background services (daemons). By backgrounding these processes, we ensure they remain resident in the system without blocking the console or being tied to a specific session. Core Implementation Pattern The following C snippet demonstrates the standard procedure for “daemonizing” a process: fork() from the parent, create a new session with setsid(), change the working directory, and close standard file descriptors. ...

September 19, 2007 · 2 min · 245 words · ChenFu Kuo