搜尋

搜尋結果

Ceph Storage 水很深
科技新知
MacauYeah・2024-09-25

筆者不才,早前為大家介紹了一篇關於Ceph Storage的最入門安裝教學。但在後續測試中,發現了一些概念上的問題,需要盡早說明,不然就會像筆者一樣,要砍掉重來很多次。 OSD HDD Ceph Storage的主要功能,就是為Contiainer提供外置儲存空間,它對儲存空間有特定的要求。我們最好在建立ceph clustercephadm bootstrap之前,就為每個node上增加合適的HDD 引述官方說明 OSD Object Storage Daemons The device must have no partitions. The device must not have any LVM state. The device must not be mounted. The device must not contain a file system. The device must not contain a Ceph BlueStore OSD. The device must be larger than 5 GB. 簡而言之,大家需要準備新的HDD,不要做任何格式化,讓OS見到HDD但不作任何操作。筆者試過,使用hyperv VM hyperv HDD,也是可以做到的。不過之前筆者於教學中用的 multipass 就沒有這個模擬HDD功能,我們需要使用比較強大的VM作為實驗。 若然HDD是在ceph clustercephadm bootstrap建立之前,就存在的。我們可以經過ceph的網頁介面,或經指令自動加入。 ceph orch apply osd allavailabledevices 若然HDD是在ceph clustercephadm bootstrap建立之後,才加入的。那麼ceph有機會沒法自動發現它,筆者當前的dev版本就出現這問題。我們就需要經指令手動增加 ceph orch daemon add osd NODENAMEdevsdb OSD 官方說明文件 httpsdocs.ceph.comenreefcephadmservicesosd#cephadmdeployosds Reset 在我們做實驗時,若我們想回復到上一個狀態,測試不同的參數差異,Ceph指令並不會即時執行。例如前一句的add osd,想倒回來自行刪掉一些osd,即 ceph orch osd rm OSDID 它就會排隊慢慢做刪除。 但這個過程筆者未有成功過,OSD一直處於繁忙狀態。有機會是因為系統需要保持同步狀態,待成功遷移資料前,什麼都不能動,所以一直都在待刪除的狀態中。 同樣地,當我們想要刪除一些node時,我們使用以下指令 ceph orch host drain NODENAME ceph orch host rm NODENAME 最後也是會卡在刪除OSD的情況 Removing Hosts 官方說明文件 httpsdocs.ceph.comenreefcephadmhostmanagement Static IP 因為 container 技術,很多都需要固定 IP ,我們做實驗之前,最好先了解你的VM engine如果提供Static ip 。以 hyperv 建立的 VM ,其實可以同時建立兩張網卡的,一張為預設網卡,用於連網用,另一張則設定為內部網絡。在安裝 ceph 時,經 cephadm bootstrap 所引用的IP則設定為內部網絡的IP。之後基本上使用任何一張網卡的 ip ,也可以訪問到cephadm的網頁介面。如果不是在一開始的階段上準備Static IP ,我們又會在重設解綁cluster時,同樣因為機器繁忙而卡在不上不下的狀況。

勤儉:澳門新一代的未來之鑰
文化創意
陳康妮・2024-05-14

勤儉:澳門新一代的未來之鑰 作為一個在澳門成長的澳門教育家,我深知勤儉不僅是一種生活方式,更是一種智慧。在這個物質豐富、消費主導的時代,勤儉似乎成了過時的觀念。然而,我認為勤儉是澳門新一代年輕人走向成功的重要基石。 一、勤儉的真正含義 勤儉並不意味著吝嗇或拒絕享受生活。相反,它是一種對資源的尊重和合理利用。勤儉是一種生活藝術,它教導我們如何在不浪費的前提下,充分利用我們所擁有的一切。 二、勤儉與澳門的關係 澳門作為一個小型經濟體,資源有限。因此,培養勤儉的習慣對於澳門的可持續發展至關重要。透過勤儉,我們可以減少浪費,提高效率,並為澳門的未來做出貢獻。 三、如何培養勤儉的習慣 培養勤儉的習慣應該從小開始。家庭、學校和社會都應該扮演積極的角色。家長可以通過日常生活中的小事來教導孩子們價值觀。學校可以通過課程和活動來強化這一理念。社會則可以通過媒體和公共政策來推廣勤儉的重要性。 四、勤儉對個人的益處 勤儉不僅有助於個人財務的穩定,還能培養出良好的自我管理能力。這些技能對於未來無論是在職業生涯還是個人生活中都是非常有價值的。 五、結語 勤儉是一種美德,也是一種力量。它能夠幫助我們在面對挑戰時保持堅韌不拔,並在資源有限的情況下創造無限的可能。作為澳門的一員,我們有責任將這種精神傳承給新一代,讓他們明白勤儉的真正價值。

