作者: Jerry Lin

  • 《也許你該找人聊聊 》第二部讀書心得

    《也許你該找人聊聊 》第二部讀書心得

    這次中間請假兩次讀書會,所以第二部就是這本書最終部分。

    突然發現自己很不擅長閱讀這類故事類型的書,因為有些「劇情」需要情感堆疊和字句確認,不只是資訊傳遞的用途,導致變成花滿多時間抓取作者想提供的內容,不太熟悉閱讀這類型文本。

    文中最有共鳴的是約翰這個角色,他的存在感我認為僅次於溫德爾(作者的心理治療師),因為其實很多內容是不同案例融合整理的結果,閱讀的時候有種「改編故事」但是又無法證實的那種存疑感。不過如果從「作者想要呈現」的內容來說,我比較喜歡把這書中提到心理學的科普當作是重點,故事來串接這些科普,就像是《工作細胞》這部動畫。不過得承認,即便是科普,即便我對心理學從小就很有興趣,但是還是記不太住內容。故事與科普比例差距稍微偏大了,也可能是最近工作的影響,閱讀的專注度比較少。

    另外一個閱讀上的角度是把這本書當作揭開「諮商師的神秘面紗」,像是面對病人時諮商師的心理變化、諮商師也要看心理諮商等等,讓無緣有諮商師摯友的我們可以稍微窺見一下他們在想什麼,在做什麼。

    其中有句話聽到滿能認同的,不禁把他用螢光筆畫起來。

    「洞見是心理治療的安慰獎。」

    《也許你該找人聊聊 》第二部 22 章

    如果以不是心理治療的狀況來說的話,自己滿常遇到類似狀況。當自己遇到一些議題、問題、狀況時,會放在心上去想,有時會有些觀點或是發現、或是別人的討論等等想法,可能就會分享出來,或是寫自己的筆記本上。再來就是想看怎麼改變自己,無論是態度、作法或是回頭去調整以前的人事物,無論是多小的改變,規劃一下,做一些小小的變化,能夠讓每天好一點,持續進步,這是一個很理想的人生狀態。

    像是書中說的:「怎麼選擇還是由你決定」、「要是回到現實世界時不做改變,洞見(和心理治療)就一點用都沒有。」 其實滿多時候,一些想法,在寫在筆記本中就是放著,的確就單純只是「一個想法」。不過我的優點是滿自戀的(笑),時不時會回去看以前寫的東西,期待是自己對自己的 code review 也許現在沒有幫到忙,在未來會有解決方案來優化吧?安慰獎總是安慰得獎者,希望可以下次拿進步獎的嘛。

  • 開放原始碼防毒軟體 ClamAV

    開放原始碼防毒軟體 ClamAV

    ClamAV 是 Linux 相當知名的防毒軟體,參考官網:

    安裝的部分在網路上非常多:

    CentOS 7

    Debian 11 / Ubuntu 20.04

    Install ClamAV Antivirus in Debian 11 Bullseye and Ubuntu 20.04 – LinuxStoney
    ClamAV is an open-source Antivirus tool available for Linux distributions. It integrates Mail servers to scan attachments received. In addition to scanning

    MacOS

    How to Install ClamAV
    Learn to install and use ClamAV, an open source antivirus software. This tutorial shows how to install it on macOS, Ubuntu, and Windows.

    這裡也有 Linode 的教學文章:

    Scanning for Vulnerabilities with ClamAV
    If you suspect your Linode might be compromised by malware, you can boot into rescue mode and scan your system with ClamAV. Learn more with our guide.

    因為自己Mac 是用付費防毒,尚未測試過,不未來如果有需要可以試試看。另外有一款圖形介面的沿伸軟體 ClamTK,介紹如下:

    GitHub – ivangabriele/clamav-desktop: Cross-platform Desktop GUI for ClamAV antivirus.
    Cross-platform Desktop GUI for ClamAV antivirus. Contribute to ivangabriele/clamav-desktop development by creating an account on GitHub.

    幾點注意事項分享:

    1. 參考,建議  2 GB RAM ,否則掃描時會內存不足崩潰,這意味著如果買最小單位的 VPS 主機(如 Linode Nanode 1 GB 方案),基本上裝不起來的。
    2. 掃描位置需要特別注意下,不一定是掃描 application 的位置,常見包含 /tmp 和 /opt ,或是 user 權限所及的目錄要掃。萬一是救援狀況下,mont 新的磁碟使用救援的模式,不同 VPS 廠商有不同作法,Linode 參考這裡這裡
    3. 掃描可依照參數匯出文件,也可以直接顯示。因為 sesssion 的問題,可用 screen 之類的套件保持 session,也可以放到 crontab 中定時掃描,定時請參考這裡
    4. 記得定時更新病毒庫,參考這裡
    5. 有時掃毒是臨時性的,或是手動測試,動作後需要移除,如果是用套件管理的方式安裝,移除也是使用對應移除的指令即可。

    似乎很多人不太有習慣在 linux 上安裝掃毒軟體,一個原因是因為 linux 有較為嚴格的權限管理,通常影響到範圍有限,不過之前有遇過在 VPS 上安裝的 panel 有漏洞,導致整個被全面入侵。我認為通常在 linux 上掃到後門或木馬等惡意軟體的時候,要特別注意會產生惡意軟體的原因,現在比較不常見插旗的攻擊模式,大多都是透過漏洞/弱點建立後門,植入惡意軟體後躲一下,然後塞檔案或是感染其他部位,達到蒐集資料、修改資料、控制流程與詐騙等目的,或是使其成為僵屍網路之一。

    所以在資安上需要筆記幾個大方向,權當廢話練習:

    1. 異常流量、異常行為、亦嘗事件的監控警報
    2. 資訊安全的衛生教育與習慣,要對 NG 行為有敏感的小心思
    3. 平時要多注意資安新聞,小心注意 0Day 攻擊
    4. 重要檔案與資料備援的機制要處理
    5. 不同網站發現威脅時要做好各自客製的 SOP 。如果能夠多人合作較能減輕壓力,也不容易隱瞞原因

    以上。

  • 《也許你該找人聊聊 》第一部讀書心得

    《也許你該找人聊聊 》第一部讀書心得

    這次的書是《也許你該找人聊聊:一個諮商心理師與她的心理師,以及我們的生活》書名都在比長的。作者是心理諮商師蘿蕊.葛利布,由譯者朱怡康翻譯。

    進度分四次,分別是

    1. ch 1-16
    2. ch 7-30
    3. ch 31-43
    4. ch 44-58

    這本書描述作者作為心理諮商從業的經驗,透過整理(顧及病患隱私)和編排,將經驗整理成故事,其中不只有和病人(或稱為當事者)的諮商經驗,也描述了自己因故去看心理諮商的過程。

    這是一本翻譯很不錯,值得逐字逐句閱讀的書,其中的故事雖然可能無法滿足現今嗜血的觀眾,但如果把期待放在真人真事與平常生活發生的狀況,是讓一般從未接觸過身心門診或心理諮商經驗的人們,得以一窺諮商師日常和發生在他們身上的故事。

    其中對我最感到興趣的是約翰的故事,和最近的在想的一個課題有關:

    面對一個令人不悅的錯誤,要用什麼態度去面對?

    先說結論,我有點同情約翰。

    而關於這個課題,我發現可以將他人犯的錯誤拆解成兩類:

    • 他心存惡意。
    • 他腦袋不清楚。(照約翰的說法就是:白癡)

    然而,先假定自己在足夠證據瞭解狀況(他是事主,他搞砸了沒錯)的當下,你會先期待對方是心存惡意還是只是腦袋不清楚?

    我會期待他只是腦袋不清楚。原因僅只於,我不想先給他蓋上「壞人」的標籤。

    最近從鮭魚之亂說永不錄用的企業去哪兒、博客來律師使用公審之術、理科太太課都沒影就被諮商師圍剿、幼稚園餵藥究竟是不是烏龍、浩客鬧超商但他媽的不要叫我浩客、拿菜阿嘎和詹姆士比較的貼文、MeToo 的男生都先去死、台大經濟選舉公報候選人全部都去退學阿、黃國昌身為地主打地主導致查不到 716 的訴求網頁、北科白飯之亂到底有什麼好報的,各種議題很適合討論,但是撇除掉極端發言或是政治廚廣告發言,很多討論都先採了立場,然後爭論的目的是輸贏,為了消滅對方。這樣的討論的目的一來很沒意義,二來很容易發生一個狀況:我踩著你是惡人,支持你的人也是惡人。這樣我就能站在道德高點。

    但如果你當過「和他人立場不同的惡人」以後,你會發現,很多時候就只是立場不同而已。甚至萬一立場真的有善惡之分,當下很多時候也只是腦袋不清楚而已。同時我們在面對「立場不同的對方時」,為什麼要先定義他有惡意,而不是只是先當作他只是剛好腦袋不清楚而已呢?

    回過頭來,約翰很溫柔是吧。至少不會像台灣的活網民眾一樣,近乎詛咒行為的憤世嫉俗卻又像是父母情勒般以為「這就是為你好」反效果行動豬隊友,但即便他們如此做了,我們是不是還是可以寧願先相信,這些人只是腦袋不清楚而已。


    同場加映:

    像這個例子,究竟應該要期待交警只是腦袋不清楚,還是他就是壞人呢?

    1. 腦袋不清楚:價值觀保守、講話不經大腦、他以為這是好心提醒。
    2. 壞人:起色心、噁男、權勢性騷擾。

    最近看一個影片猛然想起,如果是受害者,未來會期待自己要怎麼應對才是更好的?想到ㄟ,大家都在講預防,像是:男女不要單獨共處;不要隨便上長官的車,尤其對象已婚;講話和肢體動作要特別注意等等。是不是比較少有當下遇到狀況的教學呀?如果是說僵直反應的話,我是自認為非常有經驗的,所以會自己一個人的時候不斷反覆練習當下遇到狀況的反應處理,然後發現這個好像不太會有人教的對吧??是沒遇過?也不知道該怎麼辦?還是其實自己就是壞人所以心虛呢?ww 回頭過來看,所以我們認知自己犯的錯是腦袋不好,還是其實自己也是壞人?? 那該怎麼辦?

    另外發現,自己檢討自己總不是檢討被害者吧?好像不好說XD 這個政治不太正確阿 www

    最近的精神標語是「深處地獄,學會溫柔」。稱之為「地獄」的原因是因為這首歌,歌詞描述的很有意境,每個人都很難去定義別人的天堂與地獄,其實很多時候甚至不瞭解自己的。那又何苦,去當一個刑者,當那一把刀子:

    這是 Jim 的脫口秀,其中亮點是和一位阿姨關於「檢討被害人」討論。

    關於 MeToo ,從黃子佼事情之前,和朋友聊到,我覺得台灣 MeToo 要有的發展方向是兩個:

    1. 比例原則。某種程度上更有效保護當下的被害者。
    2. 建立一個適當的相處模式。很多人認為這不可行,因為文化畢竟多元、價值觀畢竟不同。我的認知是:如果道德倫理是法律的 meta ,那麼在同一個群體中,或是一個台灣族群的相處模式公約數,可以看做是道德倫理的 meta,很多論述我覺得荒謬,包含嫖妓、約砲、開放關係等話題,基本上判斷在不同群體中十分兩極,但卻沒有價值觀前面一個可遵循的模式,為什麼會這樣?回到一開始,就腦袋不清楚而已。我認為可以往如何建立一組大家都認同的相處模式,把「No means no」這樣的操作在更擴展開來,一起來完善會是好的方向。

    我沒有救世的心情,目前的狀態是我需要扣好自己的安全帶和氧氣罩再說。也許這就記錄一下,權當姜太公釣魚了。

    除了目的之外,我觀察到這大多是種標籤化和意識形態的思考模式,的確有利於思考,速度比較快,但也容易被操弄。我以前一直覺得這沒什麼,直到 MeToo 事件出現以後,發現很多「評價」,很容易轉變為「指控」,的確是有可能真實影響到一個人的現實狀況的,包括了生存,包括了身心狀態等等。然而如同上述標籤化所帶來的影響,未必是善惡二元的,也未必單純是惡的就應該被退學、去死、離開這個舞台、企業要永不錄用。

    就我的觀察這世界不只是「你跟我一國,那你是好人」或是「愛欲其生,恨欲其死」這種小朋友的相處模式,當整個社會發展到一定成熟時,個人思維和表現也需要跟上,也許真的發展太快,無論是年輕人或是老人成長跟不上,不過那其實沒關係,因為我們需要學會溫柔,不會直接判斷你是壞人,也許你只是腦袋不清楚而已。

  • 《原則》第四部讀書心得

    《原則》第四部讀書心得

    這次是《原則》在〈工作的原則〉中第九章到最後的部分,這部分我認為應該包含前面兩章,從〈選擇優秀人才〉大標題開始比較完整,如果給他下一個標題,我認為應該可以是「設計經營企業機器的原則」。

    包含第七章開始的目錄有:

    選擇優秀人才……
    7 要記得,比做什麼事更重要的是找對做事的人
    8 人要聘對,因為聘錯就會倒大楣
    9 持續培訓、測試、評估和調配員工
    打造和更新機器……
    10 像操作機器那樣管理以實現目標
    11 要去發現問題而不是容忍問題
    12 要診斷問題,探究根源
    13 改進機器,解決問題
    14 按既定計劃行事
    15 要用工具和準則來指導工作
    16 千萬不要忽視公司治理!
    工作原則的原則總結

    某種程度上,自己對人事相關的處理一直覺得很煩惱,除了工作能力的問題之外,也會包括了不同人的價值觀、思緒和經驗歷程所產生的差異,在以前上班的階段中有遇過幾次需要做人事調配的決定或是建議,看過書以後在仔細想想,也許當時會有更好的作法。作者用「打造機器」來作為企業管理員工的觀點,以下整理成自己的話,擷取幾點描述:

    1. 選擇比改變重要:改變其他人的價值觀是收效勝微而且成本鉅大的,而選擇的解法實作上也是多元的,並非捨得的議題,在人事管理上,要避免彼得僵局、要提早發現問題、要確認好培訓和審核機制,甚至要善用各種評估、管理和記憶工具來處理人的問題。
    2. 要學會縮放自己的觀察系統:可以把目光放在一個人身上改善他的技能,也能審視一個團隊的方法,或是有能力從組織文化中來確認問題原因。這有助於提早發現問題原因、也能夠協助其他工作伙伴確認需要注意到的角度,儘早解決問題。這是一種能力,需要多訓練。
    3. 掌握「工程師」的思維:這是我的本職,結合作者所言,應用於企業管理可以整理幾點:
      1. 要提早發現問題,提早解決。
      2. 面對問題去處理,不是歸咎責任。
      3. 善用工具幫助自己處理推論、記憶等程序。
      4. 減少未來可能的失誤,這體現在自動化的處理上,也需要掌握可能會發生失誤的可能。
      5. 不怕系統出錯,不斷提高整個系統容許出錯的容量,並且把「不會再出錯」作為目標往前。

    我一直對於「工程師」這個詞彙頗有微詞,但應該只是中文翻譯以及台灣濫用這個詞彙的關係。而我也不太能認同在「機器」的思維下使用「員工」這個詞彙,但其實無傷閱讀體驗,單純是覺得政治不正確而已。

  • 《原則》第三部讀書心得

    這次的部分是《原則》在〈工作的原則〉中 1-8 章節的內容。在〈工作的原則〉一開始有列出摘要,頗像是一個書中小目錄,將大項都列出來提供索引。

    不得不說,資深的工作人,原則很多。這位老闆應該是把他的原則當作憲法綱要來寫,而且他寫的很開心,因為憲法最高性

    這次的內容目錄有:

    工作原則摘要表
    培育良好文化……
    1 相信極度真實和極度透明
    2 做有意義的工作,發展有意義的人際關係
    3 打造允許犯錯,但不容忍罔顧教訓、一錯再錯的文化
    4 要達到共識並堅持
    5 做決策時要以可信度來加權
    6 要認清如何化解歧見
    選擇優秀人才……
    7 要記得,比做什麼事更重要的是找對做事的人
    8 人要聘對,因為聘錯就會倒大楣
    

    看著有點像是回到以前大學社團生活的經驗,其實雖然第三部分很像老人碎念,但不枉經驗集合,看的時候光是看到標題的期待就和內文差距不大,有種複習自己的歷程的感受。我想列出幾點對我來說目前還需要筆記的內容,我想用我的話來表達:

    1. 我們需要珍惜志同道合的朋友。也要謹慎考慮,如果價值觀分歧,或是無法調和的矛盾,也許可以放手。放手並不難過,只要處理得當,順心而且安心就是了。
    2. 要關注推論的過程,而非結論。這是教育客戶(也包含我自己)很重要的觀念,常常必須要糾正客戶「目標導向 != 只關注結論」。關於目標導向,這裡有一篇文章可以參考
    3. 討論事情的原則,這是一個大方向,書中著墨不少。其中也包含了「信賴」的判斷、依據不同目的把握的技巧、解決爭論的共識、補一下之前講的原則可能發生的禍亂,還有你應該在意與不在意的點,這是一個值得反覆咀嚼的議題。
    4. 書本就像是一個健身教練,能夠讓你少走彎路,第八章的內容是我比較沒有經驗的。以前社團的人並不是能夠有資本來聘用或開除,一直到出社會,很多公司也未必能夠做到「正確的聘用人才」這樣的動作,第八章有點像是給摸著石頭過河的我一些經驗上的傳遞,讓我知道哪些期待是不切實際的,哪些期待可以有。

    回到現實,最近台灣社會議題滿多的,在看這本書的時候,我發現如果我根本能夠保持一個開放的心態,多去瞭解和自己不同想法的人的價值觀,以及多去探究自己討厭的事情的本質,就像是自己觀察自己身體的變化一樣,雖然未必找到原因就能夠解,但是可以選擇放下。 給自己的期待是至少找到了問題我可以去喊救命,避免落入各種人生容器的貧窮陷阱。

     

  • 《這一生,你想留下什麼?:史丹佛的10堂領導課》500 字讀書心得

    這是一份投稿東南扶青社的 500 字讀書心得,感謝讀書會。

    本文儘量使用純文字,並且避免列點與儘量精簡。之前的讀書心得在這裡


    作者約翰‧漢尼斯人稱矽古教父,除了曾擔任史丹佛校長超久一段時間,也是現任 Google 母公司 Alphabet 董事長,學界業界貢獻巨大。這本是他整理自身經驗分享的領導心法,一共十點,分成十個章節。

    這是一本十分受用的書,堪稱領導者的葵花寶典,不過第一章不會要求男性讀者自宮,而是從標題表明了:「謙卑:高績效領導的基礎」 這是一個常見重要的警世金句。相反的,傲慢和固執很常發生在掌握權力的領導者身上,書中內容提醒我們,透過謙卑的態度看見自己的弱點,面對弱點,才更好的避開(或處理)各種容易忽略問題。我的觀點是,傲慢是一種「奢侈的消費」,人們往往無法衡量自己是否有傲慢的本錢,而我認為,表現傲慢除了公關和表演需求,也就是一種殘廢優勢罷了,缺乏生產力。

    除了第一章帶來的震撼之外,我很喜歡的還有第六章,討論協力與團隊合作;第七章,談創新,以及第九章,論說故事的重要性。尤其是第九章,也是最近在練習的課題,這包含了如何將專業的內容,透過飽含情緒且通俗的方式表達,不會引發負面公關問題且引得共鳴,進得達到設計目的,這是一個長年理工宅男喜歡列點和圖案表格來描述的人非常欠缺的技能呢。

    以上,湊齊五百字。

  • 《原則》第二部讀書心得

    今天的進度是第二部分〈生活的原則〉,內容量相對第一部份和之要讀的第三部分相對少。這章節主要故名思義描述生活中,我們能夠遵循的行為準則。

    我想用一些 Hash Tag 來為第二部分的內容作一個分類:

    #擁抱現實 #標準與原則 #開放開明的思想 #不斷進步 #向自然學習 #擁抱個體差異

    整理幾個覺得很重要的點:

    1. 掌握現實而不是把眼光放在想像中。
      掌握現實包括了關注在現實中的證據、不隱瞞真實想法的態度。我們需要釐清「希望的情況」與「真實的情況」,就像是在溝通時需要釐清對方的「觀點」與「事實」一樣,很多決策需要確認清楚基於「事實」的狀況才能有穩健的分析,很多人基於「觀點」而產生的各種評論、想法,就變成流於想像了。
    2. 「從更高層次看這部機器」這可以從能量觀察系統的解釋來說明。
      我覺得基礎學科的重要性在於人的成長過程中,能夠透過瞭解這個世界建構自我的價值觀。這正符合了作者對於「像大自然」學習的一個進程。「從更高層次看這部機器」,不禁想到物理學中能量系統的計算概念(有興趣可以複習能量守恆與觀察系統的內容)。在價值觀上,轉換不同的角色位置,也能夠看到不同的觀點、想法、態度產生的原因等等。這也是我行之有年的作法之一,對我來說,難點是在無法掌握更高層次的眼光,以及更不同層面的人背景的狀況。這也是自己想要多認識其他人以及多瞭解他的想法的動力之一,對我來說,能夠多瞭解不同生活圈的人對於同件事的觀點,以及探索對方價值觀的形狀是一件非常有趣的事情。當我們把眼光放在「更高層次」的狀態之下,可以有更宏觀的思考模式,也能夠找到對未來更有利的決策。
    3. 〈五步流程〉我的理解偏向瀑布式(Waterfall Model)開發,著重在於實作(執行)前期的規劃,這邊最常拿來比較的是敏捷式開發(Agile Model),有一個比較文章可以參考:
      回過頭來,也許以敏捷式開發來作為決策的思考模型也是可以的?
    4. 〈學習有效地做決策〉這章是深表認同。裡面列舉了很多注意事項,我認為比較重要的幾個關鍵字:宏觀、踏實、量化評估(期望值)、系統化/自動化,這是一個理科生的節奏。然而裡面有提到一個關於人工智慧的決策看法,在最近也是滿紅的,看到這段滿感慨的,這是 2017 年出版的書,在六年後已經可以看到人們開始嘗試這樣的應用了,雖然還是「It’s not today」,但是我覺得如果能夠在「幫助決策」的效用上更加普及,可以促使人類更往前推進,如同工業革命時期一樣,讓人們花時間在「更高層次」工作內容上,更加有效的推動整體社會進步的效率,也不失為一種進化。

    而我不能認同的是這本書在講大腦的部分,有點偽科學的感覺了,我沒辦法判斷他所描述的內容之中依靠的科學證據是否是正確的,而光是〈左右腦思考的差異〉這一小節早已被證實左右腦分開工作的是生物面的機制,並不能完全能夠意識層面來概括解釋,參考這裡 雖然我認同他的結論,但是,不太能拿大腦的科學運作來做解釋,用大腦來講,可能會比較偏像是象徵性的意義的,要拿來解釋的話,會更需要腦神經科學相關的學者背書或是其他有權威性的內容來佐證才行,其中在後續提到的他說他也無法為此背書的內容(2-4 備註 3.),心裡不禁吐嘈:「那你就別拿出來講阿!」更害怕的是因為毒樹果實理論而喪失了單純源自於經驗的價值。

    以上。

  • 《原則》第一部讀書心得

    這本讀的是《原則》,鼎鼎大名的橋水基金創辦人。這次分四個進度:

    1. 第一部份
    2. 第二部分
    3. 第三部分 1-8
    4. 第四部分 9-end

    我認為在知道作者觀點的時候,其實也需要多瞭解他「為什麼」會這樣想,以及當時他大概的時空背景,這樣也許比較不容易變成霧裡看花,或是見樹不見林的慘況而不自知。 剛好第一部份是介紹生平,頗有寫自傳的感覺。加上翻譯書,抓不太到重點的我,看著有點昏昏欲睡。這邊把別人的第一部份的心得給抄上,參考:

    另外在看書的同時,也查了一些關於橋水基金的歷史,以前只知道他是很有名的對沖基金,於是趁這個機會查了一些背景資料,概述請參考:

    橋水基金 – MBA智库百科
    橋水基金(Bridgewater)橋水對沖基金公司成立於1975年,創始人叫雷伊·達里奧(Ray …

    大概來說,就是早期提供投資與投資顧問的角色,後期以基金、債券等金融商品作為主打,以此獲得成功。

    關於「對沖基金」說明,可以參考這裡。又名「避險基金」,我的理解就是這種基金是有錢人在玩的。w
    優缺點參考這裡有詳細的說明:

    這裡也有講到一般基金和對沖基金的比較:

    而橋水基金在今年年初已經是中國外資對沖基金公司中最大的一家(新聞連結)。但他的投資眼光也不是都年年順利,就我所知他有賺有賠,而近年是往中國市場靠攏。他也在去年辭去了橋水基金的職位與放棄經營權(新聞連結)。

    回頭來看這本書,從目錄與其他介紹綜觀來看,這本書應該會把期待放在「如何具備規避風險價值觀」、「新的 / 更全面的思考觀點」以及「處理問題的作法」。期待下週的第二部分〈生活的原則〉。

     

    以上。

  • 將現成的 git repo 添加現成的專案資料夾

    將現成的 git repo 添加現成的專案資料夾

    這是一個 git 小技巧,其實滿常用的,但是每次要用的時候都要查一次有點小麻煩,紀錄一下。

    主要的應用場景是在我們在伺服器/本地已經有一個現成的資料夾,要把他添加至一個遠端新創的 git repo中,但是因為環境設定原因,我不想要移動資料夾的路徑。

    要注意的是:

    1. 如果是用 Github 創建,預設都不要選擇 .gitignore 等檔案,會出現一個教學可添加,照著作即可。讚!
    2. 確保目前伺服器/本地可以 push/clone/pull git 伺服器(廢話),推薦使用 ssh 連線,參考這裡
    3. 這是使用的流程以空的 git repo 為主,雖然不影響,但是還是建議拿空的 repo 比較不容易有衝突。
    4. 資料夾中會生成一的 .git 資料夾,有些資料夾是從別人那拉下來的。請先把這個資料夾刪除。也要記得先檢查 .gitignore 是不是你要的。

    流程上:

    1. 記得先安裝好 git 套件。進入到目標資料夾,確保沒有存在其他 .git/ ,以及 .gitignore 設定正確。
    2. 建立一個新的 git
      git init

    3. 添加檔案至 git,並且 commit
      git add .; git commit -m "initial commit"
    4. 注意遠端的 branch 是什麼,在 Github 上通常是 master
      git branch -M master
    5. 添加到遠端 git。 <remote-repo-url> 要替換成 git repo
      git remote add origin <remote-repo-url>

    6. 檢查網址
      git remote -v

    7. git push 資料到遠端 repo
      git push -f origin master

    提醒一下,現在有些 Git 平台使用 main 作為預設的主要 branch。

    以上。

    參考:

  • 透過 phpdoc 套件生成 PHP 文件

    前後端分離的實作中,會有遇到後端需要給前端 API 文件的需求,透過 phpdoc 的 PHP 工具可以將註解轉換成可讀的文件網頁,這樣基本只要把註解寫好文件也就差不多完成了(?)。

    有幾點要注意:

    1. 執行的環境需要能夠使用 PHP,不推薦使用 composer 安裝(據官方稱很容易衝突)。
    2. 我建議先把設定檔做好,再依照設定檔案跑會比較輕鬆,這邊提供一組範例
    3. 把設定檔放在根目錄外面是好習慣。
    4. 配置完成後,於相同目錄下執行以下指令產生文件:
      phpdoc
    5. 文件中關於設定標籤 visibilities 有些錯誤,設定檔案的配置上建議還是要多試看看才知道。
    6. API 中常用的 post/get 方法,參數的引用不太適合用 @param,即便註解了也會顯示不出來,我查 stackoverflow 是推薦用 @uses 。
    7. 因為這是 php 文件,不是 HTTP API 文件,所以還是會存在溝通成本的,包含呼叫路徑的操作,這可能有賴於後續研究和嘗試自定義的調整。如果要生成 OpenAPI 格式,可以參考這個套件(有夠麻煩)。

    我使用的是 phpdoc  3.0 版本。

    安裝操作的部分,我使用的是 phar 安裝,好處就是可以裝到 global 環境:

    首先先把 phar 檔案下載下來:

    wget https://phpdoc.org/phpDocumentor.phar

    變更權限:

    chmod +x phpDocumentor.phar

    然後改名,移動到 global 的環境上(這裡以 Mac 為例):

    mv phpDocumentor.phar /usr/local/bin/phpdoc

    是否要移動到 global 環境取決於看有沒有要 project base ,這和 composer 的安裝類似,如果不是 mac 但不知道要移動到哪裡可以參考這個文件

    接著有基本參考 phpdoc 的文件就能運作了。他有很多功能,以下附上不負責翻譯:

     

    而我是在 Codeigniter4 中實作,所以我會把路徑放在 ci4 的根目錄外面,假設 ci4 在 www/ 之中,我就放在外面,此時 source 的 dsn 會設定:

    "./www/app/Controllers/"

    而生成文件的設定也相對會設定在根目錄之外,參考範例。好處是避免文件因人為疏失變成公開的資安危機,壞處則是必須要額外設定路徑或網域來指向他提供給其他人閱讀。

    而我的策略則是將該份生成文件納入版本控制之中,提供給前端,讓前端 pull 下來以後就直接用本地電腦打開來閱讀使用。

    附上設定檔案範例(最後更新 2023-05-13):

    推廣一下,要養成打註解的好習慣,不只是給未來的自己看,如今加上一個可以給前端看的服務,這樣打註解的動力應該會更高了。

    參考資料:

    PHP 註解的 tag 參考:

    Phpdoc 設定文件:

    Phpdoc 設定文件說明: