Goodbye, big aunt

Dec 31, 2016, cloudless clean day, when everybody was saying goodby to each other, my wife’s big aunt from her father went away(my father in law’s big brother’s wife).
She was suffered by a kind of lung tumor, critical type, but went away peacefully.
She was thin and short, a typical old Chinese woman, a symbol of old day’s woman in 1930’s.
She was an educated woman comparing to most of women in her age who was born at that era of China.
In benefit with her education, she was brilliant, deep minded, you can feel it when she talked to you.
After so many years of hard working, now she finally can rest in the heaven, and now she can be together with big uncle again, live together with each other.
I believe Bodhisattva will bless them like Bodhisattva does.

Goodbye, my big uncle

New year, new starts, new beginnings

So manny things happened in 2016, good things, bad things, happy things, sad things, and I was busy in my own so called “The most comfortable state of mind”, but I was cheating myself actually.

Now, 2017 is approaching, new year brings with it new opportunities and excuses to make new starts.

So, like everyone, I can pursue my new beginning now. Isn’t it amazing? XD

Yea, a fresh new start, start deep from the heart, inside out.

Looking forward to you, my 2017.

And wish you great year too, my friends.

July 2014: Why LeBron left Miami and back for Cleveland?

July, 2014, there was two big events to me in sport.

World Cup, and LeBron’s leaving decision before the final game of World Cup.

What I want say here is about LeBron’s New decision. There is a Chinese Saying, 好马不吃回头草(The good horse does not keep resuming things given up), IMO, which is exact what LBJ is doing. Continue reading “July 2014: Why LeBron left Miami and back for Cleveland?”

October 2013:Reputation comes from the company you keep

In the past weeks, I was busy working on my new assignment: H323 protocol stack.
After about two monthes hard working, I can finally say that I almost made it, which means I can figure out the reasons of most of the remained bugs/defects, and can resolve them in time if it is protocol relevant. And, I’d say that it’s really a tough one, gaven the backgroud that all the team memenbers had left Kedacom, I have no one to turn to.

However, lots of mistaken/jokes happened during this period.

One biggest mistake/joke was, I said in a weekly meeting, right in front of all the team members, that doing write operations to an NULL pointer can make the app’s top sections of memory (BSS) wrong…

This brief came from an existing code of H323 stack, which apprearantly wrong:


if ( NULL == m_ptMsgDelay )
memset(m_ptMsgDelay, 0, sizeof(m_ptMsgDelay));


I declared it wrong when I first saw line 1:”if ( NULL == m_ptMsgDelay )”.
But I did no more dug on the further codes, because I had tons of codes to read, and I didn’t want to be stucked in some particular lines of code.

When the weekly meeting came, and I didn’t know what to say about, I remenbered this issue, so I brought it out, saying it could lead to write wrong data to an invalid memory section.

Being a programmer for over 10 years, I’ve handled with hundreds of NULL pointer issues. Saying words like this, it’s really out of sense. Even now, I do not know what I was thinking, what I was saying about.

So, yes, I lost all my reputations before gain it. I think this could be a tremendous joke in the whole team, and can be joked all around the company.

Like it or not, it could be a life-time mark for myself. I can also remenber it by joking it around like it or not.

Two lessons:
1. When you see something suspicous, try dig it out.
2. Let it be, if you dont have things to say about.

The good thing is, having nothing valuable to look back, I can look forward now.

20131108 update:

I brought out the codes which I’d made mistake, In the last week’s weekly meeting, to joke how a programmer with over ten years of experience could make such a fault on a knowledge of basis.
But, after a few minutes check & review, I was astonished. Most of the team members were also wrong about the common senses.

So, today, I decide to put it here on my blog, if you happen to see this article, make a test for yourself. If this is the code you need to review, how would you think of it?

typedef struct tagMsgDelay
s32 nMesgType;
s32 nSubReq;
s32 nDelayTime;
u32 nReserved;

TProxyMsg* m_ptMsgType[MAX_MSG_QUEUE];

void InitProxyClient() {
if ( NULL == m_ptMsgDelay )
memset(m_ptMsgDelay, 0, sizeof(m_ptMsgDelay));

Key point of this code:
1. if ( NULL == m_ptMsgDelay )
2. memset
3. sizeof(m_ptMsgDelay)
4. sizeof(NULL)

August 2013: A time for change

After went through the hottest summer ever in Shanghai, we finally can have a cool day in this weekend.
However, lots of things changed/happened in this hottest season.
First, Jane, my niece, went back to hometown right after spent her birthday, she said, it’s too hot.
A few days later, a colleague who was responsible for H.323 stack/protocols (including H.225, H.245, Q.931, T.120, H.460,

H.235, H.239, Gateway, Gatekeeper, proxy modules, SIP/H.323 interworking modules, and more) got himself resigned, saying,

it’s really riley working on days like this. I know it’s a joke, he got a great new job, congratulations to him. But along

with my congratulations, I must say it’s really bad to me, because it’ll be me who take over his jobs which appearantly

have too much issues in it, here are the situations:

1. There once were 7 peaples working on H.323 stack team, he was the last one quitted.
2. He was only responsible for H.225 & H.245 protocols in the most of times.
3. It has been only 3 monthes after the other team members quit, and he took over all the others jobs, not even got to know

what he took over (As I listed, what he responsibled for is only a few part of the team’s job).
4. Now he’s passing them to me…
5. After I checked the defect/bug lists, and reached into the codes, I found out tons of confusing codes which could

misread, in architecture/framework level, in working flow level, and in coding level.
6. Then I turned to the managers trying to get some documents relevant, but got a simple and loud answer, NO.
7. …

Actually, when the former colleague quit, my boss told me that H.323 stack team need to rebuild, or send it away to other

teams, if no one would take it, he’ll take it over himself. But, I told hime, I can take it. So, yes, I asked it for myself

before knowing how what it is.

And I suspended all my researches for now, and trying to get myself into the whole bench of the new jobs, to maintain the full H.323 stack/protocols.

So yes, it’s a change time for me too.

I feel sorry for myself being so rude to rush into these stuff, but I also see a chance in it. Wish me good luck, and I need, and will work harder for it.

Hot day still, isn’t it?

July 2013: Bad thing happens

At the end of June, I got my left foot hurt while playing badminton. Just a few day later, I was ran over by a moto bike, and got my right foot hurt too. But comparing to what I encountered in the last year, what happened to me now are just nothing.
BTW: Alex Chang, one former colleague in UniSVR, also had a bad lucky in the last weekend,

Bad thing happens, you can choose to pity for yourself, to freak out, or run away from the things happened to you, and you can choose to hide yourself in a freezer temporary(It was the hottest July ever in Shanghai), but being a shirker can only keep you away from the pain/sad for a momont, one day or another you need to face it. So, why not be more blandly, just wait and see could it be sader? Then maybe it’s a starter of lucky.

As usual, my niece came to Shanghai for her summer vacation. She’ll be a junior high student later this year, but she’s already taller than lucy now.

My little uncle, and my brother in law are busy seeing doctors for their legs, wish they best of lucks.

June 2013: Graduate season

Graduate season

June 28th, 2013, Friday, a day happen to be free for me, and happen to be Catherine’s last day for her kindergarten. Congratualtions, She’s soon be a primary school pupil. PIC_20130626_211552_B7C PIC_20130626_211614_16C PIC_20130626_211634_461PIC_20130628_154710_605 PIC_20130628_154828_1C0

And she got her one more certificate than her father, Painting certificate. :'( :'( :'( 😀 😀 😀PIC_20130623_162228_E87 PIC_20130623_162528_723

I ain’t got no worries. We ain’t got no worries

HEAT has won this season’s NBA champion. LBJ got his second ring in the recent two years. After it, he said: I ain’t got no worries. We ain’t got no worries(我现在没啥可担心的了,我们现在没啥可担心的啦), nevertheless how much difficulties they’v encountered with. I’m never be a true fan of NBA, even when YaoMing was still serve in NBA, but I heard a lot about LBJ, about he’s  a fighter, maybe the greatest one, about he is a really nice guy. So, all I wanna say is congratulations!

In the meantime, the words are also for me, because I got hurt, again, in the last Friday(June 28th) evening’s badminton game. I ain’t got no worries either after won my “champion”.



I ain’t got no worries, either.

Recruiting/Calling former colleagues

Once upon a time, when I joined Kedacom, I was asked by my supervisor about my plan in Kedacom, I said my first goal here is to get to know more about Kedacom & its products, then lead a team and in charge a specific technical area, but my first goal should be pass the probation.

Earlier in this month, I was told by my supervisor for a second time that I am gaven a better expectations here, he wish I can play a more important role in the division, and now there are vacant positions, he asked me if I can introduce some guys to Kedacom. And once done for this, he can assign them to me, maybe I can be the leader of them.
So I tried to reach to serval colleague, like Ben, Bruse, XiaoQ, Jason…
The sad thing is all of them seems having a better oppotunity in their new company, some of them even having a better salary than me (in Kedacom). What I can say is only congraturations.:'(:'(:'(
Ben once was the best shot, however he’s in a special time now, he’s attending to apply Shanghai HuKou in the coming monthes after the famous 7-year-of-tax-contribution in Shanghai.
I told him to confirm with the HR or Administration dept of his employer to check whether he’s fits with all the requirements, then give me a call ASAP once he’s got the result.
But……weeks passed, no call till now. So, seems I can send my best wishes to him too now.

Motivation would be a blade in sometimes.

After finished the entrance exam in the last month, someone asked me why I put so much time in this comparing to 1/4 to 1/3 classmates did not attended most of the courses.
I said to him, its because I’m having a good time here, my hard work was payoff, I feel I’m approved here, that’s my motivation, I need to be approved by someone else, I need to be approved by myself. This is a typical reaction to most of us, when you feel you are approved, you will put more effort into it.
Back to career topic, when I decided to join Kedacom, I was, and still, having confidence in myself, believing that I can prove myself in a short time, and blah-blah-blah.

But it seems now, I was so naive.

I did a lot things in the past monthes in Kedacom, resolved several technical point for the online products of Kedacom, I was so eagered to be approved.

However, I’m still under probation, right on schedule, rather than pass it in advance.In the meantime, I did not put much effort to some training courses which is not cross with my job responsibilities (for now, and by my own opinion), I thought they are not relevant, but it seems it does. And I skipped some of the code analysis steps while I was coding some extra but independent functions for KdvMediaSDK, my focus was on the outcome directly, skipped some coding style, coding rules of the new company, it seems also a big mistake for a senior programmer.

So I must keep telling myself now, be patient.

May 2013: Biggest exam in a decade


In the last weekend, I attended one biggest exam in a decade, the post-graduate entrance exam of USTC.

To assure that I can pass the exam, I attended a training course earlier this month, and put myself busy preparing the exams for weeks.

Everything went great.  For both the two phases of the exam (First one was pure a exam, including English, Mathematics, and Specialty course; Then was an interview held by Prefessors from USTC).

And now I believe that I can pass, only need to wait the result to be revealed at July.


I, per myself, am a modest man, and I’m a man values honesty as a great virtue.

But it seems that I’m act too modest in some specific time. I just joined a new company last month, now surrounding by lots of unfamiliar faces. My previous title in my previous employer, UniSVR, was R&D manager of China mainland, in charge of both Shanghai & Beijing offices’ R&D teams, but that was once upon a time. Now I’m nobody but an ordinary SDE, and people here don’t know me, yet. There once I was given a chance to introduce myself. I said nothing about the titles and the track records I once retrieved or archived, because I didn’t think this could be any help. Now I start to think it was a big mistake, just like another big mistake I’v made earlier in a conference interview thru WebEx.

In that interview, I must say, for the record, I completely meet with the requirements of that position.

However, I failed to pass the interview. After reviewed the interview myself, there were two key points affected and led to the failure. Video codec & Streaming QoS, which I’m both experienced and capable of. But when I was asked about these skills or questions, I was too modest, I only said that I didn’t get myself involved into those skills because:

  • Video codec

In fact, earlier when I was working on the WinCE/Windows Mobile client for 3GVAU project and UMA project, I once researched into x264(encoder) and ffmpeg(decoder) for over a year (not full time, because there are other proejct to work out), but only for porting purpose and bit rate control purpose. I’m not saying here that I’m an expert in H.264 codec algorithm topic. At least I knew and familiar with it, although it was a thing of 5 or 6 years ago.  When I was asked about video codec, I said nothing about these experiences, instead, I said I had not worked on the detail codec algorithms, what I master at are how to use the codecs, and parseing some header informations. For example, when we streaming videos, we need to parse H.264 SPS/PPS, MPEG-4 VOL/VOP info.

And I put an end of this question with a saying, There are things you didn’t get yourself involved into, but it doesn’t mean you are not capable of it. And more, I told them that I can do the video codec algorithm work if it is necessary.

  • Streaming QoS

I was once researching on this topic for monthes to improve the streaming quality of UniArgus series of products, including but not limits to standard protocol like RTCP, private protocol of UniArgus. However these implementations did not work as so good as what we wished it to be,  when the networking bandwith is really suck, especially when you are using a smartphone to view a live video through 3G connections.

Besides, UniArgus series products are designed to stream limited sources of stream to hundreds or thousands of different clients, including clients connecting by LAN, by WIFI, by WAN, or by 3G. That means its impossible for the server to encode/transcode too much different streams with different profiles. For example, one stream in server, two clients. One client is in LAN, another is connecting thru 3G(which sucks).  If server can only produce a profile of stream, then we can  not take take into consideration of both of the clients’ QoS requirements like frame rate, bitrate adjustment. What we can do is only if one client encountered package loss issue, we can re-send the lossed packages or skip some usless video packages(like drop all the rest B/P frames untill next I frame).

However I never mentioned all these staffs, maybe it’s because the I was nervous, or just don’t want to say things I not 100% confident in its outcome if I was about to do this in the next minute…

A conclusion for this:

I failed that interview, not because I’m not qualified, but only because I did not show them what I capable of in the short time conversation, or what I expressed/showed to peoples was some things can not completely stand for my expierencs or backgrounds.

My one biggest problem is just that. I’m a modest man, I never like to talk big. Years of experenes in Project Schedule planning made me even more cautious in talking about some specific staffs. And in the past over ten years, I was always be the man who sit on the master side of interviews, I’d never been interviewed, so I do lack of skills in presenting myself.

Now, here I am, in Kedacom. Wish I can do better from now on.


My father resigned from his job in the beginning of 2013. And earlier in the month, May 10, he left Shanghai for his new start in Hangzhou. Wish he perfect in his new position.

Catherine’s kindergarten education is about to over, and she recieved the letter of admission from the 1st junior school of DAHUA, after Lucy’s efforts through her boss.

Little uncle went to Hangzhou to have a surgical operation on his leg. It was a really big operation, after it was done, no one can stand the extremely pain, so Mom went Hangzhou to look after her little brother for two days. Now he’s already checked out, and back to Dongyang for later recuperation.  Wish he healthy, and will not be lame in his leg any more.

April, 2013: A fresh new start


After 3 weeks so called “rest”, watching movies, picking up Catherine after her classes are over, I finally got to check in Kedacom on April 18.

A life fresh new starts, surrounding with lots of “strangers”, without any IM tools allowed in the office, doing works by a PC rather than a notebook, coding on Windows and MFC only instead of all the OSs I familiar with, and I’m no longer the one who makes call in the team and no longer need to chair the meetings now, and there will be formal/required overtime working (every Tuesday & Thursday, and two Saturdays every month),  even more I can not visit my kedacom’s mailbox when out of the office, everything is so different with what I used to be in the past decades. Simply put, in my current understanding, Kedacom is a typical Chinese company, while UniSVR seems more Western in working style.

Still working on adapting to the all new environments and the team.

However, what I dont need to change myself to be is, the works are still audio/video related. My current job responsibility is get into an existing MediaSDK for the VoIP products of Kedacom, which including  audio/video capturing, pre-processing, encoding, muxing, transmitting for the caster side, and demuxing, decoding, post-processing, render for the player side, and the first step is implement a full functioned audio processing module for the MediaSDK, including but not limitted to AEC, AGC, Noise Supression, High pass filter(which will be simply implemented by wrapping the codes from WebRTC project).

I believe what I need to care is how to adjust myself to get into the role rather than programming skills or anything programming technical related.

Wish I can pass the probation soon.


Easlier in this month, USTC posted a notice that the 5th MSE entrance exam will be held on May 26. It’s a really good news to me, after postponed for over 6 months.


Dad’s work finally got confirmed too, and he will on his way to Hangzhou days later, so I don’t have so much more oppotunities to drink with him later. Enjoy the father-son drinking time.