網頁

2012年12月20日 星期四

只有你能欣賞我 -- 要欣賞自己的小孩

這篇文章看了,觸動很多。小朋友的教養真很不容易。多多說正向的話語,對小朋友與自己絕對是有幫助的。在生氣的時候要多多提醒自已,話要少說,免得傷人又傷己。



只有你能欣賞我 -- 要欣賞自己的小孩

第一次參加家長會,幼兒園的老師說:“你的兒子有多動症,在板凳上連三分鐘都座不了,你最好帶他去醫院看一看。”

回家的路上,兒 子問她老師都說了些什麼,她鼻子一酸,差點流下淚來。因為全班30位小朋友,惟有他表現最差;惟有對他,老師表現出不屑。然而她還是告訴她的兒子:“老師 表揚你了,說寶寶原來在板凳上坐不了一分鐘,現在能坐三分鐘了。其他的媽媽都非常羨慕媽媽,因為全班只有寶寶進步了。”

那天晚上,她兒子破天荒吃了兩碗米飯,並且沒讓她喂。

兒子上小學了。家長會上,老師說:“全班50名同學,這次數學考試,你兒子排第40名,我們懷疑他智力上有些障礙,您最好能帶他去醫院查一查。”

回去的路上,她流下了淚。然而,當她回到家裡,卻對坐在桌前的兒子說:“老師對你充滿信心。他說了,你並不是個笨孩子,只要能細心些,會超過你的同桌,這次你的同桌排在21名。”

說這話時,她發現,兒子黯淡的眼神一下子充滿了光,沮喪的臉也一下子舒展開來。她甚至發現,兒子溫順得讓她吃驚,好像長大了許多。第二天上學時,去得比平時都要早。

孩子上了初中, 又一次家長會。她坐在兒子的座位上,等著老師點她兒子的名字,因為每次家長會,她兒子的名字在差生的行列中總是被點到。然而,這次卻出乎她的預料,直到結 束,都沒聽到。她有些不習慣。臨別,去問老師,老師告訴她:“按你兒子現在的成績,考重點高中有點危險。”

她懷著驚喜的心情走出校門,此時她發現兒子在等她。路上她扶著兒子的肩,心裡有一種說不出的甜蜜,她告訴兒子:“班主任對你非常滿意,他說了,只要你努力,很有希望考上重點高中。”

高中畢業了。第一批大學錄取通知書下達時,學校打電話讓她兒子到學校去一趟。她有一種預感,她兒子被清華錄取了,因為在報考時,她給兒子說過,她相信他能考取這所學校。

他兒子從學校回 來,把一封印有清華大學招生辦公室的特快專遞交到她的手,突然轉身跑到自己的房間裡大哭起來。邊哭邊說:“媽媽,我知道我不是個聰明的孩子,可是,這個世 界上只有你能欣賞我……”這時,她悲喜交加,再也按捺不住十幾年來凝聚在心中的淚水,任它打在手中的信封上。

2012年12月7日 星期五

透過QRCODE來顯示該樓層圖書

APP的開發這個部份研究了一陣子後,發現在使用現成的 Barcode SDK 來撰寫原生的 APP程式,實在是有些麻煩。

Iphone App的開發需要有相關的設備,Iphone 是有但它的開發平台是 Mac,手邊並沒有 Mac電腦;而 Android 系統,對於 JAVA 又沒有那麼熟悉,本來想說透過撰寫 HTML5,再透過 PhoneGap 的方式來逹成目的。

不過後來實作後,其實問題還是不少。所以乾脆轉個彎,改成直接透過網頁來擷取網路攝影機的 QRCODE,解析後再轉向所做好的介面去也是能逹到目地,透過這種方式的實作,最大的好處是在於,只要是瀏覽器有支援的設備都可以使用。

簡單的記錄如何實作:
  1. Javascript QRCode scanner,https://github.com/LazarSoft/jsqrcode 
  2. QR_AS3_JS_zxing,https://github.com/flockonus/QR_AS3_JS_zxing 

