搜尋

搜尋結果

Spring Boot 04 - 進入http json api 世代
科技新知
MacauYeah・2024-05-23

本節,我們將會建立一個http服務,提供json api讓程式訪問。 下戴模版 我們跟上節一樣,使用Spring Initializr Maven 下載模版,但細節筆者就不再講啦。Dependency主要選擇 Spring Web Spring Boot DevTools 下載後,可以直接運行測試,可以用指令 mvn test 或經IDE運行。Spring會至少測試下能不能成功取用預設的8080端口。 Controller 我們若要實作 http json api,需要在 spring 中加入一個類,附註為 @RestController ,那方便起見,類名我們也命名為 XXXController 吧。作為示範,我們弄一個 HomeController.java ,裏面有最常見的 http GET, POST功能。 srcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapibasiccontrollerHomeController.java import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; ... other import @RestController @RequestMappingquot;apiquot; public class HomeController @GetMappingquot;someRecorduuidquot; public Map readSomeRecord@PathVariable String uuid return Map.ofquot;retquot;, quot;your uuidquot; uuid; @PostMappingquot;someRecordquot; public Map createSomeRecord@RequestBody Map requestBody HashMap ret = new HashMaprequestBody; ret.putquot;retquot;, quot;got your requestquot;; return ret; HomeController裏,完整的URL 其實為 GET httplocalhost8080apisomeRecorduuid POST httplocalhost8080apisomeRecord URL中的api之後的路徑,都是定義在 HomeController 中,而前半的8080及context path,是使用預設值。在正式環境下,可能隨時會被重新定義。但我們做本地測試,只需要驗證預設值就可以了。 我們真的運行起程式mvn clean compile springbootrun,再使用最簡測試工具進行測試。Windows的朋友,可以選擇Postman作為測試,它有圖形介面。而linux的朋友,請用curl,預設安裝都會有。下列為方便表示測試參數,筆者選用curl。 測試GET,其中1234會自動對應到spring裏的uuid。 curl httplocalhost8080apisomeRecord1234 # return quot;retquot;quot;your uuid1234quot; 測試 POST,其中的 d 參數,會對應 spring裏的 @RequestBody, H 參數則是設定 http header 的意思,我們就使用約定俗成的 json 作為 header 。 curl X POST httplocalhost8080apisomeRecord H quot;ContentType applicationjsonquot; d 'quot;requstquot;quot;did you get itquot;' # return quot;requstquot;quot;did you get itquot;,quot;retquot;quot;got your requestquot; 上面的兩個操作,都回傳了我們輸入的資訊,這代表了我們成功用spring架起了http json api,而且正常讀入資訊。 Test Case 雖然我們可以正常地架起 api,但每次開發都要 postman curl這種工具額外試一次,其實也有一些成本。而且 api 數量變大,或經多次修改後,就重複人手執行,就變得相當討厭。 面對這個問題,筆者會建議寫測試用例,即是Test Case,而且用Spring內置的@SpringBootTest來寫。 產生一個空的Test類,vscode中,最簡單可以Source Action =gt; Generate Test,然後加入這次要測試的參數。 srctestjavaiogithubmacauyeahspringboottutorialspringbootwebapibasiccontrollerHomeControllerTest.java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultHandlers; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @SpringBootTest @AutoConfigureMockMvc public class HomeControllerTest @Autowired private MockMvc mockMvc; @Test void testGetSomeRecord throws Exception RequestBuilder requestBuilder = MockMvcRequestBuilders.getquot;apisomeRecord1234quot; .contentTypeMediaType.APPLICATION_JSON; this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.jsonPathquot;$.retquot;.valuequot;your uuid1234quot; .andDoMockMvcResultHandlers.print; @Test void testPostSomeRecord throws Exception String request = quot;quot;quot; quot;requstquot;quot;did you get itquot; quot;quot;quot;; RequestBuilder requestBuilder = MockMvcRequestBuilders.postquot;apisomeRecordquot; .contentTypeMediaType.APPLICATION_JSON .contentrequest; this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.jsonPathquot;$.requstquot;.valuequot;did you get itquot; .andExpectMockMvcResultMatchers.jsonPathquot;$.retquot;.valuequot;got your requestquot; .andDoMockMvcResultHandlers.print; 最後就是執行 mvn test 或經IDE運行,應該都會得到所有測試都通過的結果。 mvn test # other test result ... INFO Tests run 2, Failures 0, Errors 0, Skipped 0, Time elapsed 0.368 s in io.github.macauyeah.springboot.tutorial.springbootwebapibasic.controller.HomeControllerTest # other test result ... 上面的程式碼很多,我們逐一來。 @SpringBootTest 寫在類的外面,代表執行這個測試類時,需要運行起整個Spring程序,當然也包括http的部份。 @AutoConfigureMockMvc 寫在類的外面,代表執行這個測試類時,可以模擬一些發向自己的 http 請求。 @Autowired private MockMvc mockMvc 寫在類的裏面,因為之前有定義了可以模擬 http 的請求,Spring在運行時為大家提供了那個所謂的模擬http client的實例。 MockMvcRequestBuilders,則是建造要測試的URL及Header參數。 MockMvcResultMatchers,則是檢查回傳的結果是否如遇期的一樣。 為何這個http client叫模擬 Mock 因為在測試用例中,可能連Controller 內部依賴組件也需要進一步模擬,這樣才能把測試目標集中在Controller裏,這也是單元測試的原意。只是本次的例子看不出模擬與否的差別。 MockMvcResultMatchers.jsonPath,這是用來檢測json的結構是否跟預期一樣。有些網路上的其他例子會簡寫成 jsonPath ,但因為vscode IDE的自動import功能比較差,筆者還是保留傳統的寫法。 如果大家覺得@SpringBootTest很難,想折衷地把其他測試方法,那麼把 postman curl好好管理起來,每次修改完程式,都完整地執行一次 postman curl ,也可以達到測試的效果。只不過大家還是要好好學會整合 postman curl,知道如何檢測json結構,什麼時候有錯,什麼時候叫測試通過,所以也要花一樣功夫來實現。 最後,大家千萬不要因為測試難寫而逃課,因為寫測試絕對地可以減輕日後重執行的工作量。除非你的程式碼即用即棄,否則都建議寫測試。測試跟寫文檔不一樣,有了測試也不能沒有文檔。好消息的是,文檔現在越來越多自動生成的工具,我們日後再找機會介紹。 Source Code spring boot web api basic

乾貨!聖誕“剁手季”必知,澳門這些化妝品店最“平靚正”!
其他
澳門生活圈・2018-12-25

