2011年12月19日

懶人便當<一> 烤排骨

話說每天準備便當,在有時間的時候還滿好玩的,每天都要發明奇怪的菜色,然後隔天吃到灰頭土臉上吐下瀉的,但是有時候真的會很懶得花一兩個小時在廚房弄東弄西,但是不煮就會沒得吃,於是就會想一些偷懶的做菜方法,反正美觀不是我的強項,不如就來寫寫懶人食譜吧。

基本上把握的要訣就是減少顧火的時間,跟減少使用的廚具,事後收拾清洗的時候比較省時省力。


read more...

2011年11月6日

日光時間惹的禍

大概是高中的時候,有人警告因為電腦計算年份的位數只有兩位的關係,所以在西元2000年的時候,許多電腦系統會大亂,可能造成不亞於世界末日的後果,也就是俗稱的「千禧蟲」。

西元2000年的時候,我還是個大學新鮮人,所以拯救世界這個重責大任,壓根不會落在我肩上;後來在IT界打滾的時候,碰上了民國100年,有些日期在記錄的時候是用6位數的文字欄位來放,這時候就要調整成7位數,好在我早就習慣用西元年來處理日期,所以也不用特別去處理這個問題,八位數的欄位要再過8000年才會不夠放,我想這個期間長到我可以不用去擔心。


read more...

2011年10月10日

陽台上的小花園 - 系列二

好不容易渡過一個可怕的夏天,我的花花草草總算恢復了一點生氣,但是在酷熱天氣以及病蟲害的摧殘之下,還是不幸陣亡了一些弟兄。

聖誕紅的狀況超級好,接下來要進入冬天,紅葉應該會慢慢出現吧。


read more...

2011年8月10日

一個程式呼叫的架構概念

這是我之前花了幾個月的時間做的一個小專案,其中的一個機制,算是專案中我花最多時間去思考的部分。

這個專案要做的是一個選單系統,大概就像是Windows的開始功能表打開的那個感覺,裡面會有多層目錄,也會有很多可執行的程式項目,只是這個選單要用來掛載各個自行開發的系統,所以要能方便維護選單內容,並能支援系統的各種權限及執行設定。


read more...

2011年7月1日

讓我們先來定義它吧

最近接到了一個需求,是要把一個我本來就已經提供的功能,升級為可批次處理。

批次處理這個很好懂啊,就一次輸入一堆資料,然後對每一筆資料做一模一樣的事情,完全就是程式設計的基本功啊(??)。

接到這個需求,當然要先想一下怎麼做再來動手,我準備在畫面上放一個挑選資料的區塊,分割成左右兩邊,左邊是可以挑選的,右邊是已經挑選的,這個介面很常見並不算複雜,然後加上一個輸入變更原因的文字方塊;不過在我把整個程式的架構設計得差不多的時候,客戶突然問我,可不可以讓每個項目有不同的變更原因。

當然礙於我得對我的工作內容保密,所以整個程式的內容不能講得太明白,這樣子可能不太好懂,所以用以下這個我虛擬的程式來說明吧。

某校的教務系統裡提供一個程式,可以讓老師「批次當人」,程式畫面大概像下面這張圖一樣。

操作的方法是先查詢系級的學生名單,名單會出現在左下的區塊,然後把要當掉的人選出來當掉,被當掉的人名字就會移到右下的區塊,最後選擇當人原因後儲存。

但是有老師反應如果他手上四種原因當掉的學生都有,那他就要操作四次,這樣很麻煩,所以在這些老師的建議下,程式改成下面這個樣子。

操作方法是查詢後,選擇要當的學生跟當掉的原因,然後按下當掉,學生的名字跟原因就會出現在右邊的區塊,把所有的學生跟當掉原因都選好後,再儲存結果。

第二種方法給人比較快速簡單省事的錯覺,但是其實按鍵的次數並不會比較少,其實以哪一種方法來操作意思都差不多,而且介面也不會差到哪裡去。

但是如果我們給每次批次加上一個批號,意思就大不相同了,讓我們用表單來說明。

第一種方法,是每一批次都是同樣原因,這裡批次被定義為相同原因被當掉的學生要放在同一批。

第二種方法,這裡的批次就只是同一次當人作業下犠牲的學生為同一批。

