顯示具有 認真 標籤的文章。 顯示所有文章
顯示具有 認真 標籤的文章。 顯示所有文章

2008-11-12

從 SQLite 看 SQL (2) :: 隨隨便便的資料庫說明

現在的 RDBMS (關聯性資料庫系統) 多半是長這個樣子:

  • Database 1
  • Database 2
    • Table 1
      • Column 1
      • Column 2
      • Column 3
      • * Index 1
      • * Index 2
    • Table 2
也就是說,資料庫系統底下有好幾個資料庫 (Database),每個資料庫底下有好幾個表格 (Table)。每個表格可以包含有好幾個欄位 (Column),然後每個欄位各自要設定名稱,資料型態,能不能為空值,等等的屬性。資料則是以列為型態在存表格內,稱為資料錄 (Record Set) 或是資料列 (Data Row)。為了加速搜尋,可以將表格的某些欄位設為索引 (Index),那麼在對這些欄位檢索資料時,速度就可能可以加快 (特別是對複雜的查詢)。

有些 DBMS 要求使用者先行登入,並且包含某種型態的權限系統;有些 DBMS (例如 SQLite) 就沒有這樣的設計。另外,有些 DBMS 會設計各種內建函式或語法,使查詢的方式變得更多樣化 (如果能透過下 Query 解決的問題,就不要把資料收到 Script / APP 裡用程式自己算),效能也更高;有些 DBMS 則因某種原因,而不提供某些語法。所以在使用時還是要 K 相關使用手冊。

另外在設計資料庫架構的時候,常有許多考量。這點就自己去 K Google 或翻書吧 XD 比較熱門的大概有正規化,還有寫程式碼時要避免 SQL Injection 等等。

SQLite 具有一些相當有趣的特性,大致上包含:
  • 無需設定
    SQLite 本身是嵌入式資料庫系統,因此無需繁瑣的安裝或維護資料庫系統本身的程序。其它資料庫系統雖然運作得也不錯,但光安裝就可以搞死人了。
  • 非主從式架構
    對大部份資料庫系統來說,你必需要先把它們裝起來,然後透過網路 (即使是連到 localhost) 登入進行作業。使用 SQLite 時,只要能有在硬碟讀寫檔案的權限就夠了。雖然如此,這也使得若程式有蟲,可能會影響到資料庫的正確性 (因為沒有 Server 來管理維護);並且資料庫檔本身的安全性也較差 (少了 Server 的權限控管)。
  • 資料庫只有一個檔案,而且可以跨平台
    SQLite 的資料庫是直接存在檔案裡的,而且檔案可以攜至各種平台使用。這樣備份,搬檔都很方便。
  • 精簡
    SQLite 在編譯後僅佔極小的空間,所以使用它的程式不會變得太過肥大。
  • Manifest Typing
    大多數 DBMS 讓 Column 指定型別,然後只允許符合型別的資料被儲存;SQLite 則讓每個值擁有自己的型別,因此你可以把字串塞進型別為 int 的欄位中。有人覺得這是 bug,不過 SQLite 堅持這是一項 feature。如果能被轉型的話,SQLite 還是會把資料轉成設定的型態的。唯一的例外是當碰上表格的 Primary Key 時,SQLite 會強制將值轉為 int。
    因為有這項特性,我在寫 SQLite 時都不太設欄位型別了 XD
  • 可變長度的欄位
  • 高級原始碼 -- 保證可以由人類看懂
  • 將 SQL 編成虛擬機器碼
    SQLite 會將丟進去的 SQL 指令先編成虛擬機器碼,再真正的去執行搜尋。使用 EXPLAIN 指令將能看到這些碼,有助於除錯等等。
  • 程式碼完全屬於公領域
    SQLite 是完全自由,不受著作權法干預的。(甚至不是 GPL,或是 CC !) 任何人可以將 SQLite 應用在他想要的地方。 (不過著作人格權應該還是受到保障吧,我亂猜的)
  • 對 SQL 的擴充性
    SQLite 提供一些提升效率的工具,例如前面提到的 EXPLAIN 與 Manifest typing。此外 SQLite 還提供了一些標準之外的語法,如 REPLACE, ON CONFLICT, ATTACH, DETACH 等。SQLite 甚至還有 API 讓你可以在 SQL 裡安插自定函數及 Collating Sequences (我不清楚這是啥 @@ 等 K 到這邊再說)

從 SQLite 看 SQL (1) :: 起頭

最近因為某種原因 (不是上次的幫 SPORE 蓋房子了),又回來碰了一下資料庫。隨手翻了一下,發現 SQLite 的官網文件中,關於 SQL 指令的說明相當淺顯易懂,因此打算沒系統的亂翻一下,順便給自己當個備忘。當然,網路上關於 SQLite 的特性與推廣已經夠多了,不需要在這複製貼上 XD

這系列文章的翻譯沒有時間表,更沒有行程表 ! 嚴禁摧稿 (OS: 其實跟本沒人要看吧,哭哭~) 預定之後會分別對 SQL 裡的指令,藉由翻譯 SQLite 文件中的對應項目來做說明。暫定可能照 CREATE, ALTER & DROP, INSERT, DELETE, UPDATE, SELECT, function, TRANSACTION 這樣的順序亂講吧。至於 JOIN, Sub-Query, EXPLAIN, VIEW 就看我能不能在寫到那邊之前,把它們弄熟了 XD

除了 SQLite 的官網之外 (那個指令結構圖還挺好用的),還可以念 MySQL 文件長知識 (2549 頁的知識啊 ~~~),或者看這邊的文章先有點概念。SQL 的歷史及說明可以翻 Wikipedia

另外,由於 SQL 標準允許各資料庫系統在某些地方自由發揮,並且 SQLite 也未必遵守 SQL 的所有標準,不同的 SQL 版本標準也可能有異,因此這系列的文章必然無法涵蓋所有版本的資料庫系統。

WinXP 使用跨距磁碟區的小心得

這幾天因為氣場不順的關係,把手上的幾台電腦都弄到需要重灌 (kukuku~)
其中有台 P4 2.8G 裝的是 WinXP,就順手拿它來玩玩 Windows XP 內建的磁碟管理模式。
(主力桌機 AMD AthlonX2 5000+ 則是在 vista 之外,還裝了 Ubuntu, 目前使用 Kubuntu 8.10 搭配 KDE 4.1 桌面,有空再來聊這個 XD)

為了避免造成混淆,先將以下的幾個名詞加上定義。下列定義僅適用於本文,與業界或各軟體的說明不保證相同 ! (事實上,MS Windows 對於 "磁碟機" 和 "磁碟" 的用法恰好和我相反,哭哭 T_T)

  • 硬碟機 (HDD):實體的硬碟,或者是硬碟的實體
  • 磁區 (Partition) :是在磁碟機中,由如 fdisk 等軟體劃分出的區塊
  • 磁碟 (Drive):指的是由單一或數個區塊組成的邏輯單位,能夠直接被掛載 (Mount) 到一個磁碟代號 (MS),或者是掛載成為另一個磁碟機的某個目錄 (Un*x, 或使用 NTFS 的 MS)
一般情況下,硬碟機最多能分割出四個磁區,包含主要磁區 (Primary Partition) 或至多僅有一個的延伸磁區 (Extended Partition);每個延伸磁區可以再被割出數個邏輯磁區 (Logical Partition)。其中的主要與邏輯磁區,可以當作 Drive 被掛載。平常的 Drive 都只包含一個 Partition。

但在某些情況下,一個 Drive 會包含多個 Partition,例如 RAID 。簡略的說,RAID 就是把數個硬碟機或磁區,經由軟體或硬體的方式,變成一個 Drive 的技術。透過不同的設定,RAID 能夠提高資料的可靠性 (自動的備份與錯誤較正)、加大硬碟容量且資料讀取速度、將 RAID 整體或其中的部份硬碟機取下或更換 (熱插拔、抽換) 等等--這些特性未必同時存在。

Microsoft Windows 從 2000 之後 (含 Server 2003, 2008, 特定版本的 WinXP, Vista ),內建支援某些軟體 RAID 模式,其中使用的名詞大略意義如下:(註:微軟口中的磁碟,指的其實是我的磁碟機,反之亦然)
  • 簡單磁碟:單純的,古典的硬碟使用方式,能夠被轉換成動態磁碟,以支援其它格式
  • 動態磁碟:轉換過的簡單磁碟,支援下列各種特性。無法被轉回簡單磁碟 !
  • 跨距:Spanned Volume,應該算是 RAID 中 JBOD 的一種實作吧 XD (兩邊都有 RFC 或 IEEE 標準啦,不過我懶得看) 注意:RAID JBOD 裡只要有任何一顆磁碟損壞或被拔除,可能會搞爛整個 RAID 的資料;MS Windows 沒有提供任何從跨距磁碟中取出資料的工具程式。系統碟似乎無法建立成跨距磁區。
  • 鏡像:對磁區的 RAID1 (Mirror),因此若其中任一磁區損壞,資料仍然能夠讀取。
接著是要如何在 WinXP or Vista 上建立跨距或鏡像磁碟的步驟簡述:
  1. 電腦上安裝正確的作業系統。Windows XP Home 已知無法建立動態磁碟,Vista 的各版本我不確定 XD 另外,要確定至少有某顆磁碟有足夠且未分割的空間。若是要對某磁碟機 (而非磁區) 建立鏡像的話,可能會需要有兩顆同樣型號的硬碟機;如果要對某磁區建立鏡像的話,需要有大於或等於該磁區大小的未分割空間。
  2. 進入控制台 -> 系統管理 -> 電腦管理 -> 磁碟管理。
  3. 將牽連的所有磁碟機 (包含有未分割空間的那顆) 都轉換成動態磁碟 (右擊 "磁碟#" 的區塊就會有這個選項)。只有動態磁碟機上的磁區,才能夠成為鏡像或跨距磁區。如果轉換的磁碟機包含系統碟的話,需要重開機。
  4. 在要建立鏡像的磁碟機或磁區,或是要轉換成跨距的磁區上按右鍵,點選想要的選項
  5. Windows 會幫你帶出可能使用的磁碟,點選後便完成。
重點在於要有未分割的空間,並且使用的磁碟 (包含原本與要擴充的部份) 都先轉成動態磁碟。否則選項可是會灰給你看喔 XD

2008-09-06

KKBox on Mac 秘密流出版亂用感想

三個多月前,因為某些不很複雜的原因,我刷卡買了半年期的 KKBox,現今仍感到相當值得 XD 7xx 元拿去買專輯的話,了不起就是兩三張吧 :p

KKBox 好用歸好用,可是我平常出門帶的都是 MBA,醬就算有網路也聽不了音樂啦 T_T 若要帶 Dell 出門的話,主機變壓器滑鼠背包隨便算都是 5-10kg 起跳,對快要步入中年的大叔來說負擔也不算輕。這次恰好在 pttMac 版上看見 Izero 大大發佈測試版 KKBox on Mac 的消息,當然是寫信過去毛遂自薦一下了 XD 這邊是發表在 blog 上的版本。基本上目前 bug 還算有一些,選單的中文化也尚未完成,再加上我也沒有取得 Izero 大大的同意,所以想要檔案的人還是去找他要吧 XD  KKBox 可以在這邊註冊試用,喜歡的話再花錢購買^^; 


雖然台灣的 Mac 使用者數量一直是穩定、緩慢、微量的增加,不過 Izero 大大在 KKBox 裡推動對不同平台的支援,其心可鑑!反觀有些服務業的網站把自己綁死某些系統底下,連帶限制使用者只能用那些系統連入;這樣的服務品質真的應該要抓起來打屁股~~

然後這份軟體是測試版,有 Bug 在所難免,請不要寫信去跟 KKBox 說要延長 60 天的服務喔 XD

註:所有的選單和名詞都是我亂掰的,看不懂的人請升級幽默套件到 4.7 版。

主操作介面:

左邊是  Mac 的介面,然後右邊是 Win 版本的 XD 兩邊看起來其實差不太多,對轉換平台的使用者應該不會造成混淆。不過仔細看還是會發現一些差別 @@ Win 版本右下角可供切換的選項比較多,對我影響最大的功能,應該是歌詞動態顯示吧。Win 版本的 KKBox 可以在下面的播放區塊顯示歌詞,而 Mac 版本的不行。Mac 版本只能在主要播放視窗點選 "歌詞" 顯示,其它模式通通叫不出來 T_T 人家說風雨生信心,台北這兩天大風大雨的,我想應該下一版就會有了吧 XD


歌曲選單介面:

↑ Win 標準介面 ↑

↑ Mac 標準介面 ↑

↑ Mac 專輯檢視介面 ↑

↑ Mac CoverFlow 介面 ↑

Mac 無敵全螢幕 CoverFlow !!! 

Windows 版的 KKBox 只有一種檢視介面,Mac 有四種 XD 聽說只有 Leopard 以上才能用 CoverFlow 喔。休息的時候開全螢幕 CoverFlow 還挺有音樂播放機的樣子 :p


偏好選項:
現在的多媒體播放軟體好像都會去設定 IM 的即時狀態了 (抖),大家在看片子的時候千萬要小心喔 XD 我覺得 Win 版的偏好設定有些東西寫得太雜了,適當的播放品質和傳輸埠應該是軟體自己就可以測試出來的啊 :p


控制選單:
兩邊的選項差不多 (OS: 廢話嘛,難不成要寫什麼 "失去控制" 或 "左翼的彈幕太薄了 !!!" 這種東西嗎),不過我覺得 Mac 版用 CheckBox 做 Shuffle 選項比較直觀。在快速鍵方面,由於我平常離線聽音樂還是以用 Winamp 為主,所以還是比較習慣用 zxcvb 去控制 XD 


播放器介面大變身:


點下去以後變這樣:

上面是精省化過的 KKBox,底下則是被擠成蘋果汁的 iTunes。我只能說還是小蘋果的介面比較好看 XD 把播放器縮小的主要目的應該是想看到播放資訊,同時又能從事工作;如何壓縮所使用的桌面空間,並把需要的資訊呈現出來,其實是相當困難的課題。我沒寫過 Cocoa,不過如果能把上面標題列的空間縮減,按扭縮小擠到左邊,字型縮減,把播放時間放到視窗底下當作 progress bar,然後在主要區塊顯示歌名、歌手及歌詞的話,應該會相當實用 XD



這兩種 Windows 版本的迷你播放器介面都有歌詞可以看啊 T_T 



