搜尋

搜尋結果

第二屆“數字中國”建設峰會,代表團取得圓滿成功!
其他
澳門生活圈・2019-05-09

開啟數字澳門建設新篇章 澳門企業代表團 參加第二屆ldquo;數字中國rdquo;建設峰會 共建共享、共同發展 一次實現ldquo;共建共享、共同發展rdquo;的峰會已於福建全面展開,這次峰會以明確的道路,清晰的主題,打造了一場為ldquo;數字中國建設rdquo;和數字中國建設ldquo;數字中國建設rdquo;的作用。 主題:數字澳門 在此次峰會中,澳門本土企業專設以ldquo;數字澳門rdquo;為主題的澳門館參展。 全面推介澳門特別行政區在物聯網、數字經濟和智慧城市領域發展的成果,借助數字峰會這一高端平台,推進ldquo;一國兩制rdquo;成功實踐的科技交流。 峰會隆重開幕 5月6日上午,福州正舉辦的第二屆ldquo;數字中國rdquo;建設峰會在中國福州市海峽會展中心隆重開幕。 本屆峰會由國家互聯網信息辦公室、國家發展和改革委員會、工業和信息化部共同主辦,福建省人民政府承辦。 多位重量級嘉賓出席 峰會上,將有11個國家部委發布政策和報告,多位重量級嘉賓已經確認出席。 澳門10餘家本土企業專設以ldquo;數字澳門rdquo;為主題的澳門館參展。圍繞如何打造智慧城市、如何建設數字澳門為起點進行展示,開啟中國內地與澳門數字化合作新篇章。 澳門代表團成員 澳門特區政府鼎立支持 此次活動得到了中央人民政府駐澳門聯絡辦公室和澳門特區政府相關部門的大力支持。 其中,澳門代表團參會參展得到了新大陸科技集團全力支持並全程贊助。 澳門新大陸萬博科技有限公司 澳門新大陸萬博科技有限公司(簡稱新大陸萬博公司)是中國科技龍頭企業mdash;mdash;新大陸科技集團全資子公司。 2015 年作為閩澳合作重點由澳門特區政府引進的高科技產業平台,在中央人民政府駐澳門特別行政區聯絡辦公室以及澳門特區政府的大力支持下,新大陸科技集團和澳門大學共同組建了mdash;mdash;ldquo;澳門大學mdash;新大陸科技集團智慧城市聯合實驗室rdquo;,旨在打造粵港澳大灣區一流的雙創基地和政府智庫平台,構建ldquo;數字公民rdquo;科技成果產業化的閩澳合作基地。 本屆峰會ldquo;主題rdquo;amp;ldquo;定位rdquo; 本屆峰會圍繞ldquo;以資訊化培育新動能,用新動能推動新發展,以新發展創造新輝煌rdquo;為主題。 定位是中國信息化發展政策發布平台、電子政務和數字經濟發展成果展示平台、數字中國建設理論經驗和實踐交流平台、彙聚全球力量助推數字中國建設合作平台。 峰會7大展區 本屆成就展位於福州海峽國際會展中心5、6、7、8、10號館,展區總面積5.6萬平米,規劃了綜合、數字政府、數字經濟、智慧社會、數字生活、數字福建、主賓省等7大展區。 中央直屬機構和國家有關部委,全部31個省、自治區、直轄市和港澳台地區都將有企業參展,其中全國軟件、互聯網、電子信息百強企業44家。在福州濱海新城的數字中國會展中心,還將有部分福建企業參展。 澳門代表團學習物聯網行業 5月7日上午,澳門代表團應邀參加第二屆數字中國建設峰會物聯網分論壇會議。 會議期間,代表團認真學習了全球物聯網行業專家及學者對物聯網行業做出的最新研究報告,希望可以進一步促進物聯網與實體經濟的深度融合,為澳門經濟及產業多元化發展注入強勁動能。 5月7日下午,代表團參觀ldquo;數字中國rdquo;建設成果展。 澳門代表團取得圓滿成功 據了解,本次展會有近800家中國頂尖企業參加成果展,澳門館作為主展館之一,集中展示了ldquo;一碼通行澳門rdquo;方案演示、跨境電商平台、澳門本地在線購物平台ldquo;澳淘rdquo;、粵港澳大灣區三地智慧交通系統、智慧城市多功能路燈等多種智慧科技產品及網絡平台;新大陸數字終端、數字支付、數字公民等產業生態的創新型成果將進行統一展示。 5月8日上午,代表團參觀了中國物聯網龍頭企業,中國知名上市公司mdash;mdash;新大陸科技集團。 活動期間,代表團參觀了新大陸科技集團的技術成果展覽廳和科技產業園,了解了中國乃至全球最創新的科技成果和產業模式。 代表團隨後又參觀了全國物聯網產業示范基地之一mdash;mdash;福建省海峽物聯網應用促進中心,代表團在此更深入的了解到物聯網產業的發展前景和物聯網造福百姓、彙集社會的發展方向。 福建省海峽物聯網應用 此次代表團參會、參展取得了圓滿的成功,澳門代表團中的青年企業家紛紛表示 此次活動體驗了一次中國最高層次的科技會議和成果展覽,回到澳門之後將更努力工作,為澳門的產業多元發展貢獻力量。

Steam OS 3.7 桌面模式下的中文輸入法 fcitx5+RIME
科技新知
MacauYeah・2026-02-21

上一篇我們提到,SteamOS的原生鍵盤不知為何失效,我們在桌面模式上的另一個選擇就是flatpak中的 Fcitx5。 因為Fcitx5是基於flapak安裝的,預設只在flapak下通用,後半部份,亦會介紹如何打破這個限制。 安裝Fcitx5 及倉頡五 我們可以在 Discovery App,輸入關鍵字 Fcitx5, 找到相關的套件。為更精準地安裝指定套件,可以直接在terminal 使用以下指令。 首次啟動時,需在start menu中,搜尋fcitx5,它就會長註在右下角的系統列中,選該iconrarr;右鍵rarr;input method settings,把「RIME」加入到fcitx5中,就可以使用了。 在此時,你可以打開Firefox,經controlspace的方式轉換輸入法試試。但之後你會發現,原生的Kate文字軟件,都無辦法輸入中文。因為只有Dsicovery flatpak 的 app 才能正常使用fcitx5。 大範圍套用Fcitx5 如果你找網上或AI的資訊,大部都會提示你修改系統設定檔,把fcitx5加到其中,但筆者就不成功。好在有Bilibili強者的筆記httpswww.bilibili.comopus1139601518269300768httpswww.bilibili.comopus1139601518269300768,原來SteamOS自帶的是ibus,但ibus又不讓設定(因為要換rootfs)。我們通過flatpak中安裝fcitx5,其實是可以通過ibus存到系統的。步驟如下: 如果你還未為當前的deck user配上密碼,你可以在terminal中使用 有密碼後,就可以使用 把所有module加為ibus 你沒有看錯,真的是那樣。基在上所有原生的桌面app及terminal,也可以切為到中文輸入法了。還有一個特例就是經 distrobox 生成的環境,依然無法存入ibus。 Reference httpswww.bilibili.comopus1139601518269300768

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

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

Spring Boot Web App 更新期間的維護模式:從唯讀到全鎖的解決方案
科技新知
MacauYeah・2025-08-25

在營運 Web App 的時候,雖然我們有 Docker K8s 可以滾動更新,但難保用戶在更新的過程中,有一半訪問去到了舊版,另一半去了新版。如果可以,Web App 本身自帶維護模式,可以自我判斷什麼時候應該忽略新的訪問,當然最好。但要做到這一點,前期需要很多規劃。狠心一點,可以直接關掉對外的服務,讓用戶無法訪問。 但在另一些情況下,例如升級搬遷的情況,下線時間比較長,完全關掉服務並不是一個很好的方向,我們至少還可以提供唯讀的選擇。而且這個可以從資料庫出發,讓 Web App 少處理一點邏輯。 如果 Web App 背後的資料庫是 MSSQL 或 MySQL,唯讀這件事應該是簡單的,只要你把 service account 的權限改變就好。但如果你用Oracle,就要想想辦法。 筆者想到的方法,暫時有兩個。第一個就需要大家寫寫 Script ,一口氣把所有 Table 給鎖起來。例如 第二個,就是生成一個新的唯讀 User schema,給他所有Select的權限。然後更新 Web App 使用那個唯讀 User schema存取資料。 兩個方法有什麼差異呢? 前者就全部鎖起來,沒有任何一個資料庫用戶可以改寫資料。如果你的業務沒有差異性,全部一起封起來就完事。但如果你只想 Web App 轉成唯讀,但其他背景程式還可以執行更新。那你就只能用後者了。但後著也不是百分百的完全無痛,至少你 Web App 要支援登入與操作的 Schema分離。 例如用Spring boot JPA的話,可以在 application.properties 可以讓登入及操作的Schema不一樣。 spring.datasource.username=READ_ONLY_USER spring.jpa.properties.hibernate.default_schema=ORIGINAL_SCHEMA 又或者在 java 層面指定。 @Tableschema = quot;ORIGINAL_SCHEMAquot; 這看上去,是很有彈性的。但其實也是有些局限。如果你本來的JPA有寫特制的 JPQL 或 Raw Query,又或者你在Java層面加了 @Subselect,由於這些都是程式原作者所 hard code 的,JPA沒法幫你改寫。改來改去,可能還是前述寫Script的方法,一口氣把所有 Table 給鎖起來實際一些。 Reference 更多筆者的程式開發分享,見請 github

Galera 4 (Mariadb cluster) 的冷開機
科技新知
MacauYeah・2025-08-20

前次我們介紹了 Galera 4 在Ubuntu 24的架設方式,這次我們來補充一個最常見的問題Cold Start 冷開機 cold start 平常, Cluster 中只有其中一個 node 需要更新重啟,基本上所有節點回覆正常後,都可以互相通訊。而有些情況,例如斷電問題,需要所有節點全數關機,那麼 Galera cluster 就需要一定的方式重啟系統。那是一些狀態的保護機制,因為在全關機後再同步,系統不知道哪台機才有最新的狀態,它也不敢貿然同步因為正常使用下, Galera cluster 只有兩台機也會開步。所以需要人手介入,指定以某台機作為 cluster 的起始點。 舉個最簡單的例子,前述三台機 pocdbnode3 , pocdbnode2 , pocdbnode1 順序關閉,那麼 pocdbnode1 應該就會有最新的資訊。 在ubuntu中,可以查看 varlibmysqlgrastate.dat 中的 safe_to_bootstrap是否為1。如果是1,代表當初它有最後的 transaction ,以它為起始點重新起 cluster。 $ cat varlibmysqlgrastate.dat # GALERA saved state version 2.1 uuid 0c38b6dd7bdb11f0a4dd1f4be36a6ea9 seqno 1 safe_to_bootstrap 1 我們使用galera_recovery, galera_new_cluster, 就可以把該機器重新救起mariadb process。 $ galera_recovery WSREP Recovered position 0c38b6dd7bdb11f0a4dd1f4be36a6ea911 wsrep_start_position=0c38b6dd7bdb11f0a4dd1f4be36a6ea911 $ galera_new_cluster 然後其餘兩個 node 可以直接重啟 mariadb 服務 # node 2 $ systemctl start mariadb # node 3 $ systemctl start mariadb Reference Getting Started with MariaDB Galera Cluster 官方文件 How to Set up MariaDB Galera Clusters on Ubuntu 22.04 How to Bootstrap MySQL or MariaDB Galera Cluster ndash; Updated 還有比較複雜的救機狀況,例如safe_to_bootstrap全為0,即是可能是全部node都沒有好好地關掉,就掛了。大家有需要可以看看這個link的解決

重入膠坑 8 | HG Mighty Strike Freedom 取件表
手機‧電玩
MacauYeah・2025-05-16

之前就為大家介紹過,想有效率地消除Gunpla山積,事前計劃好一個概定的流程,絕對是件很重要的事。 而流程中,預制取件表,絕對素組檔的一件神器,筆者習慣後,可以極大地減少筆者換剪、打磨工具的次數,也減少找不到零件的機會。 筆者就分享一下自己制作的Mighty Strike Freedom 取件表 Google Drive連結,有需要的讀者,可以直接下載或列印。 在這邊再簡介一下如何利用取件表作為素組之用 準備粗剪、薄刃剪、打磨砂紙400, 600, 800號、十二個零件盒 按照取件表,分區粗剪取件: 完整地粗剪頭部所有零件 放入頭零件盒 完整地粗剪身體所有零件 放入身體零件盒 依次粗剪各部份零件,放入對應的零件盒...... 分區薄刃剪修件 完整地修剪頭部所有零件 完整地修剪身體所有零件 依次完整地修剪各部份所有零件...... 選擇性分區打磨零件 完整地打磨頭部所有零件 完整地打磨身體所有零件 依次完整地打磨各部份所有零件...... 回到說明書,分區組合 依次地分區組合 選擇性記錄需要額外補色的位置。 選擇性滲線、補色 於粗坑線條上水性滲線液 Marker筆補色 選擇性保護漆 最後一定要提醒,在第4步組合以外,就必需要決定是否進行打磨,若是組合完再拆散,就有斷件風險。亦有因為上述流程不刻線,其實第5步很安全,沒有進一步打磨修補問題。 最後附上筆者速刷前四個步驟的HG Mighty Strike Freedom美照。

開發者在Steamdeck上的另一個選擇: Gnome box
科技新知
MacauYeah・2024-05-28

前些日子,因為升級podman的關係,筆者對Steamdeck的限制就更為了解。因為Steamdeck是一個修改過的Arch linux,不單止代表是某些區塊是唯讀不可寫。更深一層的問題是,有些依賴包,不能簡單地通過安裝或自行編輯來解決。 例如早前podman 5.0.x需要的pasta依賴,雖然Arch linux官方有這個lib的發佈,但Steamdeck沒有選用,那些我們自己下載原始碼,你地會發現steamdeck的gcc或cc編譯指令還法完全執行,一來是編譯器指令沒有預設對,另一方面則是缺少了更多的c lib .h 依賴包。最後筆者只好選擇下載pasta官方預編譯的二進位程式。能用,但就總是多少有點不安心。因為pasta的預編譯只是針對x86_64的CPU,並沒有考慮link lib的問題,不過這次運氣還算可以,沒有無盡依賴的問題。 回來講Steamdeck的情況,之前筆者介紹brew,其實是macOS帶過來的,雖然他們對其他linux的支援很不錯,但多少都基於某些低層的依賴包可以隨時更新。而Steamdeck這個限制版,就沒有保證linux 依賴包的預安裝。那怕是Ubuntu也是一樣,只是我們可以通過進一步的指令案裝就可以了。所以在Steamdeck上,長遠還是要找一些官方維護的軟件比較安全。 Steamdeck上預設的是依賴安裝是【Flatpak】,雖然它不像yum, apt, dnf這些仔細可以安裝原始碼依賴,但它們可以安裝App,例如Firefox、Chrome、輸入法等。遺憾的是,Flatpak上沒有podman, docker,對於開發者來說就很不方便。 但最後,筆者終於在【Flatpak】上發現一套【BOX】VM解決方案。它的功能不算強大,但至少可以經ISO安裝自己想要的OS,也有快照功能只限關機狀態下。BOX官方亦表明,這套VM不是針對自動化或企業管理所做的,只有一些基本操作。 官方連結 httpsapps.gnome.orgBoxes 官方原始碼 httpsgitlab.gnome.orgGNOMEgnomeboxes Flathub載點 httpsflathub.orgappsorg.gnome.Boxes 對於筆者來說,能裝到VM,代表就有更多的操作空間。如果大家不介意多了一些虛擬層,會太影響效能,其實很多操作可以在VM內使用。例如不需要再用podman,可以直接在VM中使用docker、安裝k8s等。對於效能問題,我們必需要在Steamdeck操作時,至少我們可以在VM中先安裝Arch linux,找回必要的依賴包,編譯我們想要的link lib,再抄回Steamdeck下執行。過程的確比較轉折,但若然Steamdeck這台機器只適合打機的話,就真的很可惜。

測試驅動開發 | 系統邊界Mock
科技新知
MacauYeah・2024-04-23

