搜尋

搜尋結果

素食餐廳指南【2019更新版】
有機健康
Wish? Do!・2019-10-21

澳門素食餐廳指南 更新4.10.2019 如有錯誤,請通知,謝謝) 更多素食推介:澳門新派素食,精選特色餐廳推介! 澳門本島 亭一亭蔬食漢堡 (餐廳) 紅窗門天通街20號A 電話:66983483 (外賣店)南灣區華利前地公園(新八佰伴與南灣商業中心之間) 電話:63877345 (外賣店)宋玉山公園内 電話:65211943 httpswww.facebook.comTingTingCafe 素middot;薈 The V. Club 南灣壹號G, H, I舖 電話:28228166 httpswww.facebook.comthevclubmacau Cuppacoffee (素食友善) 澳門商業大馬路145號南灣壹號地下P 電話 28389916 httpswww.facebook.comcuppacoffee.macau 新精進素食 澳門柴船尾街71號鴻昌大廈地舖 電話:28356703 httpswww.facebook.com%E6%96%B0%E7%B2%BE%E9%80%B2%E7%B4%A0%E9%A3%9F193175414178345 營樂居高級水果素食早餐店 澳門南灣大馬路63號 電話:6223 3929 httpswww.facebook.comhealthyf00d 功德門素食餐廳 澳門馬濟時大馬路114號珠江大廈地下AA舖(電召的士旁) 電話:28310993 健康概念 Concept H (外賣,素食材料) 荷蘭園馬大臣街10A號廣發大廈地下 電話 65579832 httpswww.facebook.comConceptHMacau 賦月閑居 荷蘭園二馬路7號GH地下A 電話:28353828 葵花素食 荷蘭園二馬路33號A地下 電話:28350618 天廚妙供 荷蘭園二馬路27E號地下 電話:28523219 八分目 水坑尾巷12A號啟華大廈地下A號舖 電話:66778669 注:晚餐私房菜須預訂 httpswww.facebook.comoctaspace1 清清哋 (私房菜須預定) 澳門瘋堂新街6號盛華2樓地下 電話:63813800 名仕養生堂 (外賣店) 新馬路大炮臺下街21號新益地下(近哪吒廟) 電話:66818133 塘苑 澳門東望洋新街54號美輝大廈地下 電話:28973235 素友品味(外賣店) 澳門連興街8A號連興樓地下 電話:66884635 httpswww.facebook.comgroups585710431595411 Veggie Castle素食堡 富運台8號澳門富運台8號 電話:68296348 httpswww.facebook.comVeggieCastle%E7%B4%A0%E9%A3%9F%E5%A0%A1487661004969184 祥記素食(外賣店) 澳門連勝街53號A座地下 電話:66582196 吉祥草 澳門連勝街2E號聯成大廈 電話:66582003 Puffin Cafe(素食友善) 花王堂街14號MO 花王堂街14C 新運大廈J舖 電話:28836663 httpswww.facebook.compuffincafebaron Vega Vega 我行我素 十月初五日街9號利來大廈地下A座 電話:28802092 httpswww.facebook.comVegaVegaMacau 養生素食園坊 外賣店 亞利雅架街6號B,三勝新邨地下Q舖 電話:68811706 上海緣素食餐廳 柯利維喇街6666號A地下A 電話:28358338 素.茶舍Veggie Macau 連勝馬路28A 28D泉勝軒地下A座(連勝馬路來來斜對面) 電話:28733751 httpswww.facebook.comVeggieMacau 愛素食 Love Veggie 澳門連勝馬路18號永勝大廈地下連閣樓 電話:28358793 濠江春 澳門士多鳥拜斯大馬路43AE號江昌大廈地下 電話:28755320 httpswww.facebook.comHoukouchon__tn__=%2Cd%2CPRamp;eid=ARAr7ZmavYntE3CgHIVSet0RcCTsoET8ZY1D2Xpst_hLc6RlV5qrA0dpSAZ4yVgEw5aYW8b_2GDTun_0 妙善坊 荷蘭園大馬路132號地下M 電話:28527768 心素 澳門美副將大馬路64號,美富新邨第二座地下A1單位 電話:28525875 長壽齋 連勝馬路98號G地下 電話:28217627 蔬食。好容易 雅廉訪大馬路72號 電話:62220688 httpswww.facebook.comveggieatease 森之家咖啡館 澳門塘巷10號地下 電話:28336872 httpswww.facebook.com%E6%A3%AE%E4%B9%8B%E5%AE%B6%E5%92%96%E5%95%A1%E9%A4%A8ForestHomeCafeCafedaFloresta228733681374081 慈恩素食 (外賣店) 澳門道咩卑士街42號地下 電話:66120308, 63188321 慧善素食(外賣店) 沙梨頭羅白沙街34號地下 電話:28216873 S joey 廚房 素食友善 澳門石街70號地下 電話:66506699,6388133 Drsquo;light Dessert Cafeacute; 素食友善 澳門沙梨頭海邊街9090A, 利行大廈地下A鋪, 灝景峰百佳超市停車場旁邊 電話: 28556332 httpswww.facebook.comDlightdessertcafe 吉祥素食專門店 (素食材料店) 雅廉訪大馬路101號 電話:28216135 httpswww.facebook.comjixiangmacau 宏達素食生活館 (素食材料店) 罅些喇提督市北街1315號地下A 電話:28217630 陌田有機生活館 (素食材料店) 澳門連勝馬路4646D地下B座 電話:28217433 httpswww.facebook.comgreenfield282 尚膳蔬食 河邊新街259號新福花園地下B、C座 電話:28932822 httpswww.facebook.com%E5%B0%9A%E8%86%B3%E8%94%AC%E9%A3%9F1581727198779274 紫來坊 河邊新街286號 電話:28331811 天惠緣素食 (外賣店) 台山菜園涌邊街濠江花園第四座地下D舖 電話:62115819, 65602549 普善齋(外賣店) 筷子基飛喇士街81101號聯薪廣埸地下來來超級市場G號舖 電話:63986890 仙臺素食 (外賣店,素食材料)澳門義字街5B號長信大廈地下 (外賣店,素食材料) 筷子基龍天燒臘舖後面(Daiso隔離) 電話:66586384 儒意齋(外賣店) 澳門黑沙環馬場大馬路百利新村第二座地下E鋪 電話:63809933 一方齋 (外賣店) 澳門祐漢新村第四街68號地下E43 電話:66817781 培德素食 (外賣店) 澳門永安街8號信託花園金成閣地下 電話:62727828 金口福素食 (外賣店) 澳門看台街222號信託花園銀成閣地下 安泰來泰式素食 澳門黑沙環第四街1820號萬利樓地下A座 電話:28403019 品誠素食 (素食材料店) 黑沙環永樂街47號康樂新村第五座地下G 電話: 66994333 氹仔 Blissful Carrot 幸福甘筍(外賣店) 氹仔舊城區施督憲正街79A高輝閣地下B舖 電話:62988433 httpswww.facebook.comblissfulcarrot 心椽 特色素膳館 氹仔盧廉若馬路 10641094 號地庫層菩提禪院 由米尼奧街門口進入 電話:28812698 httpswww.facebook.comsumyuenmacau 菩提禪院 氹仔盧廉若馬路 10641094 號 電話:28811007 圓沙律(外賣店) 澳門氹仔佛山街13號樂駿盈軒第一座AU舗B部份商場鋪 電話:65278951 httpswww.facebook.comCircleSalad Cuppacoffee (素食友善) 澳門氹仔飛能便度街104~106號 電話:28825201 httpswww.facebook.comcuppacoffee.macau 緣藝坊 (外賣店) 氹仔福隆彩巷19號(即官也街鉅記後面小公園可見) 電話:28965916 華宜嘉素食 石排灣蝴蝶谷巴士總站上一樓 電話:63797676 Rawlicious Kitchen 生機飲食 httpswww.facebook.comrawliciouskitchen 資料已得到原作者授權使用及轉載

