搜尋

搜尋結果

codeserver 團隊間開箱即用就是最大的好處
科技新知
MacauYeah・2025-11-20

之前我們就有探討過 vs code 與 codeserver 的差別,初步結論就是 vs code 的 debug 功能比較完善。如果大家懂得 devcontainer 的使用形式,使用 vs code 應該可以得到最大的效益。就在筆者想跳過 codeserver 的時候,又有新朋友對 codeserver 有興趣。最主要的原因還是它可以一體化預安裝所有事,若大家使用筆者的image,有 docker 、有瀏覽器就已經可以開箱即用。 所以這裏,筆者也重新翻新了筆者版本的使用說明。有興趣使用的朋友可以直接跟 github readme 試用。 httpsgithub.comwingzero0codeserverUbuntu 本次翻新,主要加入了常見問題。這些問題部份與 docker 的基本限制有關、部份則是筆者的 env 所限。 常見問題 FAQ 運行 node 應用時很慢 在 windows mac 下,它們的 docker 是經過 VM 建出來的。若使用 bind mount ,其實是經過 VM 層面抄資料夾。普通 java 開發沒有大問題,但如果遇上 node_module ,就會出現極大效能問題。 node_module 最好還是放在 container 內的 mounted volume 中。本 project 預設的 dockercompose.yaml 就已經有 homeubuntusourcecode mounted volume ,有需要可以放在其內直接使用。 linux 則沒有這個問題,因為 docker 只是 linux 的一個 process ,可以直接連到資料夾。 mounted volume 權限問題 如果大家自定義 mounted volume ,注意 docker 預設會是 root 權限,本系統使用 local user ubuntu,有需要改為它。 chown R 'ubuntuubuntu' YOUR_TARGE_FOLDER 若然codeserver異常,需要重啟。在 host 可以使用 docker command,在 container 中,可能殺掉所有 process # at host, outside of codeserver docker compose f dockercompose.local.yaml stop docker compose f dockercompose.local.yaml start # at container, inside of codeserver killall5 9 上下載 上載檔案:可以經過拖拉的方式,把桌面的檔案拖進 codeserver 的 Explorer 區域。 下載檔案:可以點選 codeserver Explorer區域內的檔案,按滑鼠右鍵,選 Download 。

Docker Image打包建議
科技新知
MacauYeah・2024-07-10

之前筆者有分享過兩個不同的Docker Image打包方式 App直接打包成Image 只把底層程式打包在Image中例如Tomcat,再用Docker Volume的方式讓Container可以起動App。 筆者就兩種方式做了一個條列式的對比。詳見連結 httpsmacauyeah.github.ioAProgrammerPreparesVMDockerNotesDeployDockerClusterCN.html 因為兩種方式筆者都有實作過,也算用了很段時間,所以也有一些實際經驗可以分享。 如果大家上正式的Docker課程,Docker導師通常會推薦為每個App打包成獨立Image,因為底層程式的Overhead通常不大,例如底層程式是Tomcat、Apache、Nignx這類網頁伺服器,重量級的開銷並不是因為多幾個Web Engine的分身造成,通常都是因為業務本身。但如果你講的底層程式是資料庫等的大型程式,才可能會有明顯的差異。 但實務上的建議,就是必需考慮自身的經驗,到底那個方案自己比較有把握。獨立打包App,在正式環境也需要考慮跟蹤問題的情況,多個不同App要溝通,也是了解Container網絡。如果打包底層程式,所有App都可以當成是本機下運行,更有信心追蹤問題,也是一個很好的出發點,到了有需要彈性改變不同App的需要,才轉向獨立打包的做法。 筆者最初也是走這個打包底層程式的方向,到了自己有信心試用Docker Swarm,才走向獨立打包的做法。筆者親身經驗,因為到了Docker Swarm,網段會變得暴增,這跟公司現有的內部網絡相衝的機會就會變多。在Swarm起立初時,筆者並沒有意識到這件事,所以當初排查問題,也花了一些時間才知道要向網段衝突上著手。 另一個出自Docker導師實務上的建議,就是正式環境中不要做用Docker compose,應該使用Docker Swarm。那怕Swarm只有一個節點,也應該用Swarm,導師的主要理據是Swarm有Rolling Update (滾動更新)的機制。同一個node也可以有多個分身,每個分身輪流更新,就不會出現大中斷的情況。筆者就自身經驗,Tomcat可以同時容納一個App的多個版本,Nginx也有Failover(故障轉移)等,如果你很熟這些功能,不一定要需要靠Swarm去提供。可以按自己步調去慢慢適應。

