:::

網頁式科學探究學習環境WISE的編譯與安裝 / WISE Development: Compilation and Installation

布丁布丁吃布丁

網頁式科學探究學習環境WISE的編譯與安裝 / WISE Development: Compilation and Installation

image

我們實驗室接手網頁式科學探究學習環境WISE並開發成合作網頁式科學探究學習環境CWISE已經有幾年的經驗,而這一篇則是要回顧原本的WISE是如何編譯與安裝,以便後續進行更深入的功能開發。


WISE與CWISE的差異 / The difference of WISE and CWISE

WISE原本是美國柏克萊大學Marica Linn教授的計劃成果,主要是提供國小到高中的學生透過網路瀏覽器進行科學探究的學習。WISE建置了大量的資料蒐集與分析工具,以支援教學研究的進行。

CWISE則是由我國的國立臺灣師範大學科學教育研究所、國立高雄師範大學科學教育暨環境教育研究所與我所在的實驗室——國立政治大學圖書資訊與檔案學研究所三個研究團隊,在科技部計畫的贊助之下,將 WISE網頁中文化,架設了CWISE網頁,並依各團隊的專長——生物、理化及地球科學三個科目,每個科目各發展完成兩個課程,共計六個課程模組,並已經在CWISE首頁上開放預覽。(介紹來自CWISE使用說明)

WISE與CWISE的架構都是採用JSP Servlet,背後是以Java Spring Framework這個Java全站開發知名的框架架設而成。因此在編譯與部署時,都是採用Java的方式來進行即可。


環境 / Environment

開發與運行所需要的環境並不一樣,兩者也可以在不同的平臺上進行。只是本篇我們先以WISE為例子來介紹如何在Windows作業系統上編譯與安裝。

開發環境 / Development Environment

開發環境所需要的功能是取得原始碼與編譯。WISE的原始碼已經在GitHub發佈,可以直接下載最新版本,或是在releases中找尋對應的版本。例如CWISE使用的4.6版本各別保存在WISE-VLE—Deprecated--WISE-Portal—Deprecated--裡面。在編譯上,像是採用了Java Spring的大型系統通常會搭配Apache Maven這套自動化編譯工具,WISE也是要用Maven來編譯。

但是我們也不需要個別下載或用指令來操作,實際上有更簡單的方法:使用整合開發環境IDE。而這邊我推薦使用的是NetBeans。

image

NetBeans已經內建了Git跟Maven的功能,我們可以直接用NetBeans從GitHub下載原始碼、建立專案、並且編譯,一氣呵成。操作的細節將會在下面介紹。

運作環境 / Runtime Environment

WISE是JSP Servlet應用系統,一般常搭配Apache Tomcat 網頁伺服器來運作(以下簡稱Tomcat),此外還需要MySQL資料庫搭配使用。在Windows環境中,我們可以直接安裝XAMPP即可。它集合了Tomcat與MySQL,並且提供了容易操作的個性化操作介面GUI,是適合開發與入門的伺服器安裝包。

blog image172

2015-08-05_192009

安裝XAMPP之後,要先從控制面板開啟Tomcat跟MySQL服務,另外為了管理MySQL,我們還需要開啟Apache。開啟按鈕如上圖紅框所示。

2015-08-05_192851

比較需要說明的是XAMPP的Windows安裝版本的路徑,這跟一般的Tomcat運作環境不一樣。如果XAMPP安裝在D:\底下的話,那Tomcat的網頁則是放在「D:\xampp-5.6.8\tomcat\webapps」之中。以下我們將該路徑簡稱為 [webapps]。

image

MySQL的控制則可以使用phpMyAdmin。預先安裝的話,phpMyAdmin的網址如下,僅能用localhost登入,但不用輸入密碼。


如何編譯WISE / How to compile WISE

2015-08-05_194246

WISE的原始碼發佈在GitHub上,我們雖然也可以用Download ZIP的連結下載所有程式碼,但我比較推薦使用Git的Clone功能下載WISE的原始碼。這樣做法不僅可以取得較完整的程式碼,更可以直接在NetBeans中建立專案(Project),以便後續的編譯。

下載原始碼 / Download Source Code

image

NetBeans的Git功能在Team功能表裡面,找到Remote裡面的Clone。這個功能要等NetBeans全部開啟之後才會顯示。

2015-08-05_200346

在Clone對話框裡面,將Git Clone的網址輸入Remote Repository的「Repository URL: 」之中,檔案保存位置不要選在XAMPP資料夾中,建議放在根目錄,例如「D:\」。然後按下「Next >」。

image

接著NetBeans會問我們要下載哪一個分支(Branch)。這個儲存庫並非CWISE採用的4.6版本,在此我們先以現在的WISE最新的主要版本 (master) 作為例子即可。

image

然後按下「Finish」確認,接下來就要開始Clone囉。

image

接著Git會從儲存庫Clone下程式碼,如上圖紅框標示。這個步驟會花蠻多時間的。這是因為GitHub並不適合傳送大量檔案,而且我們這邊的學術網路跟GitHub關係一直不是很好的樣子,每次大量檔案傳送都很慢。

image

好不容易Clone完成之後,NetBeans會問你是否要建立成Project。這時候按yes即可。

image

這樣子WISE的所有程式碼就已經下載到你的電腦上,建立了名為「Web-based Inquiry Science Environment」的專案,並且可以編輯了。

image

這時候就能用NetBeans的全文搜尋功能找尋要修改的功能,進行更深入的開發。

但是這些原始碼需要經過編譯才能夠放到運作環境。因此接下來我們要來看一下怎麼編譯WISE原始碼。

使用maven編譯原始碼 / Use maven to compile Source Code

image

NetBeans也內建了編譯Java專案的Apache Maven工具,不過必須要先將原始碼建置成專案。如果你是照上述的步驟操作,你應該已經有一個WISE的專案。我們可以從專案上按右鍵,開啟「Build」功能。

image

第一次編譯時,Maven會因為相依性設定,下載很多WISE需要的函式庫。因此第一次編譯比較花時間,之後編譯就不用重新下載,編譯時間會短很多。

image

編譯完成之後會看到以下訊息:

------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
這樣就表示編譯完成。相反的,如果看到ERROR的話就是編譯錯誤,請看maven的提示來修正程式的錯誤吧。

image

最後編譯完成的結果會放在專案路徑中的「target」資料夾中,「wise.war」就是最後編譯的結果。


安裝WISE / Install WISE

有了「wise.war」編譯檔案,我們就可以把他部署到運作環境中。然後接下來還要配置資料庫、修改WISE的設定檔,這樣就可以正常運作了。

配置wise.war跟jnlp.war / Deploy wise.war and jnlp.war

image

首先,我們先把「wise.war」跟「jnlp.war」放到XAMPP底下在「webapps」資料夾。jnlp.war是Java Web Start,下載網址如下:

 

image

然後關閉Tomcat服務,再重新開啟Tomcat。這個時候Tomcat會將wise.war跟jnlp.war解壓縮並配置到合適的位置。

配置資料庫 / Setup Database

接著我們要進入phpMyAdmin來設定資料庫。網址是:

要進行的動作包括:

  • 建立一個資料庫名為 wise_database 
  • 匯入資料庫的初始SQL:wise_db_init.sql。這個檔案位置在
    [webapps]/wise/WEB-INF/classes/wise_db_init.sql

image

因為phpMyAdmin的操作比較廣為人知,因此這邊我就不描述細節了。

建立資料夾 / Create Directories

image

接下來要在[webapps]底下建立「curriculum」跟「studentuploads」兩個空資料夾。

建立設定檔 / Create configuration

最後我們要建立設定檔案,裡面將會有資料庫的連線設定。

image

我們先到以下路徑:

[webapps]/wise/WEB-INF/classes

image

請複製這個資料夾裡面的「wise_sample.properties」到同一資料夾中,並改名為「wise.properties」。

image

然後修改裡面的設定值,首先先修改檔案路徑,主要是修改紅字的部分:

wiseBaseDir=[webapps]\wise

curriculum_base_dir=[webapps]\curriculum

studentuploads_base_dir=[webapps]\studentuploads

image

接著修改下面的資料庫設定,採用XAMPP預設的帳號root跟空白密碼即可:

hibernate.connection.username=root
hibernate.connection.password=

修改設定檔之後需要重新啟動Tomcat,請使用XAMPP的控制面板來關閉、啟動Tomcat吧。

啟動測試 / Startup Test

image

經過上述步驟之後,WISE應該就能夠正常運作了。請打開以下網址,看看會不會出現上圖的畫面吧:

這樣就完成囉。


結語:下一步是修改CWISE / Conclusion: We will compile CWISE at next time

