搜尋

搜尋結果

中秋佳節 月滿金麗華
澳城餐飲
LifeMag Editor・2016-08-09

中秋節乃華人社會的重要節慶,屹立澳門逾三十載的金麗華酒店特意推出經典的「精裝雙黃白蓮蓉月餅」及創新的「精裝雙黃咖啡月餅」,陪您一同共度佳節。另外更誠意準備了內含月餅及多種禮品的「金匱禮品盒」。 金麗華月餅採用百中選一的湘蓮子及原隻新鮮蛋黃等原材料,以精緻的傳統工藝,純手工巧手制作。從製作糖漿、餡料、搓皮,到包餡、壓模、烘焙、回油等工序均一絲不茍。力求令月餅皮色澤金黃、皮薄鬆軟、花紋清晰、口感層次分明。現為酬謝賓客,餅店推出不限時折扣優惠,每盒四個裝的精美月餅,不論口味均售澳門幣388元,凡惠顧六至二十盒,可獲95折優惠;二十一至五十盒,可獲9折優惠;五十一至一百盒,可獲85折優惠;一百零一盒至二百盒,更可獲高達8折優惠。 送上心意,又怎可只讓月餅形單隻影?以精選茶葉沖泡的茶更是不可或缺。送禮特別推介「金匱禮品盒」為您搜羅多款禮品,更精挑細選的鐵觀音王,其香氣清高,韻味悠長;入口醇而帶爽,厚而不澀,更有延缓衰老,降低血液中的胆固醇及解膩等多種功效,絕對是給尊長好友的最佳選擇,售價僅為澳門幣1,798元。 上述禮品自八月八日起至九月十六日於金麗軒中餐廳可供選購。詳情請致電服務專線 +853 8793 3821 查詢更多資訊。

比 Java Mail 更簡單的 Spring boot email
科技新知
MacauYeah・2025-10-24

使用 Spring boot 對接 SMTP gateway 發 email ,相對是容易的。 基本上,它就是會使用自建的 org.springframework.mail.javamail.* , 對接 javax.mail.* / jakarta.mail.* 以前的所有設定值 ,都可以經 spring.mail.properties.* 傳入 例如 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.ssl.enable=true spring.mail.properties.mail.smtp.socketFactory.port=465 就等於過去 java.util.Properties props = new java.util.Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.socketFactory.port", "465"); 一個最簡單可以連去 google smtp 的簡易 code 如下 ### application.properties spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username= spring.mail.password= spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true // SpringBootEmailApplicationTests.java @SpringBootTest class SpringBootEmailApplicationTests { @Autowired private JavaMailSender javaMailSender; @Value("${spring.mail.username}") private String fromAddress; private static final Logger LOG = LoggerFactory.getLogger(SpringBootEmailApplicationTests.class); @Test void contextLoads() { try { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom(fromAddress); mailMessage.setTo("XXXXXXXX"); mailMessage.setText("this is backend email trigger for spring boot"); mailMessage.setSubject("spring boot test mail"); javaMailSender.send(mailMessage); } catch (Exception e) { LOG.error("Error while Sending Mail"); throw new RuntimeException(e); } } } github 原始碼 https://github.com/macauyeah/spring-boot-demo/tree/main/spring-boot-tutorial/spring-boot-email

重入膠坑 11 |素組黨的水口極限
手機‧電玩
MacauYeah・2025-08-09

