栗子現場直播 千篇一栗
有很多簡單的道理,若不是被遺忘,不是察覺不到,就是知易行難。

2012年11月20日 星期二

有一個月沒有寫 blog 了

至從 Diablo 3 推出 1.0.5 更新之後,我和朋友都開始再認真玩起來,幾乎每晚放工後都和朋友洗怪。因此本網誌被暫時荒廢了。最近拿到了一套 Zunimassa's Whispers。但由於我的角色偏向控場效果,所以攻擊力不高。

工作轉了新環境,結果還是做回老本行,寫手機遊戲。因為是遊戲公司,所以可以很隨心把 ACG 相關物帶到公司,例如 figure 和 H-Zone。

看了粉圓電影版。前後二篇根本是電視版的濃縮版,沒甚麼值得評論。不如等新篇。

剛剛過了三十歲生日,成為魔法師。雖然這事兒不怎麼值得自豪。

最近開始著手去弄一隻小遊戲,等進度差不多時再說。

就這樣。

2012年10月3日 星期三

Mikupa 香港攻略

早點排隊,早起的鳥兒有前排。站得前的,視角可以高一點,不會被前人遮到,但站得後就會杯具。以十月二日下午八時場為例,下午五時場外已出現人龍。

螢光棒可以到九展門外買,四十元一支長的。在日本,人們會帶三色光棒。但在香港,似乎即使是粉/黃出場,場中還是綠色居多。

看演唱會的位置,首選當然是中間。如果站在左/右側,當初音走到右/左側時,可能會有消失的現象。

可以的話,請妨礙非法盜錄。

encore 位至少有一次。我不知道會不會有第二次,那時大家都在撤。

紀念品方面,先是蒽吹氣棒先賣完,然後是黑色 T-shirt。免費紀念品的隊沒有甚麼人流控制,但收費紀念品那邊就可能會斷隊到四樓。

  • 白T 250
  • 黑T 250
  • 毛巾 150
  • 蒽氣棒 50
  • 螢光A 50
  • 螢光B 50
  • 束口背包 50
  • 鎖匙扣 50
  • 徽章 30(random) 210(一套)
  • B2 海報 50
  • CD "KARENT presents Time To Say Hello!" 250

2012年9月29日 星期六

亞洲先生

要評論一間投訴比收視多的電視台的節目,其實相當無謂。

所謂重賞之下必有勇夫。即使收視比投訴少,我想很多俊男不介意去爭獎金。不過,我在亞視網站找不到有甚麼獎金獎品。如果有網友知道的話,請告訴我。

既然到最後只有那種質素的男人報名,就只能說不幸。但先天不足,可以後天補救。身材走樣的,就應該拉他們去健身。不俊肖的,就為他們化個妝。脫髮的,就戴假髮。只要修飾一下,外觀可以差很遠。
但亞視不但沒有做,甚至拉他們著泳褲來自暴其短。好了,即使要著泳褲也好,大會至少應該提供統一的泳褲吧?

如果我是節目總監,我一定不會容許這種事情發生。如果我是亞視頭目,就一定會把這種監製炒掉。

追記:現時情況還是可以挽回的。只要把選美活動轉型,做「麻甩大變身」。用三個月時間改造這些參與者,講述這班麻甩佬的奮鬥過程,到最後才來一次選美活動,節目就更有觀賞價值。但亞視有沒有這種氣魄呢?哈哈。

2012年9月28日 星期五

開門都市

老實說,我對發展香港東北不怎麼反感。

有人很不爽,內地有很多人來搶奶粉,走益力多。但與其說他們可惡,倒不如說他們可憐。因為他們只能在香港,才能買到安全的食品。
再說,如果你不許他們走奶粉益力多,就不應該讓他們走 iPhone,不可以雙重標準。下次蘋果出新的 iPhone/iPad,你不要賣去先達,助長水貨。

至於買名牌,買金。這些都是合理的旅行活動。香港人去歐美日台旅行,也會買當地的品牌。你有朋友去外地旅行,你會不會叫他不要買手信?

如果你真的這麼討厭他們,但不能完全阻止他們出入境,其中一個有效的解決方法,就是把他們的活動中心由香港的生活中心轉移和集中到其他地方。而考慮到交通因素,最適合的地方就是機場/碼頭/東北。
東北發展一旦泡湯,其中最大的得益者,就是身處香港生活圈的內地購物店。包括但不限於旺角行人專用區的電器店,先達廣場的手機店,彌敦道的金店奶粉店,以及在其中奔走的水貨客。因為東北不發展,就可以保住他們的生意。

雖然我是這樣說,但由梁振英這個中共欽點特首去主導這個計劃,我始終是不能放心。

題外話:「開門都市」一詞出於日本網絡小說《魔王勇者》。《魔王勇者》講述人類及魔族的戰爭經濟,而「開門都市」就是魔界和人界之間的城市。

文曲星

數天前,在街上看到一個巴士車身廣告。最醒目的是某白淨的女人,以為是明星廣告,化妝品廣告。看到小字:「前恒商 No.1 天后」。啊,是補習社廣告。
就某意義而言,這的確是明星廣告。

「前恒商」,令我想到原來她曾經也是學生。一位女學生經過一番努力後,終於成為 No.1,成為明星,然後以明星的姿態去教她的後輩。以上是我聯想到的景象。
然後,我想起日本漫畫《棋魂》,也是差不多。

圍棋經濟:

  • 一班小孩子去棋院學棋。
  • 經過考試選拔高質素的院生,成為職業棋手。
  • 職業棋手開棋院,收學生。

教育經濟:

  • 一班小孩子去學校讀書。但學校質素不足,去補習社搭救。
  • 經過考試選拔成績好的學生,部份成為補習天王。
  • 補習天王收學生。

嗯...這應該是不錯的創作素材。

題外話:身邊曾有人懷疑過補習社的效用。我個人認為好的補習社的確能發揮作用。就以作文為例,我的中學教師只會叫我們不斷作文,然後給一堆很空泛的建議。但補習天王會實實在在給一個 Template,令學生感覺有個譜。這就是最大的分別,也是補習社能不斷發揚光大的原因。

2012年9月27日 星期四

簡單桌布

tl;dr

Android app: Simple Wallpaper

難題

Android Tablet 的 Home screen 有兩個模式:直式和橫式,因此桌布也會有這兩個模式。當設定桌布位置剪裁時,大約是這個狀況。

但這種設定方式就是很不好,因為它限制了直式和橫式的相對縮放和位置。

當我設定好橫式的位置,直式就走了樣。

反之,當我設定好直式的位置,就到了橫式走樣。

這使我非常不高興。

解答

弄一個 Live Wallpaper App:Simple Wallpaper,可以分別設定直式橫式的 Wallpaper。

一不做二不休,讓兩個模式用不同的圖片也不錯。

就這樣。

後記

在上載到 Google Play 前一刻,才發現已經有人寫差不多的 app,甚至連名字也差不多。算了。

這個軟件的開發目的,只是用來解決以上我對 Wallpaper 的不滿,而不是用來做甚麼商業或推廣用途。除非出現臭蟲或相容性問題,否則應該不會怎麼更新。

Simple Wallpaper

ps. 0.1 版本有臭蟲,圖片大小可能會對不齊畫面大小,已推出 0.1.1 版本修正。

2012年9月20日 星期四

圍棋的某個禮儀

中國象棋和國際象棋,都會把棋盤分為兩半,每位玩家各佔一邊,而圍棋沒有這個法則。很多初學者都未能擺脫這種思維方式。因此,當兩位初學者下棋,往往都會出現大家各守自己那邊的情況。

另,圍棋有一個不成文的禮儀。第一位下子的,會把第一顆棋子下在自己的右上方,即是對家的左下方。這種下法的好處是方便對手把子下在自己的右下方。

但正如之前所說,初學者往往會把自己那邊誤認為是自己的地盤。當對方,尤其是導師,把子下在自己的左下方時,初學者會非常不安。

記得當年圍棋課,導師和一位眼鏡娘下棋。導師第一步就下在她的左下角,嚇得她發出一聲悲鳴。於是導師就把以上的禮儀說一遍。但那位眼鏡娘似乎不太受落。

就這樣。

2012年9月18日 星期二

2012 秋動畫追看清單

2012年秋季動畫新番列表

必看系:

  • ひだまりスケッチ×ハニカム
  • バクマン。3
  • リトルバスターズ! < 摧淚彈警告
  • 中二病でも恋がしたい! < 只是因為京A

三集待定:

  • うーさーのその日暮らし < 純粹被畫風吸引
  • 武装神姫 < N年前買過幾隻神姬,有廢萌風險。不如轉行殺蟲...
  • はいたい七葉 < 純粹被蘿莉吸引,POP原案,廢萌風險極高。
  • マギ < 身邊一些宅友會看,有中二風險。
  • てーきゅう < 純粹被蘿莉吸引,有廢萌風險。

2012年9月16日 星期日

USB オナホール - 軟件篇

後來再 check 關於中出和外出的細節,發現片中用錯了方法。
如果要做到中出,就要開 auto 模式,再按 X 鍵,就會變中出。
狂按 space 只會做到外出。
另,在飛機杯的情況下,在插鍵 up 的時候按牛奶鍵,就會變外出。
在在插鍵 down 的時候按牛奶鍵,就會變中出。

第一次中出時,畫面看不到牛奶。
但如果中出第二三次,就會有牛奶瀉出來。

2012年9月13日 星期四

十二週年

感謝各位對《栗子現場直播》的支持。

2012年9月10日 星期一

選舉後話

關於人力的表現,我個人希望是四席,可以無限接力拉布。五席就是奢望。現在三席是失望。有 D 野早就想講,不過為左人力的選情,留到現在才講。

難聽 D 講句,我真心覺得人力港島劉嘉雄蕭若元在論壇的表現,很令人失望。佢地無辦法 KO 到對手,亦無法令人印象深刻,唔可以好似黃毓民/陳志全/黃洋達咁可以俾人放上 YouTube,幫唔到選情。如果佢地表現好 D,票數就唔會咁慘情。

論國民教育的影響。國教的存在本來對人力有很大優勢,但由於 CY 的所謂讓步,令國教問題變得「不緊急」,減少優勢。

在這一個月中,我在 FB 見到唔少攻擊人力的說話。我已經響應人力的呼籲,忍住道氣,唔向佢地開火。唯一一次爭論,都是見到有人話人力投共,我隊個投票紀錄網站過去。

論馬草泥。佢突然在論舉開始,就過檔去隻白老妖,我對佢真係好失望。有話直說,當初我是因為他在城市論壇中擊退民建聯,吸引了我去城市論壇,吸引我支持當時未分裂的社民連。之後他在黃毓民的扶持下慢慢上位,但在性醜聞後,就一直消沉下去,到最後淪為打擊人力的棋子。我已經不再支持他。

無論如何,恭喜三位當選的人力議員,請繼續努力,在接下來的四年繼續顛覆議會。請黃洋達及他的熱血公民團隊不要灰心,熱血就是「how hard you can get hit and keep moving forward」。至於主席劉嘉雄...咳咳...請檢討一下。蕭若元,辛苦了,請繼續做主持,你拋的書包直飛外太空,香港無幾多人可以接得住。

最後,多謝各位 FB 朋友對我的容忍。雖然我因為不斷發政見而可能失去一些 FB 友,不過請放心,我係唔會理會你地既感受,繼續九 up。
不過選舉過後,我想政治消音一個月,直到十月九日晚。希望政府同立法會唔好迫我破戒。

2012年9月8日 星期六

如何投票

昨日一班泛民宣佈以私人草案反對國民教育
路線非常清淅,沒有任何懸念
我們可以知道以後在其他重大議題上,各政黨會用甚麼方法和策略
香港應該走怎樣的路,請用你的選票決定

2012年8月6日 星期一

TODO 2012w32

最近依然是把 HiSocial 的整個結構大改。

TODO:

  • 把 HiUser 及 HiFile 移動到新格式

2012年7月30日 星期一

餓死事小 失節事大

今早收到了恐嚇電郵,以下是節錄:


Google AdSense:您有三天的時間可以針對網站進行變更。

最近審查您的帳戶時,我們發現您目前顯示 Google 廣告的方式不符合我們的計劃政策規定。
網頁範例:http://blog.luzi82.com/2009/05/coco.html
發現的違規事項:成人/情趣用品和戀物癖:如 AdSense 計劃政策所述,AdSense 發佈商不得將 Google 廣告顯示在包含成人或限制級內容的網頁上,包括與情色有關或不宜闔家觀賞的內容,像是情趣用品、裝置和戀物癖。
請務必配合:72 小時內請進行所有必要的修改。
如果您在指定的時間範圍內修正了違規情形,就不會影響到廣告放送。但是如果您沒有進行修改,或是我們在審查時發現其他違反政策的情形,Google 就會停止您網站的廣告放送。


本來在思考如何把這個 blog 的十八禁內容移去另一個 blog 云云。但一想到十八禁是栗子捌貳神聖不可分割的一部份,把心一橫,索性把 AdSense 移除了。

根據 AdSense 的報告,由 2009 年開始,本 blog 歷來的總收益共 7.02 美元。

