- Auto Complete Tag
- 整併了 Auto Close Tag 和 Auto Rename Tag
- Babel ES6/ES7
- Code Spell Checker
檢查程式碼是否有拼錯單字 - Color Highlight
色碼顯示出顏色 - ESLint
- Flow Language Support
支援 flow 的程式碼檢查 - Git Lens
看目前的程式碼是由誰寫出來的 - Prettier - Code formatter
程式碼美化 - React Native Tools
微軟開發的 React Native 開發工具 - Settings Sync
利用 github 的 Gist 來同步設定
2018-01-27
VSCode 有用的 Extension
Visual Studio Code 最近拿來開發 React Native, 記錄一下目前用的 Extension
2014-09-21
PDF 簡轉繁
現在一些技術文件,簡體中文比正體中文多很多,因為實在看不慣簡體字,因此通常會將簡體字轉正體字再看。在瀏灠器上可以使用同文堂, PDF 就沒有可以在瀏灠時直接做繁簡轉換的程式,因此找了一個工具,先把 PDF 內容轉成正體字,再放到 PDF Reader 裡開啟。
如 pdf 檔被鎖定的話,是無法轉換的。
使用工具環境:
- Mac OSX
- python 2
- easy_install
- brew
- translatePDF
安裝步驟
sudo easy_install pdfrw
sudo easy_install fonttools
sudo easy_install chardet
brew install opencc
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”
brew install opencc
sudo mkdir -p /usr/share/fonts/truetype/droid/
sudo curl https://raw.githubusercontent.com/android/platform_frameworks_base/master/data/fonts/DroidSansFallbackFull.ttf -o /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf
git clone https://github.com/tjwei/translatePDF.git
cd translatePDF
在 translatePDF 目錄下,執行以下指令即可轉換 pdf 的內容了:
python2.7 tpdfrw.py /Users/scott/Downloads/Architect.pdf
註: 如 pdf 檔被鎖定的話,是無法轉換的。
2014-09-05
如何追查 SQL Server 的 Deadlock
最近有個客戶常遇到 SQL Server 的 Deadlock 問題,查了一下,追踨 Deadlock 有兩個做法(實際應該是一樣的):
- 使用 SQL Server Profiler 去記錄
- 直接下 SQL 新增追踨
以下是使用 SQL 指令追踨的方法:
- 建立追踨 Deadlock (假定追踨檔是要存在 D:\DbLog\ 下)
-- 運行下述語句後,每當SQL Server中發生死鎖事件,都會自動往文件e:\DbLog\deadlockdetect.trc 中插入一條記錄。 -- 定義參數 declare @rc int declare @TraceID int declare @maxfilesize bigint set @maxfilesize = 5 -- 初始化跟蹤 exec @rc = sp_trace_create @TraceID output, 0, N'E:\DbLog\deadlockdetect', @maxfilesize, NULL -- 此處的e:\dblog\deadlockdetect是文件名(可自行修改),SQL會自動在後面加上.trc的擴展名 if (@rc != 0) goto error -- 設置跟蹤事件 declare @on bit set @on = 1 --下述語句中的148指的是locks:deadlock graph事件(參見sys.trace_events),12指的是spid列(參見 sys.trace_columns) exec sp_trace_setevent @TraceID, 148, 1, @on exec sp_trace_setevent @TraceID, 148, 4, @on exec sp_trace_setevent @TraceID, 148, 11, @on exec sp_trace_setevent @TraceID, 148, 12, @on exec sp_trace_setevent @TraceID, 148, 14, @on exec sp_trace_setevent @TraceID, 148, 26, @on exec sp_trace_setevent @TraceID, 148, 41, @on exec sp_trace_setevent @TraceID, 148, 51, @on exec sp_trace_setevent @TraceID, 148, 60, @on exec sp_trace_setevent @TraceID, 148, 64, @on -- 啟動跟蹤 exec sp_trace_setstatus @TraceID, 1 -- 記錄下跟蹤ID,以備後面使用 select TraceID = @TraceID goto finish error: select ErrorCode=@rc finish: go
- 當發生 Deadlock 後,去查看 deadlockdetect.trc 是哪些 SQL 有問題 (結果中的TextData列即以XML的形式返回死鎖的詳細信息。 )
select fn_trace_gettable('e:\DbLog\deadlockdetect.trc', 1)
- 查詢、暫停和停止服務器端跟蹤
查詢目前有哪些 Traces 正在執行SELECT * FROM sys.traces
暫停某個 Trace-- 第一個參數表示TraceID,即步驟1中的輸出參數(或是從 sys.traces 查詢得到)。第二個參數表示將狀態改為0,即暫停 exec sp_trace_setstatus 2, 0
中止某個 Trace-- 第一個參數表示TraceID,即步驟1中的輸出參數(或是從 sys.traces 查詢得到)。第二個參數表示將狀態改為2,即停止 exec sp_trace_setstatus 2, 2
- 在 Deadlock 的情況下,也可以直接查詢目前正在執行的 SQL
SELECT sqltext.TEXT,req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time, s.host_name, s.login_time, s.login_name FROM sys.dm_exec_requests req CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext INNER JOIN sys.dm_exec_sessions s ON req.session_id = s.session_id where DB_NAME(req.database_id) = '資料庫名稱'
2014-07-24
Windows 2008 單一網卡架 VPN Server
因為偶而需要去大陸出差,需要一個跳板可以突破 GFW ,之前都是利用 SSH Tunnel ,不過在 ipad 上無法使用,因此找了台主機來架 VPN Server。網路上找到的範例教學大多是利用兩張網卡,研究了好久才知道 Windows 2008 是要怎樣設定,步驟如下:
2014-03-18
iOS 7.1 無法利用 http 佈署企業 app
目前開發企業內部使用之 app ,iOS 7 之前,用企業 provision 可以將程式打包成 ipa 檔,利用 itms-services:// 開頭的網址搭配一個描述檔 (plist) 來安裝 ipa 檔,如
itms-services://?action=download-manifest&url=http://www.test.com/app.plist
可是到了 iOS 7.1 之後,就會發生:無法安裝應用程式,因為「www.test.com」的憑證無效。
上網查了一下,才發現原來 iOS 7.1 之後 plist 檔一定要在認可的 https 協定下載,目前可行的方法有:
itms-services://?action=download-manifest&url=http://www.test.com/app.plist
可是到了 iOS 7.1 之後,就會發生:無法安裝應用程式,因為「www.test.com」的憑證無效。
上網查了一下,才發現原來 iOS 7.1 之後 plist 檔一定要在認可的 https 協定下載,目前可行的方法有:
- 為網站購買 SSL 憑證,改走 https 的方式進行安裝
- 使用 openssl 自簽憑證,iDevice 上要先匯入自簽根憑證才可使用
- 將 plist 檔放在別人提供的 https 空間(如 dropbox),再利用此種模式下載安裝
第一種方式就不用講了,第二種方式的處理方式如下:
- 產生自簽根金鑰
openssl genrsa -out myCA.key 2048 - 產生自簽根憑證
openssl req -x509 -new -key myCA.key -out myCA.cer -days 3650 -subj /CN="小虫CA" - 產生網站金鑰
openssl genrsa -out mycert1.key 2048 - 產生 CSR
openssl req -new -out mycert1.req -key mycert1.key -subj /CN=www.test.com - 利用自簽根金鑰
openssl x509 -req -in mycert1.req -out mycert1.cer -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial - 網站使用 mycert1.key 及 mycert1.cer 來加密,iDevice 先匯入 myCA.cer 即可利用 https 連線到網站上了
- 再利用以下網址即可進行網路安裝 ipa
itms-services://?action=download-manifest&url=https://www.test.com/app.plist
第三種方式,可以將 plist 放置 Dropbox 上,步驟如下:
- 將 plist 檔放置 dropbox 下
- 取得 plist 檔的分享路徑,如
https://www.dropbox.com/s/jwwu4p1kctqenva/app.plist - 將 www.dropbox.com 改為 dl.dropboxusercontent.com,如
https://dl.dropboxusercontent.com/s/jwwu4p1kctqenva/app.plist - 將 app 安裝的網址改為使用第三點的 link 即可,如:
itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/jwwu4p1kctqenva/app.plist
2014-01-23
如何在 Genymotion 模擬器上新增 Google Framework
新版的 Genymotion 因為版權問題,android 模擬器中不含 Google Framework ,目前有兩種做法:
Genymotion 2.0.0 版後因正式營利,所以 2.0.0 版後的 ova 內不包括有版權的 gapps 及 ARM library,目前的做法有兩種:
Genymotion 2.0.0 版後因正式營利,所以 2.0.0 版後的 ova 內不包括有版權的 gapps 及 ARM library,目前的做法有兩種:
- 使用舊版含 gapps 的 ova : 官方載點似乎已經找不到了,要各憑本事找
- 在新的 ova vm 中安裝 gapps 及 ARM library
安裝步驟如下:
- 下載相關檔案:
ARM Translation Installer v1.1
Google Apps for Android 4.3
Google Apps for Android 4.2
Google Apps for Android 4.1 - 開啟 Genymotion 模擬器,解鎖到 home screen
- 將 Genymotion-ARM-Translation.zip 拖拉進 vm 的視窗中,進行安裝,裝完後將 vm 重新開機
- 將對應的 Gapp檔案拖拉進 vm 中,進行安裝,裝完後再次重開機,就會有 Google play Store 可以使用了。
參考:
http://forum.gamer.com.tw/C.php?bsn=23805&snA=165002
http://stackoverflow.com/questions/17831990/how-do-you-install-google-frameworks-play-accounts-etc-on-a-genymotion-virtu
2013-02-03
Titanium sdk 如何利用 andriodvm 來加速測試開發
最近利用 Titanium studio 來開發 android app ,發現 android 模擬器真是非常的慢,上網找了一下資料發現 AndroidVM 這個好物,它利用 VirtualBox 來執行,整個速度真是快的不得了。
安裝檔案:
如果要查看 AndroidVM 中 Titanium 的 log,可以在 Console 環境下執行:
adb logcat | grep -G '\(TiAPI\)\|\(TiApp\)'
安裝檔案:
- VirtualBox
- AndroidVM
vbox86p : 手機版, 預設解析度 480×800
vbox86t : Tablet 版,預設解析度 1024×600
vbox86tp : Tablet 版,但有電話的功能,預設解析度 1024×600
gapps : 代表包含 Google 相關服務 (有 Google Play)
houdini: 代表包含 Arm emulation (AndroidVM 是跑在 x86 上,所以反過來需要去模擬 Arm)
安裝步驟可參考:Android Development with AndroVM
那在 Titanium Studio 中要如何直接部署它並且在上面 Debug 呢?
首先,連結 androidVM
要修改 Titanium SDK 的 source code:
要修改 Titanium SDK 的 source code:
~/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/builder.py
將 run_adb(self, *args) 的第三行 command.extend(self.device_args) 註解掉,即可利用 Titanium Studio 的 Android Device 功能直接佈署到 device 中進行測試及除錯了。如果要查看 AndroidVM 中 Titanium 的 log,可以在 Console 環境下執行:
adb logcat | grep -G '\(TiAPI\)\|\(TiApp\)'
2013-01-04
2012-11-19
如何在 OSX 中開啟多個 Eclipse
在 OSX 環境中,預設 Eclipse 只能開啟一個,當我們需要同時間開啟兩個 workspace 時,就需要以指令的方式去開啟另外一個 Eclipse instance:
- 開啟 Terminal
- 切換到 Eclipse 安裝路徑
cd /Application/eclipse - 下指令開啟 Eclipse
./eclipse &
或是
open -n Eclipse.app
參考:
http://stackoverflow.com/questions/118243/open-multiple-eclipse-workspaces-on-the-mac
2012-07-25
如何利用 script 來自動切換 OSX 的網路位置
OSX 有個很方便的功能,可以針對不同的網路環境設定位置 profile,利用切換網路位置來快速調整網路設定。雖然說很方便,但是,每次都要進到網路設定去改,還是有點麻煩。
還好 OSX 有指令可以用來調整,因此我們可以利用指令取得目前使用的無線網路 SSID 來辨斷要切換到哪個網路位置去:
參考:
http://hints.macworld.com/article.php?story=2005010613401823
http://stackoverflow.com/questions/4481005/get-wireless-ssid-through-shell-script-on-mac-os-x
還好 OSX 有指令可以用來調整,因此我們可以利用指令取得目前使用的無線網路 SSID 來辨斷要切換到哪個網路位置去:
參考:
http://hints.macworld.com/article.php?story=2005010613401823
http://stackoverflow.com/questions/4481005/get-wireless-ssid-through-shell-script-on-mac-os-x
2012-06-29
如何開啟 Mac OS X 的 tftp server
執行以下兩個指令就會啟動 OSX 內建的 tftp server 了:
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd
tftp 預設的文件目錄為:
/private/tftpboot
可以修改 /System/Library/LaunchDaemons/tftp.plist 來改變目錄位置(要重啟 tftp server)。
參考來源
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd
tftp 預設的文件目錄為:
/private/tftpboot
可以修改 /System/Library/LaunchDaemons/tftp.plist 來改變目錄位置(要重啟 tftp server)。
參考來源
2012-03-03
iPhone 如何利用 socks proxy 上網(不需 jailbreak)
iPhone iPad 本身上網的設定並沒有可以利用 socks proxy 的方式,所以我們可以利用自動組態檔的方式來處理,方法如下:
參考:
http://snipplr.com/view/16563/how-to-connect-to-a-socks-proxy-from-an-unjailbroken-iphoneipod-touch/
http://thireus.dareyourmind.net/index.php/thireus-home-news/8-general-announcement/112-pac--ssh-tunneling--iphone--success-
http://thireus.dareyourmind.net/index.php/iphone-hacks/115-how-to-get-socks-proxy-ssh-tunneling-to-work-on-a-jailbroken-iphoneipod-touchipad
- 在電腦(如 192.168.11.1)建立一個 socks proxy ,如利用 ssh:
ssh -N -g -D 1080 某主機ip
在一台 web server 上放置一各自動組態檔,內容如下:
192.168.11.1
function FindProxyForURL(url, host) {
return "SOCKS:1080";
}
紅字的部份是對應 proxy 主機的 ip在 iphone 上使用此自動組態檔即可,如:
http://192.168.11.1/mysupersecretproxy.pac
參考:
http://snipplr.com/view/16563/how-to-connect-to-a-socks-proxy-from-an-unjailbroken-iphoneipod-touch/
http://thireus.dareyourmind.net/index.php/thireus-home-news/8-general-announcement/112-pac--ssh-tunneling--iphone--success-
http://thireus.dareyourmind.net/index.php/iphone-hacks/115-how-to-get-socks-proxy-ssh-tunneling-to-work-on-a-jailbroken-iphoneipod-touchipad
2011-09-23
Git 與 subversion 透過 http proxy
小弟公司對外都要透過 proxy 才能存取,而我又常需要抓取外部 svn 或 github 中的程式碼下來參考,因此研究了一下如何設定 proxy 讓 git 與 svn 使用。
環境:
編輯 ~/.subversion/servers 檔案,設定 globe 的 http-proxy-host 與 http-proxy-port
在 svn checkout 時改用 http 或 https 協定即可:
svn checkout http://flot.googlecode.com/svn/trunk/ flot-read-only
Git
設定好環境變數 http_proxy 與 https_proxy 即可。
在 git clone 時改用 http 或 https 協定即可:
git clone http://github.com/carlhuda/janus.git ~/.vim
參考
http://realchecko.blogspot.com/2007/05/git-over-http-proxy.html
環境:
- MacBook Pro with OSX Lion 10.7.1
- svn, version 1.6.16
- git version 1.7.4.4
編輯 ~/.subversion/servers 檔案,設定 globe 的 http-proxy-host 與 http-proxy-port
在 svn checkout 時改用 http 或 https 協定即可:
svn checkout http://flot.googlecode.com/svn/trunk/ flot-read-only
Git
設定好環境變數 http_proxy 與 https_proxy 即可。
在 git clone 時改用 http 或 https 協定即可:
git clone http://github.com/carlhuda/janus.git ~/.vim
參考
http://realchecko.blogspot.com/2007/05/git-over-http-proxy.html
利用 VirtualBox 附的 VBoxManage 將vmdk/vhd轉換為VDI格式
VBoxManage clonehd source.vmdk target.vdi --format VDI
參考:
http://blog.tenyi.com/2009/12/convert-from-vmdkvhd-to-vdi-format.html
http://nfolamp.wordpress.com/2010/06/10/converting-vmdk-files-to-vdi-using-vboxmanage/
- clonehd : 告訴 VBoxManage 要複制虛擬硬碟檔案
- source.vmdk : 來源檔案
- target.vdi : 目地檔案
- --format VDI : 指定目地檔案的格式,來源檔案的格式似乎會自動判斷
轉換完後就可以在 virtualbox 中建立新的虛擬環境,並使用 target.vdi 進行開機使用了。
參考:
http://blog.tenyi.com/2009/12/convert-from-vmdkvhd-to-vdi-format.html
http://nfolamp.wordpress.com/2010/06/10/converting-vmdk-files-to-vdi-using-vboxmanage/
2011-09-09
CSS 解決網頁連續英數字文字太長而導致版面撐大的問題
一直以來,當網頁遇到連續的英文數字時,總是會無法斷行造成版面被撐大,以前的做法都是在文章中插入 br
來強制換行,今天終於找到利用 css 就可以控制版本並強制換行了。
一開始找到的方式是在 css 加上
結果發現在 Internet Explorer 上是 ok 的,在 Firefox 上是無效的。
後來又找到另外一個方法,在 css 上加上:
然後再利用 wordwrap.xml 來處理:
結果發現這個方式 firefox 最新版本已經不能用了。
最後找到的方法,在 css 上加上:
這樣 ie 與 firefox 都能使用了。
範例: 結果
參考:
http://www.minwt.com/?p=93
http://www.cnblogs.com/analyzer/articles/1285732.html
http://blog.longwin.com.tw/2008/06/css_word_wrap_fix_too_many_word_2008/
http://hacks.mozilla.org/2009/06/word-wrap/
一開始找到的方式是在 css 加上
word-wrap: break-word; word-break: break-all;
結果發現在 Internet Explorer 上是 ok 的,在 Firefox 上是無效的。
後來又找到另外一個方法,在 css 上加上:
word-wrap:break-word; word-break:break-all; -moz-binding: url('./wordwrap.xml#wordwrap'); overflow: hidden;
然後再利用 wordwrap.xml 來處理:
結果發現這個方式 firefox 最新版本已經不能用了。
最後找到的方法,在 css 上加上:
word-wrap:break-word; overflow: auto; width: 600px;
這樣 ie 與 firefox 都能使用了。
範例: 結果
data:text/html;charset=utf-8;base64,Q29uZ3JhdHVsYXRpb25zISBZb3UndmUgZm91bmQgdGhlIGhpZGRlbiBtZXNzYWdlIQ0KDQpUbyBjbGFpbSB5b3VyIHByaXplLCB2aXNpdCBodHRwOi8vZ2V0ZmlyZWZveC5jb20gdG9kYXkhDQoNCkZyZWUgYnJvd3NlciBpbiBldmVyeSBib3ghDQo%3D
參考:
http://www.minwt.com/?p=93
http://www.cnblogs.com/analyzer/articles/1285732.html
http://blog.longwin.com.tw/2008/06/css_word_wrap_fix_too_many_word_2008/
http://hacks.mozilla.org/2009/06/word-wrap/
2011-09-01
如何利用 vnc 控制 android 手機
小弟平常都是電腦利用手機來上網,最近一直在想,是不是有辦法從電腦控制手機,這樣就不用在電腦與手機中間換來換去,後來發現一個好東西:Droid Vnc Server,一個在 android 上執行的 vnc server ,安裝後就可以利用 vnc client 或是 browser 來控制手機了。
使用方式:
安裝完後,直接點選程式清單中的 droid VNC server
進入之後
先按 menu 進行設定 vnc 密碼:
設定 vnc 密碼:

