<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Fran Kuo | R&amp;D Leadership</title>
    <link>https://chenfu.ai/en/posts/</link>
    <description>Recent content in Posts on Fran Kuo | R&amp;D Leadership</description>
    <generator>Hugo -- 0.157.0</generator>
    <language>en</language>
    <lastBuildDate>Fri, 20 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://chenfu.ai/en/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>AI-HIL: Giving Hardware Eyes and Hands — Closed-Loop Automation for Embedded Development</title>
      <link>https://chenfu.ai/en/posts/ai-hil-hardware-in-the-loop/</link>
      <pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/ai-hil-hardware-in-the-loop/</guid>
      <description>&lt;h2 id=&#34;it-started-with-a-complaint&#34;&gt;It Started with a Complaint&lt;/h2&gt;
&lt;p&gt;Day three.&lt;/p&gt;
&lt;p&gt;This little dev board is seriously tough. Claude Code&amp;rsquo;s free-tier generosity let me sprint hard, but I still hit the usage limit. I went to a conference that morning, and the whole time one thought kept looping in my head:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much time have I spent copy-pasting?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JTAG call stack, SWD register dumps, Serial Console logs — paste a chunk over, AI gives a suggestion, I tweak the code, rebuild, flash, grab the logs, paste them back. Over and over. Sometimes I paste into the wrong window. Sometimes I miss the critical three lines.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Obsidian Digital Brain: Building the &#39;Edit-to-Publish&#39; Workflow for chenfu.ai</title>
      <link>https://chenfu.ai/en/posts/obsidian-digital-brain/</link>
      <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/obsidian-digital-brain/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In our pursuit of the &amp;ldquo;All in AI&amp;rdquo; philosophy, the process of internalizing and producing knowledge shouldn&amp;rsquo;t be hindered by complex toolchains. By deeply integrating &lt;strong&gt;Obsidian&lt;/strong&gt; with the &lt;strong&gt;chenfu.ai&lt;/strong&gt; project, I have successfully achieved a seamless &amp;ldquo;edit-to-publish&amp;rdquo; experience. By incorporating AI-assisted analysis, every note I take now resonates with my historical technical expertise.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;phase-1-basic-connection-and-path-optimization&#34;&gt;Phase 1: Basic Connection and Path Optimization&lt;/h2&gt;
&lt;p&gt;First, we set up Obsidian as the dedicated editor for the Hugo project, linking local files directly to the Vault.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] Farewell My Angel</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-farewell-my-ange/</link>
      <pubDate>Wed, 04 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-farewell-my-ange/</guid>
      <description>&lt;p&gt;No more words to say. Farewell my little angel&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] The Astounding Athletic Power of Quadcopters</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-the-astounding-athletic-power-of-quadcopters/</link>
      <pubDate>Sun, 14 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-the-astounding-athletic-power-of-quadcopters/</guid>
      <description>&lt;p&gt;Weeks ago, my colleague saw a very interesting video on Ted. He sent me the link and I&amp;rsquo;m really excited. The reason why he sent me was because we ever discussed the future of the video system month ago. Everyone raised different ideas of the device and my idea is the quadcopters with camera on it.&lt;/p&gt;
&lt;p&gt;Why I wanna do such kind of device is oriented from my study in university. I&amp;rsquo;ve been studied the mechanics in Aeronautics and Astronautics department, bachelor plus master are total 6 years. There is less such kind of career opportunity in Taiwan because of the environment. Lots of my classmates join the semiconductor industry to be equipment engineers in the company like TSMC, CMO&amp;hellip;etc. A little part including me choose different road to be R&amp;amp;D engineer in other industry.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The astounding athletic power of quadcopters</title>
      <link>https://chenfu.ai/en/posts/the-astounding-athletic-power-of-quadcopters/</link>
      <pubDate>Sun, 14 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/the-astounding-athletic-power-of-quadcopters/</guid>
      <description>&lt;p&gt;Weeks ago, my colleague saw a very interesting video on Ted. He sent me the link and I&amp;rsquo;m really excited. The reason why he sent me was because we ever discussed the future of the video system month ago. Everyone raised different ideas of the device and my idea is the quadcopters with camera on it.&lt;/p&gt;
&lt;p&gt;Why I wanna do such kind of device is oriented from my study in university. I&amp;rsquo;ve been studied the mechanics in Aeronautics and Astronautics department, bachelor plus master are total 6 years. There is less such kind of career opportunity in Taiwan because of the environment. Lots of my classmates join the semiconductor industry to be equipment engineers in the company like TSMC, CMO&amp;hellip;etc. A little part including me choose different road to be R&amp;amp;D engineer in other industry.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Looking for a Solid Developer</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-looking-for-solid-developer/</link>
      <pubDate>Wed, 12 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-looking-for-solid-developer/</guid>
      <description>&lt;p&gt;Recently, I&amp;rsquo;ve become very busy due to taking over tasks from another site. The original coding work is still there, so I started looking for an outstanding developer to join us. In the first month, I tried to draw from my colleagues&amp;rsquo; and my own networks — but in vain. Now I&amp;rsquo;ve shifted the search to a headhunter and started conducting interviews.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve interviewed a lot of people at my first and second jobs. Interviewing candidates through a headhunter is a very different experience. Why? Many factors influence what kind of developer you&amp;rsquo;re actually looking for.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Looking for a Solid Developer</title>
      <link>https://chenfu.ai/en/posts/looking-for-solid-developer/</link>
      <pubDate>Wed, 12 Jun 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/looking-for-solid-developer/</guid>
      <description>&lt;p&gt;Recently, my workload has surged significantly as I’ve taken over tasks from other sites. Between managing original coding responsibilities and new oversight, I’ve started a serious search for outstanding talent to join the team. During the first month, I tried sourcing candidates through internal referrals and my personal network, but without luck. I’ve now moved this search to headhunters and have begun the interview process.&lt;/p&gt;
&lt;p&gt;I interviewed many people in my first two roles, but interviewing candidates recommended by headhunters at this stage of my career feels different and much more interesting. The criteria for what kind of developer you need are heavily influenced by the organization&amp;rsquo;s current goals and history.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Industry Observation] The Necessity of PoC on ccHDtv</title>
      <link>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-the-necessity-of-poc-on-cchdtv/</link>
      <pubDate>Thu, 02 May 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-the-necessity-of-poc-on-cchdtv/</guid>
      <description>&lt;p&gt;The PoC is power over cable and it&amp;rsquo;s just like the PoE on IP camera. I met a supplier that they can provide the PoC solution on the ccHDtv system. Originally, I thought it&amp;rsquo;s a useful and necessary function but it&amp;rsquo;s not at all now. Why?&lt;/p&gt;
&lt;p&gt;The CCTV is always starting from system point of view but not just the device only like the cellphone. The first factor is that the analog CCTV infrastructure has already built over there for a long time. That means the power cable is existing and reliable. So it is not necessary to equip the PoC except the project a brand new installation. The second, the strategy of the ccHDtv alliance is to replace the traditional analog surveillance system from VGA to HD but not to compete with the existing IP surveillance system. We can totally confirm that it&amp;rsquo;s not necessary to equip PoC on DTV camera. The others factor like the cost increase, design complexity increase and regulation to pass.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] ccHDtv Study</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-cchdtv-study/</link>
      <pubDate>Fri, 26 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-cchdtv-study/</guid>
      <description>&lt;h2 id=&#34;what-is-cchdtv&#34;&gt;What is ccHDtv?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/cchdtv_01.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/cchdtv_01.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Closed Circuit HD TV (ccHDtv) is a newly developed solution for transmitting full HD digital video in a surveillance system. The core concept of ccHDtv is to deliver high-definition video using digital TV (DTV) transmission. With ccHDtv, high-definition digital video can be transmitted easily over coaxial cables, twisted pairs, or simply over the air. Multiple 1080p30 and 1080p60 video streams can be easily transmitted using ccHDtv over a single 3C2V/RG59 cable up to 500 meters without any repeater.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ccHDtv study</title>
      <link>https://chenfu.ai/en/posts/cchdtv-study/</link>
      <pubDate>Fri, 26 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/cchdtv-study/</guid>
      <description>&lt;p&gt;What is ccHDtv?
Closed Circuit HD TV (ccHDtv) is a newly developed solution for transmitting full HD digital video in a surveillance system. The core concept of ccHDtv is to deliver high definition video using digital TV (DTV) transmission. With ccHDtv, high definition digital video can be transmitted easily over coaxial cables, twisted pairs, or simply over the air. Multiple 1080p30 and 1080p60 video streams can be easily transmitted using ccHDtv over a single 3C2V/RG59 cable up to a length of 500 meters without any repeater.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[工作點滴] wireless module development newbie</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-wireless-module-development-newbie/</link>
      <pubDate>Tue, 23 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-wireless-module-development-newbie/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve started collecting the information around the end of 2010 because the wireless technology advanced to much higher bandwidth for multimedia streaming.&lt;br&gt;
There are two conditions of the development that I thought.&lt;br&gt;
1. To develop the whole wireless part by ourselves.&lt;br&gt;
2. To buy the module directly from the supplier.&lt;br&gt;
But some important factors that make me just &amp;lsquo;collect information&amp;rsquo; at that moment.&lt;br&gt;
For 1, the expense is very horrible.&lt;br&gt;
- We have to pay chip vendor for NRE.&lt;br&gt;
- We are new to be the player and we have no credit to the chip vendor.&lt;br&gt;
- We have no equipment and we have to invest a lot to do it.&lt;br&gt;
- There are lots of tasks need for the regulation.&lt;br&gt;
To sum up, this is a money game for surveillance company and we see no market at that moment.&lt;br&gt;
For 2, we could leverage a lot tasks to supplier but we still have to prepare equipment to verify the whole system and get the experience of the regulation. However, the module cost and performance ratio could not meet our requirement. It is quite challenge for me to persuade my boss to do it.&lt;br&gt;
So what I can do is just keep attention on wireless technology.&lt;br&gt;
Until now, I have the chance to do the development finally.&lt;br&gt;
Although I&amp;rsquo;m newbie for wireless, it&amp;rsquo;s not too hard to enter this area. The reason is the technology become much mature and we can make it work even we do not know much about wireless. So, let&amp;rsquo;s just do it.&lt;br&gt;
The module I use is based on Atheros AR6103 and AR6003. The driver of these two chips are similar.&lt;br&gt;
The documents I study is are mainly from Atheros. I also reference the IEEE specification and search on Google.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] Growth Road</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-growth-road/</link>
      <pubDate>Wed, 17 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-growth-road/</guid>
      <description>&lt;p&gt;I found an interesting comic that made by Gavin Aung Than. The philosophy is suitable for every creative work.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://zenpencils.com/comic/90-ira-glass-advice-for-beginners/&#34;&gt;http://zenpencils.com/comic/90-ira-glass-advice-for-beginners/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] I&#39;m a Singer</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-im-a-singer/</link>
      <pubDate>Mon, 15 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-im-a-singer/</guid>
      <description>&lt;p&gt;There is a very hot TV program which name is &amp;ldquo;I&amp;rsquo;m a singer&amp;rdquo; in China. I never saw this program before because there are already lots of similar program in the world. At the first, I could not understand why this program catch so many eye balls. My memory was stay at the program that is made by Taiwan&amp;rsquo;s media years ago. Even it&amp;rsquo;s hot at season one, it become colder and colder till now. At least, I do not have that passion to see this kind of show again. So it cause my curiosity why it success at this moment in China. After searching the information on the internet and spent hours to see the last episode of season one last weekend, I start to know why it become so famous.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] Bitcoin Build on Ubuntu 12.04</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-bitcoin-build-on-ubuntu-1204/</link>
      <pubDate>Tue, 09 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-bitcoin-build-on-ubuntu-1204/</guid>
      <description>&lt;p&gt;I started to pay attention on the Bitcoin that is from a news that discussed why bitcoin become strengthening. After weeks study and observation, I thought the bitcoin could be one of the real monetary in future.&lt;/p&gt;
