潮流特區

焦點文章

CyberCom3合1充電數據線 — 一條線搞掂晒,充電超方便!
科技新知
Lifemagtechie・2025-06-12

而家大家手上嘅電子產品多到數唔清,手機、平板、藍牙耳機、遊戲機……每部機都有自己嘅充電線,仲有啲好舊款用USB,iPhone用Lightning,最新又係Type-C,搞到充電時成日手忙腳亂,尤其去旅行,帶幾多條線都唔夠! 呢條 CyberCom3合1充電數據線,就係為咗解決呢個煩惱而生。佢集合多種接口於一身,無論你係用緊iPhone定Android,甚至其他電子裝置,都可以用一條線搞掂晒,方便又慳位,真係你嘅生活充電好幫手! 一條線,多種接口,無懼設備多 CyberCom3合1充電數據線支援 Micro USB、USB A、Type C 同 Lightning 四大接口,無論你係iPhone、Samsung定係其他品牌,甚至係藍牙耳機、遊戲機,都可以用呢條線充電同傳輸數據。旅行唔使再帶一大堆線,行李又有位可以擺多啲戰利品啦! 快充快傳,效率up up! • 支援QC快充技術,最高60W輸出,手機、平板、智能手錶都可以超快充滿,唔使等成日。 • 傳輸速度高達480Mbps,無論係工作文件定係娛樂影片,一link就傳,節省你寶貴時間。
 耐用又防纏繞,攜帶超方便 • 採用彈性TPE物料,線身唔易打結,收納方便,唔怕亂晒。 • 線材耐用又有彈性,日常用或者出街旅行都好啱用。
 產品小百科 • 1米長度,無論係屋企、公司定旅行都啱用。 • 建議零售價 $99,依家優惠價$79就可以帶走。
 由此開始,充電更快更簡單! 設計貼心,性能強勁,係你工作同生活嘅好拍擋。無論係手機、平板、遊戲機定藍牙耳機,呢條線都幫你搞掂晒充電同數據傳輸,令你嘅數碼生活更輕鬆自在。了解CyberCom3合1充電數據線嘅詳情同優惠,幫你打造更智能、更方便嘅充電新體驗!購買網站: www.cyberportcom.com查詢電郵: info@cyberportcom.com

最新文章

求職遇騙案公開信(上)
宗教玄學
熊神進・2025-12-20

