2013年4月9日 星期二

codebook修正完成、記憶體限制調高

今日完成codebook程式修正,加入了題號及備註資訊。目前大部分的題目都沒有備註資訊,僅以唯一的一題進行測試,可以正常寫入。
另外,今日測試選擇大量變數的情形,一次選擇三個題組中所有的單選題及單一填充題,系統發生記憶體不足的情形。先嘗試於script中釋放部分用不到的陣列,但效果有限。
嘗試利用ini_set動態調整記憶體設定無效。所以直接調整php.ini的全域設定,將原有記憶體設定調高一倍。目前此問題已解決。未來再視實際情形調整。
明日繼續測試其他題型的下載狀況。

2013年4月8日 星期一

20130408進度及待處理問題

目前初步開發應該可以說到了一個階段,正進行一些測試,待完成後,在連同目前已知問題一併修正。
目前已知的部分包含:
1. codebook沒有填入「題號」及「備註」資訊。這兩個資訊將以「題」為單位,與其他欄位以「變數」為單位不同,需利用rowspan合併欄位,此部分還需調整。rowspan的系統支援度也需測試。
2. 串連資料可能帶入不存在的變數:按目前的處理邏輯,串連資料時,對於跨期變數,系統會根據選取年代,分別產生各年的欄位,但若某些變數並非每年都有,則可能產生不存在的變數。這些不存在的變數,雖然數值皆為missing,但卻容易造成使用者混淆,需修改程式排除。
3. 部分 format資訊不完整:測試過程中,發現部分變數的選項 label 不完整,初步認為是當初整理資料時的缺漏,並非系統缺失。仍待修正資料後再次測試。
4. 同時產生資料測試:尚未進行同時有兩位以上使用者產生資料的功能測試。此測試的重點在於了解伺服器記憶體是否能夠負荷,以及多人同時使用時,產生資料檔是否混淆。
5. 使用者下載記錄應設計分頁,避免頁面過長。

使用者資訊管理

關於未來的使用者,預計與SRDA共用會員帳號。所以不必另外開發帳戶控管系統。不過對於使用者的行為仍然需要記錄,因此仍然有部分使用者資訊需開發。
使用者功能的帳戶資訊提供使用者清單管理功能。共分為「已下載資料」及「未下載資料」兩部分。受訪者可於瀏覽變數階段隨時點選下載清單中的「儲存選擇清單」,為此份清單命名後,儲存(需先登入);若使用者未幫清單命名,系統會自動以當天日期命名。

使用者進入設定條件選項程序,於最後一步選擇串連方式後,系統也提供輸入清單描述的欄位。產生下載檔案後,系統將自動記錄下載清單。

 未下載清單列表提供使用者重新載入編輯功能,使用者亦可將不需要的清單刪除。已下載清單列表同樣提供重新載入編輯功能,但無法刪除;若產生的檔案仍保留於系統中,可再次點選下載,不需重複產生。
產生下載資料檔後,檔案將於系統中保留七天。期間內,使用者可隨時點選通知email中的連結下載,或登入系統,由帳戶資訊中下載。七日後,檔案刪除,若仍須下載此檔,則需重新產生。

2013年4月6日 星期六

屈服了!程式定義檔編碼

合併後的資料是以csv搭配spss, sas, stata程式定義檔的方式提供受訪者下載。
資料庫設計之初是以utf-8作為資料庫的編碼格式。但實際測試時發現,在繁體中文ms windows環境下,系統預設編碼為big5,因此三個統計軟體的預設編碼同樣也為big5。若由系統直接輸出utf-8格式的程式定義檔,軟體開啟時都將是亂碼,且會產生錯誤,根本無法執行。其中SAS及spss都支援unicode模式,可以經過調整後正確開啟,但畢竟不是預設模式,需要費一點手腳;更慘的是stata,他居然完全沒辦法支援unicode,只能支援作業系統預設的編碼模式。
所以,最後我屈服了,決定提供big5編碼的程式定義檔。但考量系統運作的穩定性,整個系統及資料庫仍然維持utf-8編碼,僅於輸出檔案時利用iconv函數進行編碼轉換。iconv的轉碼並不十分完美,如果遇到沒有對應的文字,可能會出錯,不過由於問卷中並沒有太多的特殊字,所以先這樣用用看吧!如果未來出現太多問題,再個別進行調整。
目前,這部分已經完成,spss, sas, stata程式定義檔也都測試過沒有問題。

2013年4月5日 星期五

網站首頁及使用者權限

網站的首頁擬參考教育部異體字典的方式,設置一個說明頁面。內容呈現系統的簡介、最新消息、使用方式等資訊。使用者可於此頁面登入系統,或直接點選進入系統瀏覽內容。
  
 
目前該頁面僅為雛形,內容並不完備。且為靜態頁面設計。未來將視需要開發最新消息管控及內容編輯等候台介面。

使用者原則上分成兩級。未登入使用者可直接點選「進入系統」瀏覽/搜尋題目,同時亦可將題目加入下載清單中,但無法儲存下載清單,亦無法下載檔案。系統帳號採取與SRDA共用會員帳號的方式進行。SRDA一般會員及網路會員皆可登入系統管理下載清單及下載檔案。

瀏覽及搜尋介面整合

三個月沒更新了。其實這陣子一直是有進度的,只是工作太忙,無暇做成記錄,利用這幾天把相關進度報告一下。 先 前的設計中,瀏覽(樹狀結構)與搜尋是兩個不同的介面。瀏覽介面原考量網頁loading速度,設計以非同步處理的方式載入次一層清單。但後來實測發現, 同步載入的速度是可接受的,所以目前改為一次載入完整的樹狀結構。待未來題組增加到一定程度後,再評估是否改為非同步載入,以提升效能。
 
此外,也將搜尋介面與瀏覽介面整合,使用者可以在同一頁面輸入關鍵字後,以相同的樹狀結構呈現符合的條目。