Thursday, August 25, 2011

rails netbeans glassfish喔耶

很久很久沒有發文了,那是因為這陣子都在搞Rails啊!

咦?你問我怎麼rials不是能快速上手,怎麼搞這麼久?唉~唉~當然是因為我貪心的想把程式佈署到網路上,又不想花一毛錢啊。

故事是這樣的,一開始我先看了DreamHost然後是HEROKU接著又是悲劇性的EC2,然後我開始了一場驚天地泣鬼神的戰鬥後又被FB擺了一道,痛苦到喪失了一段記憶,現在我只能說,如果你只是想放一個簡單功能的網頁自娛(比方像Android的BMI範例)不想花錢,沒信用卡號,怕麻煩,不介意從c底層的Ruby轉到JRuby,那你一定要試試NetBeans+GlassFish的組合,事實上,當我從NetBeans內的Tool>Plugin中安裝Rails病發現他是3.1版時,我被感動了(這時如果你使用Gem工具,3.1版仍需使用--pre參數,但Rails3.1其實已經完全可用,只是在等待某些行政程序而已...),可見NetBeans真的很細心。

另外其他的佈署方式到底有啥缺點呢?老實說因為我失去了記憶所以無法告訴你,絕對不會是因為我想為這意段戰鬥出一本小說右手短懶得打字,才不在這裡分享的,你知道嘛我超愛分享經驗的,雖然還沒佈署完成,不過因為我太興奮了所以po個文先,繼續努力去>w<。

Tuesday, August 9, 2011

Wednesday, July 20, 2011

Android 手機程式

急急忙忙的安裝好ADK就花了8小時,其實是因為開始程式後模擬器跑太慢,害我以為裝失敗了,一直重弄=口=,後來餵他吃1G的記憶體就好很多,這個教學站真不錯,寫得深入淺出,從昨天早上到現在就搞懂基本UI還有API的互動方式了,現在再補一些應用應該就能開發簡單的App了,話說我根本沒正式學過Java啊,突然覺得自己很神=W=

Sunday, July 17, 2011

FLTK、TARGA、2D影像操作…@o@

最近找了教授提早做下學期的專案,我只能說,還好能提早做,光是FLTK的機制就可以搞一本書了,還要配合各種操作弄成介面的形式,要不是我之前一直在研究GUI根本做不出來,下學期修這門客的同學該怎麼辦呢,現在就想替他們默哀了。

Sunday, July 10, 2011

咦?!GUICHAN不是Unicode喔

不對啊,GUICHAN內部的函數是抽象的,真正的內容都是用後端實做,難道是SDL的問題?把範例Hello World層層剝開之後(過程中發現GUICHAN包裝的模式真的很好,不過現在沒時間慢慢看),發現Label是用*TTF_RenderText_Blended(TTF_Font *font, const char *text, SDL_Color fg)畫出來的,而宣告一個新的Label時用的名字就會傳到const char *text的位置,難怪在外部不管怎麼調整,中文都指後顯示亂碼,明明還有另一個函數啊,SDL_Surface *TTF_RenderUNICODE_Blended(TTF_Font *font, const Uint16 *text, SDL_Color fg)看起來能歡樂的顯示中文,不過這樣就要把這個GUI的核心架構重整一遍了,其實不困難,但是實在無法估計工作量啊,還是GUICHAN認為標籤的名稱用英文就夠了?還是怕寬字元渲染太慢?現在正考慮重整架構中

Saturday, July 9, 2011

好痛啊GUICHAN