軟件發行也需要維修基金?
手機‧電玩
MacauYeah・2024-05-13

筆者參與軟件開發,都己經有好一定年期。面對軟件開發週期,最痛苦的並不是研發階段。好多打機的朋友,可能會以為軟件應該跟遊戲差不多吧,開發完就頂多修BUG,然後全心地投入下一個項目的開發。要持續花時間更新?不可能,微軟不也是幾年要求重買一次新版的Office套裝嗎?幾年也要另外花錢升級OS。概然全部都要另外花錢買,不就是一個全新的項目嗎? 其實除了微軟這種夠大夠惡的龍頭公司外,其他都不是這樣運作的。例如我們現在很常用的手機OS,不論Android, iOS,其實只要硬件支緩,就不需要用戶成本就可以升級的。其內的App應用,也因為手機OS的升級,也要持續升級。所以不論你是哪一層的開發者,好大機會都要一直維護已發佈的軟件版本,好讓它可以在不同環境下運作。而這個維護成本,就看你低層的供應商有多進取、有多佛心。現在基本免費的供應商都會大刀闊斧地改功能。大家要留意,是改功能,不是加功能。也就是有些功能過去有,現在使用模式整個有改變,你不得不重寫自己的軟件。 所以筆者現在最頭痛的是,如何為公司維護這些沒法帶來新收入,而又要不斷支付時間和金錢的訂制軟件。 技術上,一定有很多討論,但在於只關心行政的老闆的角度下,根本聽不懂。在於開發者的角度,也需要很長期的實務經驗才能有好一點的佈署。扣除技術,在本質上,若然各利害關系人都曾經考慮過,大家應該都會有更好的預期。 軟件有生命週期,而且這個重複得越來越快。由開發到發佈穩定版本的時間、人力、金錢最高。因為環境變遷,重回開發的機會越來越多,不斷地重複。 需求狠心地下架過氣軟件。過氣軟件,要麼更新,要麼淘汰。但不是所有軟件都受歡迎,值得投放時間。這個在老闆視角下,他很懂。但老闆通常做不了的是,狠心放棄升級不了的軟件。老闆經常覺得,只要軟件放著不更新,就不會有成本。錯,因為老闆只會記得倉庫中曾經有一個軟件可以做到某個功能,可以給賣給某個客戶。但當你拿出來時,才發現不能直接用,還是很焦急地找人更新。 軟件開發,跟很多其他類型工程很像。不是隨時看看圖表,就可以回憶前世今生。舊軟件要救,要花時間先摸索當初的開發工具、環境,追查問題原因,或許最後可只改一句指令就解問題,但總體成本會令人無法接受。 軟件的可複制性不如以前。很多老闆會認為,你之前開發過一次,抄過來做點少改動,不就可以當一款新的應用嗎?因為原來軟件沒有維護,大部份過氣的軟件,即使你有原始碼,你也未必能找到適合的編譯環境來做改動。想要改動?還是老老實實做先更新。 所以,大家對於軟件維護,應該要像物業管理一樣,要預留一部份費用為維修基金。可能還是有老闆會講,怎麼可以預留到這麼多錢去做維修?所以,筆者更加建議,不是要做一個完美的萬能軟件,要鎖定核心功能。沒化更新的,就放棄、止蝕。

【馬交慳多拿 baby】聖誕自助餐特輯 - 21.12.2023
生活在我城
Cheers!・2023-12-21

就到聖誕~梗係要同屋企人朋友去 Happy Gathering 喇~ 今期慳多拿 Baby 為大家整理咗一系列聖誕自助餐推介,令大家食得盡興,想知就即刻去片喇~ 1.安達仕廚薈 安達仕廚薈12 月 24 ndash; 25 日推出首個聖誕自助晚餐,餐廳以即席烹調嘅方式,炮製葡式、土生及地區特色名菜,包括海鮮美食聖誕節煮鹹鱈魚配什錦蔬菜、烤全羊、葡式鴨飯等。成人每位 $688, 兒童每位 $348 , ICBC X 銀河聯名信用卡 85 折起。 安達仕廚薈 價錢:聖誕自助晚餐成人每位 $688 ,兒童每位 $348 元 地點:澳門安達仕酒店 北翼大樓6樓 電話: 8883 2221 2.MGM 澳門美高梅「盛事」餐廳同美獅美高梅「濤岸」餐廳推出豐盛節慶自助餐,包括傳統嘅聖誕佳餚烤火雞、聖誕甜點、海鮮冷盤等,成人自助午餐同晚餐分別每位 $388 同 $628 起,小童有半價優惠,美高梅會員卡 95 折起! 澳門美高梅「盛事」餐廳、美獅美高梅「濤岸」餐廳 價錢:成人自助午餐 $388 起,自助晚餐628 起,小童半價 電話:8802 2372 3. CTM Home Media 話賞就賞 !禮物總值超過 $30,000! 依家 CTM Home Media CTM TVB Anywhere 客戶喺活動期間登入同使用服務,可以參加 話賞就賞 轉盤大抽獎!禮品日日有,每日登入同參加遊戲次數越多,中獎機會越大! 立即下載 Home Media 睇娛樂,玩抽獎啦! 4.澳門巴黎人「巴黎人自助餐」 澳門巴黎人「巴黎人自助餐」推出節慶自助晚餐,打造味覺、視覺、聽覺三重奏!用餐期間仲有表演,非常有氣氛,中銀金沙時尚銀聯信用卡9折起~ 「巴黎人自助餐」 日期:2023年12月22至25、29至31日及2024年1月1日 價錢:成人每位 $888;兒童 $428 地點:澳門巴黎人1樓 電話:8118 8822 5.澳門新濠影滙「星滙餐廳」 澳門新濠影滙「星滙餐廳」推出聖誕海鮮自助餐,菜式包括原條黃鰭吞拿魚刺身、即點即蒸龍蝦、花尾躉,12月25 ndash; 26 日期間,成人每位 $728+,小童每位 $368+!新濠風尚會員仲可享 9 折優惠~ 澳門新濠影滙「星滙餐廳」 價錢:成人 $728;小童 $368 地址:新濠影滙東翼二樓2113號 電話:8865 6668

新書《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上直接運用。

Coding | Test Case 值得寫嗎?
科技新知
MacauYeah・2023-11-02

