Category: Thoughts

各位未畢業的ACM(ACM是一个编程比赛, 和世界各地的人比赛解决问题)同學, 你們玩ACM有沒有想過是為了甚麼?

其實, 當年我沒怎麼想過的. 我個人比較特別, 不同於大家 HKOI 時代開始. 我是大學一年完畢後, 參加了ACM講解班, 給金國慶教授游說ACM和電腦安全有莫大關連, 就參加了. 後來, 和要好的朋友關閉修練了兩個月, 晝夜不分的練習, 於九月份有幸被選中加入, 成為該年其中一隊ACM隊.

兩年來, 出戰幾回, 雖未有甚麼驕人成績, 沒有甚麼World Final, 名次也從來沒有一二, 但是自己覺得是大學非常寶貴的經驗, 當中學了的是紮實編程根基, 後來也奠定了自己的能力如何可以追上多年編程經驗的人, 更重要是認識了很多朋友(而且都很勁), 這是難得又難得! 而且有幸多位能力強的師兄學弟, 也算讓我這位師兄/學弟沾沾光.

一直有個問題都在糾結, 師兄們也會提到 : 究竟ACM裡學到的算法之類, 那種毫無可讀性可言的編程技術, 真的在仕途上有用嗎?

拋開學術界 (非本人領域), 確實ACM有他的隱性副作用, 我們會加入ACM的, 思維很容易給技術吸引著, 但是在我4~5年的工作創業顧問生捱當中, 我們IT人的價值之一是在於如何解決問題, 並非讓你滿足於技術相關的欲望. 再抽象點說, 你的硬技能(技術, 學識等) 需要配合軟技能才能好好的發揮, 如果你可以同時滿足自己的技術欲望, 又能解決問題, 最就好了. 套用一個很土的比喻 : “相信金子總會發光”, 但是我想發光的 金子埋在土裡, 誰看到?

當然, 好處也不少, ACM對你在早期的作用, 可以令你的編程根基紮實, 算法方面其實不太會用到的, 但概念上會讓你更能運用自如, 但是這個編程根基的紮實, 剛好就是要讓你晉升為更有能力旳開發者的一個要點之一 – 很多人其實不會寫得一手好程式, 也當不了一個開發者 (編程和開發是兩回事). 編程和很多技術一樣, 需要很苦心長時間鑽研, 如果你考慮在IT發展, 這個能力很重要.

其實以上經驗並非ACM人才有關連, 我花了一點時間才弄清楚這個道理, 希望可以幫到將出來社會的師弟們.

ACM與仕途

自上一次發貼子時,不知已經過了多久,今天又想來寫點東西了。這段時間以來,我經歷了很多事情,雖然都跟旅遊扯不上關係了,唯獨仍然相信 Applied Dreaming 這個信念。先和大家打聲招呼,慢慢再說…

另外個人比較喜歡的文章發現還是 幾窮都要去旅行

突然一發

2009 Annual Letter From Bill Gate – Bill and Melinda Gates Foundation

My first time taking note of a Charity organization.

10 million children dying is still 10 million too many. Each death is a tragedy.

10 million children dying each year, without reaching adulthood. That you seeing this, as an adult, if that’s your children, what are you thinking?

The intensity reminds me of my time at Microsoft, when we were competing with other companies to make the best database or word processor. However, in this case the competitor is a virus and all of humanity is on the same team, wanting to work together to defeat the virus.

After you read the above, it is so sad to read this :

Most of those that were not already large donors have increased significantly since the European Union and G-8 made new commitments in 2005. The current Italian government stands out because it is not only falling short on the increases but is actually cutting its aid budget.

My impression with Italy is actually quite bad, now Gates is asserting my perspective. I hope for counterexamples.

It is interesting how often the impact of climate change is illustrated by talking about the problems the polar bears will face rather than the much greater number of poor people who will die unless significant investments are made to help them.

This is so true of above. Why?

Lo and Behold! I am still alive. I have had a great month, and covered a lot of places. I would like to share about my trip but a lot of my writings are left in a notepad in London. Hopefully, it is coming back to me by the end of February. Jeez… After they came back, I will be typing them here.

Yep, I am coming back to life again.

Lo Is Still Alive

(Photo by Vanessa Sig)

In certain stages of our life, we make hefty decisions such as picking the right profession, dumping a relationship, where you live, who do you marry, resigning a good job, having a child or not, and many others. Few of them are of my age’s concern. Yet, having been around for two decades, I have gone through similar experiences of my average age. As we mature, we learn to consider for externalities when we make a decision. One of these decisions that bother us is whether or not to pursue our dream or not.

Strange. Why would anyone not pursue after his own heart?

There are times when we work towards something seemingly hopeless, and sometimes ultimately doomed. At this time, your parents, friends and mate toss at you their disagreements with phrases such as “Stupid!” and the deadly “Be mature and realistic”, unless you succeeded. With such a supportive group and people whose total knowledge and lifespan exceeds that of you, and presumbly with good will, how could you go against them and not defy your heart?

The platitude is that you should never give up. However, we do not live in the pleasure of idealogy. Which then, the reality follows : If many of our loved ones warns us to withdraw, we best take heed. Gotcha! Now you have just gone against your heart. But what if you truly desires it from the roots of your heart? You will then regret over not having done it. Worse, you found out that you should have done it. You come back to the same decision a decade later, and realized you stagnated a decade. Now the guilt comes to haunt you. Not them. Yup. The guilt haunts YOU, not those who convinced you to go astray the path.

How long will the guilt haunt you? Depends, maybe not for life, but it is already painful if the guilt haunts you for half a decade. Now, if picking a profession is quite a difficult thing for non-mainstream choices such as being a software developer in Hong Kong, or be a Biochemist in Macau, or want to work as an author, or be frank and admit to your sexual orientation, and many others. You really have strong reasons to not follow your heart. But if they turn out to be your heart truest call, this can haunt you for ages.

The following is a boring story about me. When I made the decision to come to Shanghai, I effectively and consciously gave up a lot of things I concern in Hong Kong and Macau. It was not just the salary that was significantly different, but think about the guilt that you cannot look after your sick mother, or unable to participate in your friends event, as well as leaving your mate, and living alone sometimes questioning in despair, and much more. Even until this moment, I am still on my journey to pursue my dream – a desire that sprouted deep inside my heart – but it can end up in disaster or just wrong. Security, and computers, and it is just not the best place in Hong Kong, and I cruelly made a decision. Banks fire administrators and programmers only to leave their banks for hackers to take advantage. True, I can still get a life in Hong Kong, but it is just not the right place to start. Hong Kong is a large city. Unfortunately, it is not tailored for information security. Now I am in Shanghai, because I am after my heart’s calling, I do not cry at the Sunday nights prior to work. You might have heard work must be boring, but I discovered in my life otherwise it is quite worth anticipating. After one year, I discovered another team which I should have been in is actually much more fruitful in career development, and I am sure I am almost considered stupid and foolish to join a team that bears dimmer future, relatively. However, I know in some sense that getting promoted quicker in that team will just bring upon another detour of a year or two, and which will just bring me back to the security team I am in now – the starting position I was in a year ago. Note, I am not satisfied yet.

“Be mature” is a very severely abused term the people around us placed upon us to coerce us to do things they see unfit, much as critics phrasing “how unprofessional” to experts but without substantial and concrete evidence. The people around teach us to be “mature” to not be selfish and not “act just in your own best interests”. Yet, in some case, I believe we should be solely responsible for our own life. We cannot just live up to what others expect of us.

It is true that externalities must be considered, such as divorcing and hence neglecting your kids. At some stage, you will be tied with so much weight that you can no longer move freely. If you know that you cannot walk on your own legs six months later, what will you do? It is highly unlikely you will experience a miracle, but you might. However, for me, I assume no miracles, and I will walk as much as I want to before I cannot. I do not want to cry in my wheelchair moaning : I should have walked much more frantically before I cannot walk.

“If you suddenly found yourself living as an ape, you could accept the life of an ape and devote yourself to eating bananas all day and try to be a good ape, or you could attempt to become more than an ape and evolve into a human. Once you did that, all your ape goals and accomplishments would seem utterly meaningless compared to your new human capabilities.” If you feel wrong to be an ape, get a change.

If you believe you do not deserve crying in your laps, once in a while questioning whether or not you are doing the right thing, you should bear in mind you should follow what your heart desires. Did you wonder why you must live upon the judgement of the others, and feel so unhappy when the others do not approve of you, and thus making your day? If you want to get rid of such harsh feelings, get out of the path others have set for you.

Live a life after your own heart.

Man in Central – 創意大爆炸

Steven Pavlina – The Meaning of Life: How Shall We Live?

In Search of Dreams, Applied.

唔少人都覺得讀電腦既人就等於識整機,仲要係咩機都識整。唔識呀?「咁渣架」!不過我都講過,呢個係誤會,識得整機只係我地誤打誤撞學曉既技能,好多進修課程同大學都唔係教整機,正如識煮餸通常會幾識食一樣,不過無一定架嘛。

咁軟件設計工程師做啲咩既呢?

要明白我地要做啲咩,就要明白我地啲拍檔係做緊咩。通常開發一個程式,會有三大要職:

1.編程員 (Developer)

2.測試人員 (Tester)

3.項目經理 (Program Manager)

測試人員主要係睇下啲功能有無爛到,工作係咪正常,同咪要千方百計整爛個程式,希望將問題搵出來,唔好比啲客見到就唔好,家醜不外傳嘛!編程員最憎佢地因為佢地就係嗰啲專門「斷六親」、「篤背脊」、等事,而最緊要係佢地會指出編程員做錯野。不過無咗佢地,個程式有返咁上下大,都好大機會爛到七彩。

項目經理唔係管人,佢地係管細節同做決定。譬如說,個 MSN 啲人名太長時,究竟係就咁 “Far Away From” 定係 “Far Away From…”,定仰或係 “Far Away From >” 有個箭嘴、再click一下會有全名出來;呢啲咁奇怪既決定,同埋同啲客仔打交道,都係佢地做晒。或者咁講,編程員同測試人員唔做既野,就係佢地食晒落肚架喇!

編程員,就係大家覺得最多聽到既,其實係軟件設計工程師既其中一項重要工作。佢地每日對住啲 0xc00000fd 同 *p++ = *t++ 呢堆野。嘩!一睇就知變態野。當然,除咗呢啲之外,程式既結構同問題,都係我地落手落腳(即係泥水工人!)去做,而渣fit呢樣野,通常我地唔夠啲項目經理惡:佢地最鍾意話:「個大客話 xxx!」

呢一編野係我寫既,去睇下少少喇

你肯定未睇,睇一睇幾眼就得架喇;唔睇你唔明我下面講咩架。

好喇,係咪唔知我寫咩呢?正常,明既話你就肯定係做呢行,明既話而唔係做呢行,睇怕你都係入錯行!呢啲就係我地平時見到有個程式炒咗之後,要做既一件事。都幾恐怖架!除咗呢啲之外,對於一個程式點可以做到支持到一日幾百萬人咁,都係我地既工作,即係好似 Google Search 同 Live Search,唔簡單架。順帶一提,通常小企既開發工程小隊,通常會認為最好有齋以上三個職位,先至健全既!

大家又對啲瘋狂編程員又多咗暸解喇!

There is an informal poll on Transparency International, home of the international non-governmental organization addressing corruption. Of course, I took my vote to get some numbers, and saw the results :

Results

Note: Transparency International online Polls are not statistically valid representations of our website users nor intend to guide or represent public opinion in any way.

In your view, how corrupt is your country?
Extremely
50% Votes: 2209
Somewhat
24% Votes: 1062
Not very
16% Votes: 708
Not at all
9% Votes: 413


4404 total votes

That is a surprisingly a lot : 25% for “not at all” and “not very” together. Bribery is improved when I find that it is harder to buy car licenses in Shanghai. For instance, car license exams, computers take over places where human corruption is more likely, and you cannot bribe computers easily when the testers have no control but press a “Start” button. Anyway, it is still not too hard to do so in nearby provinces like ZheJiang (浙江), and bribery still takes place from places down from schools up to police institutions, and much worse. These are common folks knowledge, ask them and they can tell you with vivid descriptions and examples.

