搜尋

搜尋結果

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 varsnapmultipasscommondatamultipassdsshkeysid_rsa ubuntu@10.115.189.200 aptget autoremove y ssh i varsnapmultipasscommondatamultipassdsshkeysid_rsa ubuntu@10.115.189.200 aptget update ssh i varsnapmultipasscommondatamultipassdsshkeysid_rsa ubuntu@10.115.189.200 aptget install y linuxgeneric linuxheadersgeneric linuximagegeneric ssh i varsnapmultipasscommondatamultipassdsshkeysid_rsa ubuntu@10.115.189.200 reboot 上述最大的假設,是第一、三步,更新 kernel 時不會因為網絡問題導致 ssh 斷線,因為它們都是系統級別的改寫,中斷後並不能確保可以重來。第二步就很安全,隨時重來也沒有問題。 這樣,我們就可以在任一台管理機,經過一個 shell script for loop,更新所有其他機器。 如果我們對於網絡還是有些疑慮,我們也可以試用一次性排程式的方式去做。 ssh i varsnapmultipasscommondatamultipassdsshkeysid_rsa ubuntu@10.115.189.200 echo 'yourscriptlocation' at 0800 PM 17.12.2025 這樣的好處是,我們可以連 tmux 的開啟也省略,git checkout 也可以經固定的 script 執行(只是很煩鎖)。但這也會有壞處,就是看不到執行的情況,只能事後檢查系統狀態,是否已更新過。 當然前述 ssh key 的方法也可以加入 git checkout 更加深化不同的更新 script,但這又會增大斷線可能。ssh key 還是以快速完成指令更實際。 註:因為網安原因,筆者把上述 script 中的 S U D O 關鍵字去掉,這樣 blog 才能發出。

git 分支整合問題
科技新知
MacauYeah・2024-02-20

不知道大家的開發團隊、專案規模有多大,但只要系統或程式已發佈,同時又要做維護更新,git 庫都至少會有兩條分枝: 新功能 main feature 最新的穩定發佈版本 Release v1.x.x 最好的情況下,在開發完新功能之前,穩定版本都沒有需要緊急修正的地方,開發者可以專心開發新功能(main feature。然而這個情況並不能經常維持。 情況1有Bug要馬上修正 最常見到的情況,就是穩定發佈版本有瑕疵,可以經過小修小改來止血,由v1.x.x rArr; v1.x.y,這些可能對用戶來說,是沒有太大感覺的改動。不過對於開發流程,就免不了由v1.x.y整合(merge)回main時,出現修改衝突的問題。 建議 若屬於日後不再需要的改動,不需於整合到main中, 當然什麼都不用做。但若屬於必要的更新,就需要早早整合到main中。整合雖然痛苦,但延後整合沒有好處。以筆者的經驗,每次整合時有衝突,而越早整合越有條件知道該取用自動混合的那個版本。以整合工具的語言來說,就是更容易的作出use mine use theirs edit。 情況2 不同功能之間有衝突 上述情況1,已經算是可控的。主要因為穩定發佈版本都只會接受小修小改,大改都會直接在main中開當為新功能開發。當你有多個很重要的功能在不同時期被提出,而有些功能你沒有信心在下個發佈中提出,你就會選擇以獨立分支來實現不同的功能,最後選擇信心度高、權重也比較高的功能來發佈。這樣的好處是你可以有限時間先完成最必要的功能,但問題是多個功能分支之間,更容易地有衝突,後期也需要很廢心力地整合。 建議 少做資料夾層面的改動,因為git rename的功能並不是萬能的,會令很多git自動選擇版變得不可讀。筆者的經驗,就是錯把後端和前端的資料夾混在一起,令後端的一些重命名影響到前端。前端也因為有重寫的需要,對資料夾結構大改。最後結果就是很多看不懂的git自動選擇版。有一些有選對,但有一些就選錯。 可以做一些事前處理,來減經痛苦。在筆者的資料夾問題情境,在把後端將要整合的多個commit中,挑選最早前沒有命名問題的commit先整合一次。然後前端先手動模擬後端的人工命名,自行commit一次,最後再把後端剩餘的commit再做整合。這個做法不是完全解決問題,但至少可以讓use mine use theirs edit更新易理解。 而另一個建議是,縮短發佈週期,逼使其他開發中的功能越早做整合,也逼使每個功能不要做太大規模的改動。如果真的做大規模改動,就要有心理準備要多次重要的整合。 情況3 多個穩定發佈版本需要同時維護 若然大家面對的工作規模真的很大,同時有多個版運行版本,就如gitlab,每一個月都有一個新功能版本16.0.x, 16.1.x, 16.2.x,hellip; 16.9.x,但它不會強逼大家更新,對於過去一段時間的功能版本,也會推出安全性更新前述的x會不斷修正問題。 這是一個很負責任的發佈模式,不過對於開發者來講就一定很地獄。因為16.0.x的安全更新並不能無痛地整合到16.9.x中,可能每個版本重新人工修改還要來得穩健。 建議 各個分支人工修改可能更適合。最後就是取決於商業政策的考量,到底公司願意為已發佈的功能版本提供多久的支援。就以gitlab為例,其實它也只承諾維持兩三個月前的功能版本。是否會backport到多個月之前的版本,就看問題的嚴重性和backport難易度。 也分享一些筆者朋友的經驗,他們開發的是軟件跟硬件整理的軟件庫。但因為硬件有限制,例如庫的大小、算力的差異,所以最後分支多到爆炸。這也是軟硬整合的痛,問題暫時無解。除非老闆肯放棄市場。

愛情鎖, 鎖住戀人的心
宗教玄學
熊神進・2022-09-09

#愛情禱告# 姻緣是5百年前天註定, 既然都是天註定了, 那麼, 我們還要「怕」什麼? 愛情世界裡不存在「怕」與「不怕」, 只有彼此「包容」「珍惜」。 佛說眾生平等, 你要是沒有前生的欠下, 今生就不會跟他她相遇, 因此今生的丈夫妻子, 就是前生你欠他她的, 又或他她今生來答謝你。 答謝你的形式有3種: 旺你。你跟他她有了身體接觸, 事業、財運好上來。 助你。任勞任怨照顧家庭, 是你背後的支柱。 跟你共修。 小愛是痛苦, 當我們愛得瘋顛的時候, 我們就想方設法去維繫那段感情, 而吉普賽的玄學家都有一套鎖男人心的妙法, 這就是「愛情鎖」。「愛情鎖」是西方情侶認為它可以把戀人鎖在一起, 因此很多情侶把它掛在橋樑,或欄幹、或其他公共設施筆者見過有些人掛火車站鐵欄。在筆者經驗中, 「愛情鎖」尺寸愈小, 愈能把二人感情扣緊, 因此我們不要追求奇形怪狀的鎖, 雖然有些鎖是沒有心型標誌的, 但只要符合風水要求, 有風水師傅祝福就可以。 「愛情鎖」並不是中國玄學家發明, 它是有故事的,一戰之前, The Republic of Serbia國家裡, 有一條「至愛橋」(Most Ljubavi)。當時,鎮上有一位女教師叫Nada, 她跟一位軍官Relja在熱戀中, 後來男友被徵召前往希臘打仗,打仗期間愛上一名來自Corfu的女孩, 不願回國。Nada知道後,心碎而死。當地女孩們為紀念這段故事,並表達女生對愛情的專注,她們開始將鐫有自己與戀人姓名的鎖掛在Most Ljubavi的橋上,冀以祝福這神聖愛情。塞爾維亞女詩人德珊卡middot;馬克西莫維奇在她的愛情詩歌Molitva za ljubav提過這「愛情鎖」, 並為愛情歌頌。 風水上的「愛情鎖」沒有鑰匙打開, 為什麼?答案很簡單, 就是我們相信師傅加持的時候把戀人的姓名念了上去, 二人就深深扣住, 一生不分不離, 這才是「愛情鎖」的奧妙。 掛鎖是需要位置嗎?筆者不建議把鎖掛在戶外因為有情侶二人資料, 女生可以掛在窗簾上, 床頭櫃上, 二人照片架上, 反正掛在臥室就是了。已婚和未婚都可以請的。 假如, 我只是說假如, 如果掛了「愛情鎖」的情侶夫妻最終分手, 那麼, 「愛情鎖」有3種方式處理: 送去寺廟, 用火化去。不是把鎖燒溶, 只是用香火燒去靈 埋藏在花盆裡、泥土裡。 交還給玄學家代處理。 微信 macaumickey 公共微信 macaumasterxiong

愛情鎖, 鎖住戀人的心
宗教玄學
熊神進・2022-09-09

#愛情禱告# 姻緣是5百年前天註定, 既然都是天註定了, 那麼, 我們還要「怕」什麼? 愛情世界裡不存在「怕」與「不怕」, 只有彼此「包容」「珍惜」。 佛說眾生平等, 你要是沒有前生的欠下, 今生就不會跟他她相遇, 因此今生的丈夫妻子, 就是前生你欠他她的, 又或他她今生來答謝你。 答謝你的形式有3種: 旺你。你跟他她有了身體接觸, 事業、財運好上來。 助你。任勞任怨照顧家庭, 是你背後的支柱。 跟你共修。 小愛是痛苦, 當我們愛得瘋顛的時候, 我們就想方設法去維繫那段感情, 而吉普賽的玄學家都有一套鎖男人心的妙法, 這就是「愛情鎖」。「愛情鎖」是西方情侶認為它可以把戀人鎖在一起, 因此很多情侶把它掛在橋樑,或欄幹、或其他公共設施筆者見過有些人掛火車站鐵欄。在筆者經驗中, 「愛情鎖」尺寸愈小, 愈能把二人感情扣緊, 因此我們不要追求奇形怪狀的鎖, 雖然有些鎖是沒有心型標誌的, 但只要符合風水要求, 有風水師傅祝福就可以。 「愛情鎖」並不是中國玄學家發明, 它是有故事的,一戰之前, The Republic of Serbia國家裡, 有一條「至愛橋」(Most Ljubavi)。當時,鎮上有一位女教師叫Nada, 她跟一位軍官Relja在熱戀中, 後來男友被徵召前往希臘打仗,打仗期間愛上一名來自Corfu的女孩, 不願回國。Nada知道後,心碎而死。當地女孩們為紀念這段故事,並表達女生對愛情的專注,她們開始將鐫有自己與戀人姓名的鎖掛在Most Ljubavi的橋上,冀以祝福這神聖愛情。塞爾維亞女詩人德珊卡middot;馬克西莫維奇在她的愛情詩歌Molitva za ljubav提過這「愛情鎖」, 並為愛情歌頌。 風水上的「愛情鎖」沒有鑰匙打開, 為什麼?答案很簡單, 就是我們相信師傅加持的時候把戀人的姓名念了上去, 二人就深深扣住, 一生不分不離, 這才是「愛情鎖」的奧妙。 掛鎖是需要位置嗎?筆者不建議把鎖掛在戶外因為有情侶二人資料, 女生可以掛在窗簾上, 床頭櫃上, 二人照片架上, 反正掛在臥室就是了。已婚和未婚都可以請的。 假如, 我只是說假如, 如果掛了「愛情鎖」的情侶夫妻最終分手, 那麼, 「愛情鎖」有3種方式處理: 送去寺廟, 用火化去。不是把鎖燒溶, 只是用香火燒去靈 埋藏在花盆裡、泥土裡。 交還給玄學家代處理。 微信 macaumickey 公共微信 macaumasterxiong

愛情鎖, 鎖住戀人的心
宗教玄學
熊神進・2022-09-06

#愛情禱告# 姻緣是5百年前天註定, 既然都是天註定了, 那麼, 我們還要「怕」什麼? 愛情世界裡不存在「怕」與「不怕」, 只有彼此「包容」「珍惜」。 佛說眾生平等, 你要是沒有前生的欠下, 今生就不會跟他她相遇, 因此今生的丈夫妻子, 就是前生你欠他她的, 又或他她今生來答謝你。 答謝你的形式有3種: 旺你。你跟他她有了身體接觸, 事業、財運好上來。 助你。任勞任怨照顧家庭, 是你背後的支柱。 跟你共修。 小愛是痛苦, 當我們愛得瘋顛的時候, 我們就想方設法去維繫那段感情, 而吉普賽的玄學家都有一套鎖男人心的妙法, 這就是「愛情鎖」。「愛情鎖」是西方情侶認為它可以把戀人鎖在一起, 因此很多情侶把它掛在橋樑,或欄幹、或其他公共設施筆者見過有些人掛火車站鐵欄。在筆者經驗中, 「愛情鎖」尺寸愈小, 愈能把二人感情扣緊, 因此我們不要追求奇形怪狀的鎖, 雖然有些鎖是沒有心型標誌的, 但只要符合風水要求, 有風水師傅祝福就可以。 「愛情鎖」並不是中國玄學家發明, 它是有故事的,一戰之前, The Republic of Serbia國家裡, 有一條「至愛橋」(Most Ljubavi)。當時,鎮上有一位女教師叫Nada, 她跟一位軍官Relja在熱戀中, 後來男友被徵召前往希臘打仗,打仗期間愛上一名來自Corfu的女孩, 不願回國。Nada知道後,心碎而死。當地女孩們為紀念這段故事,並表達女生對愛情的專注,她們開始將鐫有自己與戀人姓名的鎖掛在Most Ljubavi的橋上,冀以祝福這神聖愛情。塞爾維亞女詩人德珊卡middot;馬克西莫維奇在她的愛情詩歌Molitva za ljubav提過這「愛情鎖」, 並為愛情歌頌。 風水上的「愛情鎖」沒有鑰匙打開, 為什麼?答案很簡單, 就是我們相信師傅加持的時候把戀人的姓名念了上去, 二人就深深扣住, 一生不分不離, 這才是「愛情鎖」的奧妙。 掛鎖是需要位置嗎?筆者不建議把鎖掛在戶外因為有情侶二人資料, 女生可以掛在窗簾上, 床頭櫃上, 二人照片架上, 反正掛在臥室就是了。已婚和未婚都可以請的。 假如, 我只是說假如, 如果掛了「愛情鎖」的情侶夫妻最終分手, 那麼, 「愛情鎖」有3種方式處理: 送去寺廟, 用火化去。不是把鎖燒溶, 只是用香火燒去靈 埋藏在花盆裡、泥土裡。 交還給玄學家代處理。 微信 macaumickey 公共微信 macaumasterxiong

如何計算期指轉倉價
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2020-08-04

如何計算期指轉倉價 期指轉倉,是由本月對期指的看法延續至下月,需將持有的即月倉位平倉,同時在下月期指開新倉,一般可在結算前幾天進行,由於即月倉位平倉,需要同時間在下月期指開新倉,這也可以借助程式幫助,Multicharts 12 也有自動轉倉的功能。 此外,也有炒家喜歡在期指結算前數天留意大戶轉倉的舉動。期指大戶在臨近結算前「轉倉」,把即月份的期指平倉,同時在下月份期指開新倉,有關的過程究竟在那個價位範圍進行,這被視為期指大戶的轉倉成本。假設轉倉價為23000點,大戶下月推高期指至少要有600至800點成本,若然下月期指上升至23800點以上,可以確認大戶的期指倉是好倉為主,其後期指繼續上升的機會較大。相反,若期指由23000點下呹至22200點,這代表了期指大戶以淡倉為主,其後期指再下跌的機會也會較大。 但如何去計算轉倉價,有部份炒家是看期權的成交量分佈的,若筆者沒記錯,以期權倉位來捕捉大戶動向,藉此預測期指的走勢,相關方法早在2002年左右某香港的財經報章便已有人提及,也不是什麼新方法,但早在當年大家已有欵問,認購期權倉位數量增加,可以是大戶看好,也可以是大戶為淡倉對沖,兩者有很大的分別,個人覺得這種計算方法未必有參考價值,這點已有不少人提出。 另一個常見的計算方法是,在期指結算前五個交易日,先記錄每個交易日「每五分鐘」期指的高低價及成交量。 然後用以下公式計算 期指最高價 期指最低價 x 成交量 假設915至920這五分鐘裏,期指的最高價為25371點,最低價為25205點,成交量為20張,= 25371 25205 2 x 20 = 505760 然後每五分鐘也是這樣計算,把所有答案加起來計算總和 同時也這把這五個交易裏,每五分鐘的成交量加起來計算總成交量 假設用以上的公式計算,期指每天有6小時15分鐘的交易時間,合共是75個「五分鐘」,五個交易日應是375個「五分鐘」,但最後交易時,交易時間只到四時,故此合共只369個「五分鐘」,把每個五分鐘的價格用以上公式計算,然後再加起來。同時也計算每五分鐘的成交量總和。 最後將兩者相除 最後五個交易日每五分鐘的價格用以上公式計算後再計算總和 最後五個交易日每五分鐘的成交量總和 答案便是期指的轉倉價。 在臨近結算這個轉倉「高峰期」的時間裏,大戶轉倉會令成交量增加,也會令價格出現變動,若每日去計算,未必能充份反映出價格的變動。 由於每五分鐘也計算,大戶的舉動會更容易捕捉,期指只要出現較大幅度的下跌,也會反映在轉倉價之上,若出現較大幅度下跌,而且成交量特別大,最後計算出來的轉倉價也會充份反映出來。 當然不同的炒家,計算期指轉倉價或會有所不同,但原理也是大同小異,部份炒家或會以「每半小時」作單位。但由於恒指的結算價也是以最後交易日當日恒指平均「每五分鐘」為一個單位。 早上市易時段由上午十時至中午十二時三十分,共30個單位;下午交易時段,從下午二時三十分至下午四時整,共18個單位;然後取這48個單位的加總平均數。所以計算期指轉倉價也以「每五分鐘」作單位計算會較適合。