2012年7月23日 星期一

TODO 2012w30

Diablo 3 的衝關總算告一段落。五個職業,三個難度,六十個等級,全都完成了。雖然我不敢自稱專家,但要把角色升上 lv60 破 hell 還算是有點心得,這會在以後的文章討論。
至於 inferno,暫時只能和朋友踏實地洗 act2,沒有甚麼超級有用的心得。比起技術,心態更重要。這也會一併在該文章討論。

回到 HiSocial 的開發。
兩週後,再從高處審視這個 project,覺得需要在結構上大改。

TODO:

  • 把 HiSocial 拆解成 HiFrame 的格式

2012年7月8日 星期日

畢加索少女

從前,有兩對父母。其中一對的兒子沒有女朋友,而另一對的女兒沒有男朋友。於是,這兩對父母就打算向對方介紹自己的子女,希望因了解而結合。

星期五晚,房間,打機。母至。
母:「星期六他們去看畢加索,多了張門票,你去不去?」
栗:「我約了朋友。」
母:「推掉他們。」
栗:「怎可以啊!?」
姑且不論「有異性無人性」的問題,我不認為現在的女性會喜歡失信的男性,除非她犯賤,但我會對犯賤的女性敬而遠之。
母:「我現在不是迫你,你到底去不去!?」
栗:「不是迫我的話,就別再吵鬧啊!」

這種沒有營養的對話,持續了半小時。你在事情不足 18 小時前才通知,而且要我推掉所有約會,反感。這種事必定陸續有來,要來個了斷。
問題的根源,應該是對方對我的誤解。我母親把我最好的一面示人。甚麼學歷啊,職業啊,看似美麗,也只是虛假的表面,虛假表面帶來虛假的幻想。要破壞虛假的幻想,就要給他們真實的絕望。即使我不能用右手打腫別人的臉,但令人失望是我的強項。
結論,還是得見見面。

他們希望因了解而結合,我希望因了解而分開。

畢加索畫展,起勁地發傻,這也是我的強項之一。我強烈聲明,以下問題全部都發自內心,即所謂的真心膠。
栗:「那些畫背後都是木板,他們是畫在甚麼地方?」
女:「畫布。」
栗:「但我美勞課都是用畫紙的。」
女:「畫紙不耐用呀。那些畫布很貴的,是高價玩意。」
栗:「但藝術家不是很窮,死後才出名的嗎?」
女:「所以畢加索很幸運啊。」
(朋友的吐糟:是我的話必定給你賞個巴掌。你的問題這麼低能,人家還有耐性回答你,你真的要考慮一下對方。)
經過這些充滿營養的對話後,有道光射進我的頭頂,我學會了新的知識。

然後,和她和她母午飯,一路聊著沒營養的話題。歸途中,我和她又有短暫的相處時間。不在畫展,破壞形象良機。
栗:「你除了看畢加索,還會不會聽交響樂?」
女:「會啊。」
栗:「嗚哇,真高級。」
女:「我不是這麼文靜的,也會單車游水。」
栗:「真陽光。我和朋友很少會做這些事。」
女:「平時和朋友有甚麼節目?」
栗:「毒男做的事。打機,動漫分享,正經的和不正經的。」
女:「這很正常。」
我不肯定她這句話是否出自真心。如果給她看《ぼくのぴこ》,她的反應一定會很有趣。
栗:「告訴你一個笑話。昨晚我母親在我房間大鬧。『我現在不是迫你,你到底去不去!?』。結果我推了朋友的約會來了。」
女:「你可以不用理會的。」
栗:「太好了,你這麼說我放心了。」
(朋友的吐糟:對方還能接受你的話,你真的要考慮一下對方。)

真心,我覺得她沒問題,應該能找到更合適的對象。我很好奇她為何要淪落到要和我相睇。如果再見面,我一定會直接問她這個真心膠問題。

2012年6月22日 星期五

暗黑拍賣場的扭曲

在 D3 beta 的時候,我玩了大約三天,感覺像 Monster Hunter (MH)。
MH 的角色即使升了等級,基本數值也不會有任何改變,所有玩家的基本數值完全相同。唯一能強化玩家的地方,就是裝備。而 D3 亦差不多。角色在同一個職業同一等級,所有基本數值相同,所有技能相同,只有裝備才能強化角色。裝備主宰一切。
而這個設計的目的,就是令所有玩家都湧去拍賣場。沒錯,拍賣場才是整個遊戲的核心。因為對官方來說,那裡有源源不絕的收入。
在 beta 時,我早就看破這種為拍賣場度身訂度的設計。但想不到事情會走向極端,拍賣場變成了一頭不受控制的怪物,把遊戲完全扭曲。

開發者在 Reddit 中指出,當他們測試難度時,沒有把拍賣場放進考慮之列。因此,如果想了解 D3 的難度設計方針,就要看沒有拍賣場的 D3。
如果拍賣場不存在,玩家得到裝備的能力就會變得極度困難。normal 要跑一次,nightmare 要跑三次,hell 要跑十多次。當大家習慣了卡關,在 inferno 也卡上百多次時,也不致於大驚小怪。
但是,現時的 D3,大家根本不需要在 normal/nightmare/hell 卡關。然後當大家在 inferno 卡關後,就痛得死去活來。
其實只要對電玩有經驗,就知道現時作為「最終難度」的 inferno,其實不算太難。尤其在拍賣場的淫威下,inferno 的難度已經減少了五倍以上。
我曾經思考過,有沒有可能重新調整關卡難度,令玩家在 nightmare/hell 也要卡關。但要一邊維持拍賣場的吸引力,又要對已經用現金買寶的玩家負責,要再做有效的調整實在不易。

另一方面,官方也希望把獵寶活動,變成 no pain no gain 的過程。
1.0.3 有數個改動,例如罐子不再掉裝備等等,很明顯是針對玩家的不流血獵寶活動。現時僅存的免費午餐,恐怕只有不斷開新遊戲刷哥布林,但應該很快又會被取消掉了。
令獵寶變成 no pain no gain,背後的理念其實很簡單,就是拍賣場。要麼就付出時間血汗來獵寶,要麼就付出真金白銀來買寶。D3 就是這種遊戲。

要催谷拍賣場,其實還有更簡單有趣的方法,就是令遊戲難度不設上限,例如弄一個無限深的關卡,要大家挑戰上限。
另,雖然美國 D3 討論區上,每天都有人在罵 D3,但 Hardcore 那邊卻異常平靜,甚至有人恥笑普通玩家。他們對修理費提高根本不痛不癢。據說那邊的拍賣場因為不能用現金拍賣,所以沒有人用 bot 來刷錢,裝備價格也正常一點。當然如果大家不再視死如歸,整個遊戲氣氛也會好一點。

2012年6月21日 星期四

Diablo 3 的平衡災難

之前說過 D3 的系統災難,現在則是說平衡災難。

第一次平衡災難,發生在 Wizard 身上。

原理:

  • Living lightning -> 大量 hit 數
  • 大量 hit 數 + 高 critial hit chance -> 大量 critial hit
  • 大量 critial hit + Critical mass -> 所以技能 cool down time 消失
  • Frost nova + cool down time 消失 -> 無限 Frost nova
  • 無限 Frost nova + Diablo -> Diablo 無限硬直

除此以外,還有打不死的 Crystal Shell:

原理:

  • Force armor -> 自己所受的傷害不會超過血量的 35%
  • 以上 + 零 vit -> 自己所受的傷害不會超過 1600
  • 以上 + Crystal Shell -> 令 21k HP 的 Crystal Shell 能吃下 13 次攻擊
  • 以上 + 之前提及的 cool down time 消失大法 -> 無限重啟 Crystal Shell,打不死

以上兩個玩法有個共通點,就是需要極高的 Critical Hit Chance (CHC),於是 CHC 裝備價格上漲。
後來,官方改動 Living lightning 和 Force armor 的一些特性,消除以上兩種情況。眾 Wizard 能力暴減,集體悲鳴。
而隨著無敵玩法的沒落,CHC 完全變成垃圾,而當時用高價買 CHC 的眾 Wizard 欲哭無淚。

經過這次事件,我看到 D3 的不成熟,還需要至少半年時間調整。於是我就矢言現金拍賣場(用現實世界金錢進行道具交易)在本年內都不會開放。
不過,現金拍賣場很快就開放了,聽說還有人花了 100USD 去買裝備(遊戲原值 60USD)。然後 D3 就迎來第二次平衡災難。

第二次平衡災難,則是在 inferno 的難度,以及 Increase Attack Speed (IAS) 的問題。

進入 inferno 後,玩家往往都會被秒殺,防禦血量都沒有意義,於是大家都放棄活命集中催谷攻擊力。
然後 Diablo 出現了奇怪的玩法。玩家攻擊怪物,怪物反擊,玩家死了,玩家復活,然後繼續不斷攻擊,死亡,復活,直到怪物死亡為止。而最適合這種玩法的職業,就是 Demon Hunter (DH),因為攻擊力最高。於是 DH 的亡命玩法就被認為是到高 act 獵高寶的正解。

另外還有 IAS 的問題。增加攻擊速度,除了會增加攻擊力以外,還可能伴隨回血回法力云云,增益以倍數計。這個參數一下子令玩家變得過份強大,超越了官方原先的估計。
當然,所有 IAS 道具價格都持續高企,是自然不過的事。

後來官方為了取締亡命 DH,把道具維修成本大大提高約四倍,令死亡的成本都提高四倍。眾亡命 DH 入不敷支,集體悲鳴。而為了削弱玩家的衝關能力,把 IAS 減少超過一半。眾 IAS 玩家攻擊力回血回法力大跌,集體悲鳴。
上一次事件還未開放現金拍賣場,所以問題還不算太嚴重。但第二次事件發生的時候,部份玩家在現金拍賣場花了真金白銀買 IAS,現在都付諸一炬。
總言之,現在悲鳴之聲不絕於耳。

要注意的是,如果以上的改動早就在 beta 期間修正的話,就沒有問題。

2012年6月20日 星期三

聖休亞瑞的經濟活動

網上有一篇評論 Diablo 3 的文章 《Why Diablo 3 is less addictive than Diablo 2: a “scientific” explanation》。而本文則是對該文章的反駁,同時對一些錯誤的遊戲玩法作出批評。

該文指出:在 D2 時代,玩家只能從獵寶得到獎賞,這種獎賞會驅使玩家繼續進行遊戲。用宅語形容,就是「中毒」。而到 D3,由於玩家可以輕鬆從市場得到裝備,不再需要獵寶,其中毒性也大為降低。以上就是我對那篇文章的理解。

然而,以我在 D3 的經驗所得,即使有這麼厲害的市場,也不等如不需要獵寶。反而令獵寶變得更有意義,更有趣。
在 D2,掉落物若不適合自己,就只能賣給 NPC,或交給朋友。但在 D3 卻有所轉變,所有掉落物都可以透過市場變成金錢,再透過市場把金錢變成適合自己的裝備。於是大家的獵寶對象,不再局限於「是否適合自己」的問題,而開始關注其市場價值。
如果說 D2 的毒性來自有用的裝備,那麼 D3 的毒性就是來自能賣的裝備。所以我不認同市場會削弱獵寶的中毒性。只要好好理解市場,獵寶也可以有很多樂趣。

不過,市場所呈現出的表象,令很多玩家錯誤理解市場,淪為金錢的奴隸。其中一個最常見的錯誤玩法,就是刷金錢。
如果是剛剛進入 inferno,身上沒有太多高等級裝備的話,花一點時間刷金錢買裝備是可以的,但不能刷太久。以武器為例,攻擊力每上升100dps,其價格就會上升數倍之多,要刷上數個月才得到頂級裝備,沒有效率。再說,若果大家都只會刷金錢,就會產生通貨膨脹,令刷金錢活動變得更沒有意義。

所以當身上的裝備到了一定水平後,就應該開始獵寶賣寶。要令獵寶賣寶更有效率,除了要懂得獵寶,還要懂得賣寶。

某:「剛剛打了件黃寶,看起來不錯,賣一萬元算了。」
栗:「你不做市場調查嗎?」
某:「太麻煩,不做了。」
栗:「這怎麼行啊啊啊啊!」

不做市場調查,是非常愚蠢的事。
假設你把原值 1k 的東西,以 1m 賣出,結果沒有人買,你就白白浪費了一個珍貴的拍賣 slot。
假設你把原值 1m 的東西,以 1k 賣出,你就錯失了得到價值 850k 裝備的機會(扣除15%交易費)。而買方就因為你的愚蠢,白白賺了 999k。你把你的勞動成果雙手奉送他人。

而判定裝備價值的最佳方法,就是市場調查。
當你打算把一件裝備放上市場,可以先利用搜索功能,把市場上數值差不多的同類裝備列出來做比較,看看市場上在賣甚麼價錢。情形就像在 Yahoo 拍賣場賣 iPhone 一樣,一般人都會先搜索過其他人的 iPhone 賣價,才決定自己的賣價,原理完全相同。
仔細的技術操作我不多說了,總言之要以買家角度出發,知道甚麼職業的買家,喜歡怎樣的貨品,再決定如何比較裝備。例如,沒有人會比較法師帽的力量值,也沒有人會比較 Mighty Belt 的智力值。

