2007年11月16日 星期五

Applet資源取用問題

很久沒有寫Applet了,上次撰寫相關的程式應該是大學的時候吧!(約...三年前~)

最近因為比賽的關係,需要使用到Applet,只是沒想到...竟然無法在網頁上執行(使用appletviewer可以正常執行)。在網路上找尋相關的資料,發現原來我的程式有使用內部資源(像是圖片...),而Applet因為安全性的關係,需要做簽章(Signature)的動作才可以使用。

簽章方式:
1. 安裝JDK(這樣才會有keytool、jarsigner工具)
2. 產生jar
└ jar cvf file.jar test.class ※file.jar為產生jar檔案名稱
3. 利用keytool產生key(*.crt)
└ keytool -genkey -alias appletkey ※輸入簽章相關資訊(密碼、姓名...等)
└ keytool -export -alias appletkey -file appletkey.crt ※產生crt檔,檔名為apu.crt
4. 將jar進行簽證
└ jarsigner file.jar appletkey ※會要求輸入剛剛簽章時所用的密碼
5. 轉換html
└ htmlconverter
以上步驟1、3只需要做一次就可以,之後就重覆2、4步驟即可以。

簽章完成後,發現還是無法正確使用資源,原因目前還不清楚(或許是Applet是不允許使用者直接去存取硬碟的資料,而是要直接透過網路的方式下載)。但是如果不進行簽章的動作,連透過http的方式去使用資源,也是會出現access denied的錯誤。

在使用ImageIcon的方式使用圖片,一般會像以下例子去取用資源
ImageIcon img = new ImageIcon("/picture/1.png");
這樣的情況在Applet下,是會出現access denied的錯誤,所以要改成下列的方式去取用資源
URL url = new URL("http://localhost/1.png");
ImageIcon img = new ImageIcon(url);
相關資料參考
JDK Tools and Utilities
JavaWorld

2007年11月5日 星期一

簡轉繁的利器 for Firefox

最近蠻常在逛大陸簡體的網站,發現還是不習慣看簡體字,以前在使用IE時,都有方便轉換的工具,那在Firefox上呢?

在網路上搜尋了一陣子,發現"新同文堂"這套針對Firefox用戶開發的"簡→繁"或"繁→簡"的工具。使用者可以直接在瀏覽的網頁上,使用"右鍵→新同文堂→簡轉繁"就可以將正在瀏覽的簡體網頁轉換成繁體,覺得不錯用,推薦給有使用Firefox的人嘍!

安裝方式:
‧下載"新同文堂"
‧透過Firefox選單中,"檔案→開啟檔案"的方式執行下載的xpi檔。
‧安裝後,重開Firefox即可使用。

2007年10月24日 星期三

Nokia N95 not support "CameraControl"

沒想到Nokia N95竟然不支援CameraControl,都已經支援AMMS了,沒想到只有部份的packages可以正常使用,看來真的要朝Symbain C++邁進了!

AMMS中不支援的packages有:
  • javax.microedition.amms.control.camera

  • javax.microedition.amms.control.imageeffect

  • javax.microedition.amms.control.tuner

詳細資訊

Java ME Developer's Library 1.4

因為無法使用AMMS中camera的packages,導致無法調整J2ME在錄影時的畫質,看來只能使用176x144 15 fps的畫質來進行截取了.....

另外,在撰寫程式時發現,如果直接使用"capture://video"是可行的~
player = Manager.createPlayer("capture://video");
但要調整其編碼方式,如果直接將參數加在後面,在執行程式時會出現exception。例:
player = Manager.createPlayer("capture://video?encoding=3gpp");
or
player = Manager.createPlayer("capture://video?encoding=mp4");
但如果不要使用"capture://video",改為"capture://devcam0"的話就可以更改編碼方式,如下例:
player = Manager.createPlayer("capture://devcam0?encoding=video/mp4");


2007年10月12日 星期五

Samsung and Sun → Java Phone

  10/10時,Samsung和Sun宣怖要合作開發Java Phone與iPhone競爭手機的市場,而且將會比iPhone來的便宜,甚至功能會超越熱賣的iPhone。好奇的是為什麼會與Samsung合作呢?或許是因為Samsung在近幾年在3C產品的技術及創新,不斷的提升的關係吧;不過,根據報導Samsung將提供硬體上的支援,而Sun提供軟體上的技術,期待此合作的產品推出。

  其實Java Phone很早前就提出了(1998年時有提出Java OS與Java CPU),在2006年的JavaOne時,SavaJe這家公司提出了這項產品,或許大家會認為所謂的Java Phone與現在的Java手機game或是軟體有何差異?事實上,差異是很大的,普遍我們看到的Java手機都是在各家公司所研發的OS(Symbian, WinCE等)之上放置所謂的虛擬機器(JVM,手機上也有稱為KVM),而下載的Java遊戲則在此KVM上運行;而SavaJe所提出的Java Phone則擺脫其它的OS,直接將Java VM運行在硬體之上。
(註:SavaJe OS的廣義稱法是SavaJe Mobile Platform,過去手機用的SavaJe OS稱為SavaJe OS Smartphone Edition。)
2006年時JavaOne展示的Java Phone

2007年10月11日 星期四

Ubuntu Mouse "上一頁"功能設定

  最近買了一隻新的滑鼠,發現在Linux上無法像Windows直接可以使用上一頁的功能,造成瀏覽敗家相關網頁的不便。上網找了相關的資料,發現還蠻多資料可以參考,但是網路上大部份都是討論七鍵滑鼠的問題,而我使用的是Microsoft迷你鯊,只有提供六鍵沒有第七鍵。

  如果使用六鍵滑鼠的人,可以將/etc/X11/xorg.conf裡mouse相關設定改為(粗體部份):
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "ButtonMapping" "1 2 3 7 6"
Option "ZAxisMapping" "4 5"
Option "Buttons" "7"
Option "Emulate3Buttons" "true"
EndSection
  上述設定中,ButtonMapping主要是將滑鼠的按鍵mapping到對應數值"1 2 3"分別對應"左 中 右"鍵,"6 7"對應的是滑鼠的"下一頁 上一頁",但是問題來了,因為我的滑鼠並沒有第七鍵的關係,所以必須要將"6 7"對調,變成如上述設定,這樣一來可以第六鍵才可以mapping到上一頁。另外"XAxisMapping"是設定滑鼠滾輪的按鍵。
PS. 如果將Option "Buttons" "7"中的數值改為6的話,滑鼠的上一頁鍵就會變成Button 9,所以才將數值設為7。

  另外如果要測試對應按鍵的數值,可以在使用"xev"指令進行滑鼠按鍵的監測。