Swarm mode 上線 5 - load balancer | 還有那些事該考量?
科技新知
MacauYeah・2024-11-18

前面介紹了 ingress network ,亦介紹了 proxy gateway 。能做到的基本都做到了,再來就是考量安全性的問題。因為加了 proxy gateway ,前述的例子是所有 service ,都放在同一個 yaml 檔中。好處是,所有相關的東西存放在同一個檔中, gateway ,背後的 service 都一眼看到。但壞處就是有其中一個 service 更新,都要改那個 yaml 檔。更大的問題是, stack deploy 的指令,不單只更新其中一個 service ,就連其他 service 都會自動取得最新 image 而 redeploy 。 對於一個緊密的系統來講,同步更新可能不是大問題。但對於一些預定排程發佈的系統可不能這樣因為副作用而更新了。如果你也有這樣的分開管理需求,可以參考下面做法,把 gateway service 及 upstream service 放在不同的檔案中,然後經過 external network把所有 service 串連起來。 # nginxstack.yaml, docker stack deploy c nginxstack.yaml nginx services httpgateway image httpgateway ports 80808080 deploy replicas 1 update_config delay 10s restart_policy condition onfailure # managerstack.yaml services managerhttp image bretfisherhttpenv networks nginx_default default deploy replicas 3 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==manager networks nginx_default external true # dmzstack.yaml services dmzhttp image bretfisherhttpenv networks nginx_default default deploy replicas 2 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==dmz networks nginx_default external true 這樣,不同 service 的維護人員,就可以獨自控制自己的檔案。在第一次發佈時,確認 nginxstack.yaml 先行發佈就可以了。對應的發佈指令是docker stack deploy c nginxstack.yaml nginx,它會自動産生一個 nginx_default (即 stack名字_default )的網絡。之後其他service,就可以經networks的設定找到它了。 services YOUR_SERVICE networks nginx_default default networks nginx_default external true 上述即使分離檔案,在安全性考量時還是有一個問題,就是 ingress network 的問題。試想一下,dmzhttp (Demilitarized Zone)原本被設定的原因,就是想限制某些訪問只能一些可以公開的服務。但因為經過 ingress network 之後,它們會在所有機器上開放這些 port。那就是,以下面的例子來講,若 dmzhttp 是公開的服務, intrahttp 是內部服務,即使用 intrahttp 使用不同的port 8889。但一經 swarm mode 預設的 ingress network ,在node.labels.zone==dmz的那些節點,還是可以訪問到 intrahttp 。 services dmzhttp image bretfisherhttpenv ports 88888888 deploy replicas 2 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==dmz intrahttp image bretfisherhttpenv ports 88898888 deploy replicas 3 update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==intra 我們前述介紹的 proxy gateway ,其實已經有一定程度可以解決這個問題。因為 proxy gateway 是根據 http 協定中的 host header 去做分流。在邊界網絡進來的「合法」訪問,道理上會好好地經引導到我們的 dmzhttp 。不過網路的邪惡可容小看, proxy gateway 也會有被騙的一日。有特定能力的攻擊者,只需找到目標域名,還是可以接觸到 intrahttp 。 若要做進一步隔離,在這種情況下,我們可以在 dmz , intra 機器中各設定一套 swarm ,完全獨立,這是最安全的做法。但這樣做的管理成本就會變高,因為兩個網段都會有自己的 manager 節點,而且在 dmz 網段的 manager 節點也有被攻擊的可能。 若我們回到單一 swarm 的方向,可以修改各個 service 中的 port 和 deploy 。利用 post mode 中的「host」,配合 deploy mode 中的「global」,完全跳開 ingress network。 services dmzhttp image nginx ports target 80 published 8888 mode host deploy mode global update_config delay 1s restart_policy condition any placement constraints node.labels.zone==dmz intrahttp image bretfisherhttpenv ports target 8888 published 8888 mode host deploy mode global update_config delay 10s restart_policy condition onfailure placement constraints node.labels.zone==intra 上面的例子中, dmzhttp 會在所有 dmz 的機器中,每個節點只運行一份服務,而且直接使用該機的 8888 port ,外面不會再有 ingress network 的 存在。同樣地,intrahttp 會在 intra 的所有節點,運行一份服務,佔用它們的8888 。這兩個服務,即使使用一個 port ,swarm 也不會說有任何問題。因為它們不會經 ingress network 搶佔其他人的 8888。 可能會有讀者問,如果 host mode 這麼安全,為什麼預設會是 ingress network,那我們就要先了理清 ingress network 與 host mode 有有什麼分別?假設我們只運行一個service,它佔用8888。 功能ingress modehost mode replicas 數 同一個 service replicas 為任意數量,什至比節點的數目多 因為有 port 限制,每個節點最多只能運行一份 Virtual IP Virtual IP 任意在節點中跳轉也可以,因為 ingress 會自動找到對應的 service 所在的節點 Virtual IP必需要與 service 所在節點綁定,其他節點訪問不到 load balance 有 沒有 host mode 就像我們傳統在各自的節點上自行佈署自己的程序,各個節點只有一份。所以不會有自動 load balance 的效果,如果客戶端訪問固定的IP,就會得到是固定的接器接受請求。我們有需要,就要在前面加一個 Proxy Gateway 或 HA proxy 。 Virtual IP 也一樣, host mode 下需要好好地自動跟著 service 的生命期,不過幸運的是, Docker 預設己經有自動重啟 service 功能,即前文中的 restart_policy ,它在 host mode 下也適用。如果大家有配合 deploy 中的 global mode , Virtual IP 的並沒有實際變動。但如果沒有 global mode ,就要再想想辦法了。 最後考慮 load balance 的問題,如果進入點的 service 的真的不太消耗資源,沒有 load balance 也是可以的 ,但若超負荷,就必需要自建 proxy gateway 。經過進入點後,若我有背後的 service 就沒有所謂的 ingress 和 host mode 選擇。