獵寶賣寶的最大好處,是幾乎不會受到通脹影響。你刷錢,然後通脹兩倍,你就要刷多一倍的錢。你獵寶,即使通脹一百倍,你還是能得到一百倍的錢,得到相同的裝備。

在人類社會的發展中,先是以物易物,然後就發展出金錢和市場。但無論一個市場有多麼複雜,金錢只是一種交易的工具,重點還是在物資流動上,透過交易來達到雙贏。沉醉於金錢本身,只會令自己陷入死胡同。

大家還是請乖乖去享受獵寶賣寶的樂趣吧。

2012年6月19日 星期二

相睇云云

從前,有兩對父母。其中一對的兒子沒有女朋友,而另一對的女兒沒有男朋友。於是,這兩對父母就打算向對方介紹自己的子女。
而我就是那位沒有女朋友的兒子。

母:「我有朋友想帶來個女出來和你相睇。」
栗:「佢咁樣整古個女?」
母:「個女仔又願意喎。」
栗:「佢唔係唔知世途險惡下話?」
母:「人家從外國讀完書回來的。」
栗:「咁佢一定唔知香港到底有幾危險。」

我把以上的對白丟上 FB,結果 like 數破紀錄創新高。那 21 個 like 若不是認同世途險惡,就是認同我本人十分險惡。如果給父母知道,他們一定會很傷心。

剛剛的星期天,父母突然著我去探望公公。出門之前,不斷對我的衣著指手劃腳。我已經覺得奇怪了。然後突然進行相睇了,沒有任何心理準備。
我對女性的外表要求不高。只要不太醜,不會倒胃,那就很好了。那位女孩子基本上就是合乎這個要求,有眼耳口鼻,就這樣。不要問我她靚不靚,我沒有這種審美眼光。
我和她之間沒有太多說話,倒是和她父親和老哥談了不少。喂喂你們要戴眼識人啊,世途險惡,香港的男性十分危險。
到最後我還是不知道那個女的是甚麼內涵,就這樣浪費了一個早上。

被拍賣場消滅的可憐魔王

在日本漫畫《魔王勇者》中,魔王把整個商人組織稱為「怪物」。雖然今次的主題是另一位魔王 Diablo,但情況還是差不多。

根據 Diablo 3 開發者在 Reddit 的留言,當初設定裝備的掉落率時,沒有把拍賣場放進考慮之內。然後就這樣把遊戲上市。
後來 Diablo 3 因為這個拍賣場,出現了災難性的問題。大量玩家把大量裝備放上拍賣場,貨源嚴重充足,價廉物美,甚至比遊戲中 NPC 賣的還要便宜。於是玩家們很快就獲得精良的裝備,難易度大降,更快地衝關。

事情要從一件裝備的生命說起。
在以前 Diablo 2,一件裝備從怪物身上掉出來,再被玩家拾起。有用的就裝備上身,稍為值錢的就賣給 NPC,不值錢的就丟在地上。在非常罕見的情況下,還可能會賣給其他玩家,來賺取現實世界的金錢。但一般來說,裝備的生命還是短得可憐。即使是相當好的裝備,也很可能在發揮作用前就已經被消滅。
但在 Diablo 3,以上情況就被拍賣場大大改變。只要是像樣的裝備,即使自己不需要也好,也都被丟上拍賣場。如果質素夠好,就很容易找到買家。買家得到了這裝備,用它來衝關,升了級,到得到更好的裝備以後,就再次把它賣給其他人。如是這般,同一件武器可以造福非常多的人。
市場把玩家的能力大大提升,玩家得到好裝備的能力增加,再把精良的裝備回饋市場。裝備只會越來越精良,價格只會越來越便宜。在這種會自我增強的系統下,魔王就淪為大家刷寶的工具,巨大裝備輪迴系統下的窄取對象。

所以說,拍賣場才是整個遊戲最恐怖的怪物。與其擊殺魔王,不如研究拍賣場。朋友也戲稱這個遊戲做「暗黑拍賣場」。

2012年6月15日 星期五

Diablo 3 的 EHP 數學

本文是參考美國 Diablo 3 討論區文章 DIMINISHING RETURNS ON ARMOR = MYTH (GRAPHS) ,再對數式做了一些改變。雖然我的數學公式和該文的數學公式看似不一樣,但其實是完全相同的。

關於 A/R:
本文的 A=Armor,R=Resis。A20-R40 代表 Armor=20 Resis=40。

關於 EHP:
假設有一隻怪物,攻擊一位 A0-R0 的玩家,能扣到 100 點血。如果一位玩家被攻擊了 10 次之後死亡,我就說他有 10x100=1000 EHP。如果被攻擊 20 次後死亡,就有 20x100=2000 EHP。

關於 mlvl:
怪物等級。網上討論區總是有人喜歡討論這個數字,但我還是不能從遊戲中得到這個數字。謎。

總結了前述討論文章所得到的數式:
EHP = HP x ( 1 + A / 50 / mlvl ) x ( 1 + R / 5 / mlvl ) x ( other factor )

當有人問該如何從 Vit/Armor/Resis 之間做選擇時,這數式能提供答案。
本來還應該把 Dex/Block 算進去。但因為涉及的數式太麻煩,我沒有做。

以下是應用:
假設怪物等級 10。一位玩家 HP100-A0-R0,他的 EHP=100。如果他把 A 提升 100,那麼 EHP=120。如果他把 R 提升 10,EHP 也是 120。
所以每點 R 的價值比每點 A 大很多很多。事實上,在普遍的情況下,R 的價值超過 A 的十倍,但實際上還是要看數式。

如果嫌數式太麻煩,也可以用這個工具來計算 EHP。

另外還有一些簡單事實:

  • 每點 Str 增加一點 Armor
  • 每十點 Int 增加一點 Resis

然後是一些簡單理論:

  • 當怪物等級上升到 60 以上時,每增加一個等級,對數式的影響都不會太大。不過牠們的攻擊力本身會幾何級數乘上去就是了。
  • 如果嫌計算太麻煩的話,也可以以這樣的簡單原則進行升級:把 Armor:Resis 的比例儘量調整到 10:1。要比較兩套裝的防禦性能時,就比較它們的 Armor x Resis 值。但要準確的話還是要靠 EHP 計算器。
  • Armor 和 Resis 必需相提並論,只是單獨研究 Armor 或單獨研究 Resis 的,不能得到正確的結論。

2012年5月31日 星期四

Diablo 3 的災難

最近玩 Diablo3 玩得很兇,兇得連續數天都沒有更新日記。
以下是說近兩週,在 Diablo3 港台出現的災難。這是遊戲史的反面教材,大家都應該以史為鑑。

起初,Diablo3 的公司 Blizzard 把遊戲分為三個地區,三組伺服器。美國有美國伺服器,歐洲有歐洲伺服器,亞洲有亞洲伺服器。不同地方的人可以去不同地方的伺服器,但遊戲資料不共通。本來的設計就是這樣,相安無事。(註一)

不過,由於 Blizzard 對香港台灣銷量的錯誤估算,導致亞洲伺服器被擠爆。為了減輕亞洲伺服器的負荷,Blizzard 做了一個極度錯誤的決定:對香港台灣的連線數設上限。

而這種做法正正優待了韓國的玩家(註二)。後來這件事被香港台灣的玩家發現,鬧上傳媒和消費者保護會。

結果事件由 Blizzard 總部的營運長 Paul Sams 介入調停,才暫時平息港台玩家的不滿。現時在 Blizzard 的建議下,部份港台玩家都轉移到美國伺服器,亞洲伺服器的問題才得以抒緩。

但這只是惡夢的開始。

五月二十九日,Diablo3 第一次大規模更新。為此,美國在最少玩家上線的時間--清晨時份做更新,美國伺服器全線暫停。不過,那段時間卻正正是香港台灣的高峰期:晚上六時至凌晨二時。當初聽從 Blizzard 建議轉移到美國伺服器的玩家,全都不能玩遊戲。

而更大的災難是,在更新過後,英文版和國際版的遊戲軟件都升了級,美國伺服器也升了級。但中文版軟件,韓文版軟件和亞洲伺服器沒有升級。而不同版本的遊戲軟件和伺服器不能連線。於是,港台出現了兩批人,一批只能到亞洲伺服器,另一批只能到美國伺服器。而這兩個伺服器又不能互通。平時共同作戰的戰友,被迫相隔。

人的愚蠢沒有極限。五月三十一日,中文版軟件,韓文版軟件和亞洲伺服器亦都同時更新。但是,他們卻更新到比美國伺服器更新的版本。於是,中文韓文版還是只能到亞服,英文國際版還是只能到美服,情況完全沒有改善。

幸好我一向是用國際版登入美服,未受事件影響。不過我大慨聽到部份玩家的悲鳴了。

以上只是問題的一部份。我還未說他們的系統超不穩定,以及在其他國家發生的問題。

其實其中有非常多的災難,明明是可以預視,明明是可以避免的。無眼睇,在此住筆。

註一:做分區是網絡質素考量。美國人去美國伺服器的質素,比去歐洲的好。歐洲人則是去歐洲伺服器比較好。

註二:亞洲伺服器位於韓國。

2012年5月14日 星期一

TOPLAY 2012w20

之前誇下海口,誓要在母親節前完成 HiAuntie。現在母親節已過,正式泡湯了。不過開發還是會繼續的。
上週總算完成了 torrent 下載的部份。而在之前數週的膠著狀態中,我看到了現時系統的不足。
現時最大的問題出在 Javascript 上。Binding 成本太高,不符合 jQuery 格式,欠缺測試碼。除此之外,還有其他結構上的問題需要清掃。
所以,現時 HiSocial 的開發重心將由 function building 改為 refactoring。

不過,本週有更重要的事要辦。就是玩 Diablo 3。
衝等級最重要,正經事就先放在一旁好了。

2012年5月7日 星期一

TODO 2012w19

本週和之前數週有點不同。HiSocial 有較多的進度。不過,卻和之前定下的目標沒太大關係。
之前數週已決定完成 torrent 的下載介面。而如果我真的向這個方向走,說不定真的能在一週內完成。不過,現時 HiSocial 這堆東西於我來說,感覺非常...飄。
雖然代碼數量不多,但已經同時涉及多個不熟悉的技術,未能得心應手。當軟件到了一定程度的規模,腦袋就無法負荷,到達樽頸。
而本週為了應付這個樽頸,做了很多 refactoring 和寫了很多 test case。「飄」的感覺總算是緩和了。
結果,和目標相關的事還沒有動手。

星期日晚,肚痛了。

TODO:

  • HiSocial: 下載 torrent UI

2012年5月2日 星期三

TODO 2012w18

一如既往,上週 HiSocial 只有丁點進度。我發誓,進度不是零,不過真的好很慢。
開始有朋友關注這個東東,也向我提供了一些展望和願景,讓我大吃一驚。但與其發白日夢,還是得先解決現實的問題,心力的問題。
雖然希望有人能幫手,但這東東應該沒有人會幫手。即使有人幫手,我也不知道該如何分配工作。唯有丟去 github 等運到。不過如何要令其他人知道開發的方向,還得需要弄個 spec。
另,我覺得應該要再做點 refactoring。

最近考慮為 HiSocial 弄 FTP。在 Windows 和 Linux 做掛載和連結也非常方便。細節要好好探究。
也想過做網頁版的 file explorer,但技術上會有樽頸。例如 Drag and drop,right click,HTML5/Java 都有各自的樽頸,UI 設計都有困難。

Google drive 開始浮上水面。看那東東的首頁,我覺得像極 Google doc。感覺上 dropbox 和 FTP 會較好用。

Ubuntu 12.04 推出。試過在 T43 跑,即使關掉 3D 用 Unity2D,感覺還是很慢很差,到最後還是安裝 Xubuntu。可惜 Lubuntu 不是 LTS,否則我也會試試看。

星期日去了踏單車,腳痛。

TODO:

  • HiSocial: 下載 torrent UI

2012年4月27日 星期五

等巴士的數學

某日等巴士,想到這條數學題。

Q1:

  • x:等巴士的煩厭感
  • t:時間,整數
  • C,H:常數

find x in terms of t,C,H

Q2:

之前把 H^(v-t) 寫錯成 H^(-v),已修正。

Q1 的內容不在本題適用。

  • x:等巴士的煩厭感
  • t:時間,有理數
  • C,H:常數

find x in terms of t,C,H

2012年4月26日 星期四

成人教育

我不是說色情話題,所以本文沒有色情警告。