#讀者來信 老師,我最近遇到一件很糟糕的事情,因爲找工作被電信詐騙了。騙子冒充一家上市公司發郵件到我的郵箱通知我面試,由于找工作,我在招聘網站投遞了很多公司,也有不少獵頭找過我要簡歷,被騙子冒充的這家上市公司也是我的確關注過的公司,現在想想,在投遞簡歷和接觸獵頭的過程中,其實我的個人資料已經完全公開了,這其中如果有騙子冒充獵頭也完全有可能,而且騙子郵件當中通知我面試的崗位也和我的簡歷非常匹配,像是量身定制一樣。 騙子的郵件發給我說要我面試,流程是先通過綫上測試之後再約綫下面試,因爲很多公司在綫下面試前都要求先做綫上測試,所以我也沒有懷疑。後面,騙子就要求在手機上下載某個APP做測試。第一天測試時,騙子聲稱是與數據測試有關,把我拉進了一個群聊,群裏看上去是有很多人一起做測試,群主發出一個消息指令,讓做測試的人按照指令把一些很簡單的內容像做選擇題一樣在一個APP頁面進行回答,第一天的測試就是這樣的10道題,測試結束後說這個面試的綫上測試有工資120元,讓給一個收款賬戶,我給出了賬戶,果然很快收到120元。然後騙子說,第二天還有一次測試,要求要早上9點準時參加。 第二天,我準時上綫,很快開始了所謂的測試,騙子通知說這一次的測試內容是關于數據分析,騙子還主動說雖然我申請的崗位與數據分析無關,但也一起做一下這個數據分析的測試。我雖然已經開始有點疑惑,但一想到這是一家有名的上市公司的面試機會,又决定還是跟著做測試了。這一次做了幾次類似前一天的選擇題之後,騙子開始在群裏給出網址鏈接,要群裏的人點擊鏈接打開,我也打開了,是某個知名的慈善捐贈頁面,騙子要求在這個頁面選擇其中一項捐贈項目付款,而且說捐贈的額度會之後返還給做測試的人。其實這個時候我又一次開始疑惑,因爲很多廣告都宣傳過面試過程中一旦涉及收取錢財就一定是詐騙,但還是因爲這個被冒充的公司很有名,我想到如果我提出懷疑他們的問題,這個面試機會恐怕就會沒有了,而且這個時候要支付的金額是100元、200元這樣,我想即使有損失也不是什麽問題,所以,又按照騙子的指令在兩個知名慈善頁面捐贈了共計300元。操作完這兩筆捐贈之後,騙子直接在我的賬戶裏轉帳了幾百元,意思是這只是做數據測試,我用于測試支付的款項,他們會再退回給我。我想我是因爲騙子的這一步操作,再一次打消了懷疑的想法,掉進騙子的陷阱。 後面騙子在聊天群裏發出的指令就是讓群裏的人自己選擇他們給出的圖片中的金額,然後掃描他們給出的二維碼支付,這一步現在回想起來真的是超級愚蠢,弱智,我竟然照做了。騙子營造了一種很多人都在聊天群裏競爭面試機會的氛圍,每一次的指令都有完成時間的限制,我也跟著打了款。隨著轉帳次數越來越多,銀行卡的支付被銀行限制不能使用了,騙子就提出還沒完成的額度要在某電商平臺購買某種他們指定的游戲幣。這個時候我已經完全掉進騙子的陷阱,一方面想著騙子會把我支付的金額加上收益一起轉回給我,而且,每一次的轉帳指令騙子都會發一張看上去及其正式、蓋有企業公章的數據安全保證函,再一次想到這是一家我想去的公司,這個測試我還是跟著做了,就這樣陸續轉帳了1萬多元。在我完成了自己的測試額度之後,到了騙子應該退回給我支付的款項時,騙子說因爲我的某個掃碼過程錯誤導致整個測試數據出錯不能給我退款,要繼續做測試再次轉帳進行數據修復後才能退款,這一次,騙子要轉帳4萬元。我不知道那個聊天群裏有多少人像我一樣是待宰的水魚,有多少人是騙子僞裝的面試候選人,聊天群裏有人提出疑問,問這個測試的高收益靠不靠譜,真能拿到嗎?有人就會回復說他都做很多次了,沒問題。有人說她沒出錯爲什麽也要重新轉帳重新測試,言語中差點就要駡測試出錯的我,害整個群裏的人都要重新測試。這個時候我才徹底放棄幻想,明白過來這不是名企的綫上面試測試,自己可能遇到詐騙了。 之後我就立即報警了,在某電商平臺付的款被凍結在電商平臺,銀行轉帳的款,目前只能查到可能是兩台POS機。警察說這類案件調查取證都很難,即使已經立案,最後能追回款項的可能性也很小,最後可能還是要我自己承擔所有損失。今天我把自己的這件醜事公開,希望能給其他人一個提醒吧,現在的詐騙案件太多太多了,大家一定要小心。 老師的回復請看求職遇騙案公開信(中)

Ubuntu 的簡易日常更新
科技新知
MacauYeah・2025-12-17

早陣子跟新認識的朋友聊天,聽到他們因為要轉伺服器平台,煩惱如何做作業系統層面的定期更新。筆者亦都分享一下自己是如何做 Ubuntu OS 層面的定期維護。 沒錢,就用最原始的方式解決 因為Ubuntu也算是常見的linux品牌,所以基本有有商用軟件可以偵測OS的狀態,並針對它推送更新。不過如果你像筆者一樣,是個貧窮的革命家,那就只有土炮一點自己做鏡像點及做測試。 建立一個 ubuntu 的 deb 包 mirror。手動單次地用步 mirror,確保自己其他 server 同一個時間段都只會取得同一個更新。 停了 ubuntu 的 kernal 自動更新。不然的話,mirror 有更新,ubuntu 亦會偷偷地自動安裝了新的kernal,只是等待你的重啟。 使用一個測試機,先經 mirror 更新到最新的狀態。運行一段日子後,其他機再陸續更新。如果你投産環境有多於一種配置,就考慮要多個不同的測試機。更新指令直接做成 script,方便在其他機器中重複。 輪流 ssh 登入各台機,執行相同的更新指令。更新指令經 git 同步到其他機器。為確保不受 ssh 斷線的風除,必要時還需加入 tmux 。 多機器的煩惱 上述的做法雖然可行,不過當你有十台以上的機器,重複做 ssh, tmux, git checkout, script 互動,也是很累人。考慮一次性地全自動化執行,還是有必要的。筆者對上述的第四步驟,作出一些取捨,以確保更新速度足夠快,可以順暢地執行。 什麼是必需要更新的? 筆者觀察到,在 container 技術出現後,其實很多時安裝應用都不會直接在 OS 層安裝 deb / rpm 包,都是直接經 docker image 去做。所以OS層面,或者很多服務都不會被啟動。筆者亦發現,至少在ubuntu下,只更新kernel,對比無腦全更新所有 deb 包,會快很多很多。 如果可以,我們只更新kernel,再加對應的 container runtime,是不是更新對令相對地穩定,而且可以經外部統一管理。也就是不用在每一台機中進行 tmux + git checkout ,全數在外部推送 ssh 指令? 筆者就用 multipass VM + ssh key,表達一下執行概念。 ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get autoremove -y ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get update ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- apt-get install -y linux-generic linux-headers-generic linux-image-generic ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 -- reboot 上述最大的假設,是第一、三步,更新 kernel 時不會因為網絡問題導致 ssh 斷線,因為它們都是系統級別的改寫,中斷後並不能確保可以重來。第二步就很安全,隨時重來也沒有問題。 這樣,我們就可以在任一台管理機,經過一個 shell script for loop,更新所有其他機器。 如果我們對於網絡還是有些疑慮,我們也可以試用一次性排程式的方式去做。 ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ubuntu@10.115.189.200 echo '/your/script/location' | at 08:00 PM 17.12.2025 這樣的好處是,我們可以連 tmux 的開啟也省略,git checkout 也可以經固定的 script 執行(只是很煩鎖)。但這也會有壞處,就是看不到執行的情況,只能事後檢查系統狀態,是否已更新過。 當然前述 ssh key 的方法也可以加入 git checkout 更加深化不同的更新 script,但這又會增大斷線可能。ssh key 還是以快速完成指令更實際。 註:因為網安原因,筆者把上述 script 中的 S U D O 關鍵字去掉,這樣 blog 才能發出。

