Pages

2011年2月19日 星期六

JaveSE Sample

圖片連續播放範例 - 使用 Applet
import java.awt.Image ;
import java.awt.Graphics ;
import java.awt.event.ActionEvent ;
import java.awt.event.ActionListener ;
import java.applet.Applet ;
import javax.swing.Timer ; // 利用 Timer 觸發事件

public class Animation extends Applet implements ActionListener {

Image[] imgArray ;
Timer timer ;
final int imgPerSecond = 10 ;
final int latency = 10000/imgPerSecond ; // 延遲時間單位為毫秒
int id = 0 ;

public void init() {
imgArray = new Image[imgPerSecond] ;
for( int i = 0 ; i < color="#666666">// 逐一載入影像檔案
imgArray[i] = getImage( getCodeBase(), i+".gif" ) ;
}

public void start() {
timer = new Timer( latency, this ) ; // 計時器時間到時會通知this(動畫測試)物件
timer.start(); // 啟動計時器
}

public void paint( Graphics g ) {
g.drawImage( imgArray[id], 0, 0, this ) ;
}

public void actionPerformed( ActionEvent event ) { // 計時器時間到時被呼叫的方法
id = ( id + 1 ) % imgPerSecond ;
repaint() ; // 此方法會清除繪圖區之後呼叫paint方法
}

}
使用時,在 Html 檔案中加入
其中 *.class 為要載入的 class 檔,寬高可自行設定。

Advantage of StringBuilder

在 J2SE 5.0 後新增的 API,在這之前處理字串是使用 java.lang 中的 String,不過 String 物件是不可修改內容【註一】,因此會造成每修改一下,就有新物件產生,如此在效能上會造成影響,以下是程式碼說明使用 String 和 StringBuilder 上的差異...

public class StringBuilderUsed {
public static void main( String[] args ) {
  String text = "" ;

long beginTime = System.currentTimeMillis() ;
for( int i = 0 ; i < 10000 ; ++i )
text = text + i ; // 使用 String 串接
long endTime = System.currentTimeMillis() ;

System.out.println( "執行時間:" + ( endTime - beginTime ) ) ;

  StringBuilder builder = new StringBuilder("") ;

beginTime = System.currentTimeMillis() ;
for( int i = 0 ; i < 10000 ; ++i )
builder.append( String.valueOf(i) ) ; // 使用 StringBuilder 串接
endTime = System.currentTimeMillis() ;

System.out.println( "執行時間:" + ( endTime - beginTime ) ) ;
}
}

執行後的結果:
使用 String 的執行時間:6187 ms
使用 StringBuilder 的執行時間:16 ms
【註一】乍看之下我們可以任意讀寫 String 物件中的內容,事實上,當你修改裡頭的內容,系統會新增一個 String 物件來擺放你修改後的值,而原先的 String
物件則會放置到 string pool,詳細參考 Java SE 6 技術手冊。

2011年2月9日 星期三

快速復原遺失的「顯示桌面」捷徑

  在工作列的快速啟動裡有一個很好用的捷徑,叫做「顯示桌面」,點一下就可以把所有視窗最小化,方便存取桌面項目或是重新開啟需要的視窗。##ReadMore##

  不過總是有人會不小心把「顯示桌面」刪除,或是不知道拖到哪裡去了,這裡有一個快速復原的方法:
開始 -> 執行
regsvr32 /n /i:u shell32

一般模式與安全模式的差別

Windows 作業系統 “安全模式” 的應用:
安全模式是 Windows 用於修復作業系統錯誤的專用模式,是一種不載入任何驅動的最小系統環境,用安全模式啟動電腦,可以方便用戶排除問題,修復錯誤。



進入安全模式的方法是:啟動電腦,在系統進入 Windows 啟動畫面前,按下 F8 鍵 ( 或者在啟動電腦時按住 Ctrl 鍵不放 ),在出現的啟動選項功能表中,選擇
“Safe Mode”,即可以安全模式啟動電腦。那麼安全模式到底有哪些用途呢?下面就讓我們具體來看一下。


1.修復系統故障


如果 Windows 運行起來不太穩定或者無法正常啟動,這時候先不要忙著重裝系統,試著
重新啟動電腦並切換到安全模式啟動,之後再重新啟動電腦,系統是不是已經恢復正常了?
如果是由於註冊表有問題而引起的系統故障,此方法非常有效,因為 Windows 在安全模式
下啟動時可以自動修復註冊表問題,在安全模式下啟動 Windows 成功後,一般就可以在
正常模式 ( Normal ) 下啟動了。


2.恢復系統設置


如果用戶是在安裝了新的軟體或者更改了某些設置後,導致系統無法正常啟動,也需要進入
安全模式下解決,如果是安裝了新軟體引起的,請在安全模式中卸載該軟體,如果是更改了
某些設置,比如顯示解析度設置超出顯示器顯示範圍,導致了黑屏,那麼進入安全模式後
就可以改變回來,還有把帶有口令的螢幕保護程式放在“啟動”功能表中,忘記口令後,導致
無法正常操作該電腦,也可以進入安全模式更改。


3.刪除頑固文件


我們在 Windows 下刪除一些文件或者清除回收站內容時,系統有時候會提示 “某某某文件
正在被使用,無法刪除” 的字樣,有意思的是,通常這些文件並沒有正在被使用,那麼是否
讓這些文件永遠霸佔我們的硬盤呢?請不要著急,重新啟動電腦,並在啟動時按下 F8 鍵進
入安全模式,試著刪除那些頑固文件並清空回收站看一看,沒了!原來 Windows 已經放棄
了對這些文件的保護,可以把它們刪除了。


4.徹底清除病毒


現在病毒一天比一天多,殺毒軟體也跟著天天更新。但是,在 Windows 正常模式下有時候
並不能乾淨徹底地清除病毒,因為它們極有可能會交叉感染,而一些殺毒程式又無法在 DOS
下運行,這時候我們當然也可以把系統啟動至安全模式,使Windows只載入最基本的驅動程
式,這樣殺起病毒來就更徹底、更乾淨了。


5.磁片碎片整理


在碎片整理的過程中,是不能運行其他程式的,因為每當其他程式進行磁片讀寫操作時,
碎片整理程式就會自動重新開始,而一般在正常啟動 Windows 時,系統會載入一些自動
啟動的程式,有時這些程式又不易手動關閉,常常會對碎片整理程式造成干擾,這種情況
下,我們就應該重新啟動電腦,進入安全模式,安全模式是不會啟動任何自動啟動程式的,
可以保證磁片碎片整理的順利進行。

阻擋 FOXY 的簡易實作方法