昨天,我對父母做了一件非常大膽的事。
最近突然想買部新的數碼相機。家中那部只有 400 萬像素,應該早就要更換了。不過我家是奉行「能用的舊東西別浪費,不需新東西取代」的原則(為何修廁所?),所以遲遲都沒有換。甚至最近相機內的時鐘電池缺電,還是沒有換。到近來舊相機受了一點潮,壞了一段短時間,終於鐵石心腸去買新相機。
昨天去百老匯,本來想買 Canon 240 HS,但那觸控螢幕介面超不可靠,結果買了 230 HS。買給老人家的相機,最重要是易用,其次是易用,再其次也是易用。他們如果不懂用,就會煩到我,我就會覺得很煩。而 230 HS 非常好。開機,拍照,關機,完全合乎一部相機該有的功能,一點也不拖泥帶水。好,就買這部。
之後我做了最大膽的事,就是要父母在本週末旅行時,帶這部相機。
我真的非常驚恐。雖然這部相機本身極度簡單,但我非常驚恐他們不懂開自動模式,驚恐他們不懂充電,驚恐他們把相機設定到奇怪模式走不出來。他們碰了釘,想找我麻煩,但我不在身邊,無計可施,於是他們自身也陷入非常驚恐的狀態。非常驚恐。
把相機交給他們,真是非常大膽。

或許是我過份圮人憂天,不過以下是另一個故事。
我爸透過 IE 買賣股票,已經有好幾年。不過還是未能踏出「自己打網址」的第一步。他問我該如何上網,我真的不懂得答。就像一位經常出入街市的傢伙,問「如何去街市」一樣。
「見網址就打啦!」真是有夠好的說明。
「聽說有些網站會有好多病毒,會吸晒我 D 資料。」
「這不會發生的啦!」大慨吧?
「如果吸晒我 D 資料,咁點算?」
「你不把資料放上去,哪有人吸你資料?」
如此沒營養的對話,進行了三十分鐘。到最後,老爸還是未踏出「自己打網址」的第一步。

或許,我要先教他上雅虎亂摸。這個時候我居然要靠雅虎,真是天大的侮辱。
好啦,我不得不認,十多年前我的確是雅虎常客,用它的電郵,甚至在 Geocities 放過網站。做人應該飲水思源感恩圖報才對。

2012年4月23日 星期一

TODO 2012w17

一如既往,上週只有丁點進度。我發誓,進度不是零,不過真的好很慢。

聽說有「五月病」這種東東。有這種病的人,無論工作和玩都提不起勁。我就完全陷入這種狀態。w15 我還要強迫自己看動畫來驅散無聊。w16 有大大的進步,我可以強迫自己打機。

《Diablo 3》試玩了一天。即使是單人遊戲,亦需要由 Blizzard 伺服器控制遊戲 logic。如果伺服器當機,或網速不足,都會玩不了。我連到美國伺服器 latency 上 1500ms,感覺 lag 得要死。Blizzard 說是為了減少作弊才把它變成 online 遊戲。但做到這個程度,根本是走火入魔。Diablo 和 WOW 不同,不是 MMORPG,而且是一次性付款。把遊戲陷入伺服器質素和收支的兩難之間,我認為是不智。

除了發悶,還有便痺。剛剛星期三在公司廁所躲了幾個小時,九牛二虎終於把便便拉出來,腳軟。我自問平時飲食不缺菜,拉不出便便實在非常奇怪。為了便便,買了大包益力多。另又聽網友的勸告,狂飲西梅飲,味道怪怪的。

Ubuntu 12.04 快推出了。得花時間去更新電腦。

TODO:

  • HiSocial: 下載 torrent UI

2012年4月16日 星期一

TODO 2012w16

剛剛的一週,甚麼都沒做過。就如之前 w15 的內容一樣,沒勁。

最近做了幾件無聊的事。

寫麻雀 AI。我知道當自己說沒勁寫 HiSocial 時,卻走去寫麻雀 AI,是一件多麼矛盾的事。但做人就是這麼矛盾。
其實早在兩年前,我就已經為工作寫過簡單的麻雀 AI,到現在還是想寫寫看,雖然要完全重新寫過。麻雀的特色,是隨機性和資訊不足,也是 AI 的挑戰和趣味。
但現時連 Game flow 都未完成。

彈琴。我完全沒有學過琴,朋友介紹我彈 Czerny 599。練了 150 分鐘,非常勉強地彈奏首 16 個小節。左右手配合真是非常困難。當年學打太鼓,由初心上樹都花了好幾個月,鬼八星初見即打則要練上兩三年,彈琴應該需要更多時間。

真的很無聊。

再說說一些無聊事,都和 HiSocial 有一點關係。

網上有個免費空間,叫 DropBox,我自己也有用。最近好像做些甚麼升級,容量大增,好像升上去 10GB 左右,網民高呼皇恩浩蕩。
另,最近一位朋友丟電腦。如果他要丟硬碟的話,我猜那裡最少都應該有 100GB。
另,一些朋友善用資源。舊電腦沒有丟,改做伺服器,安裝 FTP HTTP 程式,甚麼甚麼的,五花八門。用來分享檔案云云,動輒都數百 GB。這種事我自己也有做,160 GB 分享給十數位朋友。雖然容量比免費網存大,自由度高,不過介面還是不及 DropBox 方便。
HiAuntie 在當初設計時,曾考慮過要不要提供免費空間。但像我這樣連屋也買不起的傢伙,根本就弄不到上 PB 的空間。
不過,最近還是決定在 HiSocial 上弄個 HiStorage 出來。任何管理人都能拿出硬碟空間供會員作網存,甚至做 BT。細節還在思考中。不過到 HiAuntie,還是會關閉這個功能。

最近美國又搞甚麼 SOPA CISPA。FB/Google 在做 Data mining 的同時,也對使用者做資訊管制。這一點我之前已經說過很多次。
最近有一單新聞。香港一位網民在 FB 自稱販毒。警察透過 IP 把他挖出來。我有數個問題。
香港警察怎麼得知他的 IP?應該是 FB 協助吧。又如何從 IP 得知他的位置?應該是 ISP 協助吧。所以如果政府動真格,總能把 FB 上任何一個人挖出來。可見 FB 沒甚麼匿名性可言。
但另一方面,如果我真的弄了個 HiAuntie,運作暢順,有十幾萬香港會員(想的美)。如果有人在 HiAuntie 犯毒,或者是三次元兒童色情,我想我也會把他的 IP 交給警察。這就是取決於伺服器運作人的價值判斷。不滿的話,就自己弄個伺服器。警察找上門的話,就自己負上責任。
有能力就有責任。如果真的想擺脫責任,要麼就令警察挖不出來,要麼就令伺服器管理員都管不來。前者我未想到該怎麼搞,後者則需要 client side 的加密,現時還是相當困難。

當我想到這些的時候,就覺得好像已經超過了我的能力範圍了。

TODO:

  • HiSocial: 下載 torrent UI

2012年4月10日 星期二

TODO 2012w15

假期真可愛。啊,假期完了,一點都不可愛。

最近非常沒勁。
打 code。HiSocial 完成了上載 torrent 的 UI。到了下載 torrent UI 的部份,突然覺得很沒勁。雖然有一萬個完成它的理由,但沒勁就是沒勁。
打機。沒有甚麼有趣的遊戲。想玩一些多人遊戲的。《MHP3》開始感覺有點無聊了,裝備太強悍,無敵最寂寞。《Jounery》最近滿街都是白衣人,都不知可以怎樣玩。《WOW》如果不給月費,沒有呼朋喚友的話,感覺就像單人遊戲。《Diablo 3》未出,唉唉。
行街。內地去過,旺角去了兩次。曾經想去海洋公園,又沒人陪。
看動畫。《化物語》全套,沒勁。《Fate/Zero》EP 14,沒勁。《咲 Saki 阿知賀篇》,鐵壁短裙去掉短裙剩下鐵壁。想過看漫畫,卻怕劇透。《Black Rock Shooter》全套,最近的女生都喜歡以刀劍交心的嗎?

到最後就是沒勁地上班。

TODO:

  • HiSocial: 下載 torrent UI
  • HiSocial: HiFile Storage

2012年4月7日 星期六

檸啡

跟朋友到內地按摩,正經的。

食飯時間,叫一杯「熱啡」。
「先生,你要檸啡嗎?」
檸啡,我懷疑自己聽錯。但如果向店員確認的話,大家一定會以為我在罵笑話,而且不好笑。所以我就隨便嗯一下,當自己聽錯。
結果,送來了一杯凍檸啡

之後,去大堂發呆,又叫一杯「熱啡」。
結果,又送來了一杯熱檸啡

我以後一定要叫「熱咖啡」。

2012年4月3日 星期二

TODO 2012w14

假期真可愛。

感冒菌未清,不過情況已在控制範圍,慢慢康復中。我發現,用 folding @ home 生熱,電腦的溫度比 PS3 高很多,甚至把房間變成夏天。不怕再冷傷風了。

論 HiSocial 的進度,繼續拖後腿。w13 完成了 BT tracker,torrent 上載和 torrent 列表。但上下載 torrrent 的 UI 還未完成。
下載 torrent 的 UI,我想應該沒有甚麼難度,頂多為安全考量花多一點時間。但上載 torrent 的 UI 方面就有點頭痛。

另,最近繼續有人投訴 Music Widget Plus 在新機上用不了。這個東東真是多粉絲,是不是該重開 Melody 呢?唉。

TODO:

  • HiSocial:上載 torrent UI
  • HiSocial:下載 torrent UI

2012年4月1日 星期日

SICK 2012w13

聽說笨蛋不會感冒。

星期一突然開始發病。星期二請了一日假,吃了三天藥,狂啃傷風藥維他命 C,病到現在還未完好。

上週 w12,因為缺乏睡眠,工作和 HiSocial 都完全提不起勁。所以到了本週 w13 就把心一橫,到了 2300 就關電腦去睡。不知這樣改變生活習慣,是不是病情的誘因。
之後因為晚上睡得好,上班時間吃藥又睡得好,回到家裡還有點心力去寫點 HiSocial。但能否追回 w12 的回標,是未知之數。

就這樣。

2012年3月26日 星期一

閒事 20120326181434

突然朋友叫我去某網站投票。不是豬狼白鴿,而是美女選舉。他正在為某位女性朋友拉票。

投票網,我看著他指定的候選人,完全提不起勁。我看著其他候選人,完全提不起勁。假設這些女性真的 above average,如果不是我眼角太高,審美眼光獨特,就是我生理有問題。

栗:「我發現我真係對三次元的女無晒生理反應。」捥拒。

友:「投票網那幅圖有問題。我給你看其他相片。」

我看著第二幅圖。蒼白的面孔。我桌邊有隻 QB 毛公仔,相比之下,她的面色比 QB 更白。
我覺得投票網那幅圖更像是人類的臉孔。

友:「女人就係發白。」

栗:「佢係發光。」

之後我再用繪圖軟件確認她面部的顏色,哇靠,#FFFFFF。

2012年3月25日 星期日

TODO 2012w13?

想進度達標也不是一件易事啊...

2012年3月19日 星期一

TODO 2012w12

連續兩週進度不達標,出事了。灯里賜我力量。

  • HiSocial
    • w12:HiFile server API
    • w13:HiFile peer background service
    • w14:HiStatus API/WebUI
    • w15-w19:UI 改良,Ubuntu 12.04 過度,測試。

水無灯里60cmドールフィギュア

我很久以前,發過對「水無灯里60cmドールフィギュア」的怨念 blog。她曾經是我最大的怨念物。今日,怨念不再是怨念。

57cm,真不是蓋的。我真係找不到一件東東,是可以表現出 57cm 的霸氣。另,我又找不到一個空間,去放置這 57cm 的東東。真係要儲錢買樓。

2012年3月14日 星期三

說幾個小故事

故事一,發生在 FB 的群組
FB 有班老外,弄了個日本色情動漫蘿莉控的公開群組,瘋狂上載日本色情動漫蘿莉。那群組不久被 ban。
然後我問 FB,可以弄個日本色情動漫蘿莉控的非公開群組嗎?答:否。
申報立場,我強烈支持二次元兒童色情,並強烈反對三次元兒童色情。

故事二,發生在 YouTube 和 NicoNico
我把日本某 iPhone 的色情網頁遊戲,移植到 firefox 和 Wii 網頁瀏覽器上跑。遊戲的介紹片丟上 YouTube/niconico,不消數分鐘就被刪了。參看「♪ 開大脾 脫光光 ♪」和「風化關係

故事三,發生在 YouTube,同時也有影響這個 blog。
網上一些人把音樂上傳到 YouTube,然後我就分享到這個 blog,然後 YouTube 就把那些音樂 ban 掉,然後我 blog 就留下一堆被 ban YouTube 的連結。

以上不純的動機,都是引發我開發 HiSocial 的原因。

2012年3月13日 星期二

HiFile 云云(悶蛋部份)

超超超級悶蛋的編程話題。

昨天開始 HiFile Server side 的開發。先是研究如何建立 bittorrent 的 tracker 伺服器。為此我對 ThePirateBay 做了一點考察。

原來 ThePirateBay 早就已經關閉了自己的 Tracker,要網民使用 DHT/PEX。另外,他們亦開始鼓勵網民由 torrent 轉用 magnet link。
關於 DHT,其實我對 DHT 的效能抱有相當大的懷疑。我很難理解一個全新的 peer,如何能不靠中心伺服器去找到現存的 peer group。這對我來說實在是太科幻。雖然開 tracker 好像很大負擔,但若果 HiSocial 成功,網上也就會出現更多自設的 HiSocial 伺服器,分擔 tracker 的負荷。因此現時的 HiFile 還是會加入傳統的 tracker。
關於 magnet link。我在 ThePirateBay 在同一個 file 拿了 magnet link 和 torrent,分別在多個 BT client 做實驗。magnet link 那邊遲遲都未開始下載,torrent 卻早就下載完了。因此 HiFile 到底應不應該供應 torrent,也沒有甚麼好值得考慮的。

結果還是要有 tracker 和 torrent,這是最傳統的 Bittorrent 做法。DHT/PEX 是 client side 的事,等到做 client side 時才慢慢研究。至於 magnet link,可以的話也會技援,反正又不會造成太多負擔。

而 tracker 方面,我留意到兩套 tracker 軟件。一是 opentracker,另一個是 XBTT。
其實最初是希望用元祖 bittorrent 的 tracker,但 bittorrent 那幫傢伙已經不再把軟件開源,所以不用考慮了。
opentracker 效能非常高,就連 ThePirateBay 都曾經由自家製 tracker server 轉用到 opentracker。不過 opentracker 的 torrent 管制有點麻煩。每次更新 torrent whitelist,都必須把整個 whitelist 寫進一個大檔案,由 tracker 軟件讀取。如果 whitelist 有上萬個 torrent,每分鐘更新一兩次,這種做法根本不可行。
XBTT 亦自稱高效,但效能如何真的只有實驗才知道。還好這東東是通過 MySQL 讀取 torrent whitelist,而 HiSocial 現時就是使用 MySQL,整合上沒有甚麼大問題。所以現時應該會採用 XBTT。但 XBTT 現時的開發狀態有點奇怪。Ubuntu/Debian 沒有 deb,要自己編譯(opentracker如是)。而 project host 由 sourceforge 轉到 google code,遲遲都沒有正式 release,只是叫人抽 SVN,感覺不太可靠...

如果 XBTT 沒有發生甚麼怪事的話,將來可以試試把它推上 launchpad。

2012年3月12日 星期一

TODO 2012w11

剛剛這一週的 HiSocial 進度,受到 Draw Something 的衝擊,只是弄了個 OpenID login test。

雖然 HiSocial 其中一個目標,是以開放標準建立一個開放式的 Social Network,包括支援開放的 OpenID 系統。但 OpenID 的設計實在有不足之處。
其中最嚴重的問題,是 OpenID 的 ID 名格式,根本就不適宜做 ID。就以我個人為例,我在本 blog 得到的 OpenID 名字是「http://blog.luzi82.com/」,用這個字串做 ID 根本是個杯具。如果在 HiAuntie,就會變成「http://hiauntie.com/user/luzi82/」,感覺更慘淡。
而另一方面,OpenID 只能讓系統識別 ID 擁有者,卻不能讓系統以外的人識別 ID 擁有者。比方說,甲某用 Facebook 的 OpenID,在本文章留言,blogger 系統可以知道他是 Facebook 的甲某。但對其他 blogger 讀者來說,他們無法証明留言者是 Facebook 的甲君,除非他們相信 blogger 系統。但在分散式社交網站上,這種盲目的信任只會造成保安災難。最佳方法就是使用數位簽章,但那不是 OpenID 的能力範圍。

其實 OpenID/OAuth 還不算是迫切的事,因此這方面的工作應該會延後到 w14 或之後。現在最重要就是先處理好 HiFile。

  • HiSocial
    • w11:HiFile server API
    • w12:HiFile peer background service
    • w13:HiStatus API/WebUI
    • w14-w19:UI 改良,Ubuntu 12.04 過度,測試。

2012年3月5日 星期一

TODO 2012w10

剛剛上星期還在為 HiSocial 的進度擔憂,結果還是在星期日上午就達標。於是星期日的下午就去了九龍城看城市論壇(那集位置較特別),再步行到旺角逛了一會,再到中環參加打小人活動,晚上就到觀塘和朋友晚飯。感覺很充實。

  • HiSocial
    • w10:OpenID,OAuth
    • w11:HiFile server API
    • w12:HiFile peer background service
    • w13:HiStatus API/WebUI
    • w14-w19:UI 改良,Ubuntu 12.04 過度,測試。

上週經歷了 jQuery, twitter bootstrap 的新嘗試。本週的 OpenID/ OAuth 也將會是非常好的新嘗試。

2012年3月3日 星期六

2012年3月1日 星期四

陸佰萬秒的憂鬱

「一闊三大」這個詞,一般都是形容用錢的事。但在軟件開發的進度管理上,「一闊三大」亦很常見。

就以上週的 HiAuntie 開發為例。本來只是想把手上開發中的雛形推出 GitHub,和開兩個伺服器做測試。但既然要推上 GitHub,就得處理軟件授權,以及在文件中交代安裝的步驟。而既然要在伺服器做測試,就得製作 API 測試終端。
而本週的目標是 reCAPTCHA,賬號和介面。reCAPTCHA 本身不算是甚麼大問題,但到了賬號部份,我發現 HiSocial 過去的 API 規格有些問題,觸及到深層慨念,得需大改。
結果看起來只花一兩天的 workload,到最後就花上一週。
不過,我不是說我做了多餘的事。我其實是低估了工作量。那些多出來的 workload,到最後還是要做的。

剛剛為自己製作了一個簡單的時間表。

  • w09:簡單 WebUI,賬號建立,登入。
  • w10:OpenID,OAuth
  • w11:HiFile server API
  • w12:HiFile peer background service
  • w13:HiStatus API/WebUI
  • w14-w19:UI 改良,Ubuntu 12.04 過度,測試。

要在兩週內做到 HiFile,真是非常科幻。但正所謂輸人不輸陣,現在最重要的是不要洩左道氣。

2012年2月28日 星期二

USB オナホール 相片

相簿

怪怪的 reCAPTCHA

如果大家有試過開網站賬號,應該會見過以上這種東東。不介紹了。
reCAPTCHA 最奇怪的地方是,它出的圖片都比其他 CAPTCHA 難。甚至會出現不能解的圖。

最近因為 HiAuntie/HiSocial,走去看 reCAPTCHA 技術細節,發現了那些怪圖出現的主因。
reCAPTCHA 圖片的製作方式比較特別。它不是用軟件把字畫在圖上,而是直接把現實圖書的掃描圖直接拿出來用。不但如此,還要專挑一些不能用軟件辨認的文字。
我們姑且不論那程式如何懂得辨認甚麼是「不能用軟件辨認的文字」,甚至辨認那些「不能用軟件辨認的文字」是甚麼文字。但可以肯定的是,既然電腦本身已經看不懂那些文字,那就代表要看那些文字有一定的難度。如果程式出包,甚至會有非文字走出來。

而 Google 之所以用現實圖書來做 reCAPTCHA,主要原因是想用這個系統,把現實圖書數碼化。每當一個人解決一個 reCAPTCHA,就有一本書的一個字節被數碼化。這就是 reCAPTCHA 口號中「read books」的意思。

2012年2月27日 星期一

TODO 2012w09

HiSocial 的進度稍微超額完成,卻忘了發放飛機杯資料。

最近在網上聽得某老生常談:第一個做的是天才,第二個做的是庸才,第三個做的是蠢材。如果覺得別人做得成功做得好,就別去模仿。
FB 現時肯定是成功,G+ 就很難說,但我覺得兩者都做得差。
但是,別人差勁不等如自己的機會。即使網上有不少 FB/G+ 的替代品,隱私比他們好,功能不會比他們差(除了遊戲),但還是不能動搖 FB/G+ 的地位。其中有很多原因:例如慣性人流,G+/FB 不公開平台等。

這幾天我思考了很久。如果目標只是成為 FB/G+ 的替代品,就會像 OpenOffice 對 MS Office 那樣,永遠都抬不起頭來。玄一點說,就是思考 HiAuntie/HiSocial 的存在意義和價值,尋找它的出路。
到最後我終於找到答案:HiSocial 的價值,就是讓使用者突破第三者的干預,建立自己的資訊中心,得到真正的自由。
我最初也是因為不滿 Google+ 的名稱政策,而開始 HiAuntie 計劃。

然後就思考如何把「自由」發揚光大。
問網上有甚麼東西「不自由」「被禁止」,答案很簡單:侵權,政治,色情。當 HiAuntie 成為法定機構,當然不能支持網絡犯罪。但別人怎樣用 HiSocial 這套軟件,♡我們就沒能力過問了♡。
因此,HiFile 將會是 HiAuntie/HiSocial 的旗艦級功能,把網絡分享慨念再重新定義。

最近聽說 Google 會推出雲端存放功能,或許能提供數以 TB 計的空間。但能否在 MegaUpload 事件的陰霾下提供真正的自由,我是非常懷疑的。

目標:

  • 發放更多飛機杯資料
  • HiSocial
    • 使用者賬號管理指令
    • reCAPTCHA 支援
    • 創建使用者賬號 Web 介面
    • 登入使用者賬號 Web 介面

計劃:

  • HiSocial - OpenID 登入/提供
  • HiSocial - HiStatus
  • HiSocial - HiStatus - OAuth
  • HiSocial - HiFile

2012年2月24日 星期五

溫故知新

2012年2月21日 星期二

TODO 2012w08

之前二月頭在網上商店訂購了 USB 飛機杯,終於在星期五到了我家。然後就我拍了開箱片放上網,收到不少回應。週末我亦會發放更多資料。但現時以 HiAuntie 的進度為優先,所以飛機杯的事就一直維持在資料搜集階段。

至於 HiAuntie/HiSocial,在轉換到 Python 的同時,技術細節都改變了,很多部份都要重寫一次。希望能在本週推上 GitHub,並試行 JSON Engine。

目標:

  • 發放更多飛機杯資料
  • HiSocial
    • 推上 Github
    • 試行 JSON 伺服器
      • Ubuntu 12.04 alpha 2
      • Debian 6.04

計劃:

  • HiSocial JSON 測試 HTML form
  • HiSocial 網頁介面雛形
  • HiSocial - OpenID 登入
  • HiSocial - HiStatus
  • HiSocial - HiFile

2012年2月18日 星期六

2012年2月14日 星期二

無題 20120214143637

沙漠,䇄立著十數座巨塔,分散在沙漠的四周。

除了巨塔之外,還有一個部落。那些巨塔是他們日常的風景。

沙漠有些時候會發生地震。每次地震過後,那些巨塔都會出現些許的變化,有些甚至會移動位置。不過這對部落沒有甚麼影響,都已經習以為常。

有一天,又發生了地震。

但今次和往常的有些許不同。這次地震後,那些巨塔都聚集在一起,拼成獨特的圖案。

大家議論起來。偶然?預兆?吉兆?兇兆?大家都摸不著頭痛。

大家還未及時解開巨塔的謎團,沙漠再次震動。地震過後,巨塔還是聚在一起,但圖案稍為改變了。

2012年2月13日 星期一

TODO 2012w07

上週買下了 hiauntie.com,並以此作為我開源社交網站的試點。而「Arahabika」在上週轉名做「SkySocial」之後,本週又轉名做「HiSocial」,所有子元件名字也會由「Sky-」改為「Hi-」,營造品牌的效果。

如果在 Google search 一下,「hisocial」這個字在很久以前就被人用過,也是用來發展社交網絡。不過現時其 blogspot 變成了奇怪的廣告網站,其 twitter 到 2009 年已經停止更新,我就當它是無疾而終。

另,我終於受不了 Mac Mini 上的 OSX。用這東西跑 VM,根本是個錯誤。經過兩天的勞動,終於在其上安裝了 Ubuntu 跑 kvm/qemu/libvirt。這也方便我做 HiSocial 的開發。

目標:

  • HiSocial
    • Port from SkySocial PHP to HiSocial Python
    • Login session

2012年2月12日 星期日

在 macmini 2007 安裝 Ubuntu 及 kvm

今天花了很多力氣,總算在 Mac mini 2007 上安裝了 Ubuntu,但花了很多時間去摸索。以下是我最後用的方法。

  • Plop boot manager CD 開機。
  • 在 Plop 選用 Ubuntu 11.10 Desktop 64bit Mac USB 開機。
  • 在 Ubuntu 安裝過程中,把 /boot 及 bootloader 安裝進第二隻 USB,其他安裝進硬碟中。
  • 安裝完成,重新啟動。
  • 再用 Plop boot manager CD 開機,選用第二隻 USB 開機。
  • 這時,螢幕會慘叫 hd0 不能寫入,無視。

基本上這樣就可以跑 Ubuntu。雖然有些怪,但至少感覺不會像 OSX 那樣,吃了豬油膏。

以下是一些怪事:

  • 如果用 Ubuntu Server / Alternative USB 安裝,畫就會留在 GRUB 2 畫面發呆。
  • 如果把 /boot 及 bootloader 直接放進硬碟,不知為何不能開機...
  • 如果在 Ubuntu 開動中途拔 VGA 線,畫面就會呆掉。
  • 說到 Mac 和 Ubuntu,網上很多文章都會說 rEFIt。但這東東不知為何就是跑不了。