很多做軟件開發的朋友,其實都會聽過Testdriven的開發模式。就像Scrum一樣,名氣很高,但試過的人很少。為何會這樣呢?筆者認為,並非開發者懶,而是編寫Test Case的難度真的高。對比開發程式本身的成本,寫Test Case的時間學習成本一樣高。 造成這些高成本的原因很多。一來是因為開發者並不像過往一樣,慢慢從零寫程式,一般都應用Framework去預構建一些東西,例如打包Database connection pool,Dependency injection。Framework是好用的,但就令你要模擬Mock up特定資源,變得越來越複雜。所以一般中、小型開發,都鮮有人懂得做Test Case除了大神獨立開發者外。筆者對於Spring boot等Framework,都摸索了很久,才能模擬一些特定資源。但Framework一更新,就很多部份都要重寫。所以筆者沒有很強調要做Test Case,因為成本認真大。 最近,在摸清一些test case 基本concept後,筆者又重新開始嘗試編寫test case。以下假設用的是object oriented programming 在開發自己的class,為每個public function,都寫test case。很多IDE, 都有提供相關自動生成test case function signature的功能(就是為你的目標function,起一個只有外框的test function。)vscode雖然不是原生支援java,但只安裝基本的java test package,就可以達到同樣效果。 在不依靠framework的情況下,自己class要『引用』的其他class object,不要經過自己使用new來生成object。全部經set function來傳入你要引用的class object。除非你的class是作為Factory Pattern(工商模式)生產某些object,不然你就不會再有new字眼。 在為自己class編寫test case時,就會可以模擬被『引用』Object的行為。這個object在傳統上可以使用oop中的interface類型來達到模擬又不會影響到原結構的做法。實在不想做interface,java還可以用mackito 這個libraray來硬改Object的行為。 同理,自己class要『引用』一些外部資源,那些設定資源的config,都應該要set function傳入。這樣你在test case中才能起一個臨時的模擬外部資源。 在不使用framework的情況,要全數去自行模擬,當然很痛苦,但至少你可以做一些很簡單的測試。 在使用framework的情況下,還有些教學都是教你mockito繼續模疑。但這會是很痛苦的,因為這樣叫做unit test,單元測試,你要模擬所有東西。在折衷的情況下,應該底層元件做unit test,但上層的元件就做integration test,整合測試。 在做integration test時,就差不多等同使用framework行起部份或必要的資源。而那些必要資源,可能指是的database service, network service。我們可以在test case中設立不同的config,從而把framework指向一些備用資源。 Database好貴,腦細不會付錢set up多一套,自己電腦不夠強,也不能跑起多個開發用Database。好在還有h2 database可以幫你,它是memory可以操作的。只要你的framework支緩就好。在初次使用Framework時,你總會覺得為何Database層要設得這些抽像,其實為的就是讓你可以隨時換Database。不論做測試還是做移植,都會少很多問題。 模擬Network service還是沒有銀彈,要麼就mockito硬改行為,要麼就是提供一套測試用service。筆者曾經為模擬別人的Network Http API,也花了相當時間自己建立dummy server,提供模擬效果。無論dummy的效果有多假,有多局限,例如if id == 1,always return true,也是有一定價值。當你做source code refactoring (重構),又或是做framework升級時,還是讓你可以安心一點。

Design Pattern: Observer / Subscribers - Push vs Pull
手機‧電玩
MacauYeah・2023-09-29

相信一般入行IT不久的朋友,都會知道IT系統更新時,有推和拉push、pull兩種方式。特別是Programer,對於觀察者模式又或者是訂閱者模式Observer Subscriber 會有更多的使用經驗,例如OS programing要處理event bus,Mobile App要做的推送通知Push Notification。 但一般來說,很少人討論推和拉push、pull的問題,筆者就著一些踩過的坑來說說差異。 首先,在一個通訊相對穩定的系統中,Push、Pull都很好用。例如同一個OS內,它的socket或pipe可以看作很穩定,可以假設那些要廣播的消息可以正常傳遞出好。但好用歸好用,這個模式對於越來越複雜的交互系統都有一個無法明確處理的問題:怎樣去處理觀察者訂閱者自己的操作失敗問題。 對於非IT行業的讀者來說,只要你接觸過手機即時聊天程式IM,如whatsapp, wechat, facebook messenger應該都會遇到一個問題就是:你收到OS提示通知,但打開聊天程式卻看不到新的對話內容;又者是你連續收到多個同一個內容的提示通知,那怕你已經讀過了。這些都代表了,手機端當初時沒有好好即時回應是否已經操作成功,不需要重複通知的問題。有可能是手機當時掛了,也有可能是網絡不太好。 上述的例子,對一般人來說,可能影響不太。因為重複收到訊息,又或是漏了訊息,也不會怎樣。但對於業務系統,例如定期收費,多收一次又或是少收一次,都會引起某部份關係者的不滿,即使事後有退費機制,但有些匯率問題,始終會有差異。在傳統架構上,有規模的公司系統都可能會使用內部的中央資料庫等做交易transaction管理,整個過程,都要嚴謹地記錄廣擴是否成功、觀察者自己的操作是否成功。 在近代,分散式系統又或是微服務的出現,令上述的中央資料庫無法實行。如何好好地重新定義好Transaction管理,就是一大挑戰。筆者最近亦實作了一個要在微服務的上廣播的觀察者模式,但雪上加霜的是,在互聯網的環境下,廣播的消息沒法保證可以正常傳遞出好。觀察者訂閱者可能已經正常收到消息,也做了相應的操作,只是來不及回應,網路就斷了。這令重複發送信號的可能增加了。 如果說,要以平民的方式去實作這類廣播,Pull會比較有大的容錯。廣播者只是通知觀察者訂閱者來拉資料,保證廣播當時的資料量可以盡量地少。廣播者開放盡量大的查閱權,觀察者訂閱者可以自由決定事後更新要取得的資料量。但這樣每個觀察者訂閱者都要重做一次同步機制,不過好處是,主動權在於他們自己手上。 相對地,Push的容錯就低一點,但要付出的成本也跟Pull差不多。因為網路環境,大家要重現一個基於TCPIP而有commitrollback的難度較大。當網路出現斷線,廣播者無法確定是否需要重做。在重複收到訊號時,最後還是需要觀察者訂閱者來決定怎樣處理重複記錄。但比Pull好的是,Push可以限制單次訊號的傳送量,也可以確保觀察者訂閱者一定收到特定的記錄。 上述就是筆者在這一年來遇過的坑,如有什麼不足,很歡迎大家一起來作更多討論。