善心婦人江邊「放生白米」 佛教協會:折損福報
宗教玄學
熊神進・2025-12-16

近日,遼寧丹東市振安區江邊出現離奇一幕,四五名大媽將約10幾袋白米倒入江中,還雙手合十跪拜念誦佛號,聲稱這是在「放生白米」。此舉引發社會廣泛批評,網友們紛紛說她們不僅浪費糧食,更污染環境。中國佛教協會也出言回應,就這種行爲不符合佛教教義,違背惜福理念。類似的「放生」行爲在各地時有所聞,「放生」猫咪、礦泉水等事件層出不窮。 讀者向我查詢“放生白米”給河中魚蝦吃是不是另類布施。從報道和佛教協會的回應來看,當事人可能是出于宗教祈願或還願的目的,筆者認爲她有需要瞭解“放生”的意義。將白米倒入江中,既無法救助生命,又浪費糧食、污染水體,本質上是一種形式化、甚至迷信化的行爲,背離了佛教倡導的“惜物惜福”與“護生”的本意。 在佛教傳統中,放生本意是出于對生命的慈悲,救助瀕危或受苦的衆生(如魚類、鳥類等),幫助它們重獲自由,同時培養人的平等心與仁愛。真正的放生應兼顧三點: 尊重生命——以生物福祉爲前提; 符合科學——不破壞生態平衡(如不放生外來物種); 注重實效——避免形式化,甚至催生“放生産業鏈”(如提前捕撈再售賣放生)。 現實中“奇葩放生”現象愈來愈多,除了放生白米、礦泉水,近年來各地還出現過不少引人爭議的案例: 放生外來物種:如巴西龜、清道夫魚、鰐雀鱔等,嚴重破壞本地生態; 放生環境不適生物:如將陸龜拋入水中、把淡水魚倒進大海,導致生物迅速死亡; “商業放生”産業鏈:有人專門捕捉野生動物賣給放生者,形成“捕捉—售賣—放生—再捕捉”的惡性循環; 放生毒蛇、老鼠等:威脅社區安全,引發公共危害。 爲何會出現這類行爲? 對宗教教義的誤解:部分人將“放生”簡單等同于“積累功德”,追求形式而忽略內涵; 功利化心態:希望通過放生換取健康、財運等“回報”,忽視了慈悲心的培養; 缺乏科學常識:不瞭解生態保護與生物習性的基本知識; 盲從與儀式化:受民間習俗或非正規宗教引導,將放生异化爲一種“祈福儀式”。 反思:如何正確看待“放生”? 中國佛教協會的回應明確指出了方向:放生需如理如法,以護生、惜物爲本。與其執著于形式,不如將慈悲心融入日常生活: 保護環境、節約資源本身即是“無畏施”; 參與動物保護、支持可持續生態項目; 通過教育倡導科學放生觀念,抵制功利化放生。 真正的福報,來自于對生命的尊重與對世界的善意,而非機械式的儀式。希望公衆在行善時,能多一份理性與智慧,讓傳統文化習俗與現代文明、自然法則和諧相融。近15年很多城鄉都參與烟供下施給十方衆生,如果時間允許你們亦可以在戶外做一盤烟供香給靈嬰、無主孤魂。

北京毒狗案引發的多維思考
宗教玄學
熊神進・2025-12-14

