2014年1月13日 星期一

如何在 Synology DSM 直接 mount 舊硬碟

因為搬到外面住了,為了節省電費,我只把原本桌機的硬碟帶上來,然後買了一台 Synology DS214play NAS 來放資料,這樣就不用整天把電腦開著了! 

但是在準備要搬資料的時候發現了一個問題。當我一把硬碟插上去,一定需要先做過初始化的動作,也就是建立 RAID 才能使用,但這個步驟會把硬碟上面的資料都清除 hmm...。

現在情況是我手邊有一顆 USB 外接硬碟可以先存放資料,那要如何透過 DSM 把內接的硬碟資料搬出來,好把這顆內接硬碟在 DSM 內初始化再把資料搬回去呢??

1. 首先,先把內接硬碟直接插到 DSM 上面。但此時你會發現你完全找不到那顆硬碟在哪,因為 /dev 目錄下面亂的非常可怕。

brw-rw----    1 root     root        8,  11 Nov 25  2009 sda11
brw-rw----    1 root     root        8,  12 Nov 25  2009 sda12
brw-rw----    1 root     root        8,  13 Nov 25  2009 sda13
brw-rw----    1 root     root        8,  14 Nov 25  2009 sda14
brw-rw----    1 root     root        8,  15 Nov 25  2009 sda15
brw-rw----    1 root     6           8,   2 Oct 30  2003 sda2
brw-rw----    1 root     6           8,   3 Oct 30  2003 sda3
brw-rw----    1 root     6           8,   4 Oct 30  2003 sda4
brw-rw----    1 root     6           8,   5 Dec 26 00:47 sda5
brw-rw----    1 root     6           8,   6 Oct 30  2003 sda6
brw-rw----    1 root     root        8,   7 Nov 25  2009 sda7
brw-rw----    1 root     root        8,   8 Nov 25  2009 sda8
brw-rw----    1 root     root        8,   9 Nov 25  2009 sda9
brw-rw----    1 root     root       65, 160 Sep 17  2008 sdaa
brw-rw----    1 root     root       65, 161 Sep 17  2008 sdaa1
brw-rw----    1 root     root       65, 170 Nov 25  2009 sdaa10
brw-rw----    1 root     root       65, 171 Nov 25  2009 sdaa11
brw-rw----    1 root     root       65, 172 Nov 25  2009 sdaa12
brw-rw----    1 root     root       65, 173 Nov 25  2009 sdaa13
brw-rw----    1 root     root       65, 174 Nov 25  2009 sdaa14
brw-rw----    1 root     root       65, 175 Nov 25  2009 sdaa15
brw-rw----    1 root     root       65, 162 Sep 17  2008 sdaa2
brw-rw----    1 root     root       65, 163 Sep 17  2008 sdaa3
brw-rw----    1 root     root       65, 164 Sep 17  2008 sdaa4
brw-rw----    1 root     root       65, 165 Nov 25  2009 sdaa5
brw-rw----    1 root     root       65, 166 Nov 25  2009 sdaa6
brw-rw----    1 root     root       65, 167 Nov 25  2009 sdaa7
brw-rw----    1 root     root       65, 168 Nov 25  2009 sdaa8
brw-rw----    1 root     root       65, 169 Nov 25  2009 sdaa9
brw-rw----    1 root     root       65, 176 Sep 17  2008 sdab
brw-rw----    1 root     root       65, 177 Sep 17  2008 sdab1
brw-rw----    1 root     root       65, 186 Nov 25  2009 sdab10
brw-rw----    1 root     root       65, 187 Nov 25  2009 sdab11
brw-rw----    1 root     root       65, 188 Nov 25  2009 sdab12
brw-rw----    1 root     root       65, 189 Nov 25  2009 sdab13
brw-rw----    1 root     root       65, 190 Nov 25  2009 sdab14
brw-rw----    1 root     root       65, 191 Nov 25  2009 sdab15
brw-rw----    1 root     root       65, 178 Sep 17  2008 sdab2
brw-rw----    1 root     root       65, 179 Sep 17  2008 sdab3
--More--

我沒這麼多硬碟阿...