好一段日子之前,筆者就介紹了一些寫Test Case的大方向 。對於大部份情況來說,有分隔的開發環境,有整個配套,測試起來是順暢的,想做單元測試可以,做整合測試也可以。但如果沒有,我們其實也要想辦法寫Mock。 Mock這個概念,對於寫前端程式的朋友應該比較熟悉,因為前端開發者總不能等後端準備好之後,才開始慢慢設計。前端很早期就要模擬一些情況,做介面設計,做各種思考。而且這個Mock不是指在運行單元測試時,才使用的臨時修改隨機數據。而是針對開發時,自行模擬的後端或外部環境。不過因為前端介面涉及很多主觀設計,很多元素冇辦法做固定的自動測試,所以前端的測試通常要人幫測試。 而後端開發,邊界Mock這一概念也很有用。在外部環境不足的情況下,為自己系統的邊界部份自建一個Stub Dummy 等的模疑數據,是很有幫助的。不論我們對外部環境的掌控度有多少,我們走測試驅動開發(Test Driven Development),好好地定義這個外部環境的期待行為是很重要的。 例如,你有個功能,需要存入數據,但資料庫未準備好,也沒有所謂的In Memory資料庫可以用。這時,自己架空寫一個什麼都不做或回傳固定結果的函數作為中轉接口,然後在你的Test Case可以規劃你的想要結果。 也許你會說,這個函數就是存下資料,我不會需要它的回傳結果,但我們其實還是可以在Test case 中定義一些錯誤檢測,確保這個函數沒有Throw Exception 。再進一步想,我們主程式是否真的不負任何儲存失敗的責任?要定義其他回傳變數,方便寫Log讓追蹤?或者我們至少要知道成功後的Primary Key ?若然業務上真的不在乎儲存結果的有效性,我們不存入數據也是可以的? 所以歸根究底,我們還是在乎儲存的成功與否。還是有必要去驗證驗寫入是否成功。 上述例子,因為資料庫不存在,開發途中可能Test Case 有好長一段時間也通過不了,但至少當資料庫完備後,可以直接驗證,不用人手手工測試。 舉另外一個例子,我們要從某個地方,例如API或資料庫,讀取數據。我們也可以先寫中轉接口,並為它寫Test Case定義應有的行為。雖然明明就只是讀取,我們沒法控制太多。但在接口做好異常狀態處理,是很重要的。例如Handle exception、檢查某些重要業務值會不會是空、確保後續部份可以正常使用,這是因為我們不能被外部系統的失誤而導致自身系統癱瘓。 其實測試驅動,本質上就是強逼大家想多一點,好好定義預期的行為,不論內部條件怎樣變化,都有一自動的檢收標準。

Git Worktree
科技新知
MacauYeah・2024-04-09

看了Git 大神的影片 part two,才知道原來切換git分支還是有不同的做法。傳統中,我們使用git checkout BRANCH_NAME_1 來切換到我們想要的分支。通常這樣做,代表我們放棄原來的工作環境,換到另一個工作環境中。 這樣做很好,對不對? 是的。但有些時候,我們只是被逼離開原本的工作環境,跳到一個過去的分支節點去查一些東西,或者修正一些東西。更什的是我們原本的工作環境都還是混亂狀態下,我們不想做commit(提交),我們只好用git stash,暫時將工作環境存起,然後再git checkout BRANCH_NAME_1。在你想做的事做完後,再git checkout OLD_BRANCH。 看起來其實也沒有很麻煩,是不是? 但其實當你的專案有一定大小,你在不同版本跳來跳去,你的IDE就會不斷地重新編譯。更不幸的是,當你的不同版本中有模組數量的差異,弱一點的IDE,什至會攪死它的cache,之後就會發生鬼打牆。為解決IDE引發的問題,筆者有時會直接cp r YOUR_PROJECT TEMP_PROJECT,在一個新資料夾下另起爐灶。那就是有兩個不同的資料夾裝載著你的專案。 這樣應該沒有問題了吧,是不是?這次是真的可以了,扣除了筆者個人健忘的問題,就沒什麼問題了。 不知大家有沒有經驗,連續commit了幾次,但最後一次commit卻忘了push(與伺服器同步),然後就跳到其他地方繼續工作。如果我們在同一個git repository下,我們commit了但忘了push,即使我們git checkout去了其他分支,用git GUI畫出commit graph時,也至少可以提醒筆者有一個未與伺服器同步的分支。但如果當初我們用的是cp,那就沒戲唱了,什至乎當初複制了去哪裏都忘了。(當你老闆同時要你跟多個專案,健忘真的很容易發生。) 這問題有解嗎?有的,git在2.5版本以後,就提供了一個git worktree的指令。它有點像cp 指令,更重要的是,它打通了兩個資料夾下的隱藏資料庫.git,當大家在那兩個資料夾底下,都可以看到另一方的存在。大家可以用git branch a或git log oneline graph來看看。 詳細的指令介紹:git worktree git 大神的影片 Part 2