這兩天不斷地跟Linker奮鬥,差點被號稱easy to use的GUICHAN,如果用hge作後端就算了,用SDL作後端就是LNK2001、2005、2019、4098不斷亂跳,連U++我都只看一下午而已,這家火卻花了我整整兩天啊...,連介紹的力氣都沒了,指個一個提示,SDLmain.lib會衝突是因為他把main #define成 SDL_main,讓你主程式的main()消失於無形,然後再跟msvcmtf.lib不斷衝突,這不是Linker子系統的問題,把SDLmain.lib槓掉,include SDL_main.h後開檔案,把#define main SDL_main那行註解掉,編譯就能通過了,注意只是通過而已,這會導致跟其他SDL的子系統有銜接問題...,雖然目前測試沒感覺,但到底有沒有更好得解決方案啊,我快掛了=口=,下午來安裝OpenGL作後端好了...

Thursday, July 7, 2011

MSN 封包研究

今天的問題是:

有沒有辦法利用封包偵測器分辨一個人是隱形還是離線?

開一下 Wireshark 就知道,MSN 軟體其實一值在收送各種封包。這樣它才有辦法紀錄好友的狀或是知道 "某某某在打字"。

首先先看看可不可以在封包裡面直接讀我在對話送的言語。可以。所以在公用網路,應該很容易偷聽別人的私語... ...

不久,發現一個可能有小用途的事情:當別人開視窗準備要跟你說話,就會有封包出現。所以可以事先跟他說話嚇嚇他吧。

不過再怎麼弄,都好像沒辦法看到隱藏的人。MSN 軟體如果覺得某人好像離線,會讓很多選項(所有不跟文字對話有關的選項)變暗。原本想說跟離線的人傳檔案之類可能有分辨的辦法,可是根本就沒那個選擇。

所以,(我的)結論是: (我)沒辦法。

也不對,還是有直接開口問人的辦法。

Wednesday, July 6, 2011

Agar實做GUI

今天把VC++2010給廢了,雖然這幾天用起來感覺不錯,編出來的執行檔不會太大、速度也頗快,可是向下支援卻是問題不斷,畢竟有許多好專案是用被大家罵翻的VC6做出來的啊,所以我改用前後支援都不錯的VC++2008了,反正先把基礎框架打好,等那些好用的東西用VC2010的版本出來實在慢慢更新就好,VC2010在開源專案還沒普及啊...

總之後來改裝了2008,先後裝了Boost、SDL狀況不錯,想說乘勝追擊安裝Agar試試,結果變成我至今看到最多Bug的一天,啊對了,Agar是一個用SDL實做的GUI介面,畫面雖然不是噗拎噗拎閃亮亮又經美得那種,不過簡便高效有質感,畫面像是質樸的工藝品一樣也挺有風味的,至於為啥會有一大堆Bug呢?其實是我手癢把專案設置成多執行緒DLL模式了,而我用的Agar版本是基於pthread得多執行緒GUI,結果就跟原生的DLL衝突了,Bug多到VC都停住了呢,原來這就是傳說中的DLL地獄啊,真是百聞不如一見,幸好找到忽略原生DLL編譯的方法,加上官方文件提到的另一個檔案後就沒問題了,不過把警告全開後還是看到一些問題啊,尤其是Boost用VC9重新編譯後會出現一些型態轉換的警告,不過既然是Boost那應該就代表不會出問題了,嘛~~~今天看到的LNKxxxx的xxxx大概破千了吧,在繼續研究吧=W=

http://libagar.org/screenshots.html.en

用C++實做策略模式

為了增加軟體的彈性,現在流行使用一些著名的設計模式使程式與資料型態鬆綁,而策略模式主要用來使物件內的數能夠動態改變,聽起來很好,但是後來發現一個問題,C++如果要動態配置資料的話必須new一個指標,然後在初始化,可是這樣對於型態的相依性不就變得更高了嗎@@

#include < iostream>
#include "fly.h"//定義一個類別,只含有虛擬函數fly()

using std::cout;
using std::endl;

class Duck {
public:
    Duck();
    virtual void display(void) = 0;
    void performfly(void);
protected:
    I_Fly* fly_behavior;//一個飛行行為的物件
};

class Big_Duck : public Duck {
public:
    Big_Duck();
    void display(void);
};

