TAG

首都機能移轉 (2) 歌詞 (2) 靠北文 (40) 戲言 (30) 糟糕 (7) ACG (23) Assembly (2) Boost (2) C (31) C++ (69) CMake (4) CSIE (67) Debian (34) Design_Pattern (2) Django (1) Eclipse (1) en_US (13) FFmpeg (3) FoolproofProject (26) FreeBSD (2) Git (4) GNU_Linux (65) IDE (5) Java (11) JavaScript (19) KDE (15) Khopper (16) KomiX (3) Kubuntu (18) Life (1) Lighttpd (2) Mac_OS_X (2) Opera (1) PHP (2) PicKing (2) Programing (21) Prolog (1) Python (7) QSnapshot (2) Qt (30) Qt_Jambi (1) Regular_Expression (1) Shell_Script (7) Talk (98) VirtualBox (7) Visual_Studio (13) Windows (18) zh_TW (36)

2007年12月29日 星期六

安裝DSL到硬碟

DSL,全名Damn Small Linux,不是DSLite,也不是Digital Subscriber Line,是一個映象檔大小永遠在50 MB左右徘徊的Linux發行版。簡潔快速小巧基本上就是它的特色,而且它還是能以這樣的大小長駐在DistroWatch.com點閱率第十名上。
50 MB的好處是,幾乎所有普遍的可攜式裝置都可以帶著走,不用再特地準備2GB大的隨身碟,而且其開機速度也是一流[?]
它可以單純當成LiveCD或是LiveUSB用,也可以安裝到硬碟上,或是直接在原有的系統中使用。這次主要是要說安裝到硬碟的方法。
以下假設要安裝的裝置為hda,同時分割方式只是舉例,看懂了應該可以自己分配。
首先自己想辦法到終端機下,輸入:
sudo -s
cfdisk /dev/hda
就會進入分割磁碟畫面,假設需要一個hda1做為swap,hda2做為/,可以選new來創造,建完之後選type就可以更改分割區的種類;swap是82,Linux type是83,其他還有很多,可以自己參考畫面上的列表。
決定完選write就完成更動了。
之後建議是重新開機,再一次進入DSL的Live模式;這次要把swap打開,所以輸入:
sudo -s
mkswap /dev/hda1
swapon /dev/hda1
就完成了分割磁區的設定。
接下來不管是從開始選單或是輸入dsl-hdinstall指令來安裝都無所謂,跟著指示做就可以完成安裝了。
Reference
Preview of DSL 4.2.1

2007年12月26日 星期三

Directory traversal in PHP

好久沒寫有意義的東西了....
這次先丟快兩個月前寫的東西,用來走訪資料夾的內容,並且可以設定最大走訪深度和忽略檔案功能
/**
 * @brief Traverse directories and files.
 * @param $path Start point of traversal.
 * @param $limit Traverse directory level.
 * @param $ignore Regular expression of ignore file.
 */
function listDir( $path = '.', $limit = 0, $ignore = '(^\..*|(.+\.php$)|cgi-bin)' ) {
    static $level = 0;    // Trace back counter.
    if( $limit == 0 || $level < $limit ) {    // If limit is set to zero, or level is lesser than limit, do action.
        $dirHandler = opendir( $path );

        echo "<ul>\n";

        if( !ereg( $ignore, '.' ) || !ereg( $ignore, '..' ) )    // Protection. If '.' or '..' runs recursion, PROGRAM WILL CRASH!
            $ignore = '^\.{1,2}$|'.$ignore;
        while( false !== ( $file = readdir( $dirHandler ) ) ) {
            if( !ereg( $ignore, $file ) ) {
                echo "<li>\n";

                if( is_dir( "$path/$file" ) ) {
                    echo "<strong" . ( ( $level == 0) ? ' class="title"' : '' ) . ">$file<strong>\n";    // First level directory's class is "title"
                    $level++;
                    listDir( "$path/$file", $limit, $ignore );
                    $level--;
                } else {
                    echo '<a href="' . "$path/$file" . '">' . $file . '</a>' . "\n";
                }

                echo "</li>\n";
            }
        }

        echo "</ul>\n";

        closedir( $dirHandler );
    }
}

View by PHP source
如果因為跳出問題很難看的,可以使用上面的連結。
$path為走訪的起點,預設會從當前所在資料夾開始。
$limit是最大走訪深度,0為預設值,代表沒有限制。
$ignore是黑名單的正則表達式,預設會擋'.'和'..'[?],還有*.php以及cgi-bin資料夾。基本上除非很有把握,否則不要擅自更動。
想改輸入效果可以更改echo出來的字串。
為什麼不用Apache?因為它的autoindex實在是看得太清楚了

這次有好一點了

我在期中考前一天知道要期中考。

2007年12月10日 星期一

蒼白的正義