用另外一個例子在說明,今天有一批新兵結訓要下部隊,有專車要載這些人去部隊,新兵雖然都從同一個營區出發,但會分發到不同的地方去,這時候專車的開法有兩種,第一是每台專車都只載前往同一個目的地的新兵,第二是每台專車沿途停靠各目的地陸續放人下車,當然兩種方法各有好壞,只能視當時的狀況來決定要用何種方法。

至於我碰到的這個狀況,我覺得批次這東西多少是有意義的,如果把不同原因的東西放在同一批不會很奇怪嗎?但是客戶認定的批次就只是把本來要分好幾次完成的作業一次完成,只是一個省事的方便做法。因為認知的不同,這個要求在我眼中看起來就像是在表單上自行擴充欄位一樣亂來。

所以我說,讓我們先來定義批次這件事吧,我認為批次是這樣,你覺得批次是那樣,兩種我都能幫你們做,那種方法比較好,我想請你們自己評估之後再告訴我吧。

結果因為要實現第二種方法,需要比較長的開發時間(當然成本也會高一些),所以決定採用我的原設計(也是客戶需求最原始的模樣),當然節省營運成本也是一種專業,不過我的資訊專業還是為了此事躲到角落去哭了。


read more...

2011年5月11日

陽台上的小花園 - 系列一

最近在家裡過的都是很悠哉的生活,我都戲稱是退休生活,閒來沒事種種花也是應該的嘛。

後陽台種的大部分都是開花跟可以吃的東西(因為離廚房近嘛)。

其中有一盆花,我一直不知道叫什麼名字,是外面撿種子回來種的,本來都是軟趴趴也長不高的,可能最近天氣變好,我又把它移到有陽光直曬的後陽台,突然長得又高又直。

還開了前所未見的大花朵,花謝了之後結子的機會還滿高的,我不時就會去採子來繼續種。

然後是過年時候買來的菊花。

施過一次肥吧,然後開花開不停,又一直在長新的花苞。

前陽台則是以草本跟香草植物為主,之前天氣冷的時候大家都慢慢長,後來經過了短暫的春天,幾乎每盆都來個大爆炸的成長,這張相片還是兩週前照的,現在又長得更多,鋁窗上已經長滿滿了,害我不敢再加新盆栽,這點讓我很煩惱。

佛手芋本來大概都維持在6~7片葉子,最近狂冒嫩葉啊。

這盆好像叫做山菜豆,買來的時候本來是2吋盆,最近也是突然抽高,而且發了很多枝葉,不知道能不能養到開花。

不知道為什麼一直長莖的薄荷,葉子都小小片的,最近也開始有大片葉了,而且成長速度超級驚人。

最後來看一眼種給貓吃的小麥草吧。

這種春夏的季節,植物成長的速度真的好快呀,長蟲的速度也是很快,才拍完照沒多久,我就有一盆香菜長蟲死光了,幸好在臨時前還結了不少子。


read more...

2011年5月6日

軟體也需要CAD - Balsamiq Mockups

以前啊,在寫設計文件的時候,最怕的就是使用者介面,用Word去把程式畫面拼出來,真的會做到想要炸電腦啊。

看看這個簡單的「示意圖」,千萬別小看這張圖這麼陽春這麼簡單呀,要利用Word提供的繪圖工具加上文字方塊,把這張圖做出來,可也是要做到滿頭大汗痛哭流涕的,更別提如果覺得圖畫得不好想要修改,再加上Word優異的排版能力,常常會讓放上頁面的內容不安份地待在自己應該在的地方,不受控制的程度會讓設計師的火氣更上一層樓。

當然我也可以選擇用Powerpoint來做這件事(應該不會比較好),學過美工的當然能用Photoshop或是Coreldraw之類的(沒學過的怎麼辦),高手級的想用小畫家也是可以啦,或是直接開視窗程式的編輯器來拖拖拉拉(只是要抓圖時會有一堆不該出現在框框或是格線)。

前幾天我又在為了設計介面煩惱的時候,無意間被我發現了Balsamiq Mockups這個軟體,一用之下真是驚為天人啊,第一次打開這個軟體,熟悉介面,一直到畫出第一張程式畫面,我只花了20分鐘!