Git Submodule
科技新知
MacauYeah・2023-09-15

Git Submodule 初次實務上使用submodule來同時管理幾個project的更新。如果有任何理解上的錯誤,請在github中提issue或pull request。 Why Submodule 假設你的團隊中有三個人,A君做A Project,B君做B Project,C君做Main Project。如果可以,A,B各提供已編譯的Binary或Library,給C君直接使用就最好。 但要做到好好管理,A,B都要有自己的發佈系統,即是把Binary上傳到某個分享Repo中,這樣C君就能有條理地通過IDE或Compile工具下載對應的版本。如果是javascript,Repo可能就是npm repo,如果是java,可能就是maven repo。這亦代表A,B君對程式編譯、打包、版本命名等都要很熟悉,不能一輩子都命名為v1.0.0。 如果團隊對這些都不熟悉,C君還有什麼方法呢其實靠著Submodule的功能,C君也可以硬把A,B的Source code取出,做最後打包。 這跟A、B君自己把source code壓縮然後Email寄給C君是有不同的。因為這樣C君並不清楚A,B的git脈絡:C君需要自己做好A、B的版本記錄。想要只回滾A,B的版本普不容易。但經過git Submodule後,C君可以清楚知道現在正使用的是A、B的那一個commit版本。假如有一天,A、B、C三個都更新了,但發現合起來時就跑不動。C君可以保持A、C的版本不變,單獨提取B的某個版本進行測試。當然,你可以說原本Email也可以這樣管理,但始終你不清楚B的版本記錄,Email的日期並不代表Source Code的進度。因為有時候,Bug Fix是針對舊版本的做更新,新功能的Email日期反而比Bug Fix要早 同理,如果大家要連結多個沒有發佈系統的文字資料,也可以利用Submodule。例如筆者正在編輯一本書,當中不同的主題,就是使用Submodule的功能串連起。 Command 馬上看來來Submodule可以怎樣做。 假設你已經知道git 怎樣用,也起了git repo。假設你是C君,進入你的本機repo資料夾內,使用submodule參數。 上面的效果,就是把C君當前repo的狀態,連結到B君submodule當時預設分枝default branch的最後一個commit 中。然後C君在自己的repo怎樣更新,它引用到B君的submodule版本都不會變。 直到某一刻,B君說他加了一個穩定的新功能,請C也連帶更新一下。C君也做好自己的準備後,使用submodule參數進行更新。 注意,如果C君有多於一個submodule,上述指令會全部一口氣更新。另外,如果你覺得B君的最新版本不能用,還是可以針對B君取得特定的版本。

手機也可以寫攻略
手機‧電玩
MacauYeah・2023-08-11

