Total Pageviews

2019/08/31

[Travel] 201908 Taipei

齊東詩舍
DSC04736

DSC04741

DSC04743

DSC04746

DSC04757

臺北琴道舘
DSC04768


華山1914文化創意產業園區
DSC04778

DSC04780

DSC04791

2019/08/15

[Java] 如何計算中位數

Sample code:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
    /**
     * 將一組數值資料由小到大排列,最中間的數值即為中位數。
     * 若有偶數個資料,則取最中間兩個數值的算術平均數為中位數;
     * 若有奇數個資料,則取最中間的數值為中位數。
     *
     * @param sortedArray 由小到大排列的數值資料
     * @return 中位數
     */
    public double computeMedian(int[] sortedArray) {
        double median = 0d;
        int totalElements = sortedArray.length;
        if (totalElements % 2 == 0) {
            int sumOfMiddleElement = sortedArray[totalElements / 2] + sortedArray[totalElements / 2 - 1];
            median = ((double) sumOfMiddleElement) / 2;
        } else {
            median = (double) sortedArray[totalElements / 2];
        }

        return median;
    }

2019/08/14

[Java] [IntelliJ IDEA] 如何解決 *.properties 中文編碼問題

在 IntelliJ IDEA 中,打開 Preferences (windows 平台是 settings)



到 File Encodings,將 Transparent native-to-ascii conversion 打勾,儲存即可








2019/08/13

[Sony] [A7] [Mac] 如何得知 Sony A7 相機快門數

Step 1. 下載 ExifTool 工具 https://sno.phy.queensu.ca/~phil/exiftool/

Step 2. 安裝 ExifTool 工具

Step 3. 從相機記憶卡取出最後一張照片

Step 4. 打開 terminal,輸入 exiftool <照片>,如 exiftool DSC04568.JPG
分析結果中,shutter count 就是相機快門數




2019/08/12

[Mac] [Mojave] 如何設定用 Apple Watch 解鎖 iMac

前置作業
1. Mac 已開啟藍牙。
2. Mac 已開啟 Wi-Fi。
3. Mac 和 Apple Watch 使用相同的 Apple ID 登入 iCloud。
4. Apple Watch 設有密碼。
5. Mac 未使用 Internet 共享或螢幕共享。

設定
在「安全性與隱私」偏好設定中,選取「允許 Apple Watch 解鎖您的 Mac」






2019/08/11

[Mac] 安裝 Mojave 發生錯誤:驗證安裝程式資料時發生錯誤。下載的檔案可能損毀或不完整。

Problem
當我執行 Mojave 安裝程式時,發生以下錯誤:
驗證安裝程式資料時發生錯誤。下載的檔案可能損毀或不完整。





How-To

1. 打開 AppCleaner,將已下載的 Mojave 移除


2. 重開機
3. 重新下載 Moajave
4. 安裝 (大約 1.5 hr 左右安裝完成)

2019/08/10