之後是 KVM。雖然問題比 Mac mini 簡單,我還是例行說說。

  • 跟從 Ubuntu 網站的指示,安裝一大堆東東,並做 bridge。
  • 我的 guest disk,是直接使用 host partition。在 storage pool 加入 "disk","Source path" 輸入硬碟名(請愛用 UUID),然後就可以直接用 host partition 做 guest disk。
  • Ubuntu server 雖然最低要求是 128MB 記憶體,但如果這樣設定,安裝時就會因記憶體不足而瘋狂存取 swap ,120 分鐘也不能安裝完成。

2012年2月10日 星期五

SkyFile

上次說過,要在 SkySocial 之上弄一個檔案分享功能:SkySpace。但後來覺得,改做 SkyFile 會比較好。

因為資源所限,要像 MegaUpload 那樣,提供空間任人使用,是沒有可能的。亦會重蹈 MegaUpload 的覆轍。因此這個方法不可行。

然後再回到 P2P 傳輸的做法。現時 BT / eMule 的發展相當成熟。BT 對伺服器的負擔較小,法律風險較低。因此這種分享檔案的方法比較可取。

我希望能集合 MegaUpload / BT / eMule 各家所長,以下是空想:

  • 上傳:使用者只要把檔案拉到某資料夾,就等如分享該檔案。
  • 下載:使用者在 SkyFile 網站按某條 link,檔案就會自動掉進電腦中。下載完後,他亦會成為分享者。
  • 細節:
    • Client side 長期運作一個背景程式,長期監視某資料夾。
    • 當使用者把某檔拉到該資料夾,該程式就會自動製作 torrent,並發佈到 SkySocial。
    • 他的朋友在 SkySocial 看到他的發佈。
    • 某某要下載他的分享內容,按下連結,他的 client 程式就會自動下載 torrent,再下載內容。
    • 下載完畢後,下載者會成為 seed。他可以選擇是否再到 SkySocial 發佈內容。

還可以發展出更奇怪的功能:使用者用手機,發現有興趣的東東。他按下載鍵,檔案不會直接傳到他的手機,而是當他回到家裡開電腦時,電腦就會自動開始下載。

而最令我頭痛的,就是那個 client side 背景程式。不但增加開發成本,對使用者來說也相當麻煩。

2012年2月8日 星期三

自駕遊後的香港

以下是預言。立此存照,一旦自駕遊真正實行,大家就看看會否變成事實。

政府在反對聲下,依然實行自駕遊。

路上開始出現一些奇怪的逆走車,因為內地是右上左上,香港是左上右下。蝗蟲論者瘋狂恥笑,道德撚叫大家包容。孔慶東罵香港交通系統差,中港再發生罵戰。一些親中人士提出把香港道路變成右上左下,與內地接軌。但受到香港的土豪霸權反對,所以不能推行。

其後,香港出現了零聲的路邊屍體發現案。屍體除了有明顯的撞傷,還有多次輾過的痕跡。警方說是車禍,而司機不顧而去,但未知道司機身份。蝗蟲論者指責是內地人所為,道德撚說沒証據証明是內地人。警察遲遲未找到線索,最後不了了之。

其後,又發生了一宗車禍。今次有人把過程拍了下來,証實是內地人所為。蝗蟲論者再次挑起仇恨情緒,道德撚說只是個別事件。警方抓了拍攝者去問話,再落案控告遊蕩,侵犯私隱。至於那位內地司機,交由內地處理,最後又不了了之。

而重點是,即使大家怎麼反對也好,怎麼吵也好,香港還是非常和平,沒有暴動,最多只有破壞欄杆。

2012年2月6日 星期一

TODO 2012w06

上週突然因為 Google+ 的名稱政策,而轉去做 Arahabika。而這數天裡,計劃有不少轉變。
首先是改名。「Arahabika」這個名字太難記,以後用之前想到的名字「天空」,英文改稱為「SkySocial」。
最近網上空間閉站的事件,引起很大迴響。受到這件事啟發,我決定要在 SkySocial 加上檔案空間的功能。名字叫「SkySpace」。
另,有很多朋友都在我伺服器上放網頁。有時要我改這個,改那個,有點煩。在想要不要弄個 php 服務台的時候,把心一橫,決定要在 SkySocial 上加個網頁伺服器功能,「SkyWeb」。但如果要玩到咁大,就有安全性的考量。
當然還有大家最喜歡的出賣私隱功能,「SkyStatus」「SkyBlog」「SkyPhoto」。

另,因為 Madoka 殺入歐美,所以 Madoka Countdown 剛剛做了一次升級。詳情請參考其開發 blog

目標:

2012年2月1日 星期三

我沒有恨

中國人有一句說話:飲水思源。

當我在使用 FB / Google+ / Blogger 云云的網上服務時,我經常都提醒自己,是寄人蘺下。那些服務的使用權,不是天生有的,而是別人賦與的。有權利,就會有義務。

另,某些網絡大企業,選擇植根於某些國家,享有該國提供的權利,同時也有相應的義務。另,這些企業也養活數萬的員工,不可以單單為了正義,而輕易斷送這些員工的生計。有權利,就會有義務。

雖然我理解他們的處境,卻不代表要同意他們的做法,亦不代表要向他們屈服。

我可以灑脫地放棄所有的網上服務。用自架的伺服器分享訊息,甚至收發電郵。但單純的逃避,獨善其身,不會為世界帶來任何的進步。我們讀大學,不是為了把自己變成征服世界的科學怪人,而是令不懂機械港女單靠竹蜻蜒就能飛上天。這才是人類進步的根本原則。我必須要做點事,去解決現時社交網絡系統的問題。

而問題的癥結,就如上所說。服務使用者對服務提供者有義務,服務提供者對強權有義務。但我不可以叫全世界都放棄那些服務,因為那些服務實際上有令我們的生活進步。放棄這些服務,即是等如要退到未有社交網絡的時代,是退步的做法。最妥善的做法,是像 Linux 那樣,發展新的系統,給大家一個新的選擇。

但 Linux 也奮戰了二十年。發展新的社交網絡,將會是漫長的戰鬥。

2012年1月31日 星期二

TODO 2012w05.1

突然改變計劃。

目標:

  • Project Arahabika - User

雖然我早就預見這種情況,眼見大企業一步一步收緊政策,卻怠慢把抗衡的事荒廢,直到現在殺到埋身才懂得緊張。我要為自己沒有做任何事,向大家道歉。

2012年1月30日 星期一

TODO 2012w05

新年假過去,想做的事沒有甚麼好的進展,又遇到不少不快事。

數月前裝修浴室,遇人不淑,很好很強大地滲水,滲到浴室外的地板底部,發水腫脹。為此家人又出現了磨擦。另,好像又得花錢再修,比上次裝修更貴。自己儲來的錢,就這樣為了非己為的人禍而冤枉花掉,不爽。
老實說我覺得裝修前的浴缸還不錯。日本色情遊戲中,有鴛鴦戲水的場面,我好想試好耐。我拍了兩次拖都無試過,浴缸就拆掉,還惹來更多麻煩。所以說,「沒問題的系統不要搞」,是至理名言。

另,剛剛星期天和朋友踏單車。我自問安全第一,不會飛車(慢),平衡好(龜速下保持直線),但橫禍要來就來。隧道上斜,眼見前方有笨蛋,小心翼翼,他上不到停下來,我也得停住了,不防後方冷箭飛來。我被撞得 orz,撞過來的女孩就抱著腳喊痛。幸好有好心人來照顧。
撞車受傷事小,途人冷漠事大。處理事件的時候,某途人喊「唔好阻住條路,撞車大晒」之言,即見人間冷暖。下次再遇上這種人,我會問他是否來自內地(見死不救之事太多)。這種冷漠的人,才是令我極不愉快的真正原因。
轉頭又想想,其實口出惡言的只有一個,有心的途人有很多很多。我不該因為這小小的污點而這麼不快。

說點開心事吧。

前女友結婚了。我真心為她高興。能找到終生伴侶,是福份,亦不簡單,祝他們倆永遠幸福快樂。
例行說說,小弟單身中,處男(不值得自誇),月入二萬多,有穩定職業,不過癖好比較獨特一點。如果我獨特的怪癖能迎合妳獨特的口味,又或者妳有信心令我放棄那獨特的怪癖,歡迎面議。給大家一個機會,共度獨特的人生。

某中學朋友,好像會拿到去美國讀博士的入場票。本來是件好事,不過他有一點猶疑。媽的,可以走的話就快點走,否則我就踢你出去。不要留在香港,做李嘉誠的奴隸。

日本 USB 飛機杯「USBオナホール」終於找到了網上郵購的方法。現在等貨到,希望對方能好好把貨包好。如果給家人看到本物,保證發生慘事。如無意外,到貨後我會拍開箱文。

而受浴室滲水事件啟發,眼見辛苦錢冤枉去,深感積穀不能防飢,所以我決定買下「水無灯里 60cm ドールフィギュア」。之前的 blog 提過了,不需再說。

最後,請未做過「栗子現場直播問卷 2012」的網友,能花點時間去做一下。只有十題 MC 加 comment,應該不會太麻煩。現在收到的問卷不多,希望有更多讀者提供意見。

說了太多閒事,回到 TODO。

之前想過把 mediainfo 移植到 Android,放棄了。我決定自己寫個 java lib 取而代之。

目標:

  • MediaData - MP3 parser

待定:

  • Melody
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter
  • 爆磚換背景圖遊戲
  • 狗 vs 蝗,有題材而內容未定

就這樣。

兩種遊戲 idea

一:bejeweled 玩法,每次爆石都會刷 background image。背景某些部份會比較難刷。玩家可以自己 upload 喜歡的 image 去玩。

二:蝗 vs 狗,或狗 vs 蝗,乜都好。狗要守門口,蝗就想入侵產卵,云云。只想到題材,未想到遊戲。

水無灯里生日 (-274歲)

和上年是同一幅圖。我對這幅圖很滿意,所以會一直用下去。

在本 blog 的 v3 時期,我曾經介紹過一件 ARIA 商品,azone 出品的「水無灯里60cmドールフィギュア」。

這件商品在 2007 年尾推出,我一直都非常希望能擁有一件,但價錢實在非常驚人,84000 日元。對於當時月薪才萬多元的我來說,實在是傷不起。所以它一直是我在動漫的收藏中,最大的怨念物,最大的遺憾。

我甚至有過衝動想親吻螢幕。真的。

直到最近開始有點錢,再加上受到一點刺激,以及 Yahoo 日本有人放二手拍賣,終於下定決定把它買下來,78000 日元。這是我歷來最大筆的動漫開支。

後來回到家,用尺計算一下 60cm 有多高。原來,真的很高。如果這貨品的狀態很好,這 78000 很划算。

只要到貨,就功德圓滿了。

當然,我不敢保證我會對實物做出甚麼怪事。

2012年1月26日 星期四

閒事 20120126204834

年初一,早。

母:「阿仔,錫啖我先。」

搞乜。

唔想錫,得找個藉口。我不但唔想錫佢,亦唔想俾佢錫。呀,有了。

「己所不欲,勿施於...」

「你係味唔錫呀!」怒吪。

投降。

閒事 20120126102625

很久以前的事。科技大學資訊科技碩士課程,知識管理學課。

栗子手上一部手提電腦。身邊的內地女生,手上也有一部手提電腦。大家互換 MSN。

栗子的留言測試:「ping」

女生的電腦,收到了栗子的「ping」。

「你果然是電腦人啊。」那位女生掩著嘴笑起來:「我早就聽說,電腦人就是這樣子,但想不到是真的。遇上是第一次。」

2012年1月23日 星期一

龍年好

2012年1月22日 星期日

哗众取宠的两条问题

昨天在 FB/G+ 举两条哗众取宠的问题。好像没有甚么人理会。

========

数学题:
五十五位在香港随街便便的游客,其中五十位来自祖国,五位来自美国。
问:来自祖国和美国游客,哪种比较有质素?

答:不知道。

假设香港总共有 1000 位旅客来自祖国,10 位旅客来自美国。那么,祖国的便便率是 5%,美国的便便率是 50%。在这个情况下,即使祖国的便便旅客较多,但整体上祖国的游客较有质素。
以上对数学人来说,是常识。

有时我会在想,是不是内地游客真的较没有质素?还是一种错觉。
不过,如果以上海世博做例子的话,就不太需要多想。

========

常识题:
五十五位在香港随街便便的游客,其中五十位来自祖国,五位来自美国。
问:哪种游客比较有质素?

答:不便便的游客

孔庆东虽然废话连篇,但有一点我是非常赞成的。「纽约也有一部分人是狗,北京也有一部分人是狗,香港不都也一样吗?」的确,香港有很多走狗。而最近北京有一条狗,吠得特别难听。

不守规矩的人,不但是内地,香港也有。例如巴士阿叔赐座男,在香港都引来一阵热议。大家讨厌的,不是内地人,而是不守规矩和无礼的人,这一点是不论内地人还是香港人的。

2012年1月20日 星期五

栗子現場直播問卷 2012

最近在思考本網誌的發展方向,例如內容的種類,話題的分拆,云云。希望各位網友能提供意見。

問卷按此

魔女禁獵區

白日夢時間。續 2008 年的 blog 「《狩獵》亞種」

當時的主要構思,是以動漫角色的手腳砌部件,打怪。這種想法到現在依然沒變。另外還要思考其他細節:

  • 遊戲的高度及闊度:橫軸參考《Monster Hunter》,有多種不同的怪。縱軸參考《Grief Syndrome》,有無限的難度深度。
  • 戰鬥的節奏:參考《Monster Hunter》和《Diablo》。玩家可以選擇直接衝向頭目,或去磨小怪。
  • 能力的提升:參考《Monster Hunter》,個人能力完全由裝備決定。玩家可以隨時改變自己的角色類型,而不用丟 Save 重玩。另外,由於難度沒有上限,所以數值也應該沒有上限,而提升成本就會越來越高。在《Monster Hunter》,提升武器是用怪物素材,提升防具就用武具石。由我設計的話,則會要求所有武器防具都是用怪物素材提升。
  • 遊戲的節奏:只有打怪打怪和打怪。怪物死了就會自動有道具掉進口袋。取得消耗品要麼用錢要麼就打怪,感覺上打怪比農場有趣得多。
  • 空間類型:起初可以以《Diablo》那種 2.5D 為目標,但長遠來說,像《Monster Hunter》那種全 3D 好像會較受歡迎。當然我希望能從 2.5D 上發掘到其獨有的樂趣。雖然像《Grief Syndrome》的純 2D 也不錯,但做不到迷宮和地圖,戰鬥節奏會變得很死板。可以的話,我希望能造出像《Diablo》那樣的隨機地圖。
  • 素材買賣:大慨是像股票市場那樣運作。由於怪物有級數,所以素材也有級數。另外也要搞些像級數權限的東西,高級素材只有高級的角色才能買之類。設計會相當複雜。

設計上的細節現時大慨是這樣。

2012年1月18日 星期三

蘋果與我

"Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died. ... I'm not glad he's dead, but I'm glad he's gone." -- Richard M. Stallman on Steve Jobs

最近私人伺服器 fishball 出現了問題,終於鐵石心腸,以一部 2007 mid Mac mini 取而代之。雖然算是把一切都 settle 好,但過程很不愉快。

為了增加靈活性,我決定用 virtual machine 來做伺服器。本來想用 Ubuntu 做 Host OS。燒了隻 Ubuntu DVD,塞進去,居然讀不了。我甚至試過用網上提供的方法,把 iso 變成 dmg,讓 Mac mini 讀讀看,都沒有用。
另外我想做 dual boot,但 refit 的反應怪怪的,上網聽說自從 OS 上了 Lion,refit 就壞了,之後都沒有更新。靠。

花了好一段時間,終於放棄用 Ubuntu 做 host OS,改為直接用 Mac OS 來做。Mac 的 VirtualBox 問題不大,最後弄了兩個 Ubuntu HTTP server 和一個 Win7 BT server。但我還得搞 remote 控制 Mac OS host 才行。Mac OS Lion 內置 VNC server,但我用 Linux 的 VNC client connect 時,卻出現問題,畫面呆在登入頁不動。網上說,這就是 Mac OS 自己對 VNC 的相容性問題。有些 client 好像會為支援 Mac 而做一點改動。Mac 啊,你的架子真大。雖然從網上聽到一些解決方法,但未有時間試。希望成功吧,我不希望 VM Host OS 會控制不了,會很麻煩的。

我對 Mac 的討厭,不是這一刻才有。

Mac 使用者很喜歡頂頂那條 Menu bar,對他們來說,這就是 Mac 比 Windows 優勝其中一個例証。媽的,我真的想不到這樣把 Menu bar 拆開,到底有甚麼好。他們有很多奇怪的理由啦:放在頂頂會更易按,放在頂頂不會佔地方。我真的不懂該怎麼反駁。就正如有人告訴我 1+1=3,與其跟他上數學課,倒不如帶他去看腦科。我記得當初還有人告訴我,iMac 的程式視窗沒有最大化鍵,是因為螢幕太大。你也知道自己螢幕夠大了吧?那就更不該把 Menu bar 放上頂。

之前亦曾經把家人去旅行的照片灌進去,然後在資料夾打開相片,按鍵去看下一張。靠妖,居然做不到。Windows 和 Linux 有的簡單功能,你居然沒有?

在經典的 Mac 廣告「I am Mac I am PC」,他們用俊男來比喻 Mac,用肥佬來比喻 PC。而我使用 Mac 的時候,卻覺得自己像個癡肥,寸步難行。

直到現時為止,我對 Mac 用家歌頌 OS X 的所為,都覺得很不可思議。

2012年1月16日 星期一

TODO 2012w03

之前花了數週去打造 ClockCam,終於在 11Jan 推上 Market。今天我懷著非常興奮的心情,向大家宣佈現時的下載數字。

零!

這數字真是令人興奮,真是得來不易。告訴大家,之前我弄 Issue 9362,介紹文開宗明義「End user will not need it」,發佈的第一天居然有人下載和評分。我真的很費解為何這垃圾 app 會吸引到一丁點關注。好奇之下,再去 Android Market 挖一些垃圾 app 看看,居然連 HelloWorld 也都有人下載。然後我懷疑,是不是 Android Market 會對一些可憐的 app 給可憐分?但現在不用懷疑了,沒有人下戴過的 app,就真的是零,沒有可憐分。

我真的很好奇,這個「零」可以維持多久?當年香港五區公投,有人矢志「零票落選」,卻得到 91 票。而我這個 app 在 Market 中,立足於天地,足足五天,居然還可以「零」。我希望這個「零」可以一直維持下去,我是認真的。各位網友也請不要為了可憐我,而下載這東東,我是認真的。反正這個 app,當初就是為自己而寫。要是有人向我要求 support,我會很頭痛。

說到頭痛 support,最近開始又收到不少有關「Music Widget Plus」的投訴。可能是因為大家開始轉用新機,而這個 app 出問題。當初我希望能 support Android 原生 Music app,可能是個錯誤的決定。對於用家的慘叫,我真的無能為力。現在唯有把心力投放在 Melody 上。


別誤會:Melody 與 My Melody 完全沒有關係

沒錯,自從 ClockCam 告一段落以後,Melody 開發亦恢復了。現時的目標,是把 MediaInfo 移植進 Android,來分析音訊/視訊檔的內容,例如曲名/長度云云。如無意外,我會把 MediaInfoLib 的 Android 移值推上 github,網上需求這東西的呼聲都頗高。至於會不會弄一個 MediaInfo 的 standalone app,就要看心情了。

目標:

  • MediaInfo-Simple
  • MediaInfoLib-Android

待定:

  • Melody
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter

2012年1月13日 星期五

麻衣のカカカタ☆カタオモイ-梵

本曲是由日本動畫《日常》的角色水上麻衣的聲優富樫美鈴,用錯誤的方法唱出該動畫的 OP《ヒャダインのカカカタ☆カタオモイ-C》。結果是完全不同的風味。雖然算不上是好歌,但對該動畫的愛好者來說,算是震憾之作。

2012年1月11日 星期三

TODO 2012w02

對於之前沒有 TODO 的數週,我只能說,實在太精彩了。打機,看 Pico,去宿營,真是忙翻天,感覺就像沒有休息過。

無論怎樣也好,整個窗景拍照計劃總算正式運作。現在只差把 ClockCam BETA 嘔上 Android Market,事情就只剩下相片的處理和發佈,都不是甚麼吃緊的事項。

至於飛機杯的研究,目前需要搜集更多關於無線傳輸技術的資料,最好有一兩件無線零件,讓我做做實驗。當然我還要找到「USBオナホール」才行。要是拆了這東西,應該會有更多的發現。

目標:

  • Clock Cam BETA 發佈
  • MediaInfo static build

待定:

  • MediaInfo @ Android
  • Melody 發佈
  • Icon Match (Android 3.0 相容性)
  • Aida drift
  • Icon Match (libgdx)
  • P-FF (仮名,無可奉告)
  • Aida test suite

空想:

  • Android Image view
  • Android Tablet 一級大爆光,東方難度
  • Android Mario EMU,孔明難度
  • Android Tablet Slideshow
  • Android Show control
  • 網上 QB 營業遊戲
  • 2D 橫向打怪 Majo Hunter

閒言 20120111101540

栗:「泛民初選,我想不到你會成為義工。為甚麼你會成為義工呢?」

友:「是某教育界選委邀請的。」

栗:「義工有沒有車馬費?」

友:「只有一包檸檬茶,我想是贊助。」

栗:「你是用大會提供的 iPad,還是自己帶的個人電腦?」

友:「是我自帶的 Netbook。」

栗:「軟件同時有 PC 版和 iPad 版?還是一個網頁?」

友:「是軟件來的。有 PC 版和 iPad 版。」

栗:「他們有沒有格式化你的電腦?有沒有做甚麼檢查?」

友:「沒有格式化。我把電腦交給他們,他們就為我安裝投票程式。感覺挺兒戲的,但那些安裝軟件的人,似是技術人員,不像是笨蛋。」

栗:「事後他們有沒有刪除那些投票程式?」

友:「有。是由他們親自為我刪除的。」

===這是閉月羞花的分界線===

栗:「在私隱保安的問題上,莫乃光說找了專家,那到底是甚麼專家呢?他們可以是資訊保安公司,也可以是中學生。你知道的,有些人真的會把中學生當專家。而我最好奇的是,為何他們不告訴大家,那些專家是甚麼身份呢?要是告訴我們那是甚麼公司,大家會放心一點。」

友:「說不定是大學教授吧。」

栗:「大學教授也好,至少告訴我們是甚麼大學嘛。例如中文大學社會研究甚麼的,大家會安心一點。」

友:「但如果真的是保安公司,尤其是銀行的保安公司,IBM 級數的,我想他們付不起錢來。除非是贊助。」

栗:「IBM 會贊助搞這些海外的政治活動嗎?若果真的是這樣,那泛民要不要為 IBM 賣廣告?《IBM 特約:泛民初選》?我想中共會說外國勢力介入了。」

===這也是閉月羞花的分界線===

友:「泛民起初說估計只有一萬人會投票,我想是低估了。參與選委會投票的民主派支持者,至少有五萬,減一半也有二萬五。如果公民黨有參與,投票數會更多。」

栗:「同意。」

友:「而我對鍾庭耀的民調,最有興趣。他當年為了民調,連董建華也都開罪,甚至把港大校長拉下台。他會比較有公信力。」

栗:「可惜沒有太多人會記得他是誰。我撫心自問,「鍾庭耀」對我來說,只不過是稍為聽過的人名而已,連他屬於哪個陣營也不知道。即使當年怎麼驚天動地,現在大多數人都已經忘記了。」

2012年1月10日 星期二

Hash

早前香港泛民政黨搞特首初選,引來一些私隱安全的爭議,例如身份證號碼的外洩問題。泛民的香港互聯網協會會長莫乃光稱,他們會運用 hash 技術,去保障市民私隱,避免身份證號碼外洩。本文會深入淺出,簡單介紹 hash 技術,並指出其安全性問題。
本文主要分為正文和附註。正文是對 hash 的簡單介紹,我希望一般人能看得明白。而附註部份則包含技術細節,但比較深奧,不是人人可以看明白。
在此先聲明,本人是香港科技大學資訊科技碩士(註一),以下所言,絕非泛泛的空談(註二)(註三)。

外界有甚麼私隱的憂慮?

  • 泛民團體能得到投票者的身份證清單。
  • 若發生意外,或被黑客入侵,投票者的身份證清單就會外洩。

甚麼是 hash 技術?

Hash 技術是透過一系列複雜的數式和程序,把一串資料轉化成一個簡短的數值。在資訊科技中,hash 技術是非常基本的常識。任何 IT 人都一定會知道 hash 技術。如果不知道,就沒資格自稱 IT 人。

Hash 的算法有很多種,例如 MD5 / SHA-1 / CRC32,原理和慨念都差不多。本文主要會以 MD5 做例子。(註四)
以下是 MD5 的部份實例。一般的 IT 人都習慣看十六進制的 MD5 數值,但為了方便一般的讀者,我也會展示十進制的結果以作參考。

原文MD5 (十進制)MD5 (十六進制)
Apple 211859036441461519383052513295366044732 9f6290f4436e5a2351f12e03b6433c3c
apple 41499123188802761002464065009245263231 1f3870be274f6c49b3e31a0c6728957f
Orange 192223576784283470402484290296281237729 909cea0c97058cfe2e3ea8d675cb08e1
The quick brown fox jumps over the lazy dog 210103647840849757586127012022035159510 9e107d9d372bb6826bd81d3542a419d6

