2018/10/17

Spring Boot 試作紀錄

工作上的系統,架構常用到micro-service,建立這些服務,常常都需要自己架構出需要的服務元件。常讀到Spring Boot的介紹,對它的自動化很好奇,趁著有個小空檔來試作一下。

試作目標:
  • 支援 static resources
  • 支援 servlets (HTTP request handler),收到request後,可根據client的資訊作回應
  • 嵌入Tomcat或Jetty

使用環境:Eclipse 2018-09

安裝 Spring Tools
進入Eclipse後,點選 Help | Eclipse Marketplace...
以 "spring tool" 就可找到 Spring Tools 4,點選Install即可安裝

建立 project
我們利用剛剛安裝的Spring Tools提供的工具來建立Spring Boot專案。
首先在主選單點選 File | New | Other...

選擇 Spring Boot | Spring Starter Project,然後進入Next

接下來要設定專案的相關資訊了,雖然事後都還可以調整,不過一開始就先設定好,後面可以省些事

幾個比較重要的欄位:
  • Name (專案名稱),這預設會連動到下面的Artifact ID
  • Type, Java Version, Language都使用預設,Packaging有Jar與War,看未來想打包成何種形式,可以在pom.xml中改變
  • Group (Group ID) 用來識別此專案的名稱 (可參考這裡),可以在pom.xml中改變
  • Artifact (Artiface ID)在未來產生Jar file時會用到這名稱,可以在pom.xml中改變
  • Version用來記錄版本,在未來產生Jar file時會用到,可以在pom.xml中改變
  • Description用來對這個專案作一個描述,可以在pom.xml中改變
  • Package則是建立程式時預設的package架構

接下來就要選擇專案需要的dependent libraries了,例如若專案需要用到PostgreSQL的JDBC driver,就可以直接勾選,Maven就會自動幫你下載了。
目前試作的專案只需要Web,所以就勾選Web即可。

點選Finish,Spring Tool就開始幫我們產生專案了。

Spring Tool幫我們產生了一個程式 GreetingApplication.java。這程式的內容很簡單,就只是啟動Spring Boot的應用


建立靜態網頁
靜態網頁與相關資源(js, css, etc.) 可以放在src/main/resources/static下。在此專案我們就放一個簡單的網頁。


page.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome</title>
<link href="css/page.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Hello, welcome to static page.</h1>
</body>
</html>


page.css
h1 {
color: #ff7777;
font-style: italic;
}


建立Servlet (request handler)
接下來我們要進行動態回應的部分。我們列出需求:

  • 當使用者以POST或GET連結到 http://:8080/func時,則會由此handler來處理
  • 如果request parameter有name,我們就回覆 Hello, !,如果沒有name,則回覆 Hello, world!
  • 列出使用者的IP

我們建立的handler如下 (RequestHandler.java)
@RestController
public class RequestHandler {

    @RequestMapping(value="/func", method={RequestMethod.GET, RequestMethod.POST})
    public String handler1(@RequestParam(value="name", required=false) String name,
            HttpServletRequest request, HttpServletResponse response) {
        String user = (name==null || name.isEmpty())? "world": name;
        String host = request.getRemoteHost();
        String result = String.format("Hello, %s! You are from %s", user, host);
        return result;
    }
}


對此程式片段作一個註記:
  • @RestController:Spring採用MVC架構,註冊此程式為Controller
  • @RequestMapping:註冊此方法負責特定request的處理。value的值為URL對應的path,method則標記了要處理的方法
  • @RequestParam(value="name", required=false) String name
    Spring Boot會幫我們解析parameters,你可以將你需要的parameters都列出來。
    required預設為true,如果為false則表示此參數可能不存在於query string中
    解析出來的name值會放到字串name中
  • 因為我們需要使用者的IP,這需要從request物件中來取得,因此我們handler1的參數列加上了HttpServletRequest request,以便在程式中抓到IP
  • 雖然不會用到,我們也加上了HttpServletResponse response,若程式需要對response object作一些設定可以使用。在這個專案中是可以拿掉


執行
如果熟Eclipse的朋友就知道有很多種執行方法。這裡介紹其中一種,在project上按右鍵,Run As | Spring Boot App 就可以執行了


透過瀏覽器來看靜態網頁
以及動態內容


產生 JAR file
在project上按右鍵,Run As | Maven install就可以產生jar file了。

產生的jar file會放在專案的target目錄下。

所產生的jar file包含了專案所有需要的資源與libraries,因此只要把這個jar file放置到要執行程式的機器上,就可以執行這個服務了!
java -jar greeting-0.0.1.jar


由於這個jar file包含了必要的libraries,因此其file size大概都從15MB起跳。對大部分的運行環境應該都還能接受。

改內嵌 Jetty
Spring Boot 在 web應用上是預設內嵌Tomcat,若要改為使用Jetty,則需要修改pom.xml。現有的pom之片段是:

在這裡將Tomcat排除掉,再加入Jetty

這樣就可改用Jetty為平台了

修改port
這個系統預設是使用port 8080,若需要修改,可以直接在src/main/resources/application.properties中加上下列這行 (例如要改為port 88)
server.port = 88

2018/09/23

距離 距離 距離

人的移動範圍會隨著使用的工具而改變。小的時候靠著爬行,生活的範圍就大概在房間客廳之間。等再長大會走會跑,社區與公園就成了他們奔放的地方。上了國小國中可以騎著單車時,就可以自由的在更廣的區域悠遊。等滿了十八歲,就會想要有一部機車,讓足跡可以跨出縣市,甚至遍及全島。隨著工具的進化,家長們的心臟也得跟著成長才行。

小朋友長大了,考上駕照,可以騎著機車到處遨遊。這時候的他們真的有如初生之犢般。
你會怎麼叮囑你的小孩呢?

就像房產界的名言「location, location, location」,我都會叮囑騎車開車的夥伴要注意「距離、距離、距離」。掌握好這三個距離,應該可以更能保障自己的安全。這三個距離是:

  • 空間的距離
就像一句老話「保持距離,以策安全」,這個距離應該很直觀。隨時跟前車鄰車保持好安全距離,就可以減少很多的身體接觸,保持平安。
  • 時間的距離
人遇到狀況到做出反應,大概需要0.5秒的反應時間。如果以時速10km/h來看,0.5秒的反應時間,你已經移動了約1.4m。如果你的速率達到50km/h,那移動的距離就達到7m。這只是我們人類的反應時間,還沒計入機械作用的時間。
當行車的速度越快,或是年紀與精神狀況影響反應速度,就要注意這個時間上的距離,為自己的反應時間留下更多餘裕。

  • 容錯的距離
新聞上常常有各種交通事故,例如大車的內輪差,或是「車主的品格配不上車子的品牌,駕駛的技能跟不上車子的性能」這種怪怪名車的事故,這些名車馬力大、速度快,造成的傷害也就大。還有很多馬路三寶,不打方向燈就變換車道或轉彎,不看後視鏡,開車門不回頭觀察路況...
我們可以努力降低自己出錯的機會,但是也要努力降低別人帶給我們的傷害!
多注意一些交通事故的新聞,了解他們發生的肇因,儘量預留足夠的容錯距離,來避免別人帶來的傷害。

2018/08/15


海豹部隊軍官的戰場帶人原則:沒有糟糕的團隊,只有差勁的領導者!
https://buzzorange.com/techorange/2018/03/05/how-us-navy-seals-lead-and-win/

在海豹部隊的地獄周裡,學員們被分組進行各項無止盡的對抗競賽,獲勝的艇組就可以不用出賽下一場競賽,獲得短暫喘息。

在各項競賽中,第二組的艇員表現最優秀,獲得了多數競賽的勝利,從他們的表現中,可以看到一些特徵:
  • 對自我的要求都非常高
  • 工作時同心協力,運作起來像一支團隊
  • 每位艇員表現積極
  • 互相幫忙,彌補彼此的弱點
第六組艇員的本質學能也都非常優秀,但是整體的表現卻不理想,他們經常在各項競賽中墊底。我們能從他們的表現看到一些特徵:
  • 未發揮團隊精神,每個人都是單打獨鬥
  • 遷怒和責怪隊友。指責隊友沒做到自己的本分
  • 艇員只關心自己的痛苦和不滿

(你與他人相處時,能看到其他人的優點嗎?還是你都努力發掘別人的缺點?)

教官們決定把這兩組的艇長互調,看看是否會改變這兩組的表現。
在接下來的各項競賽中,第六組如同脫胎換骨一般,表現突飛猛進,在很多競賽中得到了勝利!這互調鋌長的舉動,似乎驗證了沒有糟糕的團隊,只有失敗的領導者!

