2009年11月6日 星期五

Magic Battery

The probability of a battery failure at time T follows exponential distribution.
P{T=0} = 0
P{T=1} = 0
P{T=2} = 0
...
P{T=t} = 0 for all t in [0,inf)

Therefore, the battery never fail.

--------------------
(This proof itself fails.)

2009年10月28日 星期三

Continuous improvement

There is room for improvement.



There is house for improvement.

There is building for improvement.

There is city for improvement.

There is GeoCities for improvement.

There is planet for improvement.

There is black hole for improvement.

There is solar system for improvement.

There is universe for improvement.

爛。

2009年10月6日 星期二

How to get rid of tables

當我看見 Standard Normal Distribution 這個美好的 Table,便想起上年已經印了一次。
今年又要印多次?(其實可以帶本書去,但係本書太大本唔方便掀。)

我當然想用計數機計。於是便找到:
http://webcal.freetzi.com/3650P/standardnormal4.htm

很好。1274148Ans - 1422484Ans2 + 7107069Ans3 -7265760Ans^4 + 5307027Ans^5 都寫得出。
一個積分函數都 expand 到變五次方程咁。(? 那是 10^x 吧)

Appendix B 是更嘔心的 Table: "Factors for Control Charts"
那些變數名是 Obfuscated 的:A_2, A_3, d_2, d_3, D_1, D_2, D_3, D_4
之後不小心找到:
http://www.technion.ac.il/docs/sas/qc/chapc/sect21.htm
這裡有些上堂也講過的。不過最大問題還是 d_2 和 d_3
之後...

http://www.technion.ac.il/docs/sas/qc/chapc/sect9.htm
http://www.technion.ac.il/docs/sas/qc/chapc/sect10.htm

想點啊大佬。

2009年9月27日 星期日

Poor English

"When hired, a new engineer completes a nondisclosure agreement, which is filed with other information about the employee."

= (?) 當聘請後,新工程師會完成一保密協議,"這"與其他員工資訊一併存檔。
= (?) 當聘請後,新工程師會完成一保密協議,"就是"與其他員工資訊一併存檔。

。Should I add a field called "nondisclosure agreement"?

2009年8月30日 星期日

一生花在等的時間似乎是最長。
最近又增添一項,就是等訓教。

2009年8月26日 星期三

治亂世,用字典?

有一位聲名狼藉的仁兄出了一道難題(爛題),它的答案是一個英文生字。
他的問題是正常人看不懂的,不正常的人也看不懂的。答案是可想而知的差。
假設你可以無限次作答,程式會告訴你是否答對。答錯沒有罰,你會如何選擇?


  1. 認真再三細閱問題。

  2. 不理會,也不想理會這類不知所謂的事物。

  3. 治亂世,用字典。

  4. 使用標準答案作答,例如分食物問題的標準答案是搾汁機。

  5. Crowdsourcing。公諸同好。



Exploiter's answer: 3
What is your answer?

2009年8月15日 星期六

2009年7月29日 星期三

Reputation in Information Society

Switching the nickname may help you to "format" your reputation.
That's why I switch it so many times.

2009年7月8日 星期三

2009年6月6日 星期六

最近 Short Short 地。

6月6日 星期六
上午 3:33 。

2009年6月2日 星期二

如何防止考生覆卷 (二)


Please be assured that we have taken extreme care in the
machine-grading process and in the post-exam analysis to ensure that your scores are accurate. Moreover, in view of the large class size, we have to implement a stricter exam review policy: We have again added three (3) bonus points to your final exam score; if you choose to see the TAs regarding your exam, please be informed that you will automatically forfeit the 3 bonus points.

It has been a pleasure teaching you in the second half of this course.
I hope that the course has set a strong foundation for your further studies in Finance. It is my fervent hope that you will want to be professionally involved in the area of Finance in the years ahead.


A good Financial Manager should know well on playing numbers.
"strong foundation for your further studies in Finance" = PLAYING NUMBERS.
I also enjoy sharing you guys' method of playing numbers.



回帶:所有考生不應覆卷的條件:
S+X>=S*95%+(100-S)*5%
X>=(100-2S)*5%
X>=5-0.1S

今次最低分係 26 分。
X>=5-0.1*26=2.4 ~= 3
又係 3 分。

2009年5月31日 星期日

IC Version 1.4 Released

順應某人要求,特此通知:擱置了4個月的 X4 終於出現了。

歡迎投票表達 IC 的去向。

2009年5月27日 星期三

考試題目

88. Which of the following is a good suggestion for managing queues?
A) Discourage customers to come during the slack periods
B) Keep employees serving the customers out of sight
C) Segment customers to minimize waiting
D) Train the customers to be friendly
E) Develop a short-term solution for managing queues