聖誕節到啦! Macaulife祝小夥伴們聖誕節快樂! 每年到了今天 澳門的大街小巷都熱鬧非凡 本地居民、外地朋友溢滿小城街頭 一起感受聖誕的歡慶氣氛 順便趁著節日優惠到澳門消費 作為世界四大賭場之一的澳門 除了賭和娛樂 更是愛美小仙女們 瘋狂quot;買買買quot;的購物天堂 一般來說 到澳門購買護膚品和化妝品 往往比在香港購買還要划算 因此港珠澳大橋開通後 更是有無數妹子們乘車來買個痛快 尤其是每逢聖誕節和年末 商家還會推出各種各樣的折扣優惠 充滿驚喜的價格 讓小仙女們尖叫不已! 當然 吸引人來剁手的絕不止是因為便宜 下面,小編就告訴大家 仙女們在澳門狂買護膚、化妝品的 『三大理由』 理由一 港澳化妝品無關稅 國內市場賣的外國化妝品打的關稅是很重的,有些甚至要打50%稅。 而港澳化妝品經銷商是從國際化妝品品牌廠家直接進貨,不需要本地授權費用,不需要給中間商吃掉利潤,另外港澳化妝品無關稅。所以在澳門購買化妝品,會比國內便宜。 理由二 品質有保障 澳門化妝品的品質是很有保障的。由於很多產品都是原裝進口,所以有些產品無論是瓶身的包裝,瓶的字樣注解與內地會有些不一樣。 例如有的產品整個瓶身都是英文,日文,或者韓文。在條碼上,你也可以看出是否真的是原裝進口商品。 理由三 護膚、化妝品種類多 澳門的護膚品和化妝品種類多,選擇也多。 許多國內沒有的商品可以在澳門找到,那些在雜誌上在電視上羡慕的商品你也可以擁有。 那澳門有哪些 最值得ldquo;買買買 ldquo;平靚正rdquo;的美妝店? 莎莎化妝品店 綜合評分 品牌齊全:★★★★☆ 服務品質:★★★★★ 商品價格:★★★★ 澳門的莎莎化妝品店,銷售逾四百個品牌產品,包括護膚品、香水、化妝品、頭髮護理用品、以至專有及獨家代理的國際品牌產品,價格比新八佰伴專櫃價格低三分之一。這裏成為去澳門遊客必去的化妝品購物天堂。品種繁多的化妝品讓你隨心挑選、滿載而歸。 最後一定要說的就是,在sasa買了東西以後一定記得要贈品哦,一般東西都是有贈品的,不過只要你不問,人家是不會主動給的。 澳門莎莎門店分佈 1、澳門議事亭前地1820A號中華商業大廈地鋪 2、澳門威尼斯人度假村大運河購物中心2318 amp; 2320鋪 3、澳門蘇亞利斯博士大馬路81至113號澳門廣場地下O鋪及閣樓 4、澳門銀河G59 號鋪 5、高士德大馬路2333號地鋪 6、澳門賣草地街23至23A號青翠大廈地下A座連閣樓 7、澳門板樟堂街1E 1F 卓悅化妝品專門店 綜合評分 品牌齊全:★★★★ 服務品質:★★★☆ 商品價格:★★★★ 澳門卓悅化妝品專門店是澳門有名的實惠店鋪,許多產品甚至比香港的還便宜,同時深受外地旅客的喜愛。 主要原因當然是因為卓悅化妝品售價一直以來都比一般市面價低,貨品種類也是多不勝數。有些其他家都沒有的東西,卓越是有的。特別是香水和面膜齊全。有些難進到的貨只有卓越有,而且價格完爆其他家。 澳門卓悅門店分佈 1、澳門大三巴街1111A號華髮大廈地下 2、澳門板樟堂街1214號物業全幢 3、澳門板樟堂街5B7號 屈臣氏 綜合評分 品牌齊全:★★★★ 服務品質:★★★☆ 商品價格:★★★★ 屈臣氏裏面化妝品的種類繁多,都是原裝正品的,而且比國內的價格優惠很多。 除了化妝品之外,日雜品也十分齊全,來這裏逛也實在是很方便,也是很多女性朋友們過澳門必去的地方。 澳門屈臣氏門店分佈 1、威尼斯人大運河購物中心3樓2025號鋪 2、議事亭前地11號信德堡地下及13樓 3、水坑尾街6292號中建商業大廈地下A,B,C,D鋪及1樓 4、氹仔基馬拉斯大馬路179號濠景花園第一期21座地下G鋪街鋪第6號 5、黑沙環第一街佑佳大廈地鋪 6、連勝馬路28A泉勝軒地下B鋪 7、看臺街62號康和廣場地鋪 8、嘉路米耶圓地添運大廈6A地下BC鋪 9、湧河新村62號 萬寧Mannings 綜合評分 品牌齊全:★★★★ 服務品質:★★★★ 商品價格:★★★☆ 萬寧主要產品包括護膚品、保健品、食品、飲品、化妝品、個人護理用品、時尚用品以及男士用品等。薇姿、歐萊雅、玉蘭油等大眾品牌化妝應有盡有。 不過在化妝品價格方面一般沒有優勢,有點類似屈臣氏的感覺。但是這裡可以買到韓國、日本等不同品牌的衛生巾,還有許多進口零食、奶粉比較齊全,洗護的洗頭水,沐浴露常常會做套裝,如果只是想買生活用品的話,來這裡還是能很方便的找到的。 澳門萬寧門店分佈 1、氹仔哥英布拉街125號花城利厚利圖利偉利業地下W座 2、議事亭前地7a號旁 3、高士德大馬路111 4、板樟堂街20號龍昌商業大廈地下A座 5、和樂大馬路120號地下D鋪 6、黑沙灣馬場大馬路330號信達廣場一座商場地下FG鋪 7、路氹城望德聖母灣大馬路銀河娛樂城內 8、高士德大馬路111號日旺樓地下A鋪 卡萊美Colourmix 綜合評分 品牌齊全:★★★☆ 服務品質:★★★★ 商品價格:★★★★★ 銷售逾百種國際美容品牌,產品種類包括護膚品、香水、彩妝、個人護理及潮流產品等。他們家沒有很大的門店,每間店都是小小的,粉紅色的門頭,在眾多光鮮的化妝品門店下顯的特別不起眼。但是!它家的東西一定是最便宜的! 有人可能覺得ldquo;東西那麼便宜,會不會是假貨啊!rdquo;這個一般可以放心,以小編在卡萊美的消費經驗,完全可以放心買。但是這裡是沒有贈品,贈品都被導購貼上價簽放在櫃檯上出售了,所以說,如果你想買個小樣試試好不好用,就可以來卡萊美買哦。 澳門卡萊美門店分佈 1、澳門高士德大馬路8181A, 83號 2、澳門高士德大馬路40E號永益大廈地下A座 3、澳門板樟堂街7A7B地下 4、澳門亞美打利庇廬大馬路新馬路376號全幢 5、澳門馬統領街4143號萬勝大廈III地下A及B號舖 Sweetmay 綜合評分 品牌齊全:★★★★☆ 服務品質:★★★★☆ 商品價格:★★★★ 主要是賣韓國化妝品,在新馬路和威尼斯人各有一家。一般韓國的牌子都是有的,不過也許是專賣店的原因,價格相對較高,如果是隔壁SASA可以買到的韓國商品。Sweetmay都會比SASA價格高,但沒辦法,勝在貨全! 另外值得一提的是,裡面的導購美眉比較熱情,會耐心幫你找東西,最後還會有一些試用裝贈送! 澳門Sweetmay門店分佈 1、澳門板樟堂街1D號鋪(噴水池附近) 2、澳門大三巴街3號 大運河購物中心 綜合評分 品牌齊全:★★★★ 服務品質:★★★★☆ 商品價格:★★★★ 亞洲獨一無二的購物天堂澳門大運河購物中心,被超過300家世界級名店環繞,可以隨意在小石路上散步或者乘坐小船悠然自得地泛舟河上。 這裏絕對是選購化妝品的好地方,也吸引了很多MM們慕名前來血拼化妝品一番,此外還有頂級時裝、珠寶、飾物、禮品、服務、餐廳以至運動用品。 大運河購物中心 地址:澳門氹仔望德聖母灣大馬路威尼斯人 四季名店 綜合評分 品牌齊全:★★★★ 服務品質:★★★★ 商品價格:★★★☆ 至今已擁有逾180家世界名牌專門店、號稱亞洲最強的澳門四季名店絕對是你選購奢侈化妝品的購物天堂! 除了大家熟知的LV、GUCCI等,還有眾多連港澳人也不知道的世界級名牌駐紮在這裏。 澳門四季名店 地址:澳門路氹金光大道四季酒店內 新八佰伴百貨 綜合評分 品牌齊全:★★★★☆ 服務品質:★★★★ 商品價格:★★★☆ 澳門新八佰伴百貨,這家全澳門最受歡迎的大型購物商場,商場規模宏大,商品應有盡有,尤其是電器、照相機等高端電子產品更是品種齊全,價格比內地乃至香港都便宜得多,這裏是女性澳門之旅的必去之地。 澳門新八佰伴百貨 地址:澳門蘇亞利斯博士大馬路90號 澳門美妝小貼士可能有人會發現澳門買的護膚品和化妝品幾乎都是沒有生產日期的。很正常! 因為原裝進口的商品,通常是以批號的形式來表示生產日期,每天到澳門SASA,卓悅購物的遊客成千上萬,商品天天供不應求。 均為一年內生產的商品,護膚品的保質期為3年,彩妝的保質期為5年。 如果要買化妝品的,儘量可以選擇上午或中午,那時候人會稍微少一點,而且貨存還是比較多的。 要是等到下午或傍晚,那時人多就不用說了,關鍵是你想買的東西很有可能已經被人掃光了hellip;hellip; 另外小編推薦一個遊客比較少到的地方:高士德。那裡也有sasa、colormix、bodyshop,也有一些熱門的服裝品牌。重要的是高士德是居民區,逛逛街市領略一下風土人情,更重要的是有很多本地人去的價廉物美的餐廳,是個不俗的民間美食根據地。 另外,介紹一下水貨。澳門有很多化妝品小店可以淘到日韓的化妝品,不過稍微類似某寶,可能會承擔一定風險。但我相信在澳門買到的應該都是正品。 內容素材:網絡 圖片來源:攜程、百度、Macaulife、廣告海報、GIF 版權屬於原作者 編輯撰寫:小宇