此文中推論出領導力是團隊表現中很重要的單一要素!那好的領導者應該有哪些領導原則呢?書中提到了下面幾點:
  • 落實標準的施行
    在設定預期目標後,如果未達標準的表現能被接受,而又沒有人須承擔責任,那麼這些未達標準的表現就會變成新的標準
    因此領導者必須盡力落實標準的施行,善用「絕對責任」的觀念,確保動作能夠再三重複,直到達成預期水準
  • 運用強制力,讓不同成員合作
    團隊需要紀律,透過強制力,或是激勵或鼓勵,讓不同的成員共同合作,戮力達成任務,這就是「絕對責任」的真正意涵
這裡提到了「絕對責任」,所謂的「絕對責任」就是零藉口,這就是高效團隊的重要秘訣!許多團隊在未戰之初就開始為失敗的責任鋪路,開始切割或責任的排外,清楚表明「這不是我負責的,不關我的事。」這樣爭功諉過的團隊,很難有1+1>2的效果。

2018/05/21

白沙屯媽祖北港進香2018

認識白沙屯媽祖應該是去年的事
今年去了幾次白沙屯拱天宮朝拜,總讓我有心安的感覺

有聽說今年的進香相當硬,05/16深夜23:40起駕,36小時就要到達北港。好吧,就當作是給自己的一個挑戰吧。時間上05/17容許可以請一天休假,所以就決定05/16跟隨白沙媽走一段,能走多遠就走多遠。自己設了一個目標,如果可以,希望能走到大肚溪,把台中市走完。這是第一次隨香,就把這一次當成體驗了

05/16下班後,回家做了些準備,然後搭乘台中20:48開出的成追線電聯車。在車站哩,看到滿滿的香燈腳,大家雖不認識,但由於都有相同的目標,很快就能聊起來。許多前輩們也開始分享經驗。

上了車,聽到海線電力纜線故障的車長廣播,車子只能到達大甲。大家議論紛紛起來了,有些人開始思考怎麼從大甲到白沙屯,有些人想在大甲等大轎,也有些人查詢到台鐵有接駁車。

隨緣吧!

還好,電聯車到達大甲時,電車線已經修好了,可以順利前進到白沙屯。

約22:30到達白沙屯,整列車的人幾乎都下車了。越過天橋,步出車站,車站外滿滿是人了。由於這次的隨香我並沒有報名,想想應該先到拱天宮,向媽祖報告我要參加進香,請媽祖也能庇佑。

往拱天宮走去,越靠近拱天宮人就越多,到了廟前的路,整條路塞滿了人。勉強擠到廟前的戲台就根本沒有辦法前進了。(想退後也非常難)。很多附近廟宇的神明神轎來送行,進進出出,把整個廟前小路擠得滿滿。
山邊媽來了,工作人員在地上舖置了大量的鞭炮,大家也騷動了起來,開始往旁邊擠,想躲開鞭炮炸開的範圍。
鞭炮點燃了!震人的音量與瀰漫的煙霧,彷彿是這次進香的序曲,讓人開始感受到這次旅程的氛圍。
開始往外走,發現地上有一個粉紅色的臂章,上面佈滿了被鞭炮燒灼的痕跡。應該是剛剛大家躲鞭炮推擠被擠掉的吧。問了問附近有沒有人掉了,不過在當時的吵雜情境,應該沒多少人聽得到吧。身邊一位阿姨就說應該找不到失主了,要我乾脆把臂章別在背包上,幫這位失主帶著臂章走這段旅程吧。

離起駕還有一段時間,想說先往火車站的方向走,路邊找個地方先休息。一路走,一邊開始接受到附近店家的熱情。還沒走到火車站,手上就多了礦泉水、蠻牛、草仔粿、沙琪瑪、LED警示燈,手上全滿了,還有很多東西就婉謝了。總算了解在火車上,前輩們說可以帶個小拖車或行李箱來的意思了。
找了個騎樓,把鞋帶再整理一下,也稍作休息。

遠遠聽到頭旗車的電音到了,我也起身跟在頭旗後面。出發了!36小時要走200公里的旅程。

走上了台一線,整個南下車道都封閉了,路邊也停滿了資源補給車,彷彿是個夜市般,大家很熱情地招呼你來拿吃的喝的,還有痠痛藥膏與貼布。
嗯,痠痛藥膏與貼布,在暗示著你這條路夠你受的了。

頭旗的腳程真的很快,雖然我不斷超前其他香燈腳,但卻越來越落後頭旗了。
不刻意去追了,就用自己的節奏來走。

01:16追上了頭旗
不是我腳程加快了,是頭旗在這裡停下來了,所以我才能追上。
很多人都很疑惑為什麼頭旗停下來,我問了幾位香燈腳,才知道是頭旗來到了一個叉路,頭旗不知道白沙媽要怎麼走,所以要在這裡等白沙媽的指示

開始感受到白沙媽進香的特色了,只有起點與目的地,沒有固定路線、沒有行程表、沒有固定的停駕駐駕地點


跟著頭旗的香燈腳都在三角公園(綠色區塊)附近休息,等待大轎,等待白沙媽

如果走中山路,那就要進通霄市區,如果繼續走台61,那就會接到台一線。

大轎接近了,由北往南,走到了台61與中山路的叉路口。大家都在等著白沙媽的指示。

中山路!
聽到鑼聲是往中山路走!

白沙媽的大轎緩步走進中山路。頭旗與香燈腳們都趕緊向中山路移動。

但是沒想到,白沙媽卻在圖中的A點突然小跑步起來往B點前進,往台61走。大家傻眼了!
第一次親眼見到粉紅超跑,超感動

白沙媽在開大家玩笑嗎?

由於後面的香燈腳看不到大轎,這時聽到很多人在問白沙媽到底走哪邊了。
等到頭旗與頭旗車趕緊回到台61,後面的香燈腳才搞清楚白沙媽往哪邊走。

當走到C點時,白沙媽不走台一線,而是右轉上台61高架快速道路!對,是台61高架快速道路,是車輛跟重機才能走的路段!白沙媽把大家都帶上快速道路了!
(我身邊的波麗士大人很緊張的用無線電通報:我怎麼知道白沙媽會走這邊,趕快派車過來前導跟後方警戒啦)

於是,整個台61高架道路的南向車道就成了進香專用道了。香燈腳們也都超興奮,因為從來沒有用雙腳走在快速道路上!

一路南下,走過通霄電廠,第一次從這個角度看這個電廠。

這時也見識到為什麼大家會把大轎暱稱為粉紅超跑,因為,他就是快!快到你連車尾燈都看不到。難怪有前輩說,你在路上看到粉紅超跑一眼,就大概沒機會再看到第二眼了,除非他停駕休息讓你有機會追上。


這一路走來,雖然很努力地快步前進,但是有著舒適的海風吹著,還不會感覺到疲累。天空很晴朗,可以看到許多的星星。感覺這趟真的是很愜意的旅程。(嗯...不知死活,後面等著瞧)

快五點,天微微透亮了。也開始有撞牆的感覺了。撐住!

到大安溪了。走在橋上,看到幾架IDF與三架C-130向西飛去,應該是CCK起飛的。倒是蠻少見到有這麼多架C-130一起飛行。

遙遠的前方響起了鞭炮與煙火聲,白沙媽應該到大安了。這也告訴了我,我現在離大轎有多遠了。

這時體會到一件事:一開始我跟很多朋友一樣都提早出發了,沿路也不斷的超前其他香燈腳,但是走到現在,還是離大轎好大的一段距離。不管你提早多久、走得多快,其實都不能保證你會先走到目的地;重要的是你有沒有能力與毅力,能走得更久,能走得更遠

六點左右,看見大轎坐西面東停駕在台61旁一條小路(龜殼路?)的路口。總算趕上了,也有機會再見粉紅超跑一眼。趕緊走到轎前跪下膜拜,感謝白沙媽這一路上的庇佑。

不過那時心中有個想法,白沙媽雖說很隨興,但從以前的資料看到,通常停駕休息如果不是在宮廟,也會是民宅或店家。而這裡好像什麼都沒有,就只是鄉下小路的路口。跟以往的慣例不大一樣。

嗯,白沙媽的隨興。

(後記:後來看新聞,知道CCK進行漢光演習預演時,有位跳傘者傘不開而墜地,而事情發生的時間點似乎就是白沙媽停駕的時間,真的很巧合)

鑼聲響起,粉紅超跑開始疾駛,我也繼續努力追趕。

