2008年11月28日 星期五

抗議台灣雅虎 Yahoo 關閉「芒果日報」事件

(轉貼自Focus on Taiwan)


(楊致遠在美國國會外交委員會聽證會上愧疚的看著師濤的母親. Source: Dailylife.com http://www.daylife.com/photo/04xz8pUgi77jI Photo from Reuter's Pictures)
台灣雅虎關閉芒果日報部落格的事件,若是沒鬧上國際版面,台灣網友將全體遭殃。
這篇文章說明如何讓雅虎奇摩台灣認錯。
以下內容,說明與分析台灣雅虎害怕什麼?如何讓雅虎正視此一事件。以團結台灣網友發動正確有效的國際聲援行動,拯救芒果日報。
台灣雅虎奇摩害怕甚麼?不怕什麼?
台灣雅虎不會怕這事件鬧上台灣任何報章媒體,鬧越大他們越坐收媒體免費宣傳的漁翁之利。
台灣雅虎奇摩會害怕的是,這事件鬧上國際版面,害怕芒果日報事件傳回美國,傳回給那些等著幫Microsoft及Google等利益團體在美國國會磨刀霍霍痛宰Yahoo!的美國國會議員們。因為去年(2007)11月,Yahoo!的楊致遠(Jerry Yang)才剛在20幾個律師的陪同下,到美國國會作證,為雅虎洩露師濤個人資料導致記者被中國政府逮捕並判刑十年的事件向師濤的家人公開道歉。
當時美國國會的外交委員會,甚至斥責Yahoo!涉嫌在國會作偽證。Yahoo!一年之內又再犯,把為台灣民主發聲的芒果日報關站,這事件若妥善向國際說明,將獲得美國國會重視,再回來調查Yahoo! 海外營運的惡劣行徑。

(楊致遠在美國國會外交委員會聽證會上說明師濤事件,背後師濤的母親痛哭失聲的照片,楊致遠為了Yahoo!提供資料一事,向師濤母親道歉 Source: Dailylife.com http://www.daylife.com/photo/01zYaPcaQHe3T Photo from Reuter's Pictures)
各位想一想,若美國國會開始正視這件事情,再把Yahoo!高階主管叫到國會去,台灣Yahoo!的主管會不會遭殃?
該如何做? 策略與方法 -
如何宣傳贏得國際重視、尊敬與積極聲援?
1. 將此一事件以英文說明,發表到各大美國全國與區域型的主流媒體(i.e. Wall Street Journal, New York Times, Washington Post, USA Today, Los Angeles Times, San Francisco Chronicle, San Jose Mercury News, Chicago Tribune等),或留言到各大美國主流媒體的專欄作家部落格上。
2. 透過英文的部落格搜尋引擎,尋找以下關鍵字"Human Rights"+"Yahoo!"+"Shi Tao"+"Arrested"+ "China",你會發現上千個歐美人權運動人士與組織近幾年來為師濤案件積極聲援的部落格,到這些部落格上用英文留言,讓他們知道Yahoo!在台灣又做了這樣傷害言論自由的事情,這些人權運動者不會輕易放過雅虎的。
3. 到美國熱門的股票討論區 - Yahoo!(Nasdaq: YHOO)的Yahoo! Finance Message Board,發表台灣雅虎關閉芒果日報事件的英文訊息留言。這個討論區每天有上萬人在閱讀,一定會讓引起華爾街及美國主流媒體注意。
該如何以西方人可以理解的角度描述芒果日報事件
1. 定位: 芒果日報 (Mango Daily)是一個為台灣民主發聲、強調台灣主權的個人部落格
2. 文章主軸強調普世基本價值: 人權 (Human Rights), 意見表達自由(Freedom of Expression)正在台灣親中政府的壓迫當中快速失去,失去自由民主的台灣將是美國的重大損失。
3. 描述發生原因: 中國特使來台,台灣馬英九政府以犧牲台灣民主人權為代價的方式,試圖換取中國與台灣關係的改善,在政府創造的親中氛圍中,親中媒體為了自身在中國的龐大商業利益,打壓台灣人權與民主的聲音。 此一論點與紐約大學法學院教授(Jeromy A. Cohen)及許多美國主流媒體的看法一致。
4. 關聯與記憶喚醒: 將Yahoo!關閉芒果日報的做法與Yahoo!在2004年與中國政府配合,提供網友資料導致中國網友被逮捕判刑的事件連結,喚起歐美人士對Yahoo!曾協助極權政府侵害基本人權,沒有基本社會責任的深刻記憶,並轉化為對Yahoo!關閉芒果日報的抗議與譴責
台灣網友,為捍衛自己的言論自由與安全,開始行動吧!

2008年11月18日 星期二

Autorun.inf 設定教學

[autorun]是針對PC(機型為386或為更高)的自動運行識別字.
[autorun.mips]是針對MIPS公司的MIPS系列機型.
[autorun.alpha]是針對DEC公司的alpha系列機型.
[autorun.ppc]是針對apple公司的Power PC系列機型.

[AUTORUN] 簡單的指令及說明 
open=要開啟的執行檔檔名, 例如 notepad.exe
shellexecute=要開啟的非執行檔檔名, 例如 readme.txt
Icon=光碟片放入光碟機時於檔案總管顯示的光碟片圖示, 例如 drivericon.ico
label=光碟標籤

[AUTORUN]的指令及其詳解
1、DefaultIcon
含義:指定應用程式的 default 圖示。
格式:
DefalutIcon=圖示路徑名[,序號]
參數:
圖示檔案名:應用程式的 default 圖示路徑名,格式可以為.ico、.bmp、.exe、.dll。當檔格式為.exe和.dll時,需要使用序號來指定圖示。
序號:當檔格式為.exe和.dll時,檔可能包括多個圖示,此時需要使用序號來指定圖示,序號是從0開始的。
備註:
應用程式的 default 圖示將在windows explorer的顯示視窗中取代 Device 的 default 圖示。
圖示路徑名的 default 目錄是 device 根目錄。
2、Icon
含義:指定 device 顯示圖示。
格式:
Icon=圖示路徑名[,序號]
參數:
圖示檔案名:應用程式的 default 圖示路徑名,格式可以為.ico、.bmp、.exe、.dll。當檔格式為.exe和.dll時,需要使用序號來指定圖示。
序號:當檔格式為.exe和.dll時,檔可能包括多個圖示,此時需要使用序號來指定圖示,序號是從0開始的。
備註:

應用程式的 default 圖示將在windows explorer的顯示視窗中取代 Device 的 default 圖示。
圖示路徑名的 default 目錄是 device 根目錄。
當存在應用程式默認圖示(DefaultIcon)時,本命令無效。
3、Label
含義:指定光碟機名稱描述
格式:
Label=描述
參數:
描述:任意文字,可以包括空格。
備註:
建議在建立 ISO 檔時就把 Label 寫入。
4、Open
含義:指定光碟機啟動時執行的程式。
格式:
Open=程式名稱
(程式名稱:程式路徑名 [參數])
參數:
程式名稱:自動執行的程式名稱,必須是.exe、.com、.bat檔,其他格式檔可以使用start.exe打開或使用ShellExecute 指令。
備註:
程式名稱的起始目錄是 Device 的根目錄和系統的$Path環境變數。
5、ShellExecute
含義:
指定 Device 啟用時執行檔。(作業系統支援未知)
格式:
ShellExecute=執行檔路徑名 [參數]
參數:
執行檔路徑名:Device 啟用時執行檔路徑名。可以是任意格式檔。系統會調用設置的程式執行此檔。
參數:參數,根據執行檔作調整
備註:
執行檔的起始目錄是設備根目錄和系統的$Path環境變數。
6、Shell關鍵字Command
含義:
定義 Device 右鍵功能表執行的程式。
格式:
Shell關鍵字Command=程式名稱
(程式名稱:程式路徑名 [參數])
參數:
程式名稱:自動運行的程式名稱,必須是.exe、.com、.bat檔,其他格式檔可以使用start.exe打開。
備註:
程式名稱的起始目錄是設備根目錄和系統的$Path環境變數。
7、Shell關鍵字
含義:定義設備右鍵功能表列描述。
格式:
Shell關鍵字=描述
參數:
關鍵字:用以標記功能表,可以使用任何字元表示,包括空格。
描述:在右鍵功能表中顯示的描述。可以使用任何字元,不能存在空格。
備註:
在同一Autorun.inf檔中,不同右鍵功能表關鍵字不同,相同右鍵功能表關鍵字相同。
右鍵功能表文本中可以使用&設定快速鍵,&&輸出一個&。
Shell關鍵字Command命令Shell關鍵字兩者缺一不可,順序無所謂。
當不存在Open、ShellExecute與Shell命令時,設備啟用時運行第一個設備右鍵功能表指定命令。
8、Shell
含義:定義 Device 啟用時運行的 Device 右鍵命令。
格式:
Shell=關鍵字
參數:
關鍵字:標記過的功能表關鍵字
備註:
Shell指定的關鍵字可以在AutoRun.inf檔的任意部分。
OpenShellExecuteShell指令後定義的優先順序高。

[AutoRun.alpha]部分的指令簡介

[AutoRun.alpha]部分的指令與[AutoRun]部分的指令相同,只不過在基於RISC的電腦光碟機中,[AutoRun.alpha]優先順序高於[AutoRun]
[DeviceInstall]部分指令及其詳解
DriverPath
含義:定義搜尋驅動程式目錄。
格式:
DriverPath=驅動程式目錄
參數:
驅動程式目錄:驅動程式所在目錄,包括其子目錄。
備註:
Windows XP以上支持。
僅CD-ROM支持
當系統監測到一個新的設備時,會提示用戶尋找設備的驅動程式。當用戶點選此CD-ROM時,當[DeviceInstall]部分存在時,系統會按照 DriverPath所標記的路徑出尋找驅動程式。未標記的路徑系統將忽略查找。當[DeviceInstall]部分不存在時,系統將進行完全查找。
如果不希望系統在此CD-ROM中搜索驅動程式,只加一行[DeviceInstall]不加DriverPath命令即可。

2008年11月5日 星期三

(轉貼:酥餅的BLOG)台灣的警察反了

轉貼: http://cgi.blog.roodo.com/trackback/7513593

違反警察職權行使法,台灣的警察反了!

這幾天警察罔顧人權,無法無天,有許多警察執法過當時還聲稱他是按照警察職權行使法,現在就讓我們看看,警察職權執行法寫些什麼?

警察職權執行法
第一條 (立法目的)
規範警察依法行使職權,以保障人民權益,維持公共秩序,保護社會安全,特製定本法。

酥餅:看到了沒有,警察職權行使法規範的是警察,不是在公共區域沒有犯罪行為的一般民眾。

第三條 (不得逾越限度)
警察行使職權,不得逾越所欲達成執行目的之必要限度,且應以對人民權益侵害最少之適當方法為之。

酥餅:這幾天警察的行使職權是以對人民權益侵犯最少的方法嗎?還是他愛怎樣就怎樣?

警察行使職權已達成其目的,或依當時情形,認為目的無法達成時,應依職權或因義務人、利害關係人之申請終止執行。

酥餅:就算警察的目的是不能讓陳雲林有一絲一豪的不悅好了,有多少過渡執法是在陳雲林用望遠鏡都看不到的地方?警察有沒有違法?

第四條 (出示證件表明身分)
警察行使職權時,應著制服或出示證件表明身分,並應告知事由。警察未依前項規定行使職權者,人民得拒絕之

酥餅:看到沒有?警察沒有告知事由,人民得拒絕之。這幾天我們看到多少次,當事人、媒體都大聲問,我犯了什麼法,為什麼要盤查我、為什麼要扛我走,警察連理都不理,照樣強制執行,跟黑道一樣,再說一次,警察沒有告知事由,人民得拒絕之。

第五條 (行使職權致人受傷之救助或送醫救護)
警察行使職權致人受傷者,應予必要之救助或送醫救護。

酥餅:三位被粗暴對待的女網友其中一人手指被警察拉到脫臼,結果被強行送到保一總隊後還不准她就醫,這些違法亂紀的警察,如果不撤職嚴辦,台灣還算法治國家嗎?
奉勸要上街以和平理性的方法表達訴求的民眾,記住這幾條法律,嚴正要求執法的警察遵守「警察職權行使法」,要是遇到連這個辦法是在規範誰都搞不清楚的警察,記下他的警察號碼,這種警察沒有資格領納稅人的薪水!

警察職權行使法全文,從頭到尾讀一遍,你就知道,這幾天警察違法為得有多離譜!

 

詳全文: http://cgi.blog.roodo.com/trackback/7513593

2008年10月29日 星期三

轉貼: 外電翻譯《台灣總統面臨日增的反對力量》

外電翻譯《台灣總統面臨日增的反對力量》

台灣人向來欠缺國際觀,因此選出了有史以來最具有「國際觀」的馬英九「綠卡詐騙集團」。下文為《時代雜誌》在1025大遊行後,綜合之前發生的張銘清「跌倒」事件與即將登場的陳雲林台灣「視察」,所作的分析與評論。
當個有國際觀的台灣人,少聽台灣媒體話唬爛。
原文:Taiwan President Faces Growing Opposition
漢文翻譯:http://jonyao1978.pixnet.net/blog/post/22257960

2008年10月28日,星期二
台灣總統面臨日增的反對力量
MICHAEL SCHUMAN / 香港  與  NATALIE TSO / 台北
不過七個月前,馬英九以台灣史上最高的得票數贏得總統大選,其中一個原因就是他對台灣與中國間,更緊密連結的大膽計畫。馬相信,與快速成長的中國改善關係可提振這個島嶼衰退的經濟。他的計畫也給予了消弭台灣與中國之間緊張關係的希望,當中國依舊將台灣視為叛亂的一省,並宣稱對其擁有主權。在一陣慌亂草率的政策中,馬向中國觀光客與投資客開啟了台灣的大門,同時啟動了首次的兩國直航。
然而,現在的馬英九與其計畫正遭受日益猛烈的砲火。10月25日,由民進黨組織的數十萬(按:約六十萬)民眾在台北街頭對馬政府的親中表達抗議。上週,中國官員張銘清在台南市參觀廟宇時遭到另一群憤怒的抗議民眾推擠而跌倒。抗議民眾特別針對擔任海協會副會長的張銘清,將其視為中國企圖影響台灣的象徵。在此同時,馬英九的支持度已只剩下25%(按:有高估之嫌)。
馬英九改善對中關係的計畫註定在台灣充滿爭議。大約三分之一的台灣人樂見台灣成為一個完全獨立的國家,並懼怕與中國更緊密的關係將導致與中國統一。但對於馬政府的不滿同時來自於不斷的經濟困境。民間對於兩國關係改善的預期效益已有具體事證,例如原本預期大量來台的闊氣觀光客,由於北京方面對於前往台灣觀光的嚴格限制而證明只是空歡喜一場。「我認為,立意良善的兩岸政策已成為經濟不景氣的代罪羔羊。」政治大學的政治學者趙建民(按:現任陸委會副主委)表示。如果時機好一點,我覺得民眾對於中國的態度就不會如此強硬。」
在全球經濟危機籠罩下,馬英九的中國政策欲顯著地振興台灣經濟可能只是緣木求魚。台灣的經濟高度仰賴出口,尤其是對美國與其他國家輸出的電子產品。台灣的出口訂單在今年9月份只比去年同期成長2.8%,是2002年以來最小的成長幅度。10月份的消費者信心指數(consumer confidence index)則是掉到了於2001年首次進行調查以來的最低點。
然而,馬英九似乎執意貫徹他的中國政策,絲毫不顧與日俱增的反對力量。馬英九在1025大遊行之後表示他「將會傾聽人民的聲音,並修正任何不夠完善的政策」,但卻又說「政府的大方向是正確的」,而且自己依然繼續受到大眾支持。撇開台北的大遊行,民調顯示仍有大多數台灣民眾同意馬英九的部份中國政策,例如三通直航。「馬對於大規模遊行的反應將『更加謹慎』」,文化大學的政治學教授楊泰順(按:曾任中國新黨省議員)表示。但「台灣經濟唯一的希望在中國,馬英九除了更加依賴中國之外別無選擇。」
馬英九在下週將面對另一項考驗,台灣與中國的代表將在台北進行另一回合的談判以繼續改善雙邊關係。在野的民進黨已揚言在此期間展開示威抗議。對馬英九來說,化解與中國的紛爭原本就已是困難重重,現在看來更加艱難。

2008年10月23日 星期四

轉貼: Google Android裡頭有什麼?

轉貼 DigiTimes:http://tech.digitimes.com.tw/print.aspx?zNotesDocId=0000075729_A6M61Q6E423GAM68B95IS

前言:Google提出Android手機軟體平台後,使手機軟體的標準化、低價化等議題受到比過往更高的關注,到底Android是否有能力打破多年以來的手機軟體門戶之見?此不僅要審視其策略,其軟體平台技術表現更不能忽視……

##ReadMore##

Google發表名為Android的軟體平台,破除發表前的臆測,認為Google會以gPhone之名發表自有手機,同時所有資訊、網路產業者都高度關注,Android發表後將會對手機市場興起新的波瀾。

有關Android的用意及策略已有太多人觀察與分析,Android期望手機軟體架構能標準化、低價化,如此有助於推行Google的軟體及網路服務。所以,本文就不再對策略及影響等做討論,完全就技術本質的角度來瞭解Android。

嚴格來說,Android屬於資訊技術(Information Technology;IT)領域,而且是IT領域中的軟體技術、軟體工程,與電子工程(EE)有段距離,不過手機在硬體設計之外也無法迴避軟體方面的設計,因此仍有必要對其進行研究、探析。

架構

Android本身是一套軟體堆疊(Software Stack),或稱為「軟體疊層架構」,疊層主要分成三層:作業系統、中介軟體(Middleware,大陸方面稱為:中間件)、應用程式。

若更進一步瞭解,作業系統用的是嵌入式Linux,應用程式方面則只提供主要常用的幾種應用程式,不可能各形各色的應用程式都以Android之名進行開發,否則就失去「以開放性的軟體平台吸引廣大軟體業者、程式設計師開發出支援Android平台的應用程式」的用意。而想開發可在Android平台執行的應用程式,也必須用Java程式語言撰寫才行。

接著是中介軟體,凡是介於作業系統與應用程式間的,多概稱為中介軟體,Android的中介軟體可再細分出兩層,底層為函式庫(Library)及虛擬機器(Virtual Machine;VM),上層為應用程式框架(Application Framework)。

特點

架構是骨,而展現出來的功效特點則為血肉,Android雖然才剛起步,但已經具有如下的功效特點,未來隨著發展則會增入更多的特點:

◆應用程式框架-框架內已經具備多種基礎軟體元件,應用程式可直接呼用這些元件的功效服務,節省應用程式的開發心力及時間,同時程式的再用性、移植性也較高。

◆Dalvik虛擬機器-Android內不是使用標準的Java虛擬機器(Java Virtual Machine;JVM),而是使用獨特的Dalvik虛擬機器,關於此以下將再進行深入的說明。

◆ 整合(網頁)瀏覽器-網頁瀏覽器就是所謂的「主要、常用的應用程式」,Android內建的瀏覽器是用WebKit的瀏覽引擎為基礎所開發成的,WebKit是一個開放原碼專案,許多瀏覽器也都是用WebKit引擎所開發成,如Apple的Safari、Nokia S60手機內的瀏覽器(Web Browser for S60)等。

◆最佳化的繪圖能力-繪圖分為2D與3D,2D方面Android是用一套特有的函式庫,而3D則是使用OpenGL ES 1.0(OpenGL for Embedded Systems)規範的函式庫。

◆SQLite資料庫-SQLite是一套開放原碼的關連式資料庫,其特點在於輕量性(僅500KB左右的容量),適合手持式裝置運用,此外桌上型運算的應用程式也有使用,如OpenOffice.org 2.0版之後就有內建SQLite。

◆媒體支援能力-Android支援多種音訊、靜態視訊、動態視訊格式,如MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等。

◆GSM通話能力-GSM手機的通話能力其實必須在硬體電路層次實現,軟體層次無法實現,只是Android平台要求必須要有GSM通話能力,此項功效特點與其說是特點,不如說是訂立出最低的硬體要求規範。

◆藍牙(Bluetooth)、EDGE、3G、以及Wi-Fi-這些通訊能力一樣屬於硬體層次的功效要求。

◆攝影機(Camera)、GPS定位、羅盤、加速度感測器-這些同樣屬於硬體層次的功效,Android主要是在軟體層面提供支援,如硬體抽象層、應用程式介面等。

◆豐富的開發環境-Android平台強調已備有完善的程式開發環境,其開發環境包括裝置模擬器(Emulator)、除錯工具、程式執行所耗用記憶體、效能等評估功能,另還有一個可用於Eclipse IDE的外掛程式(Plug-in)。

應用程式、應用程式框架

如前所述,Android會內建一些常用的應用程式,且前面已提到一個:網頁瀏覽器,但除了網頁瀏覽器外還有:電子信件收發的用戶端程式、簡訊收發程式、日曆/行事曆、地圖、聯絡簿/通訊錄等。

不過,應用程式不是Android的重點,即便有應用程式也以基礎性、示範性用意為多,另外作業系統也不是重點,重點集中在中介軟體層方面,即是應用程式框架、函式庫、應用程式執行環境等。

先說明應用程式框架,Android本身已在框架中提供許多軟體元件,不過這並不表示所有的應用程式一定要呼用(Call,呼叫、呼用,大陸方面稱為:調用)Android所提供的元件,程式設計師在開發Android平台所用的應用程式時,也可以順帶開發新的軟體元件,並將該軟體元件放入Android 的應用程式框架中。

如此,除了原撰寫的應用程式可以呼用該軟體元件(或稱:應用程式介面,API)外,也可以讓其他的應用程式來呼用該元件。另外,新增、新撰寫的軟體元件並不一定要是新的功效,也可以用來取代或暫代Android原有就具備的軟體元件。

雖然新元件可以取代或暫代舊元件,但不是所有的元件都可以取代,例如安全(Security)方面的功能,就強迫只能用Android平台現有元件,不能被替換成軟體公司、程式設計師自己開發的。此外,軟體元件替換,不僅可由應用程式來決定,也允許使用者自行決定。

框架內的軟體功效元件

若更進一步瞭解,Android在應用程式框架中的軟體元件主要有10個,如Activity Manager(活動管理員)、Window Manager(視窗管理員)、Resource Manager(資源管理員)等,在此無法詳述每個元件的功效,因此以下挑數個重點元件來說明。

舉例來說,Content Providers(內容管理員)負責應用程式與應用程式間的資料存取傳遞,例如某一個應用程式可以去存取通訊錄應用程式內的聯絡人資料。或者呼用 Resource Manager可存取的非程式碼資源,例如:當地性設定(該地貨幣、語言、時間格式)、圖像...等。

再者,應用程式若呼用Notification Manager(通知管理員),則可以在狀態列(Status Bar)的地方設計出應用程式自有的警示(Alert)訊息。至於Activity Manager則提供應用程式的生命週期管理。

函式庫

應用程式框架是貼近於應用程式的軟體元件服務,而更底層則是Android的函式庫,以下列出並說明主要的核心函式庫:

◆System C函式庫(System C Library)-Android具有一套以BSD衍生方式所打造成的「標準C語言系統函式庫,libc」,然後再針對嵌入式Linux裝置的需求進行若干調校。

◆媒體函式庫(Media Libraries)-Android的媒體函式庫是以PacketVideo公司的OpenCORE為基礎所發展成,該函式庫可以播放、錄製多種普遍常見的影音格式。

◆外觀管理員(Surface Manager)-在同時執行多個應用程式時,外觀管理員會負責管理「顯示」與「存取操作」間的對應、互動,另外也負責將「2D繪圖」與「3D繪圖」進行顯示上的合成、疊合動作。

◆LibWebCore-一套網頁瀏覽器的軟體引擎,即是前述WebKit的一部份,該引擎的功效不僅可供Android內建的網頁瀏覽器所呼用,也可以提供具內嵌性網頁呈現效果。

◆SGL-Android在2D繪圖方面的繪圖引擎。

◆3D函式庫(3D libraries)-Android是依據OpenGL ES 1.0 API標準來實做其3D繪圖函式庫,該函式庫可以用軟體方式執行也可以用硬體加速方式執行,其中「3D軟體光柵處理」方面已進行高度最佳化(大陸方面稱為:優化)。

◆FreeType-提供點陣字、向量字的描繪顯示。

◆SQLite-如前所述,SQLite是一套輕量性的資料庫引擎,可供其他應用程式呼用。

Android的執行環境

老實說,Android雖然用Java程式語言來開發、撰寫應用程式,但卻不使用Java Runtime來執行Java程式,而是用Android自有的Android Runtime來執行。而Android Runtime內有兩個重要元件,一是Core Libraries(核心函式庫),另一則是Dalvik Virtual Machine(Dalvik虛擬機器)。

首先是核心函式庫,核心函式庫裡頭已經包含了絕大多數Java程式語言所需要呼用的功效函式,接著每一個Android應用程式都會以自屬的行程(Process,大陸方面稱為:進程)來執行,而且Android不是用一個Dalvik虛擬機器來同時執行多個Android應用程式,而是每個Android應用程式都用一個自屬的Dalvik虛擬機器來執行。

更簡單說,專屬於每一個 Android應用程式的Dalvik虛擬機器等於是一個執行個體(Instance)。事實上Dalvik虛擬機器本身在開發時,就已經是以「能夠同時執行多個虛擬機器」的設想來撰寫。因此:即便同時開設與執行多組VM個體,在硬體資源的運用上與執行流暢性上也都能維持一定的水準表現。

進一步探析Dalvik虛擬機器

接下來我們要更仔細討論Dalvik虛擬機器,甚至從最起頭開始談。

Dalvik虛擬機器是一種暫存器型態的虛擬機器,最初是由Dan Bornstein所發創,另外也有一些Google的工程師參與撰寫。Dalvik在撰寫開發時就已經設想用最少的記憶體資源來執行,以及前述的「同時可執行多個VM個體」。

不過,上述的特性需要Linux作業系統的協助才能實現,例如行程間的隔離、執行緒(大陸方面稱為:線緒)的支援、低階記憶體(大陸方面稱為:內存)管理等。事實上不僅Dalvik虛擬機器如此,Java虛擬機器也一樣有作業系統相依性,不同的作業系統需要不同的Java虛擬機器,各虛擬機器會針對其支援的作業系統再進行各項調整,以便能最佳化執行。

Dalvik虛擬機器有許多地方是參考Java虛擬機器設計,Dalvik虛擬機器所執行的中介碼並非是Java虛擬機器所執行的Java Bytecode,同時也不直接執行Java的類別檔(Java Class File),而是執行一種特有的檔案格式,稱為.dex,Java的類別檔要先透過一套叫dx的編譯工具(功效上等同於Java編譯器)轉換成.dex檔後,才能讓Dalvik虛擬機器執行。

值得一提的是:Dan Bornstein為何將這套虛擬機器軟體取名為Dalvik?Dalvik其實是指冰島北方Eyjafjörður峽灣中的一個釣魚村落,Dan Bornstein的祖先曾在該村落生活過。

作業系統

Android 平台的作業系統用的是Linux,其核心版本為2.6版,Android所用的Linux核心,其包含的功效包括:安全(Security)、記憶體管理 (Memory Management)、行程管理(Process Management)、網路堆疊(Network Stack,大陸方面稱為:網絡堆棧)、驅動程式模型(Driver Model)等,另外也在前述的軟體堆疊與硬體間建立起一個抽象層(Abstraction Layer)。

建構高度開放、高效能運行平台

最後,筆者整個檢視了Android平台,此平台的設計很合乎Google過往以來的風格,Google講究功效單純但功效必須相當強悍,Google的搜尋引擎即是如此,搜尋頁面永遠就是一個文字輸入欄,但搜尋結果相當精準、豐富。同樣的,Android平台與今日一般智慧型手機的軟體平台相比,其功效豐富性並不如一般智慧型手機,甚至只要32MB的記憶體用量就能夠執行。

很明顯的,Google Android的重點在於最低硬體使用量、最開放標準的軟體架構及平台、及讓手機內各項基礎軟體的總花費成本能降至最低,所追求的是最小但也最一致的共通點。

一旦手機有了最小的一致共通點,Google的網路服務及軟體就能大幅發揮,Google除了Internet服務外也力推各種輕量性軟體,由於輕量特性,所以其軟體可以快速移轉到Android手機上執行,並與其Internet服務相呼應。

當然,Android不僅對Google有利,對應用程式開發商、手機消費者、手機服務營運商...等,也同樣呈現利多,一旦Android成為極廣泛通行的手機軟體平台,應用程式業者就可以有新的軟體銷售舞台,且依據Apache v2授權方式,即便應用程式業者以Android平台為基礎撰寫程式,其程式的原始程式碼也不用公開,保證其商業權益。

另Android更有助於降低手機軟體成本,現有智慧型手機內的各類軟體都要收費,如作業系統、文件閱讀器、媒體播放器...等,而Android也具備這些基本功能,重點是分毫不取,如此,將帶給持續收取手機隨附軟體授權費的業者降價壓力。

不過,即便降價也很難因應壓力,軟體業者相互間有門戶之見,而Android的另一項特點是軟體平台的標準化,雖然各軟體業者多少也發展出自有的手機軟體平台,但多半還是要付費,且標準號召性不如Android。

既然手機軟體成本降低,消費者就可以買到更便宜的手機,而手機通訊服務的營運商(如:遠傳電信、中華電信等)自然也能提供更低廉的綁約方案,所以Android對手機基礎軟體業者的傷害最大,但卻對絕大多數人有利。


圖說:Google Android平台是由OHA(Open Handset Alliance)來負責發展及管理,此圖表示OHA、Google Android將能實現各種手機應用及服務。(www.OpenHandsetAlliance.com


圖說:Google Android的標誌圖案,Android一字的原意就是「機器人」。(www.Google.com


圖說:Google Android的架構圖。(www.code.google.com/android


圖說:Nokia S60手機內建的網頁瀏覽器之架構圖,圖中可見WebKit、WebCore的使用。(www.opensource.nokia.com


圖說:Google Android的軟體開發套件(Software Development Kit;SDK)程式畫面,開發套件使用Eclipse(日蝕)的整合開發環境,圖片右下則是Google Android的模擬程式(Emulator)。(www.OpenHandsetAlliance.com


圖說:台灣宏達電子(HTC)構想出名為「Dream,夢幻」的概念手機,該手機即支援呼應Google Android平台。(www.pocketinfo.nl

2008年10月21日 星期二

隱藏檔案


想了很久, 還是使用這個標題, 有人或許會問, 網路上很多加密的軟體, 只要把檔案加密起來不就是隱藏檔案了, 的確這樣是其中一種隱藏檔案的方法, 但是本文要介紹的不是這一類的隱藏檔案的方式, 比較像是 "見山不是山", 的隱藏方法.
近來很多企業會針對 E_mail 做全記錄, 連附加檔案都可以記錄下來, 或是 MSN 傳檔也可以記錄下來, 如果一般加密的檔案, 雖然不容易解開, 但是一看就知道是加密檔, 擺明了此地無銀三百兩, 如果只是傳送圖片一般人都不會注意的.
很多人都有看過 "全民公敵" 這部電影, 影片中就是把一段影片檔, 加密隱藏在一張風景圖中, 底下要介紹的就是如何把檔案隱藏在圖片, 聲音, 文字...等檔案中, 而表面上看起來還是跟原來的檔案一樣, 但是其中已經藏入了檔案, 而不知情的人是不容易(無法)知道裡面放了什麼檔案.

軟體名稱: S-Tools
支援檔案格式: BMP, GIF, WAV
支援加密方式: IDEA, DES, Triple DES, MDC
介面: GUI介面, 可以跑在 WinXP, Vista.
優缺點: 使用 GUI 方便操作, 隱藏檔案有加密處理, 並有 password 保護, 只能有一個被加密檔案, 檔案大小受限於原始檔(圖片檔)的大小, 加密隱藏檔與原始檔二者檔案大小一樣.
使用方法:
隱藏檔案: 執行 S-Tools.exe程式後, 直接將 before.bmp 從檔案總管直接拉進視窗內, 此時會看到 before.bmp 的圖形視窗, 再將要隱藏的檔案 secretinfo.txt 拉進 before.bmp 的圖形視窗內, 此時需要輸入隱藏後檔案的密碼, 和加密的方式, 輸入完後, 選擇 "ok" 會有另一個 hidden data 的視窗跑出來, 在此視窗上按右鍵 Save as..., 存成你要的檔名, 如 hiddenfile.bmp, 這樣就完成了.
還原隱藏檔: 執行 S-Tools.exe程式後, 直接將加密隱藏檔 hiddenfile.bmp 從檔案總管直接拉進視窗內, 在圖形視窗上按右鍵 Reveal..., 再輸入原始密碼, 和原來加密的方式, 按下 "ok" 後就直接將隱藏的檔案解出, 放置在加密隱藏檔同一目錄下.
下載網站: http://www.spychecker.com/program/stools.html

軟體名稱: HIP (Hide in picture)
支援檔案格式: BMP, GIF
支援加密方式: Blowfish, Rijndael with CRC Check
介面: GUI 和 Command 介面, 可以跑在 WinXP, Vista.
優缺點: 使用 GUI 方便操作, 隱藏檔案有加密處理, 並有 password 保護, 只能有一個被加密檔案, 檔案大小受限於原始檔(圖片檔)的大小, 加密隱藏檔與原始檔二者檔案大小一樣, 可以刪除隱藏檔案(需密碼).
使用方法:
隱藏檔案: 執行 winhip_en.exe後, 選擇選單上的 File/Open Picture...打開原始圖形檔如 before.bmp, 再選擇選單上 Image/Hide file...如 secretinfo.txt 此時需要輸入隱藏後檔案的密碼, 和加密的方式, 輸入完後, 選擇 "ok" , 然後再選擇選單上 Image/Save picture as..., 將隱藏加密檔案另存成其它檔名如 hiddenfile.bmp, 這樣就完成了.
還原隱藏檔: 執行 winhip_en.exe後, 選擇選單上的 File/Open Picture...打開隱藏加密檔案 hiddenfile.bmp, 然後再選擇選單上 Image/Retrieve file..., 再輸入原始密碼, , 按下 "ok" 後, 會提示你儲存  Hide file 的目錄和檔名.
官方網站: http://sourceforge.net/projects/hide-in-picture/

軟體名稱: steghide
支援檔案格式: JPEG, BMP, WAV, AU
支援加密方式: cast-128, gost, rijndael-128, twofish, arcfour, cast-256, loki97, rijndael-192, saferplus, weake, des, rijndael-256, serpent, xtea, blowfish, enigma, rc2, tripledes. (詳見官方網站說明)
介面: Command 介面, 可以跑在 WinXP, Vista 的 CMD Mode 下.
優缺點: 無 GUI 操作對於一般使用者較難入手, 隱藏檔案有加密處理, 並有 password 保護, 只能有一個被加密檔案, 檔案大小受限於原始檔(圖片檔)的大小, 加密隱藏檔與原始檔二者檔案大小一樣, 支援最多種加密方法, 安全性較高.
使用方法: (詳見官方網站說明)
隱藏檔案: C:\> steghide embed -cf before.bmp -ef secretinfo.txt -sf hiddenfile.bmp
還原隱藏檔:  C:\> steghide extract -sf hiddenfile.bmp
官方網站: http://steghide.sourceforge.net/index.php

軟體名稱: ADS (Alternate Data Streams)
支援檔案格式: Any
支援加密方式: 無.
介面: GUI 和 Command 介面, 可以跑在 WinXP, Vista 的 CMD Mode 下.
優缺點: 使用 GUI 方便操作, 使用CMD Command 無須另外安裝程式 , 隱藏檔案沒有加密處理, 亦沒有 password 保護, 需另外透過加密軟體先將隱藏檔案加密, 加密碼, 可以隱藏多個檔案在同一個原始檔內, 檔案大小不受限於原始檔的大小, 隱藏檔與原始檔二者檔案大小一樣, 缺點是可以透過 lns.exe, streams.exe 等軟體顯示隱藏檔案, 只能在 NTFS 下操作, 無法透過 mail , 網路, CD/DVD傳送.
使用方法:
隱藏檔案:
type c:\>secretinfo.txt > c:\>hiddenfile.bmp:secretinfo.txt
type c:\>secretexec.exe > c:\>hiddenfile.bmp:secretexec.exe
還原隱藏檔:
cat c:\>hiddenfile.bmp:secretinfo.txt > c:\>secretinfo.txt
cat c:\>hiddenfile.bmp:secretinfo.txt > c:\>secretexec.exe

查看或執行隱藏檔:
type c:\>hiddenfile.bmp:secretinfo.txt
start /B c:\>hiddenfile.bmp:secretexec.exe
相關網站:
http://windowssecrets.com/2007/12/06/01-Hide-sensitive-files-with-Alternate-Data-Streams
http://tw.youtube.com/watch?v=oJ5M-iSK-dM

軟體名稱: copy.exe (M$ CMD copy tool)
支援檔案格式: Any
支援加密方式: 無, 需配合 winrar, 7zip, tar...等工具.
介面:  Command 介面, 可以跑在 WinXP, Vista 的 CMD Mode 下.
優缺點: 使用CMD Command 無須另外安裝程式  , 隱藏檔案沒有加密處理, 亦沒有 password 保護, 需另外透過加密軟體先將隱藏檔案加密, 加密碼, 可以隱藏多個檔案在同一個原始檔內, 檔案大小不受限於原始檔的大小, 隱藏後檔案大小為原始檔加上被隱藏檔案的大小, 缺點是可以透過 工具軟體查看是否有隱藏檔案.
使用方法:
隱藏檔案: 首先針對要隱藏的檔案(目錄)使用 rar 等工具壓縮起來如 (secret.rar). 再執行下面指令.
copy c:\>before.bmp + c:\>secret.rar  hiddenfile.bmp
還原隱藏檔: 在檔案總管下選擇已隱藏檔案如 hiddenfile.bmp, 按右鍵選擇 extract files..., 即可解開隱藏的壓縮檔.
相關網站: http://tw.youtube.com/watch?v=dy_KM3aYeKI

我還沒有找到可以隱藏並加密檔案(訊息)在影片檔內, 如果有人有更好的方式, 請不吝指教....

2008年10月20日 星期一

轉貼: 自由時報報導NASA正名成功(酥餅的BLOG)

感謝自由時報報導NASA正名成功的消息,可能是篇幅的關係,在記者訪問我的時候還有另外三個重點沒有出現在報導中,我想藉這個機會補充。

首先,記者問到我為什麼想做這樣子的事,我的回答是,台灣的國名被任意更改這是台灣國家主權不完整的明證,作為一個國民當然無法忍受這樣的事,而我能想到的就是發動其他的國民,一人一信為台灣發聲,為台灣正名。
第二個重點是,在我的網站歷次為台灣正名的抗議信與抗議步驟都有留存當作紀錄,以後如果網友也發現有矮化台灣的情形,網友可以大方的模仿這些範例,發動自己的一人一信運動,我也會在我的網站幫忙宣傳與動員網友。
最後,一人一信運動之所以能夠成功,依賴的就是大家的熱情參與,在一次又一次正名成功的經驗中我深切的感受到,只要台灣人願意發聲,就有人願意傾聽,只要我們願意做,就一定會成功。

詳全文: 酥餅的BLOG

2008年10月8日 星期三

Hard Disk Bench Mark tool

網路上很多測試工具, 但是常常不知道那些比較好用.
下面這些免費的工具常被用來測試硬碟, 外接盒, 隨身碟或是 SD 的效能.

軟體名稱: HDBENCH
說明: 很簡單的工具, 可以選擇測試的讀寫的大小從1MByte ~ 2000MByte,  測試的項目有 Read, Write, Random Read, Random Write 四項數值. 雖然是日文的, 不過使用起來沒有什麼問題, 而且網路上都有漢化綠色版可以找得到. (可以跑在 Windows Vista 上)
下載位置: http://www.hdbench.net/ja/hdbench/download.html

軟體名稱: HD Tach
說明: 可以看到不同大小讀寫測試的線性圖形, 而且可以知道 Random Access 的時間. (不支援 Windows Vista )
下載位置: http://www.simplisoftware.com/Public/index.php?request=HdTach

軟體名稱: CrystalDiskMark
說明: 圖形化介面, 可以選擇測試的讀寫的大小為50MByte, 100MByte, 500Mbyte, 1000Mbyte, 而且可以選擇測試次數的平均值, 並且有 Sequential Access 的測試以及 4K/512K Random Access 的測試. (支援 Windows Vista, 多國語系, 及綠色軟體 )
下載位置: http://crystalmark.info/software/CrystalDiskMark/index-e.html

2008年9月18日 星期四

見人說人話, 見鬼說鬼話

剛出社會時, 朋友送了句話給我, "見人說人話, 見鬼說鬼話", 當時我覺得, 這句話沒什麼, 只覺得是朋友提醒我剛出社會, 朋友要我圓滑一點, 不要得罪人...
工作沒多久, 想起這句話, 才覺得它的含意更多, 工作上會遇到不同的人, 對於不同的人, 的確要用不同的 "話" 來說同一件事情. 一件事情, 對老闆必須要讓他快速了解原因, 結果, 影響. 對同事, 則要詳細說明過程, 處理方法, 和配合事項. 對下屬 則要讓他們了解執行步驟, 需要的結果...後來發現, 同一件事, 對同一個人, 如果時間地點不同, 說法也應該要不一樣...
後來轉去做業務, 這句話更是適用, 不同的客戶銷售方法一定不同, 這句話就跟性格分析 DISC的銷售方法, 不謀而合. 而同一個客戶對象不同, 銷售的方法也是大不相同, 簡單說, 你跟客戶主管銷售時, 主要應該是這個產品可以帶來的好處, 利益, 效能. 而不是技術規格, 詳細功能等等....
但是業務看多了, 也看到一些爾虞我詐, 某個程度來說也是這句話的應用, 一但這樣, 就很難了解對方真正的想法, 一個偶然, 在雜誌上看到一個短文, 裡面有一句話 "見山不是山, 見水不是水", 這句話打到我心坎裡, 如果能夠了解到對方說的 "話' 的最終含意, 而不只是表面上的話, 那麼才是有用的....這幾年不斷在學習...

最近這幾年,  隱約的看到些不同處, 似乎 "見山是山, 見水是水", 直接看透事情的本質, 利害關係, 才能夠更清楚的了解事實的真象. 後來我才了解 "見山是山,見水是水;見山不是山,見水不是水;見山仍是山,見水仍是水", 是禪學裡的一句. 
第一階段, 看見的是事情的表面(象), 所以"見山是山, 見水是水".
第二階段是反覆的追詢, 了解, 查証進一步了解事情的內含, 所以"見山不是山, 見水不是水"
第三階段是已經能夠直接了解事情本質, 不被外界不實言語迷惑.

傳統--實驗室的猴子

有朋友寄封Mail給我, 仔細想想...自己也常常陷入"傳統"的思維, 而不自覺, 就像那些猴子一樣, 只知道跟隨著前人的腳步, 而常常沒有去了解為什麼...

五隻猴子關在一個籠子裡,籠子上頭有一串香蕉,實驗人員裝了一個自動裝置:若是偵測到有猴子要去拿香蕉,馬上就會有水噴向籠子,這五隻猴子馬上會被淋濕。
首先有隻猴子想去拿香蕉,馬上水噴出來,每隻猴子都淋濕了;每隻猴子都去嘗試了發現都是如此。於是,猴子們達到一個共識:不要去拿香蕉,因為有水會噴出來。
後來實驗人員把其中的一隻猴子換掉,換一隻新猴子(稱為A猴子好了),關到籠子裡,這隻A猴子看到香蕉,馬上想要去拿,結果被其他四隻舊猴子海K了一頓,因為其他四隻猴子認為新猴子會害他們被水淋到,所以制止這新猴子去拿香蕉。這新猴子嘗試了幾次,被打的滿頭包,還是沒有拿到香蕉,當然這五隻猴子就沒有被水噴到。
後來實驗人員再把一隻舊猴子換掉,換另外一隻新猴子(稱為B猴子好了),關到籠子裡,這隻B猴子看到香蕉,當然也是馬上要去拿,結果也是被其他四隻猴子K了一頓,那隻A猴子打的特別用力,(這叫老兵欺負新兵,呵呵!)B猴子試了幾次總是被打的很慘,只好作罷。
後來慢慢的一隻一隻的,所有的舊猴子都換成新猴子了,而噴水裝置也關掉了,但大家還是都不敢去動那香蕉,但是他們都不知道為什麼,只知道去動香蕉會被人扁。

傳統不去反省它,就沒有價值!

"傳統" 並不是不好, 而是如果只知道跟著做, 而不知道為什麼要這麼做, 少了這樣的思考, 就沒有辦法改進, 沒有辦法有變化, 或許人類就不會再進步, 看過 "基地" 小說的人一定知道, 偉大帝國最後就是這樣的下場.
很多人可能都會覺得, 應該沒有這麼嚴重, 我又不是猴子, 不會這麼呆.... ^_^
可是事實上, 因為教育的現況, 和社會的影響, 每個人都有那些猴子的影子在, 不相信...那我舉幾個例子....

中秋節剛過, 相信都有吃到月餅, 但是為什麼中秋節大家都吃月餅 ??
在工作上, 也常常有很多不成文的規定或做法, 前輩總是告訴你, 照著做就對了 ?
走路要靠右走, 吃飯不能敲碗.....?? 
這些你可能天天都照做, 但是是否有想過...為什麼??

想看看下面更嚴格的看法...
系統工程師是不是常常只知道下了某個指令或是乾脆重開機, 系統就可以正常 ...?
程式設計工程師, 是不是現在都只用黑盒子, 而不再去了解黑盒子裡的運作 ...?
只知其然, 而不知所以然, 持續的這樣下去, 少了思考, 變化, 就少了創造, 而整個人的想法就會被限制住, 無法前進!!

2008年9月9日 星期二

JAVA 基本常數與變數

常數
Java中是透過關鍵字 final 來定義常數.
如:  final in example_int=123

變數
(1) 變數名: 區分大小寫, 不能以數字為開頭, 亦不能為保留字.
(2) 變數型別: 請參考下面不同型別之變數說明.
(3) 生命週期(作用域): 通常變數的作用域在 { } 段內. 作用域可分為, 局部變數, 類別變數, 方法參數, , 例外處理參數.
變數宣告格式如下: 
type identifier[=value][,identifier[=value]… ];

##ReadMore##

整數常數
十進制表示: 如 123, -456, 0...
八進制表示: 以 0 為開頭之數字, 如 0123, -0456
十六進制表示:  以 0x 或 0X 為開頭之數字, 如 0x123, -0X456
如需表示長整數之常數, 則可在數值後面加上 l 或 L 如, 123l,  -456L

整數變數
整數變量的類型有byte, short, int, long 四種.
byte: 長度為 1 byte.
short: 長度為 2 bytes.
int: 長度為 4 bytes.
long: 長度為 8 bytes.

浮點數常數
有下面二種表示方法,
(1) 由十進制數字加上小數點表示, 如: 0.123,  -4.567.
(2) 由科學表示法, xxxEyyy 或  xxxeyyy  其中, xxxx為數值, yyy需為整數值.
(3) 浮點數常數一般為高精確度的 double 值(64 bit), 若需表示為低精確度 float 值, 則可在數值後面加上 f 或 F, 如 0.123f, -4.567F.

浮點數變數
有float 和 double 二種, 下面表示他的精確度,
float 32 3.4e-038~3.4e+038
double 64 1.7e-308~1.7e+308

字元常數
(1)字元常數是用單引號刮起來的字元如, 'a', 'B',  支援脫逸字元如, \n, \r, \t...
(2)字元常數是以 2 bytes (16 bit)來表示 Unicode 而不只有表示 ASCII Code. 
\ddd 以八進制來表示字元.
\uxxxx 以十六進制來表示字元.
\\ 表示 '\' 字元.
\r 表示 return 字元.
\n 表示 跳行 字元.
\f 表示 下一頁 字元.
\t 表示 tab 字元.
\b 表示 backspace 字元
 
字元變數
字元變數的型別為 char, 佔 2 bytes (16 bit), 範圍為 0~ 65535.
但有趣的是 Java 的字元變數是可以做運算的, 雖然不清楚如何利用, 但如下例子所示.
int five=5;
char two='2';
char seven=(char)(five+two);//seven='7'

字串常數及變數
字串常數及變數於String類別再行介紹.

布林變數
布林變數只有二個值 "true"及"false", 並非為數值的 1與 0.

2008年9月3日 星期三

JAVA 的特點

Java是一個廣泛使用的網路程式設計語言。

首先,作為一種程式設計語言,它簡單、物件導向、machine independent的架構、具有可攜性、安全性、具有很高的性能。

其次,它利用了網路, Java的小應用程式(applet)可在網路上傳輸, 而不受CPU和環境的限制。另外, Java還提供了豐富的類別庫, 使程式設計者可以很方便地建立自己的系統。

下面我們分別從這三個方面來討論Java的特點, 透過Java與C, C++ 相比, 進一步指出它所具有的優點。

##ReadMore##

一、Java語言

Java語言有下面一些特點: 簡單、物件導向、分散式、保護性、解釋執行、安全、系統結構中立、可移植、高性能、多線程以及動態性。

1.簡單性

Java語言是一種物件導向的語言, 它通過提供最基本的方法來完成指定的任務,只需理解一些基本的概念, 就可以用它編寫出適合於各種情況的應用程式。Java省略了運算符重載、多重繼承等模糊的概念, 並且“自動垃圾收集”簡化了程式設計者的記憶體管理工作。另外, Java也適合於在小型機器上執行, 它的基本直譯器及類別的支援只有40KB左右, 加上標準類別庫和線程的支援也只有215KB左右。

2. 物件導向

Java語言的設計集中於物件及其介面, 它提供了簡單的類別機制以及動態的介面模型。物件中封裝了它的狀態變數以及對應的方法, 實現了模塊化和資訊隱藏;而類別則提供了一類物件的原型, 並且通過繼承機制, 子類別可以使用父類別所提供的方法,實現了代碼的重複使用。

3.分佈性

Java是網路導向的語言。通過它提供的類別庫可以處理TCP/IP協議, 用戶可以通過URL位址在網路上很方便地存取其他對象。

4.保護性

Java在編譯和執行程式時, 都要對可能出現的問題進行檢查, 以消除錯誤的產生。它提供 “自動垃圾收集”來進行記憶體管理, 防止程式人員在管理記憶體時容易產生的錯誤。通過整合物件導向的例外處理機制, 在編譯時, Java提示出可能出現但未被處理的例外, 幫助程式人員正確地進行選擇以防止系統的Crash。另外,Java在編譯時還可辨識類型宣告中的許多常見錯誤, 防止動態運行時不匹配問題的出現。

5.安全性

用於網路環境下的Java必須要防止病毒的入侵。Java不支援指標, 一切對記憶體的存取都必須通過物件的變數函數來實現, 這樣就防止程式人員使用"特洛伊"木馬等欺騙手段存取物件的私有成員, 同時也避免了指標操作中容易產生的錯誤。

6.系統結構中立

Java直譯器生成與系統結構無關的字節碼指令, 只要安裝了Java runtime library, Java程式就可在任意的處理器上執行。這些字節碼指令對應於Java虛擬機中的表示, Java直譯器得到字節碼後, 對它進行轉換, 使其能夠在不同的平台執行。

7.可攜性

平台獨立的特性使Java程式可以方便地被移植到網路上的不同機器。同時, Java的類別庫中也實現了與不同平台的介面, 使這些類別庫可以移植。另外, Java編譯器是由Java語言實現的, Java執行時系統由標准C實現, 這使得Java系統本身也具有可攜性。

8.直譯執行

Java直譯器直接對Java字節碼進行解釋執行。 字節碼本身攜帶了許多編譯時資訊, 使得連結過程更加簡單。

9.高性能

和其他直譯執行的語言如BASIC、TCL不同, Java字節碼的設計使其能很容易地直接轉換成對應於特定CPU的機器碼, 從而得到較高的性能。

10.多線程

多線程機制使應用程式能夠並行執行, 而且同步機制保證了對共用資料的正確操作。通過使用多線程, 程式設計者可以分別用不同的線程完成特定的行為, 而不需要採用全域的事件循環機制, 這樣就很容易地實現網路上的即時交互行為。

11.動態性

Java的設計使它適合於一個不斷發展的環境。在類別庫中可以自由地加入新的方法和變數而不會影響用戶程式的執行。並且Java通過介面來支援多重繼承, 使其比嚴格的類繼承具有更靈活的方式和擴展性。

二、JavaApplet

Java語言的特性使它可以無限地利用網路。Applet是Java的小應用程式, 它是動態、安全、跨平台的網路應用程式。JavaApplet嵌入HTML語言, 通過主頁發布到Internet。網路用戶訪問伺服器的Applet時, 這些Applet從網路上進行傳輸, 然後在支援Java的瀏覽器中運行。由於Java語言的安全機制, 用戶一旦載入Applet,就可以放心地來生成多媒體的用戶介面或完成複雜的計算而不必擔心病毒的入侵。雖然Applet可以和圖像、聲音、動畫等一樣從網路上下載, 但它並不同於這些多媒體的檔格式, 它可以接收用戶的輸入, 動態地進行改變, 而不僅僅是動畫的顯示和聲音的播放。

三、豐富的類別庫

Java提供了大量的類別以滿足網路化、多線程、物件導向系統的需求。

1.語言包提供的支援包括字串處理、多線程處理、例外處理、數學函數處理等,可以用它簡單地實現Java程式的運行平台。

2.實用程式包提供的支援包括Hash Table、Stack、可變陣列、時間和日期等。

3.輸入輸出包用統一的 Flow模型來實現所有格式的I/O, 包括檔案系統、網路、輸入/出設備等。

4.基礎網路包用於實現Socket程式設計。

5.圖形用戶介面包實現了不同平台電腦的圖形用戶介面物件, 包括窗口、菜單、滾動條、對話框等,使得Java可以移植到不同平台的機器。

6.網路包支援Internet的TCP/IP協議, 提供Internet的介面。支援URL連接, WWW的即時存取, 並且簡化了Client/Server的程式設計。

四、Java和C、C++

對於變數宣告、參數傳遞、操作符號、流程控制等, Java使用了和C、C++相同的傳統, 使得熟悉C、C++的程式員能很方便地進行程式設計。同時,Java為了實現其簡單、保護、安全等特性, 也摒棄了C和C++中許多不合理的內容。

1.全域變數

Java程式中, 不能在所有類別之外定義全域變數, 只能通過在一個類中定義公用、靜態的變數來實現一個全域變數。例如:

ClassGlobalVar{

publicstaticglobal_var;

}

在類GlobalVar中定義變數global_var為publicstat-ic,使得其他類別可以存取和修改該變數。

Java對全域變數進行了更好的封裝。而在C和C++中,依賴於不加封裝的全域變數常常造成系統的崩潰。

2.Goto

Java不支援C、C++中的goto語句, 而是通過例外處理語句try, Catch, final等來取代C、C++中用goto來處理遇到錯誤時跳躍的情況, 使程式更可讀且更結構化。

3.指標

指標是C、C++中最靈活, 也是最容易產生錯誤的資料類型。由指標所進行的記憶體位址操作常會造成不可預知的錯誤, 同時通過指標對某個記憶體地址進行顯式類型轉換後, 可以存取一個C++中的私有成員, 從而破壞安全性, 造成系統的Crash。而Java對指標進行完全的控制, 程式人員不能直接進行任何指標操作,例如把整數轉化為指標, 或者通過指標釋放某一記憶體地址等。同時, 數組作為類別在Java中實現, 良好地解決了數組存取越界這一C、C++中不作檢查的錯誤。

4.記憶體管理

在C中, 程式人員通過庫別函數malloc()和free()來分配和釋放記憶體, C++中則通過運算符new和delete來分配和釋放記憶體。再次釋放已釋放的記憶體塊或未被分配的記憶體塊, 會造成系統的Crash; 同樣, 忘記釋放不再使用的記憶體塊也會逐漸耗盡系統資源。而在Java中,所有的資料結構都是物件, 通過運算符號new為它們分配記憶體。通過new得到物件的處理權, 而實際分配給物件的記憶體可能隨程式運行而改變, Java對此自動地進行管理並且進行垃圾收集, 有效防止了由於程式人員的誤操作而導致的錯誤, 並且更好地利用了系統資源。

5.資料類型的支援

在C、C++中,對於不同的平台, 編譯器對於簡單資料類型如int,float等分別分配不同長度的字節數,例如:int在IBMPC中為16位,在VAX-11中為32位, 這導致了代碼的不可攜性, 但在Java中, 對於這些資料類型分配固定長度的位數, 如對int型別, 固定占32位, 這就保證了Java的平台獨立性。

6.類型轉換

在C、C++中,可以通過指標進行任意的類型轉換, 常常帶來不安全性, 而Java中,運行時系統對對象的處理要進行類型相容性檢查, 以防止不安全的轉換。

7.標頭文件

C、C++中用標頭檔來宣告類別的原型以及全域變數、庫函數等, 在大的系統中,維護這些標頭文件是很困難的。而Java不支援標頭檔, 類別成員的類型和取存許可權都封裝在一個類別中, 執行時系統對存取進行控制, 防止對私有成員的操作。同時, Java中用import語句來與其他類別進行通訊, 以便使用它們的方法。

8.結構和聯合

C、C++中的結構和聯合中所有成員均為公有, 這就帶來了安全性問題。Java中不包含結構和聯合, 所有的內容都封裝在類別中。

9.預先處理(Preprocess)

C、C++中用巨集定義的代碼給程式的可讀性帶來了困難。在Java中,不支援巨集,它通過關鍵字final來宣告一個常數, 以實現巨集定義中廣泛使用的常數定義。

2008年8月21日 星期四

MessageBox 常見用法

MessageBox用法
說明: MessageBox是個很常用的控制項,屬性比較多,底下列出了它的一些常用方法,及指出了它的一些應用場合。

##ReadMore##
1.MessageBox("這是一個最簡單的訊息方塊!");
2.MessageBox("這是一個有標題的訊息方塊!","標題");
3.MessageBox("這是一個確定 取消的訊息方塊!","標題", MB_OKCANCEL );
4.MessageBox("這是一個警告的訊息方塊!","標題", MB_ICONEXCLAMATION );
5.MessageBox("這是一個兩種屬性的訊息方塊!","標題", MB_ICONEXCLAMATION|MB_OKCANCEL );
6.if(MessageBox("一種常用的應用","標題",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
return;

附其他常用屬性

系統默認圖示,可在訊息方塊上顯示
X錯誤 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
?詢問 MB_ICONQUESTION
!警告 MB_ICONEXCLAMATION and MB_ICONWARNING
i信息 MB_ICONASTERISK and MB_ICONINFORMATION

按鈕的形式
MB_OK 確定
MB_OKCANCEL 確定和取消
MB_YESNO 是和否
MB_YESNOCANCEL 是和否和取消

返回值
IDCANCEL 取消被選
IDNO 否被選
IDOK 確定被選
IDYES 是被選

補充:
以上訊息方塊的用法是在CWnd的子類中的應用,如果不是,則要MessageBox(NULL,"ddd","ddd",MB_OK); 或MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd為某視窗的控制碼,或者直接用AfxMessageBox。
這裏所列出的屬性只是一些常用屬性,在MSDN中還有更多的屬性

http://download1.csdn.net/down3/20070525/25125621722.rar

2008年8月20日 星期三

好用的網路工具

有時為了偵測網路通不通, 或是要查網站的服務是不是正常, 常常找不到好用的工具....
常常覺得自己的網路好像變慢了, 懷疑電腦上有木馬可是又找不到工具可以看程序的連線狀態...
為了寫網路工具軟體, 可是找不到好用的抓封包的工具...
有興趣的人可以試看看下面幾個軟體



NMap windows 版
功能: Post Scan, Ping IP, WhoIS, NSLookup....網路常用的具.
網站: http://nmap.org/

TCPView
功能: 顯示電腦上正在執行中的 Process 的網路連線狀態
網站: http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx

Ultra Network Sniffer
功能: 除了能顯示電腦上正在執行中的 Process 的網路連線狀態, 還可以將特定的Process的連線封包抓下來, 不過是要$$的, 試用版官網上有.
官網: http://www.gjpsoft.com/UltraNetSniffer/

WireShark
功能: 免費的 Network Sniffer
官網: http://www.wireshark.org

Charles
功能: 免費的個人 proxy , 支援 HTTP Proxy / HTTP Monitor / Reverse Proxy, 主要用途為寫程式時, Monitor HTTP 協定.
官網: http://www.charlesproxy.com/

TeamViewer
功能: 免費的遠端控制的工具, 提供一個非常簡單方便的遠端控制的方式, 可中文化, 可以很方便的幫他人線上解決問題, 個人覺得比 VNC 還好用.
官網: http://www.teamviewer.com/index.aspx

2008年3月8日 星期六

HP Pavilion tx1101

前一陣子把 HP tablet NB downgrade 到 XP, 結果螢幕的旋轉按鈕, 怎麼樣去 HP 找Quick Lunch 的程式或是 driver , 都沒辦法用, 而且其它按鈕好不能用, 到 Mobile01 去爬文, 也找不到跟我相同型號的, 類似的型號, 也都有同樣的問題, 最後只好用 NVIDIA 的應用程式來旋轉, 真是有點痛苦.

##ReadMore##

後來, 我一直在撥號程式上, 一直無法使用, 之前用 PHS, 還以為是大眾電信的問題, 找了幾次support 人員得到的結果, 只能裝 XP, 後來敗了3G的網卡, 以為重裝 3G 的 Drivr 撥號就不會有問題, 結果一樣, 無法撥號, 最後只好乖乖重裝, 以為可以正常, 可惜天不從人願, 還是無法撥號, 怪的是撥號到帳號,密碼驗證都是成功的, 最後一步設定網路時, 就掛了, 最後沒辦法, 只好重裝成 Vista.

裝回Vista 以後, 用到現在, 上面的問題就都解決了, 就只有一個小問題, 在做手寫筆的螢幕校正時, 右下角的十字, 怎麼都校正不到, 如果不校正, 右下方要使用手寫筆去點時, 都會偏差很多, 其它位置倒還好, 再去爬文, 找了老半天, 也是在 Mobile01 的一個小角落有看到類似型號的網友說要先改成 800 * 600 解析度, 再去校正, 校正完了以後, 再改回原來的解析度, 我試了以後, 才解決了這個問題, 不然怎麼點都點不到哩!!

Vista 使用心得

最近這幾天重新安裝我的NB, 把它給升級到 Vista, 才知道 Vista 真的是不好裝. 總共重裝了三次, 遇到了一大堆的問題, 才終於搞定.

##ReadMore##

第一次安裝時, 遇到的最大問題, 居然不知道怎麼搞得, 所有USB外接的設備, 包括隨身碟, 外接盒...接上去NB, Vista 居然都跟我要驅動程式, 怪了, 這些東東不是都隨插即用, 我那裡來的驅動程式可以裝 ? 選 Windows update 也找不到, 用 XP 的方式, 讓系統在windows 下的 system32 或是 inf 裡面去找, 也找不到, 網路上有人建議到 windows\system32\dirvers 或是 windows\system32\DriverStore 裡面去裝, 結果也是不行. 再去爬文, 也有人提到, 要想辦法把 vista 光碟裡的 windows\system32\DriverStore 重解開再 copy 回去, 結果也是沒用. 最後只好重裝, 仔細回想一下, 很有可能是我在裝 office 2003 時, 最後一個步驟, 鈎選了 "刪除安裝檔案" , 導致這樣的結果.....

第二次安裝時, 裝了 Alcohol 120, 結果更慘, 直接給我 Blue Screen, 連開到安全模式都一樣 core dump, 完全開不起來, 只好另外找台電腦, 再去爬文, 原來是 Alcohol 太舊, 可能是虛擬光碟的驅動程式不合, 還好有一招開機時可以按 F8, 有個選項是 "上次正常開機", 終於可以開得起來, 可是我沒有做還原點, 想了想, 怕以後問題更多, 只好再重裝一次

結論是 Vista 不是一個穩定的平台, 最好能在每個應用程式安裝前都要做還原點備份, 而且要確認應用程式可以安裝在Vista 上, 不然安裝完了以後, 開不起來就真的是欲哭無淚了.


參考網站:

Vista 收集整理

茂訊電腦Vista 討論區

微軟技術論壇