這一篇介紹的是WISE現在版本的編譯與部署,但是這跟CWISE使用的WISE 4.6版並不一樣。最大的差異就是CWISE需要同時修改兩個專案,個別是WISE-VLE—Deprecated--WISE-Portal—Deprecated--,然後我們又改了許多JSP檔案。當然,編譯跟部署的作法其實還是大同小異。希望接下來要修改的功能能夠順利進行了。

附帶一提,這篇是在手機、平板、筆電等多個裝置中不斷切換撰寫草稿,最後再回到桌機上修飾、加圖後完成。雖然才兩千五百多字,但其實寫了好幾天了啊。沒辦法,現在真的很難有專心待在電腦前面的時間啊……

(more...)

解決Acer Aspire S7筆電自動關機問題:鎖緊螺絲 / How to prevent Acer Aspire S7 notebook from accidentally shutdown: Tighten the Screw

布丁布丁吃布丁

解決Acer Aspire S7筆電自動關機問題:鎖緊螺絲 / How to prevent Acer Aspire S7 notebook from accidentally shutdown: Tighten the Screw

image

Acer Aspire S7筆電在不插電的時候常常會自動關機,解決這個問題的方法是把電池中間的斷電螺絲鎖緊,但記得要準備T6六角星型螺絲起子。


推測突然斷電的原因 / Why S7 accidentally shutdown?

我使用Acer Aspire S7(以下簡稱S7)也有快三年了,大概是最近一年的時候一直有個問題困擾著我:在不插電的時候,我這台S7總是很常自動關機。

我有注意到自動關機的時間點總是剛好是在筆電風扇啟動的時候,這究竟是為什麼呢?在網路上查了一下,聽說維修中心的人說鎖好筆電電池中間那顆斷電螺絲就好,真的假的?

我半信半疑地找了六角星型鎖來鎖鎖看筆電螺絲,沒想到還真的有點鬆。鎖好之後姑且嘗試一下,的確不會自動關機。又這樣子過了一個月,還是正常運作。這下子我敢確定的確螺絲鬆脫是導致S7自動關機的主要原因了。

如何解決? / How to fix?

IMAG0685

雖然說只是鎖緊螺絲,但是S7使用的是特殊的T6六角星型螺絲,而不是一般常見的一字鎖或十字鎖,這可能得想辦法去借一下。
量一下螺絲的大小,螺絲直徑大約是0.4cm,六角星形孔大概0.1cm,太大或太小都無法鎖緊喔。

IMAG0431

然後要鎖緊的螺絲就在上圖的位置,鎖緊之後就完工了。祝大家跟Acer Aspire S7相處順利。

(more...)

道南橋旁的港味食堂 / Gang-wei Restaurant (nearby Daonan Bridge)

布丁布丁吃布丁

道南橋旁的港味食堂 / Gang-wei Restaurant (nearby Daonan Bridge)

門口的港味食堂 IMAG1165 - 2

  • 店名:港味食堂
  • 位置:道南橋下
    2015-07-25_230748
  • 菜單:一主菜三副菜、附養樂多
  • 價位:便當75NTD
  • 座位:大概25個左右
  • 服務:要自行取餐與回收餐具

港味食堂簡介 / Introduction

由於港味食堂已經於2015年7月25日結束營業。為了感謝港味食堂阿姨帶給我們餐餐充實又好吃的便當,我想在此回顧一下我跟港味食堂的回憶。

小巷子中開幕 / New open in a lane

 IMAG0091

港味食堂大概是我在研究所一年級左右開幕的,大概是2006年吧(常常搞不清楚自己的時間軸),那時候還在政大門前的小巷子裡面。當時便當還是一份60元,還有賣35元的港式點心。可是店內空間很小,用餐時間總是擠到門外去,十分熱門。

梅子五花肉 薑汁豬肉飯IMAG1098

港味食堂的菜色一向是一主菜加三配菜,再加一罐養樂多,以及超級多但好吃的飯。主菜好吃不說,我也很喜歡各種配菜,像是肉丸系列、牛蒡、士林香腸、茄子、以及各種好吃的青菜,特別是地瓜葉。餐點的內容可以參考我以前寫過的食記「政大小巷內的港味食堂」,想著想著肚子又餓了。

關門的港味食堂 2012-07-29 18.26.06

後來我畢業離開政大去當兵,一段時間沒回來光顧。有次放假時我刻意搭車北上回政大走走,想說吃個港味食堂回憶一下,不過赫然發現小巷子裡面的港味食堂已經關門。找了一下照片,發現那是2012年的事情。

搬到道南橋旁 / Reopen nearby Daonan Bridge

