搜尋

搜尋結果

Swarm mode 上線 6 - 2| 升級陷阱
科技新知
MacauYeah・2025-04-14

上一期筆者就介紹寺過swarm的相容性,可以任意地刪除其中node、加入新的node,系統會自動同步各機狀態。今日,我們就來討論一下加減的流程吧。 實戰輪調流程 假設我們有5個 node,都為manager,各個 docker 版本都為28.0.4 ,我們將要關掉node 5 ubuntu 22,並加入node 6 ubuntu24,輪調流程如下 如果node5有vvip,login node 5,關掉vvip systemctl stop keepalived login node1, 把node5降為drain模式,變為worker,並從群集中刪除 docker node update availability drain node5 docker node demote node5 若然node5不是直接關機、刪除,只想好好地離開群集,可以 login node5, 在node5上預先執行 docker swarm leave docker node rm force node5 如果之前node5有好好地離開群集,而且狀態已經轉為down,那麼就不用quot;forcequot;了,用最保守的刪除指令就可以 docker node rm node5 login node1, 取得manager token docker swarm jointoken manager node5關機,新增node6,使用相容的ip段,或者使用node5的ip login node6, 加入群集,設定vvip docker swarm join token xxxx XX_IPXX_PORT systemctl stop keepalived 這陷阱這陷阱 偏我遇上 上述的操作,有一些可能的陷阱,筆者就剛好踩過,未來不知道會不會有官方保證 docker的版本需要相同,不同版本可能不能加入群集,例如 docker 28.0.4 不能加到 docker 27.5.1。 docker 27.2.x 不能加到 docker 27.5.1。 docker swarm,官方雖然宣稱支援不同版本共存,但這指的是已加入的node,在不解綁的情況下原機升級。 在swarm已有多版本共存的情況下,有一個node選擇完全脫離,它想再加入,也是會失敗的。可能這不是docker自身的限制,而是底層library的相容性問題。筆者在實測不同版本時,就得到這樣的error。docker credentials cannot check peer missing selected ALPN property

學習寫程式,除了複制貼上還有什麼?
科技新知
MacauYeah・2025-02-07

不知道大家是如何學習特定程式語言框架的建構 也不知道大家可如何保持程式庫框架的最新狀態 筆者就分享一下最新的經驗,看看對大家有沒有得著。 制作自己的範本 跟著程式框架的導覽教學Tutorial走一偏 從零起一個新專案 設定專案,該用的基本功能全部設定好,作為概念驗證Proof of Concept,也作為日後範本Template之用。 有需要用新專案,就複制之前的範本,再逐一修改名字或路徑的設定。 上述做法,是筆者過去比較常用的策略。面對很統一要求的專案,都有效。當程式庫有更新,我們可以選擇只局部修改,範本就可以長期用。我們也不需要經常從零走一篇。 練手的Code 從零起一個新專案 上述的範本做法,對於現時需求多變的專案,可能不是很有效。例如有些專案使用Session Auth,有些則是Api Auth,有些則是Open Auth。同一個範本中有齊多種Auth的設定,原本難度就有夠高,之後複制完還要自行禁用不相關的部份,也是相當的煩人。當範本中多有個地方都有互相衝突的地方,複制範本就不是一個很易的做法。 面對那些複雜的配對,我們務必要真正了解技術的運作原理,然後為每個功能都從零建一個專案,做一個最簡單的Proof of Concept。重點不是在未來拿它們複制貼上,而是用來厘清概念,哪段程式對這個功能至關重要,哪段其實沒有作用。 如果可以,每次程式庫框架升級時,都從零建一次。這樣一來可以練手,加深記憶,二來是每次版本的變動,有些程式碼可能已經變得沒有作用,原本的寫法並不再是最簡的。當然這個也可以為每個功能獨立做成範本,到有需要的時候再抄少量的程式碼就好。 其實練手的過程中,我們亦會慢慢熟習IDE的功能,有些IDE或Plugin已經很方便地自行完成一些設定。所以筆者漸漸的也習慣了不抄程式碼,改為以IDE Plugin的方式建立,某些真的很不熟練的部份才會維持範本複制的型式。 這是筆者最近學習vue3 的練習清單,還在持續新增中。讀者們有興趣也可以一起來修訂。 httpsgithub.commacauyeahAProgrammerPreparesblobmainsrcvuejsTimeAttack.md