[教學] 平民雲端服務不是夢 | 5分鐘教你如何快速起VM
科技新知
MacauYeah・2023-05-11

前言 原本筆者只是想做docker cluster,但因為在實機中建VM極其麻煩,所以就研究了好一陣子如何快速起VM。 HyperV有預設的Ubuntu template,但只有ubuntu desktop版,沒有server版。而且desktop gui顯得浪費資源,要clone VM也很廢時,放棄。 Windows Subsystem Linux起VM很方便,但同一個Linux version只有一個instance,沒法起cluster,放棄。 Virtual box沒有Ubuntu template,若要clone的話就變得跟HyperV差不多,放棄。 經過一輪資料搜集,發現了一個Ubuntu multipass engine,聲稱可以跨平台快速起VM。裏面有一些很吸引的功能,可以自己建立images、使用固定IP。 那怕即使是沒有snapshot,在自定義images的配合下預裝docker,要隨時加減cluster node都是一件容易的事。 重大決策點 醜話說在前頭。經過一輪測試,multipass最大的問題,就是custom image、fix IP都只能在bare metal ubuntu 中才能使用。如果你沒有一台閒置實體機安裝Ubuntu,還是要再多考慮一下。 重點 詳細的流程,筆者記錄了在Packer template 和Multipass Static IP中,在這裏就只說一些重點。 packer是使用cloudinit和qemu的技術,行起template中指定的cloud image 在筆者的例子中就是ubuntu22.04servercloudimgamd64.img 大家可以定義image行起後進行一些操作,而那些操作都是經過qemu vnc、ssh進去操作的。 操作完後就會直接儲存當時的image。所以在操作結束之前,盡可能地刪cache或刪去不要的user group settings。 最後生成的image,還是一個cloud image。若要再運行它,必需要使用支援cloudinit的VM來讀取。 cloudinit是用來指定初次運行時要設定的事,例如hdd size, user account password, ssh key import等。 使用工具cloudlocalds可以生成一個seed.img,這樣qemu也可以cloudinit。 HyperV應該也可以經過類似方式,進行cloudinit,但筆者未有去實測。如有更簡便的方法請告知。 multipass預設就已經有cloudinit,在bare metal ubuntu就可以直接執行。 multipass也可以設定不同的cloudinit參數。 成品 最後筆者就選擇了用packer用來預裝docker,經mulitpass無腦起VM,再使用shell script對多個node設定docker,達到即時起docker node的功能。這樣就減省了VM的安裝時間,也省去了docker的安裝問題。 說到底,如果只想測試docker cluster,其實windows, macOS中的multipass也可以實現相同的功能。因為安裝docker那些都可以經過shell script自動化,只是每次重複操作,都變得相當慢。另外,因為multipass在windows, macOS不支援fix ip,對於指定docker cluster interface又會再多一重功夫。

舊八佰伴的興衰 下篇
環宇搜奇
幸村・2022-09-01

