typelevel cats 學習筆記

最近在學 typelevel/cats 底下這一行程式碼,想了兩天才理解為什麼要寫成這樣,Functional Programming真的是太困難了,有點回到大一學遞迴的感覺。 (Either[Throwable, A]) => Unit) 是一個 Callback function / Listener interface , (CB => Unit) 表示這個 Callback function 可以在不同的 Thread 執行。 為什麼要寫成這樣?我還在想….

谷歌、臉書大當機

接連兩天谷歌、臉書大當機,稱機會講一下我淺到不能再淺的淺見。 矽谷這邊的公司很喜歡講平台化、雲端化、大數據,把不管是企業內部還是外部,四散的資料集中管理,本來每一間私人公司都要請個 MIS,專職備份管理企業資料,等到雲端化自動化後,一個人可以管一千個企業的資料庫,可以利用經濟規模降低成本。 但是經濟規模可以一直無上限下去嗎?有種東西叫邊際效用遞減,等到規模大了後,自然有規模大的問題,像是領英堅持整間公司共用同一個hadoop cluster,光Gossip Protocol的口水就可以淹死你,不能再加機器,所以做了個”大象醫生”出來看有沒有人濫用資源。所有人要共用一個 git server ,結果當然是撐不下去,所以弄了個 git master-slave 的架構出來,偶爾 build system 拉到的資料不是最新版而已。 平台化可以達到經濟規模是正確的,但是問題的複雜度也會一直上昇,所以這些平台公司請一堆業界頂尖的人來解問題,可是業務量有可能一不小心就超過系統原始設計的上限,在新解法出來前,就只能請客戶多擔待些了。

使用 Workflow Engine 來實作 Microservices SAGA pattern

最近離開了領英,比較有空閒讀讀書,想想到底之前在實作上出了那些的問題,跟要怎麼處理這些問題。 先推薦兩本書 SOA Patterns 和 Microservices Patterns ,這兩本書都有提到怎麼在微服務下處理 transaction 的方式,兩本書的方法都是 SAGA pattern + CQRS + idempotent 。 但是如果你有實作過 SAGA Pattern 的話,就會知道使用 Message Driven 的方式在兩個微服務間溝通的話,整個程式碼的可讀性會非常的低,除了原先溝通並實做細節的兩位工程師外,大概不會有第三個人能夠理解整個交易是怎麼完成的。 註:本文圖片取自 https://microservices.io/patterns/data/saga.html 在實作細節上,使用MDA的架構,微服務要提供sync & async API使用,是額外的成本,在領英,所有的微服務預設都是只有提供 sync API 的,你要請對方多開一個 async 的界面,是要求爺爺告奶奶的。 因此,在技術上管理上比較可行的,就是把流程的管理都拉到自己管理的微服務當中,在裡面使用 orchestrator 來管理對外乎叫的狀態記錄處理跟錯誤重送。 當然,這又免不了要寫一大堆 glue code 把所有的東西黏在一起,然後在資料褲裡面又要開一堆的 Table 來記錄運行的狀況,這非常的花功夫,在實作上很花時間又不好進行修改沒有彈性。 今天早上看到 InfoQ 的一則新聞 Experiences Moving from Microservices to Workflows at Jet.com […]

大公司裡面的技術債是怎麼來的?

大公司裡面的技術債是怎麼來的? 就像一個房間一樣,有一個角落積了一些灰塵需要打掃,主動跟主管說要打掃,主管會問你,打掃這個跟其他的事比起來重要嗎?我們先來測量一下這角落有多髒,打掃完有什麼效果,然後再來跟其他的工作事項比比看優先權該放在多高。 當然結論是不重要不需要掃,然後下次換另外一個角落髒了,再來測量一次再來排一次優先權,然後放棄打掃。 以上過程重複數次之後,主管大叫,這房間怎麼這麼髒,我們來制定打掃計劃,把過去的角落清潔計劃全部翻出來更新一次,再來全部重排一次優先權,做個環境整潔總檢討計劃。 然後大老闆跑出來說,你這房間在的髒亂,來跟整棟大樓的整潔比比看髒亂的程度,再來排個優先權,然後我們晚點再開會討論看看要不要納入明年的工作項目。

為什麼我不用 Google 搜尋

還在用 Google 嗎,該轉用 Bing/duckduckgo 了 希拉蕊的郵電門是美國 2016 年的選舉大新聞,理當也是熱門關鍵字,至少跟據 Google 自己的統計, email 是比 emoji 熱度高出十倍,但是 Google 的推薦選項,卻捨去熱門的關鍵字而選了冷門的 emoji 你跟我說 Google 沒有政治偏好,我說你腦袋壞掉   NOTE: 平衡報導一下,連結是谷歌的回應說法,不過我是不清楚 email 算是什麼骯髒的字眼就是了 https://www.fengli.com/news/23211879.html

