[好書分享] 被討厭的勇氣:自我啟發之父「阿德勒」的教導

被討厭的勇氣:自我啟發之父「阿德勒」的教導
原文: 嫌われる勇気 : 自己啓発の源流「アドラー」の教え
作者: 岸見一郎、古賀史健  
譯者: 葉小燕  
ISBN: 9789861371955

買書推薦網址:http://moo.im/a/biuGKR

前言:

這本書大概算是一本相當知名的書籍,也一直出現在我的推薦清單裡面。其實這一本也看了很久,每每看一個章節都需要不少的時間去反芻裡面的內容,思考許多不同層面的問題。 經常裡面有一些對話,都會讓人掉入過往的時空情境而不斷的思考與反省。

即便我現在的工作職責可能是最不怕被人討厭的(?),但是我之前在工作的時候其實相當的在意人家的看法。所以一直常常聽到人家跟我講過這本書。 但是卻一直沒有想讀完的勇氣(怕被討厭?),所以也一直無法分享。去年買來之後,間斷地看了這本書,時而讓我開心,時而讓我心有戚戚焉。

如果你很怕被同事(朋友)討厭,很怕講錯話被人輕視,很怕問錯問題? 或許你也該來看看這本書。

內容簡介:

為什麼人們一直無法改變?
為什麼自卑感總是揮之不去?
為什麼我們總是活在別人的期待之下?
為什麼現在無法真實感受到幸福?
或許是因為,我們缺少了被別人討厭的勇氣!

一名憤世嫉俗的年輕人來到哲學家的小屋。
當他聽聞哲學家主張「世界無比單純,人人都能幸福」,便決心前來推翻這種謬論。
這個世界明明複雜混亂,哪裡單純了?
如果幸福真的這麼容易,為什麼他還會過得這麼痛苦?

他們開始了你來我往的思考與論辯。
年輕人原以為哲學家不過是昧於現實的昏庸老頭,
但是一夜又一夜過去後,年輕人反而陷入沉思:這世界到底是什麼樣子?
「所謂的自由,就是被別人討厭。」哲學家說。
怎麼會這樣?怎麼會有人想被別人討厭?
想得到真正的自由,又為什麼非得被別人討厭不可呢?
這個世界,究竟是單純,還是複雜?人,到底能不能得到幸福?……

問題不在於「世界」是什麼樣子,而在於「你」是什麼樣子。

簡介來自讀墨:http://moo.im/a/biuGKR

本書的內容主要透過兩個人的對談,一個是年紀很大的長者「哲學家」跟一個由於環境變化開始自我懷疑的「年輕人」。

兩個人一來一往的對談,從傾聽著「年輕人」的煩惱開始。慢慢的到不同深度與方向的人生哲理的對談。主軸都是圍繞著「阿德勒的心理學」。

了解心理創傷

一開始年輕人相當的沮喪,他遇到了「哲學家」而「哲學家」首先也先跟他分析了心理創傷是如何造成的,心理創傷究竟是誰造成的? 心理創傷往往都是都是有某種「目的性」所造成的習慣。孩子的心理創傷是因為渴望著父母注意的習慣。 阿德勒心理學就堅決的反對心理創傷的存在。

不甘現況

許多人都經常為了現況而煩惱,經常的怨天尤人。「年輕人」有著一樣的疑問,而「哲學家」也很有智慧的回答他,有許多人的不安現況都是自己選擇的,自己造成的。 不安於現在的環境,卻又選擇「不去改變」。不安現況的不幸狀態很多時候只是對於自我的憤怒所造成的。

人際關係

接下來討論的就是許多人都有的困擾:「人際關係」。「哲學家」說人際關係是無法避免的困擾,只要你不是孤零零的生活在宇宙中,人就一定會有「人際關係」的困擾。對於自我認定的困擾,其實也是「害怕別人對自我的觀感」所造成的,許多時候的問題,其實都自己所帶來的困擾罷了。 害怕被人討厭,害怕被人排斥,很多時候也是對於自我的懷疑所造成的。

活在當下與舞動人生