陸逐地,筆者分享了一些高達模型回鍋的心得近一年,素組的手法實驗也做得七七八八了,再推過,就是向噴塗進發。 素組主要是考慮水口處理和補色的問題,而水口更是入門模型的重症。筆者就再在這一篇做個水口處理的總結,比較不同的處理方式的效果。 神剪 最簡單的方式。做MG的話很夠用,不過做HG,有些水口的位置很奇怪,看著就難受,而且會影響補色。 神剪+打磨(低目數至高目數砂紙) 有效消除明顯水口的方式,最後只會留有白點或深色的一點。看個人需求,是否可以無視那「一點」。另外因為打磨量多,塵土飛揚,需要注意環境影響。 神剪+打磨(低目數砂紙+筆刀水平刮) 能除去水口,但平面不平整,很多時會見到刮痕,比較不可能無視。筆刀刮出來的碎屑比較大粒,沒有那麼大塵。 神剪+Marker補色遮蓋 不能遮蓋水口,因為有高低面,造成積漆,所以會很奇怪。跟只有神剪的效果差不多,非常不推薦。 神剪+打磨(低目數至高目數砂紙)+消光 更大程度模糊水口剩下的那「一點」。工作量雖多,但效果算是上好。 神剪+打磨(低目數砂紙+筆刀)+消光 水口、刮痕會被模糊,正面看就看不到刮痕,側看還是很明顯。 神剪+打磨(低目數砂紙+筆刀)+Marker補色遮蓋 因為筆塗漆面比較厚,水口及筆刀的刮痕基本都可以被覆蓋,平面不平整的問題就沒有辦法解決。另外筆塗會引入筆痕、塗裝出界、刮漆的問題。 神剪+打磨(低目數砂紙+筆刀)+Marker補色遮蓋+保護漆 保護漆可以減少前述刮漆問題,仍需無視平面不平整的問題。如果想更進一步防止刮漆,需要向底灰進發。底灰已超出了素組的範圍,就不作太多描述。 神剪+打磨(低目數至高目數砂紙)+Marker補色遮蓋+保護漆 理論上是最優解,工作量也是最多的。 該選擇什麼? 初入門,可能「神剪」就夠。因為工作量最少,效果最顯注。 進一步就是「神剪+打磨(低目數+筆刀)」,優點亦是工作量沒有多很多。同時可以挑戰刻線滲線,工具和流程也沒有很大衝突。 實在像筆者那般,接受不了那「一點」,就「神剪+打磨(低目數+筆刀)+Marker補色遮蓋。筆刀比高目數打磨省時,Marker也可以完全遮了那「一點」。 至於為何不用消光漆呢? 首先,噴鑵消光的成本是很高的,想好好地逐個部位噴,很快就會用完。 第二,消光的作用是讓高達模型的那層膠面不再發生,看起來沒有那麼玩具感。而我們前述經打磨和補色(什至是色差補色),原本顏色已經豐富好多,使用消光漆的差異唔太明顯。 第三,就是後期修補更難,消光漆想想地清理,是非常之煩。一定要確保各項工序做完,例如修正出界、滲線不乾淨、重滲線問題,再去上消光漆。不過如果全部做足了以後,可能已經沒有很想消光的必要。

如果把一款課金手遊當成單機speedrun遊戲玩會怎樣?04
手機‧電玩
MacauYeah・2025-06-25

ZZ、Seed 2 Lv40 起跳 個人感覺跟之前W差不多,不易,但也不難,原本有經過W的提升,相信大家的自由部隊應該很有實力。再加上ZZ和Seed 2 可以沿用Z和Seed的機體,原本遊戲機制,限制你的出場機體,所可能的影響相對少很多,大部份都可以自動去打。間中有不滿三星的關卡,再強化機體重新挑戰應該都可以達成。 水星的魔女 Lv50 起跳 經過ZZ後,主線關卡後段開放,玩家可以自由選擇不同系列。筆者就選了水星的魔女系列。水星前半關卡不能說是很難,但就是沒法自動取得三星評價,致使本系列SR機體難以開發。那怕你把系列機體升級到50、70,自由系列升級到滿級(80, 90, 100),自動操作都只可以取得二星。主要是關卡中敵方雜兵太強,系列部隊只有送頭的份。筆者回頭重複挑戰,必需轉為手動操作,調配自由組隊(即2隊)才有等級優勢。 為了之後的其他關卡團積優勢,筆者進一步強化自由組隊的機體,魔女系列真的得過扯過。 00系列 Lv50 起跳 筆者自由組隊的機體已有5台主力基本等級升滿,(武裝及突破未升)。在00前期關卡,攻擊力還可以,可以一發攻擊收掉一個敵方機體。但後期則出力不足,自由部組隊也需要協力才能收走對方。更嚴重的是,開自動模式的話,可能會出現我方重要機體被擊破而Game Over的問題。為了穩定,基本也要手動操作過關。00開發路線中,也因為沒有取得足夠的開發資源,筆者在後半亦只有開發出四小強中的三台,實在有些勉強。如果未有遊玩的讀者們,可以試一下別的系列,團一下機體突破資源。 機體數值 雖然每個系列最後都可以最後SSR機體,但因為素材取得難,需要不斷重打困難關卡,而且困難關卡無法用免費/付費課金石去回覆略過次數,所以真要升級只能逐關掛機刷。筆者現況,SSR最多只可以突破至一星(主線首次通關數素+困難關卡的首次完成獎勵),但這個時間成本相當,所以有必要嘗試替補策略。 筆者育成機體不多,就以泛用性以前題下,用兩台seed系機體作為測試 SSR完美突擊,初始90級上限,一星突破,海陸空三地適用。 SR自由,初始80級上限,二星突破,海陸空三地適用。 只看攻擊力的話,SR自由有高一點點,勉強可以作為替代戰力。但防禦力及機動力明顯有差,自動模式下抗壓性不高。需要手動打Combo,以減少自動分散攻擊引發的被反擊問題。日後筆者可能會以其他系列作實驗,粗略計算一下二星SR及一星SSR的時間成本比較。

重入膠坑 9 |加深刻線
手機‧電玩
MacauYeah・2025-06-20

之前就為大家介紹過,想有效率地消除Gunpla山積,事前計劃好一個概定的流程,絕對是件很重要的事。筆者亦有分享一過自己使用取件表的效果,對素組黨是有一定的好處。有時筆者亦會使用極簡版的素組流程,完全制作局部的部件,再進行下一部份,就只需兩個零件盒就夠。 最近,筆者就想再次升級,進行刻線加深再滲線,然後補色,那麼之前極簡版的步驟就不完全適用了。主要因為滲線部份,依據刻線的熟練度及不同顏料的特性,某些步驟要提前,關於顏料的部份可能一次性地使用會更佳。 簡單回顧之前素組流程:剪件→修件→打磨→組合→滲粗線→補色→保護漆。 現在,我們想利用刻線的方式為更多高低面滲線,至少要在完全組合之前就去刻。又因為刻線容錯率問題,刻線出界時,很多時需要利用打磨的方式修正。而且打磨之後,因為表面不夠光滑,水性滲線液比較難以擦乾淨,所以就在打磨之前滲線,可以避免一些奇怪的情況。 現在可以改成:剪件→修件→刻線→滲線→打磨→組合→補色→保護漆。 如果你的是琺瑯漆滲線液,只要刻線夠深,比較沒有擦不乾淨的問題,所以你可以考慮以下組合。 琺瑯漆滲線流程:剪件→修件→刻線→打磨→組合→滲線/補色→保護漆。 到底是先滲線還是先補色,就視乎補色顏料的附著力和互相溶解的問題。道理上補色marker附著力不強,怕在抹滲線漬時同時抺走marker,可能先滲線後補色會好一點。 最後,就再補充一下極簡步驟中,想完整完成一個局部區域再去下一步,這個想法理論上可行,只要大家不計較滲線液、水性漆的消耗率(利用率),是可行的。 全件修件後,之後再全件滲線,這樣滲線性就一次性地使用。這樣可以減少滲線性濃度不一致的問題,也差少在攪拌時出現的浪費(司特力的原裝瓶實在很易出意外,不如田宮的穩定)。補色方面也是,即使是經過調色,如果可以一次性地使用,就可以減少色差和消耗。如果大家不在意這些問題,也就不需要全件完成才進入下一步。即使在全件規劃的情況下,有時還是會因為失誤,而需要反工。

Swarm mode 上線 6 | OS升級前的準備
科技新知
MacauYeah・2025-04-08

如果大家一直有跟進安全更新,基本上每個一至兩個月,都會有OS kernel和Docker Engine Update。也許大家習慣還是以不變應萬變,但有些時候還是不可避免地遇到嚴重漏動,需要強制更新。那麼當我們在這個情況時,我們該如何做呢?在開始做之前,我們先測試一下Swarm的容錯率有多高。 官方就宣稱,只要swarm中,manager例下的數目沒有超過半數,就依然可以運行。這個部份,筆者相信大家一早就感受過。但筆者認為,在直正出意外的情況是,少於半數的manager倒下了,但其餘的manager又不幸要重啟,到底又些活著的manager,又可否成功重新啟動?所以下面就來做些測試。 測試1 測試REPO 初始化script initDockerCluster.sh 筆者在原本的教學中,就有一個3個manager node + 2 worker node的範例,我們只要安裝ubuntu OS, packer, 並使用 # run setupMultipassWithFixIP.sh will install multipass and config fix ip ./setupMultipassWithFixIP.sh # install packer, please refer to https://github.com/macauyeah/ubuntuPackerImage/blob/main/README.md packer init template.pkr.hcl packer build template.pkr.hcl # initialize docker cluster in multipass ./initDockerCluster.sh 在上述的環境中,node21, node22, node23是manager, node24, node25則是worker。在全關的情況下,只要正常啟動兩台manager,worker就可以成功復活。 測試2 測試REPO 初始化script initDockerClusterLoopJoin.sh 筆者寫了另一個起始方案,會有5個manager node,而且依賴順序如下 node22 => node21 node23 => node22 node24 => node23 node25 => node24 node21 => node22 # initialize docker cluster in multipass ./initDockerClusterLoopJoin.sh 在上述的環境中,5台機也是manager。 initDockerClusterLoopJoin 的前半部份,它會建立順序依賴,即每一台機器,都經前一台機器進行加入的動作。而後半部份會把node21刪掉,並經multipass用一個全新的guest os重起,重新加入到。 在全關的情況下,只要正常啟動三台manager,它們都可以繼續運行。 這個測試的例子表明,即使原本作為依賴的機器死了,只要群齊中其餘多數manager仍然存在,它們也是可以復活的。更重要的是,即使最初引領一切的node21死掉了,什至是被刪掉重來,也是相安無事的。 結論 更新時,最保守的做法,是先加入新的manager,再除去舊有的manager。但這個做法下,manager的IP就不可避免地被改變。若然DNS或者防火牆沒有相應的自動化幫忙,先加入再替換就變得很痛苦了。 而上述的測試,其實代表了我們可以先暫停或移除舊有的manager,更新完後再接回去,這樣部份IP就可以重用。我們只要維持多於原本半數的manager活著,然後逐一替換或升級原有的機器,也不會有問題。即使在升級途中,其他manager不幸地斷線,重啟後它們還是有條件自行修復。我們也不需要顧及更新順序,只需想好Virtual IP的分配策略就足夠,其餘就像是單機升級一樣。

重入膠坑4 | 走線滲線的選擇
手機‧電玩
MacauYeah・2025-02-14

重入膠坑將近大半年,筆者陸逐實驗了過去不敢做的東西。前幾次就分享了剪鉗、打磨、補色的心得,時代真的一直在變,很多東西已經不需要大師級就可以動手做,而且有一定美觀效果。 例如薄刃剪+打磨+消光漆,已經一定程度可以淡化水口。用不著全上色,也就意味著普通人做個後樓梯勇士噴噴消光就可以了,其餘都是室內一般環境可以操作。當然打磨部份可能要加水,才能減少對健康的影響。 又例如補色方面,很多水性馬克筆可以選擇,軟筆頭可以大面積筆塗,很多品牌還是無味無臭,家裏隨時可以使用。相較以前動不動要用溶劑開油、洗筆,不方便且很大異味,水性馬克筆可謂極其方便。 這次筆者再來分享一下滲線和加深刻線的心得,希望退坑很久的淺度用戶們,有機會都可以試試這些簡單的操作,美化自己過去的作品。 2B鉛筆是神物 在十多年前,看教學,一定會教滲線筆和滲線液。滲線筆應該是那時候最易勾劃出立體感的工具。滲線筆其實是一些很幼細的油性馬克筆,但不論筆頭多幼細,走線時都嫌太粗了。所以筆者過去很長時間,都不滲線。但慢慢地,有網友提出了使用鉛筆勾線,一來隨手可得,二來勾錯也可以很容易擦了重來。 筆者試用過,大推這種做法。不過有兩點要注意的 筆頭要夠幼,走線勾線時才不會勾在坑的兩邊。平時寫字用的0.5是太粗了,那怕用畫面專用的0.3也是太粗了(也貴)。但其實我們可以自行手動磨尖筆頭,這樣才能上色到坑中間。不過磨尖了,代表筆頭很易斷,力度要很溫柔。 馬克筆上過色或上過消光漆的地方更易使用2B勾線。筆者未知確切原因,但感覺上是因為漆面不再原始膠面那麼光滑,質感更像A4紙張,2B筆跡更易留在模型表面。 加深刻線再滲線 在那個古早的過去,滲線液也是自行經法瑯漆稀釋調配。但現在就已經有現成的滲線液可以即開即用。某牌子的滲線液,其實也只是法瑯漆預先稀釋的成品,筆者也先針對這類滲線液做介紹。 這類滲線液是利用管線的毛細現象達到滲線效果,但為確保滲線液的流動性,模型原來的坑線需要先加深,而且在沒有消光漆的情況下使用。(如已使用消光,要重新噴光油,讓表面回復平滑,滲線後再重新消光)。這些都是教科書般的操作。 筆者想分享的,主要是刻線及滲線時機的部份。通常教科書是上色後再滲線,所以一般是假組、打磨、加深刻線、上色、滲線、保護漆(光油/消光)。但若我們只是素組補色,筆者就試行假組、補色、加深刻線、滲線、打磨、再補色、保護漆。 第一次的補色主要為大面積補色,補完後就進行刻線滲線動作,打磨要留在刻線之後,主要是因為刻線容錯率很低,不一小心就刻出界,打磨可以一定程度修補刻錯的地方。真的不行,就再少量補色。打磨過程也可能引起刮漆問題,再補色是必需要。 第一次大面積補色,若為淺色系列,可以用2B鉛筆直接走線勾線,不需要刻,減低出錯風險,劃出界也可以再補色。 水性馬克筆滲線 之前一直有講,水性油易被刮漆,但我們也可以反過來利用這點,直接用水性筆走線勾線。在沒有上色的部份,我們可以直接刻線,再用水性馬克筆走線。走完之後跟滲線液有少許差別,我們需要趁著水性油完全完乾之前,就用紙巾擦走多坑線周圍的部份。(但如果本身有上色,就只能回到2B鉛筆及滲線液的方向,這樣才不會出現擦走底色的問題。) 這個做法的好處是,我們顏色的選擇多了,也沒有法瑯漆X-20溶劑爆膠的風險。刻線部份依然會有出界問題,處理方式同前述一樣。 以下就是筆者運用上面所講的方式的實驗作品,右半是2B勾線及水性馬克筆滲線混合使用的效果,左半則是完全沒有塗裝/補色的狀態。

Swarm mode 上線 5 - load balancer | 負載平衡器
科技新知
MacauYeah・2024-10-28

前面我們一直談 swarm 的設定,但對於真實的服務,我們還要考慮客戶端是如何連接我們的伺服器群集。通常網路服務,客戶端都會經過域名轉換成IP,然而通過IP連線服務。 Ingress Network 假設我們 swarm 內有5個節點,那到底域名應該指向我們哪一個節點的 IP 呢? 如果我們不考慮節點死機的話,其實5個節點的IP都可以。因為 swarm 會自動把同一個公開的 port ,在每一個節點上都可以訪問到。 以下例子,即使只有一個 container 運行,佔用 port 8888,它還是會在5個節點上全開。 swarm 通過自己的 ingress network,它所有節點的 8888 串連起來。 services: http: image: bretfisher/httpenv ports: - 8888:8888 deploy: replicas: 1 update_config: delay: 10s restart_policy: condition: on-failure 我們可以在每個節點上,都會找到這個 ingress network,而且那個Network ID,應該是一樣的 > docker network ls | grep ingress t7rmk6g9zybm ingress overlay swarm 如果上述的 service 的 replicas 調成大於1的數量, ingress network 還會方便地自動 round robin (輪替) 地分派流量,達到最簡單的負載平衡。 Virtual IP 前述的設定,我們有一最大的假設,就是節點不會死機。但實際情況下,各種原因,例如安全性更新、重啟中,都會讓節點暫時無法使用。即使所有 service 都是會自動 failover (故障轉移),但客戶端還是用舊機 IP ,它還是無法訪問。因為該機 IP 已無法使用,除非我們連 IP 也懂 failover。這時, Virtual IP 就是我們的救命靈藥。 在 ubuntu 上,我們可以經過 keepalived 去設定 Virtual IP apt-get update && apt-get install keepalived -y 然後設定 keepalived , 假設 172.22.1.5 是我們的 Virtual IP 。 然後每個節點都要加入conf # vim /etc/keepalived/keepalived.conf # assume failover ip is 172.22.1.5 vrrp_instance VI_1 { # change interface according to machine status interface eth1 state MASTER # 101 for node1, 102 for node2 # you can start seq from other value, remind unqiue for each node is ok; virtual_router_id 101 # lower value will become master # ex, node1 priority 100, node2 priority 200, node3 priority 150. # if node 1, 2, 3 alive, node2 will become master. # if node 2 gone, node 3 will become master. priority 100 advert_int 1 authentication { auth_type PASS auth_pass YOUR_RANDOM_PASSWORD } virtual_ipaddress { 172.22.1.5 } } 上述需要特別注意的是 virtual_router_id : 每個節點應該都要不一樣,以作唯一標識。 priority : 每個節點應該都要不一樣,最大的那個節點,就會優先使用 Virtual IP 。 auth_pass : 每個節點都相同,但大家在抄時,記得更改。 還有的是開通 iptables ,讓各個節點可以經網絡廣播的方式互相看到對方。 iptables -I INPUT -d 224.0.0.0/8 -j ACCEPT iptables -I INPUT -p vrrp -j ACCEPT systemctl restart keepalived