剛剛在某討論版上發現有人挖了冰風之谷一代的神聖復仇者:蒼白的正義的介紹出來,覺得實在是很經典,貼出來給各位分享一下。
鑄造這把劍的目的只有一個:毀滅邪惡。
雖然它是把強大的武器,「蒼白的正義」卻有個相當平凡的出身。

這把樸素的劍是由一位名叫雷諾的人所鑄造,他是一個虔誠的提爾信徒。
雷諾花了三十年的時間將加工金屬的技術練到爐火純青,
也因此他能製造出毫無缺點的刀刃。
就在雷諾完成這把簡樸的武器後,他立刻便將之奉獻給提爾教會。
收到這把劍的牧師將它放在修道院的祭壇上。

牧師要求教會中的弟兄們與他一同向提爾禱告,願祂賦予這把劍神聖的力量。
然而弟兄們卻從來都不碰這把劍,甚至從不提到它。
十年後,當其他牧師們都已放棄對這把劍賦予神力,發起的牧師伊丹,
卻持續默默地禱告著。又過了二十年,提爾依舊沒有顯示任何神蹟。
前來拜訪的海姆牧師嘲笑伊丹盲目地信仰著這把劍。
這時,伊丹突然起身走向祭壇,輕柔地將塵封已久的劍從祭壇上拿下。
海姆的牧師問伊丹,你是不是終於恢復理智了。
伊丹回答說,自己一直都很清醒,然而過去卻對提爾企求了錯誤的事物。
他說提爾早在很久以前就完成了這件事。

海姆的牧師放聲嘲笑伊丹的這番聲明,並叫他的貼身護衛拔出劍來。
海姆守衛手中的華麗武器,護手上鑲嵌著珍珠、刀刃上刻滿了符文,
還鑲有一堆細小的紅寶石。海姆的牧師笑著說:
「你的武器就像是一般士兵帶的刀,跟我們的比起來實在遜色多了。」
伊丹平靜地握住劍柄,將劍揮向海姆守衛的武器。
海姆牧師的笑聲很快地消失了,他只能死盯著守衛的斷劍瞧。
當伊丹放下劍,海姆牧師不發一言地呆立在原處。

伊丹說:「正義跟虛榮、虛有其表的力量相比,本來就是遜色而蒼白的。
然而我卻期待提爾能在這把劍上,以閃電或火焰來彰顯其神蹟。
我早該想起這把劍是如何交到自己手裡的....只是由於單純的博愛與謙卑。
正義適用在每個人身上,不論貧富貴賤,不論知識高低。
不論在農夫的田裡或戰場上,正義無所不在。


伊丹把劍交到當地的武器店裡,訂作了一個木製、包裹皮革的護手。
接著他便把劍交給了一位新任的聖武士,
並教導他永遠要記得人類心中慈愛與良善的潛能。
數據資料:
傷害力:1D8 + 4,對邪惡生物 +7
零級命中值:獲得 +4 改善,對邪惡生物 +7 改善
傷害類型:揮砍
特殊功能:不受恐懼之袍、恐懼術、狂暴魅惑、以及無助法印的影響
重量:5
使用速度:1
武器特長類別:大型劍
種類:單手持用
唯一能使用的職業:聖武士
我一直都很著迷於D&D系列遊戲的背景設定,不外乎是因為其有龐大的設定,且幾乎每個道具都有它自己的來頭,看著那些道具的介紹,就像是在閱讀該世界中英雄的史詩,其中也不乏幽默的道具,這不是其他類型的遊戲能輕易做到的。
甚至連玩家們的幽默感也是相當有趣。在某些人看完Pale Justice的由來之後,甚至開玩笑的說,把Holy Avenger交給菜鳥聖武士應該是教會的慣例,否則玩家不會在一具屍體上撿到Pale Justice,也不會在紅龍的肚子裡找到卡索彌爾了(笑)。只有Cera Sumat的取得過程稍微像樣一點,我相信不少人在打那六個NPC的時候拜了不少次榭夫羅德大神OTZ。
不過偶而也會出現莫名其妙的東西,比方說變性腰帶:
這是一條被詛咒的男性化或女性化束帶。
這物品很罕見,但是常常被大家所討論,上頭附有十分強大的魔法力量。
不小心把它綁到腰上的人馬上會發現自己變性了。
據說還不到五十年前,一個不知情的皇家小丑把這條束帶獻給羅伯蘭公爵的愛人,因此遭到斬首的命運。
以及傳說中的泡褲三部曲(泡褲其實就是當時的內褲):
黃金泡褲:

黃金泡褲在這個世界的歷史十分悠久,它們見過創世時期,當然它們那時的形態跟現在不一樣,所以才「看」得到。
他們的眼睛變成今天的前口袋,牙齒則不知道退化到哪兒去了。
許多泡褲擁有者可以作證,泡褲們現在已沒有視覺也沒有可以活動的四肢,因此主人的臀部才可以保持隱私和純潔。
有部古老的絕版詩集中曾有這麼一段話:「我的褲子硬得像鐵條,不過小腿部分又軟又舒服。」這是在奈色瑞爾沒落時的詩句,那也是泡褲興起的年代,不知是不是就是在形容它。
在美術館中可以看到該時期還有一種叫寬鬆銀長褲的褲子,跟黃金泡褲很類似,常常被人混為一談,不過它不是金色的。現在還有鎳銅褲,不過我所知不多,不能跟諸位詳細解說。

