Archive for August, 2005

商業模式與創新

前幾個月參加了一個研討會,大致上就是在研究如何針對商業模式進行創新,並透過具有創意的經營模式來申請專利,以達到阻擋後進者的目的。

這個研討會其實是建立在兩個假設上,商業模式本身是可以申請專利的,同時是可以執行的、具有排它性的

只是,人類的商業模式真的是應該被專利保護的嗎?而保護這種專利又真的會促進文明的發展、科技的進步嗎?


試想,如果分期付款購物是一個專利,世界會是怎麼樣?如果使用信用卡購物也是一個專利,社會又會怎麼樣?存錢給利息、借錢付利息也是專利的話,那究竟誰得利呢?專利使用在商業模式上,似乎看不到什麼正面的效果。

那反過來看,商業模式的專利是否可以促進社會的進步,使得更多人投入商業模式的創新呢?我想這是正面的,否則我也不會有機會參與那樣的研討會。然而,"有意義的" 商業模式是不是更多了呢?或是,大家只是急於把 One-Click Purchase、相關產品推薦等在現實生活中早已經行之有年的動作,放在電子商務之中、然後宣稱是一種創新呢?

而我們是不是越來越習於、避免談論任何有潛在商業價值的想法?我們是不是越來越害怕把自己的想法在公開場合、公開網頁發表、然後因為被抄襲而失去先機了呢?我們是不是因為一直想要阻擋別人,而忘了商業活動的本質是什麼了呢?是不是誤以為把自己小小簡單的想法緊抱,就可以把一家公司給經營好呢?

而最終最終,我們的生活是否真的改善了呢?

菜鳥與地雷

如果仔細觀察台灣的大大小小公司,會發現一件很奇怪的事,那就是第一線幾乎都是交給經驗不夠的菜鳥執行。菜,當然是相對的,這裡指的是經驗不到三年的員工。年資事實上也不是最大的問題,最大的問題應該在於菜,卻又沒有好好的訓練。


舉幾個例子;唸資工的在學校教過寫程式,卻沒有落實軟體工程方法,就去公司擔任研發工程師;唸會計的教過會計準則,卻沒有教作帳和假帳,就去事務所擔任查帳員;唸資管的學過資料庫和 ER 分析,卻沒有學過資料庫最佳化,就擔任顧問公司的系統分析師。

可是,顧客付的錢,明明就是以資深的計價,結果實際執行的全都是菜鳥。菜不是錯,但是技術或是能力的落差,卻沒有被重視,彷彿 Junior 和 Senior 之間不存在差距一般。更妙的是,甚至於就算想要找一個都是 Senior 的公司,也找不到。其結果就是地雷重重,看起來正常的表面之下,隱藏著風險和地雷。

我們可以理解學校教育並不是職前訓練,不可能把所有可能會遇到的狀況都放在學校的教育當中。但是,如果瞭解這樣的事實,當我們為了某些原因晉用 Junior 時,或是當我們自己就是 Junior 的時候,不就應該面對 Junior 的困境而在真正上戰場之前先進行模擬訓練嗎?否則所謂的創新、所謂的品質,其實也只是建立在沙地上的幻影罷了。

後來

劉若英‧《後來》

後來 我總算學會了如何去愛
可惜你早已遠去 消失在人海
後來 終於在眼淚中明白
有些人 一旦錯過 就不再

槴子花 白花瓣 落在我藍色百摺裙上
愛你 你輕聲說 我低下頭 聞到一陣芬芳
那個永恆的夜晚 十七歲仲夏 你吻我的那個夜晚
讓我往後的時光 每當有感嘆總想起 當天的星光

那時候的愛情 為什麼就能那樣簡單
而又是為什麼 人年少時一定要讓深愛的人受傷
在這相似的深夜裡 你是否一樣 也在靜靜追悔感傷
如果當時我們能 不那麼倔強 現在也 不那麼遺憾

你都如何回憶我 帶著笑或是很沉默
這些年來 有沒有人能夠讓你不寂寞
永遠不會再重來 有一個男孩 愛著那個女孩


那一年我寄了這樣的歌詞給她,帶著一種追悔的心情;她回給我的信上,也寫著她的遺憾。

只不過,後悔並沒有因為說出來而逐漸淡去;相反的,'為什麼'只會越問越多,答不出來的問題從來就不會因為時間而減少、因為分離而消逝。當遺憾打定主意要在你的心中佔去一塊地方,你是不可能把它趕走的。

我一直到很久之後才終於瞭解到,只有緊握住身邊人的手,只有在睜開眼睛的日子裡全力以赴,只有在每一天、每一個地方都努力讓自己開心,才有一點機會讓遺憾顯得不是那麼重要。它不會走的,不過你可以選擇不要讓它變得這麼重要。

後來,我終於學會了,如何去愛,自己。

(本報訊) 好人卡氾濫,好人社團串聯向立法院抗議,要求政府單位立即研擬相關措施遏止無限制發卡的行為。抗議民眾並在立法院前演出行動劇「我不想當好人」及「我想和他換」,在警察舉牌時狀況一度緊張,最後經過協調由好人代表向行政院秘書長遞交好人卡之後,以 「Orz」隊型平和離開。

據了解,本次的行動主要是為了抗議近年來國際情勢緊張、經濟發展走下波、原物料高漲而造成的好人卡濫發行為。《全世界好人聯盟》總會長郝仁傑表示,全球化的衝擊造成女性自主意識的抬頭,現今女性在兩性交往中,已由被動的角色轉為主動,而發好人牌可以說是女性自主意識抬頭的象徵。但是目前很顯然有濫發好人牌的趨勢,而且情形已經越來越嚴重,主管單位不能再以「無法可管」作為搪塞的藉口。

《台灣正港好人協會》理事長邰克爽則以高分貝指責政府這樣的行為簡直就是賣台。他說,目前台灣男性平均持卡量已高達十張,甚至有人一拿就是三十張以上,照這樣發展下去,「我們只有到對岸去發展一途!」他憤怒的表示。

抗議過程中,《情人節去死去死團》也到場聲援,並要求一併立法禁止情人節、耶誕節和跨年。《情人節去死去死團》總幹事沈辜丹質疑,「當世界上這麼多人在孤單的過情人節時,你,還能安心過節嗎?」

不過,由於抗議活動事先並沒有經過申請,在警方打算舉牌驅離時過程一度緊張。當警方正要把牌子舉起時,群眾中有人高喊「他要舉牌了!」現場立即亂成一團,群眾並向警方投擲水瓶和垃圾等雜物,最後在警方強調舉的並不是好人牌之下,群眾才怒氣暫歇。

由於現場除了好人社團之外,還有《PTT 鄉民總壇》和《Orz功》到場,現場秩序一片混亂,過程中甚至傳出「阿扁中槍了」和「共軍登陸了」,同時在與政府單位協調時,也不時有人高喊「沒圖沒真相」,使得整個協調工作非常的困難。最後由行政院秘書長出面接見好人代表及收下好人卡,並允諾研擬成立《好人輔導委員會》全力推動好人福利、限制好人卡發卡數量到每人三張,整個活動才告一段落。

相關新聞:

維基百科: 《好人文化

用 ISBN 抓書本封面

今天在玩 DokuWiki,看到有一個 ISBN 的 Plugin,可以用 ~~ISBN: [ISBN] ~~ 這樣加入書籍的封面,並連到 Amazon 的頁面。不過,中文的書籍大部份在 Amazon 都找不到,所以我就做了一個可以從博客來網路書店抓圖的程式。


程式的邏輯很簡單:判斷 ISBN Country Code,台灣和中國共用 957 和 986 這兩個編號,所以如果是這兩區就送到博客來去查詢;反之則送到 Amazon 去。為了禮貌,程式中也加入了 Cache 機制,以免對兩家書商造成困擾。目前 Cache 利用 ISBN 尾碼分散,短時間來說應該是不會有問題;不過還沒有實作 Cache Expire 機制(需要嗎?) 程式可以在這裡下載。

如果你只是想利用 ISBN 查詢書名,那不需要自己安裝一個。您可以利用 http://pesty.yichi.org/ISBN/ 來查詢,例如您要查詢 ISBN 是 9572231588 的書籍,只要程式去抓取 http://pesty.yichi.org/ISBN/?isbn=9572231588 的資料,就會回傳回兩行資料(以 n 分隔),第一行是書本的 URL,第二行是圖片網址,如果找不到則送出 HTTP 404 Error。回傳結果利用 PHP or PERL 都很好處理,就不在此多作說明了。