&lt;p&gt;More links are as following.&lt;/p&gt;
&lt;p&gt;Bitcoin official site → &lt;a href=&#34;http://bitcoin.org/en/&#34;&gt;http://bitcoin.org/en/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bitcoin wiki → &lt;a href=&#34;http://en.wikipedia.org/wiki/Bitcoin&#34;&gt;http://en.wikipedia.org/wiki/Bitcoin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bitcoin howto in Chinese → &lt;a href=&#34;http://saving.cc/bitcoin/&#34;&gt;http://saving.cc/bitcoin/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following article is quite earlier in Taiwan&amp;rsquo;s news and it is also interesting.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://techorange.com/2011/05/22/bitcoin-p2p-curenncy-dangerous/&#34;&gt;http://techorange.com/2011/05/22/bitcoin-p2p-curenncy-dangerous/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two years later today, the bitcoin&amp;rsquo;s currency rush to 1BT:90USD because of the crisis of Cyprus.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Reprinted Articles] Selected Readings</title>
      <link>https://chenfu.ai/en/posts/%E6%96%87%E7%AB%A0%E8%BD%89%E8%BC%89/</link>
      <pubDate>Mon, 08 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E6%96%87%E7%AB%A0%E8%BD%89%E8%BC%89/</guid>
      <description>&lt;p&gt;Some recommended readings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://wired.tw/2013/03/05/startup-road/index.html&#34;&gt;http://wired.tw/2013/03/05/startup-road/index.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://wired.tw/2013/03/05/marketing-age/index.html&#34;&gt;http://wired.tw/2013/03/05/marketing-age/index.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://wired.tw/2013/02/26/internet-is-eating-the-world/index.html&#34;&gt;http://wired.tw/2013/02/26/internet-is-eating-the-world/index.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Kickstarter</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-kickstarter/</link>
      <pubDate>Mon, 08 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-kickstarter/</guid>
      <description>&lt;p&gt;Reference&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://mrjamie.cc/2013/01/31/kickstarter-angellist/&#34;&gt;http://mrjamie.cc/2013/01/31/kickstarter-angellist/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>[Work Notes] The Study of WebRTC and SIP</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-the-study-of-webrtc-and-sip/</link>
      <pubDate>Mon, 08 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-the-study-of-webrtc-and-sip/</guid>
      <description>&lt;p&gt;&lt;em&gt;[This post is a placeholder — content was incomplete in the original.]&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Panasonic Color Splitter Sensor</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-panasonic-color-spliter-sensor/</link>
      <pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-panasonic-color-spliter-sensor/</guid>
      <description>&lt;p&gt;There is a new sensor structure that introduce by Panasonic to replace color filter by color splitter. This kind of sensor remove general color filter and add the color deflector before the diode. The conventional color filter would cause 50%~70% light loss and new sensor reduce lots of the light loss. The following pictures show how it works.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/pana_sensor_01.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/pana_sensor_01.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/pana_sensor_02.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/pana_sensor_02.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The device can also be manufactured using current semiconductor fabrication processes. It doesn&amp;rsquo;t use special materials or processes. It&amp;rsquo;s a great news to bring this sensor to realization.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[工作點滴] rtmps in rtmpdump with hardware engine development</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rtmps-in-rtmpdump-with-hardware-engine-development/</link>
      <pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rtmps-in-rtmpdump-with-hardware-engine-development/</guid>
      <description>&lt;p&gt;Evostream server&amp;rsquo;s configuration for rtmps test&lt;/p&gt;
&lt;p&gt;Add the following content in the acceptors part in config.lua.&lt;/p&gt;
&lt;p&gt;This is for Win7 configuration and remember that we have to use double &amp;lsquo;&#39; instead of single for path.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/rtmp_openssl_01.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/rtmp_openssl_01.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The cipherSuite parameter, we could reference &lt;a href=&#34;http://www.openssl.org/docs/apps/ciphers.html#CIPHER_SUITE_NAMES&#34;&gt;http://www.openssl.org/docs/apps/ciphers.html#CIPHER_SUITE_NAMES&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/rtmp_openssl_02.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/rtmp_openssl_02.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;RTMP library&lt;/p&gt;
&lt;p&gt;The library is main from rtmpdump. The webpage is &lt;a href=&#34;http://rtmpdump.mplayerhq.hu/&#34;&gt;http://rtmpdump.mplayerhq.hu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The libssl library - SSLv23 method is used in the RTMPdump.&lt;/p&gt;
&lt;p&gt;- SSLv23 method&lt;/p&gt;
&lt;p&gt;A TLS/SSL connection established with these methods will understand the SSLv2, SSLv3, and TLSv1 protocol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Generating Makefile with Autotools and Makefile.am</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-process-to-generate-makefile-by-autotools-with-makefileam/</link>
      <pubDate>Tue, 19 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-process-to-generate-makefile-by-autotools-with-makefileam/</guid>
      <description>&lt;p&gt;Quick reference for generating a Makefile using the Autotools workflow:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# autoscan .                      // Scan the folder to generate configure.scan&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# cp configure.scan configure.ac  // Copy configure.scan to configure.ac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# vi configure.ac                 // Edit configure.ac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                  // Add: AM_INIT_AUTOMAKE&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;hello,1.0&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                  // This is the required marco &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; automake
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# aclocal                         // Execute aclocal to generate aclocal.m4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# autoconf                        // Execute autoconf to generate configure&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# autoheader&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# automake --add-missing          // Run automake&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# touch NEWS; touch README; touch AUTHORS; touch ChangeLog  // Create required documents&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# automake --add-missing          // Run automake again&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# ./configure                     // Execute configure to generate Makefile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# make                            // Execute make&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Following these steps provides a good template to modify the related files for my specific target project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] GStreamer: Migrating from 0.10.x to 1.0.x in OpenWrt</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-gstreamer-from-010x-to-10x-in-openwrt/</link>
      <pubDate>Mon, 18 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-gstreamer-from-010x-to-10x-in-openwrt/</guid>
      <description>&lt;p&gt;I start to move the gstreamer version from 0.10.x to 1.0.x in openwrt. Two purpose, one is to get much more familiar with the gstreamer applications and plugins development, another one is to assist my colleagues for next schedule. Just make a quick note here.&lt;/p&gt;
&lt;p&gt;Official gstreamer packages version I use is 1.0.5:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;gstreamer core → Modify Makefile and patch, compile ok.&lt;/li&gt;
&lt;li&gt;gst-plugins-base → Modify Makefile and patch, compile ok.&lt;/li&gt;
&lt;li&gt;gst-plugins-good → Modify Makefile and patch, compile ok.&lt;/li&gt;
&lt;li&gt;gst-plugins-ugly → To be check if required.&lt;/li&gt;
&lt;li&gt;gst-plugins-bad → Modify Makefile and patch, compile ok.&lt;/li&gt;
&lt;li&gt;gst-libav → To be check if required.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Proprietary plugins:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] SIP Test of FreeSwitch by FSClient</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-sip-test-of-freeswitch-by-fsclient/</link>
      <pubDate>Wed, 13 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-sip-test-of-freeswitch-by-fsclient/</guid>
      <description>&lt;p&gt;In previous articles, I tried to build the pjsip package, but it&amp;rsquo;s hard to verify that the package works correctly without a solid understanding of SIP. So I decided to get more familiar with how SIP works by setting up a switch. There are two popular choices: &lt;strong&gt;Asterisk&lt;/strong&gt; and &lt;strong&gt;FreeSwitch&lt;/strong&gt;. I chose FreeSwitch because pre-compiled binaries for Windows 7 are already available.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://wiki.freeswitch.org/wiki/Installation_Guide&#34;&gt;http://wiki.freeswitch.org/wiki/Installation_Guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After installation, remember to allow the application through the firewall. Since this is just for testing, I ran FreeSwitch with the default configuration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SIP Testing: FreeSWITCH with FSClient</title>
      <link>https://chenfu.ai/en/posts/sip-test-of-freeswitch-by-fsclient/</link>
      <pubDate>Wed, 13 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/sip-test-of-freeswitch-by-fsclient/</guid>
      <description>&lt;p&gt;In previous posts, I documented my attempts to build the &lt;code&gt;pjsip&lt;/code&gt; package. However, verifying its correctness was challenging due to my limited foundational knowledge of the SIP (Session Initiation Protocol) stack. To rectify this, I decided to set up a controlled environment to better understand the protocol&amp;rsquo;s mechanics.&lt;/p&gt;
&lt;p&gt;The first step was setting up a SIP server (Switch) on a PC. My two primary contenders were &lt;strong&gt;Asterisk&lt;/strong&gt; and &lt;strong&gt;FreeSWITCH&lt;/strong&gt;. I ultimately chose FreeSWITCH because it offered precompiled binaries for Windows 7, which significantly lowered the barrier to entry for initial testing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] PJSIP on Ubuntu</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pjsip-on-ubuntu/</link>
      <pubDate>Tue, 12 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pjsip-on-ubuntu/</guid>
      <description>&lt;p&gt;Before trying to make the pjsip work on my embedded device, I build the related libraries on PC as the reference. My environment is based Ubuntu 10.04. See the following guide.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf&#34;&gt;http://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The notes of packages building:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ALSA and OpenSSL libraries are optional and I do not install for first.&lt;/li&gt;
&lt;li&gt;SDL: download version 2.0 and do &lt;code&gt;./configure&lt;/code&gt;, &lt;code&gt;make; make install&lt;/code&gt; to install. Add &lt;code&gt;sudo&lt;/code&gt; if encountering privilege problems.&lt;/li&gt;
&lt;li&gt;FFMPEG: reference the official FFMPEG documentation at &lt;a href=&#34;https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide&#34;&gt;https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide&lt;/a&gt;. Follow the guide to build yasm, x264 and ffmpeg. The ffmpeg version (0.10.6) and building process follow the pjsip guide.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/pjsip_ffmpeg.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/pjsip_ffmpeg.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] PJSIP Package Build in OpenWrt</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pjsip-package-build-in-openwrt/</link>
      <pubDate>Tue, 12 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pjsip-package-build-in-openwrt/</guid>
      <description>&lt;p&gt;There is a default pjsip package in the openwrt but it links to the extension package of ltq-tapi and oss. What I need first is the package without extra packages. So I try to create the libraries using the latest version 2.1 for the experiment.&lt;/p&gt;
&lt;p&gt;First, the Makefile of the package:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-makefile&#34; data-lang=&#34;makefile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TOPDIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/rules.mk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_NAME&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;pjsip2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_VERSION&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;2.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_RELEASE&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_SOURCE&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;pjproject-&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_VERSION&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_SOURCE_URL&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;http://www.pjsip.org/release/&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_VERSION&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_MD5SUM&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;310eb63638dac93095f6a1fc8ee1f578
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_INSTALL&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_BUILD_PARALLEL&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PKG_BUILD_DIR&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;BUILD_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;/pjproject-&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_VERSION&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_RELEASE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;INCLUDE_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/package.mk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;define&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Package/pjsip2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  SECTION&lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt;lib
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  CATEGORY:&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Libraries
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  URL:&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://www.pjsip.org/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  MAINTAINER:&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;John Crispin &amp;lt;blogic@openwrt.org&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  TITLE:&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;pjsip2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  DEPENDS:&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;+libuuid
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;endef&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CONFIGURE_ARGS &lt;span style=&#34;color:#f92672&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-floating-point &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-g711-codec &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-l16-codec &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-g722-codec &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-g7221-codec &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-gsm-codec &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-ilbc-coder &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-libsamplerate &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-ipp &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-ssl &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-oss &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  --disable-sound
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;define&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Build/Configure&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;(cd&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_BUILD_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;autoconf&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;aconfigure.ac&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;aconfigure)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;call Build/Configure/Default&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;endef&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;define&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Build/Compile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CFLAGS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TARGET_CFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;EXTRA_CFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TARGET_CPPFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;EXTRA_CPPFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CXXFLAGS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TARGET_CFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;EXTRA_CFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TARGET_CPPFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;EXTRA_CPPFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LDFLAGS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;TARGET_LDFLAGS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; -lc &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;LIBGCC_S&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; -lm&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;MAKE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_JOBS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;-C&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_BUILD_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;endef&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;define&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Build/InstallDev&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;INSTALL_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;1&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/usr/pjsip2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;CP&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;PKG_INSTALL_DIR&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/usr&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;1&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/usr/pjsip2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;endef&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;eval &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;call BuildPackage,pjsip2&lt;span style=&#34;color:#66d9ef&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We encounter the following problem:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Industry Observation] Evernote Was Hacked</title>
      <link>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-evernote-was-hacked/</link>
      <pubDate>Thu, 07 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-evernote-was-hacked/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve already change my tool from the notepad++ or Microsoft&amp;rsquo;s word to Evernote to make a quick note for several months. It&amp;rsquo;s quite simple to use and the data can be synchronize to cloud and I could access my notes through network everywhere anytime. There is a news that Samsung&amp;rsquo;s refrigerator built in Evernote for food management and Samsung show this device in the CES show. The story at this moment, I think Evernote make his products go into a new era. However, the morning sun never lasts a day. Evernote was hacked and the customers information were possibly stolen last week.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Evernote Was Hacked</title>
      <link>https://chenfu.ai/en/posts/evernote-was-hacked/</link>
      <pubDate>Thu, 07 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/evernote-was-hacked/</guid>
      <description>&lt;p&gt;Several months ago, I switched my primary note-taking tool from Notepad++ and Microsoft Word to Evernote. Its simplicity, cloud synchronization, and universal accessibility through the network made it indispensable. There was a buzz recently about Samsung&amp;rsquo;s new refrigerator featuring an integrated Evernote app for food management, showcased at CES. At that moment, it felt like Evernote was ushering in a new era for its ecosystem. However, as the saying goes, &amp;ldquo;the morning sun never lasts a day.&amp;rdquo; Evernote was hacked last week, and customer information was potentially compromised.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Industry Observation] Smartvue Cloud Architecture</title>
      <link>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-smartvue-cloud-architecture/</link>
      <pubDate>Sun, 03 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-smartvue-cloud-architecture/</guid>
      <description>&lt;p&gt;There is a company that we discuss recently because of their elegant embedded NVR device.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHFouxONm22DolSrlvGfM3fRu1xteSdwoHYOH-Bi7YU808KPkpPZ_2dpqnYzmi0hnc9NhGDEXJT9H8PKNJ8itKMIpx5m2vBnByKRC-rRUhVNK2dU4AWBv8RPe5PUaxfO40A-yTDgsj7z_j/s1600/private_cloud_server.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/private_cloud_server.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just talk about the private cloud and public cloud roles in the surveillance system in previous article.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://frankuo.blogspot.tw/2013/02/pure-public-or-hybrid-cloud-for.html&#34;&gt;http://frankuo.blogspot.tw/2013/02/pure-public-or-hybrid-cloud-for.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Smartvue&amp;rsquo;s product architecture is a case of the hybrid cloud. Let&amp;rsquo;s see the whole system they define.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZpDsqVAin2ZyOPIyDUutd0yq3ejlX92AwrRgq-02XHJl4ZNpP-XlpeqG-CsDUBXyp0ffS9a-naomBb8OZAFiM_D1vobsm_7yT7QTBkUuO0jlKReUwPOXMHQZRR0z-AaKc11bZh_5UvTC/s1600/smartvue_system_arch.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/smartvue_system_arch.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can take S9 server as the private cloud server for local storage and playback. If we remove this part, the total system become a pure public cloud type. Although the pure cloud system is simpler, there are still some limitations at this moment. Smartvue let the high resolution video to be stored on the local server and high or low resolution video can optionally be put on the secure cloud. The reason is obvious that the network environment of LAN is still much clean and fast than WAN and all high resolution video can be saved totally without any loss.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Firefox OS - Liberate the App Stores</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-firefox-os---liberate-the-app-stores/</link>
      <pubDate>Thu, 28 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-firefox-os---liberate-the-app-stores/</guid>
      <description>&lt;p&gt;I saw a news on TV today that about Firefox OS for mobile phone and it got my curiosity. So I go Mozilla&amp;rsquo;s web site to see what&amp;rsquo;s that about. See the link: &lt;a href=&#34;http://www.mozilla.org/en-US/firefox/partners/&#34;&gt;http://www.mozilla.org/en-US/firefox/partners/#&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdX9EUOzMFh_kM1KlEJOd7BckOI6WEDCMXQvimm-VsIaexHEt85nRUq-5XSe4UzEv8N8BEK7_IYB7sWFyAiuI-5t4W2XelsWOVv_Jph7sFUrf7e2eyAd__RqxcJg7uQoNVe-Bgtr2XnAsQ/s1600/ScreenClip+%5B3%5D.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;The first page have the overview of the Firefox OS. The point to me is following picture. Some of telecommunication operators and device manufacturer get involved in the Firefox OS. It shows that the operators and manufacturer want to liberate the apps stores from the providers like Apple, Google.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Liberated Networking Technology</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-liberated-networking-technology/</link>
      <pubDate>Wed, 27 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-liberated-networking-technology/</guid>
      <description>&lt;p&gt;Our company updated the homepage to a brand new look. There is the word &amp;ldquo;Liberated&amp;rdquo; used to describe the new networking technology we implemented.&lt;/p&gt;
&lt;p&gt;According to the dictionary, I&amp;rsquo;m most likely aligned with the description &amp;ldquo;free from traditional social restraints&amp;rdquo; — because we are trying to make fundamental changes in every domain we enter. It&amp;rsquo;s an interesting journey.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgqAbndB9kFBBtcnF4lTp3zRQbxMo1YJybLuYSDNq1GirN1besN8V4t4CUHdg1iq1xeOls3eqNU2CyFAv7RLB0kGkmLILv4vgEyEbG1ej_V6hHVHkCgnc_LIxdU2lyHt_QCqhGVLRc7WuB/s1600/ubnt_liberated.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/ubnt_liberated.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Although it&amp;rsquo;s not 100% correct, I still want to record what I saw. I plotted the company&amp;rsquo;s product map based on personal observation from the webpage:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Liberated networking technology</title>
      <link>https://chenfu.ai/en/posts/liberated-networking-technology/</link>
      <pubDate>Wed, 27 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/liberated-networking-technology/</guid>
      <description>&lt;p&gt;Our company update the home page to a brand new picture. There is a name &amp;lsquo;Liberated&amp;rsquo; to describe the new networking technology we implemented.&lt;/p&gt;
&lt;p&gt;According to the dictionary, I&amp;rsquo;m most likely the description &amp;ldquo;free from traditional social restraints&amp;rdquo; because we are trying to make the fundamental change in different area that we enter. It&amp;rsquo;s an interesting journey to me.&lt;/p&gt;
&lt;p&gt;Although it&amp;rsquo;s not 100% correct, I still want to record what I saw here. I plot the company&amp;rsquo;s product map simply by personal thinking as follow from the webpage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] Peking University Tickets King — Ji-Yang Pei</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-peking-university-tickets-king---%E8%A3%B4%E6%BF%9F%E6%B4%8B/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-peking-university-tickets-king---%E8%A3%B4%E6%BF%9F%E6%B4%8B/</guid>
      <description>&lt;p&gt;There is a message post on Facebook by my former boss that talk about a guy in China who help people to order the ticket before important holidays. He is a Peking University student whose name is Ji-Yang Pei (裴濟洋), 23 years old. There is a report from China&amp;rsquo;s TV station and the link is as following.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://dailynews.sina.com/bg/chn/chnlocal/phoenixtv/20130222/01194273327.html&#34;&gt;http://dailynews.sina.com/bg/chn/chnlocal/phoenixtv/20130222/01194273327.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In China, people who left home for working would go home every Chinese Lunar New Year. It is the biggest human migration period in the world and it&amp;rsquo;s quite hard to get a ticket to go home. Pei provide more opportunity for those people to get a ticket especially the underprivileged ones in past three years. Later, he did not just provide the fish but also teach us how to fish. Pei post a thousand words of article on the internet to let us know how to do it. Because of this, he become a famous person, lots of people call him the Ticket King of Peking University.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Panasonic&#39;s 3D CMOS Image Sensor</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-panasonics-3d-cmos-image-sensor/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-panasonics-3d-cmos-image-sensor/</guid>
      <description>&lt;p&gt;3D image and video has been booming in recent years due to the entertainment industry — movies and gaming. Many kinds of 3D devices have appeared, including 3D cameras and 3D TVs. The early approach to capturing 3D images was simply to strap two cameras together and post-process the two photos into one.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/dslr_3d_handmade.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/dslr_3d_handmade.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GoPro had a similar structure for their Hero camera — you&amp;rsquo;d buy two cameras with some accessories to create it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] RabbitMQ — AMQP Protocol Notes</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rabbitmq---amqp-protocol-note/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rabbitmq---amqp-protocol-note/</guid>
      <description>&lt;p&gt;After the RabbitMQ server and client are set up, I started learning more about the RabbitMQ system. The core of RabbitMQ is based on the AMQP protocol. There&amp;rsquo;s lots of information on Wikipedia:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol&#34;&gt;http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;AMQP originated in the banking industry — which is why terminology like &amp;ldquo;broker&amp;rdquo; is used in the AMQP specification. Here is the model of AMQP.&lt;/p&gt;
&lt;p&gt;If we want to make an application with two-way communication, we have to make the application act as both publisher and consumer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Panasonic&#39;s 3D CMOS Image Sensor</title>
      <link>https://chenfu.ai/en/posts/panasonics-3d-cmos-image-sensor/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/panasonics-3d-cmos-image-sensor/</guid>
      <description>&lt;p&gt;3D imagery and video have seen massive growth in recent years, driven largely by the movie and gaming industries. This has spurred a wave of 3D-capable devices like cameras and TVs. In the early stages, capturing 3D content typically required bulky &amp;ldquo;two-camera&amp;rdquo; setups where two separate lenses and sensors were bonded together, with the resulting photos processed into a single 3D file.&lt;/p&gt;
&lt;p&gt;Companies like GoPro followed this modular path, requiring users to buy two cameras and a dedicated housing to achieve 3D effects. Some higher-end devices, like Sony’s 3D camcorders, began embedding two lenses and sensors into a single integrated chassis.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RabbitMQ - amqp protocol note</title>
      <link>https://chenfu.ai/en/posts/rabbitmq-amqp-protocol-note/</link>
      <pubDate>Mon, 25 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/rabbitmq-amqp-protocol-note/</guid>
      <description>&lt;p&gt;After the RabbitMQ server and client are setup, I start to learn more about the RabbitMQ system. The core of RabbitMQ is based AMQP protocol. There are lots of information we can get on wiki: &lt;a href=&#34;http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol&#34;&gt;http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The AMQP is basically start from bank industry and that&amp;rsquo;s why some related terminology like broker are used in AMQP specification. Here is model of the AMQP. If we want to make the application to be two way communication, we have to make the application with publisher and consumer characteristics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Industry Observation] India Electronic Policy</title>
      <link>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-india-electronic-policy/</link>
      <pubDate>Sat, 23 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%94%A2%E6%A5%AD%E8%A7%80%E5%AF%9F-india-electronic-policy/</guid>
      <description>&lt;p&gt;I saw a news recently that talk about the national policy on electronics 2012 of India. Kapil Sibal, the Minister for Communications and Information Technology says the government approve the policy and plan to invest 100 billion for electronics industry fostering before 2020. It&amp;rsquo;s natural trend for India to extend from their famous software industrial to hardware.&lt;/p&gt;
&lt;p&gt;Kapil visit Japan&amp;rsquo;s recently and says it&amp;rsquo;s very important to have strategy cooperation with Japan electronics company. The most important one is to build first semiconductor factory. The plan will kick-off before October 2013 and start to production around 2015~2016. Then based on the plenty of software engineer, Japan company can have much progress in India on embedded system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Google Glass Launch</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-google-glass-launch/</link>
      <pubDate>Fri, 22 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-google-glass-launch/</guid>
      <description>&lt;p&gt;After I wrote the &lt;a href=&#34;http://frankuo.blogspot.tw/2013/02/vuzix-smart-glasses-m100.html&#34;&gt;Vuzix Smart glasses&lt;/a&gt; for just hours, Google launched their glass and built a new web site for this product. Maybe google do not want to be left behind when Vuzix award from CES.
