網頁

2013年12月20日 星期五

Panoramic Photo @ NTHU Library

館內最近談起 Google Map,興起了想要建立館內實景的想法。

找了一下相關的資料,可以在這向 Google 直接申請(Link1 or  Link2 )。Google 收到申請後會評估,我們這就靜待通知了。

因為對這個議題有些好奇,找找相關的其它資料。其實假使 google 到時沒有接受我們館的申請。也可以照著 Google所提供的方式來實作。Google提供自行製作全景拍攝相片的作法,可以參考這個連結內的資料 Link 3

文中提及兩種作法,以第一種持 Google Android Nexus 裝置的作法是最為簡單,這台裝置一台約 NT$15000左右,也許可以考慮編入明年度預算內當作備案 (此台裝置也支援NFC功能)。

實作方式就如同這段 youtube 影片。透過此裝置看來是會自動將一些需要手動編寫 Google  XML中繼資料自行透過自己的 APP處理完成。透過此裝置所要作的部份,就是按 youtube 上的操作,將取景的地方拍攝起來後再直接上傳即可。

而文中提及的第二種作法,就是透過數位相機的拍攝,這種作法有它的好處,好處在於能提供更高解析度的相片。不過此作法,看起來實作很麻煩,需要一張張的自行定義Google 所需要的 XML中繼資料,建立好每張要處理相片的xml後再上傳至 Google ,再透過 Google 提供的軟體介面一步步的操作即可。

Microsoft 也有提供對於全景地圖的方案,就是 Photosynth Website 服務。我試用過,覺得它也是很有趣。這個網站的服務,只要將要拍攝地點拿起手機或相機四處的取景,再將取景後的資料交給 Synth,這樣就完成所有的程序,後續 Photosynth 會自動幫忙處理。透過 Photosynth 可以很快的建置起一個簡易可提供導覽實景的介面供使用者觀看。



2013年11月4日 星期一

簡體字轉正體中文

在實作 FB Like Button @ OPAC 時,它的簡介的部份是可以應用於圖書館館藏查詢系統,檢索到書目可以自動的帶有一般圖書的簡介,個人是覺得放這個一般書籍的簡介資料會比放傳統 MARC 格式資料來的吸引人。

不過因為所應用的豆瓣 API,它所提供的書目資料有些是簡體版的資料,有些是繁體版的資料,這部份也不知道同仁的想法。所以稍微找看看簡體轉繁體中文有沒有較好的解決方式。

由找到的資料來看,大致上的做法是維護一份轉換字碼對照表,透過代碼表的交換來達成目的。也有人是採用 Google Translate API的作法,但目前 google translate api有些限制,不能達到所要的需求。在找到的資料當中,以 新同文堂 for Web 的做法最為簡單,簡單的幾行javascript 加入後就可以逹到要的效果 DEMO


相關資料:
  1. 新同文堂 中文網頁繁簡轉換
  2. 新同文堂 for Web
  3. mediawiki-zhconverter
  4. 使用 Mediawiki zhconverter 進行 PHP 網頁簡繁互轉 
  5. php 在UTF8編碼下將繁體中文轉換成簡體中文 

DEMO
 

2013年10月25日 星期五

FB Like Button @ OPAC

開 APP 會議時,突然說到 FB Like Button 功能。在當時直覺的反應實作這個的目地性。到底實作出這個的實質效益,所分享的資料只有圖書館編目出的資料可是一點也不吸引人。

回來想想後,能放的東西一定要有書的封面,最好也要有書籍的介紹。

實作的方式其實不難。麻煩的地方在於要將不同的系統給相互的串接起來。

目前實作好的功能,可以在 WebPAC內直接按讚」與分享一些心得訊息貼到自己的Facebook 內與他人分享。在分享的同時,會自動的將書本書名、介紹、封面自動的貼到 Facebook。

相關資料:



2013年9月25日 星期三

Tomcat 安全性如何提升