  這篇就技術人眼光,沒有什麼寫的價值。只是近一個月的測試下來,非常的管用,特此分享給大家。筆者最近因為搬家(本來自己一條 ADSL),網路也換了一條。新的宿舍用的是房東牽的 ADSL (使用 IP 分享器)。因為我租的是學生宿舍區,開學前網路都很順暢。開學後大概沒三天,網路就癱瘓了(大家狂抓 p2p)。這種事情大家當然都會遇到,可是大家也心知肚明,找房東是沒有用的,偷拔網路線更是沒有用。更機車的是,Foxy 是 random port,想擋也擋不了。全擋只開放特定 port,IP 分享器又會設到死。難道就這麼束手就擒嗎?筆者網路癱瘓後的幾個小時,我就找到瞭解決之道。溜進(我不是 hack 唷,純粹只是管理密碼是預設的 XD)IP 分享器,對 IP 分享器寫下幾條規則:

1. 走 5000 以後 port 的協定通通幹掉。
2. 不是 DHCP 外的 IP 不受此限。
( 這個是為了如果你自己要走一些奇怪 port 的 ftp,自己方便啦)
這個原理是建立在著名通訊協定、通訊軟體都 port 號碼都很小的基礎上。一般 P2P 軟體為了閃防火牆規則都會亂指定 port,擋無可擋,但只要稍微留意一下他們選的 port ,其實大半都在 6000 ~ 20000 之間。Foxy 不能指定 port。自然遇到這個規則就會被擋光光。
這段規則設下去的一個月至今,筆者網路每天都順暢無比,推薦大家使用。( 可縮到 4000 .. 記得不要縮太小)
——- 

後記:
當然有人會問,這個規則這麼簡單,很可能就會被懂的人破了吧。
其實也未必:
1. 除了你以外,沒有人知道分享器被設了這個規則。正常人只會以為這個 IP 分享器設計良好,竟然什麼 P2P 都不會 work。不會有人想到被動了手腳,除非擋到不該擋的軟體。
2. 就算跑不動 P2P,也沒有人會鬧到房東(也許更剛好你自己就是房東)那裡去,或要求房東改善XD。
3. 絕大多數使用 Foxy 的人,對網路通訊協定一無所知。甚至連基本的網路設定都一竅不通(只知道插上網路線能開網頁就好了)。懂得調自己電腦設定閃這種規則少之又少。就算他跑去求助電腦高手,可能連異常事件都描述不清楚。
雖然不是什麼深奧的 tips,不過歡迎大家在自己 ip 分享器上實驗看看 XD

--
引自 http://blog.xdite.net/

常見 IP 分享器預設帳號密碼

常見IP分享器(NAT/Router)之預設管理介面密碼

IP分享器(NAT/Router)預設密碼是?
如果您有架站的需求(如架設雷電FTPD/HTTPD

/MAILD/DNDS的伺服器),或甚至要使用P2P等的軟體,您就有機會使用到IP分享器(NAT/Router)的管理介面來開所謂的PORT
Mapping(Fowarding),通常這個介面都是必須透過IE來存取,也必須輸入預設的管理者帳號與密碼,然而絕大多數的用戶根本不曉得這個密碼是什麼,而且說明書可能也丟了,因此出現設定上的困難。這邊我們特別整理常見的分享器管理介面及密碼清單,供架站人士參考。




各大分享器品牌預設管理者網址及密碼清單(如資料有誤以原廠為準)
D-LINK
DI-524,DI-604,DI-624,DI-707,DI-804HV,DI-724,DI-784,DI-634等分享器 預設管理網址
http://192.168.0.1/ 帳號 admin 密碼 (空白)




聯強
LM-IS6400等分享器 預設管理網址 http://192.168.1.254/ 帳號 (空白) 密碼 (空白)


華碩 ASUS
WL-500G等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 admin


久森PCI (PLANEX COMMUNICATION INC.)
BRL-04R等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 0000
BRC-14VG-BT等分享器 預設管理網址 http://192.168.1.1/ 帳號 密碼 第一次登入時設定
BRL-04UR等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 0000
BLW-54MF等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 admin
BLW-54MR等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 0000
BLW-54PM等分享器 預設管理網址 http://192.168.1.1/ 帳號 (空白) 密碼 0000
BLW-54VP等分享器 預設管理網址 http://192.168.7.1/ 密碼 admin
BLW-HPMM等分享器 預設管理網址 http://192.168.1.1/ 帳號 admin 密碼 0000
BRC-W14VG-BT等分享器 預設管理網址 http://192.168.1.1/帳號 密碼 第一次登入時設定


友旺ABOCOM
WR254等分享器 預設管理網址 http://192.168.1.254/ 帳號(改密碼後自動設為) admin
WR214G等分享器 預設管理網址 http://192.168.1.254/ 帳號 admin 密碼 (空白)
FSM610等分享器 預設管理網址 http://192.168.1.254/ 帳號 admin 密碼 (空白)
CAS5047等分享器 預設管理網址 http://192.168.1.254/ 初次設定免密碼
CAS3047等分享器 預設管理網址 http://192.168.1.254/ 帳號 (空白) 密碼 (空白)


BIG5 Encode Problem


  以前常常會聽到"許蓋功"這個令人聞之色變的三個字,為什麼他常會造成軟體無法正常解譯呢?原因在於,當這三個以Big5做編碼時,仔細看一下他們的編碼形式可以發現:
   
               「許」(0xB35C)
               「蓋」(0xBB5C)
               「功」(0xA55C)
               「育」(0xA87C)