早二天跟民間一些寵物協會義工聊天,大家提起一宗火熱的「北京毒狗案」,當事人李女士經過幾年的訴訟終于成功爲一群狗兒討個公平,法院亦做了一個首例判决,投毒人張某某構成「投放危害物質罪」,判處有期徒刑4年,判决後很多愛護動物人士也釋然。 中國北京朝陽2022年發生一起駭人毒狗案,有人在社區惡意投毒造成11只寵物犬中毒,其中9只死亡。其中一位李姓女子的13歲寵物犬Papi也遭毒死,李女爲替愛犬討回公道,辭職自學法律在社群媒體發聲,聯合其他受害犬只主人提起訴訟,案件纏訟1000多天,終于在本月11日迎來一審判决,投毒的張姓男子被判處4年有期徒刑,張男當庭宣稱要提起上訴。 北京毒狗案的判决如同一顆投入平靜水面的石子,在動物保護領域激起了層層漣漪。當張姓被告因投放危險物質導致九隻犬只死亡而被判處四年監禁,這不僅是內地首例成功立案判刑的毒狗案,更折射出動物保護在法律天平上的微妙位移。以此爲鏡,反觀澳門《動物保護法》,我們不禁追問:這部法律是否足以構築一個對所有生命都心懷敬畏的倫理與法制空間? 澳門自2016年頒布《動物保護法》以來,標志著動物福利邁入法制化軌道。法律明確禁止虐待、遺弃動物,幷對飼主的責任作出規範,然而,其“足够性”却值得深思。廣度上,法律保護重心明顯向猫、狗等“伴侶動物”傾斜,對蛇、陸龜、小白鼠等“另類寵物”或實驗動物的專門保護條款則模糊乃至缺失。深度上,相比北京案例中依托《刑法》“投放危險物質罪”的嚴懲(四年監禁),澳門對殘酷對待動物行爲的懲處力度與社會危害性的匹配度,仍有提升空間。理念上,現行法律更像一種“管理法”,側重于人與特定動物關係的秩序維護,而非奠基于動物內在價值的“權利法”。這種局限,恰恰源于我們對“動物保護”定義與精神的理解尚未完全貫通。 何爲動物保護的真義?它不應止于對個別物種的垂憐,而應是對“生命共同體”的普遍尊重。其精神內核,至少蘊含三層維度:一是共情與仁慈,承認動物感知苦樂的能力,從而約束施加不必要的痛苦;二是生態敬畏,視動物爲生態鏈環中不可割裂的一環,關乎整體生態健康;三是文明標尺,一個社會對待最無言生靈的態度,衡量著其文明的高度與溫度的深度。在此意義上,動物保護的精神,旨在超越功利計算,培育一種對所有生命形式的基本關懷。 那麽,爲何法律與公衆視域常聚焦于猫狗?這背後是情感親疏、文化建構與實用價值的交織。猫狗作爲千年伴侶動物,與人類建立了深厚的情感紐帶,其“擬人化”特質易激發强烈的保護欲。文化叙事中,它們常被賦予忠誠、陪伴的象徵,而蛇、鼠等動物則多與負面隱喻相連。更現實的是,猫狗的保護運動往往擁有更龐大的社群支持與更響亮的話語權。然而,這種“偏愛”若固化爲法律的不公,則違背了保護精神的本源——生命尊嚴的平等考量。當法律對一隻受虐犬只伸出援手,却對同樣能感知痛苦的實驗鼠或作爲寵物的陸龜的苦難保持沉默,保護便陷入了倫理的狹隘。 北京毒狗案中,李女士們鍥而不捨的追索,不僅是爲伴侶討回公道,更是以公民行動叩問:法律能否成爲所有動物受害時的倚靠?澳門法律乃至更廣泛區域的立法,可從中獲得啓示:保護範圍應逐步擴展,基于科學認知(如動物感知能力)而非人類好惡來界定保護對象,爲“另類動物”提供底綫保障。法律責任需更嚴密,適當提升對惡性虐待行爲的懲戒力度,幷探索將嚴重虐待動物行爲納入更具威懾力的法律框架。公衆參與渠道應拓寬,鼓勵如李女士般的公民通過法律途徑維權,形成監督合力。教育倡導需先行,通過教育扭轉對某些物種的偏見,培養“衆生平等”的生態倫理觀。 歸根結底,動物保護法的演進,是一場從“偏愛”走向“普世”,從“管理”邁向“尊重”的文明跋涉。澳門的法律是一座重要的基石,但非終點。理想的圖景應是,法律不僅能對“Papi”的悲劇給予正義的迴響,也能爲一隻陸龜的安寧、一條蛇的生存,乃至實驗室中小白鼠的福利,投去關切的目光。當保護不再因物種而弃,當仁慈的邊界擴展至所有能感知苦樂的生靈,我們守護的,不僅是動物,更是人性中那份珍貴的悲憫與對和諧共生世界的承諾。這或許漫長,但每一份如北京案件中那般堅韌的努力,都在爲這條路鋪下一塊堅實的磚石。

從清史看玄學的玄
宗教玄學
熊神進・2025-12-08