Grooveshark shuts down after years of legal troubles

舊文重貼,原文寫於 2015/04 事後的發展是,Grooveshark的 co-founder 於 2015/07/19 自殺,只能說 startup 歹路難行,不要挑錯了產業,又投入了十年的青春導致無法自拔退出。 Music streaming service Grooveshark shuts down after years of legal troubles 我在同類型的公司工作過幾年,老實講,Grooveshark 走到這一步,不意外。比較意外的是他能撐這麼久,三年前他們 CEO 就情緒崩潰過一次 ,沒想到還能再多撐個三年。 Grooveshark 成立於 2006 年,當時的市場環境已經跟 Napster 成立的 1999 大不相同,自從 DMCA 數位千喜年法案通過之後,音樂服務已經有不少都走向付售權費合法化的路上,只有 Grooveshark 一家走不同的路。 Grooveshark 是群大學生一起做的,所以大家自己省一省,不用跟 VC 要錢,就可以開業。 也許是一開始走的太順,所以他們就想要這麼一直走下去,不去跟音樂公司談授權問題。 當然這樣造就的結果是,每次他們一要談下一筆增資案,律師信馬上就來,增資的錢跟本就是花在律師費上面。 我常常在想,Grooveshark能活這麼久,說不定是五大音樂公司故意的,反正把 GS 搞倒了也沒用,還會有下一家跳出來做,還不如讓 GS 吃不飽餓不死撐在那邊,擋住潛在中想做非法音樂這塊的人,同時也警告這些人,你做非法音樂是沒錢賺的。 最終搞倒 GS 的,我想除了是創業團隊已經累了之外,另外就是美國工程師行情太好,小本經營的 GS 請不起人了 1 http://mashable.com/2013/04/22/grooveshark-radio/ […]

極權主義與環保主張

做個筆記一下,暫時還沒有動力把想法全寫下來。 最近讀到許多東西,與在加州這個極左的地方生活經驗結合起來,才理解到環保主張跟極權主義是分不開的,甚至是反過來說「環保主張」只是「推行極權主義的工具」,為了推銷極權主義才打著環保的旗子,跟環不環保跟本無關。 以最近的「禁用塑膠吸管」來說,因為禁用塑膠吸管後,造成珍珠奶茶的飲用問題,因為替代的紙吸管強度不夠,喝幾口就破了,所以又開發了不鏽鋼吸管來替代,當然不鏽鋼吸管的問題又更多了。 其實,如果「環保主張」、「塑膠吸管對環境有害」真的是那麼被大眾所接受的話,那麼就兩種吸管都提供就好啦,不用禁用塑膠吸管,需要用到塑膠吸管的地方,大眾自然會選用塑膠吸管,當可以使用較環保的方案時,大眾自然會選用環保的方案。 唯一的問題,就是需要時間去推廣「塑膠吸管不環保,而且有替代方案」的觀念,這樣子把環保觀念深化到大眾人身上,雖然時間會拉的較長,但是影響會更深遠,等未來有其他議題時,民眾會更容易接受。 然而環保主義者,確選擇了不相信人性,用大政府的力量去全面禁止使用塑膠吸管,不管某些場合上無法使用替代方案,選擇走了極權的方向,讓我對「環保主張只是推行極權主義的工具」這件事又多了一點認同。

參觀小學

昨天去參觀矽谷本地一間精英小學 Nueva,稱著記憶還在,做個流水帳紀錄,一些個人想法,請大家不要太認真的 🙂 這間有五十年歷史的學校,坐落舊金山南邊的山上,風景優美,從校舍往外看,就可以看到海灣及對面的高山,佔地三十二公頃給八百個學生用,有巨大的活動空間給學生使用。 還沒開到學校,才要準備轉彎進學校停車場,就感到壓力了,在我前面的三台車是 QX60, GLK, Maserati Quattroporte 。 進到學校,先是聽到小學高年級跟中學的學生,在中庭唱歌劇給來賓的家長聽,這年頭學生比較瘋街舞,很少有學生能欣賞精致藝術,只能講學生程度真的不一樣。 為什麼這間小學被稱為精英學校呢?因為入學要考智力測驗,只取智力最前面2%的人口,而且跟大部份的美國精英學校一樣,入學只看智力測驗不看財力,智力測驗通過了之後,如果家長付擔不起學費,就由學校的獎助學金幫忙出了…. 因為我自己念建中苦苦追趕的經驗,所以我知道智力這種事是強逼不來的,去年女兒四歲剛來美國兩年,自己的小孩當然都覺得很棒,但是老實講跟同輩比沒什麼太突出的,但是今年提早一年上小學,在班上程度開始大殺四方,英文也突然變得很溜,雖然還不識字,但是已經開始開竅了,至少她爸我五歲時沒她強,所以今年想來幫她測測智商看看她的資賦如何。 學校行政人員講完辦學理念之後,就把家長分成三組,把家長帶到教室去上課了,精英學校不愧是了解到天材的問題,學校課程之一就是「社會情緒學習」,教導學生怎麼管理情緒、怎麼樣面對衝突、以及怎麼創造雙贏。在這種怪物學校,每個學生在程度上的差異可以到很驚人的,因此情緒管理、調解壓力是很重要的一樣課題。 第二個課程,則是把設計公司 IDEO 的產品開發流程,用實作的方式,讓小朋友去理解需求及設計解決方案,第三個課程,則是寫作課程,把一些最新的英語語言的研究成果,當成課程教給小孩。主要是講,英語的發音規則短短幾頁而以,但是例外規則到是不少,過去的教學是教小朋友硬背,但是新的研究則是說,單字的念法不是看發音規則,發音是跟單字的語意也有關,語意加上發音才可以正確的理解英文單字的念法。 第二、三個課程其實沒什麼,就是把一些新的研究成果,把小孩子當實驗品來研究而已;但是最特別的是老師自己的態度,這間學校的老師都四五十歲年紀一把了,還是一直在進修,把教學當成研究實驗在看,這種求知欲及態度,把每個學生都當個體來教導,才是這間學校最珍貴的一點。 接下來又是一整群人回到大禮堂,學校請來四位家長以及一位高三的學生,講他們自己的經驗,有趣的是,有三個家長都說自己小孩在幼稚園有融入群體的問題,自己一個人在角落挖沙,直到同事提點才知道小朋友的問題,換到這間學校,小朋友就適應正常了。 在社交上面,女兒不像他爸,沒有什麼問題社交問題,比較特別的是,女兒除了早上爬不起來外,她其實很喜歡上學,才上小學不到兩個月,就跟我說小學課程比幼稚園有趣太多的,這麼愛上學,爸爸自然會想操她一下。 這間學校除了上述的三個課程及古典樂外,最特別的就是會花一整年學習一個學程,像是小三還是小二,會花一整年學習古埃及歷史(為什麼是古埃及,因為這年紀的小朋友喜歡古埃及),一整年學習科學史,一整年學一個第二外國語,每一年換一個學科,花一整年的時間深入去學習某一個學科,而不是只是沾沾醬油而已。 在參訪的過程中,有稍為跟其他家長聊聊還有看那些學校,對方是個印度裔第二代,他說還有看用中文教學的中美學校(美國人現在好像很迷中文),跟我女兒念的那一間學校,他問我有什麼差別,我跟他說我女兒的學校不錯,但是這一間是到不同層次上去了,我女兒的學校是教醫生教工程師,教的是生活的規律自律,這間學校是教思想家了。 零零雜雜寫了一堆,其實爸爸對女兒,期望是有,但是沒有給她太多的壓力,控制我自己不要揠苗助長就好,許多事情是我在旁扶她一把,至於未來成就如何,我的期望很低的,只要養得活自己就好

貧富差距

原文寫於 2017/09/29 最近才體會到,貧富差距問題,是左派創造出來的假問題,早點看穿對你的人生越有幫助 econtalk是美國的一個 podcast,主持人是個右派經濟學家,常常邀請不同的經濟學家來講一小時,某一期請到的是法國籍在美國柏克來任教的 經濟學家,談美國的貧富差距。 跟據作者的研究結果,過去 35 年來,經濟成長率的分配很不平均,跟據 勞保的資料,後 20% 收入的人,經過通澎的調整後,這 35 年來收入完 全沒有成長,反過來說,整體的成長率是 1.4% YOY ,而前面 1% 收入的 ,成長率則是 3% YOY 超過 GDP 的成長率。 然後如果算進貧戶補助,後 20% 的人,在 35 年間,收入只增加 20% (0.5% YOY) ,仍是不比前面的。 所以法國經濟學家得出美國貧富不均的答案。 但是,最近有一個更權威的研究結果出來,用不同的角度來研究貧富問題,這個研究是追縱 1987 年起,35-40歲的人,在 20 年間的所得變化,跟據研究結果,所得最低的 20% 在 20 年後,中位數的所得增加了 100% ,次20%的增加了 42%,再次 20% 的增加了 27%,所得越低的增加越多,所以美國仍是還有很多機會的。 其實這兩個研究,反應了左派跟右派的看法不同,左派只在乎結果的均等,所以,只看所得級距的變化,不去看其中有多少人脫貧又有多少人掉入貧戶。至於說為什麼貧戶所得變化跟 CPI 一樣,答案很簡單,因為這群人是不工作領社會補助的或領基本薪資的,這兩者都是跟 CPI […]