[閱讀筆記] Measure What Matters (2/5)

  1. Steve Jobs 曾說過,創新代表對一千件事情說不 (Innovation means saying no to 1000 things)從大多數案例看來,一季的 OKRs 大約 3 ~ 5 個是最理想的。我們通常會很有野心的列出一堆想要完成的目標,但是過多的 OKRs,會讓你失焦、難以決定事情的優先順序。所以,你要先減少 OKRs,確保你設定的是最重要的 OKRs 就好。
  2. If we try to focus on everything, we focus on nothing. Andy Grove 強調,管理的藝術在於,有能力從許多活動中挑選兩、三個相對重要的活動,並專注將這兩、三個相對重要的活動做好
  3. 關鍵績效指標 (KPI,Key Performance Indicators) 是「別人要我們做的事」,OKR (Objectives and Key Results)  則是「我們自己想做的事」。OKR 的本質並非要考核團隊或者員工,而是隨時提醒每一個人,當前與未來的任務分別是什麼。而且,OKR 還能適度彌補 KPI 的缺陷。KPI 強調在時限內完成待辦事項,並依據評分標準給予賞罰,確實能激發、提升工作效率。不過,組織內部往往有多個 KPI,這時就有可能產生「有些事大家都不想做」的狀況,甚至這些 KPI 早已背離企業願景,但員工為求分數,仍敷衍了事。KRs 要求目標與關鍵結果必須高度吻合,聚焦好的目標,發想到底有哪些事情,讓全部門願意一起努力、前進,而非拚命達成績效。 (https://www.managertoday.com.tw/articles/view/55927 )
  4. Steve Jobs : We don’t hire smart people to tell them what to do. We hire smart people so they can tell us what to do.
  5. 當企業的目標訂定後,團隊的工作就從規劃變成執行,大家必須將每日的活動 (day-to-day activities) 與組織願景 (organization’s vision) 緊密結合,這就是所謂的 alignment。根據 Harvard Business Review 的研究顯示,擁有 highly aligned employees 的企業,會擁有較佳的整體表現。不幸的是,alignment 是非常罕見的,根據研究顯示,僅有 7% 的員工完全了解公司的商業策略與預期他們該做什麼才能協助企業完成共同的目標。缺乏 alignment 是策略與執行間最重大的障礙。OKR 是促成 alignment 的工具。
  6. OKRs 並不是孤島,相反的,OKRs 會以垂直的、水平的、對角線的 (diagonal) 方式建立起組織的連結,將組織最重要的工作連結在一起。當員工的每日活動與企業的最重要的目標 (top-line goals) 緊密結合,其產生的效應就會被放大。其會停止重複的工作 (同一件事情兩個人在做) 、減少不必要的會議 (如果有共同的目標就不會誤解)、或是停止會相互抵銷的工作 (如同在同一艘船上,一個要往東邊划,另一個人則要往西邊划)。
  7. 企業共同的目標猶如北極星 (North Star),組織成員依據北極星取得正確的努力方向。每個決策必須與我們的願景保持一致;若面臨客戶與企業目標需取得妥協時,則要與顧客保持一致;在往前進之前,必須確保與北極星的方向一致。MyFitnessPal 的 OKRs 如下:
Objective
Help more people around the world.
Key Results
  1. Add 27M new users in 2014.
  2. Reach 80M total registered users.


  1. OKRs 常被低估的優點是,其 key results 是可以被追蹤的,並可以依據環境與執行過程所獲得的回饋,進行修改與調整
  2. 目前市面上有許多組織開始採用強大的、專屬的、雲端的 OKR 管理軟體套件,有些平台還能提供行動 apps、自動更新執行狀態、分析報告工具、即時警示與 Saleforce、JIRA、Zendesk 整合。透過幾次滑鼠點擊,使用者可以透過數位儀表板進行 OKRs 的建立、追蹤、編輯與評分。透過這類型的平台,可以讓 OKRs 的價值更加凸顯:
    1. 讓每個人的目標更加可視(They make everyone’s goals more visible):尤其在大型企業,每個基層員工與其主管的目標能夠沒有鴻溝;
    2. 讓每個人更有參與感 (They drive engagement):當你知道你做這件事情的目的時,就更能保持積極;
    3. 促進內部溝通 (They promote internal networking):資訊透明平台可以引領個人與擁有共同專業興趣的同事進行合作;
    4. 節省時間、金錢與挫折 (They save time, money and frustration):在傳統的目標設定,很多時間都浪費在目標寫在會議記錄、emails、Word 文件與 PowerPoint 簡報。透過 OKR 管理平臺,所有相關的資訊都在那邊讓你查詢。
  3. OKRs 在本質上是可以調整,當我們在追蹤與檢視 OKRs 時,在任何時刻都有四種選項可以執行
    1. 繼續 (continue):如果一切運行正常,就繼續執行,無需修改;
    2. 更新 (update):根據工作流程或是外在環境的翻應,針對目標或關鍵結果進行修改。例如如何該怎麼調整,才能讓目標進行在正軌上?是否需要重新修改時程?
    3. 開始新的 OKR (Start):當有需求時,就可以啟動新的 OKR;
    4. 停止 OKR (Stop):當目標已經不切實際或不適合,最好的方法就是丟棄它。
  4. ORKs 的主要力量在於,停止我們堅持走向錯誤的方向。Stephen Covey 曾說,「若梯子不是倚靠在正確的牆上,我們往上走的每一步,只是帶領我們更快地到達錯誤的目的地」。
  5. 每當 objective 或 key results 變得窒礙難行、不切實際時,應該在中途就予以終止,而非堅持到底。目標 (goals) 是達到目的 (purpose) 的僕人,而非相反。
  6. 當公司在制定組織OKR的時候,也會規劃一個審核的週期(例如每年、每季或每月)做達成率檢視,確認你的重要工作有被確實的執行,若中途有遇到什麼狀況,也能反覆檢驗修正。而每個小Team也可以在每週的例會上,針對執行過程作討論,確定大家都有在同一條線上。
  7. OKRs review 分成三個部分:
    1. 客觀評分 (Objective scoring):OKRs 評分可以明確指出我們完成哪些目標,以及說明下一次或許我們會怎麼做。較低分的 OKRs 迫使我們重新衡量:這個目標是否仍然值得追尋?如果是的話,我們該如何改變追尋的方式?評分方式從 0 到 1 分:0.7 ~ 1.0 是綠燈,代表有如期達成;0.4 ~ 0.6 是黃燈,代表有進度,但是未完成目標;0.0 ~ 0.3 是紅燈,代表沒有實質進展。例如:以下是 Intel OKRs 的評分,得到 0.625
Corporate Objective
Establish the 8086 as the highest-performance 16-bit microprocessor family, as measured by:
Key Results (Q2 1980)
  1. Develop and publish 5 benchmarks showing superior 8086 family performance [0.6].
  2. Repackage the entire 8086 family of products [1.0].
  3. Get the 8MHz part into production [0].
  4. Sample the arithmetic coprocessor no later than June 15 [0.9].


    1. 主觀自我評價 (Subjective self-assessment):若你的個人目標是打 50 通電話給潛在客戶。若你最後只打了 35 通,你只能得 0.7 分,如果你是因為每通電話的交談時間都很長,最終爭取到八個新客戶,你或許會給自己完美的 1.0;但若另外一個人匆匆忙忙打了 50 通電話,但只有得到一個新客戶,你的自我評價可能只有 0.25。(或許也該思考,key result 的優先權應是爭取到新客戶而非電話數)。無可避免地,有些人會對自己很嚴厲,有些人則需要被要求對自己提高標準,team leader 在此時就需要跳下來,協助 team member。
OKR
進度
分數

自我評價
帶來 10 個全新顧客
70%
0.9
由於景氣大幅下滑,要達成當初訂應得 OKR 的困難度遠高於我所想像。我們所取得的 7 個全新顧客代表著付出極大的努力與傑出的結果。
帶來 10 個全新顧客
100%
0.7
在本季度,我僅花 8 周就達成目標,讓我了解我當初設定的 OKR 標準太低
帶來 10 個全新顧客
80%
0.6
雖然我簽下 8 個新客戶,但是這是因為運氣使然。其中一個顧客,在他背後帶來 5 個新顧客給我。
帶來 10 個全新顧客
90%
0.5
雖然我帶進 9 個新顧客,但是我發現,其中 7 個新顧客能帶來的營業收入非常有限


    1. 反省 (Reflection):OKRs 本身是行動導向的 (action oriented),但是當行動是無方向且持續的,就會如倉鼠在原地跑動般,令人沮喪。以我的觀點,提升員工工作滿意度的關鍵是,設定有挑戰性的目標、完成大部分的目標、停下來反思所完成的成果、與重複這個程序。哲學家與教育學家 John Dewey 曾說「我們無法從經驗學習,我們是從經驗進行反思 (reflection) 來學習」。
反思 (Reflection) 的例子
  • 我是否完成所有的目標?如果是的話,造成我成功的因素是什麼?
  • 如果我沒有完成所有目標,我遇到什麼困難?
  • 如果我可以重新改寫預計要達成的目標,我會怎麼修改?
  • 從這次 OKRs 我學到了什麼?進行下次 OKRs  cycle 時,我可以修改什麼執行方法?


  1. OKRs 的反思是同時進行回顧 (retrospective) 與前進 (forward-looking)。未完成的目標可能會放到下個季度的 OKR,並給予全新的 key results;或是因為不切實際,而予以丟棄。另外,當你做完徹底的衡量與誠實面對缺失後,記得要與團隊成員透過舉辦 party 的方式,慶祝團隊在此次 OKR cycle 所獲得的成長。
  2. 很多人常將目標 (objectives) 與任務 (missions) 搞混。missions 是方向性的,要往哪個方向走;objectives 則是由一組具體的步驟所組成,朝向任務所訂定的方向走。擁有好的 mission 是不夠的,你必須有具體的 objective,你才知道如何走到目的地
  3. OKRs 允許我們同時兼具野心 (ambitious) 與紀律 (disciplined)。當所衡量的 key results 顯示進度落後時、或是顯示目標難以達成時,就必須重新配置資源或重新定義目標。
  4. 蓋茲基金會所定義的瘧疾 OKR
Objective
在 2040 年前,讓瘧疾在地球消失
Key Results
  1. 向全世界證明能徹底杜絕瘧疾的方法
  2. 擴大準備需要的工具 - SERCAP (Single Exposure Radical Cure and Prophylaxis) Diagnostic
  3. 維持現有全球的進度,確保有利於根除的推動環境


  1. 保守的目標會妨礙創新,創新就像氧氣,你無法沒有創新就獲得成功。
  2. 要完成目標,應具備以下元素:

2019/08/09

[閱讀筆記] 如何衡量萬事萬物 (4/5)


  1. 許多衡量始於將一向不確定的變數「分解」為幾個部分,並找出可以直接觀察的事物,哪些是比較容易衡量的。分解往往最後會降低相當多的不確定性,以至於不需要更多的觀察。
  2. 對「不可衡量的」變數做分解,是邁向衡量的第一步,有時分解本身就能充分降低不確定性。  
  3. 所謂的間接研究 (secondary research),是指假設你不是第一個衡量它的人。猶如文獻研究,在科學領域中被認為是最基本的步驟。
  4. 觀察的基本方法:
                    4.1.          像個精明的偵探般追蹤線索:對已掌握到的資訊進行鑑識分析
                    4.2.          直接觀察:開始觀看、計數,如果可能的話則進行抽樣
                    4.3.          如果目前沒有留下任何線索,加上「追蹤器」,讓它開始留下足跡
                    4.4.          透過實驗,強迫創造觀察可觀察的條件:如果你完全不能追蹤線索,創造能觀察它的條件,如連鎖零售商想衡量退貨政策對客戶滿意度與銷售是否有不利的影響,可以直接在店面試行,比較控制組與對照組的差異  

  1. 請記住,為了要偵測線索、加上追蹤器或標籤、或進行實驗,你需要觀察的只有隨機抽樣的少數樣本而已。同樣請記住,你所分解出的不同部分,可能需要使用不同的方法來衡量
  2. 你只要針對必要的且具備高度資訊價值的事物進行衡量,例如你想衡量某個飲料公司的新舊配方是否能提升客戶滿意度,若資訊價值只有幾千美元,卻要耗時兩個月進行測試與觀察,就不具合理性與正當性;但是若資訊價值高達數百萬美元,我們就不該被需要耗時數星期且要花費十萬美元的衡量給嚇到。  
  3. 資訊價值在理論上是你應該願意花費多少的上限。但是花在衡量上的最佳支出,可能遠低於這個最大值。該花多少成本做衡量,可以拿完全資訊的預期價值 (EVPI, Expected Value of Perfect Information) 2% ~ 10 做為你的衡量經費,理由有三:
                    7.1.          EVPI 是完全資訊的價值我們的目標只是要降低不確定性,而非完全資訊,所以我們做的衡量,其價值可能會遠低於 EVPI
                    7.2.          初始衡量常常會改變後續衡量的價值:如果最初幾個觀察值出乎大家意料,後續衡量的價值可能降到零,這些表示反覆衡量是有價值的
                    7.3.          資訊價值曲線通常在最剛開始比較陡峭:你一開始有的不確定性愈高,初始的觀察能告訴你的資訊就越多。當你從極高的不確定性開始,即使是誤差很大的方法,都能給你原來你所不知道的資訊。
  1. 完全訊息的預期價值 (EVPI) 計算範例:https://docs.google.com/spreadsheets/d/16R5AOGthV7YAbw5oiUue1rfcWfMyjrcwywXXAoPq5Qo/edit#gid=118122570
  2. 衡量的誤差:
                    9.1.          系統性的誤差
                                   9.1.1.          在每個觀察之間都有一致性的變異,例如銷售人員例行性對下一季個營收高估平均 50%
                                   9.1.2.          衡量的過程本身就有一種傾向,會偏向某個特定的結果,是一種具有一致性的偏誤
                    9.2.          隨機性的誤差
                                   9.2.1.          在每個觀察間的變異是隨機、不一致的
                                   9.2.2.          隨機誤差無法個別預測,但是會有一些可量化的規律模式,而這些模式是可以用機率法則計算的
  1. 衡量的準確性 (precision) 與正確性 (accuracy) 是不一樣的:
                 10.1.          準確性
                                10.1.1.          是指衡量的可複製性 (reproducibility) 與符合性 (conformity)
                                10.1.2.          隨機性誤差小的衡量的一種特質。高度一致性的結果,即使他們離真的數值很遠,但是錯得很一致
                 10.2.          正確性 (精確性)
                                10.2.1.          指的是衡量有多接近它「真正的」數值。
                                10.2.2.          系統性誤差小的衡量的一項特性。系統性誤差小,就不會一致性的高估或低估
  1. 準確性是隨機性誤差小,錯得很一致,無論系統性誤差是多少;正確性是系統性誤差小,無論隨機性誤差有多少。  
  2. 常見的觀察偏誤類型:
觀察偏誤類型
說明
預期性偏誤
只看到你想看到的。觀察者與受測主體有時候會有意無意的,只看到他們想看到的。我們是很容易受騙,同時也有自我欺騙的傾象。
選擇性偏誤
即使我們知道抽樣時要隨機,我們有時也會沒注意到的非隨機性。
觀察者偏誤
被觀察者因為被觀察而影響到最後的觀察結果。最簡單的解決之道就是,不要讓被觀察的對象察覺到他們正在被觀察。

  1. 如何找出衡量工具的程序:  
  2. 如果你無法想像出你要用的工具,請考慮以下提示
                 14.1.          從結果來想:例如,如果產品品質有改善,應可預見客戶投訴減少;如果一套新的銷售輔助軟體能夠幫銷售人員賣得更好,為什麼你會看到使用後的業績反降呢?
                 14.2.          反覆進行:不要想用一次言大型研究就消除不確定性,一開始先做幾個觀察,再重新計算資訊價值,此舉對於如何繼續衡量會提供方向
                 14.3.          考慮多種方法:每一個所分解出來的項目,可以考慮使用多種方法,最後再決定哪種方法較適合
                 14.4.          一個會讓衡量失去意義的簡單問題是什麼:例如衡量產品品質是否改善前,可以先看客戶投訴量是否減少了
                 14.5.          做就對了:不要讓焦慮阻擋你開始做一些有系統的觀察,焦慮起因於不確定性,開始觀察就能開始降低你的不確定性
  1. 我們從「經驗」得知的每件事,都只是一個樣本,我們並未真正經歷過所有事情;我們有過一些經驗後,再以那個經驗為基礎做推論
  2.   書中提到可以利用 t 分配 (student’s t-statistic) 來透過抽樣小樣本得知一顆 jelly bean 的重量 (90% CI),步驟如下 (https://docs.google.com/spreadsheets/d/16R5AOGthV7YAbw5oiUue1rfcWfMyjrcwywXXAoPq5Qo/edit#gid=0)
                 16.1.          輸入抽樣值
                 16.2.          計算樣本平均數
                 16.3.          計算每個抽樣值得方差
                 16.4.          計算抽樣差異變異數
                 16.5.          計算樣本標準差
                 16.6.          計算t-stat (雙尾反函數):在非常大樣本數時,t 分數會非常接近 z 分數 (常態分配)
                 16.7.          計算抽樣誤差
                 16.8.          算出 upper / lower bound  

  1. 若樣本數不夠大時,你可以:
                 17.1.          當你有很大不確定性時,少量樣本就能大幅降低不確定性,尤其當母體是相對同值性時
                 17.2.          在某些案例中,校準的估計者即使只靠一個樣本也可以降低不確定性
                 17.3.          校準的估計者雖然保守,但是合理的。多做一點數學將能進一步降低不確定性
  1. 最大的資訊報酬傾向於方生在資訊收集過程的早期階段,雖然初期樣本數少、不確定性很高,但是每個新樣本都能降低很多不確定性;隨著樣本數增加,90% CI 變窄很多,但是每個新樣本只能將降低一點不確定性,30 個樣本之後,你需要四倍的樣本數才能將誤差在減半。  
  2. 小樣本是否告訴能告訴我們很多資訊,取決於我們如何做抽樣,所做的抽樣是否能代表全部母體,這就是所謂的統計顯著性 (statistical significance)。統計顯著性告訴我們所見是否為事實,而不是偶然發生的。
  3. 當要求進行統計分析時,都會問「樣本數要多少?」這是錯誤的提問,但卻是大多數人會問的的一個問提。為了回答這個問題,你應該了解要衡量什麼以及為什麼要衡量