七點了,已經走在大甲溪上了。在橋上,可以遠遠看到紅白相間的高美燈塔。太陽也開始為大地加溫了,而我也繼續撞牆。
大腿小腿好像已經不是自己的了,腳掌好痠,不過這都還好,還可以撐著。麻煩的是腳後跟有點刺痛,走路時成了有些踮腳尖的走法,走路的姿勢開始走樣,也因為用著平常走路不會用到的肌肉在前進,讓小腿更加痠痛!

撐著!

到了清水,腳後跟超不舒服,坐到路邊把鞋襪脫了,兩腳後腳跟都起了小指大小範圍的水泡,真糟。檢視一下運動鞋,發現兩腳鞋墊的後跟都已經扁了沒彈性了,鞋墊腳後跟部分也有破洞了。只能先把鞋墊稍稍調整一下,讓後跟可以有多一點緩衝。也希望能在路上遇到鞋店,可以換一組鞋墊,也許還可以走下去。

不過,走的是台61,根本是一片荒蕪,連平常四處都可以遇到的小七全家,這裡完全都沒了蹤影,更別說什麼鞋店了。

撐到梧棲台灣大道了,以現在的狀況,要走到大肚溪可能很困難。而且不管是在大肚溪北岸或南岸,可能都不容易搭到車回台中。

該設停損了。
承認自己失敗,也找出自己失敗的原因,下次再來過別又跌在這些點上。

恭敬的站好,向著遙遠前方的白沙媽祖報告自己要出列了,謝謝祂給了我這次很棒的體驗,雖然身體抗議了,但是一路走來心是溫暖的!真的,要走過一次才能體會那種暖暖的感覺!

第二天回到辦公室,跟同事聊起這次的體驗。主管問我明年還會想去嗎?
嗯,會!跟白沙媽走,真的會走上癮!

一些體驗,留給明年的我要注意的事:
  • 不管你提早多久、走得多快,都不能保證你會先走到目的地;要有能走得更久更遠的能力與毅力,用自己的步調去走就好
  • 一定要找雙好鞋,就算沒有好鞋,也要有好的鞋墊
  • 要有吸濕排汗的衣褲,除非你很耐曬,不然還是要長袖長褲,尤其是長褲。因為沿路都有鞭炮,穿長褲可以減少被炸到
  • 腳指甲一定要注意
  • 不要一開始就搜刮一堆補給品,那只是增加自己的負擔;沿路都有很多善心的民眾提供各種物資,拿自己夠用的就好
後記:檢視自己的鞋才發現,經過一夜,鞋子已經不成樣子,難怪失去保護腳的功能了。明年如果還有機會能跟媽祖走,一定得準備一雙好一點的鞋!

2018/05/06

讀到這篇「美國碼農加班少很多、卻能開發出厲害的產品?」,讓我想起了一件事:

某公司的主管,總喜歡在客戶或PM還沒提出需求,或是需求規格還沒共識前,就發動團隊依照他的想法開始作業 (應該是希望當規格出來後,就可以很快的遞交成果,向上級展現自己團隊的效率)

不過這作法產生了許多問題:
1. 規格最後如願被提出大概不到三成,他還常常要求PM把這功能補列入需求,讓團隊做出的功能可以計入credit,卻造成遞交的產品over spec,程式碼變得肥大了 (幸好公司不重視code coverage test)
2. 他的想法可能與客戶或PM的需求有出入,以致於開發團隊需要花更多時間在修改程式上
3. 有時實作必須修改架構,而修改架構會有意外的風險,需要花更多時間來測試與修改;若是為沒有需求的功能來增加這風險與成本,更是讓人懷疑這樣硬做的決策品質
4. 將開發團隊投入於完成又不被採用的功能,不僅時間沒花在刀口上,排擠了做其他事或進修的時間,每每做一些虛功更是打擊士氣
5. 公司PM常常spec.開得不清不楚、模擬兩可 (就所知,PM對專業知識了解不足,一些細節無法明確定義),這就造成開發團隊與DQA對spec.解讀不同而常有爭執。而此公司的issue tracking process是紊亂的,常搞到最後,產品最後的長相連PM可能都無法掌握

謀定而後動!
在開始踏出第一步前,先定義好你的目標與目的吧!

2018/04/16

主管守則