以上兩種方式都可以透過 HTML5 取得使用者端的網路攝影機裝置,我是採用第一個做法,這部份有利用到 Flash 來取得裝置的影像,所以需要另外抓取 camcanvas.swf (CamCanvas API 0.2,http://www.taboca.com/p/camcanvas/) 檔案。

Javascript QRCode scanner 使用的方式,可以直接參考文件或是參考它的 text.html。這樣子再結合之前所做的也就完成的差不多了。

介面使用的示意圖:


2012年11月22日 星期四

QRCODE於OPAC的應用

目前想要做一個系統,不過這個系統必須與現有的系統串接,它可以做圖書館查詢系統與架位圖系統雙方介面的橋梁。不需要更改雙方的架構與程式碼,透過 PHP Curl 的方式來擷取網頁內的必要資訊 (如轉址網址),但實作過程中一直出現狀況,查了好久也不知原因。

後來才發現原來PHP Curl 對 Javascript 的轉址行為是不支援的,它支援 Server-Side redirect但 Client-Side redirect 的部份不支援。

了解問題原因後要解決就快了,透過正規表示法擷取出需要的網址字串後就解決了。



相關參考:

2012年11月20日 星期二

Tomcat 不同版本共存

本來是想要將 Tomcat5.5 給直接升級至 Tomcat6 以上的版本,不過有些資料庫服務無法順利的轉到 Tomcat6 以上的版本,而最近又要購入新的電子資料庫進來,它也是跑在 tomcat上。所以沒有辦法,只有兩個版本同時運行在同一主機上。

原本只想說只要調整服務的 port 號就可以了,不過同時啟動Tomcat5.5 & Tomcat6 兩個服務後,後啟動的那個會自動關閉服務,搞了老半天,查了許多資料也都是說只要簡單的使用不相同的 Port 號即可運作或自行指定好所設定的 JRE環境。事實上在查閱資料之前也是這樣子做,但實際上兩個服務啟動就會有問題。

後來查到下面這篇,也試著按它的方式調整了一下,結果就搞定了。還真是好玩。

相關參考:

2012年11月8日 星期四

影印身份證件,應如何處理

今年十月,個資法上路。個人資料保護的概念也陸續被關注。

最近在新聞看到一則關於《保護個資》印身份證 別忘先「碼」賽克

這觀念在我們家應該算是 Common Sense,基本上不僅新聞提的部份需要遮,其它的部份能遮的都可以遮,這在實務申請時,幾乎是不會有影響的;另外有些申請案,它需要提供影印雙證件,例如健保IC卡,在健保IC卡的部份也是應該注意將左下角的數字遮起來的。

新聞重點節錄於下:

位於背面右下角的綠色「空白證號碼」,對一般單位並無特殊意義,但是對戶政單位來說,正面的「身份證字號」、加上背面的「空白證號碼」與右上角肉眼幾難辨識的「膠膜號碼」(無法影印),三組號碼組成的數字組合,是目前唯一僅存可確認身份證真偽的最後一道防線。
……除加註「本影本僅供╳╳銀行辦卡使用」之外,多一道遮住「空白證號碼」的手續,做好自我保護。



2012年11月2日 星期五

Apache SSL 製作

作法簡述

1.) cd "D:\Apache2\conf"
mkdir ssl.key
..\bin\openssl genrsa -out ssl.key\server.key 2048
mkdir ssl.crt
..\bin\openssl req -new -x509 -key ssl.key\server.key -out ssl.crt\server.crt -config .\openssl.cnf -days 3650 (自己產生憑證的方式)
..\bin\openssl req -new -key ssl.key\server.key -out ssl.crt\csr_files.csr -config .\openssl.cnf (產生 CSR 給驗證中心的方式 - 產生後再將此檔轉給憑證中心產出相關的憑證
填寫資料:AU:TW ; State or Province Name:Taiwan ; Locality Name:Hsinchu ; Organization Name: XXXX ; Organization Unit Name: XXXX ; Comon Name: xxx.xxx.nthu.edu.tw ; Email: xxx@mx.nthu.edu.tw ; 額外資訊不需要填寫直接 enter


2.) 接著httpd.conf/mod_ssl.conf,將SSL module 啟動,修改 /conf/httpd-ssl.conf。
把httpd-ssl.conf 調整合適本機環境的設定即可

..\bin\apache -k stop
..\bin\apache -k uninstall
..\bin\apache -D SSL -k install
..\bin\apache -k start

補充:

如果使用 openssl 產生 Key 時,有出現 WARNING: can't open config file: c:\openssl/ssl/openssl.cnf or /usr/local/ss/ 的錯誤訊息,則可以在系統的環境變數內使用 set OPENSSL_CONF=E:\ApacheSoftwareFoundation\Apache2.2\conf\openssl.cnf 方式,指定 openssl.cnf 所在位置 (參考來源)

也可以直接將那個檔案,直接 copy 到 c:\openssl/ssl/openssl.cnf or d:/usr/local/ssl/openssl.con,所指定的位址,這樣也是也以的。



最近館內要購入 SSL憑證,也趁這個機會重新回顧一下 SSL相關的資料。
因為之前都是自行產生相關的檔案,所以對整個CA簽屬的正式流程不是很清楚,稍微查找了資料,其實僅需要將產生的CSR檔案轉交給購買憑證的廠商即可,後續的作法直接參考「[筆記] SSL 憑證購買記」這篇 Blog 就可以了。

重要備忘如下:
  1. 產生一個 CSR 檔案,檔案傳給廠商。
  2. 廠商會回傳 SSL 憑證,傳入到 Apache 內所指定的位址。
  3. 重新啟動 Apache 即可。 

多個 port 時的處理方式


相關參考:


2012年10月31日 星期三

Too many connections - MySQL

今天突然許多系統發生異常的狀況,查了一下應該是後端資料庫管理系統 MySQL所造成,它的 Connections 的連結超出限制值所造成的,稍微調整 max_connections 的設定值,將它調整為 250,再重新啟動後就正常了。

不過回家後,還是有發現相同的狀況。只是蠻奇怪的,以前從來沒有發生過。不過真是莫非定律,明天要休假才發生問題。不過它的連線都是因為 OPAC 所崁入的功能所造成的 ( 之前為了執行的效率,所以 PHP- MySQL 的連結方式都是採 persistent connection 的方式 ) ,連線數過高加上沒有釋放,今天發生的原因應該就是這樣。