2. 使用 fdisk 來找到現在硬碟到底是對應到哪個代號
# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               1         311     2490240  fd Linux raid autodetect
Partition 1 does not end on cylinder boundary
/dev/sda2             311         572     2097152  fd Linux raid autodetect
Partition 2 does not end on cylinder boundary
/dev/sda3             588      121601   972036912   f Win95 Ext'd (LBA)
/dev/sda5             589      121601   972028864  fd Linux raid autodetect

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
256 heads, 63 sectors/track, 181688 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdb1               1      266306  2147483647+ ee EFI GPT

3. 如果你是 EFI GPT 類型的硬碟,可能需要多用 partd 來看到真正的partition 分割和檔案系統類型,因為在 EFI GPT 狀況下你切了幾個 partition,也只會看到 /dev/sd*1。我這邊沒有這樣的例子,但大家可以試試。
#partd /dev/sdb print

Model: Hitachi HDS723015BLA642 (scsi)
Disk /dev/sdb: 1500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End     Size    File system  Name                  Flags
 1      135MB  1500GB  1500GB  ntfs         Basic data partition

4. 接著要把他 mount 起來。這邊看到的例子是 NTFS 的檔案系統。這裡有個地雷就是 mount -t ntfs 是沒用的!! 要用另外一個指令...

# mkdir -p /tmp/mnt
ntfs-3g /dev/sdb1 /tmp/mnt

5. 現在在 /tmp/mnt 下面已經可以看到這顆內接硬碟的資料囉,就把他往外接硬碟搬就可以了。一般來說 USB 外接硬碟在 DSM 下面是掛在 /volumeUSB* 

Reference

2013年10月9日 星期三

如何設計好的 API

從 gslin blog 看到的分享好文 「Parse Developer Day Video Series: How to Design Great APIs」。很原則性的大方向概述,但的確,這事好 API 的必要條件。

設計好 API 的動機:懶惰!

好的 API 可以讓你更懶惰

好的 API 的條件

直覺的

看到就知道怎麼用,不需要猜測

  1. 類似的東西就要有類似的結果。例如 length function 對於 string 和 array 應該有類似的結果。
  2. 平行化的結構。類似的命名要有相同的功能,例如 obj.saveInBackground(); vs. obj.deleteInBackground();
  3. 做髒髒的事。在命名上加上足夠的描述來呈現他的危險性、功能性等等。例如 $crashserverfrequency = true;

好文件的