擔任主管,就沒有抱怨的權力!
如果你抱怨的是部屬,那就顯露了你缺少了識人育人用人的能力
如果你抱怨的是同儕,那就顯露了你沒能經營人脈、圓滿處事的能力
如果你抱怨的是上司,那就顯露了你沒有向上管理、讓長官安心放心的能力
如果你抱怨的是客戶,那就顯露出你沒能儘早看出客戶要的是什麼、在意的是什麼
如果你抱怨的是供應商,那就顯露出你拿了棍子與蘿蔔還管不好那頭驢子
如果你抱怨的是大環境,那就顯露出你沒有洞察機先的遠見

問題來了,作為一位主管,別再只是抱怨了!
因為解決問題就是主管的天職
在動嘴巴前,請先動動腦子展現出你比部屬優越的擘劃能力
在動手指前,請先用用關係把部屬拿不到的資源協調出來
在下決策前,也請聽聽部屬們的聲音,並適時地採納
然後捲起袖子,帶著夥伴們一起解決問題
如果問題沒能解決,就請拿出你的肩膀
如果問題順利解決,就退後一步,讓你的夥伴們站在你的前面

因為,你是主管!

2018/04/04

研究生完全求生手冊

「研究生完全求生手冊」
這是我很景仰的彭明輝老師所著。就我所知,這本書的大部分的內容是他寫給他lab學生的一份guideline,經過多年的累積才有這本書的誕生。

怎麼為這本書做紀錄呢?
真的好難,因為這本書一整個都是重點。讀這本書時,我一直在想,如果我還是學生時就有這本書,那我應該可以做得更好吧!

很建議老師們,當收一位學生(不管是博班、碩班、或只是大學部)進你的lab時,可以請他讀過這本書,讓他明白在你門下的這幾年,應該要學到什麼、應該要有什麼能力、應該要做什麼、又應該在哪個時間點做這些事...。當然,每位老師都有自己帶學生的方法,也有不同的要求,但我想很多老師可能沒有辦法把那麼多細節的事灌進學生體內,也沒辦法亦步亦趨地盯著學生的每個步驟,更沒辦法把這些重點寫下來讓學生們時時檢視;而個人覺得以彭老師的經驗、能力與歷練,已經把碩博生該知道的事,八九成以上都寫進這本書中了。而且這本書的內容,有很多是同為教育界的後進們學習與借鏡!

如果你是碩博班生,或是對做研究有興趣,也準備考研的大學生,這本書真的值得你讀!你應該要知道寫論文有怎樣的流程、規則、潛規則。可是,你跟到的老闆可能很忙,會忽略該告訴你一些你應該知道的事;也可能你的老闆較茁於言詞,沒辦法把一些細節清楚的讓你知道;或是你還不清楚在碩博班到底該做什麼、該學什麼、該怎麼在學術界的叢林中存活...,也許該找這本書一讀,為自己拿份這個學術迷宮的地圖,然後平安地走出這個學術叢林!

真要做這本書的筆記,可能要把整本書的內容都貼上來!所以,找一本來拜讀一下吧!

後記1:彭老師寫的導讀
後記2:蠻喜歡這篇,對許多菜鳥研究生來說,怎麼讀paper真的是如薛西佛斯般無止境的酷刑

2018/04/01

大數據資本主義


此書作者提到「富數據」,在平台世代中,不僅僅只是海量的資料,我們能獲得的還有多樣化的資料。因此不只是大數據(big data),更是富數據(rich data)。

富數據可以給我們帶來甚麼改變?作者首先提到了市場機制,他認為市場不只是僅促成產品的交易,還能促成技術、勞力、知識、時間等等的流動,簡言之,就是價值的流動。而市場很重要的機制:
  • 協調合作,以達到超越個人能力所能及的成就
  • 價值交換
相對於分散式的市場,作者也提到了企業。他認為傳統的企業運作方式皆為集中式,但隨著社會與技術的演變,企業或組織也將逐步走向如市場的分散式,用市場的機制來改造企業的運作模式與效能。
市場企業
資訊流動與決策方式 分散式 集中式
溝通協調 透過交易行為 階層管理,集中決策
目標一致性 目標不須一致,追求各自利益 目標一致,追求共同利益
資訊流動 點與點(P2P) 流向中央核心
組成份子 動態且具彈性 固定