最近的事也真不少,先暫時調整一下 MySQL 的設定,將 mysql.allow_persistent 暫時關閉 ( mysql.allow_persistent=Off ),暫時先解決此問題,有空再去改寫相關的程式。

 ......

最後還是直接去修改程式的原始碼,再陸續觀察看看了。

相關資料:

Win32DisableAcceptEx

Apache MPM winnt
Apache 關閉 AcceptEx() 的時機 
Apache 關閉 AcceptEx() 的時機 (Windows 適用)

2012年10月25日 星期四

phpMyAdmin - Class 'COM' not found Problem

phpMyAdmin 是管理 MySQL的一套軟體,透過 Web 介面可以很快速的管理 MySQL。

偶而也會利用它內建的功能來觀察 MySQL的運行資訊,不過自從將  PHP 版本升級至 5.4.X 版後,在使用這個功能時,都會出現異常狀況,在後端的 LOG 可以觀看到  PHP Fatal error:  Class 'COM' not found 的訊息,也一直以為是 PHP 5.4.x 版本的 Bug,也就沒去管它了。

不過後來詳細了解後,原來自己擺烏龍,主要是 COM 模組沒有啟動所造成的。
只要簡單的在 php.ini 加入 extension=php_com_dotnet.dll 後,重新啟動 Apache 後,功能就可以正常使用了。

相關資料:
  1. PHP COM
  2. PHP COM Install

2012年10月24日 星期三

PHP與MySQL環境的雲端主機

懶的自行架設PHP 與 MySQL相關環境的話,可以利用雲端主機服務。透過簡單的申請後,就可以立即使用開發環境,這樣子就可以專注於程式的開發了。

相關資料:

2012年10月19日 星期五

圖書館的超級星光幫

最近想加入圖書館的超級星光幫的行列。
加入最大的主因在於配合小朋友的課後輔導,因為下班回家後再去接送小朋友,這樣子的來回時間加起來還蠻長的,再加上冬天也要到了。

在加入之前稍微了解一下薪資的算法。薪資時薪的計算方式是按加班費的方式計算,對於這塊不是很了解,稍微詢問了一下也稍微查找資料,以下為相關的資料。

簡單的說,前兩個小時的計算是時薪 * 1.33,第三個小時則 * 1.66。另外加班費若在每月低於46小時,它是免稅的所得 (假日工作的加班費,則是要列入薪資所得課稅的)。

相關資料:

2012年10月18日 星期四

字型安裝 - 捷徑的方式安裝

字型的安裝若不想要集中到系統內的 Fonts 目錄內,也可以將自己常用的字型集中到特定的目錄內,這樣子在做系統的備份時容量就可以大為減少。

捷徑的方式安裝只要兩個步驟即可,如下圖。


2012年10月4日 星期四

Alert Message

最近在協助電子書有獎徵答活動,它有一個需求是撰寫一組 Function來判斷當日應填答的問卷,不符合條件日期則需主動提示使用者活動尚未開始。

Alert Message 以前的作法只是單純的利用 javascript alert 語法來 pop 一個視窗,做提示文字的動作,當然它看起來不是很美觀,所以稍微找了一下 jQuery alert plugin ,看看可不可以改善這部份。

很快的就找到許多看起來感覺很棒的 Alert plugin 可以使用,例如 32 Best jQuery Popup Window Dialog Box ExamplejQuery UI A Clean jQuery AJAX Alert Box Plugin Freebie

因為滿喜歡 A Clean jQuery AJAX Alert Box Plugin Freebie 套件的簡潔風格,所以選用它來使用,在實作的過程,因為它的 function 需要有一個事件才能驅動這個 plugin,因為懶惰,所以這只是很簡單的使用 jQuery.trigger(),讓頁面載入的同時自動的觸發需要的事件,這樣子也是可以達到要的效果。 



2012年9月25日 星期二

Timeline

Simile Widget Timeline - 用靜態網頁表現時間線

Timeline是採用時間軸示意的手法來表示所發生的事件。它可以用在那呢?

也許可以將它應用在,歷年來所舉辦的說明會課程展覽活動、大世紀等活動,應該是非常有趣的應用











試玩了一下,將它拿來當作自我介紹時的專案展現結果介紹也是不錯的。

2012年9月21日 星期五

個人資料保護法因應措施

個人資料保護法將在今年的十月份正式上路,想要多了解個人資料保護法,可以來看看
新版個資法大解密這個網站的內容資訊。

為了避免未來發生令人困擾的事,我的想法是最好這些敏感性的資料根本就沒有存在於資料庫內,它就不會發生。所以目前重新審查所管理的一些系統,想儘量的將一些不必要的資料欄位刪除;在界定那些欄位可以做刪除的過程中,發現有些欄位的資料與實際作業時是一定要存在的,是無法避免的,例如需要生日欄位來計算使用者的年齡。

對於此點,最後的做法,應是將這欄位的資料另外編碼處理,想法子把資料的組合從原來的「可直接辨識資料」轉換成「間接的識別資料」。雖然這樣子做,到時是不是合於法條的解釋,不過看起來,這應也是目前唯一所能做的解套方式。當然,若是從實際的作業流程來做修改,應是更直接也更可行,不過許多事也不是個人想怎做就怎麼做的。

編碼的實作:

生日欄位做編碼的動作,第一個直覺就是轉換成 UNIX TIME OR TIMESTAMP 的做法,不過後來才發現 TIMESTAMP 在時間處理上有些限制,它僅能表示 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC 的範圍,(http://dev.mysql.com/doc/refman/5.5/en/datetime.html

此路不通,山不轉路轉。

查一下 MySQL 文件,有部份是針對字串的加解密的 Function,應該是可以利用  ENCODE 與 DECODE 函數來完成。語法為 ENCODE(str, pass_str) 、DECODE(crpty_str, pass_str),要稍微注意的是它儲存加密資料的欄位一定要改為 BLOG型態。
這樣一來,所取出的資料即是一連串編碼後的文字,透過解密動作後,再調用相關的日期的函數,重新轉成日期,應該就可以了。


參考資料:

2012年9月10日 星期一

SQLite

最近常在搞一些系統升級的事,發覺有些資料庫內的資料是萬年不變而且也沒什麼敏感性的資料。也許將這資料轉移至 SQLite 是一勞永逸的做法。

什麼是 SQLite:

可以直接到 WikiPedia 參考:http://zh.wikipedia.org/zh-hant/SQLite 

也因為它對系統來說僅是一個檔案而已,所以在做轉移時只需要環境配置需要的 SQLite後,直接將相關的檔案複製至新主機就可以了。

此種方式,只要是知道檔案的路徑就可以直接下載 SQLite檔案,所以一些較為敏感性的資料不太建議採此機制實作,不過也是有一些方式可以避免直接下載 SQLite檔案,方式如下:
  • 檔案放在網站根目錄外
  • 設定Apache ,將該檔案限制存取
  • 將 SQLite 維裝為 PHP檔案

2012年9月5日 星期三

Tomcat - Unable to open the service

今天升級舊主機,將主機的作業系統從 Server 2003 升級成 Server 2008。

重新佈署 Tomcat  時,一路順利安裝成功也順利的啟動 Tomcat 服務,但主機重新開機時,確出現 Unable to open the service'Tomcat 5.XXX' 的錯誤訊息。

了解了一下發生原因,是因為 Server 2008 的帳戶控制 (User Account Control) 所造成,要額外做一些調整設定,做法如下:

  • 將 tomcat5.exe & tomcat5w.exe 指定以特殊權限等級執行(如圖)。
  • 再使用「本機安全性原則」功能 (@ 開始 =>系統管理工具 => 本機安全性原則),將啟動時的項目檢查取消打勾即。

2012年9月3日 星期一

PHP Warning - Notice: Undefined index ......

預計將現行的所有的系統,升級至 5.4.X版本後。在測試的同時,發生了有許多的程式碼出現 Notice: Undefined index: 變數 in xxx.php on line xxx 的錯誤訊息。

了解一下發生的原因在於所設定的變數未設定定義所引起。

解決的方式有以下數種:

1.)    php.ini 內將 error_reporting = E_ALL 修改為 error_reporting = E_ALL & ~E_NOTICE

2.)    將 display_errors = On 改為 display_errors = Off

3.)    在每個程式檔前加入 ini_set("error_reporting","E_ALL & ~E_NOTICE");

4.)    每個變數做個檢查,沒有定義的就直接給個定義值。
例如: isset($_GET['變數'])前加入一個 if 判斷
if(isset($_GET['變數']))
{
5.)    在$_GET['變數']前加入@;@表示這行若有錯誤或是警告時不要輸出訊息提示

2012年8月31日 星期五

Office Tab

最近在核對一些報價與需求表的資料,核對的眼睛都要脫窗了。在核對中,發現多份文件在做核對時,都需要切換來切換去的,實在是很沒效率。

這時使用 Office Tab 套件 ( 安裝 Office Tab Free Edition 就很夠用了 ),真方便的不少也提升了比對文件的效率。為什麼 Microsoft Office 不乾脆直接內建此功能。 


Office Tab:Website | Dwonload


2012年8月24日 星期五

Book Cover Slider Gallery

新版的網頁預計放新書展示的功能。

使用 Google 輸入 Jquery Slider Gallery or Sliding box 的關鍵字後,馬上就可以找到不少非常漂亮的 Plugin 可以立即套用。例如 jQuery教學-SliderGallery滑動式相本特效應用ElastislideCycle Plugin 的效果,就是這次我所需要的功能。

前端頁面的部份,我是採用 Elastislide Plugin 與 Cycle Plugin 來實作這次的功能。
Elastislide & Cycle 的使用方式,可以直接觀看官方網頁的文件,Elastislide Plugin 搞了比較久的地方在於,書本的封面要提供串連到館藏  WebPAC 的超連結的功能,這在官方的頁面並沒有提及如何實作點選超連結的做法,需要稍微改寫一下,腳本如下。

 <script type="text/javascript"> 
            $('#carousel').elastislide({
                imageW         : 80,
                minItems    : 1,
                border        : 0,
                onClick  :  function( $item ) {
                    window.location = $.myURL("index", $(this).attr("value"));
                }
            });
</script>


實作後的 DEMO 圖




2012年8月21日 星期二

火車票 - 退票