一看就懂得文件,不要讓人去看 Source Code(?

  1. 簡單的問題應該簡單的被解釋。e.g. What does X do?
  2. Tutorial 應該要有趣不要無聊
  3. Quick start 應該要越快越好

Opinionated (自以為是的?)

建造統一哲學的 API,讓他看起來事一個人做的

  1. 風格相同。例如全部都是 REST
  2. 結果相同。例如輸出格式都是 JSON。這句話的意思是指輸出的 default 格式都是相同的,不代表不能選擇性的轉換格式。
  3. PHP String library 命名不統一被表xd..

2013年9月27日 星期五

[讀書心得] Google總部大揭密:Google如何思考?如何運作? 如何形塑你我的生活?

序言

今天是 Google 成立 15 年,剛好我也在前幾週看完了一本可以說是 Google 自傳的書本《Google總部大揭密:Google如何思考?如何運作? 如何形塑你我的生活?》。此書由現任 Wired 雜誌主編的 Steven Levy 所撰寫,不像一般是由外部觀察的文章,本書是由訪問大量 Google 現任與離職的員工與多次參加內部會議後撰寫而成,更能從內部看到 Google 本身的精神。(希望是真的 XD)
但總而言之,這是一本很適合睡前約讀的小品,即使他的段落有點長....

心得

草創

Google 創立與成長的過程其實並不特殊,一個很標準的 Start Up 的過程,在大學的研究計畫中獲得一個點子(如何利用網頁與網頁間的連結來評價網頁並進行搜尋,PageRank),一個嘗試 (利用學校的頻寬、電腦與就硬碟開始在校園中運行 Prototype),接下來看到流量,持續的精鍊(擴充機器、改進程式與演算法),找到資金成立公司或賣給大公司(當時第一大的搜尋引擎和 Yahoo! 接洽後都沒買)。
接著就是走著校園風格小辦公室(免費的食物),招募來自於頂尖學校且富有技巧的員工,持續改進演算法與爬蟲程式。書中提到 Google 的願景或說是創辦人的願景其實是期望能夠利用演算法(Algorithm),將全世界的資訊整合,讓任何人都可以輕易的找到與存取。然而作為一家接受別人投資的公司,也迫使著 Google 必須要想辦法獲利,而關鍵字廣告正是妥協,但也是 Google 成功的秘訣,小辦公室也因此變成大辦公室。前 CEO 施密特也受邀倒 Google 管理這個已經成為大公司,卻只又一群群工程師、hacker在運作的大學般的公司。
這故事跟 Facebook 的成長的故事相當類似,只差在一個是以搜尋引擎起家,一個是社群網路起家。社群網路的出現著實下了 Google 一跳,希望全部透過演算法建立一個人工智慧,提供使用者非人為提供的知識是 Google 的目標,但 Facebook 的出現讓 Google 發現莫非由使用者的親朋好友所提供的資訊卻才是有效的資料獲取方式? Google+ 是 Google 第一個不是為了公司願景所創造的產品,完全是為了追趕 Facebook。

2013年9月14日 星期六

[心得] 買了一台 13" Apple Macbook Air

好不容易拿到了畢業證書,決定要買個禮物考賞自己。為了要讓自己身邊有更多元的平台,就決定來買台搭載 OS X 的蘋果產品,畢竟用 VM 玩起來沒動畫實在沒 fu,最後就決定買了一台 13" Apple Macbook Air。

2013 09 12 09 53 16

先前有掀翻了初入門的書,所以大概還知道要怎麼操作,但也花了幾天來摸索要安裝什麼軟體以及各總和 Windows 筆電不一樣的操作方式。下面是我心得、遇到的問題 (希望有人可以跟我說怎麼解決 哈)以及我安裝的軟體。

心得&問題:

  • 2013 年的 Air,如果你考慮的是攜帶性、續航時間那在這個價位下他是前段班的選擇,如果有更多預算才能在高階的 Ultrabook 找到更好的選擇。
  • 多點觸控版:
    • 大概是最有趣的地方了,一隻手指頭到四隻手指頭都有不同的手勢可以使用。以前習慣使用觸控版右側來捲動捲軸,而在 mac 則要改用兩指滑動,但這個動作如果只用單手他就必須要整隻手離開鍵盤,這實在有點麻煩。後來我發現可以兩手用拇指一起滑,這樣也是可以捲動的啦。
    • 四指或三指上下滑動可以叫出 mission control 和 launchpad,不過鍵盤的 F3 和 F4 就可以做到了,所以好像沒有特別的優勢。
    • 右鍵需要雙指觸碰或點擊右下角,可惜 air 的觸控版有點硬,點擊要花的力氣手會酸 (還會有聲音),所以又再次使用兩隻拇指來解決xd。
    • 選擇文字是我遇到最大的困難,目前還沒找到解決方法,一定要點擊後才能選取,但如上面說的原因,會手酸。
  • 鍵盤:
    • 鍵盤配置少了 page up, page down, home 跟 end,前面兩個可以用 fn + 上下來達成,後面兩個我還在尋找他們 ||。
    • F1~F12 需要按住 fn 才能使用,最大的問題是在看網頁的時候每有 F5 可以按了 ….. well … 還有 command + R 可以用。
    • Ctrl + C/V 變成 command + C/V,這個配置我覺得距離有點近了,按起來有點彆扭,習慣中。
    • 按 delete 有時候會按到電源開關…
  • OS X
    • 我覺得這是一個相當適合單工的環境,把程式全螢幕顯示是我最愛用的功能。但當你把它最大化後,它會被放到一個新的桌面,我遇到的問題是當你把一個 app 獨立放在一個桌面而你又把它最大化,那這個最大化的app和你放其他東西的桌面間就會跑出一個空白的桌面…
    • 同一個程式的開多個視窗時還是只會有一個 icon 在 dock ,很容易就會找不到視窗,這也是頗困擾我的地方。
    • 注音輸入法我已經換成奇摩輸入法了,但是還是沒辦法只按 shift 就切換中英文輸入,選項到底在哪裡!!!
    • 其他~~還不錯用,繼續尋找它的小秘密和快捷鍵中...

軟體:

  • Chrome
  • Firefox
  • iTerm2
  • Sublime
  • MarsEdit
  • Mou
  • Evernote
  • Readkit
  • LINE
  • Welly
  • MplayerX
  • The Unarchiver
  • Dropbox
  • xcode

還有人要推薦好軟體嗎 :)?