隨著平台架構技術演變,交易資訊會更加透明:

  • 分享賣方(商品/服務)與買方(偏好)的富數據
  • 供需媒合邏輯
  • 紀錄與呈現,以挖掘偏好

傳統市場中,供需資訊不透明、不明確、不完整,因此常見到生產不足或過剩的問題。由於資訊透明化,市場也會走向去中心化、P2P的價值交換,提升交易效率。

在經濟學的供給與需求模型中,探討了價格與數量在供給與需求的變動下,會有怎樣的關聯。但交易的資訊非常多且複雜,傳統的市場中,很多資訊是難以取得、紀錄或處理,在模型中也難以探討這麼多的資訊,因此便將這些資訊濃縮成容易量化的價格。這樣的濃縮大大簡化了理論探討,但對資訊越來越透明的平台經濟,這樣的簡化會讓理論與實際失真,因為價格並不等同於價值,而只是供需雙方折衝,以量化金額為指標來呈現大量的資訊。資訊資到壓縮,失去了商品與偏好等之細節,便難以完整反映出交易的真正樣貌。

未來市場,資訊的流動會是簡單、快速、雙向、無距離,讓市場的本質成為基於資訊的排序機制。

而這樣的演化,會大大改變人類的生活模式。但是作者也在書中提到,這條路上仍應該注意「老大哥」的形成,以及工作權益、分配正義等等的議題。而這些議題更值得更多的經濟、心理、社會學家投入,以讓科技的發展真正為人類社會加分。

2018/03/10

FinTech跟我有什麼關係

FinTech是個很夯的話題,也許很多人對FinTech這個自摸不著頭緒。他是Finance + Technology。也就是將科技技術應用到金融財經上的跨領域結合應用。FinTech從很久以前就一直再進行,但最近由於許多科技有很大的突破,所以FinTech又有一波新的變化,有人稱之為FinTech 2.0。

就像是「科普」書籍一樣,這是本以很淺顯的方式介紹FinTech的「金普」書籍。這本書不厚,約200頁,加上很淺顯,很適合在周末花一兩天的時間就讀完。

下圖為書中所附之FinTech各項服務的概觀圖,透過這張圖可以更清楚的了解各項科技在拼圖中的位置,也許大家能想想某一塊是否可以用不同的方法技術來取代,就可以產生新的、不同的商業應用,創造出迥然不同的business models。



雖說用淺顯的方式來說明一些技術,但對非科技類的讀者來說,應該會對所提到的科技技術有一定程度的了解;對已經很熟悉技術的人來說,這本書從金融財經角度的切入,並提到10個現有領域應用及未來發展,可以讓技術人了解一下這些技術如何跨領域應用,以及未來可以有怎樣發展空間。對我而言,這是這本書最大的價值。

將此書主要內容整理如下心智圖,點選這裡可下載詳細的圖檔。

2018/03/03

「機器 平台 群眾」筆記

這本書提出三個正在改變世界的趨勢,未來世界的走向,也將取決於這三個概念的發展方向與成果!很值得未來還需要生存於這世界的人一讀與思考。

這裡筆記一下此書的重點(也加進我的理解與觀點),供我自己在日後,也給有興趣的朋友參考。

  • 機器 Machine (vs. 人腦)
    • 機器依據模型/演算法的計算能力優於人,也不會受到非理性因素的干擾
    • 目前機器在將新的常識/知識內化的能力仍薄弱
    • 機器尚無法有效應付人類的情緒狀態及社會性需求
    • 人腦與機器未來將發展出新的夥伴關係
      • 由機器主導常態性的運算與決策
      • 人扮演如基因突變的機制,使決策有機會脫離常軌,產生創新突破,不會陷於local optimum中
      • 人可以依社交面向來調整機器的決策

  • 平台 Platform (vs. 產品)
    • 平台之特質:
      • 免費:邊際成本近乎零
      • 完整:數位化,副本與正本無異
      • 即時:重製與遞送的時間非常短
    • 促生出新的business model
      • 以新技術與運作模式,帶出不同以往的商業模式,產生更多新的流動性
      • 能以更有效率的方式來使用資源,並活化閒置之資源
      • 改變成本結構,改善供需媒合,創造價值最大化
      • 以透明公開的模式,降低資訊的不對稱
    • 實體產品雖不可或缺,但逐漸成為平台經濟的附庸

  • 群眾 Crowd (vs. 核心)
    • 群眾無層級體制,不受約束,易促成自由表達與創新
      • 可以利用如市場的價格機制(如評價),對各項產出進行驗證
    • 群眾具有多樣性,可以從不同角度來進行思考、提供資源
      • 技術、人脈、金流
      • 定義目標,制定合約,集眾人之力來達成
    • 點對點、分散式、去中心化
    • 去中心化能否成功,奠基於合約之權利義務定義的透明與完備
    • 群眾具多樣性,需要更有效的溝通協調
      • 社交能力會越趨重要
    • 核心仍有其重要性,但需要賦予新的定位與運作模式
      • 成本最小化
        • 交易成本
        • 生產成本
        • 協調成本


