2010-06-14

關於棒球規則的小事

簡單的說,我把手上的規則書,還有網路上幾個棒球規則來源整理了以後,放到某個網頁上。這邊的規則保證不標準且沒有公信力,然而作為隨手亂查亂翻之用也足夠了;網址在 http://dqt.twbbs.org/~clifflu/br/
另外,文件中仍有些許排版用字上的錯誤,也未必與現行(2010 年)規則完全相符,因此會持續修改,不建議列印成紙本閱讀。

2010-04-25

Blogger 生出的 Code 變好爛

不知道為什麼,上一篇 html 碼裡頭,充滿了無意義的 <div>...</div>,貌似被當成 <p>...</p>使用了。居然會在 blogger 發生這種等級的問題,實在有點出乎意料....


補充一下,連編輯視窗裡的 ">" 還有 "<" 都不會自動被帶換成 &gt; 和 &lt;,是不是越做越回去了啊 ˇˇ (反過來說,html 編輯模式裡的符號,在編輯視窗裡也沒被代換過去)

隨筆:在 Visual Studio 中,使用 Serializable 儲存物件

既然現在 IDE / Framework 都把加速開發當作主要目標,Coder 再混也應該要學一學這些把戲 >///<


以往用 C/CPP 都可以把不含指標的 struct / class 直接 binary read/write,但在 Java / Visual Studio 裡,這樣的流程被稍微擴充,改以 Serialize / Deserialize 作為媒介 。簡單的說,Serialize 就是把一個物件(物件裡可以有指向其他物件的參考),弄成一個 Byte 陣列,可以拿去做其他壞事(傳到別的電腦上,或者存到硬碟裡);Deserialize 就是把這個 Byte 陣列弄回原本的物件,其中所有的變數都完全相同。 我是沒什麼興趣去查 Serialize / Deserialize 的使用限制在哪邊啦,不過碰到有交互參照繞圈圈,或者是變數含有資源(DB / File resources / Socket)的狀況,就算會爆炸也不意外啦。

使用 C# 時,需加上
using System.Runtime.Serialization ;
using System.Runtime.Serialization.Formatters.Binary ;

並在需要 Serialize / Deserialize 的 class 宣告前加上 [Serializable()]
在物件內,Serialize 時要忽略的變數前加上 [NonSerialized()]

儲存時參考程式碼:
IFormatter f = new BinaryFormatter();
Stream s = new FileStream(FILENAME, FileMode.Create, FileAccess.Write, FileShare.None);
f.Serialize(s, INSTANCENAME);
s.Close();

提取時參考程式碼:
IFormatter f = new BinaryFormatter();
Stream s = new FileStream(FILENAME, FileMode.Open, FileAccess.Read, FileShare.Read);
INSTANCENAME = (CLASSNAME) formatter.Deserialize(s);
s.Close();

註:詳細內容請參照 msdn : SerializableAtribute,欲求不滿再參考 ISerializable

補充,如果是 Class A 裡持有 Class B 變數的話,必須宣告 Class A/B 均為 Serializable(),才能將 Class A Serialize,否則會在 Runtime 出錯;或者可以將 Class B 設為 NonSerialized。另外,Serializable() 不會被繼承,因此要使用的物件需明確宣告。

2010-04-11

DirectX, XNA, OpenGL 什麼是什麼啊

前陣子想把在實驗室開發的一套超簡易模擬系統(模擬什麼就不重要啦,那是秘密!),加上顯示的功能,因此花了點時間瞭解市面上的 3D 繪圖技術。底下稍微把查詢到的東西重新整理,當作備忘 XD

  • DirectX(wikipedia): Microsoft 所開發出的多媒體函式庫,其下又區分為許多與遊戲、多媒體、顯示相關的套件:Direct3D 處理 3D 顯示,DirectInput 處理鍵盤滑鼠 GamePad 輸入,DirectSound 負責音效等等的功能。
    DirectX 9 是最後一個支援 WindowsXP 的版本,而 DirectX 9Ex/10 與 11 則只支援 Vista 與 Windows7。雖然如此,DX9 的功能已成熟到能建構「堪用」的介面,DX 9/Ex/10/11 的差異主要在於效能、效果方面,因此若要開發汎用的 3D 顯示程式的話,Dx9 仍為首選。DX11 新增的 DirectCompute 套件能利用 GPU 進行一般運算(GPGPU, General-purpose computing on Graphics Processing Units),與 nVidia 出的 CUDA 功能類似,算是 DX11 比較讓我感興趣的部份。
    DirectX SDK 為 C 語言的函式庫,因此能以大多數的 C/C++ Compiler 編譯。除了 Microsoft 平台以外,Wine 計畫實做了可安裝於 Un*x 作業系統下的對等 Runtime Library
  • Managed DirectX: Microsoft 在 .Net 熱潮的時候搞出來的東西,把底層的 DX9 API 包成了 Managed Code,讓 .Net coder 可以很爽的以 Visual Studio 快速開發。這套專案已在 2006 年終止,不過目前下載的 DirectX SDK 還是包含這個套件。由於本體還是 DirectX 9,利用這套 Library 開發的程式應該能在安裝 .Net Framework 與 DirectX 9 的電腦上執行(未確認)
  • XNA (wikipedia): Microsoft 推出的另一套遊戲導向的函式庫。與 Managed DirectX 類似,XNA 同樣將 DirectX 9 的功能以 Managed Code 的方式封裝運作。雖說透過 XNA 寫出的執行檔能在 Windows, Zune, XBox 360, Windows Phone 7.0 下運作,客戶端還是需要安裝特定 runtime library 才能執行,因而 XNA 還是受到了一些詬病。然而 XNA 在 2D 與 3D 程式的開發上,確實比 Managed DirectX 更簡單快速。
    Microsoft 將 XNA 定位為供學生或工作室能快速開發遊戲的平台,因此很難期待 MS 會對它的效能與功能做出多少強化。又因為 XBox360 似乎只支援到 DX9,因此 XNA 應該也不會納入 DX10/11 的新特色。
  • OpenGL (wikipedia): 一套由非營利團隊負責的開源碼圖像系統,功能與 DirectX 中的 Direct2D, Direct3D 類似。開源碼專案一般都會有許多熱心人士建立適用於各種環境的 Library,讓像我這種什麼都不懂的人也能自我感覺良好,因此 OpenGL 的平台與環境支援度遠超越 DirectX;然而各家實做的完成度、效率、附加限制,也變成需要考量的重點。既然我什麼都不懂啊,就別期待能看到這方面的內容啦 ㄎㄎ
    除了 OpenGL 以外,還有其他的開源碼專案如 OpenML 處理多媒體、OpenAL 處理音效、OpenCL 進行運算;這些套件合體後,所能提供的功能與 DirectX 也就差不多啦。
    就 OpenGL + .Net Framework 來說,以前我摸過一下下 Tao,前陣子因為 Tao 官網炸裂,就改裝 OpenTK,目前仍在學習中。

最近啊...

最近在摸 C# 還有 3D 顯示相關函式庫 (DirectX, OpenGL, XNA 等等),有追 Plurk 的朋友應該早就發現了吧 XD 與其讓筆記在噗浪的洪流裡消失,還是記在這邊以後比較容易回過頭來查詢。兩週內這邊應該會稍微有為一下!

2010-02-21

又見錯字 (ATI Catalyst)



看來中文真的很難 ˇˇ
(畫面中是 ATI Catalyst 10.2 的安裝語言選擇畫面)

2009-12-10

哭哭 ˇˇ Update = Disaster

看圖說故事:







2009-10-25

HTC Magic + HTC Sense update 使用感想 / 問題 / 解決方式

前幾天發飆跑去簽了中華電信校園方案,帶了隻 HTC Magic 回來。運氣不錯,當天 HTC 恰好也公佈了 Magic 升級 HTC Sense 介面的韌體,就順便裝了上去。升級韌體的過程會重設手機內所有資料,所以能在還沒有資料的時候更新,真的是相當好運。

關於 HTC Magic 的詳細介紹就不多提了,Google 隨便都能搜到一大票。我對這隻手機的感想如下:

  • Android 與觸控螢幕的搭配,操作相當直覺,一日輕鬆上手
  • 整體運作速度不錯,前提是要把某些背景執行的程式砍掉
  • 透過 Adroid Market,下載軟體相當方便,功能擴充強到爆炸
  • 螢幕亮度調整稍嫌不便,下載了幾套 widget 都無法有效改變螢幕背光 ˇˇ
  • 收訊似乎比 nokia 差,在宿舍中華大概有 70+% 的時間是斷訊狀態吧 (前一隻 6280 大概是 30%)
  • WiFi / GPS / BT 全開,正常使用撐不過 6hr;好在能用 mini USB 充電
  • 全關大概撐得過兩天

建議安裝程式清單,與功能說明 (太明顯的我就不做說明啦):
  • 系統類
    • Advanced Task Manager Free : 可以砍除不用的程式/Process,大概能把未使用記憶體由 30mb -> 75mb;手機反應大增 !
    • App Manager : 備份軟體用的程式
    • ASTRO : 檔案管理員,方便整理下載的檔案/音樂
    • AudioManager : 內建音量管理控制比較麻煩,這套 Widget 可以在 3 下 click 以內設定完畢
    • SysTray Monitor : 顯示剩餘電量 / 未使用記憶體
  • Google 功能類
    • Gmail : 既然都在用 Google Phone 了,直接拿 Gmail 取代郵件吧 lol
    • Google Map (內建 Google Latitude)
    • Google Talk
    • Google Skyp Map : 星座圖 !
    • My Maps Editor : 與 My Tracks 合併使用,把 GPS 測得的軌跡記在 Google Map 上
    • My Tracks
    • Places Directory : 分類地圖 !
  • 社交類
    • Peep : Tweeter Client (Widget + App)
    • Plurk : Plurk Client (Widget + App)
    • Facebook : Facebook Client (Widget + App)
    • Hi MSN : MSN 登入程式
    • Skype : Skype 登入程式
  • 生活應用類
    • KKBox
    • Shazam : 能由麥克風收錄音樂,搜尋是哪首歌。只能辨識播放的專輯喔,自己哼是沒用的 ˇˇ
    • PicSay : 修圖軟體 ! 不過免費版本只能存成小張圖片
    • 直讀中文 : 電子書 (.pdb) 閱讀軟體
  • 手機功能增強
    • Scientific Calculator : 科學計算機,科科
    • FxCamera : 內建處理效果的相機軟體
    • Phonalyzr : 通話內容分析程式
    • Handcent Sms : 簡訊管理
    • GPS Status : 可以看衛星訊號和當作羅盤使用
