搜尋

搜尋結果

拱北地下商鋪“盜竊換外幣”被拘捕的男子一案開審,被判...
其他
澳門生活圈・2019-05-22

近日,一則ldquo;男子踢閘門rdquo;事件傳到沸沸揚揚,那時候,小編聽了後問了一下,誰吃了豹子膽敢去關閘鬧事。 原來,是喝多了.... 別人都說,酒醉之人 說的話都是真心話 也有人說 酒醉之人,滿口胡言! 喝多了的人 無論是在某種場合 或者是電話上 說出的話都很有底氣 仿佛能征服整個城市 你有試過嗎? 近日,一名男子只因喝多了酒,過關口的一幕,讓人實則意想不到;正所謂,酒壯慫人膽,喝多了迷迷糊糊的,連警察都敢打了。 這位兄弟 酒醒了之後會怎樣想 是能吹還是自我反省... 本月16號晚上,一名黃衣男子從珠海返澳,經拱北口岸自助通道過關時,疑酒精上腦,一腳將閘門踢壞。 大力金剛腿? 踢閘門的男子姓林(澳門人),在當日晚上過珠海與朋友一同飲酒歡唱,待酒足飯飽後,經拱北口岸准備返澳。 因沒有將證件放到正確位置,閘門未能打開,林某酒用腳猛踢閘門,導致閘門損壞。 隨後,警員上前要求其出示證件,林某出言不遜且大聲叫囂。 林某:ldquo;證件給你幹嘛?rdquo;。 警員:ldquo;閘門是你踢的嗎?rdquo; 林某大聲喊道:ldquo;是,幹嘛,我承認啊。 期間,警員對林某進行警告,林某再度反過來警告警員。當員准備將其帶離時,林某竟然揮拳向一名警員臉部打去。 飲醉酒之後的都是大佬! 3秒的過程...林某被制服! 林某被制服後,跟同林某的一名朋友隨即趕過來求情,兩手抱拳向警員請罪,求警員放過林某一馬。 在警員與該名朋友闡述事情的嚴重性之後,立馬站在旁邊,聲稱要與林某斷絕兄弟關系,讓受傷警員去驗傷。 酒前是朋友,酒後是兄弟,這位要斷絕兄弟關系的朋友,這是正義的存在呀,即便喝了酒,還不忘讓警員去驗傷,給你點個贊! 經邊檢部門檢測,該自助通道閘門等設備被林某損壞,無法正常使用,需要緊急組織人員在淩晨口岸閉關期間維修更換通道設備。 拱北邊檢表示,依據《中華人民共和國治安管理處罰法》有關規定,林某的行為已構成擾亂公共秩序,拱北邊檢依法將其移交至珠海市公安局拱北口岸派出所處置。 目前,林某已被公安部門作出處10日拘留的處罰。 不僅如此,拘留結束後,林某還須對其損壞的自助通道設備進行經濟賠償。 我說,這位兄台 以後酒就少喝了 誰也不敢擔保還有下一次 大部分網友聲稱 拘留10天太少了 起碼幾個月以上 對於違法違規者 警員一定要竭力制止 並要以法律制止 給予監管教育 以儆效尤 除了關口ldquo;男子醉酒踢閘門rdquo;一事 借機盜竊換外幣的案件再度展開 去年,拱北地下商場被警方大量掃蕩 實力打擊以兌換外幣事件 事件轟動全城... 盜竊換外幣案開審 2018年5月,珠海警方展開打擊以兌換外幣為名實施盜竊的行動,過百名警員突襲拱北地下商場掃蕩換錢店,拘捕100多人。 今年初,香洲區人民法院對其中一名犯罪嫌疑人鄒某進行宣判,其在商行幫顧客兌換外幣過程中盜竊顧客現金的作案細節被披露。 事件經過 2017年,鄒某到拱北某商行工作,期間,他在與顧客兌換外幣過程中長期使用3種方式盜竊顧客的現金: 1 在數顧客交來的現金過程中,趁被害人不注意,秘密將部分現金掉在地上或者抽屜內,從而盜竊被害人的部分現金; 2 計算彙率過程中,利用計算器在顧客不知情的情況下,秘密使用較低的彙率兌換外幣給顧客,盜竊顧客的現金; 3 在交付兌換好的現金給顧客後,以舊的外幣不能在澳門使用或重新清點為由,讓顧客將已兌換好的現金交回給同夥檢查,其他同夥分散被害人的注意力,又盜竊顧客部分現金。 庭審中列舉的多宗作案行為,鄒某每次都借機盜竊換外幣的顧客1,000港元。 法院認為,鄒某以非法占有為目的,多次盜竊他人財物,其行為已觸犯刑律,構成盜竊罪。 公訴機關指控被告人鄒某的犯罪基本事實清楚,證據確實、充分,但指控部分盜竊事實證據不足。 被告人鄒某歸案後如實供述罪行,依法可以從輕處罰。最終鄒某被判處有期徒刑8個月,並處罰金人民幣2,000元。 拱北地下商場被掃蕩後 似乎並沒有那麼猖獗了 頻頻發生的盜竊換外幣也少了 總得來說,也多虧了這場掃蕩 讓不少旅客和市民減少了兌換外幣的風險 說白了一句,這個世界得講信用 才是中華的優良美德 素材來源:拱北邊檢、網絡 圖片來源:拱北邊檢、網絡、表情包 如有侵權,請聯系我們刪除 版權屬於原作者 編輯撰寫:小嚕

AirPods耳機被瘋傳致癌?事後蘋果官方緊急宣布...
其他
澳門生活圈・2019-03-15

在生活中,相信大部分人都離不開手機,也包括小編本人。 無論吃飯,喝東西,娛樂,工作,我們的手機或許從不離身,網絡信息給予我們太多的外界信息了,能看到自己喜歡的東西,聯系自己需要聯系的人等等。 耳機,會讓我們沉浸在自己的世界當中,而近日,一則熱話引起了不少人的關注。 「AirPods可能致癌,來自全球超過40個地區、250名科學家聯名警告」。消息一出,網絡瞬間開炸,到底是辟謠呢?還是真的會致癌? 自蘋果手機上線以來,不少人都成了果粉,每年9月分的新機出售,果粉都准時排。 但現時,出現的蘋果無線耳機會致癌這一事,引起了不少人前往了解相關信息。 說到底,這波節奏究竟是怎麼回事? 據了解,3月7號,國外一個自媒體平台Medium發布了一篇標題為《AirPods和其他藍牙耳機安全嗎?》的文章。 《AirPods和其他藍牙耳機安全嗎?》引述了生物化學教授傑瑞middot;菲利普斯的說法。 稱AirPods對人體造成健康的傷害,是因為ldquo;它們被放置在耳道中,使頭部組織暴露於相對較高的射頻輻射下rdquo;。 文中指出,該教授並非唯一擔憂的科學家mdash;mdash;一份向聯合國和世界衛生組織發出的聯名信顯示,全球有來自40個國家、250名科學家抱有同樣疑慮。 認為此類藍牙設備造成的影響包括增加患癌風險、損害生殖系統和遺傳基因。 想到ldquo;輻射rdquo;,許多人的第一反應就是:會對人體有危害嗎?致癌等等! 本月13號,美媒Quartz發文辟謠,指沒有科學家簽署任何文件特別警告無線耳機有健康風險。 實際上,這封聯名信並沒有提到AirPods,甚至沒有提到無線耳機。 確切來說,聯名信是針對ldquo;非電離電磁場技術rdquo;,嚴重擔憂潛在健康風險,而所有藍牙設備都使用了這種技術。 早在2015年5月,這封信的官方就已經公布,最後更新是在今年1月1號,目前,有超過240名科學家簽字。 信中對ldquo;非電離電磁輻射rdquo;的潛在風險表達擔憂,包括手機在內的大部分無線設備都會產生這種輻射。 但沒有提到ldquo;無線耳機rdquo;,清楚提到了移動電話、無線電話、基站、WiFi、天線、智能電表和嬰兒監視器等設備。 非電離電磁輻射基礎概念 自然界中的一切物體,只要溫度在絕對溫度零度以上,都以電磁波和粒子的形式時刻不停地向外傳送熱量,這種傳送能量的方式被稱為輻射。 輻射本身是中性詞,從太陽光到手機都屬於輻射的范疇,區別在於攜帶能量的大小(即輻射的頻率和波長不同),因此某些物質的輻射可能會帶來危害。 這種輻射嚴格一點叫ldquo;非電離射頻輻射rdquo;,其實能量都比較低。也就是說,手機信號屬於射頻輻射,是一種非電離輻射。 這種輻射對人類的影響可以量化為特定吸收率(SAR),計算單位為瓦特每千克(Wkg) 現在的手機SAR都低於0.5Wkg。目前,市面上SAR值比較高的手機就是iPhone XR啦。 但實際上,這已經遠低於國標規定的最大限額 2Wkg。 也就是說,XR的果粉在日常使用手機時,輻射最大時,可以量化到 0.4Wkg。相對來說,這組數據的可信度還是很高的。具體提到Airpods等無線耳機上,它們采用的都是藍牙技術。 據美國政府為消費者設立的電磁輻射量安全標准,藍牙設備的輻射遠遠低於標准值,就算直接貼在皮膚上也不會超標。 總的來說,AirPods的特定吸收率(SAR)為0.466Wkg,遠低於1.60Wkg的限值。把同期發售的iPhone 7本身固定在頭部或身體上,這一數據為1.58Wkg。 據報道,經過多年研究,美國科學家發布了一項研究結果,發現ldquo;非電離輻射rdquo;可能導致雄性大鼠患上癌症。 美國國家毒理學項目(NTP)的研究發現了ldquo;明確證據rdquo;,即暴露在非電離輻射中,會導致雄性大鼠患上心髒腫瘤。且發現它在雄性大鼠的大腦中引起腫瘤。 導致雄性大鼠心髒腫瘤的明確證據; 導致雄性大鼠腦部腫瘤的某些證據; 導致雄性大鼠腎上腺腫瘤的某些證據。 他們在實驗中,將老鼠放在一個高達6Wkg特定吸收率(SAR)的全身輻射當中,每天9小時,持續2年。 高達6Wkg的輻射,是手機最大限額的3至5倍,結果老鼠撐不住了,檢出患有腫瘤。 這也證明了,2G3G手機信號能夠導致老鼠患癌! 雖然老鼠喜提腫瘤,但是,研究老鼠的報告並不能直接放在人的身上相較,兩大原因表明: 1、老鼠們暴露水平和持續時間,要比我們從手機中得到的要高。 2、老鼠全身受輻射覆蓋,無法相較於人類日常受到輻射的程度。 FDA設備和輻射健康中心主任傑弗裏middot;舒連也說,即使絕大部分成年人每天頻繁使用手機,我們也沒有看到腦瘤等病例的增加。 不過,毒理學規劃處科學家布赫(John Bucher)提醒,要減少手機使用時間,避免在信號微弱時打電話,因為手機進行信號連接時會釋放更多輻射。 據美國某教授表示,相比手機,無線耳機產生的輻射影響顯然更小,因為手機需要和信號塔連接信號,而無線耳機只是短距離和智能手機連接。 對於ldquo;手機輻射是否對人體有害rdquo;,目前學界並沒有得出明確結論。還有一些研究人員認為,在研究射頻技術的健康風險時,信號功率並不是唯一需要考慮的變量。 這就是為什麼會有250位科學家聯名仍在向聯合國建議,加大研究力度,對手機輻射問題進行研究。 相信大家都一致認為,我都用了那麼久了,還是好好的,但無論怎樣,還是少對手機好些,畢竟,眼睛也要休息好才行。 其實,大家經不經常玩手機,自己的心裏是最清楚不過了,不過,在親人面前,再忙也該停一停。想想自己低頭玩手機的時候,自己的親人在想什麼。 素材來源:網絡、搜狗、微博 圖片來源:網絡、微博、力報、表情包 如有侵權,請聯系我們刪除 版權屬於原作者 編輯撰寫:小嚕

免費自用的私人AI助理 | Ollama - 本地大型語言模型
科技新知
MacauYeah・2025-01-06

不知道在澳門的朋友,有多少可以正常接觸openai?因為地方政策問題,像openai這種國外的大型語言模型下稱LLM,澳門區都沒法接觸到。但隨著時間過去,即使我們不能直接接觸到算力很強的收費AI,我們只要有電腦,也可以佈署一些開源版本的LLM。只要我們可以安裝到ollama這套本地運算軟件就好 ollama是一個giuthub上的開源工具,讓用戶能夠在自己的電腦上運行各種大型語言模型(LLM)。基本上只要電腦是普通的桌上型windows, linux, mac,都可以運行它。下以面就介紹一下筆者的安裝經驗。 windows windows ollama windows 本地安裝ollama,真的很簡單,就是直接去官網下載就好 httpsollama.comdownloadwindows 安裝完成後,在windows cmd再加一個基本的模型就可以了 ollama pull llama3.2 之後就可以開始跟llama問問題 ollama run llama3.2 windows openwebui 如果大家不習慣windows cmd的醜醜介面,想經過瀏覽器存取,我們可以再加裝openwebui。但這個必需要經第三方python或docker安裝。openwebui github指引 httpsgithub.comopenwebuiopenwebui 經python pip install openwebui openwebui serve 經docker docker run d p 80808080 addhost=host.docker.internalhostgateway v openwebuiappbackenddata name openwebui restart always ghcr.ioopenwebuiopenwebuimain 最後,打開browser,訪問 httplocalhost8080,openwebui就會要求大家先設立管理員帳號。 就那麼簡單,大家就有一個真正的私人AI助理。 steamdeck steamdeck 因為很多linux功能都有被限制,所以筆者就直接使用 podman 安裝 git clone httpsgithub.commacauyeahollamasteamdeckpodman.git cd ollamasteamdeckpodman podman compose f podmancompose.yaml up d podman exec it ollama ollama pull llama3.2 同樣地,打開browser,訪問 httplocalhost8080就可以了,因為這個版本已有預設的管理員帳號,立即打開就可以使用了。 Ollama的開源模型 上文中一直提及 llama3.2 其實是 Meta 公司的開源模型,因為它的參數相對少,算力要求較低,可以在沒有GPU的環境下執行。若然大家算力足夠,可以使用其他模型,詳見 httpsollama.comlibrary 。見到合心水的模型,大家可以經 pull 指令下載。例如小紅書的網紅們很多都推薦qwen2,我們可以 ollama pull qwen2 備註 openwebui 及 ollama 並不直接支援自己建立自己的資料庫。我們需要其他工具去補完,但筆者觀看各種教學,自己建資料庫的效果都不太好,所以暫時不做任何教學。 只要我們一直經ollama pull,就可以更新語言模型。但如果大家追求即時的網絡最新資料,大家可以看看LLM RAG的相關文章。但筆者亦未有成功的案例,有更新會另作教學。 opewebui並不是PDF閱讀器,但它可以預覽PDF中的文本,我們需要手動複制PDF中的文件後,才能經ollama分析文件內容。 若想切換模型,在指令介面中,我們多開一個分頁就可以了。若經openwebui,則可以在每句對話之前,經左上方選擇不同模型。

Tmux - 繼 Screen以後的Linux多工神器
科技新知
MacauYeah・2024-10-08

因為各硬件軟件的發難,筆者又不得不回到那個只有純純linux tty console的世界。很多時候,那怕使用tty,我們在Desktop mode,也有現代terminal 可以用,需要多分頁,滑鼠選取文字、複制、貼上,都可以輕易做到。 但在mobile tablet device 上,手指操作真的很不方便。又或者你像筆者一樣,即使有電腦,但要操作一些Linux VM,它們連ssh都沒有,只能直接登入它們的tty,那麼懂得使用Tmux進行分頁及複制、貼上,就變得很重要。 Tmux 是什麼 Tmux 就是可以在Linux Terminal 同一個窗口中,實現多工處理的小程式。就像我們利用多分頁一樣,不同分頁做不同的事。不過最大的差異就是,生成分頁,排列分頁,我們都要使用鍵盤來完成。有時筆者也會用它來作為背景程式,以免不小心關了Terminal就會把所有運行中的指令都停掉。 我們就馬上來看實際例子吧 前置事項 安裝Tmux及運行Tmux Debain amp; Ubuntu 安裝 sudo aptget update amp;amp; sudo aptget install tmux 運行:tmux 進入tmux後,你就會至少有一個分頁,而且不會因為Terminal關閘而中斷 用法一 建立兩個分頁,並切換 增加分頁 先按 ldquo;Ctrl brdquo; 前置鍵,再按rdquo;crdquo; create 切換分頁 在多於一個分頁的情況下,先按 ldquo;Ctrl brdquo; 前置鍵,再按rdquo;nrdquo; next 用法二 同一個分頁中,建立左右並排的窗口 增加水平窗口 先按 ldquo;Ctrl brdquo; 前置鍵,再按 ldquo; 雙引號 切換窗口 在多於一個窗口的情況下,先按 ldquo;Ctrl brdquo; 前置鍵,再按方向鍵左或右 用法三 回到前一個tmux session中 因為不小必關閉了terminal,又或是remote ssh中,ssh斷線後,需要回到之前的工作狀態 未進入tmux 的狀態下:tmux attach 要留意tmux 可以有很多個session,要去到指定的session,就要為session命名。但這個不是筆者常用的情境,原本多個分頁已經很夠用,還要多個session,會很混亂。但不排除它在某些情況下有特別用途,有興趣的朋友可以自行挖挖看。 進階 回頭看過去的terminal screen output 在現代的Terminal中,原本按滑鼠滑輪向上滾,就可以看到過去的資訊,但tmux下反而不行,所以我們需要進入特殊模式 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 向上翻頁 上方向鍵或PageUp 離開Copy Mode Copy Mode中任何時候按rdquo;qrdquo; 進階 複制貼上 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 選擇範圍 移到需要複制的文字起點,ldquo;Ctrl Spacerdquo; ,然後再移動到結束點,再按rdquo;Ctrl wrdquo; 複制 貼上 離開Copy Mode後,再按rdquo;Ctrl brdquo; ,然後 關括號中括號 進行貼上 進階 複制貼上2 某些情況下,我們不允許使用ldquo;Ctrl Spacerdquo; 或 rdquo;Ctrl wrdquo;,因為它們可能跟系統的組合鍵有衝突,所以需要改為單鍵。 讓tmux使用類似vim的操作模式 echo ldquo;setwindowoption g modekeys virdquo; gt;gt; .tmux.conf 關掉所有使用中的tmux,重開tmux 進入Copy Mode 先按 ldquo;Ctrl brdquo; 前置鍵,再按 開括號中括號 選擇範圍 移到需要複制的文字起點,按單鍵ldquo;Spacerdquo; ,然後再移動到結束點,再按rdquo;Enterrdquo; 複制 貼上 離開Copy Mode後,再按rdquo;Ctrl brdquo; ,然後 關括號中括號 進行貼上 筆者常用的功能就這些,有興趣的朋友可以再深挖一下。 Reference httpstmuxcheatsheet.com

為何Python這麼熱門?
科技新知
MacauYeah・2024-08-27

在資料處理、資料科學領域,什麼是最近的AI模型,Python都是做這些事的熱門選擇。對於以前從未用過Python來處理業務的筆者來講,實在不懂為何Python會那麼大熱。不過最近,筆者實戰過後,真心覺得它是提高生產力的重要工具,而且並不限於資料科學上面,一些簡單的腳本操作也是很有優勢的。 筆者前述有討論過 型別對程式語言的重要性,到現時這一刻,筆者都會覺得【型別】是有助於長期的程式開發。而Python這個語言,大部份人都會介紹它是動態語言,可以使用弱型別,然後,就沒有其他講法了。動態弱型別,筆者一直都不認為它的根本上的原因。就像Javascript一樣,它亦發展出類靜態強型別的Typescript版本,而且它亦不因此而被人棄用。所以Python的強大,動態語言並不一最重要的原因,它也可以模疑寫出有規有距的type hinting。 或者用另一個方向問,大家覺得 Excel SpreadSheet 好用嗎?它們可以很簡易地做出資料計算、篩選。而且可以一邊做,一邊調整公式。例如要大家做一個陣列的總和,大家會想打開一個Javascript,初始化陣列的每個數字,然後寫個For迴圈去計算總和嗎?還是打開 Excel SpreadSheet,打下一欄或一列的數字,然後叫出Sum函數?筆者一定會選擇後者,不單止因為寫函數比較方便,那怕之後要調整數字,也比較方便。 大家有感受到差異嗎?筆者想表達的是,在操作 Excel SpreadSheet 我們並不是整個程式重新執行一次,我們是修改完一部份,那上看到結果。但傳統的語言,例如C、Java、那怕是Javascript,我們都難以局部地更新或執行特定某一個區塊。那怕是現在我們有hot reload,但其實我們編寫的思維,都是讓我們完整執行起一個頁面,再人手輸入,看結果。如果我們只想運行某個單一Function函數,我們只能寫test case測試,但寫test case又是一個很大的入門門檻。 但大家如果看看Python,在古早的年代,Python已經有Python shell,那就像是Linux Shell或Window CMD一樣,可以一邊寫腳本,一邊看結果。寫了10行的程式,發現在第10行引用第5行的部份有問題,修正並執行第5行後,就可以回來馬上重跑第10行的語句,就馬上有結果了。第6至9行,因為沒有關聯性,就不需要逐一重新執行,那是多麼的方便阿。道理上,我們若沒有完整執行整個程式,可能還是有一些盲點,開發重要的,需要長期維護的程式,還是要像傳統一樣,有test case,有程式進入點,整個運行。但對於臨時性的操作,看看效果,我們實在無必要寫一個原整程式。 舉個例子,假如我們臨時有需要,要取得某個政府網站的即時數據,例如澳門的停車場資訊,空位的上下限是多少,我們絕對可以用python寫幾行就取得結果,然後順便做個資料運算。我們沒有必要很嚴僅地為考慮不同數據的出現情況,我們什至可以hard code 硬編碼地計算某個Array的元素。直到突然有一天,這個操作變得恆常化,我們還是有條件把之前的python程式碼,改寫成一個規規矩矩的完整腳本,包括異常處理,函數複用。其實Javascript在改用 NodeJs 作為引擎後,我們還是可以經過 Node.js REPL,來做互動操作,只是Python Shell出現得更早,也是官方支援的功能。 Python這個臨時操作的便利,對於資訊爆炸的年代來講,實在很幫得上忙。再加上現在除了Python Shell以前,還有Jupter Notebook,讓大家可以在Web頁面上,執行像Python Shell的互動操作,對於修過特定區域的程式碼,就更加方便。這些便利,都是不是因為動態語言來創造的優勢,而是實實在在的Coding Anywhere。

Github flow 沒有提及的發佈 - 佈署 | Release - Deployment
科技新知
MacauYeah・2024-08-23

不知道之前為大家介紹的github flow,大家覺得怎樣?好用嗎?今天,筆者又來講講筆者心中認為它沒有好好給出指引的地方。 我們的信心指數,其實沒有那麼高 在前文中,經過 pull request 、 code review 、 auto test ,道理上,開發者可以做的都已經做過了,然後就是等待發佈 Release。 對於單純的庫類型的程式碼,筆者認為,的確沒有事可以再做,實務上就是直接找人其他程多員試用最新版本,看看有沒有問題。只要 main master 上,明確的表示版本號的變更,就差不多等於直接發佈。有需要提供binary版本的,就還需要觸發上載binary的流程,但這個跟 pull request 觸發 auto test 差不多, auto test 成功後就上載。 對於服務類型的程式碼,例如 Web App 等,直接發佈到正式環境還是有些不妥吧?始終會即時影響到業務,我們至少有個測試場,經用戶做實際的業務操作去驗收。但這個時機,應該是在Github flow的什麼時候做? 在原始的git flow中,有一個叫做 develop 的相對穩定分支,僅次於 main 。它是功能開發完成後第一次pull request 的地方,我們可以用這個概念來做自動發佈到測試場。但若在github flow 中加入了這個 develop uat staging 分支,其實就等於複雜地回到過去傳統的 git flow中,對好多新手來講難以接受。Github flow 的成功簡化,其實很大依賴著自動化測試。現在的測試用例,並不再限於單元測試。就連整合測試,也可以經Docker等容器化技術去做,只要我們的自動化測試有足夠信心,就可以發佈。但反觀我們的 Web App 例子,我們認為自動化測試難似涵蓋所有情境,也難以開發。所以我們還在有個時間發佈到測試場,進行人工測試。 pull request 快速迭代 筆者結合自己的經驗,配上國外討論區 Stack overflow 的內容,筆者認為Github flow上進行 pull request 後,就是最好的發佈測試場時機。所以我們需要盡快進行驗收測試,完成後在Git commit上加上Tag,以示通過驗收測試,可以發佈正式環境的版本。 不過這個模式是有一個很重要的前題假設:快速迭代。當我們驗收完成後,盡可能快地發佈到正式環境,不然會阻礙下一個功能的pull request驗收,或是覆蓋了上一個pull request的驗收環境。 用反面的例子來說明,如果我們有很多功能需要驗收,或變化很多,或存在多輪的里程碑開發,我們就不適宜那上述模式。最保險的做法,還是回到傳統的 git flow ,引入 develop uat staging 分支。但如果大家還是那麼討厭傳統 git flow,筆者還是有另一個提議。 既不想回到傳統 git flow ,但又需要慬㥀的考慮驗收發佈流程 如果開發的功能變化比較大,需要多方面協調、測試、驗收,經歷多次里程碑後,才有一個對外發佈的版本,大家可以考慮分開 Repository 做開發。例如 v1,v2的 Repository 完全獨立。 v1 是已發佈的版本,有獨立的測試場,任何即時候需要修正,就在v1的 Repository 做 pull request。 v2 則是未發佈版本,亦有獨立的測試場。加入任何新功能後,就在v2的 Repository 做 pull request,用自己專用的測試場做驗收。到 v2 正式發佈後, v1 就封存處理,再開一個 v3 作為下一個大版本的開發。這個模式,那怕在庫類型的程式碼也用得上。 這樣做的好處是 git Repository 和歷史記錄都會獨立,自動發佈的腳本程也會簡單明確一些。壞處則是 v1 v2 難以做功能對比,我們只能靠人腦記著 v1 有沒有什麼後期加入的修正和功能,需要同步移植到 v2 中 相對的,著是同一個Repository,可以利用merge 功能確保 v1 有的,v2 都己處理,只是必需要很懂處理版本衝突問題。

型別對程式語言的重要性
科技新知
MacauYeah・2024-07-08

JavaScript等程式語言的流行,好大一個原因是因為它很簡潔。而筆者認為,動態語言的特性,即是可以省略型別,是讓它簡潔的一個很大原因。動態、靜態與強型別、弱型別並一定對等,詳見Ref 動態語言的特性,就是同一個變數,在不同時候可能代表不同的數據類型,有時候是String,有時候是Integer。所以編寫時,乾脆就不寫數據類型,因為寫了也可能是白寫。 因此初學者並不需要處理大多導入import問題,也不用考慮很多compile error問題,至少程式可以運行一半,到了最後出錯的地方才停下,也就是不會因為型別問題而整個程式開不了。 不過筆者在接觸了JavaScript後,始終沒有大量使用。一來因為筆者慣用的Java,有著更大的基礎套件,改用JavaScript未必有優勢。而且動態語言還有一個長久的管理問題,我們該如何知道更新的影響有多大? 測試用例不是萬能藥 有一部份的人認為,動態語言管理難,是因為大家不愛寫測試用例。的確,若然大家寫的測試覆蓋率足夠多,一定可以預先發現問題。但筆者在Java上實踐了寫測試的習慣一段時間,依賴測試報錯,其實也是後知後覺。 IDE的界入 筆者認為,若想好好地管理程式碼,光寫測試是不夠的,我們還需要好好地讓IDE了解我們的程式碼,認它可以很有效地重構我們的程式碼。更強的IDE,還有機會可以提醒我們有一些設計上問題。 老實講,寫Java多的朋友,都可能都知道Intellij Ultimate的名字。筆者試用後,的確很有幫助。相較之下,vscode對於Java的支援,並不十分智能。但這裏筆者還覺得vscode對於java的編寫、重構、測試,在免費的情況下,都已經足夠是足夠佛心。對於網頁應用來講,vscode差的是對javascript的支援。 vscode對javascript的支援有限,其實不能怪它不夠努力。你想多一個免費的IDE怎樣去了解你的javascript程式? 我們連型別都沒有寫出來,它能怎樣推敲? 實時去模擬各種輸入?CPU又會不會耗乾?那麼寫到一半的程式碼又怎樣輸入? 直到最近筆者採用TypeScript之後,筆者看到曙光了 TypeScript 一個變相的JavaScript的靜態型別 原本的JavaScript其實也有型別的,只是不強制。若想IDE支援,需要以特定型式寫註解。但這樣寫註解,工作量並不比引用靜態型别來得輕鬆。所以最後,筆者還是覺得直接套用TypeScript,讓自己在每一次引用參數,都要好好地先了解函數的輸入輸出型別寫法。 說實在,從JavaScript到TypeScript並不輕鬆。一些原本很無腦的Axios, Promise, Vue語句,TypeScript寫起上來,都變得很複雜。但這個套用,對於IDE來講,真的很大幫忙。它就像突然讀懂了我們的程式一樣,可以跳入跳出,可以知道在多少處被引用。重構也變得更有信心,而不是等待事後測試報錯。 有一點要補充,TypeScript並不像Java那般需要完全預先宣告型別。例如函數的回傳結果,TypeScript就不會強制要求寫出型別,因為它可以有限度地猜得出來。當然,如果大家願意宣告,就更好。 總結 總括來講,型別就像厠所的衛生情況一樣。初期當然什麼都不處理也可以,但越用越久也沒有人理會,大家也不想用下去。若然大家都願意努力維持它的品質,大家會更有意願重複使用。 參考資訊 「靜態型別 vs. 動態型別」與「強型別 vs. 弱型別」 httpsblog.tarswork.compostprogramminglanguagetypesystem Typed JavaScript httpsdepthfirst.comarticles20211103typedjavascript

排程執行任務 | Linux Schedule Job
科技新知
MacauYeah・2023-09-07

在Linux底下,crontab是一個最簡單建立Schedule Job的方法。大家用crontab e 就可以進入設定。 # crontab e 1 optrun.sh 其中每個星號,順序代表的是分、時、日、月、星期。上面的例子就是不論何月何日何時,只要每一分鐘就執行一次optrun.sh Singleton Job 問題是,實際情況下,你想執行程式的時間都不一定會少於1分鐘。所以你總是有機會上一個job未跑完,下一個job就開始了。為了保障自已,需要一些參考機制,去決定是否讓job開始跑。 有些情況,可能你會想用job server去做監管,但若只為單線執行的工作,起一個job server還是會增加管理上的複雜性。 最簡單的做法,就是根據不同的程式語言,使用file lock(鎖上)的機制,先上鎖,再做事。但要注意考慮有沒有出現異常情況,令你自己反鎖自己。即是你的process死了,但不懂自己解鎖,這樣以後你也不能再執行了。 在Linux Bash Shell下,就有一個很簡單的做法,就是使用flock指令。用它的最大好處,就是從OS層面下,去鎖上。只要process結束了,不論正常還是不正常結束,都會自動解鎖。 以下例子就是在執行optrun.sh前,先要取得tmprun.lockfile的鎖。如果沒法取鎖,就自動放棄執行後面的指令。 flock n tmprun.lockfile optrun.sh # crontab e 1 flock n tmprun.lockfile optrun.sh Timeout 引入singleton的概念後,其實會引發另一個問題。因為異常的情況,還有機會是不生不死,process hang。所以我們還需要設定一個最大的執行時間,讓你的process在異常的情況下,被強行清走。 例如,ping指令在linux預設是永遠不會自動停止的,可以模擬process hang的情況。如果我們想定時從外部收走ping process,就可以使用timeout指令。以下指令就是2分鐘後殺指ping process。 # in file optrun.sh timeout 2m ping localhost # to check process id, you could use # gt; ps aux grep ping # you will see two different id for ping and timeout 配合errorcode使用,你可能還會在想在timeout時送出一個email通知自已。 # in file optrun.sh timeout 2m ping localhost exitCode=$ if $exitCode eq 124 ; then echo quot;timeoutquot; # enter email alert with timeout elif $exitCode gt 0 ; then echo quot;exit with errorquot; # enter email alert with timeout else echo quot;exit normalquot; fi 配合docker使用,你可能需要考慮signal怎樣傳遞。 在筆者測試的環境中,似乎SIGTERM會被擋,也有可能是SIGTERM太強,它只把前景的docker container run收走,但其內的ping process還在docker daemon中行走。所以最後改用SIGINT,讓docker container run可以好好地把SIGINT傳入其內。 # It seems that docker captured the SIGTERM. Send SIGINT instead # in file optrun.sh timeout signal=SIGINT 10s docker container run rm pingtest c 20 exitCode=$ if $exitCode eq 124 ; then echo quot;timeoutquot; # enter email alert with timeout elif $exitCode gt 0 ; then echo quot;exit with errorquot; # enter email alert with timeout else echo quot;exit normalquot; fi Full demo, github repo cronjobWithDocker

「我們的桌遊故事」書寫與圖像展已於周三開幕
文化創意
繪本與棋@黃庭熾・2022-12-24

  澳門青年桌遊教育學會「我們的桌遊故事 ── 書寫與圖像展」周三(12月21日)上午在G32 Gallery 影藝廊開幕。經過一個月的徵集,共選出12件富人文情懷、生活氣息濃厚的書寫與圖像作品,展覽期到2023年2月10日結束,歡迎蒞臨參觀。   是次展覽由澳門青年桌遊教育學會主辦,獲少權工作室、一夕桌遊、卓傑桌遊、遊戲男孩協辦,望德堂區創意產業促進會、G32 Gallery 影藝廊提供場地支持。作為澳門首次以桌遊為主題的徵集活動及展覽,活動得到了廣大桌遊玩家關注和樂於分享個人桌遊生活的參加者大支力持,參展的書寫與圖像作品內容多元,有對經典遊戲的禮讚、對體驗中旅行感的回味、對桌遊合作性與沉浸感的憶述、對過程中驚悚感的刻畫,不一而足,歡迎到場分享澳門桌遊社群對心頭好的熱情與想像。   「我們的桌遊故事 ── 書寫與圖像展」假G32 Gallery 影藝廊(聖美基街G32號地下)展出,每天上午十一時至下午六時(逢周一休息),免費參觀。   2022年第四季,「我們的桌遊故事」書寫與圖像展通過攝影作品聯乘文字的展現方式,與市民大眾分享桌遊帶來的喜悅,但不凡的旅程遠未結束,難忘的桌遊故事不勝枚舉,學會邀請愛好者們續按快門再揮毫,記下桌遊過程中的快慰時光,為美好生活留下凝練的紀錄 ── 「桌遊物語」攝影作品聯乘文字故事徵集活動由即日開始,至2023年6月12日(一)止。參加者遞交之作品如獲入選,將於澳門青年桌遊教育學會Facebook 專頁中以「每週一圖」的形式展出。   除徵集活動續杯添飲外,「我們的桌遊故事」書寫與圖像展另設有展場推廣活動,借展場的雅緻環境氣氛,推廣多元的桌上遊戲。展場推廣活動設兩單元,率先登場的為「中國桌遊體驗會」(2023年1月7日,15001600、16301730兩場),及帶人身歷其境的「桌上遊戲讀書會」(2023年1月14日,15001600、16301730兩場),務求通過特色的桌遊體驗,讓參加者感受到桌上遊戲多采的文化韻味。 延伸閱讀:挽碧藍世界於海獸肆虐時 延伸閱讀:走進「博物之門」 ── 桌上遊戲讀書會 延伸閱讀:在別致的澳門共讀點裡悦讀 ── 桌上遊戲讀書會

誰 ── 《不喜歡噴火的噴火龍》
文化創意
繪本與棋@黃庭熾・2022-04-11

  噴火龍令人著迷 ── 強大、健碩、紅色、有角hellip;hellip;還會噴火!   你也愛這樣的噴火龍嗎?但那繪本封面上的動物們,似乎並不待見落坐於牠們旁邊的噴火龍 ── 即便噴火龍手握禮物、面露笑容,但森林裡的動物,依舊如見鬼神,雞飛狗跳地拔腿狂奔。繪本《不喜歡噴火的噴火龍》似也在訴說一個關於刻板印象、偏見的故事。 延伸閱讀:《小噴火龍和白米飯》的生活美學   噴火龍莎菲受不了白霧繚繞的陡峭山峰,也受不了「理當如此」的各種噴火龍習慣,決心找一處陽光燦爛、色彩繽紛的新家。但牠的紆尊,對森林裡的「小」動物來說,就像一個大朋友強遷入螞蟻窩,對當地居民來說,這些奇想與行動,不啻是一場災難。所以莎菲的居住請求,並不受森林原居民待見,拿著逐客令的牠,怏怏地離開了自己心儀的「很可愛的家」。 延伸閱讀:《盯盯熊》的奇幻之旅   倘若你是噴火龍莎菲,接下來,你會做甚麼呢 ── 繼續尋找新家?設法讓原住民接納自己?還是回老家睡一覺、把前事當夢一場?如若請你任作者,你會如何續寫之後的故事?談談莎菲的去向,講述森林動物接下來的遭遇,或者有新朋友登場hellip;hellip;我遇見的小作者,他們這麼說。   有孩子說,莎菲採了一朵七色極漂亮的花,來交換小動物給牠定居許可;有孩子說,莎菲回山上找媽媽幫忙,烤了份極美味的薄餅,宴請動物諸君,築起了一艘嶄新的友誼之船;有孩子說,天有不測之風雲,在最惡劣的天氣下,莎菲回來營救雷鳴閃電下的動物朋友們,用行動贏得大伙的友誼;有孩子說,莎菲越飛越高,十年後,抵達火星,交了一位女朋友,二十年後,一艘人類的太空船降到火星,牠接待了這位遠道而來的太空人hellip;hellip;   有人說:「閱讀一本好書,就如同與一個卓越的靈魂對話。」若未嘗提出疑惑、發表想法、表達關懷hellip;hellip;都只是聆聽教益,聆聽教益肯定不壞,但有來有往對話引起的迥異看法與共鳴之處,卻是人與人之間可以砥礪前行的重要活動啊! 你可以從這些地方借閱到這本繪本: 澳門中央圖書館、青洲圖書館、黑沙環公園黃營均兒童圖書館 ── 實際館藏情形可以透過澳門公共圖書館館藏查詢系統瞭解。

如何計算期指轉倉價
創富坊
程式交易 www.quants.hk (導師: 財經書藉作家: 麥振威)・2020-08-04

如何計算期指轉倉價 期指轉倉,是由本月對期指的看法延續至下月,需將持有的即月倉位平倉,同時在下月期指開新倉,一般可在結算前幾天進行,由於即月倉位平倉,需要同時間在下月期指開新倉,這也可以借助程式幫助,Multicharts 12 也有自動轉倉的功能。 此外,也有炒家喜歡在期指結算前數天留意大戶轉倉的舉動。期指大戶在臨近結算前「轉倉」,把即月份的期指平倉,同時在下月份期指開新倉,有關的過程究竟在那個價位範圍進行,這被視為期指大戶的轉倉成本。假設轉倉價為23000點,大戶下月推高期指至少要有600至800點成本,若然下月期指上升至23800點以上,可以確認大戶的期指倉是好倉為主,其後期指繼續上升的機會較大。相反,若期指由23000點下呹至22200點,這代表了期指大戶以淡倉為主,其後期指再下跌的機會也會較大。 但如何去計算轉倉價,有部份炒家是看期權的成交量分佈的,若筆者沒記錯,以期權倉位來捕捉大戶動向,藉此預測期指的走勢,相關方法早在2002年左右某香港的財經報章便已有人提及,也不是什麼新方法,但早在當年大家已有欵問,認購期權倉位數量增加,可以是大戶看好,也可以是大戶為淡倉對沖,兩者有很大的分別,個人覺得這種計算方法未必有參考價值,這點已有不少人提出。 另一個常見的計算方法是,在期指結算前五個交易日,先記錄每個交易日「每五分鐘」期指的高低價及成交量。 然後用以下公式計算 期指最高價 期指最低價 x 成交量 假設915至920這五分鐘裏,期指的最高價為25371點,最低價為25205點,成交量為20張,= 25371 25205 2 x 20 = 505760 然後每五分鐘也是這樣計算,把所有答案加起來計算總和 同時也這把這五個交易裏,每五分鐘的成交量加起來計算總成交量 假設用以上的公式計算,期指每天有6小時15分鐘的交易時間,合共是75個「五分鐘」,五個交易日應是375個「五分鐘」,但最後交易時,交易時間只到四時,故此合共只369個「五分鐘」,把每個五分鐘的價格用以上公式計算,然後再加起來。同時也計算每五分鐘的成交量總和。 最後將兩者相除 最後五個交易日每五分鐘的價格用以上公式計算後再計算總和 最後五個交易日每五分鐘的成交量總和 答案便是期指的轉倉價。 在臨近結算這個轉倉「高峰期」的時間裏,大戶轉倉會令成交量增加,也會令價格出現變動,若每日去計算,未必能充份反映出價格的變動。 由於每五分鐘也計算,大戶的舉動會更容易捕捉,期指只要出現較大幅度的下跌,也會反映在轉倉價之上,若出現較大幅度下跌,而且成交量特別大,最後計算出來的轉倉價也會充份反映出來。 當然不同的炒家,計算期指轉倉價或會有所不同,但原理也是大同小異,部份炒家或會以「每半小時」作單位。但由於恒指的結算價也是以最後交易日當日恒指平均「每五分鐘」為一個單位。 早上市易時段由上午十時至中午十二時三十分,共30個單位;下午交易時段,從下午二時三十分至下午四時整,共18個單位;然後取這48個單位的加總平均數。所以計算期指轉倉價也以「每五分鐘」作單位計算會較適合。

台灣虎航台北旅展促銷,澳門飛台灣三航點來回連稅HKD799起!
激安優惠
OHChance 旅遊誌・2019-11-07

下載 OHChance 手機 APP, 特價資訊直送你手!   台灣虎航推出台北旅遊展的促銷,今次優惠票賣到出年10月底。以價格論就一般優惠價,但搵過2020暑假都有唔少貨,時間啱ge 執定都ok。  如果在官網購買,提提大家最平的 tigerlight 票價是不包括托運行李,如果有20KG行李需求建議直接買 tigersmart票價,因為tigersmart比tigerlight貴HKD240,即等於買20KG行李價錢,但 tigersmart 還可以免費選位。 在虎航官網購買會收HKD130預訂費,如果在永安旅遊Trip.com等網上預訂機票預訂網站購買就不會收。但部份在這些網站上預訂後,預訂編號拿到官網查會顯示是團體票,無法自行加行李,連打電話上客服都不能,只能到時去櫃檯加。所以大家請自行衡量是否要到這些網站購買。 護照資訊自行上官網更正。添加行李及修正護照資訊的詳細介紹請參閱:httpsohnote.infotigerair_manage_booking  《優惠價錢(來回連稅及預訂費)》 *澳門-台北台中高雄:HKD799*台北台中高雄-澳門:TWD2,876  #如在Trip.com或永安旅遊網購買,可節省HKD130TWD440預訂費。  《出發日期及最長停留》.出發日期:即日起至2020年10月24日.最長停留:不限  《購票日期及方法》.購票日期:11月11日2359前預訂.預訂方法:台灣虎航官網或機票預訂網站.預訂網址:httpswww.tigerairtw.comzhtw 官網      httpsohchance.inforeftripcom      httpsohchance.inforefwingon       【行李資訊】.虎航tigerlight票價只包10KG手提行李額  附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。  價錢 Sample - 澳門飛台灣三航點價格(未包括HKD130預訂費) === 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

台灣虎航2020夏季航班開賣,澳門-台灣來回連稅HKD846起!
激安優惠
OHChance 旅遊誌・2019-10-04

台灣虎航推出2020年3月底至10月底的夏季航班,單以價錢論唔算好平,但執筆時連復活節都有真係值得看看,暑假也是重點之一,會貴50蚊左右但暑期呢口價係抵玩。 如果在官網購買,提提大家最平的 tigerlight 票價是不包括托運行李,如果有20KG行李需求建議直接買 tigersmart票價,因為tigersmart比tigerlight貴HKD240,即等於買20KG行李價錢,但 tigersmart 還可以免費選位。 在虎航官網購買會收HKD130預訂費,如果在永安旅遊Trip.com等網上預訂機票預訂網站購買就不會收。但部份在這些網站上預訂後,預訂編號拿到官網查會顯示是團體票,無法自行加行李,連打電話上客服都不能,只能到時去櫃檯加。所以大家請自行衡量是否要到這些網站購買。 護照資訊自行上官網更正。添加行李及修正護照資訊的詳細介紹請參閱:httpsohnote.infotigerair_manage_booking  《優惠價錢(來回連稅及預訂費)》 *澳門-台北台中高雄:HKD846*台北台中高雄-澳門:TWD3,093  #如在Trip.com或永安旅遊網購買,可節省HKD130TWD440預訂費。  《出發日期及最長停留》.出發日期:2020年3月29日至10月24日.最長停留:不限  《購票日期及方法》.購票日期:10月5日2359前預訂.預訂方法:台灣虎航官網或機票預訂網站.預訂網址:httpswww.tigerairtw.comzhtw 官網      httpsohchance.inforeftrip      httpsohchance.inforefwingon       【行李資訊】.虎航tigerlight票價只包10KG手提行李額  附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。 下載 OHChance 手機 APP, 特價資訊直送你手!     價錢 Sample - 澳門飛台灣三航點價格(未包括HKD130預訂費) === 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!