雲系統的持續更新,大家的選擇是什麼?
科技新知
MacauYeah・2026-01-30

在開始之前,筆者先解釋一下自己對Linux發佈策略的理解。筆者之前以為自己都尚算了解,但到了兩難問題時,才開始反思。所以都不禁懷疑自己的基本觀念有沒有問題,如果大家覺得筆者多少有些理解上的錯誤,請留言糾正。 普通軟件的發佈 主要分為穩定(Stable GA, 測試(Edge Alpha Beta),特定版本。穩定、測試版本也可能有多個不同的分支,但它們主要是指不同環境下的選擇。通常安裝時,都會安裝最後的穩定、測試,除非最後版本有明顯Bug,我們需要回覆到再去的一個穩定版本。 當我們每次都更新到最後的穩定版本,我們稱之為rolling release. 以docker 官方建議的方式,我們在ubuntu底下,可以看到它的有很多結果回傳。 apt list allversions dockerce Listing... Done dockercenoble,now 529.1.41ubuntu.24.04noble amd64 installed dockercenoble 529.1.31ubuntu.24.04noble amd64 dockercenoble 529.1.21ubuntu.24.04noble amd64 dockercenoble 529.1.11ubuntu.24.04noble amd64 dockercenoble 529.1.01ubuntu.24.04noble amd64 dockercenoble 529.0.41ubuntu.24.04noble amd64 dockercenoble 529.0.31ubuntu.24.04noble amd64 dockercenoble 529.0.21ubuntu.24.04noble amd64 dockercenoble 529.0.11ubuntu.24.04noble amd64 dockercenoble 529.0.01ubuntu.24.04noble amd64 dockercenoble 528.5.21ubuntu.24.04noble amd64 dockercenoble 528.5.11ubuntu.24.04noble amd64 dockercenoble 528.5.01ubuntu.24.04noble amd64 dockercenoble 528.4.01ubuntu.24.04noble amd64 ... 我們可以選擇過去某個版本,但通常無腦update,就會去到最後一個版本。 Ubuntu的發佈策略 我們換個package看看,如果只看重要軟件的話,例如kernel,我們沒有什麼可以選擇 apt list allversions linuximagegeneric Listing... Done linuximagegenericnobleupdates,noblesecurity,now 6.8.090.91 amd64 installed linuximagegenericnoble 6.8.031.31 amd64 apt list allversions linuximagevirtual Listing... Done linuximagevirtualnobleupdates,noblesecurity,now 6.8.090.91 amd64 installed,automatic linuximagevirtualnoble 6.8.031.31 amd64 除了可選擇數量外,另一個最大的不同是,kernel的自身版本其實固定在 6.8.0,就算更新,都是同一個版本的ubuntu補丁版,並不是官方kernel的bug fix版。筆者認為,這應該就是所謂的point release的策略。 (如果大家安裝物理機的話,kernel可能會是6.14,筆者大部份都是VM,還是比較舊的版本。筆者保證,6.8.090.91與 6.8.031.31之間,曾經是有多個不同版本的。但現在沒法下載回來,除非之前大家有安裝過。) 但相同情況,我們找另一個package看看,由 ubuntu 自己打包的docker 版本,雖然可以選擇的數量是有限的,但它們的版本是不斷更新的,而且不是hotfix版,還有大版本更新。 apt list allversions docker.io Listing... Done docker.ionobleupdates,now 28.2.20ubuntu124.04.1 amd64 installed docker.ionoblesecurity 27.5.10ubuntu324.04.2 amd64 docker.ionoble 24.0.70ubuntu4 amd64 雖然版本是跟著官方docker最新版本,但也有持續跳級更新。如果真的要分類,筆者應該會把它歸類為 rolling release。 Rolling release vs Point release 花了一些時間看例子之後,終於開始討論我們自己的更新策略了。rolling release,最主要的原因是,舊版本無人再免費維護了,有什麼bug,都在最新版本中修復,但也因此有機會出現不相容的情況。point release,最主要的原因是為了維持極強的穩定和兼容版本,這亦代表,除官方專家出手,否則很難有舊版本的bug fix。 那麼我們有什麼選擇? 有point release,當然跟point release,因為程式不可能天天做調整。除非大家想要新功能再升級版本。 沒有point release,就手動自己選擇hotfix版或小版本升級。在升級大版本前,一定要做整合測試。若追求極致的穩定,升級大版本時就不要原機升級,要另起爐灶,似兩個相對獨立的環境並行過渡。如果有container版本,就用container隔離,一般java等都可以這樣建獨立環境。 沒有point release,也沒有可隔離的並行環境:其實 docker 接近這類。對它應的OS層的存取,雖然可以用VM隔離,但通常都不實際。因為重新安裝OS, 設定外部環境,成本很高。docker 在中 lab 並行升級是可以,但投産環境並行真的不實際。沒有辦法之下,筆者還是原機升級。頂多是lab中實現更多的整合測試。

你開始寫 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開發中加入你自己的測試!

用Github寫攻略其實也不難
手機‧電玩
MacauYeah・2023-08-04

上個月筆者為大家介紹過一位內地的文字攻略制作者Pser_hanser。本月筆者就身體力行,計劃制作一些FF8的協作攻略筆記,亦因此對於協作工具仔細地考量過一翻。 首先協作的基本要素,就是各人可以共同維護。所以國外或內地素人作者,都會以Google Doc或騰訊文檔為主。傳統的網誌就不太適合。而另一方面,就是因為遊戲攻略要考慮附圖的因素,Google Doc或騰訊文檔對於上傳圖片都算很友好。所以對於不熟網頁技術的作者來說就最適合。 不過對於筆者來講,有一個更大的考量點就是歷史記錄和版本差異。因為一份攻略的出現到完善,都會有不同程度的更新。更不用說因為遊戲Bug Fix,導致某些策略上的變更。左思右想,筆者選擇Github mdBook,一邊可以做多人協作的版本控制,另一方便亦可以自由發佈網頁。 Github的唯一問題可能就是檔案大小問題,若圖檔太多太大,就不適合。不過好在偉大的twitter,現在可以作為第三方存取圖片,筆者的遊戲截圖就可以更方便地上傳及使用。如果大家只是想做輕攻略,就不需要專門為Switch和手機遊戲接上HDMI截取器,可以省下一大筆費用因為對接Twitter,所以Switch或手機遊戲的截圖的上傳就變得無難度。 以下是筆者做FF8攻略的初稿,協作連結github httpsgithub.commacauyeahff8CasualGuide 截錄一些mdBook的範例 # Disk 01 part 1 Draft ## Balamb Garden 經過一輪過場動畫後,老師就來接你了。場景轉到課室內,終於可以自由操作。 這時不需要跟傳統方式去開電腦取GF,向外走就好Quistis會在校園外給你GF,跟老師交談幾句,得知補考的地點後就可以外出。 fire cavenhttpspbs.twimg.commediaF1NPIw9agAAQjJpformat=jpgamp;name=large 走廊外碰到未來的隊友Selphie,不想煩的話,兩次對話選項都選第二個(speedrun)。 donot have timehttpspbs.twimg.commediaF1NPIw9akAEcKH1format=jpgamp;name=large 從Selphie進來的方向離開,但記得一定打攪一下橋上的路人,他會給你7張卡 7 cardshttpspbs.twimg.commediaF1NPIw_agAAJFWmformat=jpgamp;name=large 你現在2樓進電梯下1樓暫時沒有選項,所以進電梯就會直達1樓 在1樓大堂有個導覽板,調查後可以快速移轉。筆者選擇直接去Front Gate。 guide boxhttpspbs.twimg.commediaF1NQsHNaAAUriJLformat=jpgamp;name=large teleport front gatehttpspbs.twimg.commediaF1NQsHJaAAEaDk1format=jpgamp;name=large 註 大部份Speedrun玩家都會先去Cafeteria,想早一步取得Quistis卡。筆者因為未弄懂那個必勝法則,所以先跑主線取得Ifrit卡後再回來挑戰。 出校門,Quistis說幾句,它就會給你GF Give GFhttpspbs.twimg.commediaF1NQsHJacAIiI0Sformat=jpgamp;name=large 後述所有教學都請自行跳過,後期可在Menu gt; Tutorial慢慢查吧 ### 調整裝備 Junction Quistis GF Shiva Magic, Draw, Item Squall GF Quezacotl Magic, Draw, Item Abilityhttpspbs.twimg.commediaF1NQsHKaYAE7Gj7format=jpgamp;name=large GF Quezacotl learn Card cardhttpspbs.twimg.commediaF1NQx2UaEAEiq0gformat=jpgamp;name=large Shiva learn I Mag RF I mag rfhttpspbs.twimg.commediaF1NQx5faUAA2EN1format=jpgamp;name=large Config Cursor Memory Camera movement 0% Battle Message max Battle Speed max confighttpspbs.twimg.commediaF1NQx2VaYAAmsUdformat=jpgamp;name=large ## Fire Cavern 默認Boss以外隨機戰鬥都以逃跑為主,逃跑方式為長按L2 R2。有需要完全戰鬥的會再特別說明。 出校園後,向東走,走向一個山洞。進行後Quistis會再有一輪教學。 走到門前,選10 mins進行考試。 twitterhttpspbs.twimg.commediaF1SmNqVaEAAMaEformat=jpgamp;name=large 入洞後,右 gt; 上 gt; 上 gt; 上 gt; 上 gt; Boss戰。 在途中,遇敵Red Bats時,Draw指令抽取Thunder第一項。Squall, Quistis每人各抽7個以上Thunder魔法。 twitterhttpspbs.twimg.commediaF1SmNqUagAENuOhformat=jpgamp;name=large ### Boss Battle Ifrit Boss參考LV 6, 1068HP Squall、Quistis 對Squall放Thunder魔法,讓Squall先進入黃血狀態。 twitterhttpspbs.twimg.commediaF1SmNqUagAAj5wtformat=jpgamp;name=large 保守策略,Thunder每次大概扣100HP,Squall的血量大概為200時,就不再使用。被Boss慢慢攻擊就夠。Boss Fire魔法大概扣 6065,所以即使很不幸,也有兩次援衝的機會。 Squall 使用 Renzokuken 筆者有Trigger增傷的情況下普攻平均傷害55,不用Renzokuken的話大概1820個回合可以送走Boss。道理上使用Renzokuken後也是差不多,數次數就大概知道幾時結束。但因為有時Trigger失誤,筆者會同時使用Quistis攻擊雖然這樣效率不是最高,所以實戰上比較難去數。 Quistis 有條件的話就自己攻擊自己,為後述的Fish Fin戰做準備。 頁面顯示效果 httpsmacauyeah.github.ioff8CasualGuideDisk0101.html#balambgarden 有興趣的朋友可以隨時checkout或commit 我的攻略 httpsgithub.commacauyeahff8CasualGuide

人工智能教育:與澳門老師分享ChatGpt 與Sparrow 之關係
文化創意
陳康妮・2023-01-18

Deepmind 的 Sparrow 聊天機器人可能會在今年推出測試版。 這是谷歌走出ldquo;創新者困境rdquo;的出路嗎?來自 OpenAI 的 ChatGPT 是有史以來最大的 AI 炒作mdash;mdash;據報導,它讓谷歌擔心自己的核心業務,因為除其他外,它可以或多或少地為問題提供可靠的答案。 那應該是搜尋引擎巨頭的領域。谷歌對 ChatGPT 有答案Google 可以回應 ChatGPT。 它已經展示了針對對話優化的大型語言模型,例如 LaMDA 和 Flamingo,甚至早於 OpenAI 的成功產品。 借助 Meena,谷歌已經準備好一個聊天機器人,可以在 2020 年底之前與人類進行可靠的對話。到目前為止,該公司還沒有將其研究成果製成產品。 根據它自己的說法,這主要是出於安全考慮,儘管其他原因也可能發揮作用mdash;mdash;稍後會詳細介紹。但 ChatGPT 尤其是微軟對 OpenAI 傳播的廣泛參與正在給谷歌帶來壓力。 公司至少必須證明它可以控制甚至超越 OpenAI。DeepMind 創始人兼首席執行官 Demis Hassabis 現在向 Time 提出了 DeepMind 的聊天機器人 Sparrow 將在今年晚些時候進入ldquo;私人測試版rdquo;的前景。 這是值得注意的,因為 Deepmind 迄今為止主要充當人工智慧研究機構,開發谷歌隨後將其集成到消費者產品中的技術。Deepmind 於 2022 年 9 月推出了 Sparrow。與 ChatGPT 一樣,該聊天機器人接受了人類反饋的訓練,Deepmind 表示這使其更有幫助、更準確且無害。 此外,Sparrow 還可以通過谷歌訪問互聯網,使其能夠將最新資訊整合到其響應中。 據《時代》雜誌報導,計劃中的測試版聊天機器人將輸出與 AI 答案相匹配的其他來源。Sparrow 基於 Deepmind 的 Chinchilla 語言模型,該模型的參數少於 OpenAI 最大的模型mdash;mdash;但已經用大量數據進行了訓練。 該語言模型於 2022 年 4 月推出,在通用語言基準測試中的表現優於 GPT3。 但是,ChatGPT 基於更高級的 GPT 3.5 版本。無論如何,我們有充分的理由相信 Sparrow 的性能將與 ChatGPT 相似或更好mdash;mdash;而且谷歌還將擁有更強大的語言模型,如 PaLM。DeepMind 會幫助谷歌走出ldquo;創新者困境rdquo;嗎?為什麼谷歌還沒有對 ChatGPT 做出回應,甚至沒有在 OpenAI 之前引入類似的模型,即使它可以? 谷歌官方給出的理由mdash;mdash;大型語言模型在可靠性和安全性方面的不足mdash;mdash;是可信的,很可能起到了一定的作用。在谷歌的運營規模下,傳播謊言或仇恨言論的聊天機器人將面臨重大的聲譽風險。 或者更糟的是,一個聊天機器人是如此可信以至於人們將意識歸因於它。 誰願意為這樣的事情提供服務熱線?OpenAI 的 ChatGPT 雖然增長迅速,但仍然只有谷歌用戶的一小部分。然而,更重要的原因可能是谷歌陷入了ldquo;創新者的困境rdquo;。 該術語由 Clayton Christensen 於 1997 年創造,用於描述成熟公司難以採用破壞其傳統市場的新技術或商業模式的情況。這些公司通常擁有重要的資源和能力(谷歌),但他們現有的客戶群和內部流程使他們難以利用突破性創新。 隨著更小、更敏捷的競爭對手進入並接管市場 OpenAI,這最終可能導致公司的消亡。谷歌的核心業務mdash;mdash;搜索mdash;mdash;正在增長並且利潤豐厚。 該公司在其顯示的每個搜索結果頁面上印錢。搜索聊天機器人需要一種新的貨幣化策略,目前尚不清楚它是否能像谷歌目前的搜索那樣盈利。 谷歌可以推出一個成功的聊天機器人,有可能使其盈利mdash;mdash;但如果利潤低於谷歌目前的搜索,該公司仍將虧損。 這就是谷歌的困境。谷歌至少實現更平穩過渡的可能出路:該公司通過其姊妹公司 Deepmind 推出面向商業的聊天機器人,並構建自己的競爭對手產品,以對抗谷歌搜索和 OpenAI。這樣做可以讓谷歌安撫其股東,並在聊天機器人將自己確立為重要的搜索替代品時迅速做出回應。 這就是 Deepmind 宣佈將於 2023 年發布的 Sparrow 測試版可能發揮作用的地方。 【作者簡介】陳康妮 Miss Connie澳門科技大學講師澳洲墨爾本大學主修高等教育管理學畢業澳門資深教育管理學專家澳門教育作家(教育創新)澳門兒童文學作家澳門國際培訓師從事國際培訓師工作26年全球職涯發展師澳門斷捨離群組創辦人(群組合共26000人)

怒目黑狐, 牠怒什麼?
宗教玄學
熊神進・2022-09-29

有人說,男怕「咬桃狸」,女怕「怒目黑狐」,看來,黑狐狸不是白來人間,牠們有神聖任務。 筆者聽過很多愛情故事,今天,筆者就和大家分享一個三世書中的「怒目黑狐」。 「怒目黑狐」是五胡時代「羌」民族一位叫「獰釋比」的祭司飼養的,當時「怒目黑狐」是替祭司驅鬼、祈福等。「羌」族的婦女都對丈夫忠心,但由於長期戰爭,很多男人要去打仗,留守村落的,都是女性及年老體弱的男丁。後來,族中來了一些「羯」族男人,族群的婦女都動心了古時候女人都有愛情埋在心裡。 「獰釋比」是族長也是祭司,他年紀老大,不能參戰,長期在族中為村人祈福。一天,村裡發生了一件怪事,有多位婦人半夜被人欺負,「獰釋比」知道了,他立即開壇作法,把疑凶找了出來。「怒目黑狐」是「獰釋比」飼養的,牠是雌性,嫉妒心強,牠本來是駐守西地獄的拔舌地獄,後來到人間協助「獰釋比」把不貞女生懲罰。 「怒目黑狐」知道了,牠開門串戶,一家一家找疑凶,當牠來到一家「羯」族人的茅屋,就狂性大發,兩眼露火,爪血落地,把屋裡的一名衣衫不齊婦女拉了出來,大家恍然大悟,原來鬧到滿村風雨的,是一名不守婦道的已婚女人。 寫到這裡大家一定會噴,為何不罵男人而罵女人,請大家息怒,五胡十六國是西晉滅亡到北魏年代duration,當時是重男輕女,女性做了不守婦節的事,就必死無異,沒有律師,沒有法庭,也沒有婦女團體出來替你申辯。 筆者不是法官,先不judge 誰對誰不對,筆者只想告訴你,玄學界中有一隻「怒目黑狐」,牠在祭司(懂玄力的師傅)開光念咒下,就可以威武起來, 把「邪淫」的女人咬一口。在「祭山會」上,怒目黑狐把那個女人活活吃掉。 為什麼要咬死女人而放過男人,請不要再噴了,咬男人的是「咬桃狸」,咬女人的是 「怒目黑狐」,傳說中黑狐和狸的天職是不同。千百年來,風水學家都會採用黑雞化丈夫桃花,彩雞化妻子桃花,咬桃狸咬男人,怒目黑狐咬女人,只要妳懂風水的,在大門入口五米範圍內擺放「怒目黑狐」,小三不敢明目張膽進來,如果你把牠放在主臥中,小三更不敢睡你的床。 「怒目黑狐」信奉自己的天神「阿爸」,牠被「獰釋比」收養後,徹徹底底聽從祭司指令。風水學家替「怒目黑狐」開光時很注意,我們必須知道丈夫、妻子及小三的姓名、出生資料、照片、住址等。 收到「怒目黑狐」要注意六件事: 1)「怒目黑狐」一定放在袋裡,袋裡有一張紅符,千萬不要立即拆開佛袋,要把整套「怒目黑狐」放在臥室床頭櫃上(愈接近夫妻床愈好)。經過七次夫妻親熱後才拆開。 2)經過七次夫妻親熱後,在妻子生理期內任何一天晚上11時至12時,把「怒目黑狐」拆開, 放在大門入口玄關處,頭向外。裡面有一張紅符,把紅符在「怒目黑狐」面前用火燃燒,灰燼放在花盆河裡。 3)擺放後一百天內,不宜有非直系親屬女性(直系血親是指彼此之間有直接血緣聯繫的親屬)進宅,因為開光了的「怒目黑狐」不再是一件擺件,牠有任務的。 4)除了使用者之外,絕對不能給任何人觸摸(包括丈夫,子女,父母,工人),如果不幸被人觸摸,請把「怒目黑狐」放回佛袋,找一片樹林, 好好埋藏,感恩。 5)玄力上,「怒目黑狐」只能抗拒小三不進門搞事,至於丈夫的風流債是他種下的,並不是「怒目黑狐」的責任。 6)「怒目黑狐」不是善獸,牠的眼有某些靈光,老師開光後不可以再拍照,亦不可以放在網上朋友圈。 如果妻子有婚外情,我們就不可以請「怒目黑狐」。「怒目黑狐」亦適宜同居男女擺放,反而單身女生就不宜在自已家裡擺放,因此,如果父母跟未婚女兒一起住,丈夫有小三,做妻子的,就不可以擺放「怒目黑狐」。 擺放「怒目黑狐」後家裡半夜聽到一些怪聲,又或「怒目黑狐」移位現象,這是常常發生,大家不用害怕。 細心的讀者會留意筆者常常介紹 「怒目黑狐」, 但從來沒有放在網店出售, 原因很簡單, 這是珍貴的法寶。 微信 macaumickey 公共微信 macaumasterxiong

【馬交慳多拿baby】新春餐飲優惠大集合 - 14.01.2022
生活在我城
Cheers!・2022-01-14

歡迎收睇《馬交慳多拿Baby》,農曆新年就到,又係同親朋好友相聚嘅好時節,今次就為大家整理咗一系列嘅新春餐飲優惠,想知就即刻睇落去喇~ 1. 上葡京澳門人單點8折優惠 上葡京旗下的餐廳,即日起至 3 月 31 日都有澳門人單點8折優惠,而自助山嘅午市自助餐平日都有 8 折! 紅盤 谷六居酒屋 八寶莊 上葡京咖啡室 2. 佳景集團晚市堂食 8 折優惠 佳景集團推出新年餐飲優惠,旗下呢幾間餐廳都有晚市堂食 8 折優惠,中日料理任你揀! 百福麵家 四五六上海酒菜館 江戶日本料理 千喜膳日本料理 龜盅補 3. 皇冠假日酒店 4 至 6 人份嘅盆菜套餐,澳門居民仲有 8 折優惠! 皇冠假日酒店推出 4 至 6 人份嘅「龍蝦湯鮑魚盆菜」套餐,$2,188 一盆 ,澳門居民仲有 8 折優惠! 4. 麗軒新春午宴 澳門麗思卡爾頓酒店旗下嘅米芝蓮星級食府「麗軒」,由 1 月 31 至 2 月 9 日推出「秀麗豐年迎新春午宴」,每位 $688 起,想新年食豪啲不妨考慮吓~ 5. 美獅美高梅「蜀道」新年節慶套餐 美獅美高梅嘅川菜餐廳「蜀道」嘅新年節慶套餐,包含多款四川過年必食菜式,有吉慶燈籠雞、蜀道福來合家宴等(加入動畫:套餐資訊 四至六位用及八至十人用,價錢 $3,688 和 $8,088),想過一個火辣辣嘅新年就去試吓啦!

【馬交慳多拿baby】睇劇贏大獎 Zenfone 8?信用卡餐飲簽賬享 2 倍里數 - 31.12.2021
生活在我城
Cheers!・2021-12-31

歡迎收睇《馬交慳多拿Baby》,嚟到 2021 年最後一期,今次為大家整理咗購物、信用卡優惠,仲有豐富大抽獎,想知就即刻睇落去喇~ 1. CTM x TVB Anywehre 愈睇愈有機 大抽獎 CTM 嘅 TVB Anywhere 客戶喺 1 月 1 日 至 15 日期間,用 TVB Anywhere 睇劇 10 日或以上,即可自動參加抽獎,獎品超豐富,包括 Zenfone 8、Samsung Galaxy A32 5G 同 AirPods,仲有終極大抽獎,唔好錯過啦! 2. 新濠影滙 冬日星級寵肌療程 新濠影滙「漣」水療推出冬日星級寵肌療程,即日起至 1 月 31 日 , 只要 $1,380 就可以享受原價 $1,680 嘅 90 分鐘身體按摩療程!仲可以無限使用巨星滙嘅室內恒溫游泳池,係時候好好保養一下喇~ 3. 國際銀行用戶手機支付滿 $88 即減 $38 買餸又有優惠喇!國際銀行用戶去新苗買嘢用手機支付滿 $88 即減 $38,優惠期到 1 月 15 日,把握機會喇~ 4. BNU 亞洲萬里通 Visa 信用卡 BNU 嘅亞洲萬里通 Visa 信用卡餐飲簽賬滿 $500 或以上即享 2 倍里數,指定餐廳更享 3 倍里數!儲埋嘅里數仲可以換玩樂優惠禮券低至 5 折 ! 5. 銀聯 x 馬拉松 x Catalog 立減優惠 去馬拉松同 Catalog 用銀聯卡或銀聯手機閃付簽賬滿 $1,000 即減 $50 ,用銀聯二維碼簽賬滿 $1,000,即減 $80 !