int main() {
    Big_Duck dunky;
    dunky.display();
    dunky.performfly();//讓鴨子飛

    return 0;
}

Duck::Duck() {

}

void Duck::performfly(void) {
    fly_behavior->fly();//這裡,用fly_behavior來決定到底該怎麼飛
}

void Big_Duck::display(void) {
    cout<<"Im a big duck!!!"<<endl;
}

Big_Duck::Big_Duck() {//大鴨子是繼承鴨子的類別
    Fly1 current_fly;//在初始化時決定使用Fly1這種飛行方式(除此之外,fly.h中還有很多其他的飛行方式)
    Fly1 *fly = new Fly1;
    *fly = current_fly;
    fly_behavior = fly;//就是這裡!!!!!!!!!!!!!!!!!!!!!!!!!!一大堆的型態轉換
}

這是很奇怪的,我本來想從型態中鬆綁,實際做起來卻越來越嚴重,但其實這是C++語法才有的問題,在Java中用一個new就可以一行帶過,但這也說明即使是Java只要一接觸到實做(new)就一定會跟型態榜定,因為到這個階段就已經不是抽象方法的範圍了,所以C++花了4行的寫法的問題,其實只有資料型態Fly1一直不必要的重複出現而已,既然我都要實體化物件了,型態當然會統一用同一個啊,可是C++很嚴格,一直逼我指定型態,明明都一樣啊,所以我後來使用樣板函數把
    Fly1 current_fly;
    Fly1 *fly = new Fly1;
    *fly = current_fly;
    fly_behavior = fly;

改成類似於Java的
    fly_behavior = new Fly1;囉~~~=W=

這樣策略模式的實做就很方便了,就算在增加其他的behavior或其他的fly方法,<span style="color:#FF0000"><span style="font-size:x-large;">都不用在更改已經寫好得程式碼囉</span></span>

這是使用設計模式真正的好處,雖然把類別硬是作成這個樣子挺累人的,但是她卻經得起改變,不會因為增加功能就到處修改、DeBug、陷入除錯的地獄中,事實上,打開fly.h,你就知道增加新方法是多麼簡單了=W=

#ifndef __FLY_H__
#define __FLY_H__

#include <iostream>

using std::cout;
using std::endl;

class I_Fly {
public:
    I_Fly();
    virtual void fly(void);
};

I_Fly::I_Fly() {

}

void I_Fly::fly(void) {

}

class Fly1 : public I_Fly {
public:
    Fly1();
    void fly(void);
};

Fly1::Fly1() {

}

void Fly1::fly(void) {
    cout<<"Fly~~~"<<endl;
}

class Fly2 : public I_Fly {
public:
    Fly2();
    void fly(void);
};

Fly2::Fly2() {

}

void Fly2::fly(void) {
    cout<<"Flyyyyyyy"<<endl;
}

#endif
是不是都長一個樣啊~~~~~~~

Monday, July 4, 2011

啊...來玩玩tk吧

這是哪招,怎麼VC6的專案VC++2010打不開,這是什麼世界啊,連Lua都不能裝了啦,害我還跑去看make、cmake、cygwin一些有的沒 的結果連makefile都有Bug喔= =,是不是有人偷改忘了修回來啊...,VC2010真的比較好嗎?CodeBlock有那麼差嗎?搞了半天還是要靠bash嗎?程式越大、引用的原始碼 (澄清!LGPL的源碼很棒,只是太複雜編譯容易出錯)專案在設定上的小細節就越麻煩,拜託,我只寫好好寫程式啊,結果這些東東我剛才竟然得靠nmake 搞定,是不是想把大家逼回Unix的世界啊,雖然我承認那裡很強大,但想不到Unix世界和MS世界溝通這麼麻煩,又不是異度風景還要穿越位面,從之前累 積的經驗現在使我越來越相信真正完全跨平台的專案其實根本就寫不出來了(虛擬機器不算喔)= =+