上期為大家簡介過筆者使用Github mdBook制作遊戲攻略。未看過上期介紹的朋友,可以在這個連結httpslifemag.cyberctm.comzh_TWblogmacauyeah13777 找到上期內容。今期就繼續為大家介紹一些工具讓手機也能協作。 筆者在開始前,先簡單總結為何會選擇Github mdBook。 Github是協作工具,追查因為歷史修改記錄會比其他工具更成熟 mdBook以純文字方式操作,適合上傳至Github。 mdBook有自動轉網頁方式,Github有寄存簡單網頁功能。 現在剩下的就是如何做編輯。 電腦端 傳統上,如果要用網誌或Google Doc作為編輯媒介,若你有電腦的話,只要使用現代瀏覽器就可以使用,基本上都會有提供自動儲存草稿的功能。即使你在別台電腦中也可以繼續進度。Google Doc等也有提供離線模式,有時候真的網路不通,可以先修改線下版本再上傳回去雲端。網誌就未必有這些功能。 同樣地,Github也有提供瀏覽器直接修改的模式,不過想要離線操作,就需要使用Github客戶端或其他Git客戶端。重要的是,mdBook的原始文件其實只是純文字,可以用最簡單的記事簿程式就可以繼續創作。只是最後要經Github轉化為網頁發佈。 說到尾,有電腦在手,其實什麼方案也不算困難。有網路一切事情都可以解決到。 手機端 但在手機上,因為操作空間的限制,一切都變得很艱難。如果對技術不熟悉的朋友,可能用Google Doc已經是最好的方案。 Google Doc手機版已提供相對友善的排版編輯功能,但它真的不能取代電腦版。很多重要的縮排或插圖功能,還是開電腦使用吧。網誌就更不用考慮了,一般它們的編輯功能都不適合在手機上使用。 而Github的手機版,對於編輯純文字還是相對可以用的。而且mdBook對於一般文章排版也是夠用的。但是這個方案沒有暫存功能,對於長一點的文稿,需要離線慢慢創作就不太可能。 幾經辛苦,筆者終於找到一個Git的手機版,可以輕鬆地離線編輯。那就是PolyGit,它的免費版本雖然一天只能上傳Server 3次,但因為可以離線編輯,即使沒有付費,頂多隔天才一口氣上傳。更重要的是它的文字編輯器,可以看懂部份mdBook markdown格式。你在一邊創作時,就會看到基本的Highligh提示。不過最可惜的是,PolyGit只有iOS版本,Android版筆者未有找到很好的Github替代品。 這樣,你就可以隨時隨地,任何地方,都可以繼續創作了。以筆者的角度來講,扣除工作環境外,平時會碰電腦的機會真的少之又少。想好好找個時間、找一台電腦來創作,基本上很少可以實現。但手機就不一樣,午飯在餐廳休息時、晚上睡前坐在床邊,什至乎是大解的時候,拿著手機打打打,也是一個不錯的選擇。 PolyGit 官方連結 httpswww.polygitapp.com

Git Co-Work Flow
科技新知
MacauYeah・2023-06-23

Git CoWork Flow 雖然git面世已很久,但相當一部份澳門朋友都是solo man,很少合作寫code,對git branch始終都有些恐懼。所以這次來解召一個基本原則,至少你不會爛了code救不回來。 若然大家未熟悉git,初次利用git合作寫program,請盡量減少使用共同分支branch,可以極大地減少問題。 第一個大原則 建立一條自己分支 在一個repo中,為自己建立一條分支branch,可以減少Remote repo中有人比你先commit,而令你push失敗的情況。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 除非你的隊友故意你用的分支名先commit,又或者你自己有幾台電腦,幾台一起做改動。不然push 應該不會有問題。 第二個大原則 用fetch取代pull 很多人在取用Remote Repo的更新時,都會使用pull。但pull其實是fetch及merge的混合,而且merge還要考慮source branch是那條分支的問題,若然大家都有一條獨立branch,那麼這個無腦pull並不存於每人只有一台電腦下的多人協作中。 fetch的過程中,還可以加入參數prune,順便依照Remote Repo的指示,同步刪掉本機中一些不再存在的originbranch。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 第三個大原則 Merge前先Commit 經過前述fetch後,其實他人的改動並未加入自己的分支中,必需經過merge才會出現。但並不是沒有conflict就無腦merge。 假若自己有改動,未commit,應該老虎蟹都先commit。這是為了在merge後,還有機會可以無腦reset,回到之前那個commit。這就像是做任何更新前,先做backup。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 第四個大原則 由某個特定的人來管理master或main branch main branch以前叫master branch,是他人下載時的預設分支,也是Github、Gitlab的預設顯示分支。所以該分支存放著的source code,應該在代表信心度比較高。 在協作的環境中,每人都有自己分支,那就代表要有一位人員做管理,他負責checkout main, 然後合併其他已驗證的分支。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 在某些比較嚴僅的環境中例如Github、Gitlab,main分支可能會被系統機制鎖定,必需通過系統內鍵的Pull Request,才能通過審核,合併到main。另外,也有一些關於開發上的Git workflow,主要針對功能管理、版本發佈、錯誤修正等控制。有機會再為大家介紹。 希望以上的流程,可以有效且容易地讓大家協作。如果有任何command錯誤或更新,都可以經Github Pull Request通知筆者。

遊戲手柄Backbone 評測:使用心得及存在之問題
手機‧電玩
MacauYeah・2023-03-13

近年來,手機遊戲的盛行使得手機遊戲手柄的需求逐漸增加,其中一款較為知名的手機遊戲手柄為 backbone 遊戲手柄。筆者早在半年前就想入手,苦在澳門沒有進口,某寶網購亦只有代購一路,所以遲遲不敢購買。但最近,澳門各遊戲店都有入貨,筆者亦急不及代地買了一套iphone款。以下,就分享一下我的使用心得及存在之問題: 使用心得:最美的部份 沒有延遲、也沒有無線干擾:因為Backbone 遊戲手柄使用的是直接以Lightening直連手機,所以流暢度很高,按鈕也沒有網路上所謂的硬(頂多像是Switch Joycon)。也因為是直連手機,沒有舊款藍芽之間那些干擾問題,不會讓你的藍芽耳機斷斷續續。 設計合理:因為沒有使用藍芽,也沒有內置電池,所以跟手機配合起來也不重。能夠大大減少使用者手部的疲勞感,而且長期玩也不怎吃手機電量。也因為足夠輕,即使帶出戶外也不費力。 不夠完美的部份 安裝方便性:雖然是Lightening直連,但每次連接都要拆掉手機保護套。本體的安裝過程其實很方便,但拆套是件很費時、也怕手滑跌手機的事。折衷方法,就是長期手機跟手柄合體,它可以經外置的Lightening 電源,由手柄為手機充電。合體後手機也不算變大很多,還是可以放在公事包中一同出行。 價格偏高:Backbone 的價格有夠高,比常見的8BitDo系列、PS4、PS5系列,都要高。而且亦無其他可以使用的平台,這個價格下的所有功能,只能用在手機上,所以CP值對比其他手柄就差很大。 圖為合體後的大小,因為沒有手機殼,整體不重也不會太大 總體而言,如果你已經無法玩主機遊戲,想在手機上另找出路,你的手遊亦支援手柄的話,這款Backbone一定買得過。不過如果你本身有遊戲主機,又或者你的手遊共不支援手柄,就不用花錢買這個了。 註:如果你想用手機玩PS remote play,也請三思。因為有些遊戲要用Touch Pad和Motion Sensor,而PS Remote Play對這些功能並不友好。例如The Last of Us第一集,就有手搖電筒的問題,你在Remote Play下就是搖不出來。這不是Backbone的問題,這是PS remote play自己的問題。

在澳門,有一群熱心的師生們每週三都舉辦斷捨離活動
文化創意
陳康妮・2023-03-09

在澳門,有一群熱心的澳門師生,他們每週三都會走進澳門新口岸社區,舉辦澳門斷捨離活動,將自己不需要的物品捐贈給有需要的人。他們認為,這不僅是一種環保和節約的做法,也是一種關愛和分享的精神。 這個活動由澳門斷捨離Facebook群組主辦,已經持續了三年。每週參與的澳門師生接近過百人,他們每次都會提前收集和整理自己或其他人捐贈的衣物、書籍、玩具、家電等物品,然後借新口岸區的場地,設置攤位和展示架,讓來往的巿民免費挑選和領取。 澳門師生希望通過這個活動,讓大家體驗到斷捨離的好處。一方面可以減少自己家中不必要的東西,讓空間更寬敞、更整潔;另一方面可以幫助別人解決困難或增加快樂,讓物品得到更好地利用和延續。rdquo; 參與者之一的李同學則表示:ldquo;我覺得這個活動很有意義。每次看到那些拿到物品後開心地笑容或感謝的話語,我就覺得很暖心很開心。同時也讓我學會了珍惜和分享。rdquo; 活動受到了澳門社區居民和其他組織的歡迎和支持。許多人都表示感謝和讚賞。有些人甚至還主動加入了活動團隊,成爲了志願者。 澳門師生們計劃繼續堅持下去。也歡迎更多人加入。只要你有心、有愛、有行動力,你就可以成爲其中一員。rdquo;