&lt;a href=&#34;http://www.google.com/glass/start/&#34;&gt;http://www.google.com/glass/start/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://chenfu.ai/img/Blogger/glass_page.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/glass_page.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The page is simple and clear. We could see a video in the link to sense how it feels. All the functions that describe in what it does are totally from audio, video and gesture recognition. We can take the photo, record the video, translation, search the information, navigation&amp;hellip;etc in real-time.
All of the recognition technology have to link with the requirements of people and that&amp;rsquo;s why google raise a competition for people to write down &amp;ldquo;what would you do if you had Glass&amp;rdquo;. Once the idea is adopted, we could become the Glass Explorer and buy Glass with USD $1500.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Leisure &amp; Sports] The Trade of Houston Rockets</title>
      <link>https://chenfu.ai/en/posts/%E4%BC%91%E9%96%92%E9%81%8B%E5%8B%95-the-trade-of-houston-rockets/</link>
      <pubDate>Thu, 21 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E4%BC%91%E9%96%92%E9%81%8B%E5%8B%95-the-trade-of-houston-rockets/</guid>
      <description>&lt;p&gt;I like to play basketball since I was a high school student and I still play around one to twice a week now. Although I love this sport, I do not have too much passion to see the games like NBA after MJ retired. In past year, I started to pay attention on it. One reason is Jeremy Lin and the other is the CEO of my company bought Memphis Grizzlies last year. I start to realize this is not just only a game but also contain a lot of things in it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Tech Insights] Vuzix Smart Glasses M100</title>
      <link>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-vuzix-smart-glasses-m100/</link>
      <pubDate>Wed, 20 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E7%A7%91%E6%8A%80%E6%96%B0%E7%9F%A5-vuzix-smart-glasses-m100/</guid>
      <description>&lt;p&gt;I saw a news that about the Vuzix Smart Glasses M100 and it get a recipient of the CES (Consumer Electronics Show) Innovations 2013 Design and Engineering Award BEST OF INNOVATIONS, and selected as Best Technology in the Wireless Handset Accessory category. More information in following link.
&lt;a href=&#34;http://www.vuzix.com/consumer/products_browse.html#video-eyewear&#34;&gt;http://www.vuzix.com/consumer/products_browse.html#video-eyewear&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s an interesting device but there are still challenges behind. Since Google launch their project glass, Vuzix is the 2nd company to make the similar product. So M100 get a lot of discussion even google guys go their booth to have it a look. According to the hardware specification from Vuzix web sites. It&amp;rsquo;s totally an android based smart phone and the difference is the glasses appearance only. It&amp;rsquo;s not special by just hardware specification only.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[R&amp;D Notes] AirVision 2.0 Preview on Windows 7</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-airvision-20-preview-on-win7/</link>
      <pubDate>Mon, 18 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-airvision-20-preview-on-win7/</guid>
      <description>&lt;p&gt;Just before the Chinese Lunar New Year, I received the latest alpha version of &lt;strong&gt;AirVision 2.0&lt;/strong&gt;. It doesn&amp;rsquo;t just inherit the strengths of the previous version; it feels significantly faster and more stable. Here is a quick preview of the installation process and some of the main UI pages.&lt;/p&gt;
&lt;h3 id=&#34;installation-process&#34;&gt;Installation Process&lt;/h3&gt;
&lt;p&gt;After launching the Windows installer and following the setup steps, you&amp;rsquo;ll see a Windows Security alert. Make sure your firewall isn&amp;rsquo;t blocking the application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Miracast in Surveillance System</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-miracast-in-surveillance-system/</link>
      <pubDate>Sun, 17 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-miracast-in-surveillance-system/</guid>
      <description>&lt;p&gt;Weeks ago, the supplier demo the Miracast function to us and my colleague told me maybe we can think if there are applications for surveillance system. At first I saw nothing special for surveillance application but I may find there is now.&lt;/p&gt;
&lt;p&gt;Here is a capture picture from the whitepaper of WiFi alliance.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEfz7cBaDm4VNf4yYqIMxq55stocSsmD75bUL5eF8MfXjE35i9620eRKzmbPEWgmwhyphenhyphenI7mL9lEsDBk52uNUiB6wRG1UNN_aFCP47HlqvGjlnxgD7g-tosxYyC1nfIHbFybJFyV3Gw3Si6v/s1600/miracast_topology.jpg&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/miracast_topology.jpg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basically, Miracast is a protocol and this means Miracast can be over any kind of infrastructure. However, Miracast connections are expected to be predominantly established between Wi-Fi devices connected with each other directly, without an AP acting as an intermediary. According to the topology, what we can see is a source to a sink and it is a peer-to-peer connection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Pure Public or Hybrid Cloud for Surveillance System?</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pure-public-or-hybrid-cloud-for-surveillance-system/</link>
      <pubDate>Sat, 16 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-pure-public-or-hybrid-cloud-for-surveillance-system/</guid>
      <description>&lt;p&gt;The pure public cloud is no doubt building web services on a public infrastructure, while hybrid combines a private component. According to Wikipedia, the public cloud (aka external cloud) refers to services provided by a third party. A picture on Wikipedia describes this clearly.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1aWVqnt5oleV8PILxAwBuN9j36ezoA3f29PcPtdWLV-YnyTiQgDle2slLhsMOYjYBN78oHB1MNb_bHvo1BExEPatkMYG-Wbn0LIeWQ99CVNHFJNBbjCNYmzzDKgtbl5eGsNgzBU1k5Zw/s1600/Cloud_computing_types.svg.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/Cloud_computing_types.svg.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Basically, there are four deployment models on Wikipedia. A private cloud can&amp;rsquo;t fully satisfy the requirements of a surveillance system. We also won&amp;rsquo;t discuss community cloud since it&amp;rsquo;s not realistic for surveillance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pure public or hybrid cloud for surveillance system?</title>
      <link>https://chenfu.ai/en/posts/pure-public-or-hybrid-cloud-for-surveillance/</link>
      <pubDate>Sat, 16 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/pure-public-or-hybrid-cloud-for-surveillance/</guid>
      <description>&lt;p&gt;The pure public cloud is no doubt that we build the web services on public and the hybrid combine the private part. According to the information on wiki, the public cloud aka external cloud is related to the service is provided by third party. There is a picture on wiki can describe exactly what we talk about.&lt;/p&gt;
&lt;p&gt;Basically, there are four deployment models on wiki. The private cloud can&amp;rsquo;t satisfy the requirements of the surveillance system. We do not talk about the community cloud also because it&amp;rsquo;s not real on surveillance system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] Happy Lunar New Year</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-happy-lunar-new-year/</link>
      <pubDate>Sat, 09 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-happy-lunar-new-year/</guid>
      <description>&lt;p&gt;Today is the end of the Dragon year and we use to have a good supper on this day. It&amp;rsquo;s brand new lunar year tomorrow and we call it Snake year. Sometimes, we&amp;rsquo;d call it Small Dragon year rather than Snake year because Dragon is much more significant in traditional.&lt;/p&gt;
&lt;p&gt;Hope my family and friends have a brand new good Small Dragon Year.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] I2S Bus Channels Setting in GStreamer alsasrc Plugin</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-i2s-bus-channels-setting-in-gstreamer-alsasrc-plugin/</link>
      <pubDate>Fri, 08 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-i2s-bus-channels-setting-in-gstreamer-alsasrc-plugin/</guid>
      <description>&lt;p&gt;My colleague did some experiments on GStreamer alsasrc and osssrc plugins and found that alsasrc consumes a lot of CPU resource (around 16% on the chip we use). He asked me why the test tool provided by the chip vendor is quite efficient (around 1~2%). It was a big gap and I started to investigate why.&lt;/p&gt;
&lt;p&gt;After hours of checking, I found that the plugin may cause a busy wait in a while loop when the parameters are set to non-blocking mode. I made a simple code modification and the CPU rate dropped to 12%. Still frustrating, but some improvement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I2S Bus Channel Configuration in GStreamer alsasrc</title>
      <link>https://chenfu.ai/en/posts/i2s-bus-channels-setting-in-gstreamer/</link>
      <pubDate>Fri, 08 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/i2s-bus-channels-setting-in-gstreamer/</guid>
      <description>&lt;p&gt;A colleague recently observed a significant discrepancy in CPU usage while testing the GStreamer &lt;code&gt;alsasrc&lt;/code&gt; and &lt;code&gt;osssrc&lt;/code&gt; plugins. On our hardware platforms, &lt;code&gt;alsasrc&lt;/code&gt; was consuming about 16% of CPU resources, whereas the vendor-provided test tools achieved the same task with only 1~2% overhead. This massive gap in efficiency piqued my curiosity, and I decided to investigate the root cause.&lt;/p&gt;
&lt;p&gt;After several hours of deep diving into the code, I discovered that when the plugin is set to &amp;ldquo;non-blocking mode,&amp;rdquo; it can trigger a busy-wait condition within a &lt;code&gt;while&lt;/code&gt; loop, needlessly spiking CPU cycles. After a quick patch to optimize this behavior, I managed to bring the CPU usage down to 12%. While an improvement, it still felt far from the vendor tool&amp;rsquo;s efficiency.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] RabbitMQ Setup and Test</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rabbitmq-setup-and-test/</link>
      <pubDate>Thu, 07 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-rabbitmq-setup-and-test/</guid>
      <description>&lt;h2 id=&#34;rabbitmq-setup-and-test&#34;&gt;RabbitMQ Setup and Test&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Server side:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My desktop PC is Windows 7. Download the RabbitMQ server from &lt;a href=&#34;http://www.rabbitmq.com/&#34;&gt;http://www.rabbitmq.com/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Installation guide: &lt;a href=&#34;http://www.rabbitmq.com/install-windows.html&#34;&gt;http://www.rabbitmq.com/install-windows.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I use an extra Ethernet card with IP address set to 192.168.1.19, and make sure the firewall doesn&amp;rsquo;t block port 5672.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Client side:&lt;/strong&gt; (both send and listen on the same device)&lt;/p&gt;
&lt;p&gt;I use the package from &lt;a href=&#34;https://github.com/alanxz/rabbitmq-c&#34;&gt;https://github.com/alanxz/rabbitmq-c&lt;/a&gt;. Follow the guide in the link to cross-build and install on the embedded device.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHTw8Ub1MaZFtfYCkmY460xeqSKhTvYunsgfS2CtZEl1rWttRuFNl2K9D-blyTHtWVtGodjmvku3vEZEm6eKQjYJyX8lKlhgMatFhgCngrOLP6reLFAi4UoB0h4msJMBDABF4VrspeXZY2/s1600/Image1.png&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://chenfu.ai/img/Blogger/Image1.png&#34;&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] The Realtime of Transport Stream on Miracast</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-the-realtime-of-transport-stream-on-miracast/</link>
      <pubDate>Wed, 06 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-the-realtime-of-transport-stream-on-miracast/</guid>
      <description>&lt;p&gt;When I google the internet with realtime and transport stream, I could not find the information I want. The word &amp;lsquo;realtime&amp;rsquo; must construct on the relative thinking. For example, there is camera and screen and the camera&amp;rsquo;s video can be showed on the screen with quite small latency. We assume the latency is under 150ms or 300ms whatever and we can call this is realtime or not when we can have comparisons.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[R&amp;D Notes] Airplay, DLNA and Miracast</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-airplay-dlna-and-miracast/</link>
      <pubDate>Tue, 05 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-airplay-dlna-and-miracast/</guid>
      <description>&lt;p&gt;Today, a supplier visited our company to introduce their solutions with DLNA and Miracast support. After some research on these protocols, it seems there are three main standards competing in the market for wireless display and media streaming.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;DLNA&lt;/strong&gt;: This has been around for a long time. Apple was originally a member of the DLNA alliance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Airplay&lt;/strong&gt;: Apple eventually left DLNA to create its own proprietary &amp;ldquo;Airplay&amp;rdquo; protocol, building a walled garden for seamless ecosystem integration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Miracast&lt;/strong&gt;: Created by the Wi-Fi Alliance. It appears the Android camp is rallying around Miracast to challenge Apple&amp;rsquo;s dominance in this space.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It will be interesting to see how these standards evolve and which one will eventually dominate the user experience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] STL Notes</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-stl-notes/</link>
      <pubDate>Tue, 05 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-stl-notes/</guid>
      <description>&lt;p&gt;An overseas engineer uses the Boost C++ library for related project development. Seeing the STL syntax in their code made me realize I should take some time to study this — at minimum, to be able to read the code properly.&lt;/p&gt;