好了,tk是一個功能強大的腳本語言,其強大的GUI開發能力是有目共睹的,現在也有各個語言的封裝版本,如Ruby、Python、Lua、C++至於怎麼封裝其實不會很難,只要我能把那個VC專案打開我之後一定PO...,所以現在先看看使用Tcl語言的教學網站,另外,一般在windos上都是直接使用安裝版的Tcl\Tk,如果你想像我一樣嘗試一下手動編譯那種溫腥快樂的感覺的話,可以去他的開發網站找原始碼試試看,如果你不斷碰壁的話可以看一下我拿到的回復咒文,掰~~。

cd C:\tcl8.5.10\win
nmake nmakehlp.exe
nmake -nologo -f makefile.vc INSTALLDIR=C:\tools\tcl\8.5.10
nmake -nologo -f makefile.vc INSTALLDIR=C:\tools\tcl\8.5.10 install
cd C:\tk8.5.10\win
nmake -nologo -f makefile.vc TCLDIR=C:\tcl8.5.10\win INSTALLDIR=c:\tools\tcl\8.5.10\include
nmake -nologo -f makefile.vc TCLDIR=C:\tcl8.5.10\win INSTALLDIR=c:\tools\tcl\8.5.10\include install

自製跨平台遊戲,選SDL就對了

之前安裝過SDL,那時候還不太瞭解她厲害在哪,說她是迷你版的DX真的太小看她了,WIKI:SDL是一套開放原始碼的跨平台多媒體開發函式庫,使用C 語言寫成,提供了數種控制圖像、聲音、輸出入的函式,讓開發者只要用相同或是相似的程式碼就可以開發出跨多個平台的應用軟體,多用於開發遊戲、模擬器、媒 體播放器等多媒體應用領域。

原本以為只能跨PC平台,想不到連手機也可以,而且SDL只是一個API使用起來非常方便沒啥限制,目前還有Python的版本,不過效率真的會變太低,還是用C的就好,這裡有完整的SDL教學,從安裝到、動畫製作都有,作者仔細到各個平台、各種編譯環境都有介紹,雖然是用英文寫但是用字潛顯易懂,是難得的好文章,而且他的範例根本是為了作遊戲才出現的,對於想瞭解製作遊戲的基本技巧的人很適合。

之後在試試看跟Squirrel、tk、Ogre結合,另外timer也可以用Boost內建的來寫,到底會變成什麼樣子呢=W=

來喔~好用的Boost喔

常常看到有人在抱怨C++的標準庫內容不夠實用,看看JAVA、Pythov、Ruby不只可以貼圖放音樂,連GUI都是內建的!

好吧,其實那是因為平常用的C++只是皮毛,大家認為的C++的標準函式庫其實只是核心庫,真正的標準內容其實是在Boost!!!!!

簡 單來說,那些用來貶低C++功能不健全的其他語言,其內容、靈感都是源自於Boost,甚至編譯器都是用C寫得...,唉壓壓C++雖然難寫但果然還是最 強啊,搞了半天原來Boost<什麼都有>只是門檻稍高,不過光是編譯就耗了我一段時間,官方文件寫了一堆廢話讓人越看越不懂,要是用 Unix-like的系統大概早就放棄了,不過現在已經編到正則表達式了,嗯~~狀態不錯到現在只花了18分鐘,真是狀大的函式庫啊哈哈。

到底Boost能做什麼還是看這裡比較清楚,太多了懶得講~"~,趕緊練習去~~~

Doxygen產生說明文件

終於有時間仔細一下Doxygen的文件了,先不論註解的撰寫方式,光是組態檔的設定就令人眼花撩亂啊,全部的設定都看完後想來作一個基本功能的組態檔,這樣以後要用比較方便,只要改一改路徑就好了。

DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "project_name"
PROJECT_NUMBER = 1.1.1
PROJECT_BRIEF = "By Fnaith"
#PROJECT_LOGO = {C:/src/}src{n}/{img}/{icon}/{logo.png}#h<=55,w<=200
OUTPUT_DIRECTORY = project_name_document
CREATE_SUBDIRS = YES
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = YES
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = $(SRC_DIR)
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = NO
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
TYPEDEF_HIDES_STRUCT = NO
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_ANON_NSPACES = NO
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
SORT_MEMBERS_CTORS_1ST = NO
GENERATE_TODOLIST = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = NO
GENERATE_DEPRECATEDLIST= NO
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
INPUT = C:\src\class.h #\
# = C:\src\author.cpp \
# = C:\src\qtstyle.cpp \
# = C:\src\templ.cpp
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.h \
*.cpp \
*.hpp
RECURSIVE = YES
#EXCLUDE = $(SRC_DIR)/img
EXCLUDE_SYMLINKS = NO
EXAMPLE_RECURSIVE = NO
#IMAGE_PATH = $(SRC_DIR)/img
FILTER_SOURCE_FILES = NO
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
VERBATIM_HEADERS = NO
USE_HTAGS = NO
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_TIMESTAMP = YES
HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO
GENERATE_DOCSET = YES
DOCSET_FEEDNAME = "Fnaith's Project"
GENERATE_HTMLHELP = NO
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
SEARCHENGINE = YES
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
GENERATE_XML = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
SKIP_FUNCTION_MACROS = YES
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
CLASS_DIAGRAMS = YES
HAVE_DOT = YES
DOT_NUM_THREADS = 0
#DOT_FONTNAME = $(SRC_DIR)/fong/fong.ttf
DOT_FONTSIZE = 10
#DOT_FONTPATH = $(SRC_DIR)/fong/
CLASS_GRAPH = NO
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
HIDE_UNDOC_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = YES
DOT_GRAPH_MAX_NODES = 25
MAX_DOT_GRAPH_DEPTH = 2
DOT_IMAGE_FORMAT = png
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

本來想使用相對路徑的,不過仔細想一想,這其實還要配合各個專案內容的配置,而且必須把設定直接寫在被註解的檔案內,感覺難以更改所以就先算了,改天再來設定Icon跟配色,這樣我的說明文件也可以美每的=W=

附上Doxygen的教學好站可能要換一下編碼方式喔

Monday, June 20, 2011

使用自動化版本控制 with Dropbox & TortoiseSVN & VC++

今天使用了Dropbox,還不錯用檔案同步得很完整,這下不用擔心奇怪的影片沒地方放了=W=

後來馬上想到,之前本來想玩一玩SVN可是卻沒伺服空間,剛好出現了Dropbox,就姑且試一試,
把Dropbox的根資料夾設定成SVN的repository,然後把以前的code塞進去,想不到那麼輕鬆就搞
定了耶=W=,接著把VC2010的專案預設也在這裡建立,這下以後每個專案都有版本控制了哇哈
哈… =口=

比較一般的SVN這樣做的好處有

1.個人或小型團隊合作時建立方便,不用在花時間搞一個正式的sever
2.只要有帳號就能使用,也可以只給檔暗的連結位置讓對方下載
3.電腦不用一直開著等待更新

缺點有
1.這是免費空間…所以不保證資料的存續,當然Dropbox已經做的很好了,不過有風險就先提一下
2.還在想@@

不管是寫程式還是一般的檔案管理,我覺得這都是不錯的方法,有機會大家都該嘗試看看

(※SVN是可以管理如音樂、圖像檔案的,不只有程式碼喔~~)

Thursday, June 16, 2011

C++中除了暫停以外 system還能做什麼?

#include < iostream.h>
void main()
{
   cout<<"程式內容…\n";
   system("pause");
}

以上的形式經常出現在C語言的範例中,用來暫停命令列的畫面好讓我們慢慢瞧,看成是執行的狀況,但是你可曾想過,這個system到底是什麼?