  在低位元的地方 - 5C - 所對應的 ASCii 碼是 "\",程式執行時會把這個視為跳脫字元;另外看到「育」的低位元 - 7C - 所對應的 ASCii 碼是 "|",程式執行時可能就把它認作是 pipe 了。


  一般的解決方法,是額外增加 "\" 的字元,因為 "\\" 會被解釋為 "\",所以"成功\因素"這個字串就能無誤地被程式當作 "成功因素" 的字串來處理。


  但是額外的困擾是,有些輸出功能並不會把 "\" 當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了 "\"

1byte 也要斤斤計較


  為了要利用 BCB TMemoryStream 製作出含有 BMP 格式的圖檔串流,我就得把我的 row data [註1] 做一次重排,因為 BMP 對於圖檔像素的擺放依序是左下->右上、BGR」。這也使得,如果計算擺放位置的時 index 差了一個,甚至差了幾個位置,就會導致圖片顏色錯誤,甚至內容斜一邊,如以下連結:


文字斜取 黑白文字出現黃藍邊緣


顏色錯誤 顏色正確 圖形黑色邊緣出現黃藍邊


  如果把失敗的圖片利用 photoshop 放大來看,就會發現白底黑字的文字部分,其實文字邊緣都有黃色和藍色線條,這就是因為錯位造成的,例如:


... 00 00 00 ff ff ff ff ff ff 00 00 00 ... ===============> ... 00 00 00 ff ff ff ff ff ff 00 00 00 ...
黑色 白色 白色 黑色 算錯一個index 黃色邊緣 黑色 藍色邊緣

所以真的是斤斤計較,影像處理上須注意,當然啦,這是基本功。

[註1] 擺放順序依序是圖片的「左上->右下、RGB」。

微軟的 cl 編譯器


微軟從 Visual C++ 時代一直採用的編譯器稱做 cl,到現在 .NET 也有採用,這是用來產生原生的二進位檔。如果下載一個 source code,而資料夾中含有 .bat,
用來編譯原始碼的批次檔,應該就會看到以片段:


set CC=cl
set CFLAGS=/DWIN32 /I.. /I..\goo /I..\fofi /O2 /nologo
set CXX=cl
set CXXFLAGS=%CFLAGS% /TP
set LIBPROG=lib
set LINKFLAGS=/MT /nologo
...
...


代表程式是用 cl 編譯器去做編譯。切記!執行這個批次檔不能使用 cmd.exe,因為他看不懂 cl 是啥,所以要使用微軟的小工具,以 .NET 2005 而言,
可以在 "開始 -> 所有程式 -> Microdoft Visual Studio 2005 -> Visual Studio Tools" 中看到 "Visual Studio 2005 命令提示字元" 連結,
要用這個去啟動批次檔才行。對這個連結點下右鍵、內容,可以看到它實際的路徑是:

%comspec% /k ""C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86

這個命令提示字元會再去會執行其他批次檔,它才知道 cl 是啥麼東東。

跳線製作及使用方式

拿到一條線後有兩個接頭,線的排列方式為:

接頭 1:

1. 白橙色
2. 橙 色
3. 白綠色
4. 藍 色
5. 白藍色
6. 綠 色
7. 白棕色
8. 棕 色

接頭 2:

1. 白綠色

2. 綠 色

3. 白澄色

4. 藍 色

5. 白藍色

6. 澄 色

7. 白棕色

8. 棕 色

完成後,兩端各接上一部電腦,IP 隨便設定皆可,如:

192.168.1.1 192.168.1.2
255.255.255.0 255.255.255.0

接者分享的資料夾對方就可以看到了

IDE 排線

硬碟排線中的Master與Slave

小編: Candice | 十月 16, 2006 on 6:12 pm | 分類 火線話題 |
很多自己組電腦,或者自己買硬碟回來裝的使用者,一定會 常常遇到一個問題,那就是硬碟、光碟機傳輸資料用的排線在安裝時,常常搞不清楚那邊是頭,哪邊是尾,沒弄好的話,馬上就會發生硬碟抓不到、光碟機有時抓得 到有時抓不到等等問題,嚴重的話,可能還會造成無法順利開機等等。

這些問題基本上在更新為SATA規格後就不會再遇到了,不過,現在市面上還是會有一些IDE介面的硬碟、光碟機,還是得用舊式的硬碟排線來與主機板連接。如下圖,一般的硬碟排線(IDE傳輸線)就長這樣:
 

主機板端

Slave端
Master端

※圖片來源:Seagate官方網站說明文件

一般IDE介面的硬碟機、光碟機與傳輸線,除了插接主機板的那一端之外,其他兩個插頭都會區分「Master」端或「Slave」端。如上圖,左邊藍色的接頭主要是安插在主機板上用的,右邊兩個靠比較近的接頭分別是外側的「Master」端與中間的「Slave」端。

當我們在安裝硬碟或光碟機時,接在「Master」端的硬碟機或光碟機,必須將硬碟機上的「JUMPER」設定為「Master」。接在「Slave」端 的硬碟機或光碟機,必須將硬碟機上的「JUMPER」設定為「Slave」。這樣一來,當傳輸資料用的硬碟排線中同時安裝了兩個硬碟時,主機板才知道,哪 個硬碟是頭,哪個硬碟是尾,抓資料時才不會跑錯地方。
如圖,當我們要安裝舊型的IDE硬碟機時,一般硬碟機的外殼上都會有一張如下圖的貼紙,從貼紙中的圖示我們可以得知硬碟上的小「JUMPER」怎樣插才是「Master」,怎樣才是「Slave」。

※圖片來源:Seagate官方網站說明文件

以上圖的Seagate硬碟為例,當我們將圖中7、8兩個端點以「JUMPER」插接後,這個硬碟便會被視為是「Master」,此時,就要把硬碟排線中的「Master」端插在這台硬碟中。

當我們把「JUMPER」取下,什麼都不接時,這個硬碟便會被視為是則為「Slave」,此時,就要把硬碟排線中的「Slave」端插在這台硬碟中。

以後,只要知道怎樣分辨排線的「Master」端或「Slave」端,再設定好硬碟機上的「JUMPER」,安裝硬碟就不會是什麼困難的事情了。
http://blog.3cbank.com/?p=1546

各 ISP 伺服器位址


各家ISP伺服器位置整理
Hinet 中華電信
類別主機位置適用地區
DNS168.95.192.1(主) 168.95.1.1(次)全區
Proxyproxy.hinet.net:80全區
SMTPmsa.hinet.net全區

SeedNet
類別主機位置適用地區
北區 DNS139.175.55.244(主) 139.175.252.16(次)台北, 桃園, 新竹, 宜蘭, 花蓮, 苗栗
中區 DNS139.175.150.20(主) 139.175.55.244(次)台中, 彰化, 南投, 雲林
南區 DNS139.175.10.20(主) 139.175.55.244(次)高雄, 台南, 嘉義, 屏東, 台東
Proxyproxy.seed.net.tw:8080全區
NEWSnews.seed.net.tw全區
SMTPseed.net.tw全區

速博
類別主機位置適用地區
DNS61.56.211.185(主) 211.78.130.2(次)全區
SMTPsmtp.sparqnet.net全區

SO-Net
類別主機位置適用地區
DNS61.64.127.1(主) 61.64.127.2(次)全區
SMTPso-net.net.tw全區

GIGA-Net
類別主機位置適用地區
DNS203.133.1.8(主) 203.187.0.6(次)全區
DNS203.133.1.6(次) 203.133.1.7(次)全區
SMTPasmtp.giga.net.tw全區

TTN台灣電訊
類別主機位置適用地區
DNS202.145.138.200(主) 202.145.136.4(次)全區
SMTPsmtp.ttn.net全區
POP3pop.ttn.net全區
Newsnews.ttn.net全區
FTPftp.ttn.net全區
proxyproxy.ttn.net:8080全區

東森亞太
類別主機位置適用地區
DNS210.200.211.225(主) 210.200.211.193(次)全區
proxyproxy.apol.com.tw:8080全區
SMTPsmtp.apol.com.tw全區

億聯光纖
類別主機位置適用地區
DNS61.57.159.130(主) 61.57.159.135(次)全區
SMTPsmtp.3a.net.tw全區

煎牛排


好吃的牛排有幾個條件


一、挑選:無腥臭 色澤紅潤、油脂分佈均勻
二、形狀:厚度最好為1吋到1吋半
三、處置:


前處置 


1、不能洗:如果有血水的話用紙巾擦乾即可,不要用水洗。


2、不能冷凍:冷凍會讓牛肉裡的血水結成冰晶,而退冰之後
那些血水其實就是肉汁,冷凍退冰之後的牛肉不管再怎麼
烹調都只會煮出牛肉乾了,所以如果想吃多汁鮮嫩的牛排
切記千萬不要冷凍!!新鮮的牛肉買回來可以冷藏三天,
烹調前回溫30分鐘即可


3、不能醃:如果你想吃牛肉的原汁鮮味!就絕對不能醃!因
為當鹽跟醬油碰到牛肉的時候,滲透壓的原理會讓肉汁釋
出,結果就是會變成很鹹的牛肉乾!最理想的烹調方式就
是在烹調的前五分鐘,在表面上塗抹一些鹽,然後再灑上
一層現磨的粗粒黑胡椒即可!


烹調:好吃牛排的祕訣就是在鎖住其中的肉汁
煎:平底不沾鍋塗上一層薄油,將火候開至最大,待表面非常
熱的時候(手掌離鍋面兩公分,支持不到一秒就是夠熱了)
就放上牛排,不蓋鍋蓋,以一吋厚的牛排為例的話,一面
五分鐘,即可取出,這時牛排約為五分熟,切開會微帶血
,如果想再熟一點的話,每面加熱一分鐘可至七分熟,此
時切開會呈粉紅色不帶血,但是不建議超過七分熟,因為
肉質跟肉汁都會大打折扣,就失去了吃原汁牛排的意義了(PS:這裡應該是用小火煎)


(本來還有烤箱的方法,但是因為每個烤箱的火力設計不同,差異性太大
所以不提供此方法,如有興趣,請再洽詢)


另外提供一個簡單測試熟度的方法,用食指壓一下牛排的表面
如果可以壓出一個凹洞,然後慢慢彈回來,那大約是3~5分熟
如果壓下去不太凹,但很有彈性的話,大約是6、7分
如果根本壓不下去的話 那就是太熟了!


後處置:牛排可不是烹調完就可以上桌的!還要休息一下,休息是西
餐基本烹調手法!準備二層厚的鋁箔紙將剛烹調好的五分
熟牛排包裏住(牛排跟鋁箔紙之間要留一些空間,不要壓死)
約十分鐘,這麼做的目的有二:


1、讓牛排表面的高溫繼續加熱內部,將內部悶熟,所以之前
只要烹調3~5分熟即可,這樣可以維持肉質嫩度。
2、高溫加熱時肉汁會往外擴散,休息可以讓組織的肉汁吸收
回來,這樣才不會一切開肉汁就流滿盤,剩下的肉就不好
吃了


休息完成後,即可把牛排放在溫熱過的瓷盤,即可上桌。
另外給你一個牛排部位的參考:


腓力米濃(Filet Mignon):油脂少,肉質最細,也是價格最高的
丁骨(T-bone):一邊是紐約克,一邊是腓力,適合大胃王,價格也不低
沙朗(Sirloin):油脂較少,肉質較硬,價格稍低,但烹調時間不易掌握,不是
入門的推薦肉種
紐約克(New York strip):油脂分佈均勻,肉質實在,價格普通
肋眼(Rib Eye or Prime Rib):油脂分布均勻、肉質嫩、價格還好


以上,最為推薦的就是紐約克跟肋眼,你可以嘗試看看喔!




* 熱鍋不要太久,免得肉放下去後產生的油煙太大。
* 一開始大火只為了讓表面快速熟透,封住肉汁,無需拘泥於時間,大約即可。
 
Blogger Templates