然後比較麻煩的是,mac 版的 KKBox 無論是 cpu 的使用量 (Win: 0-2% on T7500 2.2GHz / Mac: 10-12% on Pxxxx 1.6GHz),或是記憶體使用量,都比 Win 版本吃得更兇 T_T

目前我玩到的 Bug 有:
  1. Mac 版 KKBox 狂暴 seek progress bar 可以把播放器搞當 XD
  2. 把所有歌單 (除了刪不掉的 "全部歌曲" 以及 "我的最愛") 都刪掉,會把歌單資料庫弄爆炸
上述 KKBox 的版本是 Mac: 0.8.34 / Win: 3.2.0076 (0136),新版推出以後全都說不得準啦 XD

[ 延伸閱讀 ] :這邊老地方冰果室對 KKBox on Mac 的看法

2008-07-04

棒球規則:好球之判定

依照棒球規則 2.72,好球之定義如下:

2.72 好球 (Strike):投手依照下列情況之一的正規投球得被宣告「好球」
(A) 擊球員擊球落空 (包含觸擊) 時。
(B) 擊球員未揮棒擊球,但該投球之任何部分在飛翔狀態中通過了好球帶之任何部分者。
(C) 無好球或一好球時,擊球員擊成界外球者。
(D) 觸擊成界外球者。
(E) 擊球員擊球落空 (包括觸擊),球觸及擊球員之身體或衣服者。
(F) 未曾落地的投球,於好球帶內觸及擊球員身體及衣服者。
(G) 擊成擦棒被捕球者。
整理上述狀況擊及其他規則條文如下:
  1. 當打者未對擊出球揮棒或觸擊,且該投球通過好球帶時,判為好球。
  2. 當打者對擊出球揮棒或觸擊,但未擊中該投球時,判為好球。即使打者被該投出球擊中身體或球衣。
  3. 當打者或盜本壘之三壘跑者在好球帶內觸及投出球,或裁判認定該投出球若未接觸攻方球員將通過好球帶時,判為好球。
  4. 擦棒被捕球應判定為好球。依規則 2.34,只有當擦棒球最初接觸於捕手之手或手套,之後在落地前確實接補,才判為擦棒被捕球;否則應視為界外球。
  5. 當打者觸擊球成界外球時,判定為好球。
  6. 無好球或一好球時,打者揮棒擊成界外球則判定為好球。
  7. 擊出球觸及剛揮完棒但仍在打擊區內的打者或所執球棒時,判定為界外球。
  8. 規則 6.02 (B) (C) (D) 打者在投手觸投手板後,且未經裁判宣告暫停時,離開打擊區或拒絕進入打擊區,得判定投手之任何投球為好球,或在投手未投球的情況下直接宣告好球。
關於界內球與界外球的判定,則有以下原則:
  1. 若球最初落點在一二壘或一三壘連線之後方,以球之落點為準。若球落於界內區包含邊線,則為界內球,否則為界外球。若球在飛翔狀態下飛出全壘打牆 (球場),則已通過時所在之位置決定。當球場有設置標竿時,標竿視為邊線 (界內區) 之延伸,因此擊中標竿之擊球均判為全壘打 (界內球)。即使球最初落於外野界內區,之後因球之旋轉而反彈回內野區,並滾至界外區,仍判定為界內球 (中職判例)。
  2. 若球最初落點在一二壘或一三壘連線之前方,則以球通過該連線、停止、或受到干擾之位置為準。當球觸碰場內建物 (壘包,本壘板或投手板除外) 、雙方球員、裁判、或地面物體 (鳥、狗、觀眾、球童等) 時,視為受到干擾。須注意當球受到其中某些干擾時,可能成立各種妨礙或死球狀態。
  3. 若球擊中投手板後,反彈自內野之界外線進入界外區,則為界外球;若球擊中任何壘包,而反彈自內野之界外線進入界外區,依規則 2.25 (C) 仍為界內球。

棒球規則:壞球之判定

棒球規則中,對於壞球的判定相當簡單。依照規則 2.04,壞球之定義為 "投手正規投球未直接通過好球帶且擊球員並未揮棒者"。規則中的相關狀況如下:

  1. 投手正規投球未通過好球帶,且打者未揮棒
    參考 2.04 原註,若球先落地才反彈通過好球帶,且打者未揮棒,則為壞球。若打者在兩好球的情況下對該投球揮棒落空,即使補手接住該球,仍不得視為確實接補,因此成立不死三振 (前題為出局數與壘上跑者合於規則)。

  2. 投手在壘上無跑者時,故意拖延比賽或違規投球。
    依照規則 8.04,在壘上無跑者時,投手應在接到球後 12 秒向打者投球,否則判定壞球。依照規則 8.02 (D),當壘上無跑壘員,但投手違規投球時,計為壞球。規則 2.38 則定義 "違規投球" 包含 "投手未踏投手板投球" 與 "突襲投球 (Quick-return pitch)" 兩種情況;這兩種狀況依照規則 8.05,在壘上有跑者時均為投手犯規 (Balk),罰則為跑壘員各進一壘,打者不計球數。

    規則 8.048.05 (H) 都與投手拖延比賽有關,但 8.04 專指壘上無跑者之情況,罰則為壞球一顆;8.05 (H) 則是當壘上有跑者時,投手無故拖延比賽,罰則比照投手犯規。投手未踏投手板投球定義於 8.o5 (G),而突襲投球定義於 8.05 (E)。從另一方面解讀,可視為某些 "投手犯規" 因有欺騙打者之虞,因此在壘上無跑壘員時仍裁定為壞球加以處罰。這些情況包含 8.05(G) "投手未踏投手板投球" 、8.05(E) "突襲投球"、與 8.04 或 8.05 (H) "投手拖延比賽"。應特別注意的是 8.04 與 8.05 (H) 認定條件不同,有跑壘員時不存在 12 秒之限制。

    當壘上有跑者時,投手犯規為死球,因此跑者不得進壘;但上述情況為比賽進行中,若打者擊出該投球,則攻方可在該行為 (Play) 終了後選擇其結果,與妨礙行為類似。

  3. 投手投出之球在好球帶外觸及打者,但打者故意不閃避,則依規則 6.08 (B) 判定為壞球,而非觸身球。

  4. 投手在壘上無跑者時,在投球動作中球從手中滑落,且球滾出界外線時。
    若投手在壘上有跑者時,觸投手板後故意或無意落球,應判定為投手犯規。
    若投手在壘上無跑者時,觸投手板後故意或無意落球,但該球未滾出界外線,則不視為投球,亦不計球數 (No-Pitch)。
    由於投手動作均由 "投手以軸足觸投手板" 開始,且在投球動作中軸足均不離開投手板,因此 "投球動作中" 與 "觸投手板後" 其實是等效的。"投球動作" 自投手踏投手板開始,至球離開投球之手為止。
當打者之球數為四壞球時,打者有權進至一壘,稱為四壞球保送 (Base on Balls)。

2008-06-28

棒球規則:不死三振,內野守備員故意漏球,與內野高飛必死球

雖然棒球是種以比較雙方得分多寡決定勝負的遊戲,不過比賽進行的 "橫軸" 其實是出局數。在一場九局的比賽中,一隻球隊最多就是拿到 27 個出局數;而裁定球員出局,也就成了棒球規則中相當嚴厲的處份,僅次於褫奪比賽而已 (驅逐出場視情況,也可能對球隊不造成傷害)。

然而在棒球規則中,有數種 Play 會在 "攻擊方沒有犯錯" 時,裁定攻方球員出局。這些情況是為了避免守方在這些特定場合,藉由選擇某些行動,使攻方 "必然的" 發生雙殺。這樣的場合包含 "內野高飛必死球"、"內野守備故意落球",以及 "不死三振之成立條件" 三項。先從簡單的講起好了。

  • 不死三振之成立條件
    在某些狀況下,當補手無法接補 (定義見規則 2.15,並參考 2.34) 第三好球時,裁判應宣判好球,但不得判擊球員出局,亦不得提醒擊球員未出局。此時擊球員依規則 6.09(B) 成為跑壘員,並具有進壘義務;此時若一壘有跑者,則該跑者亦連帶具進壘義務。若使攻方由原本應三振的情況,藉由補手選擇 "不確實接補該球" 而造成雙殺,是不公平的。因此在可能發生這種雙殺的狀況時,不死三振不成立,擊球員在 "裁定第三好球" 的瞬間出局。

    為了方便記憶,原則如下 "未滿兩人出局且攻擊方一壘有跑者時,則無不死三振"。規則並沒有明確的敘述上句,而是以 6.05(B)(C) 兩條描述打者會出局的情況來定義。

    無論是否發生不死三振,場上仍為比賽進行中。另外若投手投出之球離開球場成立死球狀態時,以球出手之瞬間作為各跑壘員所佔有之壘。

  • 內野守備員故意落球
    依照規則 6.05(L) 的敘述 "無出局或一出局,跑壘員佔一壘,一、二壘,一、三壘或滿壘時,內野手故意掉落「界內飛球」(包括平飛球)時,形成比賽停止,各跑壘員應返回原壘"。本判定成立的時機與不死三振完全相同,就是為了避免守備方故意漏接該球後,使一壘跑壘員具有進壘義務,再加以雙殺。一壘跑者這時會顧慮 "若該球被接補,則有再觸壘義務" 而離壘包不遠,因此容易造成雙殺。

    這條比較需要注意的是「故意掉落」的認定,僅成立於對「易於接補」的界內飛球,先以「手套或手」觸球,之後再使球掉落於地的狀況。因此若守備球員飛身撲球,但球彈或滾出手套時,將難以符合此項認定。若守備方能以手或手套之外的部位觸球,使球落地再行撿起傳球的話,也不會被認定為故意落球。若守備員掉落的是界外飛球,則因擊跑員與各跑者實無進壘義務,故無守備方造成雙殺之疑慮,自然不必判打者出局。

    這個 play 應立刻判定死球,打者出局,並使各跑者回投手投球時已佔有之壘。

  • 內野高飛必死球
    依照規則 2.406.05(E),在滿足某些條件時,當打者擊出內野高飛球後,裁判應立刻做出手勢。雖此時不必要 (我覺得也不應該,原因後述) 立刻宣判擊跑員出局,但因當該球確定為界內球之瞬間,擊跑員隨即出局,而若該球為界外球則跑壘員無進壘義務,因此可視同已免除了各跑者之進壘義務。當跑者沒有進壘義務時,就可以停留在已佔有之壘包上,免於受雙殺的恐懼。

    然而內野高飛必死球性質與前種情況有異:擊跑員實有充足時間移動至一壘壘包,因此即使守備方球員故意不接球 (故意落球則應依前項判定),也殺不到擊跑員。因此內野高飛球之認定條件需要至少有兩個具進壘義務之跑者,可簡記為 "未滿兩人出局且攻擊方一二壘有跑者時,有內野高飛必死球之判定"

    內野高飛必死球為比賽進行中,並且非促請裁決狀況,因此裁判應主動提示。又因內野高飛球之先決要件必滿足野手故意落球之要件,因此若野手觸及界內擊球的內野高飛必死球而故意落球時,應依 6.05(L) 判定為死球狀態。

    內野高飛球之成立與否,與球實際落點無關,只需裁判認定該擊球可由就正常守備位置之內野手輕易接補即可。因此無論該球實際落於外野草地區,或由外野手向前接補,均不影響該判定。

    另外,內野高飛必死球之判定只對界內飛球有效,因此擊跑員應在該擊出球確定成為界內球時,才可宣判出局。當飛球在邊線附近時,裁判常宣告 "Infield flyball if fair",提示若該球成為界外球,則內野高飛必死球之判定不成立。以下是幾種可能的狀況:
    • 宣判為內野高飛球,由野手在界內接殺:打者出局,野手記接殺
    • 宣判為內野高飛球,落於界內,滾出至界外前接觸野手:確定為界內球,故打者出局
    • 宣判為內野高飛球,在界內觸及野手但落球:打者因高飛必死球出局,又因故意落球成為死球
    • 宣判為內野高飛球,落於界內,滾出至界外停止:界外球,打者繼續打擊
    • 宣判為內野高飛球,落於界外,於界外接觸裁判,觀眾,守方球員或球場建物:確定為界外球,打者繼續打擊
    • 宣判為內野高飛球,落於界外,但因球的旋轉滾入界內停止、觸及建物或守備員:打者出局

2008-06-25

棒球規則:當兩投碰上兩打,從規則看起



(以上兩段影片原出處不明,但我是從這個網頁看到的)

網路上早就有篇歷史故事,提到很久以前有位 Switch-pitcher 碰到 Switch-hitter 的事。不過這樣的場面再度在現實中發生了。6/20 洋基的小聯盟球隊 Staten Island 碰上大都會的 Brookylin 時,恰好 Staten Island 的投手 Pat Vanditte 與 Brooklyn 的打者 Ralph Henriquez 兩個人分別能從兩邊投球/打擊。一場換邊的鬧劇就這麼搞了 8 分鐘。

在這樣的情況下,我認為投手有權要打者先決定站在哪一邊的擊球區打擊,即使規則並未如此明示。理由如下:

  1. 規則 6.06(B) 指出當投手在踏版接受補手之暗號時,打者不得由一邊擊球區移至另外一邊,否則判出局。當投手採用揮臂式投球動作時,雙腳同時踩在投手版上是被允許的,而在雙手合抱前,將手套由一隻手移至另一隻手也是被允許的。因此投手有權在採揮臂式投球動作時,在接受補手暗號之後,再決定要用哪一隻手丟球,並將自由足向後跨一步以開始投球動作。
  2. 擊球員在踏入打擊區,待投手開始固定式或揮臂式投球動作後,除非要求暫停獲準,否則不得退出打擊區。若投手採固定式投球動作,可視需要退版解開投球動作;若投手採揮臂式投球動作,在雙手合抱之前仍可退版。
  3. 投手無必要拖延比賽時,壘上若有跑壘員得判為投手犯規 (8.05(H)),若無跑壘員則在接到回傳球後 12 秒未投球,則可判定壞球。打者若不進入打擊區擊球,則可在投手未投球的情況下,直接宣判好球。因此在拖延比賽上,雙方的規範差不多,因此在相同行為的情況下,這點要打成平手。
由於棒球規則對於打者在同一打席內換邊打擊的規範比投手換手投球多,因此我認為在這種情況下,打者應先決定要進入哪一邊的擊球區擊球。這當然符合規則 9.01 (C) 的但書。

棒球規則:第三出局的得分究竟算不算 ?

依照棒球規則 4.09 (A) 附註,當第三出局為下列情況者,雖然跑壘員在該出局成立之行為中進入本壘仍不得記錄得分。

  1. 擊跑員觸一壘前出局時。(參考 6.056.06)
  2. 跑壘員成為封殺出局時。(參考 7.08 (E))
  3. 前位跑壘員未觸壘而被判出局時。(參考 7.10(A)(B)7.12)

因此在正常狀況下 (無促請裁決或妨礙行為),只要第三出局是封殺狀況 (Force-play),無論實際是被觸殺 (以持球之手或手套觸於身體) 或封殺(持球之野手以身體接觸跑者被迫進佔之壘包) ,該 play 之所有得分不算。
當因促請裁決或妨礙行為造成第三出局時,若第三出局符合上述規則之第 1,3 點,則此 play 亦不記錄得分。

例: 兩出局三壘有跑者,打者擊出安打進至二壘,但漏踩一壘。經守備方促請裁決後,擊跑員成為第三出局者。又因屬擊跑員觸一壘前出局,因此得分不算。
兩出局滿壘,打者擊出飛出全壘打牆之全壘打,但二壘跑者漏踩三壘壘包,經守方促請裁決後成為第三出局。即使所有跑者及擊跑員均踩本壘,僅有原三壘跑者得分被記錄。


但若第三出局是對有進壘義務的球員促請裁決出局,得分究竟算或不算我就不清楚啦。

例: 二出局一三壘有人,打者擊出右外野深遠安打,跑者均奔回本壘,但一壘跑者漏踩二壘壘包,這樣的 play 我不確定是否能夠比照封殺,三壘跑者得分不算。我的猜測是如此,有空再找 A 級裁判前輩確認吧 XD

2008-06-23

棒球規則:當擊出球擊中裁判 ....

單純是把參加 C 級裁判講習所討論到的 case,稍微整理查證後發表於此。如果以後有時間的話,這個系列可能會每一兩週就出一篇。

擊出球擊中裁判依棒球規則 2.44(C) ,可能構成裁判之妨礙,為比賽停止球。因此要先確認擊出球的狀態 (界內 or 界外),以及裁判被球擊中的位置是否在守備方野手之前。若裁判妨礙成立 (界內球,在球通過野手前擊中界內區的裁判),則比賽停止,並依照規則 5.09(F) 擊跑員上一壘,其它跑壘員不動。但若發生擠壘,則被擠的跑壘員得向前一個壘包。

其它類似狀況的處理方式為:

  • 界外球擊中裁判:無論是在界內區或界外區擊中,都算是比賽進行中。
  • 界內球擊中界外區的裁判:比賽進行中。
  • 擊出球先接觸 (或通過) 野手後,再擊中裁判:比賽進行中。
  • 投球或傳球擊中裁判:比賽進行中
  • 傳球擊中壘指導員:非故意則為比賽進行中,故意則判跑壘員出局。
最容易被擊中的裁判是二壘審,在一般狀況下,也只有他會站在界內區。

5.09(F) 不應被解讀為 "所有跑壘員均向前一個壘包"。擊跑員能保送上一個壘,這項亦書於規則 6.08(D);但在關於 "全部跑壘員向前進壘" 的規則 7.05 中,並不包含裁判或跑壘員妨礙守備的項目,由此可知跑壘員無權進壘。

2008-06-19

除了吃掉 KKBox 的 DRM 以外....


前陣子為了想找某首歌,刷卡買了半年的 KKBox。我原本都是以購買實體 CD 為主,但前陣子要找首有點歷史的歌,才開始去查線上音樂服務。當時我沒查 iTunes Store,然後 Amazon 說他們家的音樂不賣國外,所以就沒買成。後來發現 KKBox 其實也有不少外文歌,所以就刷卡買了。雖然網路上也有換 email address 連續試用的技倆,不過既然他們價格合理 (7xx NTD / 半年),該賺的還是要給人賺 XD
KKBox 與 ezPeer 兩套線上音樂服務都提供音樂下載離線播放,但因檔案有 DRM 保護,所以無法複製至其它電腦或媒體播放器 (如 mp3 player),或以 WMPlayer 之外的軟體播放。為了能讓我家 T.sonic 840 能播這些音樂,我在 google 上爬到一些能夠破解 DRM 的軟體。我不太想自己 host 這些東西 (我沒種),不過聽說其中有套軟體用 "convert.exe" 當作關鍵字就能查到。
這套軟體的功能相當精簡,能在一秒內解除 wma 檔案的 DRM 限制,不過它是 console 程式,對檔名的判斷會有些小問題 (許功蓋),並且一次只能接受一個 input。寫 shell script / bat 檔案一次轉完整個目錄的檔案,是種合理的解決方式,不過用起來總讓人感到相當 geek。所以我花了一個下午用 VS.Net 2005 寫了一隻 wrapper 出來 (太久沒碰了,不然應該 1-2hr 就能搞定),能將檔案表列處理,並處理檔名問題。目前只能由 OpenFileDialog 讀檔,無法接受拖放輸入,不過其它功能都寫得差不多了 XD
由於本人做事一向低調,這軟體我也沒打算公開 (應實驗室學弟要求寫的)。不過要是有和我夠熟的人,恰好有買 ezPeer 或 KKBox 帳號又想用 mp3 player 播放音樂的話,我也不會介意有人使用這隻小程式。不夠熟的人 (例如從 google 搜尋 "KKBox DRM 破解" 爬到這篇的路人) 就不用試啦,前面的資訊絕對足夠你們找到破解程式的。

2008-06-18

Firefox 3 上了

Firefox 3 火熱上映
Firefox 是一個開放原碼的瀏覽器,在許多平台上都有包好的檔案,安裝執行相當方便。它可以加入多種擴充功能,包含 extension, plug-in 與 themes,自由度相當高。我的電腦上雖然安裝有 IE 7.0, Opera, Safari 與 Firefox 2 四種瀏覽器,不過平常我都是使用 Firefox。

透過 Google Browser Sync 可以同步所有電腦的書籤。雖然它有時候會秀抖,把整個書籤弄亂 XD 不過拿本地備份再蓋回去就好。另一個方法是改用 Foxmark
PCMan 寫的 IE Tab 能夠將Firefox 裡的某個 tab 改以 IE 核心顯示,這在碰到某些不怎麼合標準,或者是使用邪惡的 ActiveX 技術時很好用。Mac 就拿它沒輒囉。
LittleFox 是一套將按鈕縮小的 theme,把螢幕空間盡可能的留給網頁呈現。
AdBlock Plus 是套強大的廣告清除套件,不過有些時候我還是會把它關閉,廣告可是大多網站生存的命脈啊 XD
其它我常用的 plug-in 還有 Download Statusbar, DOM Inspector, Web Developer, Google Toolbar, Tab Mix Plus 等等等 XD 如果想玩酷炫特效的話,Cooliris PreviewPicLens 更是非裝不可!

雖然說 FF 2.0 功能及擴充性都相當強大,不過它在執行 javascript 的時候,速度並不是太讓人喜愛,特別是在執行一些 Google 應用的時候。FF 3.0 則改用了 Gecko 1.9 核心,據說 js 執行速度更上一層 (不過我沒抓 Beta 下來玩 :p)。網路上有人說 FF 3.0 (Gecko 1.9) 執行 js 速度略慢於 Opera 9.5,而 CSS 載入速度略快,不過相關評測還是等 FF 3.0 正式發布/使用者多了以後再看吧。

