2009年6月19日,星期五接近中午的時候,一通電話聲劃破公司的寂靜。neo掛上電話後,只跟我說了一句:
"客戶說,訂單資料表被清空了!"
彷彿晴天霹靂一般的愣了好幾秒。不過因為該客戶網站已經在上線正常運作,在愣下去會越來越麻煩,因此便跟Jace跟neo緊急討論了處理方法。
先確認幾個要點:
山村有祐 發表在 痞客邦 留言(0) 人氣(1,461)

Friday's忠孝店
地址: 台北市忠孝東路 4 段 49 巷 2 號
Tel:(02)2711-3579
營業時間:週一~週日11:30~24:00
營業結束前一小時停止供餐
全面禁煙,共 188 個座位數
2009年6月17日,公司為了體恤大家平日的辛勞,特別請大家到Friday's忠孝店聚餐。印象中活到現在應該只有在高中時期去過一次,
對該餐廳的印象只有兩個:貴跟份量大。因此據說通常的點餐方式都是三五好友各自點一道不同的主餐在一起share著吃,有因為這樣的點餐方式,
光決定要點幾道餐點就花了我們一堆的時間(非常熱心的服務生來回問了好幾次搞的很不好意思),最後還是努力的點完了菜。
這杯是abu點的飲料:"夏日騎士",為何只拍了abu的飲料是因為除了這杯看起來很特殊以外,abu因為當天感冒還點了這杯冰飲料被吐槽了很久。
這道是第一個端上桌的餐點,他叫花枝圈,要如此正名的原因是他跟後來上的洋蔥圈其實差很多。(這句真的是很真誠的說)
這道是拼盤,左邊跟中央都是雞肉只是烹調方式不同,最右邊的是奶酪餅,對於厭惡重起士跟牛奶口味的說是如同地獄的食物(雖然abu說很好吃)。
這道是服務生推薦的雙醬豬肋排。旁邊的附餐是洋蔥圈,它真的跟花枝圈差異很大。(再強調下去筆者應該會被打)
這道是唯一的麵食。除了很難用叉子捲起來食用以外真的很好吃。
這道也是拼盤。最上面的豬肋排據daniel說是鄉民強力推薦的美食。(這倒是真的)
這道是Jace一直讚不絕口的肋眼牛排,我還是在他還沒把它喀完前趕緊搶拍了一張。(磨菇醬/七分熟)
這道是服務生在我跟abu閒談中自行加入點餐單上的巨無霸布郎尼,唯一美中不足的是布郎尼外加了酸草莓感覺味道很怪。
最後結帳完餐廳還給了一些薄荷糖讓大家在享用美食後的口氣可以變的芬芳,在大家互道晚安下結束了這次的聚餐。
PS:所有圖片都是用手機爛爛的相機功能拍的。
山村有祐 發表在 痞客邦 留言(0) 人氣(304)
官方網站 http://jquery-howto.blogspot.com/2009/05/jyoutube-jquery-youtube-thumbnail.html
js下載點 http://plugins.jquery.com/files/jyuotube.zip
介紹
山村有祐 發表在 痞客邦 留言(0) 人氣(6,963)
官方網站 http://filenice.com/
展示網頁 http://filenice.com/demo/
介紹
filenice是一套用php編寫的檔案瀏覽工具,作用在你本身如果有架設網站並有某個資料夾提供上傳檔案,當你想要查看這個資料夾中有哪些檔案時,filenice提供使用瀏覽器就可以查看的功能。
安裝
到官網下載檔案(
http://filenice.com/demo/fileNice.zip),下載完畢將解壓縮後的檔案放到網站伺服器上你想要瀏覽檔案的資料夾下即可。
優點
官方的說明是filenice是使用php+javascript也就是所謂的Ajax技術編寫的,因此速度比較快,而且當應用程式忙碌時可以返回而不會整個畫面當掉。此外使用filenice不需要安裝任何資料庫。
感想
filenice提供了無須安裝其他軟體,僅需使用瀏覽器就可觀看主機上提供upload的資料夾下的內容,也可自訂瀏覽檔案的一些排列等細節,另外也提供搜尋的功能。不過個人比較覺得可惜的是,因為無須登入帳密即可觀看,在安全性上稍顯不足,不過或是也因此除了觀看以外,並沒有額外提供刪除或是上傳的功能吧!?介紹給大家用看看!
山村有祐 發表在 痞客邦 留言(0) 人氣(410)
緣起
在架設網站實務上,常會遇到希望知道主機上網站使用的頻寬或是流量等資訊,不論是客戶純粹想藉由此資訊來了解這個網站是否真的"有用",或是拿來當作所支付的頻寬/流量費用是否有達到實際使用量的參考。通常頭一個想到的就是mrtg(可參考
鳥哥的網站很詳細)這個模組,架設簡單且在需求不是那麼高的情況下,是很好用。但由於 MRTG 是透過 snmp 協定去統計,也就是單一主機上的網路卡去做偵測及統計。如果一台主機上有好幾個虛擬網站(VirtualHost)的話,MRTG就比較難針對單一網站做統計。因此這個時候可以利用Apache 2 的模組 mod_cband,mod_cband是一種頻寬限制模組,他除了可以針對單一主機上各虛擬網站去限制頻寬以免流量爆掉,本身也提供了頻寬數據的表格可參考。現在就讓我們看看如何開始使用mod_cband吧!
安裝mod_cband
這裏使用tarball的安裝方式。先下載mod_cband,目前版本為0.9.7.5,下載點
按此。在Linux指令列下可以下指令::
wget http://fresh.t-systems-sfr.com/unix/privat/mod-cband-0.9.7.5.tgz
然後解壓縮
tar -zxvf mod-cband-0.9.7.5.tgz
開始安裝(這裡以系統已安裝apsx 或 apsx2 來做範例 )
cd mod-cband-0.9.7.5
./configure
make
make install
很簡單吧!就是一般的編譯與安裝,安裝完畢會自動在apache的設定檔httpd.conf中寫入以下訊息:
LoadModule cband_module /usr/lib64/httpd/modules/mod_cband.so
至此安裝完畢,記得要重新啟動apache。
設定mod_cband
那麼我們要如何去針對網站去限制頻寬以及查看統計圖表呢?以下舉實例來說明。開啟 /etc/httpd/conf/httpd.conf 來編輯:
山村有祐 發表在 痞客邦 留言(0) 人氣(1,604)
官方網站 / demo http://www.gruppo4.com/~tobia/cross-slide.shtml
CrossSlide 是一個幻燈片效果的jQuery Plugin,可以實現多種不同風格的幻燈片展示效果,包括淡入淡出,輪播,放大縮小等等。下面以三個程式碼範例來說明用法。
共同程式碼
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.cross-slide.js"></script>
此兩行為載入必要的js檔。
程式碼1--上下滑動效果
山村有祐 發表在 痞客邦 留言(0) 人氣(2,862)
官方網站 / demo
http://batiste.dosimple.ch/blog/posts/2007-09-11-1/rich-text-editor-jquery.html
Lightweight RTE是一套標榜檔案輕量化,所見即所得的文字編輯器(Rich Text Editors簡稱RTE),格式為jQuery Plugin。Lightweight RTE有以下幾個特點:
Super lightweight 7kb uncompressed (超輕量的檔案大小僅僅7kb)
Compatible with major browsers (適用於主流瀏覽器)(官網寫適用於IE6, Firefox 2, Opera 9, Safari 3.03不過我用IE7也是正常運作)
Degrade gracefully (簡潔)
GNU General Public License (符合公共通用授權)
山村有祐 發表在 痞客邦 留言(0) 人氣(2,321)
前言
公司在針對各專案,一直都是使用Subversion(簡稱svn)這套軟體來針對各專案的檔案做版本的控制。至於何謂Subversion以及要如何使用這套軟體可參考這篇文章,這裡就不再贅述。這篇文章僅用來記錄在安裝完新的主機後,當我們要從遠端某台svn主機要把專案的檔案取出時出現以下訊息:
svn: Unrecognized URL scheme for 'http://www.sample.com/svn/bnq/trunk'
的解決方法。現在就讓我們來看看吧!
山村有祐 發表在 痞客邦 留言(0) 人氣(421)
緣起
之前公司的某個現有客戶想要追加新功能,因為當初這個專案並沒有參與到,所以就花了一些時間在研究資料庫結構及功能流程。在看mysql發現到有使用到以前沒有接觸過的view的概念,就上網找了些資料來詳讀。或許對很多使用非mysql資料庫的程式設計師來說,view的概念其實很簡單甚至覺得不需要特別寫這篇文章;但是其實mysql是一直到5.0版才開始支援view的概念,也因為不支援view而造成在其他資料庫轉入mysql時造成小小的困擾。這篇文章主要會介紹在撰寫view的語法時要特別注意的8個錯誤,就讓我們開始吧!
何謂view
依據筆者的瞭解,所謂的view就是把專案中常使用的sql語法存入到mysql裡,如此在程式撰寫sql語法上可以簡化,不需要每次都要寫一堆語法。舉個例子來說,以往我們要串兩張資料表撈取其中一張表的某欄位時,我們通常會寫成:
select tableA.name from tableA,tableB where tableA.id=tableB.id;
如果每次都需要這樣寫稍嫌麻煩。我們改用view的概念先把tableA與tableB先關連起來建立了一個view叫做v_tableA_tableB,以後我要撈取tableA的name欄位值時,就可以簡單寫成:
select name from v_tableA_tableB;
而達到同樣的目的。也就是說,我們可以先把一些常用的sql語法用view的方式存到mysql裡,之後要使用時只要針對這個建立的view去作存取即可。那我們該如何在mysql中建立一個view呢?來看下一段的說明。
如何建立一個view
以上一段的範例中,如果要建立v_tableA_tableB這個view,我們會寫成:
CREATE VIEW v_tableA_tableB AS select tableA.name from tableA,tableB where tableA.id=tableB.id;
create view v_tableA_tableB 表示我們要建立一個名稱叫v_tableA_tableB的view;AS 後面會接上要使用的sql語法,如此就很簡單的建立了一個view。那麼,在建立view的時候,有沒有什麼要注意的地方呢?下一段讓我們來看看本篇文章的重點--8個錯誤的設定吧!
8個錯誤的設定
1.不能對暫存資料表建立view
mysql > CREATE TEMPORARY TABLE tt (col1 INT);
mysql > CREATE VIEW v AS select * from tt; //-------(X)
mysql中不允許對一個暫存資料表建立view,這已經是一種標準。
2.在同一個資料庫中table與view不能同名
mysql > CREATE TABLE tt (col1 INT);
mysql > CREATE VIEW tt AS select * from tt; //-------(X)
在同一個資料庫中,table與view是共用同一個命名空間,所以在命名上要注意不得重複。
3.不能對不存在的table建立view
mysql > CREATE VIEW tt AS select * from no_such_table; //-------(X)
雖然在Oracle中可以用FORCE這個參數避掉這個錯誤,不過mysql中並不允許。其實mysql的作法更趨近標準。
4.不能針對沒有權限的資料表建立view
簡單來說,假使某使用者對tableA沒有權限可控管時,在建立tableA的view時同樣也會出現權限不足的錯誤訊息。
5.建立view中不得使用變數或是參數
mysql > CREATE VIEW v AS select * tt
-> WHERE s1 = @variable AND s2 = ? ; //-------(X)
ERROR 1351 (HY000) : View's SELECT contains a variable or parameter
如果在建立view的語法中加上變數或參數,馬上就會回傳錯誤訊息造成建立失敗,這個在標準化的sql語法中都是如此設定的。
6.在from 中不得包含子查詢 (sub-query)
mysql > CREATE VIEW tt AS select * from
-> (SELECT s1 FROM t1) AS x; //-------(X)
ERROR 1394 (HY000) : View's SELECT contains a subquery in the FROM clause
在建立view的語法中,如果在from後面加上子查詢 (sub-query)會發生錯誤。這個在其他資料庫如Oracle其實是允許的。
7.不能在view中使用同樣的欄位名稱
mysql > CREATE TABLE tt (col1 INT);
mysql > SELECT col1,col1 FROM tt;
mysql > CREATE VIEW v AS select col1,col1 from tt; //-------(X)
ERROR 1060 (42S41) : Duplicate column name 'col1'
在範例中如果我們在一般的table中下同名的col1去select是不會發生錯誤的,但在view則不行。在view的欄位名稱必須是唯一的。
8.欄位數量錯誤
mysql > CREATE VIEW v (s1) AS select s1,s2 from tt; //-------(X)
ERROR 1353 (HY000) : View's SELECT and view's field list have different column counts
如果在view的欄位與select中的欄位數不一致時也會造成建立view的錯誤。
總結
在看了以上的說明後,相信應該對view的正確設定上會有更深的認識。其實關於view的相關資料還有很多,這篇文章僅針對一些容易發生錯誤的設定上做了簡略的介紹,不論是官方文件或是網路上都可以找到更多關於view的資料,有興趣的人不妨可以去找來看看。
山村有祐 發表在 痞客邦 留言(0) 人氣(1,419)
一般我們在smarty樣版中如果要在顯示的資料使用php函式時,如果是只有一個參數的函式比如說去空白的 trim 會寫成:
sample 1
山村有祐 發表在 痞客邦 留言(0) 人氣(401)