一雙襪子就可以照顧患病老
科技新知
合資格90後・2015-07-23

產品已經嘗試應用在不同老年人機構並收集意見 應用程式顯示感應器與地面間的壓力程度 當腳跟感應處碰到地面產生壓力便會發出警告 感應襪子(紫白色)外型與一般襪子無異 出生率低、人口老化都是很多國家所面臨的問題,且日益嚴重。疾病例如癌症、心臟病、柏金遜病、老人痴呆症(以下簡稱失智症)、中風及其他危疾,隨著人口老化,數字更節節攀升,羅患以上危疾人口更顯關注,為照顧這群患者,社會面臨着前所未有的挑戰及沉重壓力。 當中,失智症更為常見,由於失智症與其他常見危疾如柏金遜病等有着緊密關聯,故此,看護人需耐心照顧患者,為避免患者突然做出精神失常行為,大多會留在家中接受治療,但有時,即使全家的電器及傢俱都已經做足安全措施,患者亦可能會發生跌倒等問題,令人擔憂。 近日,國外一名年輕的發明家,為失智症的患者帶來福音,只要穿上一對裝有感應器的襪子,當襪子感應到穿載人腳跟與地面接觸,智能手機會立即發出警報並提示,看護人再也不需全天候貼身照顧。而且,這雙襪子不論外型及觸感都與一般襪子近似,你亦不需擔心電量的問題,因感應器用了藍芽技術,大大降低耗電量。 這名年輕的發明家,以爺爺作為對象,成功檢測到超過900次發病情況,而且準確度更高達100%,試想像,如果把相關產品應用在醫院及安老院等機構,或可大大減小醫護人員的負擔,但同時亦暗示着,長期配戴會否對患者帶來不適?由於此類產品透過無線電波發送訊息,長期配戴會否對身體造成負荷?這值得我們思考及討論﹗ 來源連結 httpwww.ted.comtalkskenneth_shinozuka_my_simple_invention_designed_to_keep_my_grandfather_safelanguage=zhtw#t294450

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 選擇。

Playdigious 良心手機遊戲移植開發商
手機‧電玩
MacauYeah・2023-05-05

現時手機遊戲營運商,大部份都是課金、online、每日任務重覆刷這種方向走。真正可以讓筆者感受到流暢、不需要為刷而刷的類單機遊戲真的很少。 有發行單機遊戲的公司,如Square Enix ,筆者都很慷慨地支持。但Square Enix 可真不厚道,每逢手機OS升級,就總有幾款遊戲不能開。例如FF9久經處理,終於解決問題,但去年年底,Last Remnant又再碰上同一難題,升級後無法遊玩,而且到現在都還沒有修復,實在令人失望。 暫時未見有問題的,筆者又願意花錢買它遊戲的,就只有Playdigious這一家。筆者前後買了Evoland、Evoland 2、Dead Cells、Streets of Rage 4四款遊戲,一直遊玩至今,都沒有升級上的問題。 Evoland 2屬於故事類,但因為遊戲概念主打「進化」,隨著遊戲發展,2D、3D、解迷、回合制RPG、橫向清關、空戰射擊、戰棋、格鬥、跑酷、炸彈人、音樂遊戲,都在遊戲中一次過出現,可謂誠意滿滿。Evoland 首作的遊戲類型比較少,劇情較短,也沒有太大起伏,但也因此比較便宜。 Dead Cells就是出名的類銀河戰士惡魔城的遊戲,配上手柄玩就一流。沒有手柄,要用搓玻璃的方法玩一定比較痛苦,但好在優化到位,要玩還是玩得下。實在不行的話,遊戲還有自帶修改器,可以減輕敵人攻擊傷害,以調整適合的難度。最近官方也持續出DLC,讓遊戲保持有新關卡可以挑戰。 Streets of Rage 4就是一款橫向清關遊戲,系列作在以前在街機廳十分常見。Streets of Rage 4作為系列最新作,終於登上主機平台,亦同步進入手機之中。這類遊戲,看似很無腦,沒有什麼花樣可以做。但原來傳統3個操作按鍵在互相配搭之下,打得出的花樣我還真是猜不到。一個攻擊、一個捐血攻擊和一個跳鍵,就這些配合方向鍵,可以玩出投技、蓄力技、特技(如升龍)、轉身技、空中變化技。熟習機制的朋友,想打出一整套倒地、彈牆連招,並不是難事。 總括來說,Playdigious這家公司的移植遊戲重玩度很不低,Dead Cells更是隨手拿來刷兩場的好遊戲。如果大家見到它的遊戲中,有你常玩的類型,可以買一兩款來試試。又或者等它們特價,再來入手。