Steam OS 3.5更新,內建 podman, distrobox
科技新知
MacauYeah・2024-12-10

之前筆者有介紹過如何在Steam OS上安裝podman,但都必需要自行折騰一番,特別是遇到一些依賴缺失時,還要逐個除錯。在Steam OS 3.5更新之後,官方已經有預安裝的 podman,筆者建議,如果有機重刷OS,就直接使用預安裝版本就好。更重要的是,不但有預設podman,連另一個神器distrobx,也在Steam OS 3.5之後引入。 podmancompose Steam OS 3.5,雖然已經有預安裝 podman ,但在實際環境下,多安裝一個 podmancompose 可以更方便地一體化操作。 我們可以經 python 安裝。 剛安裝 podmancompose ,會出現在自己的 home 目標的隱藏目錄。最後一步就是要加到自己的 PATH 環境變數裏面。 修改保存後,就重啟。之後 podmancompose 的指令就可以任意存取了。 要補充一點,就是官方預安裝的 podman 還是缺少了一些 DNS 的元件,大家會看到 warning 提示。不過在筆者單個 container 的使用情境下,並不受影響。之後要在其上二次引用的 distrobox 也可以順利執行。 神器 distrobox 在 Steam OS 3.5 中,除了 podman 外,還有預裝 distrobox 。 distrobox 其實是基於 container 技術的擴展應用,它目標是讓用經過 container 就可以輕鬆使用到不同 linux 的發佈版本。例如我想在 Steam OS 中使用 Ubuntu ,經過 distrobox 就可以用到。道理上, distrobox 基於 container podman 操作的,所以它能做到的,其實自己手動經 podman 也是可以做到。但若果大家想使用跨 Linux 版本的 GUI 程式,筆者還是建議優先使用 distrobox 。因為 distrobox 預設已為不同版本的 Linux 的 Image 來源影像檔 加入部份調整,在運行時亦有x11等互通,指令也較為簡單。 以下做來例子,示範在 Steam OS 中就執行 Ubuntu 版本的 vscode。 註 Distrobox 也不是萬能的,例如它的 Ubuntu 版本內沒有 snap ,所以不能執行 Ubuntu 版本的 Firefox。 snap will not works firefox not works

排版之於文字創作者的重要性
手機‧電玩
MacauYeah・2024-09-05

筆者已經很少再買遊戲相關的書藉,一來因為筆者已漸漸遠離遊戲新作,二來發現某些紙媒的資訊瑕疵越來越多,所以就沒有再看。但因為家裏土地資源問題,筆者需要再斷捨離一些收藏,所以就再拿起舊的遊戲雜誌來重新審閱。 說實在,在過去、現在,很多傳媒的資訊都無法確認正確性,其資訊價值難似證明,但某些紙媒一直存在至今,一定是有些地方,很受市場歡迎。那些地方,大家也不妨去借鑑一下,或者對自己的作品會有幫助。 之前某一期,筆者也表明過,UCG的攻略有著抄襲問題,所以筆者已不再購買他們的新攻略。但重翻他們家的百期特輯,內容的確不錯。 主題的選擇 作為百期特輯,他們會選擇一些回顧的主題。而這些回顧也的確實表現出時間的演變。 排版 現時網絡資訊,品質好的,會配以圖文表示。但因為結構單一,所以新鮮感不足。最差的什至會滿頁廣告,閱讀感很差。但以百期特輯的雜誌式的排序,每頁配圖位置稍有不一,亦有主題轉變,風格相似又不盡相同,真的耐看。 匯整 雖然資訊不能保證百分百正確。但以匯整的角度來說,有一讀的價值。好比ChatGPT,它的資訊也不是完全正確,但它可以省略你在搜尋引擎中四處查看、逐一對比的過程。 對於各位文字創作者,有條件,當然可以嘗試以圖文方式豐富視覺內容。那怕沒有時間挑圖,也可以試試定制不同章節的排版風格,來讓故事文章變得比較有過程的變化或是段落感。 不過,說到尾,筆者並不是對抄襲問題作出認同,我們應對原創有更多的支持,抄襲只會讓原創更難生存。但某些二次整理,也有它的價值。就像筆者的知識分享一樣,重複以不同的方式,更易理解的角度,去重述一些議題,倒是不會嫌多。

Swarm Mode 上線番外篇:Ceph
科技新知
MacauYeah・2024-08-20