目前遇到的問題則有:
  1. 重置手機資料選項位置變更:
    HTC Magic 是在 "SD記憶卡"底下,刷成 HTC Sense 後則改到 "安全性"
  2. 聯絡人顯示方式重覆:
    Google Phone 可以存放三組聯絡人資料,分別為 Google、手機,以及記憶卡。似乎是只比對 "姓名" 判斷資料是否屬於同一人,並且其中至少一筆有 "行動電話" 資料才會進行比對。因此 Outlook/手機 裡存放的聯絡人,似乎要把全名都打在 "名字" 欄位裡,才能與 Google 的聯絡人相比較。若兩者 (手機/Google) 都沒有行動電話資料,則手機仍然會顯示出兩筆 Entry。
    建議處理方式:
    • 將 Outlook 的聯絡人 "姓名" 存於 "名字" 欄位,姓氏留空
    • 若該聯絡人沒有行動電話 (例如為公司行號),則將其中一筆的行動電話設為 00

2009-10-16

Where the hell is Matt 等等等

科科,最近有點忙 + 打混 ˇˇ

相信很多人都看過那個 Where the Hell is Matt 的影片吧 ? 就一個白人宅男在各地跳舞的影片。之前也傳出過影片是棚拍加後處理的傳言,不過其實那是作者自己放出的玩笑話,Matt 聲稱所有影片都是實地拍攝的啦 !

我覺得他的影片提醒了大家地球有多麼小,人類是多麼的更小,還有人性與社群的重要性。

然後,TWoW 有隻 BMWMAN 也做了一隻類似的影片,讓牛薩在艾澤拉斯四處跳舞。仔細想想,其實舊 AZ 的某些景觀真的很不錯,不過頭三年大家在衝等沒空看,接著一年多大家都去火星了沒人看,現在玩家又都在北裂境。然後,到了4.0 Catalysm 之後,所有的景觀都會消失,不再是這幾年來的那個樣子。也許有空還是要去四處繞繞,觀光一下 ˇˇ

2009-08-10

天災 ? 人禍 ?

又一次颱風重創全台,又一次蠢不堪言的檢討。


先講新聞媒體吧,盡是一堆語言技巧拙烈的記者與主播,靠著毫無內容的訪問撐時數。每次看到的都是一群人講述房子被衝走、路人狂哭、樹晃來晃去,動輒 30 秒的不知所云。如果只是報導事件的話,一句話帶過就夠了;播送這些表面功夫的影片,完全是在侮辱觀眾的智商。新聞的價值應該是在整理並提供資訊 (統整後的知識),提升民眾生活知能 (社會教育)。顯然的,台灣的新聞媒體不但找不到事件的重點,更是整體愚民化的元兇。僅有這種智能水平的單位,在遴選主播這種高度要求台風與語言技巧的角色時,會選出什麼樣的花瓶,這也不令人意外了。
整理:新聞一如往常的爛

再來講這個。請問馬先生你是腦殘嗎?請問淹水、路基掏空、橋墩斷裂、土石流等事件的防範及緊急應變系統,比起降雨量的估計,何者影響力較大?難道氣象局提前做出雨量估計,台灣的路面、排水系統、擋土牆、水土保持就會自動升級嗎?難道知道降雨量多少,就能對台灣土石流的區域進行有效的估計嗎?發生這些問題之後,居然不是在檢討公共工程對天災的耐受程度、不是檢討山區的水土保持或疏散方案、也不是在檢討建築法規對環境評估的要求,看來掌權的這群人連最基本的智能都沒有。馬先生別再玩 plurk,或是構思下次路跑的乳頭造型了;找不到問題的根源,問題就永遠不會改善。
整理:政府一如往常的濫

有些山區民眾早知該主動撤離,這睿智的行為明顯保障了他們的生命(財產請找中華民國政府負責);然而有些民眾則是沒有能力撤離,這些人我只能給予無限的同情(財產與生命請找中華民國政府負責)。至於有些人則是選定在颱風時期上山下海,這些人的智能和政府官員有得比。
整理:蠢蛋永遠是蠢蛋

總結:History repeats itself