【大灣區】原生態鶴山 § 古勞水鄉 §
旅遊情報
莫雪・2023-11-28

【大灣區】 原生態鶴山 sect; 古勞水鄉 sect; 離我們澳門不遠的江門市的鶴山古勞水鄉, 素有被譽為 「珠三角最後的原生態水鄉」。 這裡的小鎮有古老的榕樹, 縱橫交錯的水鄉河道。 來到古勞水鄉值得你座上遊船, 體驗水鄉原生態風情, 看沿水道最美的風景, 數數水鄉河道有多少個像星羅棋布的魚塘。 遊船行程大約40分鐘, 河道全長6公里的水道, 時間相當充裕。 船上大伙們盡情體驗河道兩旁風光, 享受河上微風輕忽, 看兩岸濕地的茂密繁枝, 漁夫佈下的特色捕魚網具。灣灣水道, 每轉一灣, 總有不同的風光等你細味。 古勞水鄉內水網縱橫交錯,小艇穿插遊走, 偶見岸上蕉樹搖曳。河道似明鏡清澈, 遊船像在綠海翻波,正正是一派旖旎的南國水鄉風情, 讓你心神盪漾,悠然自在。 享受水鄉風光, 看那一口口的魚塘、狀如蜘蛛網一樣密佈的大小河涌, 演變如一幅幅詩畫般的美景,令人沉醉其中, 拍照録影隨你歡喜。 若是夏天去的話, 還可以見到河上滿佈的荷花花海盛放, 因當天我們見到已是河上滿佈枯乾荷枝, 又是另一番秋冬蕭索。 珠江三角地區最典型的水鄉, 長長的一條大堤把水鄉與美麗西江分隔, 堤內有大小不一的魚塘, 原來已有擁有逾600年的歷史, 古勞是鶴山市的一個鎮, 鶴山古勞水鄉位於 鶴山市東北部西江邊的古勞鎮,屬半丘陵半堤圍水網地區。 這小鎮有魚塘和耕地共14300多畝,是典型的濕地生態地貌, 由以前的平凡小鎮逐漸演變成今天的嶺南水鄉, 成為了廣東十大美麗鄉村之一。 遊罷水鄉, 可以走走小鎮街道, 看看世界品牌麥當勞和KFC落戶在 中國具中國元素的特色門店, 看看行銷海內外, 家醬園製作的傳統醬料 「古勞面豉」, 相信大家平常家菜也會試過的味道。 也可以順道往附近的江門五洞牛肉村, 試試這條村多間的特色鮮制美味牛肉、以及某網紅出品, 才$15元却是大大個的香脆咖哩牛肉波羅包, 要數人分吃才可以把它幹掉hellip;哈哈 # 橫琴 ※ 二井灣濕地公園 ※# # 神農架大九湖濕地公園# 其它文章, 詳情請點擊澳門科學館「蒸氣誌電子月刊」 內之「近代中國科學家事蹟及其精神」 httpswww.msc.org.mozhflipbook55STEAMISSUE 本篇文章、相片版權屬作者所有,經由版權持有人授權CyberCTM.com發表。 聯絡及邀約 irene801802@hotmail.com

幸福不丹 ︳不丹國菜及十大必吃清單
走遍世界
行走世界記錄・2019-06-03

看不丹美食有什麼之前,先帶大家看看不丹國民的日常菜市場,看看原材料有甚麼種類,大概也知道當然美食有甚麼了。 辣椒,我們用來配菜,不丹國民將辣椒直接做成主菜!辣椒遇上芝士,活生生的演變成不丹國菜,沒有任何賣相可言的國菜,亂成一坨!但味道不錯呵。辣椒芝士Ema辣椒 Datse芝士,辣椒炒芝士,芝士燉辣椒,反正就是辣椒加上芝士,我們的導遊先生Pasang及司機大哥Dorjee,無辣不成餐,他們的辣不是港澳人理解的辣。 這就是辣椒芝士 沒錯,辣是不丹料理的主旋律。不吃辣,在不丹是否沒東西吃?不是啦,不丹國民有不丹國民自己的料理,遊客有遊客的美食,一落地,導遊獻上哈達後,差不多首句就問,你們吃辣嗎? 其實,於我,不丹沒有我概念中的美食9天行程所吃論,但非常有本土特色,沒有任何吃不慣的問題發生,在帕羅、辛布、普納卡,早晚餐在酒店享用,全是自助餐形式,選擇多總有對胃口的,午餐一般在景點附近或途中餐廳吃改良版的不丹菜,尚算不錯。餐廳環境也極佳的,你看hellip;hellip; 極度渴望品嘗一次不丹地道料理,正宗不丹人家庭烹調那種,導遊先生Nima看懂中文嗎?請我們到你家做客吧。聽到呼喚嗎?哈哈! 9天裡吃了甚麼?甚麼最好吃?不丹全民信教不殺生,飲食以素食為主,但也有肉吃!肉類來自鄰國印度。同時, 一年有兩時間段因齋戒月全國肉鋪關門歇業,國民不吃肉但遊客會有肉吃啦,食肉獸別擔心!肉類多數是牛羊雞肉,豬肉少見,魚只在帕羅第一餐吃過外,就再也沒見過了,不知道甚麼原因。沒海?還是和西藏人一樣認為,視魚為神明? 9天裡,所吃除了蔬菜類是新鮮的外導遊先生強調是無機的!,肉類基本上不是醃制就是風乾的,還有每日必見的雞蛋,或白烚或炒,未見過蒸水蛋,今次去要不要教他們做? 本人喜歡有機菜,還有醃制及風乾的肉類,貪它有嚼口及實在,當然少不了不丹國菜Ema Datse,但只限遊客版,不丹國民版的會一啖菜一啖水送飯。附上必吃十大清單,看單不難發現,不丹國菜辣椒芝士不是浪得虛名的!不丹必吃十大清單 1, 辣椒芝士 Ema Datshi2,咖哩雞spicy chicken 3. 豬肉紅辣椒 Phaksha Paa4.不丹餃子 Momo 5.馬鈴薯芝士kewa datshi 6. 蘑菇芝士 Shamu datshi7.紅米飯 Red Rice 8.酥油茶 Butter Tea9.雞蛋炒芝士 Gondo datshi10.不丹薄餅 Khurle以上十大,小女子只品嘗了辣椒芝士、咖哩雞、不丹餃子、馬鈴薯芝士、紅米飯、丹薄餅及酥油茶。 更多美食相片在 幸福不丹相簿 幸福不丹系列 幸福不丹 ︳這樣掀起不丹神秘面紗省錢自由行分享文 不丹九日遊蹤一直飛雲霄 雲在右峰在左 不丹九日遊蹤二 紅窗白墻下的愛情 不丹九日遊蹤三沒有紅綠燈的首都 不丹九日遊蹤(四)走進世上最年輕全球最英俊國王的辦公室 不丹九日遊蹤五全不丹最美的「宗」 不丹九日遊蹤六 穿上旗拉山過山嶺過嶺只為見他 不丹九日遊蹤七 小瑞士健行 不丹九日遊蹤八 不丹象徵 不丹九日遊蹤九 再見不丹 不丹再見

Spring Web 異步 Api
科技新知
MacauYeah・2025-10-18

在設計網頁應用時,總會有某些功能,是特別消耗時間的,例如我們的應用要提供報表,或長時間搜索。如果,我們的 Web Api 的連結,要強制客戶端等待結果,那麼中途斷線需要重做的機會就變得很高,客戶端的體驗一定不太好。 面對這些情況,我們最好就把原本一個 API 功能分為三個 API 去做。 工作生成 API 查詢狀態 API 查詢結果 API 如果大家有信心,可以把2和3混合在一起,對於客戶端,也是一件好事。不過,2,3 因為回傳的結構可能不一樣,分開處理,程式碼會更易讀。 以下,筆者就以一個模擬報表生成的應用,去解釋如何設計可以即時回傳的 API。 source code springbootwebapiasync ReportController.java 詳細解析 假設我們有一個 ReportController,它負責處理與報告生成相關的 HTTP 請求,它提供三個核心 API 端點。 啟動報告生成端點 @PostMappingquot;reportJobcreatequot; public ResponseEntity createJob String uuid = String.formatquot;%d_%squot;, new Date.getTime, UUID.randomUUID.toString; CompletableFuture.runAsync gt; try orderStatus.putuuid, PROCESSING; Thread.sleep10000; 10second simulated delay reportService.genAndSaveReportuuid; orderStatus.putuuid, COMPLETED; catch InterruptedException e Thread.currentThread.interrupt; ; return ResponseEntity .accepted .headerHttpHeaders.LOCATION, quot;reportJobstatusquot; uuid .bodyMap.ofquot;uuidquot;, uuid, quot;status apiquot;, quot;apireportJobstatusquot; uuid, quot;download apiquot;, quot;apireportJobdownloadquot; uuid; 運作原理: 立即生成唯一的 uuid 來標識這次任務 在 CompletableFuture.runAsync 運行長時間的操作。 API 本身即時回傳了 HTTP 202 Accepted 狀態,告訴客戶端請求已被接受但尚未完成 在回傳的結果中,還有提示可以查詢狀態和查詢結果的API。 這種設計避免了 HTTP Gateway Timeout,因為回應是即時的 。 檢查進度端點 @GetMappingquot;reportJobstatusuuidquot; public ResponseEntity getStatus@PathVariablequot;uuidquot; String uuid String status = orderStatus.getuuid; if status == null return ResponseEntity.notFound.build; if COMPLETED.equalsstatus return ResponseEntity.statusHttpStatus.SEE_OTHER return ResponseEntity.ok .headerHttpHeaders.LOCATION, quot;apireportJobdownloadquot; uuid .bodyMap.ofquot;statusquot;, COMPLETED; return ResponseEntity.statusHttpStatus.ACCEPTED .bodyMap.ofquot;statusquot;, PROCESSING; 單純以 map orderStatus.getuuid 查看狀態結果。這個map 必需是多線程下使用還是安全的 ConcurrentHashMap。 下載結果端點 @GetMappingquot;reportJobdownloaduuidquot; public ResponseEntity download@PathVariablequot;uuidquot; String uuid String status = orderStatus.getuuid; if status == null COMPLETED.equalsstatus return ResponseEntity.notFound.build; else 下載檔案 如果大家並不計較是否需要重做失敗的請求,這個例子已經可以簡單地達到即時異步回傳的效果。如果大家還需求考慮請求是否有效完成,就需要用到 message queue 或其他 job server ,這就不是同一個網頁應用的操作範圍。 Reference source code springbootwebapiasync Building a LongRunning Async REST API in Spring Boot with 202 303 Status Codes

新海誠展 -- 無論錯過誰,都不要錯過總陪在身邊的絕美風景
專題報導
活該快樂 // Carmen Lo・2018-03-07

與其說我喜歡新海誠,不如說我喜歡他筆下絕美的風景,和故事中瀰漫著「失去」卻又一直鼓勵努力的矛盾和哀愁。 假如大家沒有特別喜歡看動畫,應該在電影《你的名字》上映並且大獲好評後,才認識這位宅男動畫家。(我經常在想,怎麼一個從未拍過拖的宅男,可以出品如此入骨的愛情故事?) 場內大量他的手繪分鏡、原始角色設定、原稿、參考照片、經典文句、主題曲及配樂等,詳細地展出他出道十五年來的點滴,從一開始的甚麼都不是,純粹地喜歡繪畫。雖是建築公司老闆的富二代,卻堅持自己的理想,入行從低做起。一直默默地畫,同時接案子以餬口及累積經驗。 果然,投入去做一件事,做什麼也會很美。 就像不斷向一個氣球充氣般,一直充一直充,時間到了,就會燦爛地爆開。 假如說宮崎駿是這個產業的代表,我想,新海誠代表的就是宮崎駿的下一個時代。 新海誠說:「我每天都覺得風景很美。」 他覺得風景很美,他覺得縱使生活在天災下的土地,縱使面對失去早已成為日常,也要抱持積極的信念。 他把這份心情,滲透到每一部動畫中,從《星之聲》、《雲之彼端,約定的地方》、《秒速5公分》、《追逐繁星的孩子》、《言葉之庭》到《你的名字》,無不流露這股氣味。 「聽說,是每秒五厘米,櫻花花瓣飄落的速度。」 置身在這個投射的櫻花樹場景中,被淒美的主題曲籠罩,我竟然有一點想哭。 雨中的涼亭,《言葉之亭》的主要場景,還配有希哩希哩的下雨聲。坐在裡面,真的有一股故事中女主角那「中女等待愛情」的哀戚。 花了很大的一片地方,就為了重現動畫中災難後的經典場景,讓觀眾親身站在圓形的廢墟中,看著三葉和瀧終於找到了彼此。 最後一個展品很有意思,是新海誠幾套動畫合成起來,人物、風景、災難、重逢,一點也不違和。你會發現,他的動畫,其實都是同一個套路,失去,等待,尋找,最終無論等到或等不到,沿路都是絕美的風景。 「我覺得風景是人在最艱難困苦的時候距離最近的救贖。無論如何都無法表達感情的時候,只要退後一點俯瞰,人就會被美景層層包圍,成位浩瀚宇宙的一部分。」--新海誠 提醒我,無論錯過誰,都不要錯過總陪在身邊的絕美風景。 展覽資料:

Lambda 表達式之可讀性
科技新知
MacauYeah・2023-11-24

Java作為一個真OOP物件導向的程式,在設計和編寫上是很嚴謹,什至是囉嗦的程度。近年很多Programmer因為各種原因,都放棄Java跳船去其他語言。 Javascript是其中一個很多人的選擇,因為Javascript有nodejs的加持,在Web世界下,可以同時走frontend、backend路線。而Javacript亦有一個很明顯的特性,就是大部份的library都以callback的型式出現。另外,Javascript也讓很多人覺得很簡潔,這除了是因為它沒有強型態的規限外,另一個原因也是因為有callback的大量使用。 Function Pointer 其實callback,籠統一點講就是在一個function A傳入另一個function pointer B。而編寫function A的作者,並初期並不知道function pointer B的實際操作會是什麼。A作者只是強調在特別定時候,它就會使用這個function pointer B。而這種把function pointer 傳來傳去的做法,就可以看成是Functional Programming的基礎。 Functional Programming除了把function pointer 當成是一等公民以外,還有很多附加要求,例如: Pure Function 它只會使用到自己的Local Variable本地變數,這樣它的作用域就鎖死在Function內部,就不會有副作用。 傳統的OOP,Class中不少變數會以Class Attribute型式存在,雖然它們可能是private attribute,但還是獨立於Function外,這樣各Function的操作,都要靠作者好好地記著Class Attribute的狀態。 Nested Functions 與普通程式語言類似,很多情況下都需要local variable,而Function Programming要足夠好用的話,就需要彈性地在function裏定義local function pointer。 Java Lambda 表達式 其實從Java 8開始,就有提供Lambda表達式,這是一個可以制作匿名function pointer的方法。所以硬要講,Java也可以做Functional Programming。 但必需要盡早強調的是,Java經常性地使用class attribute,它們很多時候都會引申請狀態的概念。即是在它們必需經過特定步驟後,class attribute才會有特定的意義。也就是Lambda表達式想保持Pure Function的特性,它可以使用的時期就有很大限制。 但我們還有必要使用Lambda嗎 以筆者的經驗來講,它還是有作用的,特別在於它可以改善Class Function的閱讀性。 例如下面一個Java Class。它是一個工廠,提供一個服務可以生產一堆車。那些車而需要經過特定檢測,才能推出。 public class Factory ex1 public static List generateListOfCarByForLoop List tempCars = new ArrayList; many other logic many other logic many other logic List passTestCars = new ArrayList; for Car car tempCars if car.getWheels.size == 4 many other check logics many other check logics many other check logics passTestCars.addcar; return passTestCars; 中間的for loop可以用lambda來改寫。 ex2 public static List generateListOfCarByLamda List cars = new ArrayList; many other logic many other logic many other logic cars = cars.stream.filtercar gt; if car.getWheels.size == 4 many other check logics many other check logics many other check logics return true; return false; .toList; return cars; 有人會說,上述ex2只是形式上改變了,沒有特別易讀。就像ex3這樣,把特定邏輯抽成獨立function,才是真正的易讀,對嗎 ex3 public static List generateListOfCarByForLoopFunction List tempCars = new ArrayList; many other logic many other logic many other logic List passTestCars = filterCarsByWheelsSizetempCars, 4; return passTestCars; private static List filterCarsByWheelsSizeList originalList, int targetSize List passTestCars = new ArrayList; for Car car originalList if car.getWheels.size == targetSize many other check logics many other check logics many other check logics passTestCars.addcar; return passTestCars; 上述ex3是一個有效的改進。如果大家不計較傳入參數的先後順序及交互影響的話,就已經很足夠。 但如果大家對於多參數的解讀又怎樣 private static List someotherfunctionList cars, List wheels 大家又會不會突然停住,想想到底是cars影響wheels,還是wheels影響cars 對於多參數的function來講,相互影響就會越來越多,但使用Lambda的話,可以針對性地表達這是一個Predicate Lambda。 ex4 public static List generateListOfCarByLamdaComposition List cars = new ArrayList; many other logic many other logic many other logic List wheels = new ArrayList4; cars = cars.stream.filter filterCarByWheelSizePredicatewheels .toList; return cars; private static Predicate filterCarByWheelSizePredicateList wheels return car gt; if car.getWheels.size == wheels.size many other check logics many other check logics many other check logics return true; return false; ; 就最後的ex4版本,可以很明確的知道是cars被Predicate所作用。 如果大家還有其他使用Lambda的明顯好處,也可以一起來Github分享大家的Code

你開始寫 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進行端到端測試(endtoend testing),測試它在事後的影響範圍。 單純的框架功能:例如資料庫的儲存庫介面(repository interface),雖然是在框架下生成的,對於自己手動調整的部份功能,筆者通常亦不會進行單獨測試,通常都會搭配業務邏輯一起進行。它可以使用 Mockito 進行模擬測試,或用測試環境的真實資料庫進行測試。 面對的挑戰 總括來講,筆者盡可能地把測試用例限定在業務邏輯中,就可以大大地降低寫測試的技術難度。但筆者還是有些問題並未完美解決。 測試用例的數量可能很多,因此共用與維護變得相當困難。逐個用例獨立編寫輸入也是很累的。對於 Mockito 的使用,筆者還是可免則免。因為要逐個功能模擬,編寫量就指數提高,這亦難似配合外部變化。一般來說,能優先使用測試環境或者 Docker 來模擬環境的,就盡量用。 離線開發、離線測試。系統依懶的外部功能越多,想做單機開發的難度就越高。即使前述有 Docker 測試,對於持續整合(CI)來講也是有一定難度。那麼這時,Mockito 就是一個可取的選擇。但這又回到編寫量及難以偵測外部變化問題。 希望這篇文章能幫助你更好地理解測試案例的編寫方向,並在Spring boot web開發中加入你自己的測試!

[PS4] Gundam extreme vs maxiboost on 購買建議
手機‧電玩
MacauYeah・2020-08-03