人生不是目的論,像是有許多小漣漪的線性才是。會有不段的新事件產生,所以產生了許多的人生的高潮與低潮的交錯。讓每個人都無法以目的性來評論你的人生。重要的是享受當下,每一步慢慢地踏出像是舞蹈一樣的享受著你的人生才是。

心得:

現在終於把這一本書看完,「被討厭的勇氣」講解的裡面與想法或許你我的知道。 但是能夠真正的打動內心深處的又有多少人呢?哲學心裡書籍大概就是如此吧,道理可能被你所知道,但是你卻從來無法同意的。透過這一本書裡面的對談,語言中的激盪,呼應著過往的情境。也或許你才能「稍微」的感受到作者希望你能夠感同身受的一些想法。

把幾個章節的重點打出來很快,但是許多的對談內容其實會衝擊著你的想法,打動到你的內心。 雖然是敘事般的對談,卻能夠透過許多的對話內容讓你深刻的記憶著。像是從底層呼叫出你的記憶般。

很推薦大家看一下這一本書籍,但是又不推薦一口氣把它閱讀完。或許慢慢地閱讀,仔細地品嘗每一個段落,每一個對談想要表達的意境。或許才能體會作者想要表達的道理。

如此一來才能夠真正的把這本書的意境吸收起來。

[心得] Strange Loop 2019 - Networking and Go: An Engineer's Journey

前提

聽 Podcast 是我一個培養聽力跟學習的管道之一,而 Software Engineering Daily 更是我相當喜愛的 Podcast 頻道。 這一次我聽到一個蠻有趣的議題,就是「Go Networking with Sneha Inguva」,內容就是來自 Digital Ocean 的工程師來分享為何 Digital Ocean 要透過 Golang 來打造他們 Networking Team 網路相關的工具。

而這一篇文章主要是以 Sneha Inguva 在 Stange Loop 這個研討會的錄影內容為主,而 Software Engineering Daily 的 Podcast 為輔。 希望能幫大家整理一下相關的內容。

影片鏈結: https://www.youtube.com/watch?v=XqKvgzXCoXc

Podcast 相關內容: Go Networking with Sneha Inguva

“Networking and Go: An Engineer’s Journey” by Sneha Inguva

Networking and Go: An Engineer's Journey (Strangeloop 2019) from Sneha Inguva

介紹主要分成幾個主軸,作為說明為何 Digital Ocean 使用 Golang 作為 Networking programming 的程式語言。

When to use Go

這裡講者總結了一些 Golang 的優點,這邊不詳細介紹了。

  • Concurrency
  • Server-side
  • Great for CLI tools
  • Easy-To Fuzz-test
  • Easy to write REST/RPC services

上圖解釋了 Digital Ocean 如何 golang 來打造相關的工具。

The network stack

這邊介紹 OSI 的七層架構跟 TCP/IP 的五層架構。這邊就不詳述基本常識的部分。

延伸閱讀:

Networking primitives

接下來就開始介紹如何用 Golang 來打造一些網路原生的工具。

先以 Layer 7 的 Load Balancer 來介紹:

  • Use HTTP protocol.
  • Accept client-side connections.
  • Pass client-side request to one of backends.
  • Return server-response back to client.

介紹到套件:

  • net/http

這邊算是蠻基礎的,也就是透過讀取 HTTP request connections 內容後,去後方找一台 backend (這邊有挑選的方式,或是更多細節可以實作) 連接,也就是透過發送另外一個 HTTP request 得到回覆後,將結果回傳給 client side。

這邊可以看到收到 http.request 之後,馬上透過亂數挑選出 backend ,然後將需求往後端來傳送。

接下來講解,如何開發 Layer 4 的 Load Balancer:

下一個階段,就開始開發一個 Layer 4 也就是 TCP 的 Load Balancer: (並且是支援 streaming socket)

  • Use TCP protocol
  • Accept client-side connection
  • Open backend connection
  • One gorutine to shuttle packet from client-side to backend.
  • Another one gorutine to shuttle from backend to client-side.

因為 TCP 需要有 SYN, SYN/ACK 跟 ACK 三個階段,所以需要透過兩個 gorutine 來持續服務完成整個流程的資料傳遞。

介紹到套件:

  • net

這邊 listen 部分要改用 net.Listen() 這樣才能收到 TCP packet 。

這邊就是開啟往 backend 的連線。

這邊將兩端的 connection 拆分成兩個 gorutine :

  • client –> backend
  • Backend –> client

這一個部分則是一簡單地將資料從一端複製到另外一端。

打造 DHCP Server

從 Layer7 到 Layer4 之後,講者接下來分享如何透過 Golang 來開發 DHCP 上面的相關應用。當然大家也都是知道 DHCP (Dynamic Host Configuration Protocol) 其實是架構在 Layer7 上面的,但是講者分享一個可能會需要使用到 Layer2 API 的部分,就是他們需要檢查發訊息的 MAC Address 是否就是登記的資訊是同一個人。

介紹到套件:

  • syscall
  • os
  • golang.org/x/sys/unix
  • github.com/mdlayher/raw https://github.com/mdlayher/raw

這幾個套件主要用來:

  • unix套件用來解析 Socket 用來讀取 IP address。
  • raw 用來 ListenPacket ,可以針對 IPv4 或是 IPv16 。講者解釋主要都是先使用 IPV4 的部分。
  • syscall 作為系統 Error Code 偵測。

這一段就是講者提到透過 dhcp4 套件來將請求的來源 MAC Address 跟需要 binding 的 MAC Address 做比對。確認請求的人跟他的內容一致,才會發送 IP 給他。

總結

講者主要分享自己在 Digital Ocean 工作上使用 Golang 的經驗,並且也舉了一些例子希望讓聽眾能了解, Golang 除了能做系統小工具之外,要做比較複雜(或使底層)的網路操作其實也是可以的,並且效率也都是游刃有餘。這一篇演講相當的有趣,因為除了了解了 Golang 也可以做一些底層網路操作外,講者也很清楚的做了一些基本的科普,讓聽眾可以從沒有太深入的網路架構概念到瞭解能透過 Golang 開發一些小工具。

[LINE DevRel] 2020 年 LINE 開發社群計畫活動時程表 (持續更新)

大家好,我是來自 LINE 台灣開發者關係與技術推廣部門 (Developer Relations) 的資深開發技術推廣工程師 Evan Lin。 LINE 從 2019 年初在台灣啟動「LINE開發社群計畫」,長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等。 經過了一年多的努力,舉辦了超過三十場的社群聚會,並且有相關的活動。更多細節歡迎參考: LINE Taiwan Developer Relations 2019 回顧與 2019 開發社群計畫報告

關於什麼是開發者關係與技術推廣部 (Developer Relations)與開發社群計畫的三個主軸,也歡迎查看一下 2019 年LINE 開發社群計畫活動時程表

希望在這裡跟大家分享一下,今年度的開發社群計畫的主軸與一些令人期待的活動。

#更多人參與的可能性:線上互動直播與錄影

收到許多參與者的回饋表示,因為時間與場地距離的限制,許多次的活動都無法及時趕到現場而無法參加, 並且活動後也不容易找到相關的錄影資源。 也由於新冠病毒(COVID-19)疫情的爆發,許多社群的線下活動都受到影響。今年團隊將嘗試開放 LINE 官方帳號 「LINE開發者官方社群」線上直撥的部分,並且也會在之後的官方頻道中(後續補充)補充相關的錄影資源。

校園菁英們看過來: LINE TECH FRESH - 技術新星人才計劃

今年開發社群計畫將計畫往校園開發,除了計畫與相關學校舉辦的學術競賽外,也會舉辦一些跟學校招募與宣傳相關活動。 希望讓許多學校的菁英們更了解 LINE 平台之外,對於打造能夠乘載這些服務的跨國合作方式能夠更了解。也歡迎更多的學生們能加入我們的行列。 更在此年也擴大展開了 LINE TECH Fresh 計畫。

