星期三, 11月 27, 2024

Installing and Switching Java Versions on Mac OS

Description

記錄Mac OS裝java

Install Java

有兩種方法 

  1. 透過homebrew
    這方法感覺比較好,但未成功,所以請用第二個方法 XD
  2. 下載bin裝法

1.透過homebrew

brew install openjdk@11

切換有兩種方法

A.brew switch

brew switch openjdk@11

但switch似乎被deprecated了,找不到switch指令

brew switch openjdk@11
Error: Unknown command: brew switch

B.jenv

又看有jenv來切換,透過jenv version看起來有切

但實際打java —version,仍然是一樣 所以先放棄了,會的人再教我

2.下載bin裝法 

1.Install 

就笨笨的下載,然後放Users/<your user account>/Library/Java/JavaVirtualMachines/ 用lntellij下載,也是會放這位置,所以可以透過ide做

2.設alias


vim ~/.zshrc

貼以下到最後

# Java Setting
alias java11="export JAVA_HOME=/usr/libexec/java_home -v 11; java -version"
alias java17="export JAVA_HOME=/usr/libexec/java_home -v 17; java -version"
alias java23="export JAVA_HOME=/usr/libexec/java_home -v 23; java -version"

p.s. 透過java_home切換,只能切安裝在Libaray/Java/JavaVirtualMachines裡底下

重啟terminal,就可以切換