《當熊遇見熊》,而讀者靠近作家
文化創意
繪本與棋@黃庭熾・2021-11-07

  大師安東尼布朗(Anthony Browne)的作品細節豐富,這次和小讀者分享的繪本是他筆下形象可愛的《當熊遇見熊》。   正式開始分享故事前,我問小朋友:如果,你有一支神奇畫筆,你會畫出甚麼?龍、百科全書、錢、孫悟空、另一枝神奇畫筆、多啦A夢......不一而足。   的確,我們要分享的故事裡,我們的主人公小熊,牠有一支神奇畫筆,牠會如何使用呢?帶著自己的答案,師生一起共讀安東尼布朗的作品。   小熊漫步林間,遇到一個又一個惡煞,如肆虐《小紅帽》與《三隻小豬》故事裡的大野狼,如窮追傑克的雲端巨人,如形貌兇惡的尖帽子女巫......幸虧小熊隨身帶了一支神奇的畫筆,畫出救星幫牠逢凶化吉。小熊可能會無限地遇到這些童話裡的惡棍,如果小讀者穿作者的鞋子,他們會如何設計接下來的情節呢?   小讀者讀得最津津樂道的,除了小熊的畫外,最愛尋出情節畫面中的「彩蛋」。如掩映林間的紅披風、遺落草上的玻璃鞋、只咬了一口的紅蘋果......讀者腦海裡儲備的童話越多,則邂逅的樂趣倍加。安東尼布朗擅長以圖畫和讀者玩遊戲,除把別的作品裡的關鍵道具像超連結般藏於情境中,他還通過光暗、陰影來暗示圖畫外的資訊 ── 曲徑通幽,耐人尋味。   有孩子把難忘的校園生活延入繪本裡,為認字不多的寄居蟹畫出有問必答的百科全書,為小朋友把乒乓球取下來而揮筆除掉樹杈;有孩子接著本來的情節,畫出下一名攔路虎,可能是蓄意劫筆的惡龍,也可能是心生妒意的多啦A夢;有孩子給故事一個轉折以結局,有時是離開森林、抵達冰洞和新相知喜相逢,有時是巧遇老友、帶回家中享受休閒時光......   在創作中,小讀者寄託了他們的認知、新意或巧思,以筆、畫和原作者對話,並從後來的原著結局中,切磋彼此的心得與想法,完成一種流動的閱讀。   在原著的結局中,小熊遇見了飢腸轆轆三隻熊,為牠們畫下一桌布美饌,三隻熊遂笑逐顏開,如大師對小讀者仿傚的微笑默許。 你可以從這些地方借閱到這本繪本: 中央書庫、氹仔圖書館、澳門中央圖書館、何賢公園圖書館、沙梨頭圖書館、白鴿巢公園黃營均圖書館、紅街市圖書館、青洲圖書館 ── 實際館藏情形可以透過澳門公共圖書館館藏查詢系統瞭解。

人離開後,真正能夠留下的是甚麼呢?唯有回憶,死神帶不走。
其他
皓芯・2021-08-17