設定完密碼後,就可以啟動 server 了。
如上圖,啟動完 server 後,便會出現 vnc 的連線資訊,可以利用 vnc client 連到 192.168.43.1:5901 或是利用 browser (必需安裝好 java 環境)連到 http://192.168.43.1:5801 即可控制手機了。
另外,因為 vnc 沒有手機上的 home 鍵及 menu 鍵,因此直接由鍵盤上的按鍵來代替:
參考資料
http://opensourceexcedio.wordpress.com/2010/10/28/droid-vnc-server/
使用方式:
安裝完後,直接點選程式清單中的 droid VNC server
進入之後
先按 menu 進行設定 vnc 密碼:

設定完密碼後,就可以啟動 server 了。
如上圖,啟動完 server 後,便會出現 vnc 的連線資訊,可以利用 vnc client 連到 192.168.43.1:5901 或是利用 browser (必需安裝好 java 環境)連到 http://192.168.43.1:5801 即可控制手機了。
另外,因為 vnc 沒有手機上的 home 鍵及 menu 鍵,因此直接由鍵盤上的按鍵來代替:
- 滑鼠右鍵 = home
- Home = home
- Page Up = menu
- Page down = call
- Esc = back
- Del = back
- End = phone sleep
參考資料
http://opensourceexcedio.wordpress.com/2010/10/28/droid-vnc-server/
2011-08-24
如何在 Archlinux 下安裝 ATHEROS AR8151/AR8152 網路卡驅動程式
小弟使用的 Linux 版本為:Archlinux 2010.05 ,因為這個版本內建並不支援 ATHEROS AR8151/AR8152 網路卡,而 archlinux 的官方文件也說明不支援,因此需要自行編譯。 其步驟如下:
解決方式為:
參考資料
http://blog.csdn.net/maosanwan/article/details/6059826
http://code.google.com/p/kyosls/downloads/list
- 首先,要先下載 AR81Family-Linux-v1.0.1.14.tar.gz 。
wget http://kyosls.googlecode.com/files/AR81Family-linux-v1.0.1.14.tar.gz - 解壓縮
tar -xzvf AR81Family-linux-v1.0.1.14.tar.gz ./ - 到 src 目錄編譯並安裝(編譯安裝的驅動位於/lib/modules/版本-generic/kernel/drivers/net/atl1e 目錄下)
cd src
make install - 找入驅動
modprobe atl1e - 查看是否正確
lsmod|grep atl1e
正常的話可以看到
atl1e 57012 0
dmesg|grep Network
正常的話可以看到
Atheros(R) AR8121/AR8113/AR8114/AR8131/AR8132/AR8152 PCI-E Ethernet Network Driver - version 1.0.1.14 - 啟動 eth0
ifconfig eth0 up - 如果一切都正常,再把 atl1e 加上 /etc/rc.conf 的 modules 中即可。
解決方式為:
cd /usr/src/版本/include/linux
ln -s ../generated/autoconf.h .
ln -s ../generated/utsrelease.h .
ln -s ../generated/autoconf.h .
ln -s ../generated/utsrelease.h .
http://blog.csdn.net/maosanwan/article/details/6059826
http://code.google.com/p/kyosls/downloads/list
2011-06-17
Linux console 下如何解開 kernel26.img
- 建立暫存路徑
mkdir /tmp/kernel
- 將 kernel26.img 複制到暫存路徑,並將附檔名改為 .gz
cp /boot/kernel26.img /tmp/kernel/kernel26.gz
- 到暫存目錄 /tmp/kernel 下利用 gunzip 解開 kernel26.gz
cd /tmp/kernel gunzip kernel26.gz
- 目前下會剩下 kernel26 這個檔案,再利用 cpio 解開:
cpio -ivd --no-absolute-filenames < kernel26
2011-01-25
在 apache 中隱藏你的 server 資訊
一般我們安裝完 apache httpd 後,預設錯誤頁面會將 server 的版本資訊顯示出來,這樣是非常危險的,如果剛好那個版本有漏洞就容易遭到駭客入侵。
那如何把這些資訊隱藏呢,只要調整 httpd 的一個設定即可,在 httpd.conf 中把 ServerTokens 的值改為 Prod:
ServerTokens Prod
以下是在 httpd.conf 中的設定值,及 Apache 在 header 的回應
ServerTokens Full
Server: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/1.0.0a DAV/2
ServerTokens OS
Server: Apache/2.2.15 (Unix)
ServerTokens Minor
Server: Apache/2.2
ServerTokens Minimal
Server: Apache/2.2.15
ServerTokens Major
Server: Apache/2
ServerTokens Prod
Server: Apache
所以設定成 ServerTokens Prod 應該是比較好的選擇
參考資料
http://www.backup.idv.tw/viewtopic.php?t=821
2011-01-17
Java 程式如何透過 Proxy 連線
最近因為一些工作上的需要,連線上網都需要穿透公司防火牆的限制。目前是使用 ssh tunnel 的方式加上 proxycap (windows) 或 proxychains (Linux) 穿透,但是 proxycap 或 proxychains 無法應用在 java 程式上,因此找了一下 java 程式使用 proxy 的方法:
- Http Proxy:
在 java 執行參數加上
-Dhttp.proxyHost=proxyServer -Dhttp.proxyPort=proxyPort
或是程式中加上:
System.setProperty("http.proxyHost", "proxyServer");
System.setPropery("http.proxyPort", "proxyPort");
- Socks Proxy:
在 java 執行參數加上
-DsocksProxyHost=proxyServer -DsocksProxyPort=proxyPort
或是程式中加上:
System.setProperty("socksProxyHost", "proxyServer");
System.setPropery("socksProxyPort", "proxyPort");
訂閱:
文章 (Atom)