&lt;p&gt;From Wikipedia: &lt;a href=&#34;http://en.wikipedia.org/wiki/Standard_Template_Library&#34;&gt;http://en.wikipedia.org/wiki/Standard_Template_Library&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Standard Template Library (STL) is a C++ software library that influenced many parts of the C++ Standard Library. It provides four components called algorithms, containers, functional, and iterators.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Linux Quick-Reference Notes</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-linux%E5%B7%A5%E5%85%B7%E5%B0%8F%E8%A8%98%E9%8C%84/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-linux%E5%B7%A5%E5%85%B7%E5%B0%8F%E8%A8%98%E9%8C%84/</guid>
      <description>&lt;h2 id=&#34;patch-commands&#34;&gt;Patch Commands&lt;/h2&gt;
&lt;p&gt;Create a patch file:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diff -Naur &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;from-file&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;to-file&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &amp;gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;YourFileName.patch&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-N&lt;/code&gt;: If a file is only in one directory, treat it as present but empty in the other&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;: Treat all files as text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt;: Use unified output format&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;: Recursively compare subdirectories&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;svn--remove-all-svn-directories&#34;&gt;SVN — Remove all .svn directories&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ rm -rf &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;find . -type d -name .svn&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;git--remove-git&#34;&gt;Git — Remove .git&lt;/h2&gt;
&lt;p&gt;Only need to remove the &lt;code&gt;.git&lt;/code&gt; directory at the root of the project.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] msgpack-idl How-To</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-msgpack-idl-howto/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-msgpack-idl-howto/</guid>
      <description>&lt;h2 id=&#34;msgpack-idl-how-to&#34;&gt;msgpack-idl How-To&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Get the msgpack-idl&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git clone git://github.com/msgpack/msgpack-idl.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Install the required Ruby tool&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo apt-get install ruby1.9.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Go to msgpack-idl folder&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo gem install msgpack-idl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo msgpack-idl --install java
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Create a sample file &lt;code&gt;sample&lt;/code&gt; with the following content:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;message Node {
  1: string address
  2: map&amp;lt;string,string&amp;gt; properties
  3: optional string? description
}
message StorageNode &amp;lt; Node {
  4: long capacity
  5: optional int weight = 1
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Generate Java code with the following commands:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[工作點滴] message pack rpc install on openwrt</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-message-pack-rpc-install-on-openwrt/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-message-pack-rpc-install-on-openwrt/</guid>
      <description>&lt;p&gt;Message pack with RPC extension required 3 packages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;msgpack&lt;/li&gt;
&lt;li&gt;msgpack-rpc&lt;/li&gt;
&lt;li&gt;mpio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The msgpack and mpio are required by msgpack-rpc. The following are openwrt makefiles that I use to build the packages.&lt;/p&gt;
&lt;p&gt;msgpack library&lt;/p&gt;
&lt;p&gt;include $(TOPDIR)/rules.mk&lt;/p&gt;
&lt;p&gt;PKG_NAME:=msgpack&lt;br&gt;
PKG_VERSION:=0.5.7&lt;br&gt;
PKG_RELEASE:=1&lt;/p&gt;
&lt;p&gt;PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz&lt;br&gt;
PKG_SOURCE_URL:=http://msgpack.org/releases/cpp/&lt;br&gt;
PKG_MD5SUM:=705106a9378c792fe22d285dba5c142c&lt;br&gt;
PKG_INSTALL:=1&lt;/p&gt;
&lt;p&gt;include $(INCLUDE_DIR)/package.mk&lt;/p&gt;
&lt;p&gt;define Package/msgpack&lt;br&gt;
SECTION:=libs&lt;br&gt;
CATEGORY:=Libraries&lt;br&gt;
TITLE:=Message Pack library&lt;br&gt;
URL:=http://msgpack.org&lt;br&gt;
endef&lt;/p&gt;
&lt;p&gt;define Package/msgpack/description&lt;br&gt;
MessagePack is an efficient binary serialization format.&lt;br&gt;
It lets you exchange data among multiple languages like JSON but it&amp;rsquo;s faster and smaller.&lt;br&gt;
endef&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Engineering Utility Cheatsheet</title>
      <link>https://chenfu.ai/en/posts/linux-utility-quick-notes/</link>
      <pubDate>Mon, 04 Feb 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/linux-utility-quick-notes/</guid>
      <description>&lt;p&gt;A quick compilation of useful commands and configurations I frequently use in my daily operations.&lt;/p&gt;
&lt;h3 id=&#34;working-with-patches&#34;&gt;Working with Patches&lt;/h3&gt;
&lt;p&gt;To generate a patch from a single file or directory:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diff -Naur &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;from-file&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;to-file&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &amp;gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;YourFileName.patch&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-N&lt;/code&gt;: Treat absent files as empty.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;: Treat all files as text.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt;: Unified output format (best for readability).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;: Recursive directory comparison.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;version-control-cleanup&#34;&gt;Version Control Cleanup&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Removing all &lt;code&gt;.svn&lt;/code&gt; directories recursively:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;find . -type d -name .svn&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Removing Git Metadata:&lt;/strong&gt;
In a Git repository, simply deleting the root &lt;code&gt;.git&lt;/code&gt; directory is usually sufficient to remove history and configuration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Git Clone Error: &#34;Problem with the SSL CA cert (path? access rights?)&#34;</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-git-clone-error-error-problem-with-the-ssl-ca-cert-path-access-rights/</link>
      <pubDate>Thu, 31 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-git-clone-error-error-problem-with-the-ssl-ca-cert-path-access-rights/</guid>
      <description>&lt;p&gt;Our company&amp;rsquo;s git server does not support SSL verify but does support username/password authentication. Git enables SSL verification by default when accessing HTTPS URLs.&lt;/p&gt;
&lt;p&gt;You may encounter the following error:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;error: Problem with the SSL CA cert (path? access rights?) while accessing
https://tw.ubnt.com/git/example.git/info/refs
fatal: HTTP request failed
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To fix this, disable SSL verification globally:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git config --global http.sslVerify false
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then clone again:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git clone https://tw.ubnt.com/git/example.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Cloning into &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Username &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://tw.ubnt.com&amp;#39;&lt;/span&gt;: name
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Password &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://name@tw.ubnt.com&amp;#39;&lt;/span&gt;: password
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Counting objects: 1054, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Compressing objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;674/674&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remote: Total &lt;span style=&#34;color:#ae81ff&#34;&gt;1054&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 390&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, reused &lt;span style=&#34;color:#ae81ff&#34;&gt;747&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;delta 290&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Receiving objects: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1054/1054&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, 14.45 MiB | &lt;span style=&#34;color:#ae81ff&#34;&gt;377&lt;/span&gt; KiB/s, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Resolving deltas: 100% &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;390/390&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Done!&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Protocol Buffer and Message Pack — Initial Study</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocol-buffer-and-message-pack-initial/</link>
      <pubDate>Thu, 31 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocol-buffer-and-message-pack-initial/</guid>
      <description>&lt;p&gt;When I had an engineering discussion with an overseas engineer, I found that he uses a third-party library called MessagePack for binary serialization in internet applications.&lt;/p&gt;
&lt;p&gt;More detailed information about MessagePack is here:
&lt;a href=&#34;http://msgpack.org/&#34;&gt;http://msgpack.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not sure yet what the full differences are between these two libraries, and I couldn&amp;rsquo;t find a detailed comparison online. So I&amp;rsquo;ll spend some time studying both.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[工作點滴] protocol buffer message</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocol-buffer-message/</link>
      <pubDate>Thu, 31 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocol-buffer-message/</guid>
      <description>&lt;p&gt;The statusapi.pb-c.h and statusapi.pb-c.c are generated. Only header file is printing here for further explaination.&lt;/p&gt;
&lt;p&gt;statusap.pb-c.h&lt;/p&gt;
&lt;p&gt;/* Generated by the protocol buffer compiler.  DO NOT EDIT! */&lt;br&gt;
#ifndef PROTOBUF_C_statusapi_2eproto__INCLUDED #define PROTOBUF_C_statusapi_2eproto__INCLUDED&lt;br&gt;
#include &amp;lt;google/protobuf-c/protobuf-c.h&amp;gt;&lt;br&gt;
PROTOBUF_C_BEGIN_DECLS&lt;/p&gt;
&lt;p&gt;typedef struct _Statusapi__StatusRequestType Statusapi__StatusRequestType; typedef struct _Statusapi__StatusResponseType Statusapi__StatusResponseType; typedef struct _Statusapi__StatusParams Statusapi__StatusParams;&lt;/p&gt;
&lt;p&gt;/* &amp;mdash; enums &amp;mdash; */&lt;/p&gt;
&lt;p&gt;/* &amp;mdash; messages &amp;mdash; */&lt;br&gt;
struct  _Statusapi__StatusRequestType {   ProtobufCMessage base; }; #define STATUSAPI__STATUS_REQUEST_TYPE__INIT \  { PROTOBUF_C_MESSAGE_INIT (&amp;amp;statusapi__status_request_type__descriptor) \      }&lt;/p&gt;
&lt;p&gt;struct  _Statusapi__StatusResponseType {   ProtobufCMessage base; }; #define STATUSAPI__STATUS_RESPONSE_TYPE__INIT \  { PROTOBUF_C_MESSAGE_INIT (&amp;amp;statusapi__status_response_type__descriptor) \      }&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Protocol Buffer Examples</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocal-buffer-examples/</link>
      <pubDate>Wed, 30 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-protocal-buffer-examples/</guid>
      <description>&lt;p&gt;There is protobuf and protobuf-c website:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://code.google.com/p/protobuf/&#34;&gt;http://code.google.com/p/protobuf/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://code.google.com/p/protobuf-c/&#34;&gt;http://code.google.com/p/protobuf-c/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are implementing remote control from back-end applications using protobuf-c. The protobuf-c has extensions from Google&amp;rsquo;s protobuf for RPC functionality.&lt;/p&gt;
&lt;p&gt;The first experiment is using the message directly by packing messages into shared memory between the server and the client. Both sides can get the message without issues.&lt;/p&gt;
&lt;p&gt;Our target is to use the RPC approach that protobuf-c provides. First, we create a &lt;code&gt;.proto&lt;/code&gt; file — here&amp;rsquo;s an example &lt;code&gt;statusapi.proto&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Heading Toward Ten Years</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E9%82%81%E5%90%91%E5%8D%81%E5%B9%B4/</link>
      <pubDate>Tue, 29 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E9%82%81%E5%90%91%E5%8D%81%E5%B9%B4/</guid>
      <description>&lt;p&gt;While organizing earlier blog posts from 2008, I notice how immature I was back then — but looking at the transitions and broader experiences since, it seems I&amp;rsquo;ve grown, even if just a little.&lt;/p&gt;
&lt;p&gt;In January 2011, just before hitting my seventh year, I made a major decision: to leave a very familiar work environment. In some ways, it meant stepping out of my comfort zone — essentially resetting myself. What guided the decision was an unexpected opportunity to work at a multinational foreign company. That opportunity matched a few things I&amp;rsquo;d been thinking about:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] Great BBQ in Neihu</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-%E5%85%A7%E6%B9%96%E5%A5%BD%E5%90%83%E7%9A%84%E7%87%92%E7%83%A4/</link>
      <pubDate>Fri, 04 Jul 2008 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-%E5%85%A7%E6%B9%96%E5%A5%BD%E5%90%83%E7%9A%84%E7%87%92%E7%83%A4/</guid>
      <description>&lt;p&gt;In Neihu, there&amp;rsquo;s a great BBQ spot on the road in front of the main gate of Lishan Junior High School, near Gang-Qian Road. It&amp;rsquo;s called &lt;strong&gt;Chuan Men Zi BBQ&lt;/strong&gt; (串門子燒烤) — pretty solid! There&amp;rsquo;s a bookstore next door. Hours are 17:00 to 24:00. You can call ahead to order and then pick up — it&amp;rsquo;s takeout only, not the kind of place you sit down with friends for a long chat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] ncftp-3.2.1 Cross-Compiling</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-ncftp-321-cross-compiling/</link>
      <pubDate>Mon, 03 Mar 2008 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-ncftp-321-cross-compiling/</guid>
      <description>&lt;p&gt;ncftp is an FTP client. One of our projects needed FTP functionality, so I cross-compiled it for an ARM target.&lt;/p&gt;
&lt;h2 id=&#34;build-steps&#34;&gt;Build Steps&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Generate the Makefile. If you need curses support, add the relevant library — but for our project it&amp;rsquo;s not needed:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./configure --disable-ccdv --without-curses --without-ncurse
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Edit the Makefile — update CC and STRIP as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-makefile&#34; data-lang=&#34;makefile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CROSS_COMPILE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;arm-unknown-linux-gnu-
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CC&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;gcc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STRIP&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;strip
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Make it!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] A Married Man</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E4%BA%BA%E5%A4%AB/</link>
      <pubDate>Sun, 23 Dec 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E4%BA%BA%E5%A4%AB/</guid>
      <description>&lt;p&gt;In two more weeks, I&amp;rsquo;ll be getting married — the title says it all. &amp;ldquo;A married man&amp;rdquo; is simply the counterpart of &amp;ldquo;a married woman&amp;rdquo;!&lt;/p&gt;
&lt;p&gt;Marriage marks the beginning of a new chapter in life. Someone will be by my side, supporting me through everything. There will surely be much to learn and grow through — I hope I can do it well. 😄&lt;/p&gt;
&lt;p&gt;Thank you to my other half for more than three years of companionship. I look forward to your continued guidance in the days ahead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] A Good Article on the Surveillance Industry</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%AE%89%E5%85%A8%E7%9B%A3%E6%8E%A7%E7%94%A2%E6%A5%AD%E7%9A%84%E5%A5%BD%E6%96%87/</link>
      <pubDate>Sun, 23 Dec 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%AE%89%E5%85%A8%E7%9B%A3%E6%8E%A7%E7%94%A2%E6%A5%AD%E7%9A%84%E5%A5%BD%E6%96%87/</guid>
      <description>&lt;p&gt;While searching for information online recently, I stumbled upon a blog discussing articles about the security and surveillance industry. It was quite unique — it&amp;rsquo;s rare to find blogs specifically covering this niche industry. Through Andy&amp;rsquo;s articles, I also made a new connection and shared some thoughts.&lt;/p&gt;
&lt;p&gt;Blog link: &lt;a href=&#34;http://febon.blogspot.com/&#34;&gt;http://febon.blogspot.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re interested in the security surveillance industry, feel free to drop by and join the discussion.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Eclipse IDE under Ubuntu</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-eclipse-ide-under-ubuntu/</link>
      <pubDate>Mon, 10 Dec 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-eclipse-ide-under-ubuntu/</guid>
      <description>&lt;p&gt;Most of the following content is adapted from online resources, with some corrections based on issues I encountered during setup. Ubuntu&amp;rsquo;s default Java environment uses &lt;strong&gt;GCJ-1.4&lt;/strong&gt;, which has poorer performance. So the first step is to install the following packages using your preferred package manager (on Ubuntu, go to System → Synaptic Package Manager):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;sun-java6-jre&lt;/strong&gt; (required environment for running Java software)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sun-java6-jdk&lt;/strong&gt; (needed only if you are a Java developer)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;eclipse-jdt&lt;/strong&gt; (Eclipse&amp;rsquo;s Java Development Tools package)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;eclipse-common-nls&lt;/strong&gt; (Eclipse&amp;rsquo;s localized language messages — install this for a Chinese interface)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;galternatives&lt;/strong&gt; (GUI frontend for &lt;code&gt;update-alternatives&lt;/code&gt;, used to change system default preferences)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Edit the following file: &lt;code&gt;vim /etc/jvm&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Live555 Streaming Server &#34;config.armlinux&#34; Fix</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-live555-streaming-server-quotconfigarmlinuxquot-%E8%A8%AD%E5%AE%9A%E6%AA%94%E4%BF%AE%E6%AD%A3/</link>
      <pubDate>Wed, 21 Nov 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-live555-streaming-server-quotconfigarmlinuxquot-%E8%A8%AD%E5%AE%9A%E6%AA%94%E4%BF%AE%E6%AD%A3/</guid>
      <description>&lt;p&gt;The following lines in red need to be modified; otherwise you&amp;rsquo;ll get a flood of errors during linking:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-makefile&#34; data-lang=&#34;makefile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CROSS_COMPILE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        arm-unknown-linux-gnu-
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;COMPILE_OPTS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;INCLUDES&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; -I. -O2 -DSOCKLEN_T&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;socklen_t -DNO_STRSTREAM&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; -D_LARGEFILE_SOURCE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; -D_FILE_OFFSET_BITS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;            c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C_COMPILER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;gcc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C_FLAGS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;COMPILE_OPTS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CPP &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;            cpp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CPLUSPLUS_COMPILER &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;g++
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CPLUSPLUS_FLAGS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;COMPILE_OPTS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; -Wall -DBSD&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;OBJ &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;            o
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LINK &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;g++ -o
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LINK_OPTS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        -L.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CONSOLE_LINK_OPTS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;LINK_OPTS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LIBRARY_LINK &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;CROSS_COMPILE&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;ld -o
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LIBRARY_LINK_OPTS &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;LINK_OPTS&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; -r -Bstatic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LIB_SUFFIX &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;            a
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LIBS_FOR_CONSOLE_APPLICATION &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LIBS_FOR_GUI_APPLICATION &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;EXE &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>[Work Notes] The Choice Between Knowing and Not Knowing</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8%E7%9F%A5%E8%88%87%E7%84%A1%E7%9F%A5%E9%96%93%E7%9A%84%E6%8A%89%E6%93%87/</link>
      <pubDate>Tue, 13 Nov 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8%E7%9F%A5%E8%88%87%E7%84%A1%E7%9F%A5%E9%96%93%E7%9A%84%E6%8A%89%E6%93%87/</guid>
      <description>&lt;p&gt;Recently, in the process of constantly trying new things — combined with ever-changing work assignments — I&amp;rsquo;ve started running an experiment of sorts: does a person need to &lt;em&gt;fully understand&lt;/em&gt; something before they can accomplish the work?&lt;/p&gt;
&lt;p&gt;From my observation so far, the answer is: you don&amp;rsquo;t need to fully understand in order to get something done. However, that&amp;rsquo;s a short-term view. From a long-term perspective, the hidden costs of &lt;em&gt;not knowing&lt;/em&gt; can be just as significant — sometimes even worse.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Visual C&#43;&#43; String to const char*</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-visualc-string%E8%BD%89%E6%88%90const-char/</link>
      <pubDate>Mon, 05 Nov 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-visualc-string%E8%BD%89%E6%88%90const-char/</guid>
      <description>&lt;h2 id=&#34;converting-stdstring-to-const-char-in-visual-c&#34;&gt;Converting std::string to const char* in Visual C++&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Method 1: Convert to C-style string&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;string &lt;span style=&#34;color:#a6e22e&#34;&gt;str1&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;hello world&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;c_str1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; str1.c_str();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Method 2: Convert to array via data()&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;char&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt;a_str1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a_str1 &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; str1.data();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Adding Development Tool Packages on Ubuntu/Debian</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8ubuntudebian%E6%B7%BB%E5%8A%A0%E9%96%8B%E7%99%BC%E5%B7%A5%E5%85%B7package/</link>
      <pubDate>Wed, 31 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8ubuntudebian%E6%B7%BB%E5%8A%A0%E9%96%8B%E7%99%BC%E5%B7%A5%E5%85%B7package/</guid>
      <description>&lt;h2 id=&#34;adding-development-packages-on-ubuntudebian&#34;&gt;Adding Development Packages on Ubuntu/Debian&lt;/h2&gt;
&lt;p&gt;For general development:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install build-essential
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For X window development:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install x-window-system-dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For GNOME development:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install gnome-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For KDE development:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install kde-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Rapid Task Switching and Chaos</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E8%B6%85%E7%B4%9A%E8%AE%8A%E8%AE%8A%E8%AE%8A/</link>
      <pubDate>Mon, 29 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E8%B6%85%E7%B4%9A%E8%AE%8A%E8%AE%8A%E8%AE%8A/</guid>
      <description>&lt;p&gt;Over the past few weeks, work has been changing at an absolutely ridiculous pace. Hence the title — &lt;em&gt;Super Transformation&lt;/em&gt;, like those charades-meets-variety-show segments on TV. It&amp;rsquo;s also fitting for the political sphere right now, where a better title might be &lt;em&gt;Super Deception&lt;/em&gt;, playing out like some endless animated Flash series. With elections in the next six months, that title would hold up. And while we&amp;rsquo;re at it — &lt;em&gt;Chang Ma-Bian&lt;/em&gt;, meaning someone who always lies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Whirlwind: Reflections on Rapid Task Switching</title>
      <link>https://chenfu.ai/en/posts/rapid-task-switching-and-chaos/</link>
      <pubDate>Mon, 29 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/rapid-task-switching-and-chaos/</guid>
      <description>&lt;p&gt;The past few weeks have been a literal whirlwind of shifting priorities. I’ve titled this post &amp;ldquo;Super Transformations&amp;rdquo; because the pace of change in my project assignments has been dizzyingly fast—almost like the political theatrics we see in election cycles where headlines change every hour to keep the public &amp;ldquo;entertained.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;To get to the point: I’m not sure if my manager is testing my limits or if we just lack a cohesive roadmap. My recent weeks have looked like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] A Promise</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E8%AB%BE%E8%A8%80/</link>
      <pubDate>Wed, 24 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E8%AB%BE%E8%A8%80/</guid>
      <description>&lt;p&gt;From a young age I was taught to honor commitments and keep my word. This principle has guided how I treat people, even if I occasionally slip — and when I do, it weighs on me, even makes me feel embarrassed.&lt;/p&gt;
&lt;p&gt;Yet in today&amp;rsquo;s society, this value seems to be fading. Some people love to change their minds at the last minute. A promise can disappear as quickly as breath — gone as soon as it&amp;rsquo;s out, with nothing but a faint trace left behind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] A Funny Song</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%90%9E%E7%AC%91%E7%9A%84%E6%AD%8C/</link>
      <pubDate>Tue, 16 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%90%9E%E7%AC%91%E7%9A%84%E6%AD%8C/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.wretch.cc/blog/cant&#34;&gt;http://www.wretch.cc/blog/cant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The link above goes to a page of a member of the &amp;ldquo;Armpit Closure Troupe&amp;rdquo; — my sister forwarded it to me. There are a few songs on the page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;My Child: Without Your Love (Gold Bar)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;My Child: Bubble Gum Song&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;My Child: Who Stole My Eraser?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Highly recommended. Beyond the laughs, I browsed through their blog a bit, and in a certain sense, I found it admirable. At least this person, from middle school onward, had their own dream and took step after step toward their goal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Financial Perspective] Alternative Industries and Alternative Investments</title>
      <link>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E5%8F%A6%E9%A1%9E%E8%A1%8C%E6%A5%AD%E8%88%87%E5%8F%A6%E9%A1%9E%E6%8A%95%E8%B3%87/</link>
      <pubDate>Sun, 14 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E5%8F%A6%E9%A1%9E%E8%A1%8C%E6%A5%AD%E8%88%87%E5%8F%A6%E9%A1%9E%E6%8A%95%E8%B3%87/</guid>
      <description>&lt;p&gt;I just saw a news segment featuring some unusual jobs and investment opportunities.&lt;/p&gt;