人生在世,總會遇上不公平事。然而在這個世界上,有兩件事是最公平的,每人每天都擁有24小時,每個人都會面對死亡。死亡是每個人都必須面對的課題,生不帶來死不帶走,很多足跡都是無法消失的。 韓劇《Move To Heaven:我是遺物整理師》導演的靈感來源書mdash;《離開後留下的東西:遺物整理師從逝者背影領悟到的生命意義》。這是一本讓人感觸的書,書中多數亡者令人鼻酸、眼眶泛淚,他們都帶著遺憾或落寞離開人世。隨著死亡所遺下的各種痕跡,總是讓人悲傷﹔悲傷又心煩意亂之下,很容易就忽略了逝去之人所釋放出的訊息。而挖掘出這些訊息、探索他們真正需要,並幫助那些死者完成心願的正是遺物整理師。 本書作者金璽別說:「當有人死去時,我的工作就開始了,我是傳達人們最後訊息的遺物整理師。」當所有人都轉身離開的時候,只有他會留下來,並安撫死者最後一程。遺物整理師mdash;整理已經離世的人們,在這個世界上所留下的痕跡。 作者穿梭在各種死亡現場二十多年,遺物整理工作更從事了長達十多年,在遺物整理師的工作場地,充滿了各種「死亡故事」。他以旁觀、冷靜而正面的角度,將其工作時讓他特別感觸的案例,及從逝者背影領悟到的的體悟,整理成二十九篇故事。 書中有許多關於死亡場景的描述,作者面對生死可說是常態,每個故事都是不同人生背後的真實,有些讓人感觸、感到悲涼,有些甚至看見人性裡的自私及貪婪。透過收拾遺物整理現場時的許多線索、以及人們的互動,拼湊推敲出死者生前的生活與困境。 死亡是人生的終點,遺物整理是件沉重又嚴肅的事,儘管每段故事背後都有其發生的原因,還是不免讓人不勝唏噓。每個人終究面對死亡,有否曾想過自己離開的時候,想留下甚麼?離開後,真正能夠留下的是甚麼呢? 韓劇《我是遺物整理師》導演金晟浩、韓國第一代遺物整理師金璽別、李帝勳、陳俊翔 專訪片段 httpswww.youtube.comwatchv=jpEcNclbJ5k 影片來源:Netflix amp; ELLE TAIWAN 圖片來源 商周出版NETFLIXMARIE CLAIRE TW 《離開後留下的東西:遺物整理師從逝者背影領悟到的生命意義》 作者 金璽別김새별 出版社 商周出版 出版年份 20160802 ISBN 9789864770601 訂購地點 一書齋