#科學的盡頭就是玄學 早幾天在中國臺灣教學,講題是“天示清朝的幾宗奧秘」,今天有空整理一下,把教學內容跟讀者們共享。 一、史實真僞判定(玄學分析的前提)​ 核心史實均爲信史:​ 清朝建國始祖努爾哈赤以撫順新賓爲基地崛起(清永陵坐落于此,爲清朝龍脉發源地),溥儀 1950 年被關押于撫順戰犯管理所,地點完全對應;​ 開國時攝政王多爾袞輔佐順治(孤兒寡母爲孝莊太后與順治),亡國時攝政王載灃輔佐宣統(孤兒寡母爲隆裕太后與溥儀),權力結構完全一致;​ 首位皇后孝慈高皇后(葉赫那拉・孟古,皇太極生母,追封皇后),末位皇后孝定景皇后(葉赫那拉・靜芬,隆裕太后,光緒皇后),姓氏均爲葉赫那拉氏;​ 洪承疇(福建南安人)爲順治入關核心謀士,鄭孝胥(福建閩侯人)爲溥儀僞滿時期核心輔佐者,二人籍貫與 “入關 / 出山海關” 的動綫形成鏡像;​ 開國勁敵袁崇煥、孫承宗爲明末抗清名將,亡國勁敵袁世凱(逼宮退位)、孫中山(領導辛亥革命),姓名關鍵字 “袁”“孫” 完全重合。​ 非刻意附會的關鍵:這些對應跨越 268 年(1644-1912),涉及地域、血緣、姓名、權力結構等多重維度,且均有獨立史料佐證,排除 “事後編造” 可能,具備玄學分析的客觀基礎。​ 二、玄學機理解析 (一)風水:龍脉閉環與 “始止同源” 的能量守恒​ 龍脉發源地的 “因果閉環”:清永陵(撫順新賓)爲清朝龍脉正穴,堪輿學稱其 “左青龍(龍頭山)、右白虎(烟囪山)、前朱雀(蘇子河玉帶圍腰)、後玄武(啓運山來龍)”,四神俱備,爲 “天下第一福地”。努爾哈赤發家于此,是 “借龍脉之氣興邦”;溥儀關押于此,是 “龍脉之氣耗盡,始點即終點”,形成風水能量的閉環循環 —— 龍脉的 “生旺之氣” 從撫順啓動,最終在此消散,契合玄學 “氣脉周流不息,盛極而衰,衰極而返” 的規律。​ 山海關的 “陰陽門戶” 象徵:山海關爲中原與關外的咽喉,屬 “陰陽交界之地”。順治進關(陽進),是 “陽氣入宅,王朝肇始”;溥儀出關(陰出),是 “陰氣外泄,國運終結”。洪承疇、鄭孝胥均爲福建人,福建地處東南沿海,屬 “巽位”(易經八卦中巽爲風,主流動、變遷),兩人分別作爲 “進關”“出關” 的關鍵謀士,暗合 “巽風引動國運流轉” 的風水邏輯,印證 “地域氣場與國運綁定” 的玄學機理。​ (二)易經:“否泰交替” 與 “循環往復” 的節律​ 歷史循環論的易經內核:《周易・繫辭》言 “窮則變,變則通,通則久”,王朝興衰本質是 “否卦”(衰敗)與 “泰卦”(興盛)的交替。清朝開國與亡國的 “孤兒寡母 + 攝政王” 結構,對應易經 “家人卦”(風火家人,主家庭倫理與權力傳承)的正反象 —— 開國時 “家人和順,借勢興邦”(泰卦之象),亡國時 “家人失序,借勢亡邦”(否卦之象),形成 “同構反效” 的循環,契合鄒衍 “五德終始說” 中 “王朝更替必循循環節律” 的理論。​ 姓名關鍵字的 “象數對應”:易經認爲 “名者,命也”,姓名的象數與國運相關。開國勁敵 “袁(袁崇煥)、孫(孫承宗)”,亡國勁敵 “袁(袁世凱)、孫(孫中山)”,“袁” 字從 “衣” 從 “口”,象數爲 “坤”(坤爲地,主承載、終結);“孫” 字從 “子” 從 “小”,象數爲 “坎”(坎爲水,主流動、變革)。兩次 “袁孫爲敵”,暗合 “坤坎相激” 的象數組合 —— 開國時 “坤坎相激,破敵興邦”,亡國時 “坤坎相激,破邦亡國”,印證易經 “象數不變,作用方向隨國運反轉” 的規律。​ (三)推背圖:“天運定數” 與 “預言印證” 的隱喻​ 清朝興衰的圖讖暗示:《推背圖》第三十三象(網傳對應清朝),圖爲 “一船十人,旌旗八面”,“十人” 暗合清朝十位皇帝,“八面旗” 對應八旗制度,預示清朝 “始于八旗,終于十帝” 的定數。開國與亡國的輪回現象,是對這一圖讖的具象印證 ——“十人船” 的航行軌迹是 “從撫順出發,經山海關入中原,最終返回撫順”,暗合 “天運預設的輪回路徑”。 ​ 葉赫那拉氏的 “因果閉環”:葉赫那拉氏作爲 “首尾皇后”,暗合《推背圖》“女禍”(非貶義,指女性在國運中的關鍵作用)的隱喻。孝慈高皇后(孟古)生下皇太極,是 “葉赫那拉氏興清之始”;孝定景皇后(隆裕)簽署退位詔書,是 “葉赫那拉氏亡清之終”,形成 “一族興清,一族亡清” 的因果閉環,契合玄學 “因果循環,報應不爽” 的核心思想。需注意,推背圖的預言幷非 “精准預言”,而是對 “天運節律” 的隱喻性表達,清朝的輪回現象是 “天運節律的自然呈現”,而非刻意迎合預言。​ (四) 個人愚見 清朝開國亡國的 “完美輪回”,幷非偶然巧合,而是風水 “氣脉閉環”、易經 “循環節律”、推背圖 “天運定數” 三重玄學機理的叠加顯現:​ 從現象上看,是歷史事件的偶然對應;​ 從機理上看,是 “國運興替必循自然節律” 的必然 —— 龍脉的始止同源、易經的象數對應、天運的因果閉環,共同構建了這一 “輪回奇觀”。​ 玄學視角的核心幷非 “宿命論”,而是認爲 “王朝興衰既有人力可爲,亦有天運可循”,清朝的輪回現象正是 “人力與天運共振” 的結果:努爾哈赤借龍脉之氣興邦,是 “順天應人”;溥儀失德失政亡邦,是 “逆天違時”,最終形成 “始點即終點” 的輪回,印證玄學 “道法自然,周行不殆” 的終極規律。 筆者鑽研風水易經40多年,是巧合表像還是玄學玄機,這就交由讀者審判。​