&lt;p&gt;One example: a dog waste cleanup business. More and more Americans are too busy to clean up after their own pets, and I&amp;rsquo;m starting to see this trend in Taiwan too — people are willing to pay a little to have others handle cleaning tasks. While routine cleaning is still done at home, annual deep cleans are increasingly being outsourced.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Experience Premium HD Entertainment — Stepping into the Digital Life</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E9%AB%94%E9%A9%97%E9%A0%82%E7%B4%9A%E9%AB%98%E6%B8%85%E5%A8%9B%E6%A8%82%E4%BA%AB%E5%8F%97%E7%B2%BE%E5%BD%A9%E6%95%B8%E5%AD%97%E7%94%9F%E6%B4%BB/</link>
      <pubDate>Sun, 14 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E9%AB%94%E9%A9%97%E9%A0%82%E7%B4%9A%E9%AB%98%E6%B8%85%E5%A8%9B%E6%A8%82%E4%BA%AB%E5%8F%97%E7%B2%BE%E5%BD%A9%E6%95%B8%E5%AD%97%E7%94%9F%E6%B4%BB/</guid>
      <description>&lt;p&gt;Recently I&amp;rsquo;ve been looking into the development of high-definition (HD) technology. What is HD? Those unfamiliar might not know — the first image that comes to my mind is&amp;hellip; the God of Gamblers movie character! I think I&amp;rsquo;ve been brainwashed too thoroughly. The second thing that comes to mind is a company name. And then finally I understood: HD = High Definition, the same HD that appears in all those &amp;ldquo;HD high-quality digital TV&amp;rdquo; ads!&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Leisure &amp; Sports] Wang Xiaoming Lost</title>
      <link>https://chenfu.ai/en/posts/%E4%BC%91%E9%96%92%E9%81%8B%E5%8B%95-%E7%8E%8B%E5%B0%8F%E6%B0%91%E8%BC%B8%E4%BA%86/</link>
      <pubDate>Tue, 09 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E4%BC%91%E9%96%92%E9%81%8B%E5%8B%95-%E7%8E%8B%E5%B0%8F%E6%B0%91%E8%BC%B8%E4%BA%86/</guid>
      <description>&lt;p&gt;I woke up this morning and as usual turned on the TV to watch the game. Wang Chien-Ming (Wang Xiaoming) started yesterday, but I watched one of the worst performances I&amp;rsquo;d seen — worse than when he completely fell apart. That&amp;rsquo;s life. Maybe it&amp;rsquo;s better to face setbacks earlier rather than later; when you&amp;rsquo;re young, a stumble still leaves time to bounce back. But if Wang doesn&amp;rsquo;t confront these struggles until he&amp;rsquo;s thirty-something, he might be finished — like the Yankees&amp;rsquo; injury-prone pitcher, Pavano.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Miscellaneous] Taiwan Electrician &#43; Mover &#43; Waiter &#43; Driver</title>
      <link>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-%E5%8F%B0%E7%81%A3%E6%B0%B4%E9%9B%BB%E5%B7%A5%E6%90%AC%E9%81%8B%E5%B7%A5%E6%9C%8D%E5%8B%99%E7%94%9F%E5%8F%B8%E6%A9%9F/</link>
      <pubDate>Tue, 09 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E9%9B%9C%E4%B8%83%E9%9B%9C%E5%85%AB-%E5%8F%B0%E7%81%A3%E6%B0%B4%E9%9B%BB%E5%B7%A5%E6%90%AC%E9%81%8B%E5%B7%A5%E6%9C%8D%E5%8B%99%E7%94%9F%E5%8F%B8%E6%A9%9F/</guid>
      <description>&lt;p&gt;The day after the typhoon, I went back home to help my parents move to their new place. Heading out early in the morning, I got my first real glimpse of how powerful this typhoon had been — motorcycles were knocked over in dominoes. It was genuinely the first time I&amp;rsquo;d seen a domino effect made entirely out of motorcycles. Honestly, Taipei City government should consider reorganizing all motorcycle parking spots around the entire city — next time a typhoon hits, Taiwan could set a Guinness World Record. That would be one unique way to be in the spotlight.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] On Memory</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E9%97%9C%E6%96%BC%E5%9B%9E%E6%86%B6/</link>
      <pubDate>Sat, 06 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E9%97%9C%E6%96%BC%E5%9B%9E%E6%86%B6/</guid>
      <description>&lt;p&gt;Reading a few friends&amp;rsquo; 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&amp;rsquo;t. But once I actually arrived, something in my brain clicked, and memories of my university days played back like a fast-forwarded recording.&lt;/p&gt;
&lt;p&gt;Without many records to anchor them, I started to doubt my own past — my younger face, my old way of thinking.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Financial Perspective] Using BusinessWeek to Pick Stocks</title>
      <link>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E7%9C%8B%E5%95%86%E5%91%A8%E8%B2%B7%E8%82%A1%E7%A5%A8/</link>
      <pubDate>Fri, 05 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E7%9C%8B%E5%95%86%E5%91%A8%E8%B2%B7%E8%82%A1%E7%A5%A8/</guid>
      <description>&lt;p&gt;Every now and then &lt;em&gt;BusinessWeek&lt;/em&gt; 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.&lt;/p&gt;
&lt;p&gt;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 &amp;ldquo;endurance and perseverance&amp;rdquo; — stay patient and things will turn around. Pretty apt. But I&amp;rsquo;ve gotten sidetracked!&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] My Last Sport — Golf</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%AE%98%E5%AD%98%E7%9A%84%E9%81%8B%E5%8B%95-%E9%AB%98%E7%88%BE%E5%A4%AB/</link>
      <pubDate>Mon, 01 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%AE%98%E5%AD%98%E7%9A%84%E9%81%8B%E5%8B%95-%E9%AB%98%E7%88%BE%E5%A4%AB/</guid>
      <description>&lt;p&gt;After entering the workforce, my stamina has declined year by year, and I&amp;rsquo;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&amp;hellip; probably feeling the same frustration a tutor feels when they want to shake a student. But I finally feel like I&amp;rsquo;ve made just a tiny bit of progress! XD&lt;/p&gt;</description>
    </item>
    <item>
      <title>[R&amp;D Notes] Troubleshooting Busybox 1.7.2 taskset.c Compilation Errors</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-busybox-172-tasksetc%E7%B7%A8%E8%AD%AF%E7%94%A2%E7%94%9Ferror/</link>
      <pubDate>Sun, 30 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-busybox-172-tasksetc%E7%B7%A8%E8%AD%AF%E7%94%A2%E7%94%9Ferror/</guid>
      <description>&lt;p&gt;While compiling Busybox 1.7.2 using the default config (&lt;code&gt;make defconfig&lt;/code&gt;) with a specific ARM toolchain, I encountered two specific compilation errors. One was related to the &lt;code&gt;route&lt;/code&gt; applet, and the other was in &lt;code&gt;taskset.c&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I resolved the &lt;code&gt;taskset.c&lt;/code&gt; 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 &lt;code&gt;sched_getaffinity&lt;/code&gt; and &lt;code&gt;sched_setaffinity&lt;/code&gt; differs between the two.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Ubuntu Dash vs Bash</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-ubuntu-dash/</link>
      <pubDate>Tue, 25 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-ubuntu-dash/</guid>
      <description>&lt;p&gt;To speed up the boot process, Ubuntu uses &lt;strong&gt;dash&lt;/strong&gt; as the default shell instead of the traditional &lt;strong&gt;bash&lt;/strong&gt;. You can verify this at &lt;code&gt;/bin/sh → /bin/dash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you want to switch back to the original bash, type the following at the prompt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dpkg-reconfigure dash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When the configuration window appears, select &lt;strong&gt;&amp;ldquo;No&amp;rdquo;&lt;/strong&gt; to revert back to bash.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; If you&amp;rsquo;re doing software development on Ubuntu and write shell scripts, it&amp;rsquo;s safer to switch back to bash for compatibility.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu Transition: Dash vs. Bash</title>
      <link>https://chenfu.ai/en/posts/ubuntu-dash-vs-bash/</link>
      <pubDate>Tue, 25 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/ubuntu-dash-vs-bash/</guid>
      <description>&lt;p&gt;To accelerate boot times, Ubuntu moved to using &lt;strong&gt;Dash&lt;/strong&gt; (&lt;code&gt;/bin/dash&lt;/code&gt;) as the default system shell (&lt;code&gt;/bin/sh&lt;/code&gt;), replacing the more feature-rich but slower &lt;strong&gt;Bash&lt;/strong&gt;. You can verify this linkage by checking &lt;code&gt;/bin/sh -&amp;gt; /bin/dash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;While this is great for system performance, it can cause unexpected failures in shell scripts designed specifically with &amp;ldquo;Bashisms&amp;rdquo; (features unique to Bash). If you need to revert the default shell back to Bash for compatibility reasons, you can execute the following command:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Financial Perspective] Foxconn&#39;s New 6C&#43;IP Strategy</title>
      <link>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-6cip%E9%B4%BB%E6%B5%B7%E6%96%B0%E4%BD%88%E5%B1%80/</link>
      <pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-6cip%E9%B4%BB%E6%B5%B7%E6%96%B0%E4%BD%88%E5%B1%80/</guid>
      <description>&lt;p&gt;&lt;em&gt;BusinessWeek Issue 1035&lt;/em&gt; — Lead Story: Joining forces with e-commerce&amp;rsquo;s army of ants, Terry Gou sets his sights on becoming an internet &amp;ldquo;flying tiger.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Taiwan&amp;rsquo;s most globally powerful manufacturer is undoubtedly Foxconn. To build a new strategic layout, Foxconn has been in negotiations to cooperate with Alibaba, China&amp;rsquo;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&amp;rsquo;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Financial Perspective] Manulife CEO John Mineker on the Art of M&amp;A</title>
      <link>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E5%85%A8%E7%90%83%E7%AC%AC%E4%BA%94%E5%A4%A7%E4%BF%9D%E9%9A%AA%E5%85%AC%E5%8F%B8%E5%AE%8F%E5%88%A9%E4%BA%BA%E5%A3%BD%E5%A4%9A%E7%B8%BD%E8%A3%81%E6%98%8E%E5%B0%BC%E5%85%8B%E4%B9%8B%E8%B3%BC%E4%BD%B5%E5%BF%83%E6%B3%95/</link>
      <pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E5%85%A8%E7%90%83%E7%AC%AC%E4%BA%94%E5%A4%A7%E4%BF%9D%E9%9A%AA%E5%85%AC%E5%8F%B8%E5%AE%8F%E5%88%A9%E4%BA%BA%E5%A3%BD%E5%A4%9A%E7%B8%BD%E8%A3%81%E6%98%8E%E5%B0%BC%E5%85%8B%E4%B9%8B%E8%B3%BC%E4%BD%B5%E5%BF%83%E6%B3%95/</guid>
      <description>&lt;p&gt;The key to rapid M&amp;amp;A: make personnel decisions swiftly, and avoid internal power struggles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priority order for an insurance company&amp;rsquo;s development should be:&lt;/strong&gt;