在預設Docker和K8s的容器主導世界裏面,其實一直都缺少了直觀的儲存空間。當你的程序需要讀寫故定的來源資料,該來源就必需是外部的穩定儲存空間,例如是資料庫、NFS。但資料庫、NFS等,要做到真的正穩定,其實就要走Cluster叢集模式,確保它們自己本身不是做成single point of failure 單點故障的元兇。 坊間,只要付得起錢,其實找個穩定的資料庫或NFS,也是有的。但如果你像筆者一樣,只有一塊或多塊【鐵】,就要試試開源的儲存引擎Ceph Storage。 Ceph Storage,有自己特有的CephFS格式,但也支援NFS httpsdocs.ceph.comenquincycephadminstall。也就是,只要我們有足夠多人力,道理上可以自己用實體機去模擬一個穩定的NFS。 因為只是試裝,筆者暫時只用VM來測試,完整的安裝script,可以在這裏找到。script使用Multipass VM,大家有條件的話,可以使用其他VM引擎來看重複。以下是一些官網上沒有提的重點 Ubuntu 24.04 還未能正式使用。在筆者做POC的當是,Ceph v18 在 Ubuntu 24.04上需要先解決,即使大家使用Curl base下載 binary,也未必能成功。 筆者成功測的版本是 Ubuntu 22.04 Ceph v17,全使用Ubuntu 發佈的內置版本。但大家也要留意自己的Ubuntu apt 有沒有更新到最新版,過去的 cephadm,引用的container image url也變更。記得更新到v17 的最新版,cephadm 指令才能成功取得image。 在官方說明文件的【Deploying a new Ceph cluster】中的【Adding Hosts】httpsdocs.ceph.comenreefcephadminstall#addinghosts 節章可能有些誤導,大家應該要看 【Host Management】中的【Adding Hosts】 httpsdocs.ceph.comenreefcephadmhostmanagement#cephadmaddinghosts 在每個節點內,可以直觀地連接地Ceph Dashboard,但若大家需要Port Forword,要注意你的Network Interface,筆者就只能經過預設的IPv4的public ip 進行ssh port forward,不能經過0.0.0.0。 Script 位置 httpsgithub.commacauyeahubuntuPackerImageblobmaininitCephCluster.sh

何謂 Infrastructure as code - IaC
科技新知
MacauYeah・2024-06-07

在雲端服務出現後,好多新的名字,或許大家都聽過,筆者也稍為再簡介一下。 Software as a Service Saas。就像我們的Web App,不用下載體件,可以直接經雲進行業務操作。 Platform as a service Paas。這個概念可能最含糊,筆者理解就是,雲端供應商提供一些底層的軟件,供IT人使用。像是資料庫,Web Engine。 Infrastructure as a Service Iaas。這個更底層,雲端供應商給出CPU, IP, Memory, Storage等,頂多就再多個預安裝OS的選項。IT人自己去配搭使用。 多得這些彈性服務,雲端應用才真的跟過去租用實體伺服器有所差異。 但對於IT人來講,要使用這麼多不同的服務,實在也不簡單。對於IT消費方,用錢換來實體硬件的靈活性,但因為硬件沒有邊界之後,軟件的量就暴增。管理也不能說是很方便。 在Docker, Kubernetes等Container容器出現後,又為這些管理問題帶來另一種希望,就是Infrastructure as code IaC。它的目標是,管理基礎設施,要像管理原始碼一樣,checkout 就可以回覆到指定狀態。 初聽之下,大家可能覺得好玄,但其實這個概念,在之前筆者的Docker 教學中,已經有出現過。Docker compose 、Docker stack 指令,它們都是基於yaml檔的IaC。 當筆者更新了yaml 檔,執行一次stack deploy ,docker 就會對比之前狀態,如果replica分身不夠多,就自動增加所欠數量,如果image 也更新了,就排隊輪流重起換image 。最重要的是,當我們checkout 舊的yaml 檔,回到過去某個狀況,只要還是執行同一句stack deploy ,系統就自然減少所需的replica數量,下戴過去的image。這就代表,我們對於container 構建而成的環境,都可以放入Git等版本控制中,整個管理模式,就像管理程式碼一樣GitOps。 對於更進階的Kubernetes更是如些,除了container外,多種不同的network,storage配置,都通過yaml檔進行控制。這樣,架構即使複雜,但只少可以測試、重現和管理。還有一個,它比Docker stack要強的是,它某程度上支緩刪除的概念。雖然不完全,但總比完全沒有方便。 這個IoC的概念,可能還未達到一定廣泛地應用的階段,但它的核心在於,基建項目有檢測試差異的功能,自動去因為這個差異去加或減資源。用Programmer的講法,就是系統有Diff的功能,自動多除少補。

Git: 何謂MONO Repository
科技新知
MacauYeah・2024-04-02

之前看了一位git大神的演講,提及一個叫MONO Repository的使用情況。後期找資料之後,才發現到這是一個公司成長後的一個重大的挑戰。 何謂MONO Repository git的傳統,就是為每一個獨立的專案,建立一個新的Repository 中譯:倉庫。這個很直觀,獨立專案,獨立管理。從零開始有很多好處,Repo體積通常會小一點,因為其內的東西都是緊密相關。做更新處理時,維護人員也更清楚自己的影響程度。這種架構方式,就叫Multi Repository。基本上,大家預設也是會走這個模式。 但當公司規模一直變大,多個專案可能不再獨立,各個專案或多或少都有一些關聯性。當任一專案更新,都有機會影響到其他人。如果公司使用Micro Service (微服務),就更有機會提早遇到。每次更新時,要跨專案地找出影響範圍原本就已經不容易,現在每個專案獨立地存放在不同的倉庫中,每個倉庫的更新速度不一樣,想要找到合適的地方、合適的時間點推出更新,更是困難。 所以,就有公司就提出,將所有專案都放在同一個Mono Repository中,方便用工具去檢查更新影響。相比Multi Repository,這樣做還可以保證同一個改動可以發生中同一個Commit中,可以讓跨專案的團隊可以即時合作(強逼修改別人的專案)。但這樣使一定會有很技術問題出現。跨專案團隊不可能每個專案都熟悉,因為不熟悉而引起的副作用一定會有,所以Main Master分支出現有缺陷的機會提高了。亦有人提出,使用Mono架構,還必要使用trunk base分支模式。也就是那些新功能,雖然要創建分支開發,但亦要盡早整合到Main Master中。這才能讓不同的團隊盡早知道問題,並解決問題。 除了開發模式更具挑戰外,Mono架構對git的效能也有很大影響。因為多專案混合,Repository的大小基本都會很大。每個git指令都會變慢,所以必需做一些週期性的cache,讓git graph, git status這樣日常操作變得暢順。同樣地,持續整合發佈需要作出調整。不過這些筆者就不在這邊詳述了,有興趣朋友可以到git 大神的Youtube觀看。 So You Think You Know Git FOSDEM 2024 註:據筆者的資料搜集,很多大公司(Software龍頭)都有使用Mono Repository去做集中管理。只不過筆者不知道如何Fact check,就不在這裏提了。

Steam Deck 也以作為文字創作
科技新知
MacauYeah・2024-01-23

之前筆者就介紹了,如何使用Steam Deck作為程式開發機使用。這可能對於一般讀者來講不太常用,更常用的是做一些文書處理。筆者最近也拿著Steam Deck,也一步步地補充文書處理所缺少的軟件,正式踏入Steam Deck日常之路。 如果你沒有對系統做過任何更改,在桌面模式中,只要打開「Discover」,輸入後逐的軟件的唯一package name,就可以找到相關軟件。 但如果你像筆者之前一樣,加了homebrew等第三方系統,可能所有軟件都需要在terminal中,經過指令sudo flatpak install PACKAGE_NAME。 Chrome 唯一碼 com.google.Chrome 系統預設瀏覽器只有Firefox,不習慣的話可以另外下載Chrome。有了Chrome,至少所有的雲端文書軟件都可以用,想用Google Doc也沒有問題。 中文輸入法:Fcitx5 Rime 唯一碼:org.fcitx.Fcitx5 唯一碼:org.fcitx.Fcitx5.Addon.Rime Steam Deck原本有自帶的輸入法,但只適用於螢幕虛擬鍵盤使用(即使用Steam key X,打開虛擬鍵盤),而實體鍵盤就無法轉輸入法了。這時就需要Linux上的Fcitx5和Rime了。安裝很簡單,之後還要設定一下。 首次安裝後,在啟動器(桌面左下角)搜㝷及啟動 fcitx5,然後在右下角就會見到有個新的鍵盤圖示出現。 按鍵盤圖示,滑鼠右鍵,點選configure,把Rime 加入Fcitx裏面,然後Apply rarr; Close 然後按鍵盤圖示,滑鼠左鍵,應該就會切會成中文輸入法了。這時原本的鍵盤圖示會變成中文輸入法的圖示(或者你經CtrlSpace也可以) 最後對著中文輸入法圖示,再滑鼠右鍵,可以選擇不同的中文輸入法,例如拼音、注意、倉頡等。 有了輸入法,有了瀏覽器,世界已經都是你的了。 下載器 JDownloader 唯一碼:org.jdownloader.JDownloader 它可以用來下載大部份隱藏文件,例如YouTube video audio 。但需要注要,首次下載JDownloader 後,還要經過軟件內部更新,否則不能使用。(就像很多手遊,下了主程式後還要下更新檔) 其他 如果你不是長期有網絡,還需要真離線版文書處理器,還可以看看LibreOffice,WPS Office。但這些都不能保證跟windows office 百分百轉換,可能還是使用雲版的Microsoft office 365還要實際。

