2012年3月23日 星期五

在 ubuntu 11.10 上執行 .jar

假設 ubuntu 完全是剛灌好的狀態,會需要先安裝 JRE
然後把 eclipse 上的專案匯出成 jar 檔,設定 Manifest 以後再丟到 ubuntu 上執行。
以下就一步一步記錄我的執行流程!

安裝 JRE

因為目前我的網路環境不知道為什麼抓不到 sun-jdk,所以還是先用 ubuntu 原本的 openjdk
openjdk 6 的安裝方法:

sudo apt-get install openjdk-6-jdk

2012年3月22日 星期四

在 ubuntu 11.10 安裝 Apache2 + PHP5 + MySQL + phpMyAdmin

聽說舊的 ubuntu 版本可以裝 Lamp,不過好像 ubuntu 11 沒有 Lamp 可以安裝
所以只能自己一個一個裝了~
原本找到的網路資料現在一時找不到.....
但下的指令蠻簡單的:

sudo apt-get install apache2 php5 mysql-server

以上指令會把 Apache2、PHP5、MySQL 都裝進來
其中我裝進來的版本分別如下。

  • Apache2:Apache/2.2.20 (Ubuntu)
  • MySQL:5.1.61-0ubuntu0.11.10.1
  • PHP:5.3.6-13ubuntu3.6

有可能需要測試下面這個指令 XD

sudo apt-get install libapache2-mod-php5

2012年3月21日 星期三

提昇資料庫效率的方法:Partition

原本要找的是 AUTO_INCREMENT 爆掉的問題該怎麼處理
意外找到這個可以提昇資料庫效率的方法~
詳細說明可以直接看下列的參考資料

參考資料:
1、通過分區(Partition)提升MySQL性能(一)
2、通過分區(Partition)提升MySQL性能(二)
3、mysql 的 partition 與 auto_increment

在 [1] 的效能測試中,建了兩個資料表,一個使用 Partition、一個沒使用
然後用隨機產生的資料填入 800 萬筆資料,測試找出時間是 1995 年間的所有資料
在沒有做 Partition 的資料表中花了 38 秒,有做 Partition 的則只花了 3 秒多~
當資料有顯著的分區效果時,做 Partition 可以降低搜尋資料的時間~

不過後來又找到 [3],同時使用 AUTO_INCREMENT 跟 Partition 時 MySQL 可能會有問題....
目前暫定的作法是使用 Partition、放棄 AUTO_INCREMENT
用其他 INDEX 來盡可能達到類似 AUTO_INCREMENT 的 PRIMARY KEY 效果~

2012年3月20日 星期二

在 Java 中寫入 XML 檔案:使用 dom4j

dom4j 官方網站:http://dom4j.sourceforge.net/
在 Java 存取 XML 的方法好像有不少,會選 dom4j 是因為據說它效率還不錯,而且用法簡單!

以下直接舉一個寫入 XML 的例子
我是先建立一個 XMLConstructor 的 Class,然後在 main 去呼叫它~

2012年3月15日 星期四

使用網路爬蟲(Crawler)擷取網頁資料:以 niocchi 為例

這個標題寫得很像論文的標題 XD
不過總之目標是要抓網頁內容下來。

Open Source 的 Web Crawler 可以參考 [1]
網路上比較多人使用的好像是 Heritrix,不過我看了一下他的資料還是不太會用 XD
Crawler4j 原本要使用,但後來也不知道怎麼用,所以又繼續 survey 了
最後我選擇的是 niocchi....原因嘛...其實沒什麼特別的原因 XD
主要優點大概是它號稱使用 NIO 來進行 crawling,還有它最後更新時間是 2011 年!XD

niocchi 官方網站可參考 [2]。

2012年3月2日 星期五

安裝 jProfiler6 到遠端的 Linux 主機

jProfiler 簡介就免了~
我的主要目的是想追蹤 JVM 上的 thread 狀況
看那些我開出來的 thread 是不是在任何情況都會正確地被關閉。

公司給的 JProfiler 6.2.4 有包含 Windows 的 GUI 跟 Linux 的 jprofiler_linux_6_2_4.tar.gz
安裝時首先要先把遠端機器上的 tomcat 關掉,接著按照以下的流程: