我的新書AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題的教材投影片已製作完成

歡迎各位有需要的教師和博碩文化索取教材

  • 使用 Prometheus自定義指標為 Kubernetes 做 HPA 縮放

    使用套件 Prometheus Prometheus Operator K8S Rancher 步驟一、設定自訂義指標 1. 設定Exporter,這邊有許多官方提供的函式庫 https://prometheus.io/docs/instrumenting/clientlibs/ 2. 設定該export的service名為my-export 設定Service Monitors 步驟二、設定自訂義規則 增加Prometheus Rules 設定HPA 在HorizontalPodAutoscaler增加一個設定如下 參考資料 https://docs.openshift.com/container-platform/4.9/nodes/pods/nodes-pods-autoscaling.html https://www.padok.fr/en/blog/scaling-prometheus-rabbitmq

    Continue Reading…: 使用 Prometheus自定義指標為 Kubernetes 做 HPA 縮放

  • K8S裡CPU和MEMORY的計算單位

    如何獲取和讀取 K8s 的資源利用率指標 在K8S裡面我們可以對資源做resource isolation,限制pod所使用的資源或者設立HPA去決定何時要自動擴展/縮小 所以要了解一下K8S裡面所用的度量單位的意義 使用kubectl下指令讀取pod內資源使用狀況 會得到下面的回應 確認Pod裡面不同的Container所使用的資源 會得到以下回應 取得Node資訊 會得到以下回應 了解指標所代表的意思 – CPU 其中設定的單位是 m,每 1000m = 1 vCore,也可以使用分數,因此設定的方式可以是: 1 (相當於 1000m) 0.5 (相當於 500m) 300m (相當於 0.3) 從上面取得node的直可以看到CPU的資訊是 代表總共有4000m = 4 Core CPU PS:設定 1m 是不被允許的,官方建議最低從 100m…

    Continue Reading…: K8S裡CPU和MEMORY的計算單位

  • prometheus執行時更新config的方式

    參考官方文件的教學如下: https://prometheus.io/docs/prometheus/latest/configuration/configuration/ Prometheus can reload its configuration at runtime. If the new configuration is not well-formed, the changes will not be applied. A configuration reload is triggered by sending a SIGHUP to the Prometheus process or sending a HTTP POST…

    Continue Reading…: prometheus執行時更新config的方式

  • Dockerfile簡單範例

    如何製作docker image 到docker hub尋找適合的基礎容器或官方提供的映像檔 自行撰寫需要客製化的部分

    Continue Reading…: Dockerfile簡單範例

  • [LeetCode] Maximum Value of K Coins From Piles

    Maximum Value of K Coins From Piles 這是遞迴方式的寫法, 但我可能存太多垃圾資訊,當k值變大之後,會發生heap allocation錯誤的問題,也受限於遞迴的限制當k變大效率非常差….. 看來又要動態規劃(哭), 晚點再來補上改善版

    Continue Reading…: [LeetCode] Maximum Value of K Coins From Piles

  • [LeetCode] Coin Change 2

    Coin Change2 這也是一題動態規劃的題目,但是比起上一題,上一題每一個暫時儲存的東西是有意義的,我們可以了解說每一個的暫時狀態是某個數字用所給的硬幣列表裡,能用最少數量達成答案的數目,但是這一題的中間狀態所儲存的真的就是『中間的狀態』,我是看著別人的答案去回推理論的,真的很難想像在遇到這樣的問題時,該用什麼角度去把複雜的問題拆分,並找尋出重複步驟並找到可暫存狀態來計算出最終結果。 這是最後的結果 var change = function(amount, coins) { let dp = new Array(amount+1).fill(0); dp[0]=1; for(let coin of coins){ for(let i=coin;i

    Continue Reading…: [LeetCode] Coin Change 2

  • [LeetCode] Coin Change

    https://leetcode.com/problems/coin-change 最近開始刷leetcode覺得思考這些邏輯問題還滿好玩的 第一個刷的是這個,他是一個動態規劃的題目 一般我們在思考的時候會去思考以錢幣為基準,例如1,3,5的錢幣要怎麼湊成11元,我們會拿1,3,5去隨機湊硬幣,但是當數值大了以後,要計算最小的錢幣組合就會變成很困難. 像這種極限求值就會需要將思考轉換過來, 我們可以一步步的拆解, 先了解1,3,5,若要組成1是用幾個(1個1),那組成2要用幾個(2個1),若要組成3要用幾個,到3時我們就會發現,3可以用”3個1″或”1個3″組成, 這時候就可以來比較誰用的硬幣比較少,然後把最小可組成的數字”1″存到可組成結果為3的陣列。 接下來在思考4的時候,我們就可以思考4減掉硬幣1,也就是3,的最小使用硬幣數量,那就代表我們使用3,再加上硬幣1,可以組成4。接下來算要組成6要幾個硬幣,6減掉硬幣3,可以拿到硬幣3要用幾個硬幣,所以就是硬幣3使用的硬幣數量+1。 var coinChange = function (coins, amount) { if (amount == 0) return 0; let amountRecord = [] amountRecord[0] = 0 lastExistResult = 0 minCoin = Math.min(…coins); //紀錄這些硬幣能夠組合成的數值所使用的硬幣數, 並用這些數值來推算目標所需的硬幣 for (var currentAmount…

    Continue Reading…: [LeetCode] Coin Change

  • ,

    LBP 區域二值模式

    其實會發這一篇文,主要是看到這個博客的文章真的感動到快哭了… 這幾天因為想增加OCR辨識正確率開始與LBP打交道 https://zh.wikipedia.org/wiki/%E5%B1%80%E9%83%A8%E4%BA%8C%E5%80%BC%E6%A8%A1%E5%BC%8F 我找到了一個看起來很強大很棒的函式庫 https://scikit-image.org/docs/stable/api/skimage.feature.html#skimage.feature.local_binary_pattern 網路上有很多教學文章,看起來是很知名的套件 a href=\”https://machine-learning-python.kspax.io/classification/ex1_recognizing_hand-written_digits\”>https://machine-learning-python.kspax.io/classification/ex1_recognizing_hand-written_digits 然後我遇到了和這位博主一樣的問題 https://www.cnblogs.com/ilk123/p/11797261.html 沒錯…….LBP明明出來的應該是1-256的值阿…我也是設定R=1, P=8\r\n這樣用default的LBP出來的應該要是1-256之間的值,但是卻是0和1的二值陣列…. 我一直想..這麼偉大的一個scikit-image怎麼可能有錯,一定是我的使用方法有誤… 害我撞頭撞到快崩潰….. 沒想到在此遇到一個和我一樣的苦主 太感動了,特此記錄! 另外,後來我也找到了一個最原始的LBP算法 程式碼下載於 https://github.com/zhongqianli/local_binary_pattern/blob/master/local_binary_pattern.py def original_lbp(image): “””origianl local binary pattern””” rows = image.shape[0] cols = image.shape[1] lbp_image = np.zeros((rows – 2, cols – 2), np.uint8)…

    Continue Reading…: LBP 區域二值模式

  • ,

    WEBM影片格式介紹

    WEBM格式是一種媒體文件格式,開源為Web使用設計,主要用於視頻的播放。 WebM簡介 WebM 是一個開源的媒體文件格式,主要用於封裝使用 VP8 或 VP9 編碼的視頻流和使用 Vorbis 或 Opus 編碼的音頻流。這個格式是由 Google 主導開發的,並於 2010 年首次推出。 以下是一些 WebM 格式的特點和詳情: 1. 設計目的 WebM 主要設計用於在線流媒體傳輸,特別是作為 HTML5 的 <video> 標籤的一部分。它旨在提供一個開放、高效、免版權費的視頻壓縮方案。 2. 視頻和音頻編碼 3. 優勢 4. 缺點 5. 適用場景 由於 WebM 的高效壓縮和開放性質,它特別適合用於網頁視頻、視頻會議、流媒體服務等場景。 6. 文件結構…

    Continue Reading…: WEBM影片格式介紹

  • ,

    TCP/UDP協議中的串流協定

    基於或可以使用UDP (User Datagram Protocol)的協定 RTP(Real-time Transport Protocol) RTP(Real-time Transport Protocol,即時傳輸協定)是一個網絡協定,用於交付音頻和視頻等多媒體數據流。以下是RTP的一些關鍵特性和細節: RTP(Real-time Transport Protocol)和WebRTC(Web Real-Time Communication)是兩個密切相關但有所不同的技術。 在WebRTC應用中,你可能需要使用WebSocket作為信令通道,以此幫助建立和協調P2P連接。在這種情況下,WebSocket用於傳送元數據(例如SDP描述和ICE結果),而WebRTC用於傳送實時語音、視頻和數據。 RTSP(Real Time Streaming Protocol) RTMP 和 RTSP 都是使用 TCP 進行控制信令傳輸,但它們在傳輸媒體數據的方式上有所不同。RTMP 使用 TCP 進行媒體數據的傳輸,而 RTSP 使用 RTP/RTCP 在 UDP 上進行媒體數據的傳輸傳輸。RTSP允許客戶端通過建立和控制媒體流會話來請求和傳輸實時媒體數據。 以下是RTSP的一些特點和功能: RTSP在視頻監控、視頻會議、流媒體直播等場景中得到廣泛應用。它為實時媒體數據的傳輸提供了一種靈活、高效的通信機制,使實時音視頻通訊和流媒體播放成為可能。 SRT(Secure Reliable Transport)…

    Continue Reading…: TCP/UDP協議中的串流協定


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!