跳至主要内容

· 閱讀時間約 6 分鐘
Vincent Chi

因為家中多了一台 Synology DS224+,趁著過年前把房間整理一下的機會,順帶重新設計家裡的網路。

需求

  • 在家使用的設備(無論走有線網路的電腦、WiFi 的手機與平板)皆為 IPv6
  • 能夠從網際網路直接連線到 NAS 及 HomeLab 上的某些服務
  • 能夠從網際網路提供一個 VPN 給外出時使用
  • 家用設備必須能夠以內網的方式連線到 NAS 與 HomeLab

· 閱讀時間約 11 分鐘
Vincent Chi

容器化(Containerization),這是一個由 Docker 公司所發揚光大的一種技術,它能夠很好地封裝應用程式與所需函式庫,而且通常有著比 虛擬化(Virtualization) 更高的效能。

一般來說,編譯式語言都很容易被容器化,例如 C/C++ 或 Golang,這是因為只需要在容器中設定好相依函式庫(通常是指動態函式庫),其編譯出的執行檔就可以直接在容器中運行。

這對 PHP 這類直譯式語就不是個好消息,其運行環境往往受制於 Apache PHP Module 或 PHP-FPM,再加上現代 PHP 往往會整合 Composer 進行相依性套件管理,這使得其處境更加雪上加霜。

備註

Python 或 Nodejs 這類直譯式語言,往往也會藉助一些協定(例如 Python 依賴的 WSGIASGI)或工具(例如 PM2Forever)來佈署。

· 閱讀時間約 10 分鐘
Vincent Chi

七月中旬,我離開了 Rosetta.ai

作為最後幾份工作,我與同事們一起設計了一系列的 PHP 軟體工程師(後端)的題目。其中,實作題的設計是由我所主導,而我個人認為它是我設計過最優秀的題目。

因為該題目已獲公司主管同意已經公佈在 PTT 的 Soft_job 版上,所以這邊寫下當時我設計題目的理念與解析。

備註

註:雖然 PTT 的討論串到最後演變成薪資之爭模糊焦點有些可惜,不過這並不妨礙這份題目本身的設計。

· 閱讀時間約 3 分鐘
Vincent Chi

目前主力工作環境是 macOS,用這篇文章記錄一下從無到有設定整個 macOS 的流程。

· 閱讀時間約 5 分鐘
Vincent Chi

最近有嘗試著在 Twitch 上開直播,想說如果能夠讓 Zeffie(我在 VRChat 中所使用的角色形象)在直播時使用就好了。

經過一番搜索,我鎖定了 VSeeFace 這套軟體,並且搭配 iFacialMocap 做到表情捕捉。

也就是說,需要解決的問題就是:如何讓 VSeeFace 使用 VRChat 相容的 3D 模型

· 閱讀時間約 5 分鐘
Vincent Chi

最近熱衷於玩 VRChat,在試用過多個不同的 Furry 模型之後,我最後選擇了 Zeffie ゼフィー 作為基礎模板。

有鑑於大部份的玩家都會在購買模型之後改變顏色或添增一些圖騰,以更加符合自身的設定,所以我也嘗試著自行修改:

改造前 改造後

本次的操作皆以這個模型為範例,理論上流程是差不多的,但可能在提供的東西上會有些差異

· 閱讀時間約 7 分鐘
Vincent Chi

Laravel 有著優秀的預定義認證(Authentication)功能,讓開發者不必費心在重複製作用戶註冊、登入、登出等功能。

無論是早期的 laravel/ui 還是 laravel/fortify 都提供了安全、完整且方便的解決方案。

Kratos 是由 Ory Corp 所提供的開源認證解決方案,藉由設定檔的方式可以靈活設計認證模型(例如帳號密碼、第三方社群或 WebAuth 等 passwordless 的形式)

· 閱讀時間約 10 分鐘
Vincent Chi

在 2021 年中旬,我曾經寫過一篇 Laravel 環境設定,不過因為工具上有些許變化,所以在 2022 年末將其重新整理一遍。

事先聲明,本文中所寫的環境設計題專門為了我自己的工作流而打造。如果不適合你,那你是對的,請儘管改成適合你的工作流。

· 閱讀時間約 5 分鐘
Vincent Chi

蛤?PHP 字串比較還要特別寫一篇文章嗎?

會開始研究這個問題,主要是因為在 Laravel Fortify 中使用 hash_equals() 這個函式比對字串。