[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可隨機組隊或自己組隊參加排名賽,系統找到排名相近的對手,再問玩家是否確認開賽,所以有機會匹配完雙方決定棄賽。就算強行開賽也有機會斷線。

【混血王子養成記2】嬰兒睡覺是頭等大事 ——來回地獄又折返人間
人物專訪
Lifemagparents・2020-02-05

對於我們成年人來說,睡覺是一件很輕而易舉的事,但對於小嬰兒來說,這其實是一種需要學習的行為,研究顯示,大部分嬰兒在兩歲前或多或少都有睡覺問題,而大Jul王子正正就是這個「或多」之一,整個過程說起來真能令人掉下十缸眼淚hellip;hellip; 回想當年,大Jul剛剛出生,不負他老爹的「白人」稱號,他皮膚超級超級的白,粉粉嫩嫩像極一隻小小的水晶包,而這隻水晶包還能每天呼呼大睡二十個小時,實在是太幸福了對於為母的我而言。可是,一個星期後,在我還沒享受夠這段幸福時光的時候,小嬰兒敏銳的感覺器官已經覺醒,他忽然發現他來到了一個「冰冷」的世界mdash;mdash;這個世界的溫度只有十多二十度,吸呼的每一口空氣都是涼的,也沒有媽媽又擠迫又安全的子宮保護着,小手小腳在空蕩蕩的空間裏不知往哪裏擺,而且他還需要自己出力吃奶!自始,大Jul王子終於知道他離開了居住了十個月、安全感滿滿的媽媽小肚子,來到了這個「大世界」,對他和對我而言,挑戰便由此開始了。 面對這個陌生的環境,大Jul王子用他小嬰兒的一貫本能mdash;mdash;哇哇大哭mdash;mdash;來應對,尤其是在想睡覺時,哭得就像是厭世精靈一樣,而為母的我就跟隨着他的哭聲討厭這個宇宙。 哄睡真是為人父母一個躲不過的大坑,尤其是對於極度需要安全感的大Jul而言,更是一個可以媲美喜馬拉雅山谷的磒石坑。開始的時候還好,媽媽抱一抱吃吃奶就睡過去了,但後來,哄睡的難度就隨着他的月齡而呈幾何級上升,媽媽就只好從「抱一抱」變成「跳跳舞」,為母的我一開始練的是「家燕姐十字舞」,再接着,「十字舞」就變成「深蹲舞」,兼練舉重活動,然後是雙人「探戈舞」,發展到最後我就只能「發瘋亂舞」。他的老媽我就從一個哼着「Twinkle Twinkle Little Star」的可愛母親,變成了一個滿嘴喃呢着「哦哦哦」的哄睡女瘋子! 自從大Jul帶着他的極度不安輾轉反側不肯入睡後,為母的我只能求助各大媽媽谷和書籍專家,我幾乎嘗試遍所有的方法,不管是睡前餵奶法、定點餵奶法、睡前儀式法、睡袋包裹法、撒手不管讓他大哭法等hellip;hellip;通通都不管用!只要他睏了,他就堅持要哭着賴在母親身上,往往一哭就是一小時,而越哭他就越睡不着,越睡不着他就越睏,越睏就哭得越厲害hellip;hellip;這個無限循環最終以他哭到筋疲力盡,而為母的我也筋疲力盡而結束。如果以四小時為一個單位,一歲以下的大Jul每天最少要經歷這樣的循環哭睡四至五次mdash;mdash;當中包括半夜1點和清晨5點各一次mdash;mdash;這對於白天還要上班的我來說,每天簡直就像是來回地獄又折返人間! 一些文章表示,小嬰兒的哄睡要求越來越高,部分的原因是父母用錯方法,使他們學習不了獨自入睡,我對這個看法既同意又不同意。同意的是,一些嬰兒真的比較喜歡睡覺,在一定的拍睡和安撫後,真的能順利地獨自入睡。然而,很大的一部分嬰兒會持續地受到不同的因素影響,例如性格、安全感、對環境的依賴度、個人神經系統、出牙、發燒和感冒(反覆生病會導致長期鼻水倒流或中耳炎)等,而這些往往都不是父母能運用「正確方法」能解決的。 在經歷了大Jul痛苦的哄痛經歷後,我還是總結了一些心得,雖然未必適合所有嬰兒,但還是可以在這裏分享一下﹕ 對於初生嬰兒來說,包裹式睡袋絕對有用。因為小嬰兒在媽媽肚子中是被緊緊包裹着的,而出生後如果平躺在床上,他會感到不安全,也經常會被自己放在空蕩蕩空間裏的手手腳腳嚇醒。有些嬰兒被包裹後會大哭,但據我的經據,這不是因為包裹睡袋讓他不舒服,而是在「扭眼訓」。 建立睡前儀式。建立一套按部就班的睡前儀式,每天進行,可以安撫嬰兒的情緒,使之放鬆,然後入睡。 改變個人的想法。成人所謂的「睡過夜」可能是由晚上十一時睡到早上七時,但在嬰兒至至一歲以下的身上,他的「睡過夜」可能是從晚上九點睡至一點,起床吃一點奶或再哄一哄,又睡到五六點就起床沒錯,這就是古代人的起床時間。用成人的睡覺習慣衡量嬰兒,絕對是不成的。 當然,沒有一個孩子是相同的,如何讓自己的小嬰兒睡覺,都是對每一個父母的挑戰。雖然大Jul王子的睡覺地獄已經束結,但新的挑戰又在開展,今晚我將繼續哄小Wil王子睡覺(唉!)。 祝大家有個好夢! 作者:王子媽媽 如果還沒有看第一篇,可以去這裏【混血王子養成記】我的孩子會是怎樣的?mdash;mdash;上帝給了他們很多骰子

阿耨多羅開光智慧項繩 (女性項繩 佛教項鍊 轉運頸繩)
宗教玄學
熊神進・2019-10-14

日子一天一天過去, 我們有沒有想過, 自己過去的幾十年, 有為ldquo;日子rdquo;做過了什麼 筆者修行幾十年, 每天做早課的時候都要求學生佩戴ldquo;阿跋多羅開光智慧項繩rdquo;。 多羅, 是甚麼 ldquo;多羅rdquo;是梵文的動詞語根, 具有ldquo;渡海rdquo;的意思, 在印度, 尼泊爾佛教中出現一位ldquo;多羅rdquo;女神, 她救助危困的婦女; 在漢傳密宗, 我們叫ldquo;度母rdquo;, 度母就是佛母, 她助女兒度過人生苦難, 教懂女兒長智慧, 她是何等榮耀 阿彌陀佛經中有一句 阿耨多羅三藐三菩提, 這句經太好了, ldquo;阿rsquo;是ldquo;無rdquo;; ldquo;耨多羅rdquo;是ldquo;上rdquo;; ldquo;三rdquo;是ldquo;正rdquo;; ldquo;藐rdquo;是ldquo;等rdquo;; ldquo;菩提rdquo;是ldquo;覺rdquo;; 無上正等正覺, 這ldquo;阿耨多羅rdquo;就是我們有了智慧後的無上價值。 甚麼人需要佩戴ldquo;阿耨多羅開光智慧項繩rdquo; 筆者有了分別心, 認為佩戴ldquo;阿耨多羅開光智慧項繩rdquo;是先考慮自己需要 原始心 命運掌握在強者手上, 每個人都是自己的主人, 說錯了嗎 這份潛能是埋在個體裡, 只是沒有佛菩薩的開示, 我們天天糊裡糊塗過日子。 空虛心 古代的婚姻, 女人受氣受辱, 現代的婚姻, 女人面對離離合合, 幸福只是結婚當天的一種期待, 夜深人靜, 有誰女人不空虛, 有誰女人不想丈夫一生留在枕邊 可以嗎 菩提心 嚴父慈母, 女性天生是慈悲, 菩提就是覺, 當我們看到人家受苦起慈悲心就是ldquo;菩提rdquo;; 當我們分手後不再沉迷昔日的痛苦就是ldquo;覺rdquo;; 當我們看穿人心就是ldquo;智慧rdquo;。 如何選ldquo;阿耨多羅開光智慧項繩rdquo; 妳可以用78元請一條項繩, 但ldquo;阿耨多羅開光智慧項繩rdquo;對妳是有要求的, 妳必須符合下列要求才下訂單。 ldquo;阿耨多羅開光智慧項繩rdquo;有五種顏色的ldquo;智慧珠rdquo;, 每一種ldquo;智慧珠rdquo;都是在不同節令供養, 你必須根據自己出生日子所處的節令下訂單。當妳下了訂單, 我們是按妳的訂單提供資料開光, 不會幫妳核對節令是否正確。 綠色 立春當天至清明前一天出生。 紅色 立夏當天至小暑前一天出生。 黃色 立秋當天至寒露前一天出生。 黑色 立冬當天至小寒前一天出生。 啡色 清明當天至立夏前一天出生。 小暑當天至立秋前一天出生。 寒露當天至立冬前一天出生。 小寒當天至立春前一天出生。 ldquo;阿耨多羅開光智慧項繩rdquo;來歷 項繩分二個主要部位 智慧珠是來自斯里蘭卡綠色的, 來自印度; 銀鉤子材料來自西班牙, 國內加工; 繩子來自義大利。 我們提供免費開光功德, 在港澳臺, 開光收費是需要的。 如何管理ldquo;阿耨多羅開光智慧項繩rdquo; 現代的法器已非常人性化, 一切儀軌都是由法師念經、開光、潔淨後交回給使用者, 使用者收了, 無需選日子, 可以直接掛在脖子上, 當然, 我們亦建議妳, 回家脫下, 放在袋子裡。至於男女身體接觸時候是否需要脫下, 這是沒有嚴格規定。 一般來說, 這條頸繩是用優質材料編織, 可以調整尺寸, 耐磨損, 但任何物品都有破爛, 當頸繩損爛了, 妳可以直接送寺廟, 用火燒去, 不用左顧右盼了。 ldquo;阿耨多羅開光智慧項繩rdquo;是佩戴脖子上, 脖子是ldquo;頭rdquo;跟ldquo;心rdquo;的橋樑, 很重要啊, 我們的善心必須把意向傳達到頭部去, ldquo;阿耨多羅開光智慧項繩rdquo;就是一個關門, 上傳下達, 把吉祥平安、智慧學業事業、幸福婚姻送上。

這一份雞蛋仔的回憶,你還記得嗎?
其他
澳門生活圈・2019-08-24

同步發布媒體公眾號 媒體排名不分先後 脆卜卜雞蛋仔 芒果繽紛杯和紫薯味雞蛋仔評測 可能大家不知道,雞蛋仔起源於1950年代,有雜貨店老板為了不浪費破裂的蛋,遂嘗試加入面粉、牛油等配料弄成漿狀,再經倒模烘烤而成。 後來,模具設計成小小的雞蛋形狀,不料喜得大家熱愛。 初時雞蛋仔由鴨蛋制成,因為價廉味濃,蛋中的腥味可令雞蛋仔更香。 雞蛋仔傳統是由街邊小販以手推車販賣。而經過了接近70年的演變,雞蛋仔不僅延續了經典口味,更迸發了新的口味。也就是今天的芒果繽紛杯和紫薯味雞蛋仔。 一款各類經典組合在一起所迸發出的新鮮,另一款則是經典的延續並在其注射了新鮮。 芒果繽紛杯裏有著各類經典,雞蛋仔,新鮮芒果,雪糕和巧克力棒。組合起來松軟,鮮甜,清涼以及濃鬱的巧克力口味組合在一起,給予味蕾一次絕佳的享受。 另一款則是在雞蛋仔制作的過程中,加入紫薯餡料。松軟的雞蛋仔裏夾雜了厚實的紫薯餡料,是在體驗松軟經典的同時還可以嘗試到新意。 店裏的服務員會很熱情的向你推薦店裏的食品,制作雞蛋的工具更加現代化,但是制作出來的並不失傳統味道,價格也非常合理,店面的裝修卻相對比較普通。 如果想要嘗試這樣的具有新意的雞蛋仔美食,可以選擇到脆卜卜雞蛋仔。 想要嘗試的朋友 可以通過憶條街進行外賣訂單 或者到店鋪自取 店鋪地址 澳門士多紐拜斯大馬路19A號泉紹花園地下B(交通局對面)