冬至,我們會想起什麽?
宗教玄學
熊神進・2023-12-21

#冬至##好運2024# 冬至,又稱冬節、亞歲,二十四節氣之第二十二個節氣、八大天象類節氣之一,與夏至相反。冬至日是北半球一年中白晝最短之日,冬至一般都在陽曆12月21日或12月22日,農曆用冬至所在月來定義十一月。冬至日亦是北半球(北回歸綫以北)一年之中白晝最短,黑夜最長之一日,北極圈呈永夜狀態,南極圈呈極晝狀態。冬至之後陽光直射位置開始向北移動,北半球白晝時數日漸增長,正午太陽高度也日漸升高,日影逐漸縮短。冬至雖然是北半球理論上吸收太陽熱量最少的一段時間,但因爲地球土壤跟海洋釋放熱量會有時間延遲,大部分情况下最冷的時期不是冬至前後,而是發生在冬至之後,比如說大寒。 氣象臺發布了寒冷預警信號,夜晚的街道,寒風凜冽,人迹稀少,路上偶有行人也是脚步匆匆,大家都急著想要回到溫暖的家,天橋下面流浪人士蜷縮著身體用紙皮蓋在身上禦寒。老人拿著幾個ldquo;塔香rdquo;,像往常一樣,來到樹下點燃,注視著ldquo;塔香rdquo;燃燒時升起的烟,老人口中念著ldquo;嗡阿吽hellip;hellip;嗡阿吽hellip;hellip;rdquo;如此簡單的ldquo;烟供rdquo;,却能在寒冷的冬天爲一切有情衆生輸出溫暖,送上飯食。 寒冬來臨,古時農民都會藏糧過冬,現代人也會在冬天選擇進食高熱量的食物,以便身體有足够能量抵禦風寒。但是,在另一個世界的六道衆生,却依然飽受饑餓,如同在世界很多地方,依舊有很多人吃不飽穿不暖。我們在勝似新年的冬至之日,我們在享受溫暖和飽腹的時候,爲另一個世界的六道衆生做一次ldquo;晚間烟供rdquo;:帶上塔香、米、水、餅乾(麵包)、藥材等,在陽臺、在樹下、在河邊等地,用小碟子把乾糧裝起來,把乾糧點燃,把塔香點燃,默念ldquo;嗡阿吽hellip;hellip;嗡阿吽hellip;hellip;rdquo;,冥想撒出去的米水、燃燒的乾糧轉變成米飯食物,六道衆生爭相搶食hellip;hellip;形式不重要,發心是關鍵,古有冬至之日祭祀祖先,今有冬至之日晚間烟供,感恩我們目前擁有的一切,爲六道衆生送上一份慈悲心,讓它們獲得飽腹的糧食,讓自己遠離一切顛倒是非,用大愛讓衆生脫離小愛的痛苦。

Switch / Steam Deck / Mobile 使用體驗大比拼 (二)
手機‧電玩
MacauYeah・2023-12-12

