潮流特區

最新文章

街霸六的元宇宙大笪地對戰大廳

手機‧電玩
MacauYeah・2023-12-26

上期就為大家介紹了Modern Mode的新系統。今期就再繼續為大家介紹新的對戰系統。(上期連結: https://lifemag.cyberctm.com/zh_TW/blog/macauyeah/13954 ) 找個陪練很重要 現在街霸五中,網上對戰不外乎是隨機的排名賽、隨機的友誼賽、邀請特定網友在對戰大廳輪流對賽。看下去沒有什麼大問題對不對? 實質上就是一切都很隨機,而對戰大廳很少人懂得運用。 街霸六中一個很重要的改動,就是在隨機的排名賽和友誼賽,加入賽後自訂賽制的玩法。排名賽上遇到五五波的對手,想跟它再打幾場? 可以,馬上進入自訂友誼賽,打個夠。這個改動很必要,在過去的日子裏,特發跟不同人隨便打兩三場,根本不知道應對手段;跟同一個對手來回對策,才會慢慢知道輸在哪裏,有沒有什麼地方是博奕的盲點。猜包剪揼連輸三場,你覺得是對手運氣上壓制你,但連猜十場你也輸,就代表你真的被對方看透。若在排名賽上沒有碰到想賽後重複對戰的對手,遊戲商亦很佛心地重現了一個類似大笪地的對戰大廳,讓你可以在元宇宙坐在一個虛疑街機框下,等待那些跟你一樣不太介意分數,等級差不多、但只想連續思考對策的朋友。 在過去街霸五中,隨機的友誼賽和對戰大廳,對筆者這些低端玩家來說實在沒有什麼用途。友誼賽實力差距很大,基本上就是老手開發新帳號來碾壓新手的地方。對戰大廳則是連線品質參差問題,見到高分的不敢進去,低分的基本上網路卡到不能玩。當時最能遇到熟練度差不多的對手,就只有排名戰,但同一名對手的排名戰機會不多,然後大家又非常在意分數的上上落落,所以當時的對戰實在稱不上快樂。 對比這個情況,街霸六就變得放鬆很多,大家更容易地在大笪地中找到差不多的對手陪練,不用計較分數。大笪地的成功,並不是單純地因為可以自定義對戰,它的連線品質提高,也是穩定在線玩家數量的一大原因。 其他重要改進 單從字文上,或許你覺得整個街霸六都是換湯不換藥。但筆者很負責任的說,它是在硬技術和設計上,都做到很大的改進。雖然不能稱為劃時代的改進,但有了它們,遊戲更友善: 對戰系統可以全平台跨平台對戰,PS、XBox、PC可以大混戰。你能匹配到的有效在線玩家變多了。 提高連線品質,現在那怕是Steam Deck連上Wifi也能網上進行對戰,大家也不那麼懼怕延遲的問題。 大笪地加入社交元素,你還可以通過故事模式,解鎖自定義格鬥技,在非正式的對戰中跟別人惡攪對戰。 練習模式加入極重要的幀數顯示,大家更有條件地自定義練習情境。 玩家們已經極少再需要上網查幀數資料,除了無敵幀需要上網查以外,其他的自行試就好。 官方在練習模式中預錄制了一些情境練習,例如對空、破防、解投等,讓大家可以直接練。但在解投的情境中,更讓筆者明白這遊戲有多麼的爾虞我詐。 這兩期講的東西,都是Capcom針對核心遊戲元素的多項精進。吸收了街霸五的技術和策略上的失敗,街霸六就從軟硬兩方向大改進。Modern Mode在直正意義上可以讓新手入門,但又不致於無腦遊戲。對戰機制,可以讓大家不只關注排名賽,更大地去提供實戰環境讓大家實驗自己的PvP策略。

格鬥新老手也很友好的街霸六 | MORDEN MODE

手機‧電玩
MacauYeah・2023-12-22

街霸六已經出了半年有多,但筆者也是近期在購買steam deck 後才加入街霸六。一玩就實在愛不惜手,特別是steam deck的加持,讓筆者可以在午休時間大方地玩。 可能好多網媒都有介紹它,亦十分讚賞它的單機故事模式。但對於沒有時間筆者來說,慢慢跟故事拜師成長,解鎖不用招式,實在讓筆者耐不下心。而真正讓筆者感到友好的,是它的操作系統和對戰系統,讓它可以達到老手有老手的開心,新人有新人的快樂。今期,就升為大家介紹它新的操作系統。 MORDEN MODE 經常有人誤會,格鬥遊戲玩的是連招,如果人人都可以自動連招,根本就是小朋友遊戲,拿不上大台,也不會有舉辦比賽的價值。所以有一些人,會看少「任天堂明星大亂鬥」的價值,因為不論多新手,都可以打出基本combo。但說實在,它是街霸6出來以前,最有條件同時允許新老手同樂的遊戲。 格鬥遊戲,什至其他競技遊戲,對於同等操作熟練度的選手來說,他們的比拼是應對策略。而相對公平的競技遊戲,應對策略就是很像是博弈,沒有100%安全的招,就像包剪揼一樣,可以有特定的對應策略。格鬥遊戲與包剪揼最大的差異,是在足夠熟練和專注的情況下,雙方是有條件作出對策的,所以格鬥遊戲不完全是盲猜。而過去最大的問題,就是格鬥遊戲太難讓新手學會博奕,外人看去就是combo為王,搓招難,就放棄吧。 街霸五在容納新手方面,其實都下過很多努力,包括減少每個角色招式數量,較寬鬆的combo 輸入時間,提供可錄影、重播、幀數檢視的練習模式。可惜搓招門檻始終也是讓很外行人放棄的原因。而街霸六,則提出一個很多人都提過的做法,但沒有廠商真的成功過的做法,那就是一鍵搓招與傳統搓招共存的做法。 玩家可以在對戰前,選擇新的【Modern Mode】(現代模式),然後享受以下功能便利。 簡易使出必殺技。通過 單一方向鍵+SP鍵使出不同的【必殺技】 單一方向鍵+SP+AUTO鍵使出不同的【OD必殺技】 單一方向鍵+SP+重攻擊鍵使出不同的【超必殺技】 攻擊力比較搓招或【Classic Mode】有下調 簡單使出連招。通過 不同的單一攻擊鍵+AUTO鍵 連打 使出三套特定的連技 攻擊力比較搓招或【Classic Mode】有下調 若要使用【輕、中、重必殺技】,仍需要使用傳統的搓招方式。 攻擊力回到100%。 對比【Classic Mode】,【Modern Mode】有些拳腳攻擊、必殺技的差異化版本無法使用。 例如Luke在MORDEN MODE中只可以使出後重拳,沒有後重腳。 例如Ryun在MORDEN MODE中只可以使出中旋風腿,沒有輕、重版本。 但依然可以打出大部份的搓招 + 連技。 當然,玩家可以選擇【Classic Mode】(傳統模式),一切按鍵都跟過去一樣,有輕、中、重之分。 筆者最欣賞的,就是這個【Modern Mode】的出現。因為它可以降底學習成功,但又不失公平性,讓新、老朋友可以打出一場有博弈味道的友誼賽。例如正面跳入攻擊,在過去的高端對局中,只能作為突襲的戰術,不能隨便跳。但在低端對局,正面跳入攻擊就經常是老手欺負新手的一個有效途徑。新手想要對策正面跳入,必需經過一個搓招,才能使用昇龍拳來穩定對空。但在【Modern Mode】,簡單一鍵昇龍,就可以代解威脅,雖然攻擊力變底,但正面跳入不能當是賴招使用,讓大家回到思考何時跳入的博弈問題中。 如果說【Modern Mode】只為新手當做過渡期而使用的模式,那就真的小看了它的設定。在遊戲正式推出後,意外地出現高端對局中使用【Modern Mode】,因為它可以提供快更的反應速度,可以彌補一些角色上的短處。 對筆者來講,【Modern Mode】最重要的並不是簡易必殺技。因為追求傷害量的情況下,搓招很必要的。筆者看上它的原因是它能有效地簡化Drive Rush的輸入,令到筆者可以更易地通過【延長攻擊手段】最得反應的時間。一般讀者可能不明白進攻方為何要反應,不是防守方才要做反應嗎? 在格鬥類遊戲中,大部份時間防守就是死按一個【後】或【下後】鍵就足夠,在街霸六當中,更因為有Over Drive、Drive Impact等系統,防守方有更多博奕下的對策方案。怎樣打穿敵人的防守,是進攻方要用腦的事,更因為如此,有些人選擇打後手,等對方出錯,反而很有利。 但進攻才是格鬥遊戲的重點,要走向高分層次,就必需要跨越【Hit Confirm】的障礙。經過【Hit Confirm】,若然連招中途就發現打不中對手,就以一個更安全的攻擊收尾;若然打中了,做使用更多資源打出更高傷害。提高自己【Hit Confirm】的反應能力,基本就是跟年齡作對。所以筆者就需要經過其他手段,例如:Drive Rush來延長自己的攻擊節奏,好讓反應不來的筆者有更多時間選擇打安全招還是全力攻擊。 下期,筆者會再聊一聊對戰機制的改進

冬至,我們會想起什麽?

宗教玄學
熊神進・2023-12-21

#冬至##好運2024# 冬至,又稱冬節、亞歲,二十四節氣之第二十二個節氣、八大天象類節氣之一,與夏至相反。冬至日是北半球一年中白晝最短之日,冬至一般都在陽曆12月21日或12月22日,農曆用冬至所在月來定義十一月。冬至日亦是北半球(北回歸綫以北)一年之中白晝最短,黑夜最長之一日,北極圈呈永夜狀態,南極圈呈極晝狀態。冬至之後陽光直射位置開始向北移動,北半球白晝時數日漸增長,正午太陽高度也日漸升高,日影逐漸縮短。冬至雖然是北半球理論上吸收太陽熱量最少的一段時間,但因爲地球土壤跟海洋釋放熱量會有時間延遲,大部分情况下最冷的時期不是冬至前後,而是發生在冬至之後,比如說大寒。 氣象臺發布了寒冷預警信號,夜晚的街道,寒風凜冽,人迹稀少,路上偶有行人也是脚步匆匆,大家都急著想要回到溫暖的家,天橋下面流浪人士蜷縮著身體用紙皮蓋在身上禦寒。老人拿著幾個“塔香”,像往常一樣,來到樹下點燃,注視著“塔香”燃燒時升起的烟,老人口中念著“嗡阿吽……嗡阿吽……”如此簡單的“烟供”,却能在寒冷的冬天爲一切有情衆生輸出溫暖,送上飯食。 寒冬來臨,古時農民都會藏糧過冬,現代人也會在冬天選擇進食高熱量的食物,以便身體有足够能量抵禦風寒。但是,在另一個世界的六道衆生,却依然飽受饑餓,如同在世界很多地方,依舊有很多人吃不飽穿不暖。我們在勝似新年的冬至之日,我們在享受溫暖和飽腹的時候,爲另一個世界的六道衆生做一次“晚間烟供”:帶上塔香、米、水、餅乾(麵包)、藥材等,在陽臺、在樹下、在河邊等地,用小碟子把乾糧裝起來,把乾糧點燃,把塔香點燃,默念“嗡阿吽……嗡阿吽……”,冥想撒出去的米水、燃燒的乾糧轉變成米飯食物,六道衆生爭相搶食……形式不重要,發心是關鍵,古有冬至之日祭祀祖先,今有冬至之日晚間烟供,感恩我們目前擁有的一切,爲六道衆生送上一份慈悲心,讓它們獲得飽腹的糧食,讓自己遠離一切顛倒是非,用大愛讓衆生脫離小愛的痛苦。

新書《ChatGPT如配合Multicharts學習程式交易》近日在各大書局已有售

創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2023-12-20

新書《ChatGPT如配合Multicharts學習程式交易》近日在各大書局已有售。 若由一個完全新手要完全熟習Multicharts的語法(Power Language),再學習輸入數據、做回測及連接Auto Trade等步驟可能真的需要一定時間。 不過,自ChatGPT出現後,讀者們已可以直接用中文或英文將交易策略寫出來,再運用ChatGPT直接編寫出答案,無論是簡單的技術指標運用,又或陰陽燭策略,甚至較複習的套利策略,ChatGPT都能運用Multicharts的語法直接編寫答案出來。 雖然ChatGPT的答案未必全部正確,但學員只要明白Multicharts語法的使用原理便能懂得直接修改,這種學習方式比過往需要背誦大量Multicharts語法例子的方法更為有效。 而且若大家要寫大量的交易策略做回測也更為方便,因為所有策略不用自己由頭寫起,ChatGPT寫出大部份內容後再修改便可以,最終能節省不少時間。 本書的例子中除了常見的技術指標使用,也有自行組合的陰陽燭形態,以及一些比較高階的短炒及Daytrade 策略,包括分析恒指重磅股走勢短炒期指的方法、長短倉短炒策略- 同時買入騰訊沽空阿里巴巴等,這些策略只要ChatGPT及Multicharts同時配合使用,要寫出來及再修改也並不困難。 另外一些較少見的技術指標如適合Daytrade或短炒的Detrended Price Oscillator、Chande Kroll Stop、Super Trend、klinger Oscillator等,又或用以判斷單邊市及上落市的Choppiness Index,在交易時也有一定的參考價值,本書除了介紹這些指標的特別用法外,也會講解如何透過ChatGPT協助編寫這些指標,並同時在Multicharts上直接運用。

找一個可以私有化的協作平台

科技新知
MacauYeah・2023-12-19

在現今這個網路為王的年代,大部份文書等編輯工作都可以在Google Drive, One Drive那邊多人協作。唯一的問題是,你是否考慮資料保密問題。 一些開放資料,放在雲端上,故然無問題;個人用資料,就自己為自己負上保密責任。但作為一家公司,把自家客戶的資料放在Google Drive、One Drive上,你又會否覺得足夠保密? 不放在這些協作平台上,改為自購一個NAS File Server,把共享檔案都放進去,這樣又足夠方便嗎?現在File Server最大的問題,是無法提供同時協作編輯的功能,想在同一個檔案,多人同時更新不同的部份,是不可能的。 Etherpad-lite 如果大家只需要一起寫文字稿,可以試用Etherpad-lite https://github.com/ether/etherpad-lite 。 筆者試用過,它提供實時協作,其他人的更改可以即時顯示,也有一些基本的排版功能。缺點是lite版沒有好好處理大量的資料問題,一次過複制貼上大量文稿的話,會出現網路問題。 NOCODB 如果大家需要的是試算表,可以試用NOCODB https://github.com/nocodb/nocodb 。它強大的地方,是可以匯入CSV, Excel,做欄位搜尋。老實講,這些功能,對於一個IT人來說,隨便安裝一個資料庫,例如:MySQL、 MSSQL, 都可以做到匯入結構性資料,並供多人操作資料。但對於普通用戶來講,要學會操作SQL語言,實在有難度。而經過nocodb之後,可以把MySQL等轉化為常見的試算表型式,實在驚喜。而且,它也能提供一些簡單的填表方式(Google Form)

如果你家正對面,有如此護欄你將如何處理?

宗教玄學
熊神進・2023-12-14

解答讀者問題: 1) 如果你家正對面,有如此護欄你將如何處理? 澳門熊老師回答: 這是舊式的防盜欄杆,通常安裝在樓層比較低的樓宇又或3、40年以上舊式住宅陽臺上, 我們常常在舊城區、農村屋、出租屋等都可以看到, 而在一綫城市裏, 樓層都超過10樓(約30米以上),我們很少看到這些防盜欄。 防盜欄的作用就是預防小偷從隔壁陽臺入侵,因爲小偷都會從公共樓梯間的窗戶爬到人家陽臺,然後從人家陽臺爬到自己房子,所以加裝這個,小偷就比較難跨過去隔壁了。防盜欄的款式有很多,圖中見到的是「太陽花」放射狀欄杆,這種欄杆的頭部有一箭簇狀, 又叫「劍型欄杆」,而這種「劍型欄杆」被民間堪輿師稱爲「孔雀開屏護欄」,在70年代的「販厝」很流行,主要是爲了避免小偷從陽臺攀爬又不想裝鐵窗,才在與鄰居交接處裝設,但隨著各種防盜設備及防盜門窗問世,這種「孔雀開屏護欄」慢慢被淘汰。 在法律法規上, 我們沒有干預權阻止鄰居的「太陽花」展伸,而這些防盜欄又是否影響我們的磁場?陽臺裝置放射狀欄杆,主要功能是防盜,可是, 它的「劍型」設計乍看恰似一支形狀奇特的箭,的而且確造成對面的鄰居心理上不安, 有人認爲這跟風水有關,它是破解對向有「壁刀煞」,或路口正沖自己的窗戶等起了化解煞氣作用,姑勿論如何,睦鄰關係搞好了,大家首望相助, 齊心合力, 就可以預防小偷的到來。

Switch / Steam Deck / Mobile 使用體驗大比拼 (三)

手機‧電玩
MacauYeah・2023-12-14

上兩期,筆者從機身重量、續航性兩方面,對於遊戲機身便攜性的影響,今期最後一期,就從穩定性方面去討論,最後再做一個綜合影響。 沒有對比也就沒有傷害 - Mobile - Smart Phone 筆者所講的穩定性,其實就是正常運行一個遊戲,不會出現閃退的情況,讓你可以正正常常玩完一款遊戲。但因為Mobile原本是多用途機器,你玩著玩著,可以就要跳出遊戲回覆信息,但再次回到遊戲後,能不能正常運行的不知道。 大部份iOS遊戲,因為舊iphone機能限制,基本上跳出去後,都因為不夠RAM,回來後遊戲會重置。除非你打死不切換,否則一款遊戲沒有頻繁auto save功能,根本玩不下去。Android可能會好一點,有不同機型可以選擇,多一點RAM總是安全一點。 強行地用Linux運行Windows的黑科技 - Steam Deck 老實說,Windows已經不夠穩定,用Linux運行Windows Game,會比較穩定嗎?不過最幸運的是,Steam Deck有技術支援,更有社群支援,各遊戲經過Steam官方驗證,連續遊玩下閃退情況都很少。不穩定的原因,反而是Steam Deck主機本身。 在筆者遊玩的經驗中,待機後再打開,有一定機會率會整個遊戲閃退。這些問題在遊玩大作,特別是3A大作,會引來一個很不愉快的體驗。因為它們的auto save位置點一般都是以情節點來做考量,而以上班族來講,三步一待機的使用情境也很常見,那麼觸發閃退的機會率就很高。某次啟動會隨機引起閃退遊戲,真的欲哭無淚。 筆者也翻查過網上的資料,一年多前就有這個問題存在,而官方亦無法根治。筆者在寫稿的途中,還在測試坊間一些可能的補救方式,但因為時間不長,不敢說這問題是可以解決的。 穩定發揮 - Switch Switch在穩定性真的無可挑剔,多次待機後都沒有太多問題。完全貼合它的市場定位:在家可以隨時在電視玩,出外也可以四處走。隨時隨地停,隨時隨地再開。最多最多都是遊玩實體卡帶時,因為接觸不良而閃退。但這些不可避免的,因為實體卡始終是物理型態存在,跟著Switch四處奔波,難免會出問題。但下載數位版,存放於SD卡就不會有閃退。至少SD卡不會像實體卡會經常替換,所以出問題的機會也較少。 綜合體驗 其實討論了幾個方面,筆者都從是省心遊玩的角度出發去討論。 Mobile在裝備上會最少煩惱,想最輕鬆出問,這個是不二選擇,但考慮玩非課金類遊戲就最沒有保障。 Steam Deck優點是移動堡壘,若你玩的是高性能需求的遊戲,你只能選它。但想隨時玩就未必做得到。 Switch 在重量和穩定性上面最有優勢,考量延續性體驗,這個是首選。

Switch / Steam Deck / Mobile 使用體驗大比拼 (二)

手機‧電玩
MacauYeah・2023-12-12

上期,筆者為大家簡介機身重量對於遊戲機身便攜性的影響,今期,繼續從續航性方面去討論對於便攜性的影響。 依然是王者 - Mobile - Smart Phone 就如同重量一樣,續航性的理論值,依然是Mobile最優勝。單看電池容量,其實無能說手機最優,就算現在的iphone15,電池容量其實也比Switch, Steam Deck要低。能比得上的,可能只有iphone 15 Pro。但若果連同充電的方便性,Mobile是最易邊玩邊充的。一般來講,如果不以全效能去運行遊戲,Mobile是的電量是相當安心的。 但也如同重量一樣,續航性理論值,是Mobile最好,但不是安心長期遊玩的媒介。 一來,Mobile,一般都是用作社交通訊用,它的電量是分享給一整天使用的。一不小心遊戲時間長了,那天晚上可能就沒有電話用。除非大家想隨身攜帶奶媽(充電寶),但這是用重量來換取遊戲時間。所以筆者不會把它當作首選。 巨無霸 - Steam Deck 空有其名的巨無霸。在電池容量上,它是三者中最大的一款,但因為它對照的遊戲效能,是PS4/5、XBox One/X/S、PC等的大作上面。那些主機大作,對電量是極其大需求的,單憑散熱風篇的聲音,你就知道不秒。一般遊戲的預設畫面品質,就只夠1-2小時的遊戲。實在想延長,就必需要下調Frame Rate或是畫面品質。 玩消耗戰必選的設備 - Switch Switch預設電量不多,但因為畫面其實也不能要求太多,所以它的續航性不低。相比Mobile,Switch就是完完全全的純遊玩設備,也不需要筆者去刻意規劃電量。沒電?關機就好。待機也是單純的待機,不需要什麼定期連上Wifi、GPS,藍牙亦單純地為耳機及手柄使用。想更省電,就待機前就全數關掉就好。 綜合體驗 老實說,看完重量及續航性之後,Steam Deck主打市場明顯不是遊戲掌機,而是一台可以搬走的PC。你可以方便地整台電腦帶走,從自己家到公司,從公司去親友家。它的體型,比主機和Notebook要細,它的售價,也比一台Notebook要便宜。但想拿著玩?可能不會特別開心。 Mobile在重量及續航性綜合考量,其實很有競爭力。不過考量用途問題,否則你也很難安心用Mobile來玩遊戲。 老任的Switch,重量及續航性在初推出市場之際,筆者都不看好。但實用和對比之後,畫面效能和續航性控制得還不錯。

妳知道為什麼農村人很少離婚嗎?因為,因為什麼?

宗教玄學
熊神進・2023-11-28

讀者來信: 我是1993年出生, 在XX做房地產經理, 3年前結婚, 丈夫是一位XXX, 他常常出差………………昨天洗衣服的時間, 我發現他的褲子裡有一個避孕套, 這已經不是第一次發生, 我為了這事兒瘋了, 也辭工, 在家不再上班 ,我希望………………..我真的很不想離婚……………………………。 (由於讀者的來信包含很多隱私以及有全身照片, 不方便刊登) 熊老師回答: 謝謝15321字的信,62張全身照片,每一字一句都是妳的戀愛歷程,我為妳燒了「阿彌陀佛贖罪香」後打開了妳的命盤,命盤裡的配偶宮有一粒「老人星」,妳知道「老人星」是什麼嗎? 很多初學八字的學生以為「老人星」是天上太極老人,你們的眼睛長的太高,都是看天上的,有此認知的人,終生學八字不精進。 妳在信中說了很多妳過去在上海的戀愛往事,我亦不會單純聽妳的說法,玄學家是從江湖中過來,不懂風情但懂風雨,妳的故事跟「婚外欲」男人離不開,妳可否知道,這是妳種下了惡因。 在玄學上,婚姻有二種, 一種是法律婚姻,另一種是玄學婚姻,, 而妳的命盤裡有17人玄學婚姻,玄學婚姻俗稱「邪淫」,由於妳沒有聘請風水老師為妳家居做一些預防,妳把惡因培養起來。 婚姻的《三世書》意義就是一場「業」,在商業上是一場「合作」,因此資深師傅是不會說「經營婚姻」這句話,因為只要是「經營」,就存在Resource matching的問題,有了「經營」,就有利益上的計較,也就是符合了婚姻的「業」。「計較」是什麼概念,這是一種很現實的殘酷,丈夫計較妻子的美貌, 才華,財富等。 妳知道為什麼農村人很少離婚嗎?因為,因為什麼? 因為夫妻二人都在同一層次上,因為夫妻二人都沒有想過進步,說玄一點,就是二人一輩子都處於同一水平線上,你沒有學佛,我也沒有。妳知道嗎?丈夫是醫生,為何找夥侶, 妻子都是醫護人員? 女法官的丈夫都是領導,這當中有很多玄機。 妳在信中說,妳一直跟已婚男人糾纏,請了很多古X童回來去克制人家老婆,妳的思想行為不是很正確,妳用了太多旁門左道。 妳說妳為了男人放棄了事業,沒有了事業的女人就不再有魅力,男人永遠欣賞有自我追求的女人。夫婦是比翼鳥,妳飛的太快了,你就會把對方甩掉, 妳飛的太慢了,妳就會被對方甩掉。我認為成功的男人,不會把女人留在背後,後面的女人是男人照顧不到,男人會有掛罣,男人亦不想女人站在前方,前方的女人會牽住男人的鼻走,男人最想女人在自己身旁,只有身旁的女人才可以跟男人比翼齊飛。老公飛的太快,老婆跟不上步伐,離婚是結局, 夫妻間的高度存在大差異時,這種關係是不可調和的。 從玄學角度可以分析,夫妻之間最可怕的關係,就是一方在前進,一方在原地踏步,當自己的老公找到大財時,請妳不要竊喜,因為危機就快出現,男人無選擇在妻子身上花錢,當他有選擇時,錢就花了其他女人處。一個男人已經爬到7樓,妳還在3樓,他在7樓遇到了一個姑娘,這個姑娘跟他攜手繼續爬向樓頂,去看他們的風景,而妳跟不上他的節奏了,他給你錢, 再不是什麼「愛」, 只是把妳看成是留在家裡的寵物。 妳的八字官殺混雜,沒有印星,殺星是妳的欲友,妳沒有修行,欲念濃,婚後仍然跟前男友有風花雪月, 也是不專一,妳在信中問我如何挽救男人的心,我總結了,有三個方法: 妳必須上班,工作職務是從事殘障服務機構。 玄關擺放一隻黑曜石「怒目孤」。 3)明年妳犯太歲, 包包放一件「黑剛六字真言牌」。 我有這樣的想法,妳的丈夫短期內是變了心, 有了外遇,妳不用為這殘婚守下去,因為這是一場鬧劇,妳的配偶宮的藏幹仍有異性星, 而且是「老人星」,有一位年齡比妳年長二十四年的男士在妳婚門外,妳還會跟他懷孕,一切都是業。

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.add(car); } } 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().filter((car) -> { 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 = filterCarsByWheelsSize(tempCars, 4); return passTestCars; } private static List filterCarsByWheelsSize(List 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.add(car); } } return passTestCars; } 上述ex3是一個有效的改進。如果大家不計較傳入參數的先後順序及交互影響的話,就已經很足夠。 但如果大家對於多參數的解讀又怎樣? private static List someotherfunction(List 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 ArrayList(4); cars = cars.stream().filter( filterCarByWheelSizePredicate(wheels) ).toList(); return cars; } private static Predicate filterCarByWheelSizePredicate(List wheels){ return (car) -> { 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