Alvin's profileRunning Water Stays Clea...PhotosBlogLists Tools Help

Blog


    February 12

    My blog in Chinese

    I've been asked a lot of times why I blog in English.  I've also been asked many times why I don't write my blog in Chinese.  To me these are two different questions.  To question No.1, I blog in English to practice, also to share some thoughts with those who don't read Chinese.  And to question No.2, yes, I do! The Chinese version is at http://ysquarespace.spaces.live.com (which isn't updated frequently either). 

    Anyway, I am never thinking of having these two sites synchronized.  So always expect different things from the two if you read both.  This is not because I failed the interpretation test. (I never managed to repeat that long paragraph, I can't even exactly repeat it in the SAME language...  Why should I?) :P  I don't translate as I think it boring.  Thoughts in different language are comparable but never accurately matched.  Instead of thinking something similar twice, why don't we just create something new?

    To make it easier, I also point my sub-domains to both of my blogs:

    http://blog.yanfang.net to this one.

    http://ysquarespace.yanfang.net is pointed to the Chinese one.

    Maybe I should add cross-links on the two sites.  It's too late, let me do it later.

    November 28

    Around Seattle

    It's quite interesting to see some different styles in the HQ of the company.  A lot to learn...
    October 25

    Add some updates

    Seems the blog has become a monthly check...  Anyway I will try to see if I can write something more.  I am now on a different project.  A lot of new information to catch up.  OK, gonna back to work.
    September 19

    Writing right after Mid-Autumn Day

    Had a good time in the evening with a gang of friends sharing moon-cakes and playing killer game.  So I was not able to blog this before midnight of Mid-Autumn... what a pity.
     
    Among the first few poems I studied in my childhood, I remember Li Bai's masterpiece very clearly: Looking up to see the moon, while thinking back to miss the hometown. (Well, I agree I'm not a good translater.  But that probably reminds you of the original words, doesn't it?)  I have always been confused how the poet linked the two together - why could the moon remind him of the hometown?  I explained to myself that both the moon and the hometown are something beautiful, and the artists always tend to associate things like these together, e.g. lakes or streams with beauties, mountains with heros, and plants with some people with specific charateristics.  In the poem "Jing Ye Si", the poet simply put the two together in the sense that they are both beautiful, thus he was also able to construct the poem neatly aligned.
     
    But I reallized that this may not be the whole story, when I looked upon to the moon, faraway and alone.  Through the moon, I started to imagine the last time I saw it, the last last time, and the last last last...  All happened when I was at home.  At that time I needn't worry about the work, the life and the time.  Never too much work, easy and happy life, and always enough time to do anything.  I needn't worry about where and what to eat, as they are always there, well cooked and nutrition balanced.  So I'd say the moon is really magical to bring up so many fancy moments in my mind.  Isn't it the same way that got the poet see his home and his family through the moon?  Could be...
    August 15

    God Loves Unskillful People

    I admit I am not a hardworking guy all the time.  Occasionally I use some little tricks to keep the life easy and happy.  People like this are referred to as "little smart"...  However we should always be aware that this is not real smart.  Eric told me a Taiwan saying that the god will help those who are dilligent all the time though unskillful to impress the others.  It reminded me of the words by Steve Jobs: "Stay Stupid, stay hungry".  Yes, maybe this is what I've been looking for. 
    July 31

    Semi-anniversary

    I've been here in this company and this city for exactly half a year.  Great that I survived, and of course I will live even better.  Congratulations to myself!
    July 21

    Shocking news is just so so

    A very senior guy in our company left for a competitor.  The corporate GM sent a mail to tell it to us.  I didn't feel much different about the mail, but somebody told me it was written overnight.  Then I read it twice...  Yes, it WAS written very carefully on every piece of words.  So what?  He who left has left...
    July 19

    Living alone

    I was seldom aware of the advantage of staying with family.  When I lived with my parents, I complained about Daddy's endless instruction on whatever important in the world, mother's ubiquitous rules on each single minute in daily life.  I was told to eat a lot of nutritious vegetable/fruit/drink or even pills,  I was not allowed to go to bed later than eleven, and if I want to stay in bed after nine on weekends, I get a restless and powerful alarm clock.  So when all these disappeared with my decision to work in a different city, I get a chance to practice a different life.  No instruction, no rules.  (Parents call me from time to time, but I'd rather take it as some free chatting than the old instructions.)
     
    I thought I became alone and happy, until Mama came for a short visit last week.  Then I was reminded of how easy it used to be when I was at home.  And I got to tell the difference between restaurant tasty and hand-made delicious.  And I learned that living alone is not kind of enjoyment, but sort of tough exercise.  I realized why parents agreed to send me away for a separated life even though they said they didn't want me to leave...
     
    After couple of months of stand-alone life, I find myself changing little by little.  Maybe it's time for me to think seriously about something important... (Definitely I am not thinking about going back, don't worry about me).
     
    Somebody's comment just came into mind that a man has to leave his home before he can achieve something great.  OK, let me hold it as a motivation.
    June 14

    Connected

    It's fantastic to be connected with a group.  They may not agree with you, and they don't even talk to you a lot.  But in some way, you just know that they are with you.  You needn't express your feeling word by word, they've got it once you got it.  You don't fight a battle alone, as the group is supporting you, you know it.  Yes, this is so-called connection.  It's magically cool!

    June 12

    Ate a Scorpion

    A fried scorpion.  Actually I didn't mean to do that, but the cute lady beside me kindly put it into my plate, and looked at me with encouragement.  She told me it tasted good.  So I tried.  Well, it is good.  But I really don't want a second try...

    And they said there're also grasshoppers, and pupas of silkworms, and ants, and spiders.  Gosh, how did people get to eat them?

    June 09

    Stupidity and Simplicity

    I made a very stupid mistake yesterday.  I went through the whole process I was in, finding that each step went on well without error, but it ended up with a stupid solution...  Sounds strange.

    I was responsible to schedule an interview loop between 5 interviewers A, B, C, D, E and 6 candidates C1, C2... C6.  Here, I blurred their names because this has nothing to do with my foolishness.

    Interviewer A, B, C are invited guests and D, E are both local experts.  Each candidate will meet two of the guest interviewers and two local experts, so there are 4 rounds for each of them.  For the two guest interviewers, they need to meet 4 candidates each, while the local experts are to meet all 6 candidates.  Conditions cleared.

    Basically, I think this is easy, because the number of both interviewer groups (A, B, C together as the guest group (3) and D, E together as the local group(2)) can divide the number of candidates (6).  So I easily break the 6 candidates into 2 groups, and scheduled them cyclically as follows:

       | R1 | R2 | R3 | R4 | R5 | R6 |
    ----------------------------------------------
    A | C1 | C2 | C4 | C5 |
    B | C2 | C3 | C5 | C6 |
    C | C3 | C1 | C6 | C4 |
    ----------------------------------------------
    D | C4 | C5 | C1 | C2 | C3 | C6 |
    E | C5 | C4 | C2 | C1 | C6 | C3 |

    But there's a big problem in this solution, as we can see in the table, unlucky C3 will have to wait for the whole hour doing nothing between R2 and R5.  Certainly this is unfair to C3.  Of course we know that waiting is inevitable as there are less interviewers in local group (D,E) than in guest group (A,B,C), so at least one candidate will have to wait.  But still, 1 hour is a bit too long.  So I changed the schedule a little.

       | R1 | R2 | R3 | R4 | R5 | R6 |
    ----------------------------------------------
    A | C1 | C2 | C4 | C5 |
    B | C2 | C3 | C5 | C6 |
    C | C3 | C1 | C6 | C4 |
    ----------------------------------------------
    D | C4 | C5 | C1 | C2 | C3 | C6 |
    E | C5 | C6 | C2 | C3 | C1 | C4 |

    Now there are more people waiting between rounds, and there's still one (C4) who has to wait 2 rounds (R2 and R5 separately) summing up to 1 hour.  In some way, this solution is worse, but I like it because I believe C4 will be happier than C3 in solution 1 when he/she see more people waiting with him/her.

    Things are going on very well, until I was told there'll be one candidate absent.  Immediately, I got to the point that we can go back to the first solution, and assign the absent one as C3.  By doing so, no one need to wait between rounds.  All candidates get consecutive rounds to take the interview.  This is good, and fair.

       | R1 | R2 | R3 | R4 | R5 | R6 |
    ----------------------------------------------
    A | C1 | C2 | C4 | C5 |
    B | C2 |(C3)| C5 | C6 |
    C |(C3)| C1 | C6 | C4 |
    ----------------------------------------------
    D | C4 | C5 | C1 | C2 |(C3)| C6 |
    E | C5 | C4 | C2 | C1 | C6 |(C3)|

    Then I think, why should we keep C6 that late, just because we want the candidate to meet both D and E?  Why don't we have one of the guest interviewers to help meet C6 in the free slot, so that we can release C6 earlier?  So I looked back into the time sheet, and find that A can help meet C6 if we move C1 and C2 a bit.  Yes, I have only 5 rounds now.  The solution resulted in a exception that C6 will meet all 3 guest interviewers and only 1 local one.

       | R1 | R2 | R3 | R4 | R5 |
    ------------------------------------------
    A | C1 | C6 | C4 | C5 |
    B | C2 | C1 | C5 | C6 |
    C |(C3)| C2 | C6 | C4 |
    -----------------------------------------
    D | C4 | C5 | C1 | C2 |(C3)|
    E | C5 | C4 | C2 | C1 | C6 |

    Now comes the question: can I fit the R5 of C6 into the time matrix?  I know it's stupid to have Interviewer C and Candidate C6 do nothing at R1, just because they are scheduled to meet at R3 again.  I think and think and think, there seemed to be no good solution.  So I locked it down and sent the email out.  I even explained to the interviewer C why we will have a blank for R1, bla bla bla bla.

    Then, at the very moment, I woke up to realize how stupid I had been.  There're 5 interviewers and exactly 5 candidates.  If I simply schedule them cyclically, then everything is ok, just that there will be 2 candidates that will meet 3 guest interviewers.  This is no different from the last solution, just one more exception.  But after the long journey from solution 1, I was just stuck, and deprived of all the smart ideas.

    Here's the final solution, see how simple it is?

       | R1 | R2 | R3 | R4 |
    ----------------------------------
    A | C1 | C2 | C3 | C4 |
    B | C2 | C3 | C4 | C5 |
    C | C3 | C4 | C5 | C1 |
    ----------------------------------
    D | C4 | C5 | C1 | C2 |
    E | C5 | C1 | C2 | C3 |

    June 03

    Meeting Martin Fowler

    I have read quite a lot of books by Martin Fowler, Analysis Patterns, RefactoringPatterns of Enterprise Architecture... and once I even took his little book UML Distilled e2 everywhere with me. (but I never got enough time to finish this one, what a pity!)  So it's a great experience sitting right before the master, listening to his talk about the past and future of Patterns.

    The master started with a typical statement, "I am not sure if it's OK for me to speak English..." and I was quick enough to respond, "Can you speak anything other than English?"  He said no and looked at me.  All people around looked at me.  It made me feel silly.  I must think twice before speaking... eh... next time.

    Martin spent some time explaining why he didn't have slides with his presentation.  Then he gave a big review on the start-up of Software Patterns and Extreme Programming.  To me, there weren't many new ideas as I had read most of them earlier.  But after all, it's coming from the mouth of the master, right?  That's different.  Martin covered some key suggestions:  To take the pattern books as dictionaries and never read them from cover to cover, to see whether the pattern fits in the case before trying it, and remember to optimize the pattern code by adapting it to specific circumstances.  At the end of the talk, he advertised his website at http://www.martinfowler.com.

    One note to add: Martin looks exactly the same as he appeared in the photos, but he never showed his passionate body languages in them.  Good to see him at Millenium, Beijing.

    June 02

    Interesting Dinners

    Thanks to my poor memory, I had two suppers this evening.  First I had a big bowl of beef rice at B1 (the dining hall under the office building) with a couple of friends.  It tasted good, so I actually ate it bottom up.  Then, as I was wondering why I had such a good appetite, I got a call from another group of colleagues telling me to gather at a big restaurant.  They told me two days ago, and even sent me a memo this morning, but I just ... forgot it!!

    Yes, a promise is a promise.  Even though I just expressed my worry about my expanding abdomen, I went for the second round, and... to my surprise again, I still had a very good appetite, very very good.  It's horrible!  We drank some beer, took some cute spicy dishes, and talked a lot.  It's always pleasant talking to people with great more experience than I.  We shared many interesting stories, and they got me aware of something that I never know.  Hmm... as this is a story much longer than I expect to write, I won't go on this time.  Maybe write it next time?

    May 31

    Second First

    Have to re-set up this site in English as somebody complained to me that the menu and navigation bar in Chinese made it unharmonious.

    As the first topic here, I'd like to write something about the title - Running Water Stays Clear.  Yes, there is a Chinese saying with the similar meaning, telling us the running water never goes stew, and the moving door-hinge never gets worm-eaten.  But this is not what I was thinking about.  At the time I created the site (yesterday), I happened to be reminded of the words Meddy talked about - Still water runs deep.  I know she is not the one to create it, but I was kind of fascinated with the situation it refers to.  And, as a result, I took the opposite phrase as my blog title, which I think is closer to my char.  Well, it doesn't mean that I am always running, as I actually spend about 90% of my waken hours sitting, and another 9.9% of time walking or standing, and sometimes my parents and I are worried about my health.  They told me to run, but I just don't have enough time.  Instead, I imagine it at night.  So little by little, running becomes part of my dream.  That's not bad, as we all know, physical exercises in mind helps to keep fit as well.

    OK, it needn't be too long at the first stages, or I'll lose the drive to keep on.  Just stop here.

    Oh, BTW, Does anyone have some idea how I can transfer my old blog data in .TEXT to MSN spaces?  I used to write a lot, just don't want to lose them in the wind.