其實,他做的事就是把指令送給系統,以執行系統命令,基本認識系統調用,事實上這也代表能在命令列做的事都可以直接在C程式中完成,甚至可以用C程式呼叫應用程式!

你看出下面的兩個程式會做出什麼事來了嗎?

button.cpp

#include < iostream>
int main() {
    system ("cd C:\\Documents and Settings\\USER\\桌面\\counter\\Release\\&&print.exe =W=");
    return 0;
}



print.cpp

#include < iostream>
int main(int argc, char* argv[]) {

    if(argv[1] != NULL) {
        std::cout << argv[1] << std::endl;
    }
    getchar();
    return 0;
}



看出來的話,自己也來點變化吧=W=
簡單易懂的Dos指令喔!">

Thursday, June 9, 2011

S.R.A.T. - 自指能力測驗


本測驗為 Jim Propp 設計的

S.R.A.T. (Self Referential Aptitude Test)
(答案在下 總共有 20 提)

1. 答案是 B 的第一個題目是第幾題?
(A) 1
(B) 2
(C) 3
(D) 4
(E) 5

2. 唯一答案完全相同的兩個連續題目是哪兩題?
(A) 6 與 7
(B) 7 與 8
(C) 8 與 9
(D) 9 與 10
(E) 10 與 11

3. 答案為 E 的題目共有幾題?
(A) 0
(B) 1
(C) 2
(D) 3
(E) 4

4. 答案為 A 的題目共有幾題?
(A) 4
(B) 5
(C) 6
(D) 7
(E) 8

5. 本題的答案與哪一題的相同?
(A) 1
(B) 2
(C) 3
(D) 4
(E) 5

6. 第 17 題的答案是
(A) C
(B) D
(C) E
(D) 以上皆非
(E) 以上皆是

7. 按照字母順序排列 本題的答案與下一題之答差幾個位置?
(A) 4
(B) 3
(C) 2
(D) 1
(E) 0 (是同個字母)

8. 答案是母音的題目有幾題?
(A) 4
(B) 5
(C) 6
(D) 7
(E) 8

9. 下一個跟本題答案相同的題目是哪一題?
(A) 10
(B) 11
(C) 12
(D) 13
(E) 14

10. 第 16 題的答案是
(A) D
(B) A
(C) E
(D) B
(E) C

11. 在本題之前 答案是 B 的有幾題?
(A) 0
(B) 1
(C) 2
(D) 3
(E) 4

12. 答案是子音的題目數量為
(A) 偶數
(B) 奇數
(C) 平方數
(D) 質數
(E) 可被 5 整除

13. 唯一答案為 A 的奇數題是哪一題?
(A) 9
(B) 11
(C) 13
(D) 15
(E) 17

14. 答案為 D 的題目共有幾題?
(A) 6
(B) 7
(C) 8
(D) 9
(E) 10

15. 第 12 題的答案是
(A) A
(B) B
(C) C
(D) D
(E) E

16. 第 10 題的答案是
(A) D
(B) C
(C) B
(D) A
(E) E

17. 題 6 的答案是
(A) C
(B) D
(C) E
(D) 以上皆非
(E) 以上皆是

18. 答案為 A 的總題數等於答案為什麼的總題數?
(A) B
(B) C
(C) D
(D) E
(E) 以上皆非

19. 本題的答案是
(A) A
(B) B
(C) C
(D) D
(E) E

20.標準化測驗 : 智力 :: 氣壓計 : ?
(A) 溫度
(B) 風速
(C) 緯度
(D) 經度
(E) 以上皆是

(注: 第 20 題的答案是 (E))














測驗解答:





1. D
2. A
3. D
4. B
5. E
6. D
7. D
8. E
9. D
10. A
11. B
12. A
13. D
14. B
15. A
16. D
17. B
18. A
19. B
20. E