誰不想素顏上班呢
美容
澳門舟周刊MACAU・2019-08-25

誰不想聽到男神說:你本來就很美! 最近全球股市波動,投資者信心受挫,想抄底想翻盤的人得備足彈藥,一些血本無歸的支出比如彩妝可以適當精簡一些。 在這個BLOGGER瘋狂種草的時代,大家都發現彩妝是個無底洞,大多數博主只會教你買!買!買他!,博主有金主爸爸贊助,我們普通女孩在彩妝上要追求投入產出比最高。 要知道即使手持專業的化妝品,如果沒有高超的化妝技巧,也是無法應付重大活動,隨便買幾個大牌的眼影和修容的價錢,就夠請專業化妝師幫你上紅毯了。 基於以上理論的指導,秉持彩妝用完才買的原則,我的化妝包不斷精簡,已經三年沒買眼影,五年沒買修容了,口紅基本都是用完才買。 偶爾也有踩雷的,比如誤買油膩悶痘的TOM FORD隔離和還有粉絲消費了周傑倫《不愛我就拉倒》的Givenchy 315姨媽色口紅。 這麼多年我靠著手殘的化妝技術和精簡的化妝工具,也能勉強應付各種社交場合例如走紅毯和見明星。 實話實說,我這三腳貓的技術和裝備連美妝博主都當不了,只是寫下來分享給親友,女孩子嘛,一見面就是交流彩妝護膚, 經過長期的實踐和同事們的反饋,我發現素顏上班只需要四大天王,不要小看彩妝四大天王的威力!可以給你十二分精神! 粉底眉筆腮紅唇彩 還差傑倫的演唱會還沒去,我要有他們的才華,還畫什麼妝呀! 阿瑪尼黑鑰匙素顏霜 GIORGIO ARMANI CREMA NUDA 我也是被章小蕙種草,已經用到空瓶了,身邊已經五六個人買了,有兩個朋友看見我素顏狀態不錯,就一起買了,另外兩個朋友覺得很乾,不好用,已經放棄治療,我回頭再和她們談談正確的使用方法。 想要顯得臉小,又立體,又省粉底的話,粉底液只需要塗在面部中央(額頭臉頰下巴),一般人腮幫子皮膚都挺好,沒毛孔痘印瑕疵,真不需要塗粉 用Cle De Peau Beaute異形海綿上妝,兜兜轉轉還是喜歡她,尋尋覓覓好多年都沒找到更好的替代品。 SUQQU TANKOUKA 105淡煌華腮紅 感謝比我還時尚的大嫂相贈,漸變色腮紅非常能精簡化妝包,最淺色的部分可以作為高光塗在太陽穴,眉骨和眼袋部分,使日漸凹陷的臉顯得飽滿一點,這個漸變色不會下手過重,粉色健康自然。 搭配Tom Ford 02腮紅刷,在專櫃試色的時候愛上了她的柔軟舒適,旅行也要帶著他。 Brow Lash EX眉筆 好好修眉可以讓人精神利落很多喲,詳見httpsdwz.cnbTwu8G1D Opera 03口紅 性價比很高,丟了也不心疼,可作為Dior變色唇膏的替代品,口紅選滋潤度比較高的,這樣就可以省了護唇膏打底這個步驟。 基本上搞定四大天王就可以出門了,下期再講如何畫眼妝。 喜欢可以关注我的公众号:httpsdwz.cnbTwu8G1D

