搜尋

搜尋結果

AE卡出優惠啦!抽10萬亞洲萬里通里數!
激安優惠
MO560・2019-05-31

AE卡出優惠啦!消費就有得抽10萬亞洲萬里通里數! 由2019年6月1日至8月31日,憑美國運通卡單一消費滿HK$200或以上,即可自動參加每月抽獎,有機會贏取100,000「亞洲萬里通」里數。每月將有20名幸運兒獲得豐富獎賞,開展旅程。 100,000「亞洲萬里通」里數 x 20名得獎者 x 3個月 CX AE Elite信用卡 詳情 每月大抽獎條款i. 每次每月大抽獎將由電腦系統隨機揀選20名得獎者,而此推廣總共有60名得獎者。以下列表已闡明由第1個月至第3個月,每位得獎者可獲得100,000 「亞洲萬里通」里數(「獎品」),並將於每個抽獎日起計4個星期內收到美國運通之信件或電話通知。美國運通若未能以信件或電話通知得獎者,得獎者將被取消得獎資格。ii. 合共3次的每月大抽獎將由2019年6月1日起至8月31日之每個合資格簽賬時段完結時,接著下月份的第五個工作天舉行。未能得獎的合資格簽賬將被帶至餘下的每月大抽獎。例如,於2019年7月8日進行的每月大抽獎將包括由2019年6月1日至6月30日期間所有合資格簽賬;另於2019年8月7日進行的抽獎,將包括由2019年6月1日至7月31日期間的所有合資格簽賬(2019年6月每月大抽獎得獎者之所有簽賬除外)。如此類推,直至最後於2019年9月6日舉行之每月大抽獎。每月大抽獎之詳情如下: 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多詳情,請到MO560的Facebook或Website查看。 更多詳情關於本次活動,可查看 ndash; AE卡抽10萬里數 活動詳情 喜歡小編的文章嗎?比個Like支持我啦 Facebook MO560Instagram mo560_travelWebsite httpsmotravel.info 想追蹤最新最潮澳門信用卡、飛行里數、旅遊資訊?將MO560設定為 「搶先看See First」!

尋找隱世美食的小貼士
生活在我城
澳門舟周刊MACAU・2017-07-22