Sunday, May 29, 2011

'Dynamic Programming' 的意思


「1950年的秋季我在RAND工作。我的第一個任務是為多階段決策過程﹝multistage decision process﹞取名稱。
一個有趣的問題是,『Dynamic Programming 這個名字從何而來?』。50年代不是研究數學的好年代。在華盛頓,我們有一位非常有趣的,名為威爾遜的紳士。他是國防部長,對於「研究 」這個字眼存有病態恐懼以及仇視。我不是輕忽地使用這個[醫學]名詞, 而是精確的使用它。只要有人在他面前使用「研究 」這個詞, 他的臉就會充血變成紅色,而且他會變得暴力。你可以因此想像他對「數學的」這詞有什麼感想。RAND 公司受僱於空軍, 而空軍實際上就以威爾遜為老闆。因此,我覺得我必須想辦法保護威爾遜和空軍,不讓他們知道我在RAND裡做數學的事實。我能選擇什麼稱謂,什麼名字?起初,我對 planning, decision making, thinking 有興趣。因為各種原因 'planning'不是個好的字眼。 因此,我決定定用 'programming'這個詞。 我想表達的觀念是,這是動態的,這為多階段,這是隨時間變化的,我想,讓我們一箭雙雕。讓我們選個在古典物理學上有絕對精準含意的詞, 'dynamic'。它作為一個形容詞也有很有趣的屬性,那就用 dynamic這詞, 沒有貶抑的感覺。試試看做些可以帶給它貶抑意思的組合。不可能的。因此,我認為 dynamic programming 是一個好名字。這是個連國會議員都無法反對的東西。所以我用它作為我的活動保護傘。」

Tuesday, May 24, 2011

輸電

輸電系統用高壓的原因是因為這樣電流小,所以損失的功率 P=I^2R 就小。可是P=V^2/R 不是嗎? 那高電壓不就有高功率嗎?

要提醒自己,V 是電位。公司道第一個變壓器的電位差很小~

滑鼠

最近滑鼠用左手用後來覺得滑鼠指標也應該改過來

可是現在覺得還是不夠,電腦整個介面應該反過來才對...

Sunday, May 15, 2011

摩天大樓

曾經無聊查了一些摩天大樓(這裡指的是 180 公尺以上的大樓 配合維基百顆上找得到的資訊)的統計。

其實台北有點矮,只有兩棟樓高於 180公尺。(第一棟大家都知道,沒什麼好說的。第二棟是新光。)

再來

東京有 39 棟
首爾 14
孟買 5
香港有 112 棟!而且有 81 棟是在 2000-2009 這十年蓋的!那這十年香港會有什麼變化呢?期待...
新加坡 24
倫敦 8
北京 10
上海有 65 棟而且有 50 棟是前十年蓋的!足以證實上海驚人的發展速。度雖然還是香港蓋得較多,可是以總樓數的百分比來說 速度是比香港快。(這裡有上海 1990 與 2010 年的對照圖片 )

莫斯科 10

洛杉磯 13

芝加哥 47

最後當然要提一下紐約。大家都知道紐約有不少高樓,不過其實只有 89 棟 高於 180 公尺的建築,輸給香港了。


Wednesday, May 11, 2011

塔防遊戲

今天身為勇敢阿兵哥的您,奉命看守幾位戰俘。不幸,他們也勇敢,只要覺得有一點點的機會就會試圖逃生。不過他們還是蠻怕你的,因為你是神槍手,只不過因為戰爭打得很激烈,所以資源嚴重到荒謬的缺乏:你只剩一顆子彈,而戰俘也知道這件事。沒關係,因為牢門很堅固。

有一天 莫名其妙發生了大地震,結果監牢的門開了 (其實牢獄是偷工減料蓋出來的)。支援會來可是要等幾分鐘。

你在這幾分鐘要怎麼辦? 如何防止戰俘逃跑?