重點如下:

  1. 降低使用權限
    • tomcat 的權限若不特別調整會是系統服務的權限的身份執行。
    • 在系統內新增一個使用者帳號,這個新增的帳號可以不歸屬於任何的群組,於服務管理器啟動 Tomcat 管理介面。選擇「登錄」選項,將啟動的身份改成這個新增的使用者帳號。(如附圖)
    • 此新增的帳號可以將網路存取使用權限改成拒絕存取、遠端控制取消啟用、用戶端裝置的預設勾選項目全數取消。
    • Tomcat相關的執行檔案的目錄,別忘了要新增這個使用者的帳號權限;有些目錄的權限要開放寫入(如附圖)
    • JRE目錄也需要新增這個使用者的帳號權限。(如附圖)
    • 基本上以上的做法與Apache 的建議相似,也可直接參考此文件中文翻譯)。 
      • 在Apache的實作:後來發現只要在 logs , sessions 與其它需要寫入權限的目錄 (e.g phpids ......),加入這個受限制的使用者的權限後,再到系統 =>服務 =>Apache2(如下圖),將登入的身份改成這個受限制的使用者,重新啟動後即可。
  2. 預設 port 號修改
    •  例如將 port 8080修改為其它 port 號。
  3. 未設定 index.htm的目錄會將所有目錄內的檔案全數呈現
    • 修改web.xml檔案,<param-name>listings</param-name>,確認它是 false 的狀態。這個部份在 Tomcat 6.x 版的預設值是  false 。
  4. 後台管理的帳密修改
    • 基本上因為它的管理介面,這沒有使用到,所以我這是將全部將關於此功能的目錄全部刪除。
  5. 錯誤頁面會主動回報使用版本等參考資訊
    • 修改web.xml files,自訂 404.html ......等頁面。於 web.xml內的 </welcome-file-list>標籤後加入自訂的 404.html(如下) 
    • <error-page>
              <error-code>404</error-code>
              <location>/404.html</location>
          </error-page>
    • 不知幾版開始後,它的 header 就沒有傳遞版本的資訊了,所以自訂 404 等錯誤頁面後, 可以降低此困擾。The server attribute controls the value of the Server HTTP header. The default value of this header for Tomcat 4.1.x, 5.0.x, 5.5.x, 6.0.x and 7.0.x is Apache-Coyote/1.1. This header can provide limited information to both legitimate clients and attackers

其它降低權限時有出現過的狀況:

有一個資料庫很特殊,它需要在工作排程器內設定自動啟動的動作,但降低權限的身份在設定排程時會出現狀況,解決的方式可以參考下方的相關說明。
相關參考資料:


2013年9月17日 星期二

Server 2008 R2 的時間校時

前些天,同仁回報訪客系統的人數入館統計的功能突然失效了。數值全數歸零。當下連上主機查看了 Log,但都沒發生異常。搞了半天才發現到原來主機上的時間是錯誤的。

而程式的運作,在計算人數時,是以取出當下的日期時間來做計算。過了某個時間點(8小時的時間差),因為取出的日期時間已超過正確的今日日期,所以在系統的呈現上,它的數值才會歸零。

探查的原因後,發現該主機是位於 VM內的 guest OS,Guest OS重新開機後會自動去抓取 VM Server 內的 BIOS時間,而這台 VM Server 的時間是不正確的,而要更新這台 VM Server 需要將裡面所有的 Guest OS 的服務全數停止才能做更正的動作。

所以稍微找一下校正時間的相關資料,透過 w32tm.exe 的方式,寫了一支批次檔後再設定主機內的排程處理器,讓它定時的執行校時的工作後就搞定了;按找到的文章來看,其實只要修改機碼的方式達成。


相關資料:

2013年8月28日 星期三

Apache2.4 無痛升級

最近應該會開始陸續著手進行 Apache2.4的升級。

找了一些相關資料與實作上的一些疑難雜症,先註記與記錄起來。有空再來慢慢處理。




後來實作經驗:簡單的註記如右,在 Apache2.4 的版本的設定檔內,有些設定需要重新改寫,基本上直接參考Apache 線上文件即可。 我的做法很簡單,先弄一台通用的設定檔,再來就是利用 httpd.exe -t 檢查語法正不正確。語法沒什麼問題後就連上要更新的主機上,將需要更新的檔案置換,再重新啟動,這樣就完成升級的動作。

MySQL5.6 無痛升級

先收集相關資料,等改天再來升級 MySQL資料庫管理系統。

Upgrading MySQL on Windows:應該做以下步驟即可

  1. 先備份所有的資料庫
  2. 停止 MySQL服務
    • 取消掉系統 mysql 服務: mysqld.exe --remove yourservicename
  3. 將下載下來的壓縮檔解壓縮後覆蓋到 MySQL目錄內,如果要保留原主機內的資料,請記得刪除更新檔內的 /data/* 內的檔案後再行覆蓋。
    • 重新將系統 mysql服務加入:mysqld.exe --install mysql5 (其實我不是很確定這步驟是必須的)
  4. 啟動 MySQL服務
  5. 執行 /bin/mysql_upgrade ,讓它去檢查資料表與相關的升級的動作
  6. 升級完成
my.ini修改:
在 mysql 5.5 升級至 5.6有些語法需要修正:


其它相關參考資料:


搞了半天,一點都不無痛:

最簡單的方式還是利用MySQL所提供的 mysql-installer-community-5.6.13.exe 來做安裝的動作,只要將要放的路徑決定好,再使用它的 UI介面,按介面內的提示安裝,就會自動產生 my.ini 檔案。此時再將舊主機內所備份的SQL備份檔案,將它給 dump回新的 MySQL5.6資料庫就完成了。這樣子就不需再調整舊主機內的 my.ini 的設定,因為如果要做調整就需要一個個去了解那些功能在 5.6版本是已宣告不支援,一個個手動修改。@@

透過 MySQL installer 的安裝方式,很簡單,在這稍做記錄,待往後有空時再來看看是否要升級:

執行 MySQL installer,我的習慣是將程式集中到 /MySQL/ 目錄,將 Installation Path & Data Path 指向要放的目錄 (如圖),再來就依 UI 介面內的指示一一設定上去就可以很迅速的完成安裝的動作了。