每次朋友要來澳門,問我要準備什麽之類的,我就會建議一定要買個電話卡,甚至會自己買壹張快遞給朋友。 作為一個在澳門生活了十年的野生local,我深深明白,想要在澳門深度遊,手機上網固然重要,但是電話溝通也是必不可少的。 uarr;來澳門這麽多次,見過水噴得三層樓高的噴水池嗎? 那天應該是噴泉被玩壞了。 雖然澳門各大景區、公共場所、度假村和酒店都提供免費的WiFi,但因為遊客太多,有時候會出現信號很弱,連接不上的情況。 人在旅途,分秒必爭,如果總是依賴免費的WiFi,有時不一定能及時查找到資訊或聯絡到對象。 uarr;充滿文藝氣息的望德堂區 聽說威尼斯人的北方館挺好吃,想去試試,就在網上查好了地址,想說沿著大運河購物街邊逛邊找,腳都快斷了,都沒有看到這家店。 沿路沒怎麽看到電子地圖,就算看到了地圖,也是圍著好多人,擠不上去。最後我還是打了電話才知道怎麽去。 原來這家店位於鳥叔PSY拍MV的金球附近,此時已經餓得走不動了,威尼斯人那麽大,已經沒力走去那兒。 uarr;copy;Venetian Macau 但是作為吃貨,有時候來了澳門,就是想吃到某家店,如果千裏迢迢去到店門口,卻吃了閉門羹,可是非常沮喪啊! uarr;特色茶餐廳南屏雅聚@十月初五街 澳門很多街頭巷尾的隱世美食,都是很任性地經營,特別是節假日,想休息就關門,我一般都會網上查了電話後,再打電話去確認食店有開門,才跑過去。 很多遊客都不知道新馬路的瑪嘉烈蛋撻店逢周三休息,我經常有人在門口徘徊又傷心離去。 「老細,今天開門嗎?」 「快D來啦!接聽電話就是開門啦!」 經常被我電話騷擾的地道食店darr; 下環街南洋粿條面食店 十月初五街南屏雅聚 賣草地街世記咖啡 連勝街師傅仔 路環安德魯 檸檬車露 潘威記 金利 8 最後一家8餐廳其實不是街頭巷尾的小吃,而是新葡京裏面的米其林餐廳,也是很受當地人和遊客的歡迎,每次去都要提前幾日電話訂位。 uarr;copy;Grand Lisboa Macau 新舊葡京雖然沒什麽可逛的,但是裏面的餐廳都很不錯,地理位置又很方便,如果在澳門想吃遍米其林餐廳,可以從新舊葡京開始試起。 舊葡京的「葡國餐廳」是葡萄牙著名米其林餐廳Fortaleza do Guincho的首家海外分店,將傳統葡式料理提升到更精致的境界。 uarr;必試葡式焗鱸魚 「葡國餐廳」的侍應服務態度很好,衣服也很有葡國特色,這家不但需要電話訂位,一些特色菜式如葡式鱸魚最好提前預定,才會有比較好的餐飲體驗。 澳門這麽小,就算不做攻略,落地後上網查查,再打個電話去目的地確認或預定,就可以安排好行程了。 uarr;興記面家@官也街 最近有來澳門的計劃嗎?可以留言,和我說說最想吃的美食。 如果來了澳門,可以試試CTM的手機上網卡,這張卡在澳門不但可以手機上網和通話,還可以在全澳多處享用免費和高速的WiFi上網熱點。 遊澳首選,信號最強, 攻略隨時查,澳門任我走。 uarr;copy; CTM MACAU,購買地址@上圖底端 本期文字皆為原創 部分圖片來自網絡 轉載需授權 歡迎讀者掃碼關注 我的微信公眾號!

Aha~好吃好玩「新蒲點」嚟啦!一站式通關!搞鬼闖入萬聖節大派對!
專題報導
食在澳門iFood・2021-10-31

發揮你小宇宙 有勇氣請追求 歌曲裡面的ldquo;花花宇宙rdquo;的願望 已經在現實中實現 位於澳門旁的橫琴再添新地標 「AHA亞哈啟圓bull;金源國際廣場」 一鍵解鎖吃喝玩樂 是你可以暢遊的花花宇宙! AHA CAFE 進入AHA宇宙的第一站,肯定入到AHA CAFE歎杯醒神啡先啦!清爽斎啡、濃郁奶啡,現調現沖,激醒你的靈魂 來源於澳門的咖啡風味,帶俾你無限創意與驚喜。閒坐於充滿澳門風情的環境裡,一邊飲啡,一邊睇畫報,不如影翻張靚相,享受小資情調啦 馬交太子茶餐廳 一個菠蘿油、一份靚叉燒,似乎就可以承包我一個中午的快樂!在橫琴都食得到的澳門地道茶記,就係馬交太子茶餐廳啦! 甜中帶香的叉燒滑蛋飯飽腹感滿滿,芝士雞扒撈麵奶香味十足ldquo;他,來自澳門rdquo;由slogan到菜式出品,每一樣都係ldquo;原廠設置rdquo;,保留曬澳門地道風味! 莆田.十三風味 想食正宗的莆田媽祖宴菜,唔使去到福建都食得到!莆田middot;十三風味的出品,係舌尖上的ldquo;非物質文化遺產rdquo;,食到就執到寶啦! 由主菜到小食,由餐具到茶水,每一樣都充滿爆棚的儀式感!睇得又食得 福建燴飯用似飯香、似粥綿的口感征服你的味蕾!三色豆再添菌菇碎等佐料提鮮,海鮮味十足的醬汁浸潤飯粒,啖啖回味 外脆內嫩的金沙鮑魚、紫菜海蠣酥,酥脆香濃,盡享莆田菜的精髓!百秒黃花魚、高湯娃娃菜,清甜多汁,鮮味十足! 甘比韓式廚房 韓國料理以特別的菜式與口感收穫咗一大批忠實粉絲!如果你來到呢度,想食到地道的泡菜、冷麵、炸雞、烤肉,就大步行入甘比韓式廚房啦! 作為店內鎮店之寶,雙色炸雞用兩種口味,雙管齊下,對你進行爆脆香噴的味蕾攻擊!慢火熬製的人參雞湯,誠意用料,飲完湯後仲可以食埋隻雞!一舉兩得 經典的韓式小食紫菜肉鬆卷、冷麵、泡菜、燒五花肉、石鍋拌飯,樣樣都令人垂涎欲滴!韓式美味總能讓你在享受美食的同時,鍛煉自己的動手能力我都想俾自己一個like 尚鼎撈辣上火鍋 鐘意食辣嘢的朋友仔們請注意!尚鼎撈middot;辣上火鍋,將用地道辣味向你發出邀請函請你帶著512G的胃口,大搖大擺入嚟打邊爐! 除咗辣到上頭的紅油鍋底,仲有超級佛系的養生豬肚雞鍋底,充滿維C養顏的蕃茄湯底等等,你想揀咩鍋底都得! 鮮切的牛腱肉落咗鍋都唔會縮水,片片厚薄均勻,紋理分明!精選肥牛肉搭配紅油鍋底,爽脆口感,欲罷不能! 仲有新鮮鴨血向你發射愛心biubiubiu大刀毛肚啖啖滿足,仙氣裊裊,一次過滿足曬你食辣同食肉的慾望! 不給糖,就搗亂! 萬聖節的神秘氣息悄悄傳來,又到調皮搗蛋搞party的時候啦!今個萬聖節,不如來「AHA亞哈啟圓bull;金源國際廣場」,睇下佢哋搞邊科? END 「AHA亞哈啟圓bull;金源國際廣場」 導航攻略 86K1114K10 在濠江路口橫琴新家園站下車 步行600米即可到達 本期作者 圖文 得得 攝影 COISINI

澳門時尚品牌I.N.K登陸「時尚匯」購物
專題報導
LifeMag Editor・2017-07-26

「澳門銀河trade;」綜合渡假城「時尚匯」購物中心作為澳門最具時尚風格的購物熱點,由2017年7月21日至2018年1月21日期間,隆重引入I.N.K 期間限定店,這個由澳門本土時尚設計團隊梁衍奇及陳小龍共同創立的時裝品牌,將為大家帶來一系列設計新穎兼揉合多元文化元素的時尚男士服飾。 I.N.K品牌名字的由來,除了是品牌營運總監梁衍奇及品牌設計總監陳小龍二人的簡稱之外,亦有「墨」的英文原意,喻意為「墨思湧泉」,以墨水將靈感泉源畫化成為每一段創作的憶記。I.N.K銳意求變,勇於透過新技術、新衣料與立體剪裁技術,開創時尚新風格。品牌的設計以澳門多元文化激想為創意出發,結合澳門本地文化、藝術、音樂、歷史憶記,創作出一系列領導潮流的時尚服飾。 於澳門出身的陳小龍畢業於台灣實踐大學設計學院,此後一直從事服裝行業至今。他曾於電視及演唱會擔任藝人造型設計師,並為多個品牌的男裝、女裝及童裝出任設計師。2011年,陳小龍在MFF澳門服裝節舉辦首場童裝服裝秀。2015年5月,他創立個人設計工作室NEVERKNOW Studio,自營Tshirt品牌與插畫設計,其後更獲Burberry邀請在香港及澳門舉行共11場插畫活動,並且與多個品牌合作推出聯名活動,包括台灣Wind Salon、台灣FFLives網站、台灣2501網站、泰國品牌Thorny Mouse、澳門ESpark及澳門INKY Store。 品牌另一名創辦人梁衍奇同樣於澳門出生,曾於Vivienne Westwood、Burberry、Hermes等國際奢華品牌從事零售及管理工作。梁衍奇為區內知名的時尚達人,曾為香港時尚網站Xanga、HK Blog和StyleTips的博客,並為澳門本地文化雜誌《梳打雜誌》的時裝專欄作者。2014年,梁衍奇創立結合時尚生活、旅遊、時裝、音樂及藝術元素於一身的INKY Store,之後更成為澳門首個獲邀出席倫敦、巴黎及首爾時裝周的澳門品牌。另外,梁衍奇亦多次參與電視劇、電影及音樂頒獎禮的造型工作。

熱舞森巴「巴西美食嘉年華」
澳城餐飲
LifeMag Editor・2015-09-07

巴西的卡畢利亞雞尾酒 Brazilian Caipirinha 「盛宴」餐廳「巴西美食嘉年華」 Brazilian Rodizio in Feast 舉慶歡騰的巴西國慶即將來臨,澳門喜來登金沙城中心酒店被這繽紛熱情的節日氣氛深深感染,由即日起逢週五及週六晚上,於「盛宴」餐廳為您精心準備一場「巴西美食嘉年華」!熱情如火的森巴舞表演,風味獨特的巴西烤肉,配上甘烈清新的卡畢利亞雞尾酒,定能為賓客帶來充滿異國風情的美食新體驗! 大廚按照巴西傳統的烹調方法為你帶來正宗的香草巴西式烤西冷牛肉,外表香酥,入口肉質細嫩,讓您回味無窮。三款別具風味的巴西豬肉腸更能讓肉食愛好者大飽口福,香辣味道(Linguiccedil;a Calabresa)刺激味蕾,濃鬱的蒜香味道(Linguiccedil;a Portuguesa)在口中蔓延環繞,還有吃不膩的經典原味(Linguiccedil;a Toscana),讓人讚不絕口。壓軸的有巴西蜜汁烤肉配烤菠蘿,外表焦糖內裡金黃的烤菠蘿配上烤肉,果香四溢,菠蘿不但非常解膩,更打造了新的味覺享受。搭配巴西經典卡畢利亞雞尾酒,味道清新,能刺激食慾。「盛宴」的調酒師更樂意為賓客調製專屬自己口味的水果卡畢利亞雞尾酒。 身穿華麗嘉年華服飾的森巴女郎,伴隨著熱情的森巴音樂盡情舞動,傳遞著熱情洋溢的南美風情,絕對讓你感到身在巴西,享受一場視覺與味覺的盛宴。即日起至2015年12月,逢週五及週六晚上6時至10時30分,賓客可於澳門喜來登酒店的「盛宴」餐廳享用「巴西美食嘉年華」。成人每位澳門幣498元,小童每位澳門幣249元。訂座查詢:853 8113 1200。 上述價格須加10%服務費 更多有關澳門喜來登酒店的詳細資料,請瀏覽 www.sheratonmacao.com或致電(853)2880 2000查詢。

[翻書倒櫃] 比叙述性詭計更具意外性的手法 - 《屍人莊殺人事件》
娛樂殿堂
君尋・2020-07-26

不作部份劇透難以全面評論本作,請慎重考慮後再決定是否要往下讀。不推薦給準備閱讀此作品的讀者) 屍人莊殺人事件的最大詭計不是精妙的殺人機關或使人大吃一驚的殺人手法,而是玩弄讀者對「本格推理」的刻板印象。若以一句話來評論這作品,應是「保留本格推理元素的同時,顛覆傳統規範的創意之作」。在作品的首兩章,此階段可謂「食之無味、棄之可惜」,除感受到作者刻意強調多種傳統推理小說的元素和把角色們帶到本格推理最理想的「暴風雨山莊式」的舞台外,就是故意以年輕讀者較易接受的「輕小說」式的寫法刻劃角色的互動。例如在校園故事中加入推理社團、美少女偵探、外號福爾摩斯的學長、神秘的來信等,作者的意圖非常明顯地要把故事導向校園推理。當中的角色亦因為深愛著推理小說,在故事中很自然地討論起quot;whodunitrdquo;、quot;whydunitquot;等讓資深推理迷會心一笑的古典推理元素,也讓推理小說資歷較淺的讀者瞭解到這些構成本格推理的重要元素。 主角一行人和其他登場角色隨故事發展來到郊外的別墅,資深讀者都會知道真正的故事現在才要正式開始。不過上述看似各位背誦如流及老掉牙的套路,在進入第三章後起了劇變。作品中出現一種推理小說迷極為陌生的元素,「喪屍」。讀者和書中角色一樣應該都非常震驚,筆者亦不禁懷疑是否誤會了內容,再三翻閱喪屍登場及殺害多名角色的頁數,原以為被作者賦予偵探功能的學長也在首場騷擾中被喪屍殺害,其餘以為有著重要戲份或將被「兇手」殺害的角色也在同一場合犧牲了。其餘生存的角色則被困在「屍人莊」中等待救援,至此,本作的暴風雨山莊式正式登場。相信在沒被劇透的情況下,所有資深推理小說的讀者都會為之震驚,其意外性可謂媲美叙述性詭計的推理小說,但本作在首三章就能帶給讀者這種感覺。 隨後,如同讀者們所料,本格推理小說就是會出現離奇的殺人事件,屍人莊內開始有角色被殺。但與傳統不同,現場同時留有「人類」和「喪屍」的痕跡,男女主角亦刻意提醒讀者該思考的究竟是quot;whydunitquot;(動機)還是quot;Howdunitquot;(手法)。在本格推理的框架下能做到創新的殺人手法並不容易,但本作卻造出一個連資深推理迷都無法即時理解的殺人現場。隨著第二宗命案的發生,屍人莊內的活動空間越來越小,角色們不但要煩惱如何生存,還要找出生還者中的殺人兇手。不過這種壓迫感和緊張感反而因男女主角間輕小說式的互動被淡化了,作者亦不擅長以文字帶讀者進入這種氣氛當中。而第二宗命案同樣有解不開的迷題,兇手刻意讓喪屍殺害死者,但此舉明顯增加兇手被喪屍殺害的風險。同一時間兇手亦表現出害怕喪屍的一面,在犯案後以電話通知其他生還者喪屍已進一步入侵他們的區域。這種行為上的矛盾,亦即是quot;whydunitquot;成為第二宗命案的最大難題。不過亦因為兇手曾經打電話,打電話的時間、各人的不在場證明等本格推理中要考慮的因素,再次成為破案的關鍵。 難怪本作能一次掃下多過大獎,故事橋段確是近年已經彊化的本格推理中最具創意的,不是全新的殺人詭計,而是把從沒想過的元素以合理和具邏輯的方式呈現在推理小說中,並能讓讀者在公平的環境中,透過書中的蛛絲馬跡查出真正的兇手。不過這些創意元素只是表皮,內裡依然是貨真價身的本格推理小說,只要讀者解開命案中的詭計,就會發現「喪屍」只是一種作者和兇手用作欺騙我們的工具。

Docker 的非管理員用户 Docker non-root user
科技新知
MacauYeah・2025-03-14

Container USER為何重要 在制作Docker Image的過程中,有時會接觸到 USER 這個設定。這事關到最後的 Docker Container內部運行的那個 user 到底會有什麼權限。大家也要知道,Docker Container 其實也只是一個 Linux 上的程序,也就是如果Container內權限過大,也有機會從 Container 內部存取到 Host上的資料。 一般情況下,Docker Image 預設的 USER 就是 root,最基礎的base image都是一樣。而我們想換,其實也相當簡單,就像Linux上起User一樣,只要經指令RUN adduser xxx 或RUN useradd xxx 也可以在 Docker Image 中創建帳號和 home 資料夾,之後就隨時經USER xxx來切換 實際上是不是這麼簡單 如果你將要Container中執行的程序,是一個binary,平常你在Linux中也是以 nonroot 方式執行,那麼是的,就是那麼簡單。例如你執行系統中的java, node, python,原本在Linux中就已經是誰都可以,那麼你的docker container 也應該沒有難度。 但如果原本的安裝包,預設是由system service來啟動,我們就要花點力氣,看看那個service是怎樣呼叫binary的,然後就一步一步模擬它的做法。例如筆者有打包的codeserver,預設是system service啟動,但它也有提共binary的執行方法,安定好home資料夾後,我們也可以手動啟動。 泛生之檔案權限問題 上述binary的情境之所以簡單,是因為大部份情況下,我們都只對於container 內部運行考慮即可,因為預設投產情況下的運作模式,都是隨時起、隨時刪、隨時砍掉重練,只要container內部運作可以自給自足,就可以了。Docker Swarm的運作也是如此,所以它不預期有的持久化資料權限的問題。 而持久化資料權限的問題,其實早在單個Linux伺服器就已經存在。同一個伺服器中,不同process就有不同的UID,當他們需要共同讀寫某些檔案,就會設定多人權限。同理,當多個Container要共同檔案,也是同樣問題。在討論共享檔案之前,我們先看看預設 Docker Storage Mount 會給我們什麼權限。 如果是bind mount,bind mount的權限預設會是Host內的檔案或者資料夾的權限。 如果Host是root,container內是nonroot,container有機會無法讀寫bind mount內的檔案。 留意權限設置就可以解決問題 如果Host是nonroot,但container 內是root,從container內生成的檔案,Host的nonroot user就無法使用。 Host是nonroot的話就一定無解,Host至少有sudo權限,臨時變成管理員,去修正問題。 如果host和container也是nonroot,但UID不夾,其實也不能交換使用。 跟上述一樣,最後要靠sudo來解決問題。 如果host和container也是root,就沒有權限問題,但就有安全性的風險。 如果是volume mount,就還是看看 mount path 是docker image layer中現有的 path還是新起的path 大部份手動建立的named volume都是root 經docker compose起的named volume滿足以下條件的話,將會是nonroot。 docker image 中的已有該path存在。 named volume未存在,docker compose會把對應path的內容在初次建立時抄到named volume 中。 例如ubuntu24.04中的homeubuntu,存在於docker image中,它的擁有者就是UID 1000,我們經docker compose HOME_VOLUMEhomeubuntu,在HOME_VOLUME建立時,就會是UID 1000。但如果是 NOT_EXISTShomeubuntusomethingNotExists,那麼NOT_EXISTS建立時,也會是root 上述討論的Storage mount是集中在單機情況下,使用HOST OS的本地儲存。若現在的場境是多機共享的share storage,就會更麻煩,還要看看那個share storage本身的屬性。例如常見的Linux NFS,其實有指定的權限,跟NFS的Login權限有關,如果你的process本身對檔案權限很敏感,就請先不要挑戰NFS例如postgresql。 Rootless mode Rootless 模式 Rootless 模式指的是在Host中,執行Container的使用者,不需要是管理員,筆者就常用於開發環境中。投產環境中反而沒有聽過這樣的討論,因為投產環境很少可以讓非管理員去執行這麼重要的環境管理。 雖然只是開發環境,但這像前述的bind mount討論中,如果Host是nonroot,但container 內是root,又或是兩者nonroot,但UID不夾,也會出現權限問題。無腦的將host user加入docker group,只可以讓非管理員可以運行docker,但解決不了權限問題。 真正有條件解決的,可能就會向linux subgroup的方式發展。暫時筆者用得比較順的rootless mode,可以無腦用的,不是docker,是podman。有興趣的朋友可以經podman官網看看教學,它給筆者的感覺就像是自動轉換UID。 podman rootless mode 想看更多 筆者已經將過去的文章重新整理成gitbook,有興趣睇更多的讀者,可以來筆者的gitbook再翻一翻 httpsmacauyeah.github.ioAProgrammerPrepares

Spring Boot 08 - 多情境設置 maven profile 與 application.properties
科技新知
MacauYeah・2025-02-25

為何要有不同的建構 Profile Profile這一字,很難在IT技術文章中翻譯,它在Spring boot中的語意大概就是一個設定一個固定的運行環境參數合。例如我們做開發時,有些只想在開發環境中出現的設定,諸如測試用的資料庫、細緻一點的LOG層級,都寫在dev profile中。當換成正式環境時,我們也有一套全新的配置,而且會集中寫在prod profile中。把這些參數設定從程式碼邏輯中抽離,可以讓你的程式碼簡潔很多,也方便對比不同環境的設定。 application.properties Spring Boot Spring Boot Starter 就提供了 Profile 管理。我們可以為一個Spring Boot 模組設定多個不同的 application.properties srcmainresourcesapplication.properties 為預設 default profile srcmainresourcesapplicationuat.properties 為驗收環境專用 srcmainresourcesapplicationprod.properties 為投產環境專用 srcmainresourcesapplicationtest.properties 為自動測試專用 在執行程式時,我們只要動改變啟動的參數spring.profiles.active,例如 mvn springbootrun Dspringboot.run.arguments=quot;spring.profiles.active=uatquot; # or mvn package amp;amp; java jar targetYOUR_JAR_NAME spring.profiles.active=uat Spring Boot 就會指定載入 applicationuat.properties 的內容,如果有些值沒有定義,它會再追溯到預設的 application.properties中。 在運行中改變啟動參數的情況可能不多,筆者更常用的情況是在編譯期間產生多個 Jar 檔,不同 Jar 檔指定不同的環境,方便系統管理員取用測試。想做到這個效果,我們需要在 application.properties 中,我們還需要加入一句spring.profiles.active=@active.profile@,並在編譯工具中加入這個變量,例如筆者常用的 maven pom.xml 中,就會有這一串設定 它在 maven clean compile package 時,就已經可以在JAR中填入固定spring.profiles.active。那麼每次執行時,都會是指定的profile。 mvn package Puat java jar targetYOUR_JAR_NAME 在這個例子中,JAR 中的 spring.profiles.active 就會固定是uat,我們不需要在啟動參數中加入字眼。 如果大家不會碰到混合Profile的話,其實上述的資訊已經足夠大家應付很多情境。 但當大家有追求,需要寫自動測試,有機會不同自動測試需要啟用不同的 Profile ,更有可能出現混合Profile的情況,這件事就變得很複雜。我們需要繼續深入了解一下 Spring Boot 的覆蓋機制,下面將會以測試方式導出結論。 如果真的對混合 Profile 沒有太多信心,我們也可以用單一 Profile 重組不同 properties 的方式,自行去模擬混合 Profile ,例如除了dev, uat, test之外,我們可以加入 devtest, uattest, defaulttest 作為驅分。這樣應該可以簡化測試的複雜度,不過 properties 檔案就可能會成幾何級成長。 但在某情特殊情況下,我們不可能簡單地重組 properties 等型式去做測試,例如針對部份uattest的測試,只有部份可以執行,部份不可以,那麼我們還是需要用到混合 Profile ,限定某些測試需要執個某個 profile ,但其餘部份可以動態切換。 有條件的讀者,也可以先行試玩一下混合 profile 的特性,下期筆者再為不同情況作解紹。 混合Profile Source code spring boot profile

Tmux - 繼 Screen以後的Linux多工神器
科技新知
MacauYeah・2024-10-08

因為各硬件軟件的發難,筆者又不得不回到那個只有純純linux tty console的世界。很多時候,那怕使用tty,我們在Desktop mode,也有現代terminal 可以用,需要多分頁,滑鼠選取文字、複制、貼上,都可以輕易做到。 但在mobile tablet device 上,手指操作真的很不方便。又或者你像筆者一樣,即使有電腦,但要操作一些Linux VM,它們連ssh都沒有,只能直接登入它們的tty,那麼懂得使用Tmux進行分頁及複制、貼上,就變得很重要。 Tmux 是什麼 Tmux 就是可以在Linux Terminal 同一個窗口中,實現多工處理的小程式。就像我們利用多分頁一樣,不同分頁做不同的事。不過最大的差異就是,生成分頁,排列分頁,我們都要使用鍵盤來完成。有時筆者也會用它來作為背景程式,以免不小心關了Terminal就會把所有運行中的指令都停掉。 我們就馬上來看實際例子吧 前置事項 安裝Tmux及運行Tmux Debain amp; Ubuntu 安裝 sudo aptget update amp;amp; sudo aptget install tmux 運行:tmux 進入tmux後,你就會至少有一個分頁,而且不會因為Terminal關閘而中斷 用法一 建立兩個分頁,並切換 增加分頁 先按 ldquo;Ctrl brdquo; 前置鍵,再按rdquo;crdquo; create 切換分頁 在多於一個分頁的情況下,先按 ldquo;Ctrl brdquo; 前置鍵,再按rdquo;nrdquo; next 用法二 同一個分頁中,建立左右並排的窗口 增加水平窗口 先按 ldquo;Ctrl brdquo; 前置鍵,再按 ldquo; 雙引號 切換窗口 在多於一個窗口的情況下,先按 ldquo;Ctrl brdquo; 前置鍵,再按方向鍵左或右 用法三 回到前一個tmux session中 因為不小必關閉了terminal,又或是remote ssh中,ssh斷線後,需要回到之前的工作狀態 未進入tmux 的狀態下:tmux attach 要留意tmux 可以有很多個session,要去到指定的session,就要為session命名。但這個不是筆者常用的情境,原本多個分頁已經很夠用,還要多個session,會很混亂。但不排除它在某些情況下有特別用途,有興趣的朋友可以自行挖挖看。 進階 回頭看過去的terminal screen output 在現代的Terminal中,原本按滑鼠滑輪向上滾,就可以看到過去的資訊,但tmux下反而不行,所以我們需要進入特殊模式 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 向上翻頁 上方向鍵或PageUp 離開Copy Mode Copy Mode中任何時候按rdquo;qrdquo; 進階 複制貼上 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 選擇範圍 移到需要複制的文字起點,ldquo;Ctrl Spacerdquo; ,然後再移動到結束點,再按rdquo;Ctrl wrdquo; 複制 貼上 離開Copy Mode後,再按rdquo;Ctrl brdquo; ,然後 關括號中括號 進行貼上 進階 複制貼上2 某些情況下,我們不允許使用ldquo;Ctrl Spacerdquo; 或 rdquo;Ctrl wrdquo;,因為它們可能跟系統的組合鍵有衝突,所以需要改為單鍵。 讓tmux使用類似vim的操作模式 echo ldquo;setwindowoption g modekeys virdquo; gt;gt; .tmux.conf 關掉所有使用中的tmux,重開tmux 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 選擇範圍 移到需要複制的文字起點,按單鍵ldquo;Spacerdquo; ,然後再移動到結束點,再按rdquo;Enterrdquo; 複制 貼上 離開Copy Mode後,再按rdquo;Ctrl brdquo; ,然後 關括號中括號 進行貼上 筆者常用的功能就這些,有興趣的朋友可以再深挖一下。 Reference httpstmuxcheatsheet.com