澳門IT教育 | 到底現缺什麼?
科技新知
MacauYeah・2023-11-10

筆者最近跟朋友聊天,也剛好在進修,談到一些IT知識的傳播問題。進修課的導師,或更廣泛的教育機構,都很積極地宣傳,人必需經常upgrade自己,接受新知識。而不同的導師,就是用不同的方式,去介紹新知識。而最普偏的知識傳播方式,就是人與人之間有溝通。 溝通,好像好實制好有效,對不對? 對。溝通是很易的,不過掌握知識,是很難的。所以阻礙大部份人持續進修的原因,其實是實踐知識的成本,包括時間、空間、金錢。但最近在接觸一些大公司的官方課程後,至少在software上,都有遠端的實驗環境。 Cisco 在多年前就有提供Packer Tracer,可以模擬一些網路情況。雖然不多,但至少可以實作打command。Oracle、SQL Server,現在除了提供免費的開發版本多,還有提供docker版本,希望把本地初次安裝的問題也解決了。Oracle的官方班,還會提供雲端的預安裝版本,你就可以省下本機資源做其他整合測試。寫程式方面,在早期,為推廣Web Frontend開發方面,已經有JSFiddle,很多朋友要試code,要做POC,都可以直接跑起程式看效果。這些,都是推廣IT知識的良好切入方式。 近年多得VM、Docker、VSCode,即使Web Backend,什至是Binary program,也完全可以提供遠端的實驗環境。良心的Github、GitPod,還有提供一定量免費的VM、Docker服務,你想把整個IDE放上Cloud,真的不再用像筆者以前要自己研究的CodeServer,用它提供的就好。不過遠端的環境還是有限制,例如你需要模擬硬件,或是需要很健全的測試環境,例如frontend backend cookie domain rewirte,又或是需要健全的除錯工具,都還是要等等。 好多事,雖然不能馬上上production,但look and feel,是吸引新朋友加入的重要關口。現今澳門IT的教育發展,就是總是留存在實體課,去指定的教室讀者PT教材,使用指定機器。若導師準備充足,就還好,可以順利實習,邊聽講解邊做實驗。頂多就是上課時間、地點不夠便利。但預者有一些老師不備課,食老本,Lab沒有提前預習,做live demo時才錯誤百,修正錯誤的時間成本很高。若要想更多人持續接受新事物,就必需要提供足夠多的可以實操的Lab,而且要可以自行重複。 對於澳門IT教育機構,希望可以提供更多的網上資源,讓學生可以解放地點和機器的限制。對於現在的ITSoftware的從業員,希望大家都可以擁抱DockerLinux Container,這樣才能最低成本地試用新事物。

澳航1月特賣!飛日$1,500、台泰$1,100!
激安優惠
OHChance 旅遊誌・2016-01-07

價錢測試: 1月澳門飛東京來回 【促銷公司】澳門航空(Air Macau) 【搭乘日期】即日起至1月31日 【販賣時間】已開賣,至1月8日2359 【最長停留】7天 【航班限制】曼谷去程限NX886 【預訂網址】httpohchance.inforefairmacau 澳門航空推出1月Last Minute特賣,大陸、日本、台灣、泰國、越南航點有優惠,各航點來回連稅優惠價如下: 東京:MOP1,474 大阪:MOP1,504 台北高雄:MOP1,118 曼谷:MOP1,169 峴港:MOP1,439 河內:MOP1,512 重慶合肥鄭州南寧:MOP907 天津瀋陽太原成都南京寧波:MOP1,107 最值得留意當然係兩條日本線!千五銀來回應該係近幾年最低價,仲係Last Minute!另外台灣同曼谷的千一銀來回都係非常值得考慮!搵過平飛主要在1月中之後,數量日本線都ok!台灣線就稍為差一點點。優惠只賣今明(1月7日、8日)兩天,要買要快!另外澳航官網顯示由於更新了購票系統略有不穩,有時會出現無法出現價錢的情形,只要多search 幾次或稍待片刻再search即可,亦建議使用chrome 瀏覽器進行購票。 編輯聲明====================================== 相關連結:httpohchance.infop=3810 來源:OH!Chance!澳燦旅行資訊 |FaceBookOhChance 經版權持有人授權CyberCTM.com發表。 ======================================

DJI Spark 掌上自拍無機誕生!起降•空拍全靠手勢操
手機‧電玩
Jackst・2017-05-25

大疆創新(DJI)終於加入風靡一時的「飛行相機/自拍無人機」陣營,正式發表旗下首台迷你無人機 DJI Spark,可謂繼 DJI Mavic Pro 後更迎合廣大眾消費者拍攝需要的空拍飛行器。DJI Spark 號稱起飛至到拍照只需「幾秒鐘」,全賴猶如出至《Iron Man(鐵甲奇俠/鋼鐵人)》的手勢操作功能;如此富科幻感的遙控方式,在 1 年前就以視像避障震撼市場的 DJI 就是要跟飛友說辦得到! 全手勢空拍 DJI Spark 的最大亮點毫無疑問是手勢操控:飛友可用直觀的肢體動作遙控無人機起飛、移動、降落,難怪發布會講者 DJI 策略合作總監 Michael Perry 形容,操作 DJI Spark 就像玩魔術一樣!Perry 在發布會現場示範了以下動作,DJI Spark 由掌上起飛,至自動返航降落,加上中途取景和拍照,都可以只用手勢做到: 起飛:伸出手臂,把大疆 Spark 置於掌心,再按兩下開機鍵,無人機便可辨識並鎖定用戶面孔,逕自起飛; 移動:Spark 按用家手臂揮動方向,往上下前後左右飛行; 向後飛:對準鏡頭揮手,Spark 會向後飛 10 米,並持續令拍攝主體保持在畫面正中間; 拍照:對著鏡頭用食指和姆指組成矩形,即可指令大疆 Spark 進行拍攝,Mavic Pro 已可這樣做了; 降落:舉高雙手並揮手。 按兩下電源鍵後,DJI Spark 的鏡頭會先辨認用戶臉容,然後自行起飛。 DJI Spark 可跟隨用家手掌方向移動,實現手勢操控! 自動飛行和錄影 遙控飛行操作藉由各種手勢大幅簡化,拍攝方面則內置多種自動模式,乾脆省卻用戶操作的需要。除過往已亮相的智能跟隨(ActiveTrack)和指點飛行(TapFly)之外,Spark 還加入了幾款「一鍵拍片」模式:空拍機一面螺旋、環繞、沖天(垂直上升)或漸遠(退後兼上升),一面錄影短片,有點像 Zerotech Dobby 的「短視頻」功能。 大疆 Spark 機首的航拍相機以兩軸雲台系統懸掛著,可俯仰 85 度至 0 度;相機內置 12.3 吋 CMOS 感光元件,可拍攝 1,200 萬畫素照片,以及可錄影 1080p @ 30fps 影片;對焦距離為 2 米至無限遠,亦備有一個 ShallowFocus(景深)模式,以軟體後製方式模擬單眼相機的淺景深拍攝效果。 DJI Spark 的鏡頭以兩軸雲台固定,可拍 1,200 萬像,但重點其實是內置的多種自動空拍選項。 DJI Spark 定位感像陣容豐富,前方一對鏡頭既能實現自動跟拍,亦能迴避障礙hellip;hellip; 還有模擬淺景深! 是的,「ShallowFocus」為 DJI Spark 重點功能之一,可模擬單眼相機的淺景深效果,文青和潮人必備。 16 分鐘續航力 Spark 的手勢操控和自動空拍功能,全部收藏在軸距 170 毫米、重量 300 克的小小機體內,預設以《DJI Go 4》APP 遙控;用戶亦可另購實體遙控器和 DJI Goggles 飛行眼鏡輔助操作。它的有效遙控距離為遠 100 米、高 50 米,前方自動避障距離則為 0.2 至 5 米。更叫人驚喜的是,DJI 宣稱 Spark 的續航時間可達 16 分鐘,可說同類型機種中最強,並可替機體接上 USB 線直接充電。 DJI Spark 遙控器形如 Mavic Pro 遙控器,但自身不設屏幕;遙控器為全能套裝配件之一。 大疆 Spark 備有紅、黃、藍、綠、白色 5 色版本可供選擇,即日起在DJI 官方商城及旗艦店接受預訂,預計 2017 年 6 月中出貨。DJI Spark 售價為 3,899 港元/15,900 台幣;附帶槳翼保護罩、實體遙控器、電池管家、收納肩包等配件的全能套裝,定價則為 5,459 港元/22,500 台幣。 原文網址: httpswww.dronesplayer.com

【蔡司鏡頭加持】Nokia7 Plus 及 Nokia 6 !不可忽視的中階新機
手機‧電玩
Cheers!・2018-04-12

近年 Nokia 除了推出經典手機復刻版 3310 外,亦十分積極推出不同類別的手機。今次 Nokia 推出的 Nokia 7 Plus 及 Nokia 6 就主攻中階市場,想換平平哋又高質手機的你千祈咪錯過喇! Nokia 7 Plus 採用 6 吋 189 IPS屏幕,內建 Snapdragon 660 處理器,4GB RAM 64GB ROM;背面採用鋁合金機殼並設有指紋識別器,而3,800mAh 的電池容量更可達 2 日電池續航力,十分強勁!顏色方面則有雅瓷黑及雪瓷白可供選擇。 當中最大賣點就是配備蔡司光學認證的前後三鏡頭,分別是 2 個主鏡頭及前置鏡頭,雙主鏡頭具備 1,200 萬象素廣角及 1,300 萬畫素長焦鏡頭,前置鏡頭則有 1,600 萬象素,而內置的 Pro Camera 強化手動模式有簡易的設定介面,可調整各個高級的拍攝設定。 而一同發表的新一代 Nokia 6 則換上新的設計,功能上面更加升級,處理器由 Snapdragon 430 升級至 Snapdragon 630,內置 4GB RAM 64GB ROM 及採用一體成型鋁合金機身,而主鏡頭亦採用 1,600 萬象素蔡司光學認證鏡頭,前置鏡頭為 800 萬象素。電池容量為 3,000mAh,指紋識別器亦設在機身背後。Nokia 6 擁有夜霧黑及冷月銀兩色選擇。 lt;lt;出機小貼士gt;gt; 依家去 CTM 申請 4G 本地月費 $198 2GB,Nokia 7 Plus 上台機價 $680,New Nokia 6 上台機價 $0,仲免按金添!立即出機啦!

Windows 10:新一代 Windows 系統
科技新知
LifeMag Editor・2015-02-06

Microsoft於早前發表了融合各類不同體驗的新一代 Windows 系統,開啟了更個人化的電腦運算全新紀元;另外Microsoft還發表了兩款全新裝置,以擴展從大屏幕到無屏幕等各類裝置上的 Windows 體驗。Windows 10 將以服務的形式提供,在支援裝置的生命週期中實現更安全更創新的升級體驗。正使用Windows 7、Windows 8.1 以及 Windows Phone 8.1 的客戶將可以在首年享受免費Windows 10升級服務。Windows 10 提供的多種新體驗,包括: Cortana 進駐PC 和平板電腦 去年在 Windows Phone 上推出的 Cortana 個人數碼助理現在也可以於運行 Windows 10 的PC和平板電腦上使用,協助用戶完成日常事務。 Cortana 是用戶的個人小助理,能夠了解個人喜好,從而提供相關推介、快速搜尋資訊和重要提示,讓用戶時刻留意對他們最重要的事項。用戶可通過交談或鍵盤輸入與 Cortana進行自然而輕鬆的互動,操控Cortana 的進階功能將能實現更高的可靠性和透明度。 全新瀏覽器「 Project Spartan」讓瀏覽器提供個人化服務 Windows 10 將配備代號為「Project Spartan」的全新Microsoft瀏覽器;這款瀏覽器的優點是互通性。該瀏覽器內置了多項重要功能,提高了可靠性和更佳的搜尋功能。瀏覽器中最先進的功能包括:無論是使用鍵盤或是觸控筆,都能直接在網頁上輕鬆加上註釋並與朋友分享;不受干擾的檢視方式,簡化了閱讀文件的版面,提供更佳的線上和離線文章閱讀體驗;加上與Cortana整合可更快速地在線上搜尋內容和完成事務。所有這些功能都是專門針對 Windows 10 全新設計的體驗。 Xbox Live 和全新 Xbox App 為 Windows 10 帶來全新遊戲體驗 Windows 10 上的 Xbox 可讓玩家和開發人員通過 Windows 10 PC和 Xbox One 盡情體驗Xbox Live 遊戲網絡的精華。玩家可以使用 Game DVR節錄、編輯和分享他們在遊戲中的精采時刻,以及與不同裝置上的朋友一起暢玩新遊戲,以及與世界各地數百萬名玩家建立聯繫。 Windows 10 中利用全新 DirectX 12應用程式編程界面 API 開發的遊戲,將在速度、效能和畫面方面有所提升。玩家還能夠以串流方式將遊戲直接從 Xbox One 遊戲機傳到家中的Windows 10 平板電腦或 PC 中暢玩。 Windows 10 上的 Office 通用應用程式優化不同裝置上的使用體驗 新版 Word、Excel、PowerPoint、OneNote 和 Outlook 專為在Windows 上運行而重新設計,並針對觸控體驗而開發,為客戶提供熟悉和喜愛的Office 體驗。用戶可以利用 Office 的常見功能來建立及編輯Word 文件。 PowerPoint 中的全新數碼書寫功能可讓用戶即時為投影片添加註釋,而利用 Excel 中針對觸控體驗優化的全新控制功能,用戶無需使用鍵盤或滑鼠亦可輕鬆建立和更新試算表。目前新版 Office桌面套件也正在開發中;Microsoft將在未來的幾個月內發表更多資訊。 Windows 10推動創新,激發全新運算平台 Windows 10 為客戶提供一致、熟悉和可兼容的體驗來使用各類裝置(從 Xbox 到PC和手機,再到平板電腦和小工具)和處理各項事務。 Windows 10 適用的裝置非常廣泛,從物聯網(Internet of Things)中最微小的感應器到世界級企業數據庫中的伺服器,當中包羅萬有。其中一些裝置配備4吋屏幕,另一些裝置配備80吋的屏幕,還有一些甚至沒有屏幕。 Microsoft公佈的裝置中,包括首款無約束的全息電腦 Microsoft HoloLens,無需電線、無需手機,也無需連接到所需的電腦。 Microsoft HoloLens 配備透明的全息高清鏡頭和空間聲音,讓你可以用眼睛和耳朵了解周圍環境中的全息圖。Microsoft HoloLens 擁有先進的感應器和新一代系統晶片,還配備全新的全息處理單元 HPU 來了解你的行為和周圍環境,因此無需電線亦可運行,並處理從感應器實時接收的兆位元數據。通過在你周圍的環境中放置立體全息圖,Microsoft HoloLens 可讓你以新的方式觀察現實世界,從而分辨出你看到的事物並了解你的手勢和語音代表的內容。 Microsoft HoloLens以你成為運算體驗的中心,可讓你創造內容、存取資訊、享受娛樂以及用全新有趣的方式溝通。

Docker 中的非管理員用户 Docker non-root user
科技新知
MacauYeah・2025-03-14

Container USER為何重要 在制作Docker Image的過程中,有時會接觸到 USER 這個設定。這事關到最後的 Docker Container內部運行的那個 user 到底會有什麼權限。大家也要知道,Docker Container 其實也只是一個 Linux 上的程序,也就是如果Container內權限過大,也有機會從 Container 內部存取到 Host上的資料。 一般情況下,Docker Image 預設的 USER 就是 root,最基礎的base image都是一樣。而我們想換,其實也相當簡單,就像Linux上起User一樣,只要經指令RUN adduser xxx 或RUN useradd xxx 也可以在 Docker Image 中創建帳號和 home 資料夾,之後就隨時經USER xxx來切換 實際上是不是這麼簡單 如果你將要Container中執行的程序,是一個binary,平常你在Linux中也是以 nonroot 方式執行,那麼是的,就是那麼簡單。例如你執行系統中的java, node, python,原本在Linux中就已經是誰都可以,那麼你的docker container 也應該沒有難度。 但如果原本的安裝包,預設是由system service來啟動,我們就要花點力氣,看看那個service是怎樣呼叫binary的,然後就一步一步模擬它的做法。例如筆者有打包的codeserver,預設是system service啟動,但它也有提共binary的執行方法,安定好home資料夾後,我們也可以手動啟動。 泛生之檔案權限問題 上述binary的情境之所以簡單,是因為大部份情況下,我們都只對於container 內部運行考慮即可,因為預設投產情況下的運作模式,都是隨時起、隨時刪、隨時砍掉重練,只要container內部運作可以自給自足,就可以了。Docker Swarm的運作也是如此,所以它不預期有的持久化資料權限的問題。 而持久化資料權限的問題,其實早在單個Linux伺服器就已經存在。同一個伺服器中,不同process就有不同的UID,當他們需要共同讀寫某些檔案,就會設定多人權限。同理,當多個Container要共同檔案,也是同樣問題。在討論共享檔案之前,我們先看看預設 Docker Storage Mount 會給我們什麼權限。 如果是bind mount,bind mount的權限預設會是Host內的檔案或者資料夾的權限。 如果Host是root,container內是nonroot,container有機會無法讀寫bind mount內的檔案。 留意權限設置就可以解決問題 如果Host是nonroot,但container 內是root,從container內生成的檔案,Host的nonroot user就無法使用。 Host是nonroot的話就一定無解,Host至少有sudo權限,臨時變成管理員,去修正問題。 如果host和container也是nonroot,但UID不夾,其實也不能交換使用。 跟上述一樣,最後要靠sudo來解決問題。 如果host和container也是root,就沒有權限問題,但就有安全性的風險。 如果是volume mount,就還是看看 mount path 是docker image layer中現有的 path還是新起的path 大部份手動建立的named volume都是root 經docker compose起的named volume滿足以下條件的話,將會是nonroot。 docker image 中的已有該path存在。 named volume未存在,docker compose會把對應path的內容在初次建立時抄到named volume 中。 例如ubuntu24.04中的homeubuntu,存在於docker image中,它的擁有者就是UID 1000,我們經docker compose HOME_VOLUMEhomeubuntu,在HOME_VOLUME建立時,就會是UID 1000。但如果是 NOT_EXISTShomeubuntusomethingNotExists,那麼NOT_EXISTS建立時,也會是root 上述討論的Storage mount是集中在單機情況下,使用HOST OS的本地儲存。若現在的場境是多機共享的share storage,就會更麻煩,還要看看那個share storage本身的屬性。例如常見的Linux NFS,其實有指定的權限,跟NFS的Login權限有關,如果你的process本身對檔案權限很敏感,就請先不要挑戰NFS例如postgresql。 Rootless mode Rootless 模式 Rootless 模式指的是在Host中,執行Container的使用者,不需要是管理員,筆者就常用於開發環境中。投產環境中反而沒有聽過這樣的討論,因為投產環境很少可以讓非管理員去執行這麼重要的環境管理。 雖然只是開發環境,但這像前述的bind mount討論中,如果Host是nonroot,但container 內是root,又或是兩者nonroot,但UID不夾,也會出現權限問題。無腦的將host user加入docker group,只可以讓非管理員可以運行docker,但解決不了權限問題。 真正有條件解決的,可能就會向linux subgroup的方式發展。暫時筆者用得比較順的rootless mode,可以無腦用的,不是docker,是podman。有興趣的朋友可以經podman官網看看教學,它給筆者的感覺就像是自動轉換UID。 podman rootless mode 想看更多 筆者已經將過去的文章重新整理成gitbook,有興趣睇更多的讀者,可以來筆者的gitbook再翻一翻 httpsmacauyeah.github.ioAProgrammerPrepares