→ Introduce and innovate products → Build a more efficient organization → Expand distribution channels → Improve risk management → Pursue M&amp;amp;A&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The real key to winning in M&amp;amp;A is respect.&lt;/strong&gt; Price matters, but the real secret is &lt;em&gt;not&lt;/em&gt; overpaying — the true value of an acquisition is realized in long-term stock performance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] A Parent&#39;s Child</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%88%91%E6%98%AF%E7%88%B8%E5%AA%BD%E7%9A%84%E5%85%92%E5%AD%90/</link>
      <pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E6%88%91%E6%98%AF%E7%88%B8%E5%AA%BD%E7%9A%84%E5%85%92%E5%AD%90/</guid>
      <description>&lt;p&gt;Looking at my parents&amp;rsquo; 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&amp;rsquo;ve always been away — studying far from home, and now working even farther. Though I&amp;rsquo;ve never said it out loud, there&amp;rsquo;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[R&amp;D Notes] Implementing Linux Daemons in Embedded Systems</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-daemon%E6%87%89%E7%94%A8%E6%96%BClinux%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%B5%B1%E5%AF%A6%E4%BD%9C/</link>
      <pubDate>Wed, 19 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-daemon%E6%87%89%E7%94%A8%E6%96%BClinux%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%B5%B1%E5%AF%A6%E4%BD%9C/</guid>
      <description>&lt;p&gt;Implementing Daemons in Embedded Linux systems is a fundamental task for long-running services. Based on the excellent &lt;em&gt;Linux Daemon Writing HOWTO&lt;/em&gt; by Devin Watson, I have refactored several processes in my current project to run as background services (daemons).&lt;/p&gt;
&lt;p&gt;By backgrounding these processes, we ensure they remain resident in the system without blocking the console or being tied to a specific session.&lt;/p&gt;
&lt;h3 id=&#34;core-implementation-pattern&#34;&gt;Core Implementation Pattern&lt;/h3&gt;
&lt;p&gt;The following C snippet demonstrates the standard procedure for &amp;ldquo;daemonizing&amp;rdquo; a process: &lt;code&gt;fork()&lt;/code&gt; from the parent, create a new session with &lt;code&gt;setsid()&lt;/code&gt;, change the working directory, and close standard file descriptors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Patch vs. Embedded Systems Development Notes</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-patch-vs-%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%B5%B1%E7%99%BC%E5%B1%95%E5%BF%83%E5%BE%97/</link>
      <pubDate>Wed, 19 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-patch-vs-%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%B5%B1%E7%99%BC%E5%B1%95%E5%BF%83%E5%BE%97/</guid>
      <description>&lt;p&gt;Recently I was assigned to work on a streaming server. Working from the original development platform, we applied patches via shell scripts to transform source files — using patches on the original source code to generate modified files, then compiling those into the required libraries or executables.&lt;/p&gt;
&lt;p&gt;At first I didn&amp;rsquo;t think much about why this approach was used, but I&amp;rsquo;ve recently started to appreciate its advantages.&lt;/p&gt;
&lt;p&gt;The original source files we need are open-source packages downloadable from the internet. To track our modifications, we use the &lt;code&gt;diff&lt;/code&gt; command to create patch files. When we combine multiple application components together, we end up with a collection of tarballs and patch files. We then manage them with shell scripts organized into three types:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Practical Daemon Implementation in Embedded Linux</title>
      <link>https://chenfu.ai/en/posts/linux-daemon-implementation-embedded-systems/</link>
      <pubDate>Wed, 19 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/linux-daemon-implementation-embedded-systems/</guid>
      <description>&lt;p&gt;For anyone working with Linux, the concept of a &amp;ldquo;Daemon&amp;rdquo; (or service) is fundamental. Daemons are background processes that operate independently of any active user session. I recently deep-dived into this topic via Devin Watson&amp;rsquo;s &lt;em&gt;Linux Daemon Writing HOWTO&lt;/em&gt;, which provides a fantastic primer and a clear template.&lt;/p&gt;
&lt;p&gt;Building on that foundation, I refactored several processes in my current project to run as persistent background services. Below is a code snippet demonstrating the core structural requirements for a Linux daemon:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reflections on Patch Files and Embedded Systems Development</title>
      <link>https://chenfu.ai/en/posts/patch-vs-embedded-system-development/</link>
      <pubDate>Wed, 19 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/patch-vs-embedded-system-development/</guid>
      <description>&lt;p&gt;Recently, I was assigned to work on a streaming server project. On our development platform, we utilize a combination of patch files and shell scripts to manage source code. We start with the upstream source, apply modifications via &lt;code&gt;patch&lt;/code&gt; commands, and then compile the results into the necessary shared libraries or executables. Initially, I didn&amp;rsquo;t give much thought to why we adopted this specific workflow, but lately, I&amp;rsquo;ve begun to appreciate the profound advantages of this approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] Chang Carey</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E5%BC%B5carey/</link>
      <pubDate>Sun, 16 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E5%BC%B5carey/</guid>
      <description>&lt;p&gt;Carey was a dog that my fiancée used to own. She passed away shortly after Dragon Boat Festival&amp;hellip;&lt;/p&gt;
&lt;p&gt;The first time I met her, she bit me! In my entire life, I&amp;rsquo;ve been bitten by two dogs. The first was named Lucky — I forget if it was middle school or elementary school — but it wasn&amp;rsquo;t particularly lucky for me. I just wanted to pet her, and she bit me. With Carey, I also just wanted to pet her, and she bit me too&amp;hellip; though not as badly as the first time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Financial Perspective] My Thoughts on BusinessWeek</title>
      <link>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E6%88%91%E7%9C%8B%E5%95%86%E5%91%A8/</link>
      <pubDate>Sat, 15 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E8%B2%A1%E7%B6%93%E8%A7%80%E9%BB%9E-%E6%88%91%E7%9C%8B%E5%95%86%E5%91%A8/</guid>
      <description>&lt;p&gt;Since high school, I used to buy computing magazines like &lt;em&gt;PC DIY&lt;/em&gt; or gaming magazines — always chasing the latest trends: building a PC, playing games. Then, in my fourth year of university, a younger student was reading &lt;em&gt;BusinessWeek&lt;/em&gt;, and I curiously asked why. He said he&amp;rsquo;d been reading it since high school, just out of interest, and that it offered many diverse perspectives. After that, I started buying a copy here and there — partly still following trends, I suppose.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] Tension</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E7%B7%8A%E7%B9%83/</link>
      <pubDate>Sat, 15 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E7%B7%8A%E7%B9%83/</guid>
      <description>&lt;p&gt;I haven&amp;rsquo;t felt this way in a long time&amp;hellip;
I want to go home. Hide away at home&amp;hellip;
And be a willful, rebellious child again&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Reprinted] Our Work and Responsibility in This World</title>
      <link>https://chenfu.ai/en/posts/%E6%96%87%E7%AB%A0%E8%BD%89%E8%BC%89-%E4%BA%BA%E5%88%B0%E4%B8%96%E7%95%8C%E4%BE%86%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%92%8C%E8%B2%AC%E4%BB%BB/</link>
      <pubDate>Sat, 15 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E6%96%87%E7%AB%A0%E8%BD%89%E8%BC%89-%E4%BA%BA%E5%88%B0%E4%B8%96%E7%95%8C%E4%BE%86%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%92%8C%E8%B2%AC%E4%BB%BB/</guid>
      <description>&lt;p&gt;&lt;em&gt;I happened to come across this article and wanted to share it with everyone.&lt;/em&gt;
&lt;em&gt;Source: &lt;a href=&#34;http://www.drbataipei.org/wisdom/213/wisdom213_4.htm&#34;&gt;http://www.drbataipei.org/wisdom/213/wisdom213_4.htm&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;What is a person&amp;rsquo;s responsibility? It is to contribute and be of service to the entire world — to benefit all people everywhere. This is our true responsibility as human beings.&lt;/p&gt;
&lt;p&gt;Today we come together to discuss: &amp;ldquo;What does a person truly need?&amp;rdquo; and &amp;ldquo;Why do we come into this world? Is it merely to eat, dress, sleep, and enjoy ourselves?&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Patch Files in Linux</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-patch-file-in-linux/</link>
      <pubDate>Fri, 14 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-patch-file-in-linux/</guid>
      <description>&lt;h2 id=&#34;creating-a-patch-file&#34;&gt;Creating a Patch File&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diff -Naur old-dir-or-file new-dir-or-file &amp;gt; patchfile.patch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;how-to-apply-a-patch&#34;&gt;How to Apply a Patch&lt;/h2&gt;
&lt;p&gt;There are two common ways to apply a patch:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Method 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat new-patch | patch -p0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Method 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;patch -p0 &amp;lt; new-patch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;understanding-the--p-strip-parameter&#34;&gt;Understanding the &lt;code&gt;-p&lt;/code&gt; (strip) Parameter&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;-p&lt;/code&gt; parameter specifies how many leading directory components to strip from paths in the patch file.&lt;/p&gt;
&lt;p&gt;For example, if a patch file begins with:&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Registering ActiveX Components on Windows</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8windows%E4%B8%8B%E7%99%BB%E9%8C%84activex%E5%85%83%E4%BB%B6%E6%96%B9%E5%BC%8F/</link>
      <pubDate>Thu, 13 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%9C%A8windows%E4%B8%8B%E7%99%BB%E9%8C%84activex%E5%85%83%E4%BB%B6%E6%96%B9%E5%BC%8F/</guid>
      <description>&lt;h2 id=&#34;registering-an-activex-component&#34;&gt;Registering an ActiveX Component&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-batch&#34; data-lang=&#34;batch&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;regsvr32 mcscal.ocx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;unregistering-an-activex-component&#34;&gt;Unregistering an ActiveX Component&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-batch&#34; data-lang=&#34;batch&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;regsvr32 /u mcscal.ocx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] The Odd One Out</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E7%95%B0%E9%A1%9E/</link>
      <pubDate>Wed, 12 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E7%95%B0%E9%A1%9E/</guid>
      <description>&lt;p&gt;When I see that phrase,
I think of the department backpack and T-shirt from university&amp;hellip; &amp;ldquo;Wings&amp;rdquo;&amp;hellip;
Sometimes I wonder if I&amp;rsquo;m the odd one out —
Not in a remarkable way, but in a quietly peculiar way&amp;hellip;&lt;/p&gt;
&lt;p&gt;In my long search for certain answers about life,
I&amp;rsquo;ve slowly drawn a few conclusions. The outline is still blurry,
But a direction is taking shape. Since leaving the military,
Coming to Taipei to work and to love, life is no longer as carefree as school days.
On the surface, I seem composed,
But beneath my behavior
there&amp;rsquo;s a quiet uncertainty about the future —
an unease I can&amp;rsquo;t quite name.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Work Notes] Embedding an OCX Component in a Webpage</title>
      <link>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%B0%87ocx%E5%B5%8C%E5%85%A5%E7%B6%B2%E9%A0%81%E4%B9%8B%E7%8B%80%E6%B3%81%E6%8F%8F%E8%BF%B0/</link>
      <pubDate>Wed, 12 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%B7%A5%E4%BD%9C%E9%BB%9E%E6%BB%B4-%E5%B0%87ocx%E5%B5%8C%E5%85%A5%E7%B6%B2%E9%A0%81%E4%B9%8B%E7%8B%80%E6%B3%81%E6%8F%8F%E8%BF%B0/</guid>
      <description>&lt;p&gt;An &lt;code&gt;.ocx&lt;/code&gt; component is provided by a third party and can be embedded in a webpage. This particular component has limited built-in functionality, so to extend its capabilities, the &lt;code&gt;.ocx&lt;/code&gt; file needs to be wrapped in a wrapper function before adding the extra features we need.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s always a bit challenging the first time you do something new. While I have a clear concept of what needs to be done, the tools themselves are quite unfamiliar — Windows application development is an area where I have very little experience.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Personal Reflections] Memories at Thirty</title>
      <link>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E4%B8%89%E5%8D%81%E6%AD%B2%E7%9A%84%E8%A8%98%E6%86%B6/</link>
      <pubDate>Sun, 09 Sep 2007 00:00:00 +0000</pubDate>
      <guid>https://chenfu.ai/en/posts/%E5%BF%83%E6%83%85%E9%9A%A8%E7%AD%86-%E4%B8%89%E5%8D%81%E6%AD%B2%E7%9A%84%E8%A8%98%E6%86%B6/</guid>
      <description>&lt;p&gt;At thirty,
Looking back feels like a dream&amp;hellip;
I&amp;rsquo;ve left so little trace.
I used to try writing things down,
But the enthusiasm lasted only three minutes,
And the blog was soon deleted,
Everything&amp;hellip;
forgotten&amp;hellip;
Memories at thirty —
Only work remains.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