你開始寫 Spring Boot 測試案例了嗎?
科技新知
MacauYeah・2025-11-29

雖然筆者過往做 spring boot framework 教學中,都有滲入一些測試用例。筆者也曾經困惑了很長一段時間,所以就獨立開一個主題,聊一下筆者在實務上對spring boot test 的理解。 測試案例究竟測試什麼? 測試用例 (test case) 是確保你的程式碼正確性與穩定性的重要步驟,但在 framework 下,並不是所有功能都很容易寫成測試。所以在討論 framework 測試之前,釐清測試的本質。 function input - business logic - function output 這意味著我們輸入某些資料(input),然後經過業務邏輯(business logic)的處理,最後產生結果輸出(output)。 我們的測試目標,其實就是確保業務邏輯正確。而我們的手段就是經檢查概定的輸入資料,核對輸出結果。 那麼只要我們可以生成輸入資料,就一定可以檢查輸出結果了吧?其實不是的,因為實務上的輸入和輸出沒有這麼簡單。筆者常接觸到的輸入輸出如下 輸入 function 輸入參數 系統狀態資料,例如:資料庫狀態、外部API結果。 輸出 function 輸出參數 寫入系統(影響到)的資料,例如:資料庫狀態、使用外部API時的輸入參數。 總之就是考慮了狀態機 (state machine) 的問題,每個狀態+外部輸入都是一個測試用例,然後核對狀態機去了下一個什麼狀態。 言下之意,我們就是暴力地生成輸入參數和模擬狀態資料,道理上就是可以進行測試。 Spring boot web framework 中,我們又會測試什麼? function input - business logic - function output在Spring boot web就變成如下 controller request - business logic - controller response在 Spring Boot test 中,我們可以用模擬的 MVC (MockMvc) 測試來驗證 controller 的行為。不過,其實進入 controller 前經過很多系統轉換,而這些道理上跟Framework的技術大相關,與業務邏輯小相關。所以為免折磨自己,可以將業務邏輯單獨封裝成服務(service)。之後直接測試服務 ,易寫也易讀。 controller request - service input - business logic - service output - controller response道理上 controller 能做的業務邏輯,服務 (service) 都可以無腦重現。這樣還可以重用服務,減少測試的數量。 如何實現輸入? 直接 new Object。大部份的情況下,因為業務是自己編寫的,應該都可以直接 new 出來。 經 json 檔讀入。如果輸入的參數量太多,逐個經 java new 是很耗時的,我們可以經 json 反序列化變成 Object。但這亦只限於自己可以操作/改寫的類。 Mockito 模擬那些無法簡易經 new 或 json 反序列化的 Object。例如:spring security authentication object 我們在使用時,其實只看到 interface。我們難似自己實現一個可以反序列化的類,那麼我們可以使用 Mockito 來模擬這些資料。一些外部API的結果,我們也可以用使 Mockito 來模擬。 什麼情況下不進行測試? 有些情況下,我們可能選擇不對某些功能進行測試,原因可能包括對功能的了解不足或是單純的懶惰。以下是一些例子: 僅進行配置的Function:如果你的 Function 只是在 Framework 中填寫配置,而且你並不太了解它的運作原理,可能就不需要進行測試了。例如,Spring boot web 中,需要大家配置一個SecurityFilterChain Object,它要求大家將 HttpSecurity 轉換為 SecurityFilterChain 。因為輸入的 HttpSecurity 是系統固定的參數,我們亦沒有檢查它的狀態。這種情況下,它的輸入及輸出,其實我們都沒有真正理解。我們硬測試的話,測試功能可能只流於表面。若我們真的要做測試,也是經過MockMvc進行端到端測試(end-to-end testing),測試它在事後的影響範圍。 單純的框架功能:例如資料庫的儲存庫介面(repository interface),雖然是在框架下生成的,對於自己手動調整的部份功能,筆者通常亦不會進行單獨測試,通常都會搭配業務邏輯一起進行。它可以使用 Mockito 進行模擬測試,或用測試環境的真實資料庫進行測試。 面對的挑戰 總括來講,筆者盡可能地把測試用例限定在業務邏輯中,就可以大大地降低寫測試的技術難度。但筆者還是有些問題並未完美解決。 測試用例的數量可能很多,因此共用與維護變得相當困難。逐個用例獨立編寫輸入也是很累的。對於 Mockito 的使用,筆者還是可免則免。因為要逐個功能模擬,編寫量就指數提高,這亦難似配合外部變化。一般來說,能優先使用測試環境或者 Docker 來模擬環境的,就盡量用。 離線開發、離線測試。系統依懶的外部功能越多,想做單機開發的難度就越高。即使前述有 Docker 測試,對於持續整合(CI)來講也是有一定難度。那麼這時,Mockito 就是一個可取的選擇。但這又回到編寫量及難以偵測外部變化問題。 希望這篇文章能幫助你更好地理解測試案例的編寫方向,並在Spring boot web開發中加入你自己的測試!