上期,筆者為大家簡介機身重量對於遊戲機身便攜性的影響,今期,繼續從續航性方面去討論對於便攜性的影響。 依然是王者 Mobile Smart Phone 就如同重量一樣,續航性的理論值,依然是Mobile最優勝。單看電池容量,其實無能說手機最優,就算現在的iphone15,電池容量其實也比Switch, Steam Deck要低。能比得上的,可能只有iphone 15 Pro。但若果連同充電的方便性,Mobile是最易邊玩邊充的。一般來講,如果不以全效能去運行遊戲,Mobile是的電量是相當安心的。 但也如同重量一樣,續航性理論值,是Mobile最好,但不是安心長期遊玩的媒介。 一來,Mobile,一般都是用作社交通訊用,它的電量是分享給一整天使用的。一不小心遊戲時間長了,那天晚上可能就沒有電話用。除非大家想隨身攜帶奶媽充電寶,但這是用重量來換取遊戲時間。所以筆者不會把它當作首選。 巨無霸 Steam Deck 空有其名的巨無霸。在電池容量上,它是三者中最大的一款,但因為它對照的遊戲效能,是PS45、XBox OneXS、PC等的大作上面。那些主機大作,對電量是極其大需求的,單憑散熱風篇的聲音,你就知道不秒。一般遊戲的預設畫面品質,就只夠12小時的遊戲。實在想延長,就必需要下調Frame Rate或是畫面品質。 玩消耗戰必選的設備 Switch Switch預設電量不多,但因為畫面其實也不能要求太多,所以它的續航性不低。相比Mobile,Switch就是完完全全的純遊玩設備,也不需要筆者去刻意規劃電量。沒電?關機就好。待機也是單純的待機,不需要什麼定期連上Wifi、GPS,藍牙亦單純地為耳機及手柄使用。想更省電,就待機前就全數關掉就好。 綜合體驗 老實說,看完重量及續航性之後,Steam Deck主打市場明顯不是遊戲掌機,而是一台可以搬走的PC。你可以方便地整台電腦帶走,從自己家到公司,從公司去親友家。它的體型,比主機和Notebook要細,它的售價,也比一台Notebook要便宜。但想拿著玩?可能不會特別開心。 Mobile在重量及續航性綜合考量,其實很有競爭力。不過考量用途問題,否則你也很難安心用Mobile來玩遊戲。 老任的Switch,重量及續航性在初推出市場之際,筆者都不看好。但實用和對比之後,畫面效能和續航性控制得還不錯。

澳門IT教育 | 到底現在缺什麼?
科技新知
MacauYeah・2023-11-10

筆者最近跟朋友聊天,也剛好在進修,談到一些IT知識的傳播問題。進修課的導師,或更廣泛的教育機構,都很積極地宣傳,人必需經常upgrade自己,接受新知識。而不同的導師,就是用不同的方式,去介紹新知識。而最普偏的知識傳播方式,就是人與人之間有溝通。 溝通,好像好實制好有效,對不對? 對。溝通是很易的,不過掌握知識,是很難的。所以阻礙大部份人持續進修的原因,其實是實踐知識的成本,包括時間、空間、金錢。但最近在接觸一些大公司的官方課程後,至少在software上,都有遠端的實驗環境。 Cisco 在多年前就有提供Packer Tracer,可以模擬一些網路情況。雖然不多,但至少可以實作打command。Oracle、SQL Server,現在除了提供免費的開發版本多,還有提供docker版本,希望把本地初次安裝的問題也解決了。Oracle的官方班,還會提供雲端的預安裝版本,你就可以省下本機資源做其他整合測試。寫程式方面,在早期,為推廣Web Frontend開發方面,已經有JSFiddle,很多朋友要試code,要做POC,都可以直接跑起程式看效果。這些,都是推廣IT知識的良好切入方式。 近年多得VM、Docker、VSCode,即使Web Backend,什至是Binary program,也完全可以提供遠端的實驗環境。良心的Github、GitPod,還有提供一定量免費的VM、Docker服務,你想把整個IDE放上Cloud,真的不再用像筆者以前要自己研究的CodeServer,用它提供的就好。不過遠端的環境還是有限制,例如你需要模擬硬件,或是需要很健全的測試環境,例如frontend backend cookie domain rewirte,又或是需要健全的除錯工具,都還是要等等。 好多事,雖然不能馬上上production,但look and feel,是吸引新朋友加入的重要關口。現今澳門IT的教育發展,就是總是留存在實體課,去指定的教室讀者PT教材,使用指定機器。若導師準備充足,就還好,可以順利實習,邊聽講解邊做實驗。頂多就是上課時間、地點不夠便利。但預者有一些老師不備課,食老本,Lab沒有提前預習,做live demo時才錯誤百,修正錯誤的時間成本很高。若要想更多人持續接受新事物,就必需要提供足夠多的可以實操的Lab,而且要可以自行重複。 對於澳門IT教育機構,希望可以提供更多的網上資源,讓學生可以解放地點和機器的限制。對於現在的ITSoftware的從業員,希望大家都可以擁抱DockerLinux Container,這樣才能最低成本地試用新事物。