真係睇一次笑一次。

2009年5月12日 星期二

Information Confidentiality

One major issue of information security is confidentiality. Today, information are not only just stored in one place, but also transmitted to different location.

According to Telecommunication Act of the US (1996), telecommunication defined as "the transmission, between or among points specified by the user, of information of the user’s choosing, without change in the form or content of the information as sent and received". Here we will focus on specifying destination points by the user, which allow information holder to send out the information confidentially and only selected recipients are allowed to access this piece of information.

We can see that there are different kind of terminals and user interfaces which allow users easily to specify the recipients of a certain piece of information. For example, you can use your mobile phone dial a number to make a phone call, and you expect that only the person/people who can access the terminal with that phone number will receive the phone call. Another example is that you can use your e-mail user interface to send e-mail to different people, and you expect that only the person/people who can access one of your listed e-mail account in the recipients list will be able to read your e-mail.

There are mainly three reasons that information will become no more confidential, or in other words, the information you sent out can be access by people whom you do not specified as one of the recipients. The first reason is the information was captured or sniffed during the transmission process, maybe due to the vulnerability of network medium. For example, in a computer network which use traditional network hub for data transmission, people can sniff the information sent out from any node of this network if he can access one of the node of this network, because of the fact that information will broadcast to every node by using old hub. Although the setting of computers will filter out information which do not belong to the certain computer during the broadcasting, this setting can be changed and yields a vulnerability.

The second reason is other people gain or steal one of your recipients' authority of access the information, or simply say, someone break in one of your recipients' account. It may cause by weak authorization process, or your recipients have weak security conscious like setting a weak password or sharing personal account with others. For example, I registered in a forum to discuss about riddle game made by someone. And for convenience (or lazy), I just use my login name as password. Then I start discuss with some other people by using private message. However, some smart guys break in to my account and read the discussion and answers of the game, which is not supposed to be happened. Hence, the strength of information confidentiality depends on the weakest access node (including the original owner, not just other recipients).

The third reason looks even more ridiculous then the second one, but it always happen, that is the owner specify the wrong people, or specify other unrelated people unconsciously. This thing will happen because you misuse the user interface, or you try to transmit the information in hurry. Recently I received an e-mail called "Re: X Course Peer Evaluation Form", which I am not supposed to receive. When I check out the CC list, it included all students who take this course. Probably the instructor send out the e-mail called "X Course Peer Evaluation Form", and then that person use "Reply All" to reply and submit his form, which comes out a catastrophe.

To prevent confidential information being captured by others, I suggest that to prevent using unprotected transmission medium, like WiFi hot spots without certifications. Also, do not use simple passwords or share personal account to others, which give out a chance that your account will have unauthorized access. And also tell this fact to your potential recipients, which also affect the strength of confidentiality. Last but not least, check the recipients information twice before you send out the information, then we would not have too many situations like: "Oh sorry, I made a wrong call."

謬論:分數與睡眠時間成正比

分數是否與睡眠時間成正比?
一日睡十多個小時,會不會較高分?


其實這裡討論的「睡眠時間」是上課時的睡眠時間。 =_=

根據以往經驗:
某歷史課:上兩個鐘,訓個半鐘。播播下電影都可以訓。 --> Result: A
某統計課:上個半鐘,訓半個鐘。條友狂搞爛 gag 都繼續訓。 --> Result: A-
某會計課:九點堂,但冇訓過。 --> Result: B



最近上 I____61 睡眠時間上升。看來 A+ 指日可待。

2009年4月21日 星期二

如何粉飾太平

繼「如何防止考生覆卷」後又一力作:

某次課堂習作中,由於題目不容易,導致部分學生表現未如理想。
Prof 又發功,玩數字遊戲:
"All of your decuded marks in this case assignment will be halfed."

調整後分數 S' = S + (100-S)/2
其中 100-S 為 "All of your decuded marks"
S 為 "marks in this case assignment"
/2 為 "will be halfed"

屈機後,中位數急升至 74。原本中位數 = 48。兩者差異 = 26
最高分稍升至 96。原本最高分 = 92。兩者差異 = 4

簡單來說,最高分那組相對於中位數,被扣了 22 分。(我不是那組)


另一方式表達 "Half decuded marks":
S1 = S0 + (100-S0)/2
S1 = 50 + S0/2

簡單來說,底分改為 50 分,你現有的分減半。

思考題:
若 St = 50 + St-1/2
求 lim n->inf Sn
(無限地重覆 halfing deduced marks)

2009年4月1日 星期三

MORSE CODE

MORSE CODE: . -. -.-. .-. -.-- .--. - . -.. - . -..- - ---... -....- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- -....- -....- .-.-.- .-.-.- -....- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- -....- -....- -....- -....- -....- .-.-.- -....- .-.-.- -....- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- .-.-.- -....- -....- -....- .-.-.- .-.-.- .-.-.- .-.-.- -....- .-.-.- -....-

2009年3月29日 星期日

如何防止考生覆卷

注意:本文內容涉及數學。
考評局的做法:收你錢。

某Professor 的做法:你唔覆卷加你分。
假設改錯卷的概率為 5% (Confidence Level = 95%)
滿分為100分,設S為得分,X為唔覆卷的 Bonus 分。

所有考生不應覆卷的條件:
S+X>=S*95%+(100-S)*5%
X>=(100-2S)*5%
X>=5-0.1S

取S為所有考生之中的最小值 (e.g. 20分),
得 X>=5-0.1*20=3

所以如果唔覆卷獎你3分,就會冇人覆卷(假設所有考生是理性的),佢就可以繼續放大假

2009年3月27日 星期五

爆分

"Moreover, in view of the large class size, we have to implement a stricter exam review policy: We will add three (3) bonus points to your scores posted on LMES; however, if you choose to see the TAs regarding your exam, you will automatically forfeit the 3 bonus points. "

如果 會考 高考 都係咁,我諗冇人會去 Check 卷了。

First Exam - Total - 96/100
加多3分…… =_= 都仲係差1分。

"there are four students who scored 100"
呢D就真係爆分了。 (100+3)/100

2009年3月23日 星期一

時空錯亂

經濟科考試時間
份卷寫著 1 hour and 50 minutes
實際時間 1 hour and 20 minutes

資訊X統科考試時間
份卷寫著 1 hour and 10 minutes
實際時間 1 hour and 20 minutes

結論:所有 In-class exam 都係 1 hour and 20 minutes


Which of the following is / are correct?
(i) A database can have many database management systems.
(ii) A database management system can contain many databases.
(iii) A company can have many databases.

原來我的英文真是這麼爛。原來 contain 可以解 manage (?).

2009年3月13日 星期五

黑色星期五

黑到爆。
預告:11月13日又會有同一篇文。

2009年3月11日 星期三

隨口翕

昨日上課時隨口說了幾句,後來發現有點不對路。

"Even if you turn off Cookies, websites can still track us."
我回應了「用 Session」。很不幸的是,講完之後才諗到 Session ID 也是用 Cookies 儲存的。雖然唔知邊個話即使 Turn off cookies, 瀏覽器仍然會 save Session ID,但係我返屋企試完又唔得。至於用 Form 或者 Query string 記 Session ID,就另計吧 =_=。

不過要 Track 的話,不用 Cookies 或 Session Cookies 也可以的。
例如 IP , 優點 - 容易。 缺點 - IP 可以造假,又可以多部電腦共用一個 WAN IP。
又例如用 cache,通常都係 cache 個 js 檔,第一次上 Google 首頁會 Download 個檔名勁亂既 JS 檔,裡面充滿鬼畫符的 Code,其中有一段係有關 Mouse Tracking,有一段又有咩 "Expire",懷疑與 preference tracking 有關 (懷疑咋下)。

維咩百科有個例子很有趣:用 window.name,但有 Cross-domain problem.

所以想防 Track,除左 turn off Cookies 之外,仲要 turn off Javascript,再造個假 IP……
建議瀏覽器:Telnet。


Google 個 Cookies expire date 之前還真久,久到盡 (點解唔屈埋去到 1月19日?) 。
尋日試過,佢改左做 2 年,都足夠久了。

2009年3月2日 星期一

There are around 100%

There are around 50 multiple choice questions will cover the content
in lecture (around 70-80%); required text-booking chapters (around
10-15%) and case study (around 2-4%).


Lecture: 35~40
Textbook: 5~7.5
Case:1~2
Sum:42~49.5
結論: text-booking chapters are around 10-16% (?)

2009年2月23日 星期一

槓桿那互聯網

http://www.efficienthomeenergypower.com/httphomekimocomtwsamuel5e24energysystempng-what-system-does-this-logo-represents/

Problem: 要做功課
Solution: 上網問人
New Business Opportunity: 上網問功課服務 (new?..)

2009年2月13日 星期五

黑色星期五

黑到爆。

2009年2月5日 星期四

最近比較忙

梁某人唔使再問我幾時出,因為有牌都唔使出。

目前進度:10/(20+1)

如果你等得不耐煩,可以要求逐關逐關出。

2月7日:目前進度 16/21

2月8日:目前進度 20/21
=_=

2009年1月29日 星期四

Internet Exploiter 7 #3 Production Video