重入膠坑12-快靚正
手機‧電玩
MacauYeah・2025-11-27

筆者今年度,在高達模型制作上,一直針對在分享非噴塗的制作技巧之中。這主要是因為筆塗或素組所需的工具比較單純,而且筆塗使用水性顔料之下,更不會有異味出現,可以在家中安心操作。之前亦提過素組打磨對於對於水口覆蓋的極限問題,亦一度讓筆者認為[純素組打磨]是貼錢買難受,因為時間花出去,但效果不盡人意,還不算直剪不打磨。 經過一段時間的快速組合後(其實是筆者山積太多,所以快速清山積),筆者盡可能跳過那些效果不佳的步驟,保留一些更差異性明顯的工敍,嘗試做出人工花費少,但自己還能接受的作品。 不做取件表-但留意分部制作 雖然做取件表可以讓自己未來可以更專心剪件、規劃。但除非取件表是他人預制好的,或是自己要重複做同一款高達,不然自己弄,是很耗時間的。如果各位制作的只是HG的量,其實分部位直接剪,也很容易做到減少換版的次數,所以取件表可以不做。 不全部刻線-滲線後再執漏 不刻線,直接滲線,效果一定不完美的。但全部刻線,成本高,容錯也低。筆者經過三隻模的測試,似乎不刻線情況下,可以通過拭擦方式,取得7成的水性顔料滲線成功率。剩下的,就乖乖重新刻線再滲線。整體省了時間,不過就是要接受某些線修可以粗幼不等。這樣做的還有另一個大好處,就是減少刻線的出錯。 點綴式的膠貼或水貼 如果大家制作的作品,原本就有送貼紙(例如RG),一定要記得貼。如果沒有,也可參考市場上有沒有第三方貼紙。如果你買的是HG,雖然第三方水貼只是給RG用,但其實你也可以借來用於HG上。肩位,裙夾位,盾位,腳位,也是點綴的好地方。 薄刃剪二刀流 如果想不打磨,二刀流手法是必不可少的。只使用足夠鋒利的剪鉗,直接使用二刀流也可以大大地減少水口發白的情況。第一刀要保留足夠多的流通,避免拉扯。第二刀貼著水口再剪時,就要足夠慢,減少形變而産生的發白。二刀流可以變為多刀流,看大家需要。神之手也就很推薦的,但始終也是消耗品,如果有價錢上的考慮,可以投資低價位的薄刃剪。水口大一點,小一點,差異不太大,只要不發白,薄刃剪的效果就發揮得好了。 UC系列和最新的HGCE系列 不想補色的話,最好考慮元組的系列,因為結構簡單,所以原本分色做得還不錯。而最近的HGCE,分件也越做越多,想偷懶也是可以的。不過就2018之前推出的非元祖HG,大家就真的慎入,補色工作跑不掉。