筆者長期有遊玩的競技遊戲,其實只有兩款 街霸五PS4 和 荒野亂鬥Mobile 然而,筆者也是個Gundam Fans,所以最近PS4推出的Gundam extreme vs maxiboost on,筆者也很想去試玩。 但想歸想,以前作Gundam versus的口碑來看,這一集也很可能不會有新要素。畢境是移值作品,新要素不多,多的只是機體。 而且作為競技遊戲,想直正體會到遊戲的優點角色的差異,要投放的時間真的會很多很多。 如果各位讀者跟筆者一樣,都是Gundam Fans,好想試但又怕伏,就要參考一下以下的觀點再購買。 1. 你愛Gundam還是愛VS 一直以來,Gundam是一個版權,所以Gundam model本身才是開發成本最貴的一樣。如果你是愛Gundam 多於VS的話,可以考慮晚一點降值後再買。 但如果你愛的是VS,就應該要馬上買。因為以競技遊戲來看,初期才能有足夠的線上玩家,特別是新手,可以讓各級水平的玩家都配對到對手。玩起來才不易碰上一些老手扮新手的屠夫。 2. 你對研究策略性操作多熱衷 以競技遊戲的情況來看,除非設計得很無腦,否則不同玩家的等級差距就在於策略操作及熟練度。 在遊戲推出之初,網路上各個大神都還在開發策略中,一般玩家只能算是粗玩粗玩。 你想早期就脫穎而出,就要看很多大神的對戰video,然後自行嘗試不同策略。 不要妄想各大網站可以給出一些所謂的攻略,一來大神們很少會口述某些策略,二來對策是因應多項環境因素而給出的綜合。筆者玩街霸也是到第三年,才見到一些比較有條理的教學video。但第三年,一般輕度玩家,要走的也走得七七八八 3. 你對offline元素有多期待 以PSV 的Extreme VS force 來看,主打的是offline故事模式,但眾人不買帳。PSV雖有聯機,但以PSV的銷量來看,應該沒有誰跟你玩。 以PS4前作Gundam versus,主打online 對戰模式,但配對問題,眾人更不買帳。offline不能雙人對戰,也沒有故事模式,只有該死的稱號系統。 本作回歸原點,有offline 雙人vs模式。online的質素如何,有待評測。發售前故事模式沒有怎麼宣傳過,到底有沒有,大家也不要太期待。 後記實際開Game心得 筆者7月30日正式開Game,試了一些模式上和機體上的改動。 Offline有育成模式,類似VS Force的過關系列,筆者未完全通關。雖然之前眾人不愛VS Force,但其實幾對筆者胃口。對於Gundam不太熟的朋友可在這個模式下慢慢成長,因為有些操作不能在Free battle 中任意練習,反而在Force模式時,有其他另類的測試。對新手來說,能提升命中率比練Combo有用,但Free battle的屬於練Combo居多,Force模式就是熟習機制為主。 Online可開房間友誼賽,房間內可多於4人同時進入,各隊人馬 2vs2,不計排名。入房前可以看到各人的連線品質,確認入後就不斷跟同房的不同隊伍對戰。因為事前看到連線品質,之後比較少斷線 Online可隨機組隊或自己組隊參加排名賽,系統找到排名相近的對手,再問玩家是否確認開賽,所以有機會匹配完雙方決定棄賽。就算強行開賽也有機會斷線。

【農曆新年2020】新年煲劇必備清單!五套人氣電視劇推介+經典必睇賀歲電影推送!
生活在我城
Cheers!・2020-01-21

