歡迎來到小豬圈!

2008-11-27

我所使用的軟體(2011-06-13更新)

2008-11-24

Red Alert 3

  • 花了三天把三個陣營的劇情過了一遍,這次的美術風格真是詭異,尤其是主選單。
  • 雖然過場還是不改廉價影片的風格,但請來的演員似乎還滿大卡的。
  • 作戰單位自動偵測敵人的範圍變的好小,常在不注意的時候,一群兵從最外圍一個一個被幹掉,氣死。
  • 這遊戲最讓我期待的合作模式,因為“嗶-”(消音)的關係沒能玩到,可惜。

2008-11-19

Fallout 3 異塵餘生三

  • 目前只玩完好人的主線劇情,即使這樣,地圖上還有一半以上沒去過。
  • 雖然是做成 FPS ,但這遊戲只開槍是玩不下去的,除了戰鬥的部份不比其它 FPS 好之外,主要還是因為劇情對話佔了很大的比例。
  • 遊戲裡的世界做的不錯,歌也很好聽,尤其是在遊戲裡一邊聽著 Galaxy News Radio ,一邊探險、開槍殺敵,超有 feel ~!
  • 我覺得最可惜的是東西不夠多,感覺每個項目都只有一點點。像是:武器有分大鎗、小鎗、近戰…等,但每一類就那幾把,你可以自製武器,但就那七種;可以有自已的家,但裡面只有五項設備跟六種佈景主題。
  • 總和來說,還是絕對值得玩兩次以上的遊戲。(現在值得再玩一遍的遊戲不多了啊)
  • FO3 Archive Utility 解開 Bethesda Softworks\Fallout 3\Data\Fallout - Sound.bsa ,裡面可以找到遊戲裡 Radio 播放音樂的 mp3 。
  • PC 版可以按 ` 開 console 輸入 cheat code 。
    • advlevel :等級升一級,可以加超過 20 級。
    • addspecialpoints x :加 x 點 SPECIAL 點數。
    • addtagskills x :加 x 項 tag skill 。
  • 要注意的是點數要算好,因為點數要分配完才能關閉對話框,爆了的話就關不了了。
  • SPECIAL 如果加滿的話,很多加 SPECIAL 點數的效果就沒用了(像是藥物),因為單項最高就是到10 點。
  • 還有技能 (skill) 除非有必要,不然點到 95 就好,剩下 5 點可以靠裝備,以節省點數(和手指連點的次數)。
  • Black Widow/Lady Killer 和 Child at Heart 這兩項我覺得必點,可以增加一些額外(一定會成功)的對話選項。
  • 副檔名 bik 檔,可以用 RAD Video Tools 播放。

2008-11-07

關於 nl2br

  • 各系統使用不同的換行字元,常見的就是 LF 、 CR 、 CRLF ,詳見 Newline - Wikipedia, the free encyclopedia,此不贅述。
  • 而 PHP 裡有 nl2br() (New Line to BReak) 這個函式,將字串裡的換行字元轉成 HTML <br> ,PHP 4.0.5 以上是換成 XHTML 相容的 <br />。
  • nl2br() 的行為並不是把換行字元取代成<br /> ,而是在換行字元前插入<br />
  • nl2br("\r\r\n\n") 的結果是 <br />\r<br />\r\n<br />\n
  • nl2br() 會先再找 \r\n 和 \n\r (!) 再找 \r 和 \n 。
  • nl2br("\n\r\n") 的結果是 <br />\n\r<br />\n

2008-11-06

用 token_get_all 分析 PHP 原始碼

  • token_get_all() 將原始碼拆成陣列,每個陣列元素可能是字串或陣列,字串的話包括像等於、分號或大小括弧等,陣列的話則依序包括 token index 、內容跟所在行數。這裡的 token index 是整數,可以用 token_name() 轉成相對應的名字。
  • 以下是簡單的範例,將每個元素用 <span> 包起來,並設定 class 為 token name :
    <?php
    $source 
    file_get_contents(__FILE__);
    $ary token_get_all($source);
    foreach (
    $ary as $key => $value) {
      if (
    is_array($value)){
        echo 
    '<span class="' token_name($value[0]) . '">' htmlspecialchars($value[1]) . '</span>';
      } else {
        echo 
    '<span>' htmlspecialchars($value) . '</span>';
      }
    }
    ?>
  • 用 get_defined_constants 取得所有可用的 token (參見 PHP: List of Parser Tokens - Manual):
    <?php
    $constants 
    get_defined_constants(true);
    var_dump($constants['tokenizer']);
    ?>
  • 首先要注意的是, token_get_all 對原始碼分析的結果跟本機環境設定有關:
    1. 像 <?= 在 short_open_tag = On 的時候是 T_OPEN_TAG_WITH_ECHO ,反之則是 T_INLINE_HTML 。
    2. 我用的 PHP 5.2.6 就沒有 T_DIR 、 T_NS_C 這些 5.3 版才定義的 token 。
  • 另外要注意的是,到了 CSS 2.1 才定義可以使用底線 (_; underscore) 做為 class name selector ,參見 CSS2 syntax and basic data typesGrammar of CSS 2.1,如果要將 token name 做為 CSS class selector 的話,最好將底線換為連字號 (-; hyphen)

Parse_Tree 分析 PHP 原始碼並輸出 XML

  • 因為內建的 highlight_file 和 highlight_string 輸出的結果太醜,要改的話又太麻煩,所以找了個替代方案 PECL :: Package :: Parse_Tree
  • 該模組只有 parse_tree_from_file() 一個函式、唯一一個參數要傳入原始碼的路徑。這份文件寫的 generate_parse_tree() 是錯的。
  • 使用方法也很簡單,下例會輸出該程式本身分析後的 XML:
    
    <?php
    
    echo parse_tree_from_file(__FILE__);
    ?>
  • 缺點是要另外下載模組,實際要用得把 XML 轉換成 HTML ,對我而言相當不方便。
  • 這研究這個模組途中,才發現 PHP 已經有內建分析原始碼的函式 token_get_all(),詳見下篇。

安裝 Glade 3.4.3 for Windows (gladewin32) 遇到的問題


  • 圖為安裝 Glade/Gtk+ for Windows 3.4.3 版遇到的錯誤訊息。
    glade-3.exe - Entry Point Not Found
    The procedure entry point g_assertion_message_expr could not be located in the dynamic link library libglib-2.0-0.dll.
  • 解決方法是將 GTK+ 的版本更新至 2.12.9 以上。為什麼我會知道?因為我電腦裡裝的是不曉得哪個程式附的 GTK+ 2.12.8 … (囧),更新(目前最新是 2.14.4)後就沒問題了。
  • 如果是遇到缺什麼 dll 的情況,先確認 GTK+ 的 bin 目錄有沒有加到環境變數 PATH 裡,不行再到 GTK+ 官網下載或網上去找吧。

2008-11-01

PHP-GTK on Windows 筆記

  • PHP-GTK : Downloads 下載 php-gtk-2.0.1 Windows binary pack
  • 到下載回來的檔案解開後的 php-gtk2 目錄裡,執行 php demos\phpgtk2-demo.php 範例測試。
  • 在利用既有的 PHP 環境執行時遇到下列錯誤訊息,應該是因為 PHP-GTK 是 Non-thread-safe 的,和我現有的版本不符的關係。
    PHP Warning:  PHP Startup: php-gtk: Unable to initialize module
    Module compiled with module API=20060613, debug=0, thread-safety=0
    PHP    compiled with module API=20060613, debug=0, thread-safety=1
    These options need to match
     in Unknown on line 0
  • 修改 php-cli.ini 檔案中 php-gtk.codepage 一項,修改為 CP850 用以在 Windows 上正常顯示繁體中文。參見:Code Pages

改變 Google Chrome 的 Cache 路徑 (2011-04-17 更新)

2011-04-17 更新


  • 裝了 Google Chrome 一陣子以來,只有偶而開個幾次,所以沒什麼心得。不過每次打開 Google Chrome 一段時間後,即使沒有正在執行的連線, Google Chrome 還是會小量而頻繁的存取硬碟(一直咔啦咔啦的)。
  • 後來加上 --user-data-dir=Z:\Temp 參數,將路徑改到 RAMDisk 上就好了。參見:Meme -- 教學與反省: 將 Google Chrome 的暫存檔移至 RAMDisk
  • 這也同時解決了隱私的問題, Google Chrome 預設首頁會顯示之前瀏覽頁面,但卻無法預設使用無痕式視窗、也無法在程式開閉後自動清除瀏覽資料。

標籤分類

Blog Archive

Labels

Google Analytics Tracking Code

About Me

My photo
Keelung, R.O.C, Taiwan
一個不學無術、混吃等死的傢伙…