FF16 - 心得分享
手機‧電玩
MacauYeah・2023-07-14

絕對一讚的唯美 雖然FF16這代大大改變以往的遊戲方法,但作為老牌遊戲,它的角色建模、CG過程始終都保持領先地位。這些元素,大家可以在試玩版中體驗到。試玩版的序章一開始進入遊戲,就馬上可以看到第一場召喚獸大戰,畫面精彩、夠震撼、令人興奮。序章部份還有教學及實戰,控制主角打哥布林及BOSS。其中回避、攻擊模式做得不錯,雖然只是哥布林,但BOSS表現也很有壓場感,讚、很好。 探索部份有點失落 餘下的,就要聊聊機制的部份。雖然劇情很好,也有看大片的感覺,但畢竟是遊戲,要長期遊玩還是要好好考慮難度和探索設計的問題。 在一開始遊玩時,筆者還會不停探索地圖,檢道具,清野怪以及小BOSS。但越玩就越發現,這些都並不必要,什麼覺得有點多餘。 因為隨著遊戲進程,需要買裝備或升級裝備的時候,對材料的消耗量並不多,主線中原本就會得到足夠的材料以及金錢,解支線的剛性需求不大。而且初期很快就會得到兩件紫色防具,而這兩件防具足夠用到中後期。另一方面,武器跟隨主線就可以到武器店建造,不能強化。而後期,單單做武器商的支線以及打某幾隻危險怪就可以制造最高級防具以及武器,跟本用不著到處探索找材料。 支線部分,大部分支線都十分無聊,對劇情沒什麼關係,而且獎勵雞肋,所以並沒有特別的吸引力。除了增加道具使用數量以及裝備圖紙等,其他支線做與不做真是無分別。 所以即使地圖再大再多,筆者也無任何探索欲望。 而技能方面,遊戲合共可以選擇3個召喚獸技能以及6個分支技能。每個召喚獸分支技能升到最高級可以放在不同召喚獸上使用,而且可以隨時重置。這部分就可以自行選擇自已喜愛的技能,設計尚算宜人。 總結 總括來講,今集劇情畫面一流,對得起3A大作的稱號,但其他部分遊戲吸引力就很普通,難以讓玩家流年忘返。 劇情4分、遊戲性2分、畫面5分 對比FF7重制系列的可玩性,此作不推薦。但若然為傳統劇情老玩家,或完全未玩過系列作,想以入門試水溫但怕痛苦的,反而就值得一試。

Vmware下建立Docker Cluster
科技新知
MacauYeah・2023-06-16

之前都使用Multipass作為Proof of Concept,自己做測試用。直正上Production,Network環境就多少有點差異。 假設大家為Application Admin,但無條件處理Vmware層面上的事項,只可以從VM內部install setup application。 安裝Docker script 都來自Docker 官方網,筆者微調了一些auto accept選項。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 假設三台VM已經安裝docker,ip分別為 10.13.31.21, 10.13.31.22, 10.13.31.23。 在其中一台VM上,例如ip 10.13.31.21上, Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 與前述Multipass不同的是,這裏的datapathport要自定義,因為預設的port 4789在Vmware的有特殊同途。 之後部份就跟傳統做法一樣,先取得manager join token, 然後在其他VM上使用該token加入cluster Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 這樣,在swarm上的application,就會自動在10.13.31.21, 10.13.31.22, 10.13.31.23,上遊走。 即使你的app container目前是跑在10.13.31.238080上,但因為swarm mode routing mesh,你經過10.13.31.218080都可以連到該app。 如果你只是做stateless app load balance分流,這樣就足夠了,不用考慮ip fail over。但如果你要做到ip fail over,還要額外設定keepalive virtual ip,這個virtual ip會自動依付到某台活著的VM上,這樣外界才不會連到一個死ip上。又或者額外建一台load balancer,可以偵測到swarm node上那台機還活著,從而達到fail over效果。但這台load balancer也有一些穩定性要求,若然大家只是用一個普通的nginx做load balance,還是會有單點故障問題single point of failure。