Firefox 3.0 企圖突破 "發佈日最多下載" 的世界記錄,因此在 6/17 日正式發布起 24 小時內 (台灣時間為 6/18 1:00am - 6/19 1:00am) 請有興趣的玩家盡量衝量囉 XD 目前已經可以從官網下載了,不過可能是因為網路流量或磁碟 I/O 的關係,需要 Refresh 幾次 :p

** 附註: 目前有些附加元件未能使用於 FF 3.0 上,至少包含 Tab Mix Plus 與 Google Browser Sync。官網的流量似乎也被 FF 3.0 下載塞爆,無法連入下載附加元件的網頁。看來要等下載日結束後才有空慢慢整理囉 ^^;;;

2008-06-16

授權


上次去找 Atticus 的時候,其實順道聊了些關於圖文授權的東西。

我之前一直認為,在傳統媒體的框架底下,所謂的 "群眾" 與 "文字生產者" 其實是站在兩個對立的立場。文字生產者從某些方面得到收入,因此他們有義務管好自己生出來的字,拍自己要用的圖,拆自己想寫的機器,並使用自己評測的產品。

不過在這個好像是 Web 2.0 的時代中,每個使用者都可能會變成資訊提供者,並且也可能透過他所提供的資訊獲利,無論是透過單純的 page view、廣告收入、或是透過所建立的名聲而獲利。在這樣的前提下,限制內容只能做非商業性的引用,似乎變成有些太仇視商業界了。

當然,我還是覺得所有媒體都有義務要維持自己的品質,特別是有在收錢的那些 (使用者付費,或包含廣告都算)。所以中國時報的吳清和事件,會永遠存在我的記憶中。但若是這邊的某些資訊,能夠使任何媒體的內容往好的方向邁進,那麼被引用也不算是什麼大不了的事 (特別是跟本沒人會想引用吧XD)。

總之即日起,本 blog 的所有內容,包含文字、圖像、聲音等,除非特別聲明,否則均改以 CC BY-SA 方式分享。詳細內容請見右邊 "授權方式"。授權條款變更亦適用於過去發表於 Blogger、Roodo、Spaces、Pixnet、Xuite、BBS 等媒體的文章。

2008-05-22

棒球記錄法:記錄圖紙概說

記錄紙大略是長這個樣子:


記錄時主隊及客隊各會用一張記錄紙,不過兩張標題列有所不同。一張會是比賽資訊(球隊名、比賽場地、天氣、記錄人等等),另一張則是分數盒子(Box Score)。

比賽前可以先把標題列填好,之後對照打序單(Batting Order Sheet)填入各棒打者的背號及守位(球員身份),以及雙方投補的背號(投補統計區)。

比賽中所發生的大部份事情都是記錄在中間那區,但更換投補或球員應在統計區或球員身份加註。進攻及守備的相關統計可以在比賽間抽空以正字劃記計算,也可以等到換場或賽後處理。我是習慣進攻時直接加註進攻部份的成績(不必翻面),並在換場時將上半局的球員失誤、暴投、補逸、投手犯規、以及投手之三振四壞統計,再將記錄紙翻面記錄。

每局均應由新行開始記錄,並在記錄區最上一列標上局數。

記錄時的重點其實只在於中間的小格子,請見下圖:



左邊那個小方格是用來記球數的,好球畫圈,壞球畫橫線,界外球打三角型,揮棒落空則是圈圈加一槓,有點像Θ。若要標示界外球的方向,可以在三角型的左邊或右邊加畫一條直線。擦棒被補球記為好球,擊球入場中或界外被接殺則畫為一小點。

右邊則可以區分為四個區域,分別是中央(記錄打者最後結果),外圈(紅線,打者打擊結果),內圈(成為跑者後的進壘),以及文字記錄(都寫在外圈或內圈的外側)。

中央:
所有上場的打者,要不就出局,要不就回本壘得分,要不就三人出局成為殘壘。因此每位打者在換場時,中央區域一定都會標明符號。出局的球員,依照他是第幾個出局數,在中央標上 I、II或III。三人出局時,所有未得分的跑壘員都標記為殘壘,在中央區寫上L(一般是書寫體小寫,反正自己看得懂就好 XD)。該球員若回本壘得分,則在中央畫空心圈。若該得分確定為投手自責分,則將圈圈內部塗實。

內外圈:
下方代表本壘,右邊一壘,上方二壘,左邊三壘。若打者擊出二壘安打,代表他在打席中由本壘進至二壘,因此應在外圈將下方右方,以及右方上方連線,如圖例中之紅線。若該跑者之後又因各種理由,從二壘前進至三壘,則在內圈將上方及左方連線,
如圖例中之藍線。若跑者擊出一壘安打,又趁傳上到二壘,則應將外圈下方及右方,與內圈右方與上方連線。

文字說明:
文字說明一般寫在該 play 最後面的格子。以上圖紅線為例,說明應寫在右上角(一二壘之間)。若打者擊出安打,一般不加註安打壘打數,看外圈畫到哪邊就可以知道。這邊常用的縮寫如下:

  • BB:四壞保送
  • K :三振,外圈不連線,將K記於右下角,並在中央記出局數
  • 倒K:左右相反的K,表不死三振。若打者仍在一壘前被封殺或刺殺仍應記為三振K,但加註出局方式
  • HP:觸身
  • BK:投手犯規
  • WP:暴投
  • PB:補逸
  • S:盜壘(我會以括號加註盜壘時的打者背號)
  • CS:盜壘刺(應加註牽制傳球路徑及出局方式,以及當時打者背號)
  • IH:妨礙打擊
  • ID:妨礙守備
  • IR:妨礙跑壘
  • LS:過早離壘申訴(Appeal)出局
  • 若跑者利用打者打擊機會進壘,我會把傳球路徑記在打者那邊,跑者的格子只記打者背號。
  • 趁傳進壘會把造成進壘的傳球路徑用括號括住,當成進壘原因。
傳球路徑說明:
第一個數字表示第一個處理球的球員,並可在上方加註橫線表示平飛球,曲線 (類似 ^) 表高飛球,下方的曲線表滾地球。若球是在接觸球員後轉向,該球員並未接補擊出球的話,可以在該球員與處理球的球員間打一個點,並將球高低的符號畫在這兩位球員身上。舉例來說,1.6-3 表示滾地球擊中投手後,被遊擊手接住傳一壘。至於擊跑員是否在這個 play 中出局,則視外圈有無畫線而定。
若在 play 中發生失誤,則在失誤的球員後加註 ' 。舉例來說,若投手漏接軟弱滾地球,一般會記作 1'。即使之後遊擊手接補該球並傳至一壘,但若未因此造成擊跑員出局或其它跑者進壘的話,在記錄上是毫無意義的。
在跑者(內圈)連續進壘時,只需在最後到達壘包處加註。在之前的格子則會畫上箭號,指向下個壘包。

另外,每局結束時會在最後一位擊球員的右下角畫上兩條右上-左下的斜線。更換投手時,在該位擊球員的上方畫波浪線;換代打時,在該擊球員的左側畫波浪線,並應加註代打球員之背號。

棒球記錄法:引言