2013年8月9日 星期五

WebConf 2013 筆記

最近好不容易碩士口試結束了,可以花點時間趕緊來追一下過去幾個禮拜...幾個月 lost 調的資訊。COSCUP 2013 的影片還沒出來,所以先來看一下 WebConf 的影片, 以下是 Day 1 我有看的 talk 的筆記:

WebConf 2013 筆記

Day 1

開發 web 的遠大前程

- Speaker: 李智樺 (Ruddy Lee)
  1. 要找到興趣很重要,不要為了達成特並目的去做
  2. Scrum 很重要, 但一個不能用
  3. 沒有 feedback, smaill iteration 就沒有敏捷開發
  4. 敏捷開發還是要寫文件 => test case, live docution
  5. 現在的 programmer 沒有人擁有自己的 code
  6. 開發團隊必須要有 一致的編程規範
  7. 時間管理很重要 番茄工作法
  8. Curation web, 兜兜哲學

node.js production site architecture

- Speaker: Ben (POP 作者)
  1. 監控 node app: Monit(Ubuntu 內建) and Forever(node 模組)
  2. Nginx 可以作為 reverse proxy 和 static file server. 在 production 環境下可以擋一台在前面增加 scalability
  3. 高擴展性架構 client -> load balancer -> * ( Nginx reverse proxy -> * node.js) -> * database cluster -> Membership, Payment -> CDN -> S3 (static files)
  4. 也可以用 Cloud Service: Heroku, Nodejitsu, mongoHQ
  5. 解除 limit
    sudo vi /etc/security/limits.conf
    #add the following 4 lines
    root soft nofile 51200
    root hard nofile 51200
    * soft nofile 51200
    * hard nofile 51200
    sudo vi /etc/pam.d/common-session
    #add
    session required pam_limits.so
    sudo vi /etc/profile
    #add
    ulimit -SHn 51200
  6. 我們在找人, 把 github 帳號丟給我們就好了 <- Github 非常重要

那些 Mockup 沒告訴你的事

- Spearker: Adam Wang (阿當)
  1. mockup 是一個模型: 任何一張 screenshot 都算是
  2. 彈性: i18n, 圖片的濫用
  3. 對齊: line-height, box-model, z-index
    text-overflow: ellipsis; /\*CSS3\*/
  4. 一致性: 配色與變數, 狀態
  5. 親和力: ARIA, tabIndex
    <a role="button" href="#">Panic</a>
  6. 漸進式改良: CSS3 box-shadow, text-shadow, border-radius, keyframe-anmation; placeholder, required
    http://youtu.be/hdTxeR90_
  7. 是介面不是圖: 防呆, pushState/PJAX
  8. 卷軸: 一目瞭然, Parallax scrolling
    stellar.js
  9. 效能: lazyload 10.跨裝置設計: Responsive Web Design
    不要用 :hover 來做提示了, 請加上 :active // 觸控螢幕沒有 hover

磚業也要專業 - 如何成為更好的 PHPer

- Speaker: 大澤木小鐵
此演講獎大量的 guideline,可以直接看投影片
  1. 微薪技嘉是台灣工程師的寫照
  2. debug 工具:
    xdebug.org
    FirePHP
  3. 統一的編成風格 http://www.php-fig.org/
  4. 套件管理 Composer

你們都誤解了,網路是很安全的!

- Speaker: 翁浩正 (Allen Own)
  1. live demo
  2. 無知: 管理者需要學習
    1. 最新資安弱點: expolit
    2. 最新駭客攻擊手法
    3. 新建置技術、新防禦技術
    4. 避免僥倖心態
  3. 無能: 管理者需要修練
    1. 伺服器不安全
      • 系統未更新、修補
      • 未做安全性設定
      • 未使用服務沒關閉
      • 開發環境未隔離: 備份檔, .svn, .sql
      • 管理後台未隔離
    2. 應用程式不安全
      • 使用別人撰寫的套件或框架
      • 自行撰寫不安全程式或設定
      • 網站錯誤訊息未隱藏: 資料庫欄位, 實體路徑
      • 老舊程式維護困難
    3. 管理不安全
      • 權限控管
      • 密碼安全性原則
      線上破解 hash cmd5.com
  4. 無恥: 管理者未盡責任
    1. 隱匿不報
    2. 推卸責任
    3. 湮滅證據
  5. 相關網站
    security focus
    大陸網站