週六 (8/24) 預計要去桃園,也已經拿到火車票了。不過拿到火車票後的不久,就發佈了颱風的消息。這週預計會有14與15號兩個颱風登陸 (天秤與布拉萬颱風),看起來也有些可怕,真不知道該不該先去將火車票退掉。

稍微查了一下台鐵的退票規則,摘錄內文如下:
遇颱風來襲,自中央氣象局發佈陸上颱風警報起至解除陸上颱風警報後四小時止,不論列車是否正常行駛或車站是否位於警報發佈區域,已購票旅客至本局各車站辦理退、換票比照列車停駛(即陸上颱風警報發佈視同列車停駛),一律免扣收退票手續費(去回票回程聯按去回票價二分之一計收),並自乘車日起十五日內均可受理退票,不限定乘車當日辦理。

2012年8月20日 星期一

如何自我介紹

文章出處 : 快狠準! 5分鐘自我介紹法

上台說話一直是我的弱項 ......。重點摘錄個人覺得需要學習的地方。

  • 說明工作經歷的里程碑
在這些階段各自創造哪些個人「代表作」,要列舉出具體事蹟或數據,以及在不同階段學習到的主要「功課」、個人軟硬實力的提升。
  • 回顧曾面臨的關鍵挑戰
自這些挑戰中,你如何排除萬難,度過難關,甚至開創新局等。這部份將可凸顯你的處世EQ,以及解決問題的能力等強項。
  • 細述領導的實戰經驗
年資5年以上的工作者往往已面臨領導課題,故可以談一下自己既有的領導經驗,包括你的領導風格、激勵方式及「實績」,作為主考官參考。

2012年8月16日 星期四

遠端桌面

  • 使用 XP 遠端桌面要連向 Server 2008 的主機時,會出現不支援網路層級驗證的訊息。
解決方式找了一下資料,可以透過修改登錄檔解決。
執行 regedit 後,直接修改以下資料
  • 找到「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa」的「Security Packages」,加入「tspkg」。
  • 找到「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders」的「SecurityProviders」,加入「,credssp.dll」。

上面修改登錄檔的方式有些麻煩,也可以直接透過  Microsoft Fix it 50588 的方式解決,下載檔案後 (file download),直接安裝與重新啟動系統就可以使用了。


  • 刪除遠端桌面連線紀錄相關機碼
執行 regedit 後,在機碼的地方
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
將 MRU0 ......等資料刪除即可。
  • 修改遠端桌面預設 PORT(3389)
執行 regedit 後,在機碼的地方
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
填入要的數字即可
懶的每次重新裝機要一個個修改登錄碼的話,可以直接匯出來使用,也沒幾行。將下面的 Script 存成副檔名是 reg 就可以了。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:0000a58d <==就是這的值改成要開放的 port 號,這是十六進位。

2012年8月15日 星期三

DAEMON Tools USB & 電子資料庫(KeyPro)

DAEMON Tools USB

很有趣的軟體,它的功用也很簡單,可以讓電腦透過它直接存取遠方主機的 USB 裝置 (Get remote access to USB equipment (flash drive, speakers, webcam, printer etc.) ),更多的說明,可以直接到 DEMON 網站了解。

目前館內有許多的電子資料庫系統都已運作於虛擬化平台(VMWARE),不過還是有少數資料庫系統無法切換,這些無法切換的資料庫,不能運作於 VM 內的原因之一,是因為 KeyPro 裝置緣故,如果透過 Damon tools USB 的機制,也許可以解決該問題。




2012年8月13日 星期一

最新消息管理系統