最近比較熱衷打球及練球,再加上球隊這次籤運不錯,所以又開始記錄其它各隊的比賽,作為未來對陣時的參考。不過我後來發現大部份隊友看不懂記錄,當然也不會自己記 T_T 因此我決定在這邊寫一系列關於記錄的文章,一方面給學弟當參考,另一方面也為作為網路上關於繁中記錄的一點補充。

棒球記錄有許多種不同的方式,並且記錄的方式也會隨需要的詳細程度而有差異。簡單的像是 MLB 官網只記錄打席結果,這種記錄法只要看他們網站說明大概就能理解。使用記錄紙記錄可以逐球記錄包含球員進壘,守備員失誤,或是投補的暴投與補逸等等。若想記錄每顆球的球種及位置,棒球記錄軟體是比較合理的選擇。

棒協出過兩本關於棒球記錄的書,不過我都沒看過 XD 兩本都是在 89 年初版印行,因此現在想買可能會有一點難度。然後棒協上的棒球規則從 2006 年之後就消失了的樣子,順道酸一下 XD

在開始記錄之前,有些事情是需要先熟記的。記錄員應該要清楚棒球規則,特別是第二章(用語定義)與第十章(記錄規則)。第十章所述主要是關於各種項目,如三振、四壞、安打之壘打數、失誤、自責分、打點,之判定依據。除此之外,各守位的代號也應熟記。

1 - 投手 - Pitcher - P
2 - 補手 - Catcher - C
3 - 一壘手 - First Baseman - 1B
4 - 二壘手 - Second Baseman - 2B
5 - 三壘手 - Third Baseman - 3B
6 - 遊擊手 - Shortstop - SS
7 - 左外野手 - Left Fielder - LF
8 - 中外野手 - Center Fielder - CF
9 - 右外野手 - Right Fielder - RF

棒球記錄法有千百種,我目前使用的方式是之前向某位物理系棒的陳董請教,再加上網路上見到的記錄方式總合而成。我會的記錄法也就這麼一種,因此就別叫我做各種方式的比較囉 :p

2008-05-11

MacBook Air 過熱及處理 - 綜合包

本文章於 2008/05/13 更新。

擁有這台 MacBook Air 到現在也差不多一個月了。雖然一度因過熱影響穩定性,不過在重塗散熱膏之後有了顯著的改善。之前的相關文章多半是邊做邊寫的,雖然較具有時效性,但每一篇的內容多半都只局限於一個點上(一次只做一件事嘛)。這次我想把之前作過的事情,可行的參考資料稍作整理,也作為這個系列的總結。

MacBook Air 自發表以來,就傳出因過熱造成系統停頓或當機的問題。蘋果雖然提供了 SMC Update(可從蘋果官網下載,或由“軟體更新”自動處理),不過這似乎只會將風扇轉速拉稍微拉高,但對系統溫度(主要是 cpu )的降低幫助有限。有傳言 MBA 一般在 cpu 溫度超過 73 度時開始熱當,不過這點我不太確定。

除了執行大量運算的程式之外,有些軟體被發現特別容易造成熱當,例如 Parallels DesktopPD 是一套與 VMwareVirtual PC 功能類似的程式,能在 Mac 的主機上建立以 WindowsXP, vista, FreeBSD 或 Linux 等作業系統運行的虛擬機器。為了解決這個問題,PD 建議 MacBook Air 使用者執行該軟體 build 5592。對於其它的 Mac 平台,則仍以目前發佈的 build 5584 作為正式版本。裝了 b5592 以後,我並沒有感覺到溫度有明顯變化,不過 suspend 虛擬機器的速度似乎變快了。之前用 b5584 有兩三次在 suspend 後 PD 近乎停止回應(重塗散熱膏之後),我只能將它強制關閉。換用 b5592 後這個問題就沒再發生過了。

MacBook Air 熱當的表現起先是系統停止回應,特別是滑鼠遊標移動會顯著 lag 或是不移動,大約每五到十秒就會停個兩三秒。再繼續熱下去的話,很容易會出現四國語言畫面而只能重新開機。觸摸機體會發現背面靠近 MagSafe 插槽的那半塊都有點熱。

網路上有不少論壇都提到 MacBook Air 過熱的事情,有一些人認為與蘋果出廠塗附的散熱膏有關。散熱膏是塗抹於發熱體(常見如 cpu)與散熱器間,用以幫助傳熱並填補缺縫的物質,在自然貼附處一般是塗得越薄越好。而原廠所塗附的散熱膏其實太厚了,使得傳熱效率降低,造成系統熱當。

除此之外,使用外接螢幕也可以造成系統回應停頓。某位 Atticus 的經驗是使用外接 24 吋螢幕 (FullHD, 1920x1200) 約 1hr 後,系統會開始 lag,並且 cpu 溫度並沒有暴走。若改使用較低解析度的外接螢幕,似乎就不會造成這樣的問題。重塗散熱膏對他並沒有顯著幫助。

在蘋果的官方討論區裡,有人因為同樣的系統 lag 問題 (但似乎是因為風扇造成的?),向 Apple 更換過三台 MacBook Air。第三台似乎穩定性遠高於前兩台,因此可能不是所有出廠的 MBA 都會受到系統回應遲緩的影響。目前對於這個問題發生的原因及解決方案仍未有定論。

在參考 ifixit 關於 MacBook Air 拆解的說明之後,我拆開了我的 MBA,並重塗散熱膏。相關記錄照片請見相關連結。拆解處理過程大約會花費10-20分鐘,大部份的時間是用於清除 cpu 與北橋晶片上的散熱膏。處理過程中不需要移除任何易碎標簽,因此在保固上不會帶來太大困擾,與華碩的 EEE PC 完全不同 XD 移除外蓋需要拆除10 顆螺絲,之後再鬆開五顆螺絲(兩顆會被排線擋住,所以要先解開排線)就可以拆下散熱器及風扇。組裝時只要注意 L 型鐵片的位置,確保散熱器與 cpu / 北橋 緊密接觸即可。

塗完散熱膏後,系統的穩定性能顯著提升,不過機殼溫度也會上升。除了原本的高溫區以外,鍵盤左側靠近螢幕轉軸的位置(大約是 Esc, F1的上方,以及 ~, tab 的左邊)溫度也會比原本更高。雖然如此,仍不至會燙手的程度。

雖然穩定性會提升,不過要是長時間重度運作,仍然會使系統發生延遲。例如以 MLB Mosaic 看棒球比賽,大約在一個半小時之後,會偶發性的每分鐘 lag 1~2 秒。若能維持系統散熱(例如在床上打開電扇,或把 MBA 在桌上移個位置,接觸低溫的桌面,又或停止工作一兩分鐘),就能避免這個問題發生。發生這種問題時 cpu 溫度未必會很高(見下圖,才 65 度就中標了),因此也可能罪魁禍首其實是北橋晶片或其他地方。順道一題,下面是 iStat pro 的截圖,是 Mac 上相當方便的硬體監控程式。

2008-05-09

遊戲介紹:Super Crazy Guitar Maniac Deluxe 3

遊戲連結:http://www.notdoppler.com/supercrazyguitarmaniacdeluxe3.php
Flash 格式,大小約 10mb,要有下載一陣子的心理準備 XD

昨天來實驗室就聽到有學弟在練吉他 Game,不過學弟形容是像 DDR (Dance Dance Revolution,俗稱跳舞機),就覺得有點無趣
畢竟小弟當年練到所有九隻腳以下的曲子都跳得完 (第幾代就別問了,總之是很有歷史的事),然後所有的曲子都可以用按鍵玩完,所以用電腦鍵盤玩的類 DDR Game 都不應該會難倒我。