# java17
openjdk version "17.0.12" 2024-07-16 LTS
OpenJDK Runtime Environment Corretto-17.0.12.7.1 (build 17.0.12+7-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.12.7.1 (build 17.0.12+7-LTS, mixed mode, sharing)

# java23
openjdk version "23" 2024-09-17
OpenJDK Runtime Environment (build 23+37-2369)
OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

Question

1: 沒設定PATH也能動?

我發現只有設定JAVA_HOME,但並沒有把${JAVA_HOME}/bin放進PATH變數如下

PATH="${JAVA_HOME}/bin:${PATH}

但是切換仍有用,我看是有PATH有指定/usr/bin,而底下有java

神奇的是他會隨切換版本而改變,這不是什麼神奇功能

2: 那我可以用brew安裝java,再用java_home -v來切嗎? 先說明 透過brew安裝會放在 /opt/homebrew/opt 透過intellij安裝會在/Users/<user>/Library/Java/JavaVirtualMachines/下 結論 我試是不行,因為java_home只能抓到/Library/Java/JavaVirtualMachines/下的java版本

See Also

Reference

星期四, 10月 03, 2024

控制Maven Unit Test及Integration Test

由於integration test不一定有環境跑,所以得區分
目標是unit test一定都會跑,而integration test有指定才跑
這裡利用maven-surefire及tag區分

1.Tag區分Unit及Integration Test

    @Test
    @Tag("UnitTest")
    @DisplayName("UnitTest1")
    public void testCase1() {
        assertEquals(1, 1);
    }

    @Test
    @Tag("UnitTest")
    @DisplayName("UnitTest2")
    public void testCase2() {
        assertEquals(1, 1);
    }

    @Test
    @Tag("IntegrationTest")
    @DisplayName("Integration")
    public void testCase3() {
        assertEquals(1, 1);
    }

2.maven-surefirem區分

在pom.xml裡,找plugins加入以下
...
<plugin>
	<groupid>org.apache.maven.plugins</groupid>
    <artifactid>maven-surefire-plugin</artifactid>
    <version>3.5.0</version>
    <executions>
        <!--mvn test-->
        <execution>
            <id>default-test</id>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <!--run test cases with tag "UnitTest"-->
                <groups>UnitTest</groups>
            </configuration>
        </execution>
        
        <!--mvn integration-test-->
        <execution>
            <id>integration-test</id>
            <phase>integration-test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <!--run test cases with tag "IntegrationTest"-->
                <groups>IntegrationTest</groups>
            </configuration>
        </execution>
    </executions>
</plugin>
 

跑mvn integration-test可以發現分別先跑了
1.mvn test
2.mvn integration-test

本想研究怎麼拿掉mvn test步驟
不過想想unit test每次都跑也不錯,就沒理了

星期六, 9月 21, 2024

對話的練習

上周請小孩跟學校拿申請單
結果小孩暴氣表示不關他的事,為什麼要幫我拿
聽完這回覆理智線直接斷裂,想發火罵人時…
回想剛讀完「對話的力量」,便先收起怒火,晚點再談

等自己恢復平靜後,再跟小孩算帳對話
以下便記錄與小孩的對話內容(稍為縮減濃縮)


對話記錄

我:剛才你在生氣,發生了什麼事嗎 (覺察情緒)
孩:…

我:在學校發生什麼事嗎
~ 沈默幾秒鐘 ~
孩:我不想去上課

我:學校發生什麼事
孩:明天有音樂課,音樂課要唱歌跳舞

我:音樂課要唱歌跳舞?
孩:我不喜歡唱歌跳舞,聽到老師跟同學說以後會輪流,我不想要同學面前唱

我:在同學面前唱的感覺是什麼
孩:我覺得厭力很大

我:覺得壓力大? (確認)
孩:我不會唱歌跳舞,在同學面前,我會不自在…


~ 這裡讓小孩有話想說,專心聆聽確認問題,不給建議,讓他全說完 ~


我:很高興你能跟我說這件事,在同學面前,做不擅長的事,的確會感到厭力
我:明天上音樂課,如果要你唱歌怎麼辦?

(讓對方自己想處境,如何面對困境,獨立思索如何面對)

孩:不知道
我:那~ 你有想要解決這個問題
孩:哪有辦法解決!?

我:那你有想要解決嗎?(核對式提問助於聚焦、負責)
孩:怎麼解決?

我:明天的唱歌表演,請你想成我們要比的是「唱的最爛,跳的最差的」,唱的好、跳的好的人輸(註1)

之後我忘記小孩回覆什麼,但感受到他心情變好了
我們也聊了不少東西

這幾天感覺小孩比較會主動聊天
親子感情似乎有再更親密點… 吧!?(自我感覺良好)


心得

一開始的小孩暴氣不願拿申請單,真的令我發怒
當下覺得怎麼會這樣回答,也許小孩有其他事,所以讓他情緒不好,如同冰山

幸運剛讀完「 對話的力量」正好練習一下
過程中,自己能專心聆聽,不給建議
也許在想該怎麼提問,所以讓自己不帶情緒平靜應對
覺得挺有趣的


重點整理

  • 當對小孩吼,小孩就會吼回來的方式對話
  • 專注且和諧,語氣平穩,對方也會共頻

先梳理小孩的情緒,等平緩後,再聊他發生的事
從中瞭解問題後,也覺得小孩已講完,再進行下一步
再確認他是否想解決,沒確認這點,先給建議,對方可能覺得煩
如果他自己能解決問題,就引導他自己解
小孩沒想法的話,就提個方法給他
小孩感到沒自信,那就幫他建立自己的信心

註1:這招 從「 對話的力量」學的,「比爛」還挺有效的,當然前面的鋪陳是需要的

星期四, 9月 12, 2024

Scrum Master的被電旅程


過去在自己組織導入Scrum,覺得頗有幫助
今年突發奇想來找Scrum Master工作
沒想到被鈦坦找去,本來有點猶豫會被電

但想了想…
就去見識見識,被電就當學習唄

結果就...
真的被電了... XD


一方面鈦坦對敏捷的運作已經很成熟
團隊運作會成為現在這樣,都也經過不斷迭代過
提個意見,就會有說人以前試過
自己對運作也不熟悉,一直被覺得狀況外
真有體會團隊是活生生的個體

另一方面是身份轉換
過去自己一直是Team lead角色帶Scrum
而切換專職ScrumMaster反而不知道如何與團溝通

雖然前輩早說過SM沒有實權,需用不同方式協助團隊
道理及書都讀過,不過實際運作就跟自己想像不一樣 Orz
自以為講出問題,大家就會說「好唷~ 我們來解決這個問題」(結果是我被解決了  XD)

細想過去是別人不懂或者是自己有權力,所以大家就被迫上車了
現在團隊運作好好,誰理你在旁邊亂吠


這碰壁的過程,也請教多位過來人

感謝Oakely,之前也遇到相同的問題,聊起來特別有感
感謝Terry指導,「看到的是現像,還是問題」以及「能打裝作不能打」
感謝Sherry,建議引導的小細節,讓會議進行的更絲滑流暢
感謝Maureen,雖然太晚找你了,但是燒腦的提問,還是很有幫助
感謝Leo, Elvier及Sam,多次的談論,從你們身上學到很多不同的觀點
還有感謝Michelle幫忙,另外非常泰好吃 XD

感謝大家~

最後
試著努力,不過覺得還差很多
瞭解Scrum的運作,對工程師是加分,但對專職SM就嫌不足
除了理論外、必需懂很多手法技巧,更需要練習及經驗累績
不是小看SM這角色,而是事非經過不知難呀
所以先退回工程師角色,再繼續修練

p.s. 圖片是半瓶水,提醒自己要多修練

星期日, 11月 13, 2022

CHANGE 31 演講筆記

演講資訊

時間:2022/11/12 13:30

講師實踐家:Fiona

心得

演講內容是針對Z世代,所以對Y世代的我,都是過去式的內容(戀愛與工作),比較沒fu,不過在開頭的「人生就一回,想要怎麼過」有衝擊到,

過去一直都滿順遂,也沒特別去想怎麼過,但提到「人生就一回」,就有點打醒自己,到老臨終那刻回想這一生,自己會覺得甘願嗎?

過去在想怎麼成功,看了電影「三個傻瓜」認為追求卓越,成功自然會追著你跑,但現在覺得如果有個前輩指引你,更能事半功倍,畢竟他已經走過這些路。以前也不懂為什麼需要人脈,以為只是擴展視野,現在看來更能幫助自己。

筆記

  1. 是否滿足現況
    • 有形
      • 工作,薪資
    • 無形
      • 心理壓力,加班,一成不變
      • 家人
  2. 危機意識
    1. 滿足現狀就是最大的危機
  3. 規劃人生
    1. 人生就一回,想要怎麼過
    2. 自己不規劃,就讓老板來幫你規劃
  4. 方向
    1. 前輩就是錢途
    2. 機會就在人群裡(人脈)
    3. 能解決別人困擾的問題,就是商機
  5. 成功是一種習慣


星期六, 10月 29, 2022

原子時間

筆記

  • 晚上有四小時,什麼事都等週未
    • 一週有20小時浪費
  • 蕃茄鐘
    • 重點在專注,專注才有效率,有限時間,反而專注力高力
  • 創造時間自由
    • 開始前
      • 什麼叫浪費時間,要先找到達成目標的意義
      • 需要找尋們我的價值
      • 可長可久動力, 值得奮得終生的目標
      • 目標->意義->方向->行動
    • 表格運用
      • 年度Action Planner
        • 不可以超過7個,不可以是不可控
        • 使用重點
          • 開始/結束日期要落入日/週計劃
          • 每週檢核是否有達標
      • 日計劃
        • 今日目標、區分TODO
      • 晚間計劃(Evening Planner)
        • 掌控好做事的時間,不要浪費
        •   固定時間固定的事
    • 思考像大人,行動像小孩
      • 不要用意志力,用習慣
  • 正面的自我暗示
  • 最後
    • 每天做的事,跟KPI有關嗎

心得

自己人生目標是什麼?不是沒有,但達成的意義還真沒想到... 

想要成為什麼樣的人!!!!!?

星期日, 5月 15, 2022

精實影響力(2022.14)

 


書名:精實影響力:非營利組織的創新 Lean Impact: How to Innovate for Radically Greater Social Good

心得

精實方法讀滿多的,這本不一樣在較多實際情境,也遇到更多真實的問題,更能感受到精實在加速迭代的精神及效果。

創新在非營利單位比一般創業有著更多更困難的問題,在募款、實施推行都有更多的干涉,如投資人想針對市場(選民)、短期目標(治標不治本),政策規範改變廢時、公家機關無效率,即便可行後,不營利的模式也是長期持續推動的一個問題,回饋時間長,要迭代也不易做, 如畢業率、再犯率。

個人在影響力這塊一直推不出去,都停留在自己的小圈圈,作者建議可設定指標,追蹤每個mvp,一來提升團隊參與感,公開透明也可讓stackholder看的到

從大處著眼!但要從小規模做起,努力不懈追求影響力

筆記

  • 啟發
    • 精神
      • 加速迴饋循環
        • 即早調整改善,才能快速看到成效
      • 迭代週期長
        • 改善緩慢,效果自然不好
    • 如何定目標
      • 太小,成果,影響力小
      • 太高
        • 有不同思維,也有挑戰性,可凝聚團隊
          • 但stakeholder看不到進度
      • 原則
        • 設定遠大目標
        • 從小規模做起
        • 持續不懈追求影響力 (非營利重點要放在影響力)
      • 確認問題
        • 從真正的客戶與stackholder找出真正的問題
          • 5why找痛點及願望
            • 紅毛猩猩棲息地, 砍樹是為了賺錢治病,應解決病因而非賺錢
      • 確定假設
        • 哪些事情會出錯(扮演辨護演練) p.123
          • 哪些地方可能出錯,最終導致失敗(遊戲抽水機效率)
          • 尚需準備好哪些面向才能發揮效用
          • 大家是否支持、採行或選擇(愛滋凝膠)
          • 是否比現有的方法更具效益
          • 能帶來持久的正面變嗎
        • 三個假設 p.124
          • 價值
          • 成長
          • 影響力(願意推薦給親友)
  • 驗證
    • 一田百香果
      • 即使可行,也得小量測試
      • 農民不會種,保存運輸方法也不同
    • 不要將自身價觀加在客戶身上
      • 自尊是人類強大驅動力
        • 黃燈溫暖,但貧窮國,冷色才想都市
        • 看的到的東西,不一定會排最便宜或最舒服
    • 驗證成長假說
      • 避免怎麼也做不大的小眾市場
        • 持續成本誰支付
        • 誰來支付
        • 現行系統整合
        • 自己的方法有何不同
  • 改造
    • 有了產品,服務、體制、生態系也會阻礙
    • Waterfall不易變動,太多干預
      • 一旦開戰,所謂作戰計劃統統沒用
      • 好產品必定根據feedbackflp adkv 
    • 表揚失敗
      • 分享失敗經驗