我不知道博客來是否有提供額外的 API,如果有的話希望知道的網友告訴我一聲以便改寫。我不太清楚他們是否歡迎這樣的行為,如果不歡迎的話….那我們再來幫其他網路書店創造來客吧 :p

做出來的結果請參考: 這裡

有問題請留言。

《說難》- 韓非子

凡說之難:非吾知之有以說之之難也,又非吾辯之能明吾意之難也,又非吾敢橫失而能盡之難也。凡說之難:在知所說之心,可以吾說當之。

夫事以密成,語以泄敗。未必其身泄之也,而語及所匿之事,如此者身危。彼顯有所出事,而乃以成他故,說者不徒知所出而已矣,又知其所以為,如此者身危。夫異事而當,知者揣之外而得之,事泄於外,必以為己也,如此者身危。周澤未渥也,而語極知,說行而有功,則德忘;說不行而有敗,則見疑,如此者身危。貴人有過端,而說者明言禮義以挑其惡,如此者身危。貴人或得計而欲自以為功,說者與知焉,如此者身危。強以其所不能為,止以其所不能已,如此者身危。故與之論大人,則以為間己矣;與之論細人,則以為賣重。論其所愛,則以為借資;論其所憎,則以為嘗己也,徑省其說,則以為不智而拙之;米鹽博辯,則以為多而交之。略事陳意,則曰怯懦而不盡;慮事廣肆,則曰草野而倨侮。此說之難,不可不知也。

凡說之務,在知飾所說之所矜而滅其所恥。彼有私急也,必以公義示而強之。其意有下也,然而不能已,說者因為之飾其美而少其不為也。其心有高也,而實不能及,說者為之舉其過而見其惡,而多其不行也。有欲矜以智能,則為之舉異事之同類者,多為之地,使之資說於我,而佯不知也以資其智。欲內相存之言,則必以美名明之,而微見其合於私利也。欲陳危害之事,則顯其毀誹而微見其合於私患也。譽異人與同行者,規異事與同計者。有與同汙者,則必以大飾其無傷也;有與同敗者,則必以明飾其無失也。彼自多其力,則毋以其難概之也;自勇其斷,則無以其謫怒之;自智其計,則毋以其敗躬之。大意無所拂悟,辭言無所擊摩,然後極騁智辯焉。此道所得,親近不疑而得盡辭也。

伊尹為宰,百里奚為虜,皆所以幹其上也。此二人者,皆聖人也;然猶不能無役身以進,如此其汙也!今以吾言為宰虜,而可以聽用而振世,此非能仕之所恥也。夫曠日離久,而周澤既渥,深計而不疑,引爭而不罪,則明割利害以致其功,直指是非以飾其身,以此相持,此說之成也。

昔者鄭武公欲伐胡,故先以其女妻胡君以娛其意。因問於群臣:“吾欲用兵,誰可伐者?”大夫關其思對曰:“胡可伐。”武公怒而戮之,曰:“胡,兄弟之國也。子言伐之,何也?”胡君聞之,以鄭為親己,遂不備鄭。鄭人襲胡,取之。宋有富人,天雨牆壞。其子曰:“不築,必將有盜。”其鄰人之父亦雲。暮而果大亡其財。其家甚智其子,而疑鄰人之父。此二人說者皆當矣,厚者為戮,薄者見疑,則非知之難也,處知則難也。故繞朝之言當矣,其為聖人于晉,而為戮于秦也,此不可不察。

昔者彌子瑕有寵於衛君。衛國之法:竊駕君車者刖。彌子瑕母病,人間往夜告彌子,彌子矯駕君車以出。君聞而賢之,曰:“教哉!為母之故,亡其刖罪。”異日,與君遊於果圍,食桃而甘,不盡,以其半啖君。君曰:“愛我哉!亡其口味以啖寡人。”及彌子色衰愛弛,得罪於君,君曰:“是固嘗矯駕吾車,又嘗啖我以餘桃。”故彌子之行未變於初也,而以前之所以見賢而後獲罪者,愛憎之變也。故有愛於主,則智當而加親;有贈于主,則智不當見罪而加疏。故諫說談論之士,不可不察愛憎之主而後說焉。

夫龍之為蟲也,柔可狎而騎也;然其喉下有逆鱗徑尺,若人有嬰之者,則必殺人。人主亦有逆鱗,說者能無嬰人主之逆鱗,則幾矣。

韓非子‧第四卷‧第十二篇‧《說難》

情婦節