可是後來看到學弟的遊戲畫面以後,忍不住也開始玩了 XD


前面幾首其實很簡單,訣竅與 DDR 相當類似: 抓節拍。大部份的按鍵都是在正拍上,再加上按鍵數不多,Simple 兩首都能樂勝 Perfect。
到了 Tricky 開始,會有些比較節奏性,並且偏離正拍的東西出現。例如將 4/4 切成 8/8,並且出現在第 1, 4, 7 三個拍點上的重音 (DDR 也有這樣的技巧),或是跟著音樂節奏的按鍵時間點。雖然如此,只要把音樂聽熟了,大概都能抓到 (第三首 All Day Comfort 中段有個點我一直抓不到,其它都沒問題)。

Hard / Complex / Crazy 難度的曲子我就都只玩過一遍了,不過大致仍是依照上述規則,只是按鍵的數量變多,速度變快(或節奏更難抓) ,按鍵型式也變得更複雜。希望今天能把最後一手 Crazy 的曲子給解開 T_T

目前得分狀況如下,只有從頭 Combo 到底才拿得到 Perfect,其它我就不清楚了。


另外呢,這個遊戲的玩法大致可以分成兩派。一種叫熱血派,會把鍵盤當成電吉他抓著,然後很投入的進行。開始玩的那個學弟就是用這種玩法低。


另一種玩法叫作 "冷血的死宅男"。對我們來講,電腦鍵盤就是電腦鍵盤,不過是種放在桌面上敲打的人機介面罷了 XD


看到死宅男第一首玩第二次就拿到 Perfect,實驗室的眾熱血派突然就跑去改玩 aoe 了 T_T
難道強也是一種過錯嗎 XD (好啦,一定還有比我強更多的人,不要逼我去寫程式送 key 拿高分,那樣一點趣味也沒有 :p)

** 補充:
用瀏覽器連線似乎有時候會 lag, 所以我在兩台 win-system 的電腦都抓了離線遊戲的版本。
昨天好像有人趁我不在的時候嫌我分數有點變態,那麼我只好把更糟糕的東西貼上來了。
這是目前 nb 上的分數

2008-05-05

兩套軟體的小設定:

  1. FileZilla FTP Server
    其實這套 ftpd (FTP Server) 算是相當好用,而且功能直逼其它軟體的收費版本,目前也還在更新維護。與之師出同門的 FileZilla Client 也是相當出名 (雖然預設就會跑多線下載有點煩人啦)。不過在設定上卻發現它對掛載的網路磁碟不太友善,當 client 連入時只會看到空白目錄。

    解決方式如下:
    1. 若是 FlieZilla Server 設定是以服務執行,那麼要去"控制台->系統管理->服務"裡面,將服務執行帳號更改為 "有權限登入遠端磁碟的帳號",之後再重新啟動服務。
      例:假設我用 PC1 開磁碟共享, 再利用 PC2 上的使用者 clifflu 連接為網路磁碟並提供 ftpd 服務,則要把 PC2 上的 FileZilla Service 改成以 clifflu@PC2 執行
    2. 之後到 FileZilla Server Interface 裡,將遠端目錄名稱以 rename 按鈕,改為完整電腦名稱的型式。
      例:在使用 FileZilla Server Interface 新增的目錄也許叫作 Z:\dir1,之後將它改為 \\PC1\dir1 這樣。
    3. 從遠端連入時,目錄出現前的等待時間會明顯變長,不過完成後的操作速度便不受影響。畢竟能連接網路磁碟的話,多等個幾秒鐘是值得的 XD
  2. 網芳連不到目標電腦 (OS: Windows XP),出現錯誤訊息為 "未將這台電腦上要求的登入類型授與使用者"。處理方式如下:
    1. 開啟該主機的 Guest 帳號使用權
    2. "控制台 -> 系統管理 -> 本機安全性原則","本機原則->安全性選項", 之後將禁止網路登入的帳號中的 Guest 移除即可
    3. 可能會對系統安全造成影響,請自行承擔風險。

2008-05-03

概念解釋:Don't Get Your First or Third Out at Third

最近看/聽棒球還滿常聽到這句話的 "Don't get your first or third out at third"
翻成中文是 "不要讓你的跑者為了上三壘,成為第一個或第三個出局數"

它的解釋很簡單:

  1. 如果目前無人出局,那麼跑者停留在二壘仍然很可能靠著一隻安打或兩次犧牲打或野手選擇回來得分;
  2. 如果目前兩人出局,那麼跑者在下一位打者擊中球時便會提前起跑。因此若是打者擊出安打,二壘跑者仍然能跑回本壘;若打者出局,換局因此跑者也無法得分。

2008-05-02

MacBook Air 過熱問題及解決方式

原以為可以和 MBA 過著幸福又快樂的日子,只可惜好景不常,一但跑些比較重的軟體,或是執行 Parallel 跑 WinXP,MBA 很容易就會過熱,然後出四國語言畫面 T_T

不過剛在 Engadget 上看到有人認為是蘋果沒把 cpu 散熱膏弄好的關係,所以我就決定參照 ifixit 上的說明來拆解 MBA, 並且重塗 cpu 散熱膏囉 :p 拆完以後爬 google 發現有人已經把 ifixit 的內容翻成中文,所以我就不浪費這個時間啦 XD

塗過散熱膏以後,感覺機殼熱度下降了一級。就算是重覆之前 "很可能會造成當機" 的動作如在 Parallel WinXP 下進行磁碟檢查與重組,也都能夠正常執行。

ifixit 對於機殼與電池周圍的螺絲有比較清楚的描述,但忽略了 cpu 散熱片及風扇部份的螺絲。雖然數量不多,不過拆的時候還是要特別注意 (平常養成良好習慣,總比燒掉價值 50+k NTD 的筆電好)。話不多說,底下就是東缺西漏的圖囉 (想睡覺,懶得拍 :p) 只想看圖的話可以跳轉 picasa 相簿


# 使用工具圖 : 精密起子十字一隻 (小隻一點比較好),加上鑷子 (清散熱膏很方便, 也可以用來夾螺絲)



# 背版共有十顆螺絲,靠螢幕轉軸側的四顆之中,內側兩顆最長,外側兩顆次之,其它六顆都是短的


# 打開背版就長這樣,上面是電池,左下角是 CPU 主機版等配備,右下角是1.8" 4200rpm HDD


# 剛拆開的樣子,注意左邊 L 型鐵片的角度似乎不太對,沒壓在晶片正上方


# 螺絲及排線位置說明圖。內部的螺絲都是黑色消光,紅圈最短,紫圈次之,黃圈最長。綠圈則是排線端子,先移除HDD與usb(?)排線後,再拆下螺絲,最後移除風扇上下的兩組排線即可 (一條是 pwm 風扇控制,另一條我不清楚,可能是溫度感應線)


# CPU 和北橋晶片上滿滿的各一坨散熱膏,難怪會過熱


# 隨便擦擦後的 CPU 與北橋晶片


# 風扇側兩顆螺絲特寫,左下角那顆比較長,右上角要注意,風扇要插在 HDD 與底架之間。


#鎖回散熱片


# 插好排線,準備鎖回背版