2018/02/10

說故事的力量

這是在茉莉二手書店挖到的二手好書

書的概念架構在第一章就呈現出來了,後續其餘的章節則是補充了第一章的骨架。因此,讀完第一章就大概已經吸收作者要傳達的意念六七成以上了。

第一章中舉出了六種發揮影響力的六種故事型式:

  • Who I am
  • Why I am here
  • The vision
  • Teaching
  • Values in action
  • I know what you are thinking

以下把這本書的重點以及我個人的領悟整理出來,希望對這本書有興趣的朋友能有所幫助


  • 目的:傳達思想與理念,進而影響他人
  • 為什麼要透過故事
    • 簡化現實世界、狀況,使人容易理解
    • 包裝理念,引起聽眾共鳴
    • 交織時空、價值、論述
    • 以較柔性的途徑走入聽眾心中,減少價值衝突所引起的心理防衛及排斥
    • (簡單說,故事就是現實的美肌工具)
  • 如何說好故事
    • 信任與認同
      • 建立與對象的連結 (我們是同一掛的)
      • 真誠
      • 用問題來引導對方進入故事情境,或說出其故事
    • 引起共鳴
      • 預留想像空間,使聽眾在腦海中產生圖像,幫助達到身歷其境
      • 對細節也多加描述,讓在腦海中所營造的情境更加真實
    • 持久的影響
      • 在故事中建立如副歌般的片段,深植入聽眾心中,使影響力更持久


後記:這本書所提出的概念相當實用,不愧是Amazon五星。遺憾的是我不太適應此書中文翻譯的語詞表達,一句或一段話常要重讀幾次才能了解詞意,所以降低閱讀讀此書的速度了。

2018/02/07

0206地震紀錄

這幾則新聞放在一起看,就蠻有趣了

2017/12/23
https://www.ettoday.net/news/20171223/1078201.htm

2018/02/04
https://udn.com/news/story/11803/2968004

2018/02/05
https://tw.news.yahoo.com/百年週期引花蓮強震-氣象局出面打臉-065435233.html

2018/02/06 12:30
https://udn.com/news/story/11807/2970649

2018/02/07 00:00
https://news.ebc.net.tw/news.php?nid=98173

2018/02/07 00:40
https://news.tvbs.com.tw/life/865702

2018/02/07 04:09

2018/02/07 07:28
https://tw.appledaily.com/new/realtime/20180207/1293529/

2018/02/07 10:15
106年地震偏少 郭鎧紋曾直言不妙
http://www.cna.com.tw/news/asoc/201802070120-1.aspx

2018/02/06

暖暖的斑馬線

傍晚,騎著電動機車在回家的路上,來到一個車水馬龍的路口
紅燈,隨著車陣停了下來

橫向對側的斑馬線上有一對老夫婦
老爺爺支著拐杖,老奶奶提著便當,攙著爺爺
以蹣跚的步伐過馬路

小綠人開始奔跑起來了
老夫婦還有三分之一的馬路要過
他們加快了腳步
但,仍是蹣跚

靜止的小紅人出現了!
還有七秒!
再怎樣的加快,也依然蹣跚

思索著該怎麼幫助他們
想著等綠燈亮起時,慢慢前進到老夫婦的身旁停下
幫他們擋住後面的來車,讓他們能安全的通過馬路

綠燈亮起
車陣開始緩緩前進
我前面的幾部機車,並沒有繞過老夫婦
而是如我想做的事一樣,慢慢前行,在老夫婦旁停下
擋下後方車流,守護著老夫婦通過馬路

最強一波寒流的傍晚,好像,也沒有那麼冷了