運用ChatGPT編寫Multicharts及Amibroker 語言
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2023-02-18

自OpenAI 推出ChatGPT後,編寫交易策略變得比以往更加容易。過去學習編寫運用Multicharts及Amibroker編寫策略時需要先熟背大量的語法,但現在ChatGPT可以替你在短時間內完成編寫策略,而且更可用中文給它指令,甚至可直接做回測。 雖目前ChatGPT的數據只到2021年,但相信不久的將來數據會更新,而且更可以有實時數據。 現在學習Multicharts及Amibroker重點只需學習語法的基本原理,然後策略由ChatGPT編寫,有了結果後可直接Copy到Multicharts及Amibroker使用,可以做回測及優化。 但當然,ChatGPT編寫的策略仍需要有基本語法知識去驗證是否有錯誤,但學習的過程相信會比以往變得更容易。我們會將大量的策略給大家示範,除了基本運用技術指標組合,還包括波浪理論、Pair Trade方法、又或看重磅股炒期指的策略等,而且包括了港股、美股、期指、美期、槓桿ETF等。 先看看ChatGPT寫出來的策略結果,再從大量練習中學習如何驗證ChatGPT寫的結果有否錯漏。過去可能需要半年或一年的時間才能有足夠的經驗去運用程式,但現在相信只需要一個月的時間便能熟習Multicharts及Amibroker,再透過我們給學員的Plugin便能連接SP Trader、富途牛牛、Webull微牛證券等進行全自動交易。 訂閱Patreon 可免費參加Daytrade教學特別班線上課堂上課日期 2月25日 星期六)330pm 430pm特別班教學內容包括1如何用ChatGPT編寫Multicharts 策略 2 Daytrade SQQQ及TQQQ 策略 3 如何觀察美股盤路階梯短炒4 FootPrint Chart 基本應用 新改版Patreonwww.patreon.comquantshk特別班會用zoom 上課,我們會在2月25日前給大家上課zoom link。

澳門社會創新教育:運用設計思維推動社會創新點子
文化創意
陳康妮・2023-02-09

設計思維是一個理想的過程,可以產生對人類問題的洞察力,從而創造出解決這些問題的創新方法。 傳統的科學解決問題的方法需要明確定義的問題來分析和解決,而設計思維鼓勵採用更具迭代性的方法,綜合洞察力以開發ldquo;目前足夠好rdquo;的解決方案,並且可以作為持續創新的起點。 設計思維的出發點是心中有一個目標(讓我們社區中的貧困者生活得更好)而不是要解決的問題(消除貧困),因為問題,尤其是ldquo;棘手的問題rdquo;,可能有許多可以解決的潛在原因和影響從各種不同的角度。 Design thinking is a process ideal for generating insights about human problems in order to create innovative approaches to address those issues. While a traditional scientific approach to problems requires a clearly defined problem to analyze and address, design thinking encourages a more iterative approach that synthesizes insights to develop solutions that are ldquo;good enough for nowrdquo; and that can be starting points for continued innovation. Design thinkers start with a goal in mind make life better for those in poverty in our community rather than a problem to solve eliminate poverty because problems, especially ldquo;wicked problems,rdquo; can have many potential causes and effects that can be approached from a variety of different angles. 【作者簡介】陳康妮 Miss Connie澳門科技大學講師澳洲墨爾本大學主修高等教育管理學畢業澳門資深教育管理學專家澳門教育作家(教育創新)澳門兒童文學作家澳門國際培訓師從事國際培訓師工作27年全球職涯發展師澳門斷捨離群組創辦人(群組合共26000人)