美國紐約曼哈頓中心的帝國大廈,這座保持了世界最高建築物紀錄最久的摩天大樓,一直都是美國人的驕傲,直到1991年被日本企業收購。 一切源自1985年『廣場協議』,日圓大幅升值,加上日本工業七八十年代急速增長,對於美國人而言,「Made in Japan」的產品已經成為中產階級趨之若鶩的必須品。 Walkman、日產汽車、彩色電視機,只要打上Made in Japan的標籤,就是高質量金漆招牌。 八十年代日本社會普遍相信房地產會不斷升值,而且銀行熱錢水浸,於是向正擴充業務的和田一夫提出一個可以將利潤三倍化的建議。 買一塊地興建百貨中心,自己做一部分零售,再租一部分出去,就可以獲得最少三份利潤,於是和田一夫拚命買地,雄心壯志將八佰伴打造成為全球最大的百貨零售王國。 但沒有想到的是,九十年代初日本泡沫經濟爆破,樓市和土地售價大幅下跌,買了大量土地的和田一夫變相蒸發了大量資產,後悔莫及。 其次是為了實現打進中國市場的野心,覺得一家國際商業中心的總部應該設在海外,於是將總部搬來了上海。 把作為根據地的日本業務,交給了不懂經營的弟弟管理。和田一夫的弟弟是財務出身,在泡沫經濟爆破時,見營業額下降就開始做假帳,甚至分紅給股東,作為上市公司來說可謂致命的錯誤。 後來東窗事後,弟弟被捕入獄,和田一夫知道後也回天乏術,沒有辦法了。 真正的致命的打擊,是聽信了銀行家的虛假承諾。 『半澤直樹』中的銀行家主角也曾經反思,銀行就是「晴天借傘,雨天收傘」的行業。 為了籌到挽救公司的現金,和田一夫賣掉了香港太平山頂的「天比高」豪宅(後來輾轉買了給周星馳),又把日本16家百貨及店鋪賣給了競爭對手大榮百貨,終於籌得320億日元。 但銀行知道和田一夫籌得320億後,遊說他先把錢還給銀行,作為上市公司,有資金流通才能吸引更多投資者,還款後再向銀行借貸股票就可以上昇。 結果錢還了,銀行卻沒有履行承諾,再次貸款給和田一夫。 可以賣出的資產已所剩無幾了,還有付給員工的薪水,拖欠供應商的款項... 和田一夫很多年之後接受採訪說,如果當初沒有急著還錢給銀行,八佰伴可能還有辦法活下去。 對不起了媽媽,終究沒能守著你的家業。 一九九七年九月十八日,八佰伴剛踏進七十週年,和田一夫正式向靜岡市政府提交破產申請。 四年後,和田夫婦重臨上海,當時的上海市長徐匡迪親自在市政府大樓會見和田一夫,並表示謝意:「雖然八佰伴集團沒有了,但是上海的第一八佰伴依然存在的,這個名字永遠不會改。」 市長的說話讓和田夫婦痛哭流涕。 八佰伴的遺憾落幕,和田一夫後來在自傳《從零開始的經營學》中總結了失敗的教訓,下星期再續。 下週四待續

『呂布 VS 本多忠勝』- 無傷之鬥神
環宇搜奇
幸村・2022-07-15

從暗榮推出的遊戲《三國誌》中,每一代呂布的武力值肯定是100(萬人迷趙雲只有96),間接可以看出,呂布已經變成耳濡目染三國時期武力最強的武將。 呂布雖然活躍時間不長,但受《三國演義》的影響,令我們對於人物的真實戰力有很大的認知錯誤。 例如「三英戰呂布」,就完全是為了襯托戰神呂布和三小強的虛構情節。 東北猛人公孫瓚上去過幾招就被打敗了,正當八路諸侯束手無策時,傍邊一將,圓睜環眼,倒豎虎鬚,挺丈八蛇矛,大叫: 「三姓家奴休走!燕人張飛在此!」 和呂布打了五十回合,居然不分勝負,雲長見了,把馬一拍,舞八十二斤青龍偃月刀,加入廝殺,又打了三十回合。 見時機成熟,摸魚王劉備又拿著雙股劍來助戰,三英戰呂布,呂布雖然不落下風,但也有點吃力。 這個互相襯托的故事裏,好比三人組成的無名小團隊,做一個項目,讓Elon Musk感受到點壓力。 呂布武藝有多高超,相信大家心理有數,至於另一個戰神本多忠勝,不熟悉日本戰國的朋友們可能比較陌生。 本多忠勝誕生於天文17年(1548年),特徵是身穿黑色鎧甲,頭戴鹿角脇立兜,持天下三名槍之一「蜻蜓切」作戰,傳說蜻蜓站在槍刃上也能切開一半。 「戰國無雙4」 織田信長評價忠勝為「日本的張飛」,張飛雖然勇猛,但本多忠勝有著一生出戰57次連擦傷都沒有的紀錄!後世更稱為「無傷之鬥神」、「三河的飛將」等稱號(又是飛將)。 呂布在《三國誌》中武力值是100, 本多忠勝的防禦力就是無雙系列的天花板。 電影『阿飛與阿基』中梁朝偉說過,劈友不是講究刀法,懂走位,才會長劈長有。 本多忠勝不只懂走位,槍法也是一流,在織田信長名揚天的「桶狹間之戰」中,已經幫助德川家康完成最危險的任務大高城兵糧運輸作戰)。 十四歲在叔叔本多忠真的編制內,在島屋根城之戰中,叔叔刺死了一名敵軍,呼喚忠勝。 「切了他的首級,去領戰功吧~」 小忠勝很生氣:「吾何需借他人之力,獲取戰功?」,接著單槍匹馬殺入敵陣,斬獲第一個首級。 叔叔忠真不禁驚嘆:「這個熊孩子長大後不很了。」 在三方原之戰中,勇救差點死翹翹的德川家康。 (星期四待續)