還有幾天就到新年了!如果待在家無聊的話,不妨找幾部電視劇或電影打發時間,以下推介的清單都是非常火熱的電視劇,保證令你這個新年過得有聲有色! 電視劇推介: 《鐵探》 劇情介紹: 重案組督察尚垶原是警隊明日之星,為救同袍被悍匪轟了一槍,從此改寫一生。尚垶奇蹟生還後,查案比以前更拼搏,贏得「鐵探」美譽,卻終日受後遺症折磨。總警司萬晞華野心勃勃,極有望成為警隊首位「一姐」,而槍傷尚垶的,正是晞華的臥底游秉高。秉高為查案沒有底線,沒料到晞華竟背棄承諾,秉高一怒之下誤傷尚垶,令他悔疚不已,故暗中協助尚垶破案作補償。權鬥令尚垶、秉高變成棋子,幸得總警司程宇森幫助,誓要以權鬥結束權鬥! 《白色強人》 劇情介紹: 公營醫院龍頭「明成北」成為醫療改革的試點,副院長兼腦神經外科主管醫生楊逸滔計劃將明成北打造成集資百億的醫療王國,覬覦成為最高話事人!心胸肺外科主管醫生唐明本着捍衛病人生命,將人命置於醫療制度之上的理念,與徒弟潘懷德並肩作戰,卻被院長呂仲學拉進抗衡醫改的權力遊戲。逸滔、唐明與心胸肺科醫生程洛雯、急症室醫生蘇怡、腦神經外科醫生呂靄寧等,一群身穿白袍的強者,他們的對手不只是疾病,還有人性貪婪和利慾薰心hellip; 《金宵大廈》 劇情介紹: 蕭偉明陳山聰飾來到殘舊且品流複雜的金宵大廈當看更,遇上這裏的空姐住客Alex李施嬅飾容貌竟與夢中一直纏繞自己的旗袍女子相同!阿蕭接近Alex,了解更多彼此的關聯。其間金宵大廈怪事不斷,不停上演着其他住客的人生及奇幻故事;阿蕭更發現Alex竟是一個殘影!六十年代金宵舞廳的舞女CoCo李施嬅分飾,夢見自己未來當了空姐,戀上與夢中男子外貌相同的警察劉旭輝陳山聰分飾,奇夢還被書店主人林若思張彥博飾寫成小說。阿蕭一路追查,意外發現這本舊小說,驚悉自己與Alex有一段撲朔迷離的宿世情緣hellip;hellip; 《愛.回家之開心速遞》 劇情介紹: 世代交替,新一代對舊一代嗤之以鼻,總覺得被別人阻礙著他們的未來。同樣地,年長一輩亦擁抱過往成功的經驗,總認為自己永遠是對的。故事的軸心家庭熊家,正是世代之爭的投射。輕鬆的情節除了呈現社會面貌,也用愛和歡笑拉近兩代之間的距離,讓年輕一輩懂得欣賞昔日的美好,舊一代也能聆聽新世代的聲音hellip;hellip; 《多功能老婆》 劇情介紹: 藍飛楊千嬅飾是一位美麗時尚、開朗率真的「多功能」主婦,有一個愛她的建築師丈夫尚劍雄黃浩然飾,一個活潑聰明的兒子尚啟佳,生活美滿。藍飛還有兩位好閨密:女強人萬風華陳煒飾 及美麗富太馬思蕾朱晨麗飾,三女的性格和愛情觀南轅北轍,愛情路上各有起跌。劍雄全身投入開拓事業,被揭發出軌後拋妻棄子,出走內地。 藍飛像折翼墮地的天使,獨力帶著兒子生活,遂把沒供完的新樓房分租,與高富帥租客榮浩田... 這些電視劇全都可以在TVB Anywhere裹找到,非常方便!如果覺得電視劇要看的時間太長,想看一些輕鬆的新年賀歲電影,不妨參照以下香港經典電影推介,每套都保證令你捧腹大笑,令你安坐家中都可以感受到歡笑的新年氣氛! 電影推介: 《百年好合》 劇情介紹: 香港富豪洪飛虎(古天樂飾)是有名的花花公子,最近卻得了一種怪病,在港屢醫無效,經友人介紹,遠赴內地偏僻的峨嵋山求醫。峨嵋派的臨時掌門人滅絕(鄭秀文飾)武功高強,醫術高明,知悉飛虎是一名花花公子,就故意用各種古怪的方法替他治病,其實是在借機戲弄飛虎。 《無敵幸運星》 劇情介紹: 富商巢老爺臨終時吩咐其弟巢老二保管遺囑,將產業交予留學女兒巢飛飛。不孝子秋誓要把大權奪回,而巢老二之子大傻亦對遺產有非份之想。幸運星周星馳飾是個小流氓,靠詐騙為生,被大傻擒住,叫他去偷遺囑。另一方面,秋發覺垃圾妹阿鳳吳君如飾貌似其妹,所以讓阿鳳假扮其妹,騙取遺囑、幸運星行竊時被抓,他急中生智說與飛飛相戀。垃圾鳳不知內情趕緊承認。不料,兩人接觸日久,竟產生了感情... 《富貴逼人》 劇情介紹: 雷達驃任職「衛星電視」新聞報導員,與驃嫂及三名女兒帶弟、來弟、招弟居於沙田新翠邨。驃嫂為典型家庭主婦,閒時喜與鄰居打麻將,又常常買六合彩,希望一朝發達、可以向親戚街坊炫耀。 某一天,驃嫂真的中了六合彩頭獎1,900萬港元。正當一家五口萬分興奮、在計劃怎樣用這筆橫財時,誰知銀行倒閉,而且亦有人趁機綁架hellip;hellip; 除了這幾部電影外,還有其他經典賀歲猛片好像富貴逼人系列、無敵幸運星、嚦咕嚦咕新年財、鬼馬狂想曲等等,TVB Anywhere將會在年三十晚1月24日)釋出所有新年賀歲電影,十分適合新年期間與家人一起觀看! 家中有小朋友的話,除了電視劇和電影以外,也可以選擇適合他們觀看的卡通和節目!這樣就大人玩得高興,小朋友也看得開心喇! 小朋友推介節目: 《面包超人》 《麥兜middot;飯寶奇兵》 《櫻桃小丸子》 《寵物小精靈》 《多拉A夢》 《Think Big 天地 2020》 《學是學非Sr.7》 作者:Dororo

星穹鐵道:中後期無課心得
手機‧電玩
MacauYeah・2024-02-08

分享前先講講為何會回鍋。因為筆者平常支持的RPG品牌Square Enix 實在不濟,每次更新完手機,它家的買斷型遊戲都攔淺。實在玩不下去,還是要回到米哈遊,星穹有中文、持續更新、自動存檔,從內容到技術上都比買斷型遊戲更適合手機遊玩。所以筆者就繼續來養成看看吧。 角色取得策略 之前筆者在其他文章內有提及過,免費課金制最大的痛點就是可取得的資源有上限,所以到了中後期,資源投資在什麼角色上是一個很重要的考量。但由於本文的主題是無課心得,所以筆者亦限定自己只使用免費卷或免費石抽4星角色。筆者的抽角色策略也很保守,各位應該可以很輕易地重複到。最簡單地講,只有弱點擊破效率不足時、打不過的主線時,才會考慮抽角色。 青雀 量子屬性 智識命途 主線第二章,豐饒玄鹿,弱點屬性為火、冰、量子。主線預設只有一火主角一冰三月七的組合,筆者實在打不過豐饒玄鹿。此時有兩個選擇,要麼就多抽一個量子角色,豐富一下隊中角色;要麼去打支線模擬宇宙,取得另一隻冰免費角色黑塔。 為長遠發展,筆者先抽角色,不過運氣不怎樣,只抽到青雀。智識命途主打群體傷害,但她沒有持續傷害加成,而且戰技有運氣成份,所以強度不高。但對於主線玄鹿至少可以一戰,有抽到朋友可以隨便升一升等級就可以。 希露瓦 雷屬性 智識命途 在中期開始,除了經普通遇敵獲取【行跡素材】之外,攻略支線【模擬宇宙】也是取得【行跡素材】的重要方法。此時希露瓦配搭虛無命途的【懷疑】debuff效果可以在【模擬宇宙】達到多重疊加傷害。有條件疊加傷害的另一個四星角色應該是素裳。筆者有抽到,但因為物理屬性重疊,所以沒有練。 另外,在正常情況下,在攻略完第一章後,預設會有一火主角一冰三月七一奶娜塔莎,再加上希露瓦,【均衡試練伍】可以穩過。通過後,可以特破角色等級上限至80,是1.6版本的封頂等級。2.0版本才剛更新,但應該沒有調整封頂等級