為方便臨時之需,若需於校外發佈訊息,可透過校內VPN服務。

  • 相關說明:
  1. VPN 使用方式請參考計中網頁說明
  2. 登入 VPN 介面後,請在紅框處輸入最新消息管理系統的 URL(http://XXX.XXX.XXX.XXX:XXXX/bulletin/News_System/News_login.php )後,再按下Browse 即可(如下圖)。

Xoops 內加入 Facebook Like Button 功能


如何在 Xoops 系統內 newsbb & news module 內加入 FB 的讚功能。稍微備忘一下作法,其實只要簡單幾個步驟即可。
  • 利用 FB 的 Like Button Plugin 功能直接產生需要的程式碼。
  • 修改 Xoops 系統內的 Template 頁面,將需要的程式碼加入即可。我的做法是直接將這些由 FB 產生的 Script 獨立成一個 JS 檔案,再去修改 \themes\afternoon_tea\modules\newbb\newbb_viewtopic_flat.php 這個檔案,在網頁要呈現 FB Like Button 的位置,require 這支 JS 檔案。
  • 在修改完後,因為 Xoops 頁面模版有快取的機制,所以修改好後別忘了去管理端去清除這些 caches ( Login System and use /SYSTEM_MODULES/SYSTEM_MAINTENANCE/Clean cache folder function ),要不怎麼測試都不會看到修改結果的。
     獨立的 JS files
    
    // JavaScript Document
    
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1&appId=123408597804457";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    
    document.write('<div align="right" class="fb-like" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>');
    document.write('<p></p>');
    
    

    2012年8月8日 星期三

    Tomcat 6.X 升級安裝備忘


    新環境安裝:

    下載需要的 JRETomcat6 後,在作業系統內設定好環境變數後或透過 tomcat6w.exe 的 UI 介面直接指定 JRE的位址(例如 C:\JRE\bin\client\jvm.dll,這樣環境變數就不需要設定了)。

    也可以直接修改 catalina.bat 設定檔,直接 set "JRE_HOME=D:\YOUR JRE"。

    將壓縮檔解壓縮到指定目錄後,執行 */tomcat6/bin/start.bat 即可運行。
    若要安裝到系統服務,執行 */tomcst6/bin/service install tomcat6 即可。
    移除已安裝到系統服務,執行 */tomcst6/bin/service remove tomcat6 即可。

    舊環境下升級:

    至於舊主機內升級 Tomcat版本是否要保留原來所使用的 JAVA OR JRE 版本,稍微找了一下資料,使用舊版本也是會有安全性的問題存在,若狀況允許,還是使用新版本為佳。

    參考資料:



    2012年7月30日 星期一

     一般家庭用電,除了冷氣用電分路為25安培外,其他每個電燈或插座的分路都設計在15安培(A),無熔絲開關也是15安培(A),因之,插座上一個插孔的設計,是插一項電器產為標準;雖然一個插座有多個插孔,加插一些小型用電器具亦無妨,但要切記,插上的電器總容量,不可大於插座的承載容量,插座的承載容量如何辨識?可參考下列計算方式:

    例一、110伏特電壓,標示15安培之插座之承載容量
    15安培是滿載時,為安全計,應以打八折計算,則為12安培
    承載容量= 12 x 110 = 1440VA...大約1440瓦特(w)

    例二、在220伏特電壓,標示25安培之插座之承載容量
    25安培是滿載時,為安全計,應以打八折計算,則為20安培
    承載容量= 20 x 220 = 4400VA...大約4400瓦特(w)

    2012年7月27日 星期五

    嘉言錄與文章分享

    • 「走一條人少走的路」( take the road less travelled by, and that will make all the difference )。在做生涯規劃時,學習特殊的技能、避開熱門的行業,常常會有令人意想不到的收穫。人多的地方不要去,人少的地方好發揮 ...... - From 馮副校長 email (翁文祺學長返政治系談外交與印度-台大政治系演講記錄)
    • 創造被利用的價值
    • 以利交,利盡則交疏;
      以勢交,勢傾則交斷;
      以色交,花落而愛渝;
      以道交,天荒而地老。
    •  人生如海浪
      人生的恥辱不在於輸,而在於輸不起;
      人生的光榮不在於永遠不撲倒,而在於能屢撲屢起;
    •  一個人的視野決定了他看問題的高度,所以沒見過市面的人,眼光終究要狹隘的;
      而跋涉過千山萬水的人,他心胸寬廣,立意就深遠,所以往往出眾。
    • 好態度帶來好機緣
    • 不會,找人教你就好?

    2012年7月25日 星期三

    PHP & PDF

    將線上表單所填寫的資料合併到已存在的 PDF檔案。
    • FPDI - Import existing PDF documents into FPDF
    FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF, which was developed by Olivier Plathey. Apart from a copy of FPDF, FPDI does not require any special PHP extensions.

    2012年7月23日 星期一

    旅遊資訊參考

    住宿參考



    好態度帶來好機緣

    原文出處
    • 簡單的重點摘錄:
    在職場中最重要的是工作態度與職場倫理;學識固然重要,但是知識可以學,態度卻不易改。
    人只要有學習的能力,隨時可以學新知;但若是沒有做人的品德和敬業的態度,再好的工作也做不久。

    人生很長,父母要在乎的不是孩子現在念哪所學校,而是他以後能否快樂的過一生,有機會把他想要做的事做出來。

    2012年7月13日 星期五

    JS

    SyntaxHighlighter @ Google Blog

    有時在文章內會貼上一些程式碼的原始碼,直接貼上 source code 在文章內,看起來不是很漂亮,此時可以使用 SyntaxHighlighter 套件,可以將這些需要的檔案放在自己的主機上,也可以選擇考慮放在 Google 協作平台內 (放 google 協作平台的作法)。

    使用的方法,觀看 Blog及Google Blogger使用SyntaxHighlighter(高亮度語法)的方法Google Blogger 中使用 SyntaxHighlighter 3.0.83 ,這兩篇文章的說明就可以了解該如何實作。

    目前我僅放 javascript and Php 兩種模式而已,有需要再新增即可。

    SyntaxHighligher 目前支援的語言程式碼清單可見 Bundled Brushes 列表。
    • 使用方式:要呈現的原始碼之前加入<pre class="brush:js"> </pre> 標籤即可。
    DEMO Script
     
    line 1
    line 2
    line 3
    line 4
    line 5
    line 6
    

    Cookies

    Javascript Cookies function

    From : head first Javascript (ISBN:9789866840241)

    2012年7月12日 星期四

    PHP Mail Send

    基本上我還是不太建議附件寄送採用線上表單發送的方式逹成。
    最大的原因仍在於安全性的考量,可以參考此篇的論述。

    找了幾篇如何實作的方式:
    1. PHP Mailer :夾帶附件檔的做法,可參考此篇 Blog。或直接去看 PHP Mailer 手冊。 
    2. Making a contact form with file upload support

    2012年7月10日 星期二

    笨鳥受難記

    Curiosity killed the cat (好奇心可以殺死一隻貓),昨天運動回來的路上看到了一些人在騎樓前的馬路上圍觀,好奇也過去看了一下,原來是一隻雛鳥。

    在那看了老半天也沒有發現到鳥巢,馬路上車子來來往往的,加上附近也有不少野貓,就這樣子放在那不管它,又覺得於心不忍,想了老半天還是請小朋友將它給暫時遷移到鄰近旁邊人家門前所種植的盆栽內,先觀看情形在說,也許它的鳥爸爸鳥媽媽過不久會回來拯救它。

    走回到家,過一陣子後,想想還是過去看看狀況,它仍然在盆栽內,活動力看起來不是很好,就將它帶回來先暫時照顧一下,看起來還有受一點點傷,先照顧一段時間,再來看看要怎麼辦。

    稍微 Google 了一下資料,撿到小鳥該怎麼辦?還蠻多參考資料的。

    例如:新竹鳥會的資料雛鳥救傷佈置牠臨時的窩幫助傷病野生動物

    Day 1 - (2012.07.09)
    剛剛安置臨時的小窩內,精神狀態不佳,有些紅紅的小點是應是它所流的血,不過看起來也沒什外傷。

    Day 1 : 精神狀態不佳 

    2012年7月7日 星期六

    免費 Office 挑選


    在家中難免會使用到 Office 軟體,而 Office 軟體也真的不是很便宜,不過也還是有些免費的替代方案可以選擇,例如 Office StarterOpenofficeGoogle Docs ...... 等等。

    剛開始會使用 Office starter 2010 ( 它也有 Microsoft Office Starter 隨身版裝置版本 ),它本就是Microsoft 自家的產品,相容性的部份當然是最佳,拿來做簡單的編輯與觀看文件可以說十分實用。但它缺少了 PPT 部份,所以每次重新安裝電腦時,都要額外安裝 LibreOffice 來補足PPT 的部份,說實在的也有些麻煩。

    最近剛好看到這篇文章 ( 免費Office方案怎麼選?跟收費的MSOffice 相容性大考驗)LibreOffice 其實也很早就在使用(替換掉 Office Starter),不過它在觀看 Microsoft Office 的文件時,文件的內容格式倒是常常會跑掉。文中看到 Kingsoft Office 軟體的介紹,它在版面還原度與 Microsoft Office 95% 以上相容,看起來還不錯。

    Kingsoft Office 雖不是免費,但它在售價上的部份,絕對親和度會高上不少。稍微 Google 一下,它也有 KingsoftOffice Suite Free 提供試用,雖說少了一些功能,但拿來檢視文章,相信是足夠使用的。它也曾經在 Giveaway of the day 提供下載,這篇文章也有詳細的介紹,更棒的是它的載點還可以下載,先記錄下來,有機會再來試試。

    2012年7月6日 星期五

    Giveaway of the day

    Giveaway of the day(GAOTD),這網站每天會提供一些超值的商業軟體,不過它僅能在它的免費下載期間下載並安裝才能使用。

    此方式己失效,GAOTD己改變方法了 (2012.07)。
    另一個提取方式的參考  http://roov.org/2013/02/giveaway-of-the-day/ (2013.12)

    它的運作機制,研究了一下,它會有一支 atctivate.exe連向它自己的網站伺服器做驗證的動作,驗證完成後再將以下載完成的檔案解壓縮到一個暫時的特定目錄;這時如果想要永久保留這些「可安裝的程式檔」,僅要找出特定目錄內的檔案再將它另外備份出來就可以了。

    看到這篇的介紹,可以不用這麼麻煩,有現成的程式可以使用。使用的方式也很簡單(雖然是義大利文不過也有英文介面),按下 Browser 後指向 GAOTD 的檔案,讓 Giveaway Forever 程式處理,最後保存 Giveaway Forever 所處理後的檔案就可以了;今天測試了一下,它所處理後的檔案是 0 Kb,也不知原因,改天再試看看了。


    2012年7月5日 星期四

    Rapid ILL System

    Rapid ILL 系統開發環境很難搞定(應該說對 JAVA的開發環境不熟悉),加上之前所使用的主機版已有狀況。所以直接拿以前所做的 Ghost 檔案直接轉成 Virtualbox可支援的 VM格式。

    Ghost 轉 VM的方式有很多方法,例如透過 Ghost 11.5 以上的版本,透過指令就可以直接轉檔,也可以透過 VMware vCenter Converter 來處理;我這是透過 easeus todo backup free 內建的 Covert Image tools 來做轉檔的工作。

    不過再掛載上去執行時會出現以下問題,

    A disk read error occurred
    Press Ctrl+Alt+Del to restart

    忘了在那裡查到的資料了,解決的方式可以透過 Roadkil's Boot Build 1.0 修改這份 guest OS image的 Number of Heads ,將它調整到 255(如下圖)後,再 Write to Disk後就可以使用了。
    PS,將Boot Build 安裝在一份可以正常運作的 A Guest OS,再將有問題的 B Guest OS 掛載到 A Guest OS內,再直接調整 B Guest OS 的 Number of Heads。

    重新啟動 Virtualbox 內的 Rapidill Guest OS (別忘了將 IO APIC啟動),這樣子原本的 Rapill開發環境就不需在重新配置了,往後要修改 Rapidill系統,就可以直接拿這份做好的 Guest OS Images來做開發編譯。

    note.
    後來想想也許出現 "A disk read error occurred" 的問題,有可能是因為 VirtualBox的存放裝置 IDE控制器問題或者是因為實體機器與虛擬機器模擬出來的配備是不同的,所以才會出現此問題,也許在 IDE控制器做好設定或做影像檔時選用異機還原的方式來做就不會有此現象了,Maybe。總之現在可以使用就好,用到的機會其實也不多就是了。


    2012年7月3日 星期二

    上下班時間

    7:30  ----- 16:40
    7:40  ----- 16:50
    7:50  ----- 17:00
    8:00  ----- 17:10
    8:10  ----- 17:20
    8:20  ----- 17:30 
    8:30  ----- 17:40 

    cygwin

    mount and umount

    cygwin mount的方式不知從幾版開始,從註冊表轉到 fstab 文件。
    也就是說所做的 mount ,重新開機後就會失效,不過有些目錄倒是希望能一直持續的掛載上去。這時的做法如下:
    修改 /etc/fstab ,加入要掛載的目錄到此文件即可(例如  D:/Wordpedia/SA /home/ming/SA ntfs text,posix=0 0 0)。

    暫時性的 mount 作法如下:
    mount d:/work/tomcat /usr/local/tomcat
    umount /usr/local/tomcat

     詳細的參考文件,可參考這 Link

    NTFS 檔案權限問題

    NFS Server For Windows


    WebDAV

    什麼是WebDAV,可以參考此篇簡介說明
    研究了一下,方便是方便,不過主機需要額外安裝 IIS的功能,基本上能少一項服務就增進了一份安全,所以檔案的更新方便還是保持舊方式(透過 SSH or FTP)。

    Apache 也有 WebDAV 的套件模組,有機會的話,可以來試看看(link)。

    2012年7月2日 星期一

    DVD

    DVD 雜項備忘


    CAPTCHA

    功用:
    主要是用來分辨留言者是真人還是機器人的機制。Google reCAPTCHA 這個套件不僅實用,也同時幫忙著 Google Book 的數位化,很有趣,許多網站都會看到它的蹤影(例如:NTHU Library )。不過它已經被破解了( 參考 )。以下是實作的相關的參考資料。
    <script type="text/javascript">
     var RecaptchaOptions = {
      custom_translations : {
       visual_challenge : "取得圖形驗證碼",
       audio_challenge : "取得音效驗證碼",
       refresh_btn : "重新整理圖形",
       instructions_visual : "輸入兩個英文單字:",
       instructions_audio : "輸入您聽到的聲音:",
       help_btn : "獲得協助",
       play_again : "重新播放音效",
       cant_hear_this : "將音效下載為 MP3",
       incorrect_try_again : "錯誤! 請再試一次"
      }
     };
    </script>

    2012年6月29日 星期五

    Wireless Hacking

    稍微瞄過下文章後的感想。
    家中的 Wireless AP 沒在使用時,還是關閉為佳。


    2012年6月26日 星期二

    AC3 Filter

    • 因為在看影片時常常會有說話聲音太小的問題,調整音量也覺得效果不徍,Google 了一下,可以透過 AC3 Filter 軟體解決。 
    • GOM Player 與 AC3 Filter 的 結合方式
    • POT Player (請參考下圖)

    2012年6月22日 星期五

    Search

    PHP Upgrade Issue

     參考資料

    Google Feed API

    You can use the Google Feed JSON interface to write feed applications in any language that can handle a JSON-encoded result set with embedded status codes. 

    將遠方的 RSS重新彙整到自己所開發的頁面。

    CODE DEMO

    2012年6月21日 星期四

    實用工具收集

    2012年6月7日 星期四

    2012年6月6日 星期三

    Keyword

    <?php
    $keyword= 'keyword1 keyword2';

    $search_word=explode(' ',$keyword);

    foreach ($search_word as $word){

        //echo  $word."<br />";

        $where_list[]="`question` LIKE '%$word%'";//SQL

        $where_clause = implode(' OR ',$where_list);

    }

    if(!empty($where_clause)){

        $search_query .= " WHERE $where_clause";

    }

    echo $search_query; //WHERE `question` LIKE '%keyword1%' OR `question` LIKE '%keyword2%'
    ?>

    2012年6月4日 星期一

    Web APP

    PHP 將 Google Chart URL 抓成圖片

    <?php
    $url = 'YOUR CHART URL';
    $image_data = file_get_contents($url);
    $image = imagecreatefromstring($image_data);
    imagejpeg($image, 'google-chart.jpg); // 於此目錄下, 產生實體圖片
    ?>
    

    2012年6月2日 星期六

    常用的 Windows 指令整理

    • Win7
    • 自動
      • 登入 - control userpasswords2
      • 開機 - BIOS (power_on 調整)
      • 關機 -  排程 + shutdown.exe -s -t 60 (60秒後自動關機)
    • Windows 設定及使用網際網路連線共用 - URL
    • VirtualBox
      • 自動啟動 VirtualBox Guest OS -利用批次檔,加入排程內執行即可 (e.g. VBoxManage startvm guest os name)