docker swarm 回到最基礎的群集組建
科技新知
MacauYeah・2025-11-21

雖然筆者都知道,全世界在講 k8s ,全世界都叫筆者放棄 docker swarm,但無獨有偶,docker swarm 還是有使用的價值。 你只有單個服務在運行,只想要做冗餘或分流。快速地用 docker swarm 做最小可行性産品,推出市場。 傳統的HA功能做到了,但你沒有中央匯整日誌的功能。而你也不想把事情攪得太複雜,使用docker swarm 可以讓你在任何一個管理節點上查看不同 container 的日誌。 你的客戶只提供VM,他可能有自己的k8s平台,但不讓你使用。自建一套docker swarm ,先入場,事後擴展再要求客戶提供k8s,對於客戶來講,先證明系統是有價值的,在金錢成本上或能力上,一定是件比較可以接受的事。 筆者之前介紹過一系列的 docker swarm 教學,但生成群集的部份一直沒有做介紹。因為實在太簡單,所以一直都沒有收納在教學內容當中。但現在考慮其完整性,以及為了讓大家感受一下它有多簡單,所以重新寫了組建群集的步驟。 組成群集 以前各家不同的軟件,想要起一個群集,要左攪右攪,又要重啟。而docker swarm真的很簡單,只要各機中有 docker ,再在各機中順序打指令就好。 node 1 使用docker swarm init docker swarm join-token manager # node 1 > docker swarm init > docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxx xxx.xxx.xxx.xxx:2377 其餘的管理員節點就根據上述的提示,使用 docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxx xxx.xxx.xxx.xxx:2377 就好。只要總數的管理員節點有奇數個就可以了(包括當初的node 1)。即是1、3、5等都可以。這是因為在容錯的情況下,必需由管理節點作出多數決,才能容易地知道判斷是哪些節點出現問題。 如果不為容錯,只想增加可工作的機器,那麼我們只需要增加工作節點。我們可以在任何管理員節點生成docker swarm join-token worker > docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-yyyyyyyyyyyyyyyyyyyyyyy yyy.yyy.yyy.yyy:2377 若想要檢查各個節點的工作狀態,在管理員節點上執行 docker node ls 看到了。 docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION xxxxxxxxxxxxxxxxxxxxxxxxx * node1hostname Ready Active Leader 28.5.1 yyyyyyyyyyyyyyyyyyyyyyyyy * node2hostname Ready Active Reachable 28.5.1 全部教學請見 https://macauyeah.github.io/AProgrammerPrepares/VMDockerNotes/SwarmModeCommandCN.html

codeserver 在團隊間開箱即用就是最大的好處
科技新知
MacauYeah・2025-11-20

之前我們就有探討過 vs code 與 codeserver 的差別,初步結論就是 vs code 的 debug 功能比較完善。如果大家懂得 devcontainer 的使用形式,使用 vs code 應該可以得到最大的效益。就在筆者想跳過 codeserver 的時候,又有新朋友對 codeserver 有興趣。最主要的原因還是它可以一體化預安裝所有事,若大家使用筆者的image,有 docker 、有瀏覽器就已經可以開箱即用。 所以這裏,筆者也重新翻新了筆者版本的使用說明。有興趣使用的朋友可以直接跟 github readme 試用。 https://github.com/wingzero0/codeserverUbuntu 本次翻新,主要加入了常見問題。這些問題部份與 docker 的基本限制有關、部份則是筆者的 env 所限。 常見問題 FAQ 運行 node 應用時很慢 在 windows / mac 下,它們的 docker 是經過 VM 建出來的。若使用 bind mount ,其實是經過 VM 層面抄資料夾。普通 java 開發沒有大問題,但如果遇上 node_module ,就會出現極大效能問題。 node_module 最好還是放在 container 內的 mounted volume 中。本 project 預設的 docker-compose.yaml 就已經有 /home/ubuntu/sourcecode mounted volume ,有需要可以放在其內直接使用。 linux 則沒有這個問題,因為 docker 只是 linux 的一個 process ,可以直接連到資料夾。 mounted volume 權限問題 如果大家自定義 mounted volume ,注意 docker 預設會是 root 權限,本系統使用 local user ubuntu,有需要改為它。 chown -R 'ubuntu:ubuntu' YOUR_TARGE_FOLDER 若然code-server異常,需要重啟。在 host 可以使用 docker command,在 container 中,可能殺掉所有 process # at host, outside of code-server docker compose -f docker-compose.local.yaml stop docker compose -f docker-compose.local.yaml start # at container, inside of code-server killall5 -9 上/下載 上載檔案:可以經過拖拉的方式,把桌面的檔案拖進 code-server 的 Explorer 區域。 下載檔案:可以點選 code-server Explorer區域內的檔案,按滑鼠右鍵,選 Download 。