小曼谷旁 IMAG1164

當時我還蠻難過的,有種滄海桑田的感覺。不過後來回來政大繼續唸書的時候,才發現原來港味食堂改到道南橋下,跟小曼谷泰式餐廳當鄰居了。

菜單

換了位置的港味食堂價位變高了,可是店內座位變多,也有了電視可以看。雖然位置跟原本政大熱門的小巷子來說冷門許多,但是中午用餐時間還是常常遇到排隊或是一位難求的情況。

IMAG1180

由於店內的裝潢變成深長型的擺設,所以進來的客人就只能看左側的「今日菜單」小白板來點菜。

Copy of 今日配菜 IMAG1104

今日配菜的內容比起以前在小巷子裡面的時候又多了其他類型。根據我的印象,青菜的種類變多了,然後還多了「糖醋里肌」跟「蒲燒鯛魚」等特別的類型。不過後來就沒看過秋葵了,有點可惜。

梅子豬肉飯 IMAG1245

右上角就是糖醋里肌,不僅非常下飯,甚至可以直接當做主菜食用。

結束營業 / Close down

門口的港味食堂 IMAG1249

可惜的是,我在一週前得知港味食堂已經決定於2015年7月25日結束營業。在這最後一週中,我猜港味食堂的客人數量應該是爆增。有一次中午來吃港味食堂時,發現門前有一群學生抱著「可能是最後一次吃港味食堂了」而前來,可是門內客人卻已經塞到水洩不通的程度。即使位置搬到離校門這麼遠的地方,港味食堂也依然很有人氣。

一堆人的點餐 IMAG1247

最後一天吃完港味食堂打算離開時,突然進來一群學生說要來點餐。即使是週六假日還如此多人,大家真的很喜歡港味食堂。我在感受人情溫暖之餘,偷偷拍了一張照片,不過人臉的部分都馬賽克處理了。


餐點 / Meals

空餐盤 11745319_10204684047248808_5801598170368445520_n

在這港味食堂最後營業的一週間,我決定每天都去用餐,以點餐歡送阿姨,順便記錄一下每一餐點的內容。不過每次一看到美味的餐點,我就像是餓昏了一樣,常常忘了要拍照。回過神來的時候,已經只剩下空的餐盤了。

儘管如此,在這幾次跟朋友一同前去用餐時,還是記錄了大家點的餐點,讓我們來回味一下吧!

南乳扣肉飯 IMAG1178

南乳扣肉飯,配菜是蘿蔔肉丸、花椰菜、雞胗。

梅干扣肉飯 IMAG1173

梅干扣肉飯,配菜是空心菜、士林香腸、洋芋肉丸。

梅子五花肉 薑汁豬肉飯IMAG1098

左邊是梅子豬肉飯,配菜是空心菜、糖醋里肌、洋芋(馬鈴薯)肉丸。右邊是黑胡椒豬肉、苦瓜、糖醋里肌、芥藍菜。

滑蛋牛肉飯 IMAG1181

滑蛋牛肉飯,配菜是大白菜、地瓜葉、蘿蔔肉丸。

鼓汁皇雞排飯 11698647_10204702720395625_8417380054150897283_n

鼓汁皇雞腿飯,配菜是白莧菜、油豆腐、蘿蔔肉丸。雞腿還蠻嫩的。

11755086_10204689113135452_530305214583903439_n

鹹蛋肉餅飯,配菜是糖醋里肌、百葉豆腐、大陸妹。

梅子豬肉飯 IMAG1245

這是最後一餐,梅子豬肉飯(以前稱為梅子五花肉飯),配菜是菜脯蛋、花椰菜、糖醋里肌。而且還不小心忍不住挖了幾口才想到要記錄。

從上面的配菜可以看到我到底有多喜歡糖醋里肌跟肉丸系列,當然每餐綠色蔬菜也是絕對要有的。另外從照片中也可以看到他的飯量之多,真的是會受到學生歡迎的便當店啊。


結語 / Conclusion

港味食堂的關門來得很突然,我還是覺得有點反應不過來。今晚離開咖啡店覓食的時候第一個想去吃港味食堂,可是又發現他們今天已經關門了,不禁感到萬分惆悵。於是只好在此為港味食堂做一個記錄,感謝他們這些年來的陪伴,並且希望能在我畢業之前看到他們復業。

題外話,看著這些照片,我肚子又開始餓了起來……看到港味食堂的便當就想要大吃,難道我是帕夫洛夫的狗嗎?

(more...)