MD5 和其他一般的 hash 算法,都有以下的特性:

  • Hash 數值看起來就像高深的數字,一般人可能會被嚇怕,但其實沒有意義。(註五)
  • 不論何時,只要輸入的資料相同,計算出來的 hash 數值亦都相同。完全不涉及任何隨機的成份。(註六)
  • 即使輸入的資料有些微的不同,結果也會出現極大的變化。例如 Apple 和 apple 的分別。
  • 輸出的數字必定在某個範圍之內。MD5 的範圍是 0 - 340282366920938463463374607431768211455。(註七)
  • 輸入的資料可以極度長,你甚至可以把全套金庸作品化為短短的 hash。
  • 無法從 hash 數值把資料還原(下文會討論字典攻擊)。你可以把一套金庸作品化為一個短短的 hash 數值,卻不能把短短的 hash 數值還原成一套金庸作品。
  • 在極極極極極端少數的情況下,兩組不同的資料輸入,經過同一個 hash 算法,可能會得出完全相同的 hash 數值。這就是所謂的 hash 衝突。但發生機會實在極極極極極端微。在 MD5 發生 hash 衝突的機會,比連中五次六合彩還要低。(註八)

Hash 技術的最主要用途,是檢查資料在儲存和傳輸中途,有沒有出錯,有沒有被修改。
例如,甲某把「Apple」發給乙某,並附上它的 MD5「9f6290f4436e5a2351f12e03b6433c3c」。後來陰差陽錯,送到乙某手上時卻變成了「apple」。乙某計算「apple」的 MD5「1f3870be274f6c49b3e31a0c6728957f」,和之前的 MD5 不相同,乙某就知道傳輸過程出了問題。(註十九)
一些人上載數百 MB 的電影上網時(犯法),也會附上 MD5 數值。下載者可以透過檢查檔案的 MD5 數值,來確認檔案有沒有出問題。另外一些 P2P 的傳輸軟件,例如 BT,都會內置 hash 數值,並自動檢查檔案沒有出錯。
另外,hash 還可以做密碼驗証。如果你的銀行密碼是 Apple,銀行不會直接儲存 Apple 這個字,而是它的 hash。因為是 hash,銀行就不能還原變回密碼,但可以對客戶做到密碼驗証,達到最佳的保安。(註九)(註十)
由以上可見,hash 能夠用非常小的成本,來確保資訊的安全。在資訊科技中是非常方便的技術,亦是資訊科技的常識。

泛民如何使用 hash 技術,來檢証身份証號碼?

例如小明去投票,把身份證輸入到電腦,電腦就會先把他的身份証號碼變成 hash 數值,然後系統就會搜索資料庫。由於小明是第一次投票,資料庫沒有該 hash 數值,我們就能確認小明沒有投過票。小明投票後,系統就會把那個 hash 數值輸入到資料庫中。
然後如果小明再去投票,再次把身份證輸入到電腦,再次計算出 hash 數值。但這時系統會從資料庫中找到相同的 hash 數值,即代表他已經投過票。

hash 技術有甚麼問題?

如果把 Hash 技術,運用在選舉的身份証檢查,我們一般有兩個主要考慮的問題:

第一個會考慮的問題,是 hash 衝突。
正如之前提到,hash 數值是有可能出現衝突的。假設小美有連中五次六合彩的幸運,和小明身份證的 hash 相撞。小明投票後,到小美投票時,系統會從小美的身份證,計算到和小明身份證相同的 hash 數值。由於此時資料庫已經有小明身份證的 hash,系統就會以為小美已經投了票,產生美麗的誤會。

但發生以上問題的機會,亦微乎其微。假設身份證都是一個英文字母再加六個數字的組合(註十一),有 26000000 個變化。而 26000000 個身份證號碼,出現相同 MD5 數值的機會,卻仍遠遠低於連中三次六合彩(註十二)。更何況香港人口只有 710 萬,MD5 衝突機會更少,所以這個問題可以無視。

第二個會考慮的問題,是資料還原的問題。之前雖然說過,我們不能用短短的 MD5 數值來還原一部金庸作品。但若套用在選舉的身份證,卻會輕易地被「字典攻擊」把身份證號碼還原。
要發動「字典攻擊」,只需一部普通的家用電腦,花一點時間製作 26000000 的身份証 hash 轉換表:

身份證 (註十一)MD5 (十六進制)
A000000(A)3e5d53ecf650f2f253a95dc725bc8c44
A000001(A)bd18aaf50431f42c3c4a2179ba0c90c7
A000002(A)9b56ad94e96bd75e6e1d1fc10d74fa33
...
Z999999(A)26cee21d763191b4af4c20aacb28a5ad

如果泛民的資料庫中,出現 bd18aaf50431f42c3c4a2179ba0c90c7,他就是 A000001(A)。如是這般,我們就能找出所有投過票的人的身份證。(註二十)

應付「字典攻擊」有很多方法,其中一個方法名叫「salt」(註十三)。它是由使用者輸入的字串,來影響 hash 數值。如下(註十四):

身份証原 MD5Salt=ASalt=B
A000000(A) 3e5d53ecf650f2f253a95dc725bc8c44 b1b6241efd48a508e893efbc5364ce61 197ef08e6bd12a69060880d7c34ef11c
A000001(A) bd18aaf50431f42c3c4a2179ba0c90c7 ed4b4820a17a875de4bac4104bd96a6b a6db096939edb5aaaa3542d620448e60
A000002(A) 9b56ad94e96bd75e6e1d1fc10d74fa33 2cf76cfc24da72c084419090cde00a67 fc7e42a868ffc205947f19175e67441c
...
Z999999(A) 26cee21d763191b4af4c20aacb28a5ad 638f60e278cf30b06038a41b7392c6b6 ff182d9109570e84cc1dd6c1c1710767

如上所見,只需要一個簡單的 salt,就能使整個 MD5 數值表出現大大的變化。Salt 此時就像一個密碼。即使整個身份証資料庫被搬走,只要 Salt 夠長夠複雜(註十五),泛民又能把 salt 好好保存,其他人也無法得到那堆選民身份證。(註十六)
但是,如果某某同時擁有 salt 和資料庫,他還是能把投票者的身份証號碼還原。方法像之前提及過的「字典攻擊」做法,利用那個 salt 製作 26000000 個身份証 hash 的轉換表,就能得到所有投票者的身份証號碼。
而現時有能力利用以上方法,把所有參與選舉的市民的身份証號碼還原的,就是主辦初選的泛民團體本身。

於是結論就是:如果主辦團體缺德,他們就可以把投票者的身份証號碼挖出來。如果主辦團體無能,洩露資料庫,hash 方法及其 salt,整個身份証號碼清單隨時會被公緒於世。簡單而言,hash 根本沒有解決本文最初提出的兩個憂慮。

我們可以怎麼辦?

我把 hash 甚麼的說了這麼久,結果還是回歸最根本的問題:你是否相信主辦團體?

如果你不相信他們,那麼 hash 就沒有意義。即使他們說使用了驚天地泣鬼神宇宙無敵的安全措施,你都可以懷疑他們有後門,你都可以懷疑他們會犯錯。你甚至可以懷疑義工能過目不忘,把每張身份證都用腦袋記住。如果你不相信他們,甚至認為他們已經投共,那麼有沒有 hash 根本沒有關係。

如果你相信他們,那麼 hash 也一樣沒有意義。在區議會和立法會選舉,政府也沒有使用甚麼 hash,所有工作人員都清楚看到選民的列表,誰有投票,誰沒有投票,甚麼名字,甚麼身份證號碼。你這樣仍不會擔心自己的私隱,就是因為你相信政府。如果你能像信任政府那樣信任主辦團體,那麼有沒有 hash 根本沒有關係。(註十七)

既然問題和 hash 無關,所以和本文主題亦無關了。(註十八)

歡迎分享及轉載本文,請註明出處: http://blog.luzi82.com/2012/01/hash.html


註一:我相信一般的電腦學士,高級文憑,甚至對 IT 有認識的中學畢業生,都明白這些道理。

註二:科幻電影的電腦奇才可以瞬間破解 256 位元的密碼。嘿嘿嘿。我不敢說沒有這種人啦。聽說有人發個正念,電腦病毒就拜拜了。

註三:網上某文章稱 SHA-1 可以被輕易破解。姑且不論該文章是否真實。我隨便在一部白痴的 i7 870,用白痴的 single thread 跑白痴的 bash script,計算 26000000 個 MD5 數值做字典攻擊,也不需要兩個鐘。

註四:即使泛民在選舉中使用更高位元的 hash 方式,面對本文提及的「字典攻擊」,亦完全沒有幫助。

註五:本來是打算以 CRC32 做例,短小精桿看起來不太可怕。但如果用它來對照身份證,hash 衝突機會超大。

註六:如果使用 salt,salt 數值就必需固定,才能得出相同的 hash 數值。另外,不同的 hash 算法有不同的 hash 數值。以 Apple 為例:

算法十六進制結果
MD59f6290f4436e5a2351f12e03b6433c3c
CRC3268efff54
SHA-1476432a3e85a0aa21c23f5abd2975a89b6820d63

註七:不同的算法,hash 數值範圍也會有不同:

算法hash 數值範圍
MD50 - 340282366920938463463374607431768211455
CRC320 - 4294967295
SHA-10 - 1461501637330902918203684832716283019655932542975

註八:128 位元 hash 衝突的機會率:2^(-128)=2.9e-39 ,連中五次六合彩的機會率:(49C6)^-5=1.9e-36 。

註九:任何有經營網上服務的人,例如香港人網討論區,都應該明白這個道理。如果不明白,我會為你們會員的私隱感到非常不安。

註十:面對字典攻擊,可以使用 salt 防禦。但 salt 不能保護身份証號碼,述於後文及註十六。

註十一:身份証結尾括號內的是驗証碼,本身有一定規律,本文不作深入討論。

註十二:26M 個身份証號碼出現相同 MD5 的機會率:1-(2^128)P(26M)/((2^128)^26M)<1-(((2^128)-26M)/(2^128))^26M=2.0e-24 。連中三次六合彩的機會率:(49C6)^-3=3.7e-22

註十三:其他防範「字典攻擊」的方法:例如把身份証號個整個反轉,效果和 salt 相同。但和 salt 的問題一樣,只要方法給洩露出去,就會失去保護作用。

註十四:本例子的 salt 類型為 HMAC。

註十五:如果 salt 不夠長不夠複雜,攻擊者還是能透過暴力算法,把 salt 挖出來。如果攻擊者知道其中一位投票者的實際身份證號碼,如自己親身投票,那麼挖 salt 的速度會更快。

註十六:一般電腦或網上討論區,在記憶賬號密碼 hash 時,一般都會在不同的賬號,使用不同的 salt,然後把 salt 不經加密存放在資料庫中。這個做法有個好處,就是使攻擊者無法利用字典攻擊,同時取得所有賬號的密碼,大大增加攻擊者的成本。而且不會製造新的保安漏洞。但在泛民初選中,由於系統要檢查選民有沒有投過票,就必須支持搜索功能。但如果每張身份證都使用不同的 salt,資料庫就無法從 hash 進行搜索。因此這個方法在泛民初選並不適用。

註十七:身份證本身來自政府,私隱沒甚麼好擔心的。但從最近的造票事件看,若政府不是無能,就是缺德。

註十八:IT 除了研究算法,軟件和硬件的安全隱定以外,還有操作者管理者的能力和操守。雖然莫乃光聲稱系統安全,但他也只是說技術層面而已。他說找了「專家」保障私隱安全,那「專家」又是誰呢?是要動輒花上數百萬的資訊保安公司,是會寫 PHP 網頁的中學生,還是他自己?在我們 IT 界,一些人為節省成本偷工減料,找中學生寫程式是司空見慣的事。而莫乃光乃堂堂香港互聯網協會會長,不似會做這種有違專業操守的勾當。但任何一位負責任的 IT 人,都不會贊成使用義工提供的私人電腦,去做登記身份證的工作,亦有損專業形象。
另外,香港的泛民陣營,都是登記為「有限公司」營運。而根據香港的法例,任何有限公司搜集個人私隱,都必需得到書面同意。然而今次的選舉過程卻沒有做這個。所以,任何人或組織,包括反對選舉的人民力量,都可以以此控告主辦團體。但如果他們這樣做,就會令以後的初選蒙上陰影。

註十九:雖然 hash 可以讓收訊者發現資料出現問題,但無法把資料修復或還原。如果發生問題,一般的做法是要求對方把訊息重發,或重新把檔案下載。

註二十:其實不論登記系統是用甚麼方法,甚至是個外星人的黑盒,只要它能快速確認某個 ID 是不是已經被登記,這種系統就已經稱不上安全。例如,我想知道小明有沒有投票,只要把他的身份證丟去系統確認一下就可以了。假如有暴徒突然佔領香港,要找出所有投票者,他們可以再次把那個系統搬出來,強迫全香港人驗身份証,就能找出所有投票者。這思考進路不但簡單,亦不需要研究 hash 的特性,就能得出結論。但是本文章主題既然是 hash,所以就由 hash 角度出發吧。其中一個規避「全民驗証問題」的方法,是使系統變得極不快速,例如花一分鐘去驗証一個人,暴徒就必須花四十九年去驗証 26000000 個身份證號碼。但即使系統變得這麼慢,暴徒還是可以花一分鐘,去驗証小明這個人有沒有投過票,因為這本身已經是該系統設計的最根本原則。如果設計者嘗試把每個人的驗証時間再拉長,例如一小時,那麼在正式初選時,每位選民也必需花一小時去投票,是沒有可能的。