2011年8月10日 星期三
2011年7月15日 星期五
花生收成

主角其實是舒爽的躺在花生藤上作日光浴,只是照片被我轉了90度,看起來像貼牆站XD
這其實是大舅的地盤,拍完後發現大舅就在不遠處,快快把主角收起來逃跑,即便被發現也不會怎樣,但做壞事怕被發現,第一時間逃跑也是本能反應 ............
這篇其實是上一篇的續集……話說這週下田的主要目的是花生要收成了,收花生真的是一件累人的差事,天氣好的話,要在大太陽下拔花生,如果土太乾,那就會不好拔,套句大舅說的:會拔到彈起來。
雖然說這週都在下雨,土應該不會太乾,但這種雨勢……就怕花生又發芽了XD
然後另一個問題是拔起來的花生沒有曬會不耐放,以這幾天的天氣形態來看,早上天氣好拔花生,下午雨開始下,肯定曬不了,不過也樂得馬上煮熟拿來撥著吃ㄎㄎㄎ
2011年7月8日 星期五
科技始於人性

講到神農,就會想到嚐百草……可是台南神農街並沒有百草可以嚐。這條街上多是老建築,本來要拆,但拆到一半停了,現在就由一些商家跟藝術家將這裡經營起來,有些房子還看的到當初拆到一半而裸露的鋼筋。神農街路口的房子外牆,有一面牆面塗鴨,街上也有些裝置藝術及賣些手作品的店,基本上早上這裡是個修養身心靈的地方(我覺得……),到了晚上,是許多當地年輕人聚集的地方,因為有酒吧很嗨。晚上神農街上會亮燈,遊客也多了起來(機車也多了起來。。。),氣氛與白天截然不同,但很可惜的是假日晚上來到這裡完全沒辦法夜拍,因為人太多了。
至於為什麼街上那麼多老房子,偏偏要拍這一間,其實我也不太清楚那時候我在想什麼,就覺得應該至少找個老房子拍下全貌,背後完全沒故事這樣XD
現在看起來,如果要說這間老房子有什麼特別,大概就是二樓拉門開了就能直接跳樓了這樣,也許我當時也是這麼想的,所以就拍了……
再來講到接圖,現在接圖真的是超方便,以前還要找小程式,現在根本就內建在photoshop裡了,只要拍的不會太糟,接圖成功率近乎百分之百。現在連有的小DC都有內建接圖,智慧手機也有app可以處理,是說接圖那麼方便,以後要廣角鏡怎麼活呢?
呼應一下主題,PO個科技始於人性也將死於人性的小故事。
===========================
客服:「東東披薩店您好!請問有什麼需要我為您服務?」
顧客:「妳好,我想要………」
客服:「先生,請把您的AIC會員卡號碼告訴我。」
顧客:「喔!請等等,12345678。」
客服:「陳先生您好,您是住在泉州街一號二樓,您家電話是23939889,您的公司電話是23113731,您的行動電話是0939956956,請問您現在是用哪一個電話呢?」
顧客:「我家,為什麼妳知道我所有的電話號碼?」
客服:「陳先生,因為我們有連線到『AICCRM系統』。」
顧客:「我想要一個海鮮披薩……」
客服:「陳先生,海鮮披薩不適合您。」
顧客:「為什麼?」
客服:「根據您的醫療紀錄,您有高血壓和膽固醇偏高。」
顧客:「那……妳們有什麼可以推薦的?」
客服:「您可以試試我們的低脂健康披薩。」
顧客:「妳怎麼知道我會喜歡吃這種的?」
客服:「喔!您上星期一在中央圖書館借了一本《低脂健康食譜》。」
顧客:「哎呀!好……我要一個家庭號特大披薩,要多少錢?」
客服:「嗯,這個足夠您一家十口吃,六百九十九元。」
顧客:「可以刷卡嗎?」
客服:「陳先生,對不起,請您付現,因為您的信用卡已經刷爆了,您現在還欠銀行十萬四千八百零七元,而且還不包括房貸利息。」
顧客:「喔!那我先去附近的提款機領錢。」
客服:「陳先生,根據您的記錄,您已經超過今日提款機提款限額。」
顧客:「算了!妳們直接把披薩送來吧,我這裡有現金。妳們多久會送到?」
客服:「大約三十分鐘,如果您不想等,可以自己騎車來。」
顧客:「什麼?!」
客服:「根據『AICCRM系統』記錄,您有一輛摩托車,車號是GY-7878。」
顧客:「……#@$%^&$%^&※!」
客服:「陳先生,請您說話小心一點。您在八十九年四月一日用髒話侮辱警察,被判了十日拘役。」
顧客:「………………」
客服:「請問還需要什麼嗎 ?」
顧客:「沒有了,是不是有送三罐可樂?」
客服:「是的!不過根據『AICCRM系統』記錄,您有糖尿病…………」
2011年6月15日 星期三
swfupload
吃驚的發現這裡竟然整個5月都沒有新東西,快快上來補個KM。。。。。。
今天要介紹的是一個在網頁上好用的檔案上傳工具,叫做swfupload,看名字就知道他跟flash有關係,沒錯!!他就是一個用flash做的上傳工具,先來講他的功能跟特色。
簡單的說有幾點:
1.可以自己設定一次傳一個檔案,還是一次傳多個檔案
2.可以限定一個或多個可上傳的檔案型態,當然要不限定也是可以,比較常見的應用可能是限定上傳jpg,jpeg檔。當然,檔案型態的判別是用windows預設的識別方式-副檔名,這點有點可惜,不過沒辦法,M$就是不用mimetype辨識也打不到他
3.可以限定上傳的檔案大小、數量。這個應該也常用到,除了因為大部份ICP不會給你無止盡的使用空間外,台灣的寬頻水準也不容許你暢快的愛傳多大就傳多大
4.上傳檔案不換頁,可以一邊上傳一邊看上傳進度。所以這樣就不會發生使用者上傳時盯著白白的畫面發呆,或是看一個上傳中的gif檔也不知道到底傳完沒(誰中槍?)
5.一次傳一堆時可以知道哪個檔案傳成功,哪個檔案傳失敗,不會發生一個失敗,等於全部失敗的慘劇
使用上也相當簡單,在download的頁面下載最新版本的sample檔,解壓縮後,在demos的目錄裡面,依應用模式分了好幾個資料夾,找一個中意的,把他放到網頁上就對了!
拿我用的simpledemo版本來說,這個資料夾裡有index.php跟upload.php兩個檔。index.php是上傳介面,把這頁裡上傳的那塊完完整整的摳到我的頁面裡要用的位置,然後把upload.php、images資料夾、js資料夾放到同一個目錄裡,再摳一下他的css檔,最後在upload.php裡加上儲存檔案的php程式碼,這樣基本上上傳功能就做完了,啊哈哈哈好簡單!
好的,到這裡是基本功能,現在開始講一點進階的。
首先,這個範例的按鈕有點醜,所以我去摳了他的XPButtonNoText_61x22.png來當我的按鈕樣式放到images資料夾裡,然後在設定的地方,button_image_url改成XPButtonNoText_61x22.png,button_width、button_height也跟著改成適當的size。
file_types設定成限制網頁能直接顯示的圖片*.png;*.jpg;*.gif;*.swf,多個檔案類型指定時,用分號隔開。
file_post_name改成我自己的名稱,這個會影嚮到upload.php裡要用什麼名稱接收,如果file_post_name設abcde,upload.php裡就用$_FILES["abcde"]來接收
file_upload_limit改成20,表示一次最多只能上傳20個檔案,必竟我不是用在相簿管理……
然後我改成選完檔案不要直接上傳,而是等按了我自己的確定按鈕才能傳。在handlers.js裡的fileDialogComplete,把this.startUpload()拿掉,然後在我的確定按鈕下swfu.startUpload()
最後呢,我還把他的顯示訊息中文化了。。。在handlers.js裡面,所有progress.setStatus開頭的部份
改好上傳測試,一次OK,簡單到不能再簡單的了
忽然覺得這年代寫程式的人越來越不值錢了,因為大家都好愛供獻好用工具
正所謂google搜尋學得好,做好網頁沒煩惱XD
2011年4月28日 星期四
廁所小常識
所謂廁所小常識,不是上廁所的常識喔!是把一些哩哩扣扣的常識貼在廁所裡,上廁所無聊的時候看一下可以排解無聊。不知道這是誰想到的,公司竟然有這種東西。貼一張小紙條在每間廁所,還定期更換,最近這一次換提供笑話,很老梗但是滿好笑,給大家笑笑。
羽球拍
我朋友告訴我一件發生在他家的笑話
她讀國小的弟弟隔天有羽球課,所以她媽就幫他弟把羽球拍放在袋子裡,
結果他上體育課拿出來時才發現媽媽幫他帶的是電蚊拍~
哈哈~~他說超丟臉的全班都快笑死了
----------------------
專業顧門口
一個專業財務顧問拿到新印名片, 氣急敗壞的打電話到廠商抗議:「你們把我的名片印成專業顧門,少了一個口,請更正!」。隔了數日,收到更正的名片,上面職務頭銜印著專業顧門口
講到羽球拍,讓我想到之前一次運動會打羽球,不知道跟哪位仁兄借了一把拍拍來用,比賽正驚險刺激,對方送上一顆高飛球,我看他們站位不佳,準備要給他們一個強勁殺球,球來了,我正中紅心用力的給他殺下去,那球快的看不到影子,對手站在網子的那邊傻愣愣,只是這個時候我也傻愣愣,因為球就這樣給他隱形了,然後我舉起拍子,恩……我捕獲一枚羽球,它就卡在我的羽球拍上,還把網子刺破一個洞。。。。。。重點是這害我丟一分
2011年4月21日 星期四
mysql取前後各n筆資料
這問題常常會遇到,因為大家都喜歡在網頁上加上「上一筆」、「下一筆」的按鈕
簡單的做法是把連結加個標記,告訴下一個網頁現在是哪一筆,你要抓上一筆還是下一筆,這樣單頁就可以只執行一次query,可是在大家注重SEO的時代,這個做法可以說不太聰明。
於是乎,程式人員只好在一頁裡多下幾次query把上一筆跟下一筆都先抓出來,不過程式人員的特性就是懶!想到要一直下query就不開心,所以呢,網路上就出現了很多類似的討論主題,不過最快速的方式也就是下。兩。次。。。是的,還是不能一次搞定。
簡單的說明下兩次的做法:
假設要找編號228的前後一筆資料,而且編號欄位的值在資料庫裡可能會有跳號狀況,因此絕對不能用+1,-1的做法處理,所以要分別下
SELECT * FROM 資料表 WHERE 編號>=228 ORDER BY 編號 LIMIT 2
SELECT * FROM 資料表 WHERE 編號<228 ORDER BY 編號 DESC LIMIT 1
可是呢,這個是單純的狀況
如果要從a,b兩個資料表抓資料出來編號228前後一筆資料,而且裡面一個類別的欄位值要跟編號228的一樣,但是下sql語法之前還不知道編號228的類別是什麼,如果一樣下
SELECT 編號,a.類別,b.類別名稱 FROM a,b WHERE 編號>=228 AND a.類別=b.類別ORDER BY 編號 LIMIT 2
SELECT 編號,a.類別,b.類別名稱 FROM a,b WHERE 編號<228 AND a.類別=b.類別 ORDER BY 編號 DESC LIMIT 1
就會發現抓出來的資料會擁有不同的類別值……
為了要先得到編號228的類別,就要先下一次
SELECT 編號,類別 FROM a WHERE 編號=228
當然,其實不一定要把這句獨立,可以把他併到上面那個例子裡當一個subquery,就也是2次搞定,不過有可能會得到一句落落長的sql語法,光看就頭昏眼花……
知道228的類別後,再來抓他同類的前後一筆,可是這個時候再下2次就很笨了,因為如果一開始就決定要下3次 ,還上網找答案做什麼呢?
於是我用了UNION
(SELECT '前' as tmp,編號 FROM a WHERE 編號>228 AND 類別=x ORDER BY 編號 LIMIT 1)
tmp欄位只是標一下前後各是哪一筆,萬一228的前後剛好有一邊沒資料,就會比較好判斷
說穿了還是subquery的概念,只是因為前後一筆我們只需要知道部份資料,如果跟228一起搜出來,mysql回傳回來的一大堆資料其實都用不到,這樣就浪費了server資源
而用UNION把兩邊的資料一起抓出來,也會比分2次進資料庫抓資料來的省時間
目前看來好像就只有這幾種方式比較省力了,為什麼他們不出一個nearby的函數,專門用來處理這種狀況呢...............................