http://sites.ozetta.net/recycle/bin/x3.rar
P.S. 個標題打漏左個 "7" 字。唔鬼理了。
個帳號已經刪左,所以唔使諗住登入試下。

我發現我貼完打漏以下一段:

從片中得知,很多人也很會 Exploit 的。
他們在建國時,利用 HTML Injection 的技術,令國家「隱藏」起來,成為了一般人不能滅的國家。

程式很明顯沒有將 " 變成 " , 如果輸入以下國名:
XSS國" onmouseover="javascript:alert('XSS');
便可爆出 XSS。加上 EBS 的特色是那些帳號和密碼都 Store 在表單的隱藏欄位,連 Cookie Stealer 也省掉,只需讀那兩欄再幫他自動 post 表單去你個 server 就可以了。

片段最後也提出如果破解這些「隱藏」國,詳情請自行參看。

2009年1月28日 星期三

X3 走過

因為真係太難,貼走過:
$_SESSION['stage']['blackhole']='wxyzzy'.chr(rand(97,122)).chr(rand(48,57)).'1';
至於點搵果兩個隨機數,快則最多Query 36次,慢則最多Query 260次。
今次主要都係考呢度,你衰極都可以 Query 260 次。 Session Expire 正常返,變返一日,大家可以慢慢 Query 下。(提示:用 "DG III 答案" 的特殊字元)

知道 ID (wname) 後,如何變武器:
1. 複製 Upgrade 的表單
2. 裝備個空武器(第3格) / 買個 w 再裝備

if(substr($_POST['wname'],0,-1)!=$wpk[0]){alert("Cheating is Banned.");}
3. 因為上面呢句野,所以每次 Upgrade 只可以升一隻字:
例如空氣升做 w,w升做 wx,wx升做wxy……

最後 Shoot the core 就k.o.了。

溫馨提示:強烈建議在 <form> 加上 target="qwertyuiop" 之類的物體,以免 Submit 表單後又要貼多次 (Both in weapon list and upgrade weapon)

如何將EBS武器名由中文翻譯做英文

http://translate.google.com/
純粹 Gag ,以下舉幾個例子:

超合金光束刀 -> super-alloy beam knives
- 幾正常.

超震電合金棒 -> super-seismoelectric alloy rods
- "seismoelectric" 咁深都譯到, 我都唔知點解.

超級霸王電影彈 -> Super King movie bombs
- 睇來 Google 譯個 "超" 字比較叻.

石破天驚拳 -> ground-breaking boxing
"heaven-frightening" 去左邊.

腕式光劍 -> wrist Lightsaber
- Google 睇得 Star War 多.

斷空劍 -> off air sword
- 不如叫 dead air sword.

天上天下無敵劍 -> heaven invincible sword
天上天下念動破碎劍 -> read the world is moving heaven broken sword
天上天下念力真破碎劍 -> the world is studying the sky really broken edge sword
- Really broken gag.

流星蝴蝶刀 -> meteor butterfly knives
真*流星蝴蝶刀 -> really * meteor butterfly knives
- 很好。 譯得 really 係好。 (真 = really)

回旋式光束刀 -> swing beam-type knife
回旋式電磁斧 -> Roundabout electromagnetic Ax
- 究竟咩叫「回旋式」呢?

超電磁龍卷 -> super electromagnetic spouts
- 如果改做蛋卷 會譯做咩呢?

逆光斷 -> Backlight off
死神光刀 -> Death knife
龍王破山劍逆鯪斷 -> Longwang Mountain sword broken off inverse Cirrhina
- 好深。真係好深,中文都睇唔明,何況英文呢?

DX用破壞光束槍 -> DX with damage to beam guns
- 其實係中文寫得差掛.

隆基斯之槍 -> 隆基斯of guns
- http://en.wikipedia.org/wiki/Holy_Lance 睇完就知咩叫 "唔關事”。整 EBS 條友都 gag gag 地。Rifle又係槍,Lance又係槍,Rifle 升升下可以變做 Lance。

巨型機砲 -> a giant cannon
- 個 "a" 好傳神。

加特林機砲 -> Gatling cannon
- 我又係唔知點解 google 譯到。

X衛星離波炮 -> X satellite from the wave of artillery
- 好古怪

浮遊炮 -> Funnel
- 唔知點解譯到

波動炮 -> fluctuations in artillery
- 你真係好 fluctuation.

機雷 -> Ray machine
- 咁機屈係唔係 Wat machine

光之翼 -> Wings of Light
光之翼*魂 -> Wings of Light * soul
- 好正。尤其係個 soul

爆導索 -> lead explosion
- 隻一索唔見左

蔓陀羅圓陣*極樂往生 -> Tuo Luo Man circular array * Paradise reborn
- 中文都唔知講乜。英文好似正D。

AT力牆 -> AT power wall
第一層AT力牆 -> first tier AT power wall 
第二層AT力牆 -> second tier AT power wall
第三層AT力牆 -> third tier AT power wall
AT力牆最終型 -> AT the end wall edge type
AT力牆最終型.改 -> AT-type power wall eventually. changed
- 不予置評。

臨.兵.鬥.者.皆.陣.列.在.前! -> Pro. soldiers. Doo. persons. are. array. out. in. before!
- 兩個都好難明

圓月殺法 -> Full Moon killing law
- 無法無天啊

2009年1月23日 星期五

廢話一則

恭喜 Phidhell (濛) 第一個完成頭 42 關。(V1.1+V1.2)
(真是多廢話。)
V1.3 製作中, 預計 2月前會有 "V1.3a" (即係冇 X3 既 V1.3)

walk-through 預告:Q11
http://ic.ozetta.net/main.php?answer=H 狂 Reload,你便可以製造「氫彈」。

Abuse of plaintext

Source Page
*sites 不給我上載 htm, 求其上載個 txt 算,
神奇地用 唉咦 睇佢好似變左 htm =_=" 按檢視原始檔看返 Source Code

在製作 IC Q11 的過程中,需要一個很麻煩的元素週期表。
不幸的是,打好那個表後,卻發現忘了打超連結。(是無法打吧……=_= 那些元素也是逐行 Copy 回來的)

初時諗著逐個加 link ,但咁加法加到聽日都 未解決! ,唯有用 script 。
用完 script 後,link 是加了,但如何 copy 回 source code?
我嘗試將內容複製至 WYSIWYG Editor (例如 「前頁」),當然 What You Get is 很 ugly 的 code 。
開那個 Firefox,見到一堆 undefined,我都不想去改原本段 script 了。

於是便加了一些手腳:<plaintext> -- 一個不建議使用的 tag 。
還有在 table 後加上 close tag ,廢事 plaintext 埋段 script。 (真無聊)

這樣便能 copy 回這些經動態處理後的 source 了。

P.S. IC S7 也可以用類似方法來看回 Source,連 Inspector 都省返:(S7 是不可以直接看 Source 的)
javascript:void(document.getElementsByTagName('body')[0].innerHTML='<plaintext>'+document.getElementsByTagName('body')[0].innerHTML);

2009年1月22日 星期四

網頁密碼 - unescape 後 eval

很多人都會將客戶端的 js code 不斷地 escape 成為 %20%2E 之類的字串,然後再 eval,我只能說這是沒有用,只會浪費空間和資源。
看到這些東西也很不開胃。但我也想貼貼,證明這樣的所謂加密是廢的。



很噁心的垃圾。將 eval 改成 document.write,即得



另一段垃圾。真不明白他為何要 unescape 兩次。 這與將一段文字變成摩氏密碼後,再將摩氏密碼再變成摩氏密碼差不多,只增加了訊息量,保安性一樣 (可能增加了 0% [接近至最小整數])。