LINE 台灣工程團隊每年透過 LINE TECH FRESH - 技術新星人才計劃,招募資訊科技相關科系,或對此領域有所涉略的大學生 / 研究生加入 LINE 團隊進行長期實習 (一年期),讓同學們有機會在國際級科技公司中觀摩學習。LINE TECH FRESH 由兩位經驗豐富的技術專案經理帶領小組團隊,接觸多元化的專案與產品開發,學習業界實際的軟體專案分工,並體驗跨國團隊合作。往年工作內容包含 server、web、mobile app、chatbot、IoT、data、DevOps 等領域,並透過實習熟悉 LINE 平台系統、SDK、API 等.對於軟體開發有熱情、有想法的同學們,千萬別錯過這個任你揮灑創意與衝勁的機會!

更多的內部開發者活動

今年將針對 LINE 內部開發者有設計相關的程式競賽,讓大家在趕專案的同時依舊能發揮創意。一起打造出讓使用者 WOW 的產品。 更多相關計畫正在緊鑼密鼓籌辦中。

如何取得第一手 LINE 開發者關係與技術推廣部資訊

立即加入「LINE開發者官方社群」官方帳號,就能收到第一手Meetup活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE開發者官方社群」官方帳號ID:@line_tw_dev (點擊這裡 加入好友)

關於「LINE開發社群計畫」

LINE今年年初在台灣啟動「LINE開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,已經舉辦30場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看:

[研討會心得] QCon - The Why Of Go

前提

為什麼要學 Go(lang)? Go 有很多缺點說: 沒有 Generic,error handling 很麻煩, Dependency Management .. 種種問題經常被討論。 但是,各位有沒有想過 Go 帶來的優點會是什麼? 當初我們喜歡上 Go(lang) 又是什麼?

Carmen Andoh 在 2017 的 QCon 的這篇演講非常的棒,當時的他還在 Travis CI 任職。這篇演講包含了許多的語言層面的整理與效能評比的數據分析。 最近一次我遇到她是在 Golang Meetup Organizers 聚會上,他代表 Google Go 團隊一起跟大家討論著 Go 十週年慶祝活動的討論。

歡迎各位好好閱讀這篇:

https://www.infoq.com/presentations/go-concurrency-gc/

QCon2017: Carmen Andoh - The Why of Go

網址

講者一開始先就語言層面敘述了程式語言的開發演進,每個語言都有人認為可以演進的部分,所以有著不同語言的演進過程。 到了 2009 年 Go 語言的發展也是如此,一開始 Go 語言經常被抱怨的項目如下:

(參考網址: https://github.com/ksimka/go-is-not-good)

  • 缺少語法糖: 相較於其他語言, Golang 並不存在語法糖。

  • No generics (沒有泛型) : 這就不解釋了

  • error handling:

    • 被抱怨的就是會寫太多的
    err := foo()
    if err != nil {
        ......
    }
    
  • No macros or templates

更多部分可以看這篇 https://github.com/ksimka/go-is-not-good

這一頁提到了,現今的環境已經跟三十年前不同了,需要有更適合的程式語言,並且專注解決以下的相關文題:

  • Multicore processor: 多處理器執行緒
  • Networked systems: 網路相關處理系統
  • Massive computation clusters: 大型運算的執行叢集。
  • Web programming model: 網頁程式的模型。

這邊列出了 Go 對於 21 世紀需要的部分所增強的部分,這也是這一篇演講最希望專注的幾個特點。

  • Concurrency: 指的是 goroutine 與 channel
  • Distributed Systems: 對於分散式系統中,需要的 cross compile 。很適合在分散式系統裡面作為 micro-service 部署之用。
  • Garbage Collection: 這邊就不解釋了。
  • Code Readibility:

最後這張截圖~來自於 Dave Cheney 在研討會裡面的一句話,個人相當喜歡這句話。 裡面是說「工程師應該是被雇用來解決商業上的問題,而不是再試著維護某些人的程式碼」。

但是經常我們會聽到「通靈工程師」(代表由於交接,或是文件的不足,造就維護人家的程式碼就像是需要通靈一樣)的説法,這些都是 code readibility 的問題。

由於 Golang 本身沒有複雜的「語言糖」,對於代碼的維護上也能夠相對的簡單許多。

這篇演講相當不錯,很適合大家好好專研一下。

Refer:

[心得] FOSDEM 2020 - Advanced debugging techniques of Go code

前提

日前 2020/02/01 ~ 02/02 (FOSDEM: Free and Open source Software Developers’ European Meeting ) 也就是歐洲最大的開源開發者大會(可以解釋成歐洲版本的 COSCUP 嗎?) 裡面有一個專門的 Go DevRoom ,所有的投影片跟影片都有公開出來。 歡迎大家來裡面挖寶!!

投影片與影片鏈結: https://fosdem.org/2020/schedule/track/go/

Advanced debugging techniques of Go code / Andrii Soldatenko

除了 “The state of Go” 這種 keynote 類型的主題之外,第一個讓我想要了解的就是這篇。在 Golang 上面的進階除錯技巧部分。 裡面提到的 debugging skill 主要是透過 https://github.com/go-delve/delve 所提供的相關技巧。相關的技巧包括了:

  • 如何 attach by delve
  • 如何設定 conditional breakpoint
  • 如何透過 delve 來跑 unit test ,就是透過 delve 來跑 test function
    • 我個人很愛用這個,也很常使用。
  • 甚至可以使用 Goland 裡面的 eval 來快速查詢相關數值

最後介紹的技巧就是透過 delve 來 remote debugging docker container ,透過了 docker port expose 將 web app 的 port 轉給 delve (e.g. port 40000) 使用。然後就可以透過 port 40000 來 attach delve debugger 。

最後當然你也會好奇,這些不是 GDB 就可以了嗎?但是其實 GDB 有一些小問題:

  • GDB MacOSX 需要 codesign
  • 如果再 MacOSX 10.13 使用 GDB 舊的版本 8.0.1 才能正常 attach Go app
  • 由於 Golang 在 MacOSX 上面有使用 compress dwarf 這樣會使得 debugging info 無法正確在 GDB 上面顯示出來。 需要再 compiler 的時候加上以下參數。 go build -ldflags=-compressdwarf=false -gcflags=all 才能讓 GDB 看到 symbol

這一場 talk 真的滿實用的,很推薦大家聽聽。

[好書分享] 騰訊傳 - 中國互聯網公司進化論

騰訊傳 - 中國互聯網公司進化論
作者: 吳曉波  出版社:天下文化 
出版日期:2017/07/04 
語言:繁體中文 

買書推薦網址:http://moo.im/a/28EIKW

前言:

[2020 所閱讀的第三本書]

十個億的用戶,全球前十大企業,到底是如何透過 QQ 來達到這樣的帝國?

騰訊一直都是我很想要了解的公司,也是因為日本同事貼了這本的日文版,才讓我知道有這樣的一本傳記書。 雖然目前服務的公司 ( LINE ) 其實某種程度就是追隨著騰訊的成長路線來走。 但是仔細的去摸索與思考之後,你就會發現。其實騰訊是成長路途是一條全球互聯網公司的典範。 而這本書從創始人馬化騰從學校畢業後開始講起,除了將當時中國大陸的網路環境敘述得相當清楚之外。 也能夠透過這本書來瞭解從 1995 之後大陸互聯網企業彼此如何競爭與成長的過程。

內容簡介:

從QQ到Wechat 不到20年的時間 騰訊成為十億用戶的世界級公司

為什麼技術出身、羞澀文靜的馬化騰

能帶領騰訊超越搜狐、百度等勁敵,

打造出中國市值最高的公司和全球前十大企業?


.騰訊的成功,是必然、還是偶然?
.馬化騰如何贏得一次次商戰,成為眾人眼中的「全民公敵」?
.華人科技公司,會走出不同於美國的生存之道嗎?
這三個問題的答案,將指向你我的未來

揭開中國第一大網路公司騰訊成功崛起的祕密!

簡介來自讀墨:http://moo.im/a/28EIKW

創業

整本書算是相當清楚,有條理的紀錄了騰訊的成長過程。從中國的第一批互聯網人開始談起,講述著一開始騰訊也不是一創業就一帆風順,反而也有走錯路,做錯方向,並且走得狼狽的第一段歲月。

不過由於 ICQ 的崛起,那時候做了 OICQ (OpenICQ) 到了後來的 QQ ,才有了爆炸性的互用成長。

並且透過與網路咖啡興盛的年代,並持著快速迭代的方式不斷的改善著使用者體驗的方式。抓緊著第一批大量網路用戶大多為網路咖啡的使用者。開發者離線訊息,線上通訊錄,並且也有虛擬角色 (Avatar) 的機制來讓每一位在網際網路的用戶能夠找到自己的空間。 就獲得了爆炸性的成長,並且取得上市。

出擊

但是騰訊能擠身全球前十大互聯網公司(事實上也是前十大科技公司),絕對不僅僅只是靠 QQ 一個軟體起家。騰訊採取的方式就是多頭進擊(多開戰線)的方式,靠著 QQ 來開發類似臉書的 「QQ空間」,也有類似於掏寶的電商平台,並且也有面臨來自於中國其他互聯網公司的圍攻,甚至大家也都知道一開始最強勢的 IM 平台其實是微軟的 MSN ,本書也有詳細的分析為何最後在中國微軟的˙ MSN 會敗下陣來。

後來臉書開放了平台讓許多廠商進駐,開發出許多有趣的遊戲,也就是大家熟悉的「開心農場」。那麼在中國其實那時候透過 「QQ空間」的開放平台也讓許多類似開心農場的遊戲能夠大紅,並且帶動了整個平台的用戶生態與獲利。也開始了騰訊遊戲的開端,到了後來並且開發許多賣座的網路線上遊戲,也併購了許多全球知名的遊戲公司。

最後的強大轉型就是透過廣告收入的產業改善,來讓廣告主能夠知道該如何有效地投放廣告,即時監測廣告的收看方式。並且透過使用者資料的分析與精準投放來擺脫原來 QQ 的用戶有著三低的印象。讓廣告轉身一變成為騰訊的另外一個金雞母。

巨頭

第三部分的騰訊,已經是中國互聯網的巨頭。並且掌握著許多賺錢的事業線。在中國如果要成立新創公司,就準備好答案是 - 如果騰訊要跟你做一樣的東西? 你打算怎麼應戰?

騰訊一直以來並不是市場的開創者,反而他們是屬於保守的後發者。但是卻是不斷優化,快速迭代,最短時間內讓使用者馬上愛上服務,進而取得市場上的領先角度。

這個都得歸功於馬化騰這位騰訊裡面最強大的產品經理,對於用戶體驗的挑惕與體認。能讓產品快速的更新,不段的朝向使用者喜愛的方向前進。 騰訊有那麼多的戰線,但是馬化騰都會每天去玩玩看新的產品線,並且給予完整的修改建議。讓全部事業體的方向是朝向使用者的體驗至上來開發。

而「微信」的出現,更是移動通訊上的新突破。原本在桌機版與網頁版的 QQ 大成功之後,騰訊本來就想要開發好的移動通訊相關通訊體驗軟體。 但是無奈 QQ 的移動版本並沒有在第一個時間成功,反而是崇尚著極簡風的陳小龍帶著新的提案找了馬化騰,獲得了允許之後便開發出了現在的「微信」,另一個超過好幾個億的用戶體驗。

而「微信」的成功也體驗了,就算是靠 QQ 起家的騰訊。也可以再靠新的通訊軟體的方式再度大鳴大放。於是相關的遊戲,電影,甚至是漫畫,動畫或是書籍的產業,都有看到騰訊的進攻。秉持著 「連接一切」與「互聯網+」變成了世界級的公司。

心得:

就如同我一開始提到的,看著騰訊的成長過程。就會了解到 LINE 目前許多的路途都是正確的。因為從事著互聯網擁有著大量互用的公司。 就是需要透過多角化經營來讓使用者能夠更方便,更便利的取得自己需要的事物。

就如同騰訊的「連接一切」與「互聯網+」,而 LINE 也是有著 「 Closing the distance 」,到了今年的「 Create WoW for the world 」。都能夠了解到,多角化經營並不會有力量分散的疑慮,而後發者並不會一定都是趨於劣勢的。

如何透過產品的快速迭代,真正的找到使用者喜愛的,需要的與想要的功能才是重點。 如同馬化騰依舊每天會花時間來當著一般的使用者來把玩公司的產品。 每一位開發者,員工應該要喜愛,熟悉,並且實際使用自己開發的功能。才能讓你的使用者也愛上你開發的產品與服務。