接下來的一個下午,大概四個小時的時間,我就利用它完成了14支程式23個畫面,然後用內建的功能匯出成PNG圖檔,大概花了十秒鐘吧,整個過程真是讓人感動到只差沒流下眼淚了。

除了Windows Form之外,它還能畫出網頁、手機介面,對任何一個常常要生程式畫面,或是設計介面的人而言,實在是一個不可多得的工具,簡直就是軟體界的CAD啊。

只是這麼好用的軟體也不太可能會有免費好康這回事,下載版只有七天的使用限制,如果我的頂頭上司們不介意這種充滿卡通筆觸的設計成果,我應該就會給他買下去了啦!


read more...

2011年3月18日

ASOS初體驗

這是個血腥殘忍的故事,它教我們:「交友要謹慎,以防被推坑。」

上個禮拜,朋友丟給我ASOS的網站,說這個網站全球免運費,要我研究一下要怎麼買,我現在覺得這根本就只是藉口,他只是想看我亂花錢吧!!

總之,我也沒有辜負他的期望,抱著試試看這個全球免運費到底好不好用的實驗精神,就隨便挑了幾樣東西。(要不是最近錢包薄)

總之,過了一個禮拜,真的是一個禮拜哦,不多不少剛好七天,東西送到了。

好久沒收到國外寄來的東西呀,上一次應該是在八九年前吧。

裡面就隨便挑的三樣東西,鞋、圍巾、手套,都是ASOS的自有品牌,總共£37。

剛好我有一雙皮鞋壞了一年多,就買雙來補吧,這雙£17,不算貴,不過是假漆皮,不知道能撐多久,是還好皮鞋沒常穿。

這雙是尖頭鞋,看起來是還好,但是穿上去才發現實在是尖到不像話,不過搭西裝褲的話應該是還好;本來是想買UK7號的,因為我馬丁鞋是穿這個尺寸,可惜UK7沒貨了,所以買了UK8,穿起來尺寸是剛剛好啦。

底是橡膠底,不知道會不會滑,改天穿去爬山試試看好了。

黑色麂皮手套,因為想要一雙不是騎車用的手套而購入,摸起來像真皮,試戴了一下,手指短的宿命就是所有的男用手套對我而言都太大,更何況這還是阿豆仔尺寸,不過應該是超級保暖的,才剛戴上沒幾秒就覺得好熱,一雙£10,算是超值吧。

然後不知道為了什麼而買的圍巾,我圍巾好多啊,但還是買下了,雖然人矮還故意買長圍巾呀,毛摸起來還好,織得還滿密的,不過最近應該沒有超強寒流可以來試試了吧,£10應該也不算貴。

以上是簡短開箱文,只是我想最近還是少開這個網頁比較好。

PS.那個灰色大包裝袋貓超愛,剛剛鑽進去就躲了半小時不出來,真是好工具呀。


read more...

2011年3月14日

K&R Fuzz Maker

一直以來我都想要有一顆Fuzz,也收集了不少Fuzz電路圖,好像也試做過一兩個,但是聲音都不是我想要的那種,市面上大部分的Fuzz也都不合我口味。

有一次在效果器網站上亂逛的時候,被我發現到這顆K&R Fuzz Maker,網站上有附試聽檔,音色完全吻合我想要的Fuzz,馬上就聯絡在日本的朋友幫我買了一顆。

收到的是一個小小的牛皮紙信封包裝,裡面是用緩衝材包起來的盒子。

拆開包裝,是一個挖好洞的機殼,這是一個效果器套件而不是成品,當然要自己動手來才符合我的風格嘛。

套件的所有材料都包在機殼裡面了。

把收到的東西拿出來排好,有一包零件包,還有一堆裝機零件。

拍完照以後,把所有零件裝回機殼,用本來的包裝包好,收再書架上,就這樣過了一年半…

上個月的某一天,我突然心血來潮,決定把這顆效果器拿出來組裝。

於是馬上打開電工工具箱,把零件拿出來排好,準備開始動工。

電容不多,而且很好認,倒是那一大堆的電阻,看來要判斷阻值可累人了。

幸好說明書上的零件表,很貼心地把色碼都標上了,這樣做起來快多了。