在第二段垃圾前加上
document.write('<plaintext>'+unescape('

後加上
')+'</plaintext>');
(我似乎在濫用一個不建議使用的 tag, plaintext),得:


咦,原來 plaintext... 不用 close tag 的 =_=" 哈哈.. =_=
原來這段可惡的東西還有第三層:

一於再 document.write 多次。即得:
window.location="../basement/trickword.htm";

玩完。我看到 4*4*4+44 很想笑,似乎是人手打的。
當然網上有一些更方便的「解密」器,自己找找看吧。=_=

2009年1月20日 星期二

Spoiler of riddlers

恭喜 Samuel Post 表單到新視窗 Post 到無端端過左 X2 都唔知。

另外,以下教大家「如何利用 Tiger! Yahoo! 知識來製造 Walk-Through」
(此行為是值得推崇的。因為這位朋友能善用網路資源,i.e. Leverage the Internet.)
http://hk.knowledge.yahoo.com/question/question?qid=7009011901286

同樣地,今日考試,IE7 第二章 也是一隻字都未寫。一陣寫。

2009年1月19日 星期一

IC Version 1.2 Released

注意:8關下面有個 Next 掣

R6 Walk-through (?)
鑑於有人認為 Riddle 很難和很爛,所以張貼以下少量 Walk-through:

Horrible Browser 的 BGM (?!):





你的瀏覽器播唔到呢段野


X2 門檻為 PQRS(6-10) 內的 12 關。
X2 只有兩個 Fail 位,有時 Fail 左唔會出 Fail,死左都唔知咩事的。
提示:你要不斷重覆同一個動作 / 相似的動作十次,以達致「一日十兆」的至高境界。
提示:胡亂 Post 資料至新視窗可能導致部份內容流失,但仍可過關。

P.S. 鳴謝 Rory 指出 Q10 的 Master Mind 有 Bug, 已更正。

2009年1月18日 星期日

兩難

廢話一則:
題目出得難,怕 D "Real Riddle Solver" 過唔到。
題目出得易,又怕太無聊。

2009年1月15日 星期四

恐怖故事下集

有時看到好Grade也好恐怖的。竟然有 95 分。

2009年1月14日 星期三

恐怖故事

世界上沒任何事,比爛 Grade 更可怕。

Assignment 寫住 Feedback date 是 今日 9:00 , 便上去看看分數。
發現 "58.4 分" , 是 Out of 100.
難道我 submit 漏答案嗎?還是 essay 三題全錯?

隔了二十分鐘再看,分數突然變了 "n/a",越諗越恐怖。

2009年1月12日 星期一

吹水文一則

恭喜 Arthur Luk 第一個完成 IC v1.1。

原本打算有人過左之後就Post IE7 第一章,但係我一隻字都未寫,仲要做 Assignment,都係留返聽晚先。

2009年1月11日 星期日

IC Version 1.1 Released

X1 門檻為完成Version 1.1 20關內的其中 12 關。
P1,Q1,R1,S1,Q2,Q3,Q4,Q5,S2,S3,S4 應該算容易。都有 11 關了。
剩下來就...R4 好像也好容易,比那個 R3 易很多吧。

effect.js 的結構不太好,而且不 User Friendly,所以想用(or 抄)的朋友最好考慮一下才用。
遲些可能會有一個更正規化的 rpg effect library.

如果時間許可的話,我想我會先搞 "寫 riddle 好似寫 blog 咁" , 才搞 "寫 web rpg 好似寫 blog 咁"。
如果對 IC 有任何意見或 Idea,歡迎提出。

P.S. 鳴謝 6K 指出P4的一隻大Bug。
P.P.S. 唔知點解 A字頭那位大朋友可以在有 Bug 時還過到 P4。

2009年1月10日 星期六

Web 2.0 與網上猜謎遊戲

以前經常看到一些粗製濫造的「單人網頁遊戲」,例如文字RPG、猜謎遊戲等,要麼界面爛,要麼保安爛。
Web 2.0 的特色並非只是互動性,而且還可以「讓使用者輕易建立自己的領域」、「讓使用者與其他使用者建立聯繫」。如果寫猜謎遊戲可以好像寫 Blog 一樣,你會不會使用?

2009年1月6日 星期二

網頁密碼 - 混淆程序

在編程中,有一個東西叫做「混淆器」,是用來防止其他人輕易地閱讀及修改程式碼,防止抄襲。
這經常用於 Java 程式,因為 Java 程式很容易便能被反編譯,從而顯示出原始碼。
這亦經常用於 JavaScript,但很不幸的是,大部份人閱讀閣下網頁的 JavaScript,並不是為了抄襲。若果是抄襲,通常只要上網找找教學網便有大量資源可供參考。他們的目的是,為了獲得一些重要的資訊,例如傳送的資訊、傳送資訊的目的地、網頁密碼等。

看看以下一段 JavaScript Code (節錄)
var pass=new Array();
pass[0]="0110111001011101111000";
pass[1]="14916253649";
pass[2]="235711131719232931";
pass[3]="3*7*37=777";
pass[4]="4916253649";
pass[5]="5' or 1=1 --";

function max(which){
return (pass[Math.ceil(which)+(3&15)].substring(0,1))
}

function verify(verification){
if(verification.length==max(Math.LOG10E))
window.location=verification+".htm";
else
alert("Wrong password.");
}

究竟 verification.length 應該是多少?
表面上很混亂,但若加一句 alert(max(Math.LOG10E)); 便一下子浮現了 (4)。
當然每次也要貼去網頁編輯器去改是很麻煩的事,所以當你想插入 JavaScript 到網頁中,可以使用:
javascript:alert(max(Math.LOG10E));

注意,大部份瀏覽器若執行此類插入的 JavaScript 後有傳回值,便會轉到另一頁。例如:
document.getElementsByTagName('div')[0].innerHTML='test';

這樣便需要在最後加上 void(0); 傳回 Null來停止轉頁:
document.getElementsByTagName('div')[0].innerHTML='test';void(0);


P.S. 我個人覺得這篇文與密碼學不太相關。

百聞不如一見

我們最近審查記錄時,發現您的 AdSense 帳戶對 Google 廣告客戶帶來相當大的
風險。 若將您的帳戶繼續保留在我們的發佈者聯播網中,未來可能會使廣告客戶
蒙受財務損失,因此我們決定停用您的帳戶。

半年前看到 AdSense 大部份批評都是突然被 Ban,今日百聞不如一見。
唯有搵另一些 Publisher 吧.

2009年1月5日 星期一

網頁密碼 - ASCII 的因式分解

先看看以下一段 Code
function check(){
pw = document.getElementById('password').value.toLowerCase();
pc = 1;
for(i = 0; i < pw.length; i++){
pc *= password.charCodeAt(i);
}
if(pc==20356804851768000){
window.location=pw+".htm";
}
else{
alert("Wrong Password.");
}
}

由於腳本中的 "toLowerCase", 所以所有大楷字母均可撇除。由於密碼 pw 是檔案名稱的一部份,所以 \ / : * ? " < > | 均不可使用。
我們假設該密碼是由小楷字母、數字和檔名可用的普通符號組成。
普通符號ASCII範圍:32-47, 58-64, 91-96, 123-126
剔除檔名不可用符號後的範圍:32-33, 35-41, 43-46, 59, 61, 64, 91, 93-96, 123, 125-126
數字ASCII範圍:48-57
大楷字母ASCII範圍:65-90
小楷字母ASCII範圍:97-122
一般來說,ASCII 為 32-126 的字元是此類密碼的輸入範圍。


討論
1. 是否存在唯一密碼?
答:當密碼長度大於一,存在不同字元時,便不存在唯一密碼。因為若密碼是 "ab",輸入 "ba" 亦能通過驗證。

2. 若忽略字元的位置 (如ab ,ba 均可作為密碼),是否仍存在唯一密碼?
答:不存在。因為一個數可以有多種組合:例如密碼鍵是 1073741824,6個空格(32)和5個@(64)均可得出 1073741824。

3. 若給定一個長度,是否仍存在唯一密碼?
答:仍然不存在。對於 a,b,c,d 於 [32,126] , 以下是 a*b = c*d 的組合:
abeqcd.txt


解密
1. 評估密碼長度
利用對數換底公式即可得出大約長度。 例如假設密碼字元的 ASCII 碼均在 [32,126],密碼鍵為 20356804851768000,
計算 log 20356804851768000 / log 126 及 log 20356804851768000 / log 32
得出 7.765 至 10.835 ,下界上捨入、上界下捨入,得出 8 至 10 字元。

2. 因式分解
利用電腦計算程式如 Maxima ,可快速因式分解此類密碼鍵。 (若因數包含大質數則例外,但 [32,126] 是十分小,所以速度仍然很快。)
(%i1) factor(20356804851768000);
(%o1) 2^6*3^2*5^3*7*11*19*23*29^2*97*103

結果往往是出人意表的,因為有時結果中包含一些相對大的質數,便可立即得出其中包含的字元。
在此例子中,97 和 103 (a 和 g) 出現了。

3. 組合因數
剩下的 2^6*3^2*5^3*7*11*19*23*29^2 共有 17 項,要如何合併至剩下 6 至 8 項?
密碼範圍內可用的因式:
32,33,35,36,38,40,44,45,46,48,49,50,54,55,56,57,64,95,96,98,99,100,105,108,110,112,114,115,116,120,121,125,126 (共 34 個)
利用暴力破解,共有 35C8 = 23525820 個組合
符合的數
1*1*95*110*115*116*116*126
1*1*105*110*114*115*116*116
1*33*35*46*50*57*116*116
1*35*38*45*46*55*116*116

_nstt~
inrstt
!#.29tt
#&-.7tt
加上之前的 a 和 g ,得
_agnstt~
aginrstt
!#.29agtt
#&-.7agtt

4. 白撞
利用 anagram 軟件查詢第二個 (全部字母):
http://wordsmith.org/anagram/anagram.cgi?anagram=aginrstt
得出密碼為 starting 。


應用
如剛才例子,有4個不同字元組合均可解得上述密碼,再加上本身字元的排序,其組合亦十分多。
若果想建立唯一的密碼,便需要加上密碼長度和密碼字元排序的資訊。

若假設只包含小楷字母,上述例子的可用密碼因式只剩下:
98,99,100,105,108,110,112,114,115,116,120,121 (共 12 項)
那麼暴力破解的組合只需 13C8 = 1287

一般來說,網頁密碼很小會包含符號,所以在假設時,可先考慮英數字符。

2009年1月4日 星期日

如何在維基百科張貼廣告?評網上猜謎遊戲



究竟「近年」是哪一年呢?這是一個謎。

英文那些不作評論。在此提一提 Notpron 出名有色情圖片,小朋友不要玩。

正所謂天下通書一大抄,人抄你你又抄人。這就是那堆中文 riddle 的特色。

因為早一期不幸地壞硬碟。All data lost. 關卡的網址是用 txt 儲存,想用 recovery 軟件起返又冇咩特別 header 去辨認,好似大海撈針咁,所以唔理佢了。
另外,有很多 riddle 我也未玩過,所以以下評論主要評設計,以及抄人的程度。

設計簡潔。有計數器,討論區,排行榜,最近更新是 08年12月20日。 出到 111 關之後似乎停工了,或者是已完工。頁面左上角的 Icon 提示,似乎是抄 notpron。

設計簡潔。有計數器,討論區,排行榜,最近更新是 09年1月4日。有96關,已完工。

設計精美,用了 Flash。(因為我的 Multimedia 功力相當爛,所以用了 Flash 的一般都會說成設計精美。) 有計數器,討論區,排行榜。最近更新是 08年11月22日。有20關,「伸延版」和「特別版」沒有人討論,我便假設不存在。

加左條分隔線都知唔係好事。

設計幾好,但封面幅背景圖太花,都唔係人睇。個故事好似幾好,可惜去到第二關我打錯個答案之後唔知飛左去邊了 (第 -1 關?) 。
說明抄 http://www.arthurluk.netfirms.com/rules.html 。
Start抄 http://www.arthurluk.netfirms.com/welcome.html 。

註冊唔到就咪鬼放上維基啦。設計精美,但我仲用緊 1024*768,冇錢買靚Mon。

設計簡潔。有上不到的討論區。
去到第 8 關,輸入答案,按「輸入密碼」……
第一眼看到 "YOU WIN"……
……
…… you are the 999,999th visitor!
……
……=_= 原來是爛page。

設計簡潔,有排行榜。但又係衰在有個上不到的討論區。

設計抄 Arthur's Online Riddle 。

惡搞版應貼上偽基百科。P.S. http://www.arthurluk2.netfirms.com/ 我都唔記得左個密碼。

設計精美,有計數器。但又係衰在有個上不到的討論區,留言版又一堆隱藏野,搵鬼睇。

一打開見到一堆草,冇王管。

設計不好。「放walkthrough者小心比我hack左你部腦」見到我想笑。

Forum online riddle
Link 已爛。

你地估下抄邊個?不過算啦,其實都整得幾好,好過我。

Gordon仔的解謎遊戲
Link 已爛。懷疑與 google page 要轉做 google sites 有關。

設計不好。

歡迎當事人及其他人反駁以上觀點。
如果你又整左個,想貼上來,可以試下。

2009年1月3日 星期六

從瀏覽器內置 Timer 看瀏覽器速度

最近發現 Chrome 的確很快。
比較 Google Chrome, Opera 9.63, Firefox 3, IE6 (=_= 我還在用 IE6):
1/1000 秒 Fadeout 0.1, 完全Fadeout (1000次) 所需時間:
*我用秒錶,有反應時間誤差
*我估每部電腦性能都會影響以下速度
Chrome: 4.0秒
Opera 9.63: 18.0秒
Firefox3: 10.6秒
IE6: 15.3秒

1/100 秒 Fadeout 0.1, 完全Fadeout (10000次) 所需時間:
Chrome: 4.0秒 (又係4.0秒 =_=)
Opera 9.63: 18.0秒
... 咦, 開始重覆咁.

1/100 秒 Fadeout 1, 完全Fadeout (1000次) 所需時間:
Chrome: 0.8秒
Opera 9.63: 1.5秒
Firefox3: 1.6秒
IE6: 3秒
(反應時間誤差百分比極大。)

效果的時間差距還可接受。由於 IE 那個 opacity 有點不同, 在編寫上可作調整。

IC Query 題目撞答案法

(廣告+"教壞人的 Walkthrough". 不喜勿讀.)

Q1: Basic Query
撞中概率: 1/25
撞答案方法:Click 一條 link 然後怒按 F5。(reload 2 次就 submit 1次)
期望結果:Reload 48 次後就會無端端過左關。

Q2: Guess a Number
撞中概率:11/1025
撞答案方法:暫時唔覺有靠運氣亂撞的方法。

Q3: Binary World
撞中概率:5/17 (自己諗下點解係 17.)
撞答案方法:狂撞1都幾好,再唔係撞下2。
(其實係1,2,4,8,16. 預計試四次就會過到)

Q4: Sieve of Eratosthenes
撞中概率:11/31
撞答案方法:2,3,4,5,6,7,8,9,10,11,12。預計試三次就會過到。

Q5: Cubic Function
撞中概率:3/1001 * 2/1000 * 1/999 = 1/166666500
撞中先算。很不幸地個 Root 可以是 0,無端端變左二次方程。

睇來我出題目真係出得極差,變左玩運氣。