泡褲的作用長期以來一直是個謎,只有發明者才知道。
不過仔細觀察親身試穿後,便可以猜到大概。
例如它的褲襠部分具有違反重力的「上托」特性,不論是作在前面或是後面都十分美觀。
改良後的外形讓人充滿自信,無論是男女穿著都一樣。
不過我大膽猜測,這種自我滿足的虛幻對於正常心理發展恐怕有些許妨礙,這是穿著黃金泡褲時要特別注意的事。
而把金、銀、銅三種泡褲收集完成就會出現Big Metal Unit(BG系列史上最強裝甲):
在我們收集的泡褲,長久被遺忘的口袋中記載著這金屬「戰鬥裝」的傳奇。
高甘塔過去在他深不可測的下層區域中自立為王,直到他兒子潘塔辜羅質疑這統治者的正當性。隨著這弱點被揭露出來,偉大的高甘塔仆街,而潘塔辜羅試圖保護自己,以防他現在的政權失去影響力。有人警告他說人們也許不會給他時間,但他從來不聽,而且還把他的長褲燒掉(破釜沉舟之意)。毫不畏懼地,他(儘管這多麼令人不快)又惡意奪取了他父親的長袍,用自己的雙手塑造出這套金屬「戰鬥裝」。
潘塔辜羅的統治紛亂無章,他的護甲最後終於在褲管的地方出現裂縫,正足以證明了他的敗亡。就好像魚離開了水,太陽離開了天空,他的政權也隨著暴亂而瓦解,那崩潰如此的混亂以至於這金屬「戰鬥裝」下落不明。這護甲的三個部分,也就是史上三大泡褲,便失落在時代的變遷中。
你現在挑起了這金屬戰鬥裝的重大責任。輕柔的褲管,如夢似幻的流線造型,可以抵擋外力的口袋,具有威力的臀部剪裁,以及那閃耀動人的大腿部份。好好地擦拭它,重擔現在落在你身上。
這....要說製作小組的幽默感獨樹一格嗎....= =

2007年12月8日 星期六

宣告

基本上就不久之前和XXSS提到的,我自己有開立一個project的集合,當然成員是開放的,對於每個子項目的成員不一定要相同,也不必全程參與,前提是著作權必須開放,否則到時候很麻煩,如果有人對自己開發的部分很想close掉,那就自己把分支拿走吧。
說是這麼說,其實我覺得應該只會有我一個人吧。自由界的最大特點之一就是很多人都會在無關痛癢的東西上投注精力。話說我也是一個。
綜合上面的結論[!],這個集合暫時定為Foolproof Project,也就是說,笨蛋也會懂的作品集合。因為不知道有沒有人去註冊它,所以是暫時。反正它的精神永遠與我們同在就是了。
基本上,子集的共同特性如下:
  • Unicode:
    基本上不管它到底有沒有多國語言版,它都不會令一個支援Unicode的環境產生亂碼。[?]
  • Cross platform:
    視情況,它應該要能夠在所有平台上執行。當然,如果它的功能原本就被特化在某個平台上就不強求[?]。如果它不符合這項要求,那必須要有非常好的理由[?]
  • FREE and OPEN license:
    這可能在某個程度上複雜化了法律程序[?],但是我依然認為一個自由開放的專案有助於整體發展。基本上我會推薦library或是framework使用LGPL,application使用GPL,其他可以使用CC,不過基本還是尊重作者的意見。如果有人想close或是拿去營利,拿走分支是被允許的。
以下是已經被列入Foolproof Project並已成形的作品。
  • Library:
    • RubyText( JavaScript ): 對於已經標示好注音的字串插入注音文字的HTML標籤。
      最新狀態:svn co https://career.ccu.edu.tw/svn/rubytext/trunk/ rubytext/
  • Application:
    • Rubino( Firefox Extention ): 運用RubyText做出的Firefox擴充套件。
      最新狀態:svn co https://career.ccu.edu.tw/svn/Rubino/trunk/ Rubino/
另外,有未成形但是應該會進去的。
一個是音樂轉檔器,包括管理和ID3整理,預計會使用Qt和FFmpeg等,排程是寒假。
另一個是程式語言開發,非常大的計畫,XXSS目前也有參與協助。目的是做出一個有統一的API,跨平台跨應用的程式語言。排程是無盡的未來。
總之,各位可以把它放在心裡的某個角落,有緣再說吧。
當然,有想一起開發的東西也可以弄進來,說不定有瘋子會一起做:P
最後,不要問我標題是什麼意思,我自己也覺得莫名其妙。