果然三兩下就完成了,買套件真是輕鬆自在啊,想起自己洗電路版的過去…

很久沒拿烙鐵,技術也沒生疏太多,每個焊點都可以在兩秒內完成,而且印刷電路版真的很好焊。

再來用附件裡附的裸銅線,把三顆VR的接腳延長。

稍微折彎,以方便調整高度後,焊上電路板。

然後依照說明書的指示,先把機內配線弄好,因為說明書上都有把接腳跟線的顏色標得很清楚了,所以不用動大腦也可以輕鬆完成。

再來把配線連上電路板。

把VR調整成適當的高度,鎖上機殼,就可以一併把電路板固定好。

套件裡還另外附了一片塑膠片。

是用來貼在機殼的蓋子上的,以防止電路板底部不小心碰到而短路。

製作過程到這裡已全部完成。

貼上附贈的貼紙(有兩個貼錯地方被旋鈕擋住了),馬上就上電測試啦,不過我的吉他彈得爛爛的,就不錄音了,想聽音色的就自行到前面的網站連結裡去聽吧。


read more...

2011年1月19日

系統路歹行

近來被手上的案子搞得團團轉,讓我也心生許多感慨,想要趁空檔整理一下這些日子以來的心得,只是這個空檔一等就是大半年呀…

我們現在所稱的系統,多指在電腦上運行的系統,其實只要有人、有資料、有流程,就足以稱為一個系統,這個在大學的中階課程「系統分析」中就有明白的訓示,那堆曾經折磨眾多資訊科系學生到三更半夜的圖表,不都是在描述人、資料、流程這三件事的關係嗎?

現在俗稱的「導系統」,嚴格說起來,不過就是把現有的工作改到電腦(或者再加上網路)上作業,或是把本來就在電腦上的作業(通常只是Word或Excel等泛用工具),變得更簡單更聰明更自動。

對於這樣的需求,我們先以「電腦化」來稱呼吧。

在電動化之前,使用者(或稱客戶)應該要先把自己的需求定義清楚,當然需求有千千百百款,我暫且簡單分成三類吧:

一、沒有什麼複雜的工作流程或作業習慣的問題,只是想要找個軟體來使用,讓電腦幫忙輸出漂漂亮亮的報表,讓長官看了心情好-請找坊間通用套裝軟體。

二、對現有的工作流程很滿意也不想更動,只是想要把工作移到電腦上,讓電腦幫忙輸出漂漂亮亮的報表,讓長官看了心情好-請找程式設計師(可找學生比較便宜)。

三、現有流程的問題太多,需要徹底分析檢討並且能接受任何作業習慣改變的衝擊,以期達到作業自動化及增進工作效率的目標-請找SI公司。

因為自己一直以SI工作者自居(雖然只是被當作程式工看待),所以交到我手上的案子,都會從根本去分析需求、資料、流程之類的,但是每當提出一個看似很偉大的架構時,往往就會被打槍了,因為大部分需求其實是屬於第二類的。

他們習慣於現有的流程及工具,不想做任何改變,電腦化只是上級的要求,所以他們希望有一套完全以他們現在的作業流程來打造的電腦軟體,最好連報表都跟他們自己用EXCEL做的長得一模一樣。

恕我直說,如果只是要達到這樣的目標,去找個會寫程式的學生來寫寫就好了,而且如果本來的流程完美到無法挑剔,那麼這樣做沒什麼不好。

其實所謂的「導系統」,最重要的部分應該是「解決問題」,去找出現行作業上的問題,可能是前人偷懶而生的積習,或是為因應工具及環境限制,而衍生出的作業方式;然後設計新的流程來解決這個問題,也可以應用新的工具及方法(像是電腦與網路)。

因為電腦化可以解決太多往日的舊問題,所以很多人會把「導系統」跟「電腦化」畫上等號也是有原因的吧

舉個最簡單的例子,做簡單的收入支出帳時,用筆寫在紙本帳冊上,難免會字跡遼草、辨識不易、保存困難、調閱不易,數字的加加減減也容易算錯,改成用Lotus 123來製作帳本,一次解決以上各種問題,雖然也產生了新問題-要去哪裡找可以開啟這些檔案的環境。

系統分析課教我們的第一步就是要列出問題啊,那些煩死人的分析工具是後面的事,如果真的沒有問題,那延用就好了,不要硬是為了導系統而導,浪費錢又煩死人,更何況電腦化真的沒有比較好(心虛)。

只是遺憾的是,許多公司機關團體,想要導系統,是因為上面長官的指示,或是公司政策,但是很多時候上面的決定只是為了趕流行,什麼流程改善或是增進績效之類的似乎不在他們的考量,承辦人也多是接命令做事,對於系統要達到什麼目標也不太清楚。

於是常會聽到這樣的需求:「這裡可不可以改成這樣做(比照過去做法)」「你這樣設計我們根本就沒辦法用啊」之類的。

我在這個業界的經歷算很嫩很嫩,尤其承接的系統幾乎是在完全沒慨念的基礎下從頭學起的,當然不敢拍胸脯保證說我做的系統有多完美,所以一定有可以改進的地方。

只是,在接到一個需求時,我還是會先分析這樣做到底對不對,有時候只為了符合現在的作業習慣,不想做改變,就硬要用明顯有問題的作業流程,這可是會讓寫系統的人生氣的啊!(好啦,只有我會生氣)

就我自己而言,我的盲點在於沒有實際的操作經驗,而使用者的盲點在於,流於習慣而忽視了存在的問題,所以導系統為什麼要兩邊人馬出面橋個半天,就是這個原因啦。

不過相較於客戶不想改變的習慣,SI這一端的也不見得有多好啦,可能是因為看到太多客戶一句話,工程師就埋頭猛改,都忘了先分析這個變更合不合理了,常常改完這個問題又會冒出另一個問題,永遠都在需求變更的地獄裡痛苦輪迴呀!

至於這個輪迴的起點,有一種是因為「客戶永遠是對的」這樣的信仰,還有另一種常見的是「客戶趕著要這個功能」,在這個輪迴中或許有些有著祟高理想的人,會堅持要先完整分析需求再來動手做的王道,只是個人的堅持往往敵不過老闆的堅持…(很高興現在的公司讓我有很多堅持的空間,所以這一段不是在講我們公司啦)

而不管導入什麼系統,人都佔了很重要的因素,只要是由人來操作,操作的人就必需接受相當程度的訓練。在視窗環境剛興起的那幾年,看過一部戲劇,一個不懂電腦的媽媽熱心地幫忙整理電腦桌面,把看起來很醜的圖示都丟到垃圾筒裡…

有時候我會聽到這樣的意見:「你這樣設計我們的使用者一定會做錯。」這時候我都很想回嘴說:「做錯關我什麼事啊。」好佳在我都只是想想,沒有真的回話,否則現在也不可能安然地坐著這裡打文章了。

一個電腦系統,在面對使用者有可能出錯的狀況,可以設計各式各樣的防呆,像是在要填入數字的欄位不允許打入非數字的字元,但是再怎麼防也沒辦法百分之百防止出錯,本來應該填入100,000你硬要給我打入10,000,少打一個0我是能拿你怎麼辦,電腦沒有聰明到可以發現這種錯誤啊,一直拿一定會有人做錯的理由要我更改設計,這簡直是強人所難啊。

就系統面可以做到的,或許就是增加一些在資料出錯時,可以用來補救的措施,並且紀錄出錯的原因,更可以做些簡單的統計,看看哪個人的錯誤率異常地高,但根本上來說,應該要從嚴格的人員訓練做起,一天到晚出錯的人考慮懲處或調離現職,如果是因為制度或流程設計不良,而造成錯誤率居高不下,就應該檢討並修改現行的作法。總之這類的問題,應該是從管理面來改進,要求系統來處理這個問題,實在是捨本逐末。

以上是這幾個月的小小心得,或許對於在這個領域中努力十幾年的前輩而言,根本就是常遇到的小狀況,但每次碰到這些問題,都讓我有滿腹的情緒沒地方發洩,又不能在會議上跟客戶對嗆(雖然真的曾經失控過),只好到自己的小天地來抒發一下,只求上帝保佑我的客戶們不要無聊閒逛看到這篇,就算看到了也不要對號入座放在心上了。


read more...