無廢話 DRBD + Heartbeat 實戰

- Speaker: Weithenn
  1. DRBD: Distributed Replicated Block Device
    • 可以想做是跨網路的 RAID 1
  2. 高可用性的三種實現方式
    • DNS
    • IP: Heartbeat
    • MAC
  3. Failover: 壞了後有人救
  4. Failback: 回復後會自動回來 (但因為機器可能時好時壞, 這個動作手動比較好)
  5. DRBD + Heatbeat 是 host-level 的 HA, 不是 application-level 的保護, 所以單一 application 出問題不會切換的

Maintainable CSS with Sass and Compass

- Speaker: hlb (registrano, compass.app, fire.app)
  1. SASS + Compass
  2. SASS 可以直接算 HSL
  3. 可以自動切 Sprites, 也支援 Retina
    不擔心 IE 6, 7, 8 可以用 Icon Font / SVG
  4. 3.2 新增 placeholder 解決 extend 的問題
  5. (中略)
  6. 方法學
  7. CSS code guideline
  8. 自動化產生 style guide

2012 年網頁技術濃縮咖啡

- Speaker: 吳逸文 (Even Wu)
  1. 網頁設計是資訊流的整理, 可以任意折疊 (RWD)
  2. 應該要用 SCSS
    • Fire.app 很好用
  3. 顏色與形狀要注意
    • 調和顏色比重
    • 間隔, 突出
  4. Web 字體,用 Cloud font。
  5. Responsive Design
    • 圖: 先暫位
    • 文: 遺尿 (可以用 Macho.js)
  6. Hi-DPI 設計

Develop Tools in Modern Browsers

- Speaker: OOO
  1. alert 會讓程式停下來, console.log 會繼續執行, 所以 alert debug 還是很有用
  2. Firebug 算是第一個前端的開發工具
  3. live 介紹 chrome 開發者工具
  4. live 介紹 opera 開發者工具
  5. safari + ipad => remote debug
  6. Firebug Lite 獨立 browser 的工具

Media Query 123

- Speaker: 閃光洽 (Hina)
  1. CSS3 的新特性
  2. 針對不同裝置螢幕大小載入不同的 CSS
  3. @media 靠 @viewport 而不是瀏覽器本身
  4. 寬度需要依照裝置螢幕的密度來換算
  5. Content first: 在任何不同裝置上, 都能看到一樣的重點
  6. RWD = @media + @viewport
  7. @viewport 沒事不要亂改, 可以複製貼上
    <meta name="viewport" content="width=device-width">
    <meta name="viewport" content="width=device-width; initial-scale=1">
    <meta name="viewport" content="width=device-width; initial-scale=1; minimum-scale=1.0">

用原型驅動設計

- Speaker: 阿修 (Justin Lee/lis186)
  1. 專業分工: 研究 - 設計 - 前端 - 後端
  2. 環環相扣:
    • 使用者經驗設計師: 研究 + 設計
    • 使用者介面工程師: 設計 + 前端
    • 應用程式工程師: 前端 + 後端
  3. 打造原型
    • 紙面原型
    • 手工打造 HTML e.g. bootstrap
    • 工具打造 HTML e.g. FW
    • 影片
    • 互動 flash
    • 簡報
    • 可點擊 pdf
    • 線上工具
    • 立體模型
  4. Doule Diamond 設計流程: 點子 (Discover)-(Define) 願景 (Develop)-(Deliver) 成果
  5. 原型設計原則
    • 了解給誰看的
    • 設定要探索的範圍
    • 選擇適合的工具
    • 不一定要自己做, 用現成工具, 會意就好
    • 精細度足夠就好
    • 只做需要的部分
    • 早點開始做

網站效能調整-網站系統篇

-Speaker: TonyQ
  1. 效能簡單的定義: 更快的響應時間
  2. 效能調整的時間: 通常已經 production 了, 設計和實作階段只能假想效能問題, 但可能不是源頭
  3. 平民 style: 不用 cluster, load balance, data slicing
  4. 誰要來調整: team 內部的人, 外來專家不了解專案難以處理 (即使用 tools 也是)
  5. 4~5 萬 pageview/day 會碰到第一次門檻 (soft tune 即可), 10-20萬會碰到第二次門檻 (hardware 要強)
  6. 瓶頸產生: (1) 流量增加, (2) 新服務部屬, (3) 使用到外部 API
  7. 調整效能第一步: Profiling (在 tune 之前一定要做)
  8. Profiling 工具:
    • 開發者工具, 先了解時間耗損最多在哪
    • Database 的 slow query log
    • Google Analytics 找到 hot page, 找 downlaod time
    • 在 PHP 中插時間戳, 計算各部分所花的時間 (通常會符合 721 法則)
    • 在 JS 中插時間戳
  9. 一定要看數據說問題, 不要用猜的
  10. 有可能是 Framework 導致的, 例如 ORM 沒有用 lazy load
  11. 會有雪崩效應, 越來越多人按 F5
  12. table lock 要注意
  13. 方法:
    • Refine process
    • cache
    • index
    • 分離長時間的操作

2013年5月23日 星期四

神秘的 JavaScript 邏輯運算

JavaScript 邏輯運算子有個非常有趣的特性,最近遇到跟大家分享一下。(眾人: 連用個邏輯運算你都會有問題去跪算盤吧)

JS 的邏輯運算不會改變運算元的型別,而只是在運算時會將其視為 Boolean 來處理。因為這個特性,"最後" 運算完的值不一定是 Boolean。以下面的程式作為例子:

第一個 alert 中的 str || obj,因為 'hello' 轉換為 Boolean 時視為 true,由於 short path,就直接返回了,結果是 hello (WTF!)。

第二個 alert 中的 str && obj,由於 'hello' 是 true,因此要檢查 obj ,當然啦 obj 也是 true,雖然看起來很像是 false ... (參考 http://www.w3schools.com/js/js_obj_boolean.asp),因此返回後面的結果, object。

也就是說,其實寫在 if 裡面的結果是在最後又被轉換成 Boolean 才判斷的。

http://jsfiddle.net/welkineins/reJp9/


var str = 'hello';
var obj = {};
alert(str || obj);
alert(str && obj);

2013年4月6日 星期六

回頭看「10 倍速影像閱讀法」這本書

  回想國高中的時候我對速讀和影像閱讀還滿著迷的,能夠在一瞬間看完大量的文章資訊、背起大量的單字總是很令人嚮往。加上我那時功課不太好(汗),所以就更想要試試看有沒有效了。現在來看我必須說這些"技巧"和一些練習是有幫助的,雖然我跟隨特定的方法,但是就閱讀的速度上來說其實是真的有增加,或許真的是有讓我在學習時比較順利。

  到研究所的現在要看的資訊越來越多,Google 也越來越方便,我(不知道有沒有包含許多人)其實有一個很錯誤的習慣,我逐漸將頭腦當作一個大型的索引庫(Index),裡面放的只有關鍵字,而把內容就留在那成千上萬的網頁中,反正只要 Google 就可以找到,所以就慢慢演變成知道很多,但是也什麼都不知道的狀況(這可能是因為 RSS 用習慣造成的問題???)。清明連假回到台中在書架上看到這本「10 倍速影像閱讀法」,這是一本當時還滿紅的書,從Google 可以看到相當多的閱讀心得和評論,重新燃起我對這種方法的興趣,想著再來實踐一下這樣的方式,強末自己閱讀,能不能讓自己的頭腦成為知識庫而不是滿滿索引而已了。

博客來連結:10倍速影像閱讀法(新版)
(雖然我看的是舊版的)

永錫先生 2010 年在虎尾科大光電(所?)的講座,把基本方法都講得很完整,但是他把書中最懸的部分,但也是最強的部份抽掉了(XD) 因為他擔心這個說法沒人信... 文後附上 discovery 的說明,看大家相不相信了
 (共八集,請點擊轉跳觀看)



Discovery 讀心術專題報導: (共三集,請點擊轉跳觀看)