當時間一點一點的走向十二點,躺在床上的男女靜靜的相擁。他們誰也沒有睡著,但誰也不願動上一動;儘管靜止的身軀並不能阻止時間的流動,至少,能讓時間過得更真實一點。


男人翻了個身,幾乎是在同時,女人發出了冰冷冷的聲音,

「你要走了?」

「不,我只是….」男人說,「翻一個身….」

「你手痠了嗎?」女人說,「我很重,是嗎?」

「不,一點也不,寶貝,」男人撫摸著女人的秀髮,「只是翻一個身而已,真的。」

分針好像在思考著該不該追上時針,而時針也在十二之前等待著分針。男人和女人把每一個滴答都聽得分外清楚,靜默,似乎是為了等待某一個聲音的到來。

「也許你該走了,」女人說,「沒有關係的。」

「不,別擔心,」男人抓著頭對著天花板說,「我想多待一會。」

分針終究還是追上了時針,咕咕鐘裡的布鼓鳥打破了沉默。男人悄悄的翻下了床,女人轉向另一邊。男人穿上了襯衫、套上了長褲,邊甩著剛戴上的手錶喀啦喀啦的,撫摸著背對他的女人。

「我走了。」男人輕輕的打開門,走出去。

女人聽著男人的腳步聲漸遠,緩緩的起了身,看了鏡中的自己一眼,走向另一扇門….。


男人悄悄的打開門,走入房間。女人躺在床上背對著他;他褪下襯衫、脫下褲子,悄聲的爬上床舖,從背後抱著女人。

「怎麼這麼晚….?」

「嗯,今天比較忙。」男人說,「我累了,睡吧。」

女人不發一語,聽著男人逐漸穩定而規律的呼吸。今天是個特別的日子,情婦節。只是,為什麼當我男人一天的情婦,卻只帶來雙重的空虛?

最近換成使用 MySQL 4.1 的人越來越多了,在許多地方也看到了哀嚎聲四起,遇到的狀況不外乎是原本的資料突然都變成不正常了,所以在這邊提供正解。

事實上這個問題不光是使用 UTF8 會有,照理說使用其他語系也會有相同的問題,例如如果我們原本用 GB2312 來存資料,結果現在升級後應該也會有問題。解決之道也很簡單:資料庫是什麼編碼,之後 Client 端程式就用什麼編碼和它溝通。

那要怎麼知道資料庫原本是什麼編碼呢?我在 commit 給 plog 中 adodb 的 patch 中包含了一段檢查 database encoding 的 code:


function _getDbDefaultEncoding($argDatabasename){
   if (!$argDatabasename) {
     return false;
   }

   // We use a SHOW CREATE DATABASE command to
   // show the original SQL character set when DB was
   // created.
   $result = mysql_query("SHOW CREATE DATABASE
        $argDatabasename", $this->_connectionID);
   if (mysql_num_rows($result) < 0 ) {
      // The specified db name is wrong!
      return false;
   }
   $dbInfo = mysql_fetch_row($result);
   $pattern = '/40100 DEFAULT CHARACTER SET (w+) /';
   if ( (preg_match($pattern, $dbInfo[1], $match) > 0) ) {
      return $match[1];
   }
   return false;
}

這個函式會檢查當初資料庫建立的編碼方式,並回傳回來,這樣可以確保我們不是冒然把 MySQL client 的 encoding 設定成 UTF-8 (這是目前看到大多數人的解法)。

接下來,在 SelectDB() 函式中,做以下修改:


function SelectDB($dbName)
{
  $this->databaseName = $dbName;
  if ($this->_connectionID) {
+   $dbEncoding =
+       $this->_getDbDefaultEncoding($dbName);
+   if ($dbEncoding) {
+     mysql_query("SET NAMES $dbEncoding",
+         $this->_connectionID);
+   }
     return @mysql_select_db($dbName, $this->_connectionID);
  }
  else return false;

這樣應該不管原本的編碼為何,讀和寫都不會有問題;唯一要注意的是,如果你的 MySQL 不是 4.1 以上,有些指令並不支援,所以這段 patch 不適用;我也替 pLog 寫了一個 isSupportUtf8() 的 function call, 可以用來檢查是否是 4.1 以上的版本,不過就不再這邊多加贅述了。

P.S. 請注意,如果你沒有學過 PHP,請不要問我該怎麼加入這段程式碼。請尋求你所使用的軟體之開發者的協助。