緬甸。曼德勒 | 人生應該要體驗多點
走遍世界
原來世界這樣大・2019-04-29

「反正人生就應該要體驗多點,要玩多點!畢業後立即投入職場,無休止的工作像一頭牛。去到六十歲時回頭看,一生只有工作,連半點玩樂的時光也沒有。所以啊,拋下工作去好好享受,去玩吧,這才是人生嘛。」 經過五小時的車程,由蒲甘Bagan去到曼德勒Mandalay。長途巴士附帶的Shared taxi免費把我們載到Hostel,而在shared taxi上坐我旁邊的是個男生,不知道緬甸多Backpacker還是怎樣,很容易就能與旁邊的人聊天起來。交談過後才知道他是台灣人。他一下子就拆穿了我新年出外旅遊的原因,無非也是想避開三姑六婆的虛寒問暖。雖然被他拆穿了,卻有種他鄉遇故知的感覺。 他與我所認識的台灣人同樣熱情,但少了一份含蓄,言談間夾雜著一點髒話,誰會這樣在第一次見面就把真性情表露出來?實在不多,但他是其中一個,而我也欣賞他的真性情。他在外地打工已經有五、六年了,先到澳洲再到越南打工。我們本來用英文對話,説著説著又改用國語對答。我們說最後一次在蒲甘看日出有點不順利,他立即叫他同行朋友把照片給我們看,笑著說要向我們Show off。 談到他離開台灣這麼久,他說:「反正人生就應該要體驗多點,要玩多點!畢業後立即投入職場,無休止的工作像一頭牛。去到六十歲時回頭看,一生只有工作,連半點玩樂的時光也沒有。所以啊,拋下工作去好好享受,去玩吧,這才是人生嘛。」 那20分鐘的車程,不知為何,他像是個推銷員在勸我辭職、勸我去玩去體驗生活。我沒有把我的工作情況仔細地告訴他。太複雜了,也許是我懶得與別人交代太多。在他的一言一語下,其實我大可以說一句:「我現在很滿意現在的生活。」但是這句話去到嘴邊,卻說不出口。 我問自己,現在的生活我滿意嗎?滿意的,但可以更好。有不愉快嗎?當然有,有痛苦、無奈和無助的時候。那現在是最好的生活嗎?老實說,我不懂回答。什麼才是最好,我無法衡量、無法制訂標準。我肯定以前不是自己想要的生活,如今我選了這條路,擁有自由但也附帶著很多未知之數,這又是不是我想要的生活呢? 我很清楚知道自己不喜歡、不想要什麼,卻不了解自己想要什麼。不過對於「想要什麼」這回事,也是天馬行空、過份理想化的幻想吧。我們一直在摸索、尋找自己想要的生活,也在嘗試中找出自己不喜歡的。就如刪除法一樣,把不喜歡的選項刪除,剩下的選項組合或許就是我們想要的人生吧。