Don’t take the above poll results for granted, of course. You never know who’s behind the votes. We might have some *cough* *cough* spies *cough* *shrugs*…

Anyway, a snapshot of the 2008 CPI index.

2008 CORRUPTION PERCEPTIONS INDEX
country
rank
country 2008 CPI
score
surveys
used
confidence range
1 Denmark 9,3 6 9.1 – 9.4
1 New Zealand 9,3 6 9.2 – 9.5
1 Sweden 9,3 6 9.2 – 9.4
12 Hong Kong 8,1 8 7.5 – 8.6
39 Taiwan 5,7 9 5.4 – 6.0
43 Macao 5,4 4 3.9 – 6.2
72 China 3,6 9 3.1 – 4.3
180 Somalia 1,0 4 0.5 – 1.4

I love the fact that there is improvement in China on corruption, but seriously we need event more improvement. I wonder, if that fundamentally flawed “inspection exemption” is just a production of bribery and corruption?

China, can you still proceed further so much on the corruption model?

A Poll on Corruption in China

好日唔煮飯,一煮就出事。

話說本人咁岩有時間,就不如今晚簡簡單單煮返幾味。去家樂福買咗兩罐午餐肉,就叫我朋友準備下切下野,我就做最難嗰部份 : 煮!

煮完喇,擺晒啲餸餸菜菜上檯,幾世無睇動畫,好,去片!

點知一咬落去塊午餐肉度,就賴野!依?唔通我又做錯野?唔係喎…罐頭都煮到咁難食,仲要煮到有煤氣味添;我邊有咁叻仔?

我問朋友:「喂,你聞下係咪有啲野?」

朋友聞下先跟住變臉:「我聞到有煤氣喎!」

嘩!啲野食又有野喇。唔知係巧合定係「極少數別有用心份子」既精心傑作?開埋另一罐 - 中國呀中國:

之前牛奶有三鹿,
家陣煤氣午餐肉,
祖國開餐勁中毒,
今次唔死算「負碌」。(「負碌」x 3)

又多多一款喇!咩牌子唔重要,反正都係你扮我我扮你……

咁下次食咩好呢?

祖國美食之煤氣午餐肉

In New York ten months ago, there was this freeze mob that started everything. A freeze mob is an activity when a large number of people agree to stop for a few minutes at some predetermined time at a highly trafficked area, and then resume their activities as if nothing happened.

What a city is capable of!

That is why I love living in a modern city. Cities were described as a cold place where we know none of our neighbourhood, when everyone is tasked to mechanize and automate their rigid smiles, and not without the most evil intention. Yet, without over-amplifying the extremities, and at the expense of some properties of a small society, we gain in more elements of a growing metropolis. Go to the old place sometime later, and you discover something that surprisingly blend well into the city. Go to a square and look at that large show you chanced upon, and how interesting things are running so well. Go out and get to know different people, and you might find someone with your interests after your own heart.

There are opportunities too, and if you want to do a freeze mob in Macau, you can! In Hong Kong, you can! In Shanghai, you can! If you want to do a mass dance, you can!

If you find a city too bored, maybe you have missed something out there?

===

On 22 Nov 2008, a freeze mob in Shanghai happened while I was in Macau.

On 27 Nov 2008, a freeze mob in Macau happened while I am in Shanghai now.

I missed both of them! Damn! I want to join as well.

A City’s Idea

This post is for geeks.

Who wants to do it? Code the solution for the infamous Halting Problem for $300 ~ $1000. =)

( For humans : This problem has been proven to have no solution. So, this job is stupid. )

Project Name
Bug Finder

Budget
$ 300-1000

Description
The purpose of this project is to create a debugger program. This program will take as input the source code another program, and will analyze that other program and determine if it will run to completion, or have an error, or go into an infinite loop.

To state that another way, given a function f and input x, determine if f(x) will halt.

http://www.getacoder.com/projects/bug_finder_92913.html