yue-fang-readfog

feeds.twtxt.net

No description provided.

Recent twts from yue-fang-readfog

深入理解 iptables 的流量控制
什麼是 iptables? 在 Linux 系統中,iptables 是一個強大的防火牆工具,用於配置對 IPv4 數據包過濾規則和網絡地址轉換(NAT)。它允許系統管理員控制進入、離開或經過系統的網絡數據包的流向和處理方式,從而增強系統的安全性、穩定性和性能。iptables 是 Linux 內核中 Netfilter 子系統的一部分,它通過在數據包經過網絡協議棧時應用規則來實現過濾和轉發。通 ⌘ Read more

⤋ Read More

I-LLM:首次實現了 LLM 全整形量化,精度逼近浮點,超過 Smooth-Omini-AffineQuant
作者丨 Austin 來源丨 https://zhuanlan.zhihu.com/p/701393483編輯丨 GiantPandaCV宣傳一下我們的工作 I-LLM,(據我們所知)這是第一個在 LLM 上實現了 integer-only 量化的方法,精度逼近浮點,超過 Smooth/Omini/Affine Quant 等 SOTA 方法。https://arxiv.org/abs/2405Read more

⤋ Read More

解析頁面回收技術:提升應用穩定性與效率
請求調頁機制,只要用戶態進程繼續執行,他們就能獲得頁框,然而,請求調頁沒有辦法強制進程釋放不再使用的頁框。因此,遲早所有空閒內存將被分配給進程和高速緩存,Linux 內核的頁面回收算法(PFRA)採取從用戶進程和內核高速緩存 “竊取” 頁框的辦法不從夥伴系統的空閒塊列表。實際上,在用完所有空閒內存之前,就必須執行頁框回收算法。否則,內核很可能陷入一種內存請求的僵局中,並導致系統崩潰。也就是說,要釋 ⌘ Read more

⤋ Read More

動態鏈接庫的實現原理是什麼?
大家好,我是小風哥,今天簡單聊聊動態鏈接庫的實現原理。假設有這樣兩段代碼,第一段代碼定義了一個全量變量 a 以及函數 foo,函數 foo 中引用了下一段代碼中定義的全局變量 b。第二段代碼定義了全局變量 b 以及 main 函數,同時在 main 函數中調用了第一個模塊中定義的函數 foo。接下來編譯器出場,編譯器會把這個兩個源文件編譯成對應的目標文件。目標文件中主要有兩部分,代碼段和數據段,這 ⌘ Read more

⤋ Read More

基於 Go 語言實現的 Ollama 大語言模型框架
大語言模型在現代人工智能領域中扮演着重要角色。Ollama 作爲一個輕量級且可擴展的框架,幫助開發者在本地機器上構建和運行這些模型。Ollama 簡介———Ollama 是一個簡單、可擴展的框架,旨在幫助開發者構建和運行大語言模型。它提供了一個簡潔的 API,用於創建、運行和管理模型。此外,Ollama 附帶了豐富的預構建模型庫,供開發者在各種應用中輕鬆使用。Ollama 的特性包括: ⌘ Read more

⤋ Read More

如何優雅地處理 Goroutines 中的錯誤?
在使用 goroutines 的時候,你肯定遇到過需要處理不同 goroutine 裏面的錯誤的情況,這裏跟大家分享幾點經驗之談,也歡迎大家討論。❌ 在 Waitgroup 中處理有些開發者可能會使用下面的方式:package mainimport ( ”errors” ”sync” ”time”)func main() { var wg sync.WaitGroup wg.Add(3) var ⌘ Read more

⤋ Read More

Chroma - Ollama 搭建本地 RAG 應用
本文作者爲 360 奇舞團前端開發工程師本篇文章我們將基於Ollama本地運行大語言模型(LLM),並結合ChormaDB、Langchain來建立一個小型的基於網頁內容進行本地問答的RAG應用。概念介紹—-先簡單瞭解下這些術語:LLM (A large language model) 是通過使用海量的文本數據集(書籍、網站等)訓練出來的,具備通用語言理解和生成的能力。雖然它可以推理許多內 ⌘ Read more

⤋ Read More

Go 項目中的 Goroutine 泄露及其防範措施
Goroutine 是 Go 語言中實現併發的重要機制。它們輕量且高效,極大地提升了 Go 程序的併發能力。然而,在實際編程中,我們容易遇到 Goroutine 泄露的問題。這篇文章將詳細探討 Goroutine 泄露的概念、原因、檢測方法及其防範措施。什麼是 Goroutine 泄露?—————–Goroutine 泄露類似於內存泄露,是指程序中創建的 Goroutine ⌘ Read more

⤋ Read More

探索 Rust Stream API:併發、背壓和性能優化的深度探索與可視化分析
在現實世界的應用中管理併發性可能相當棘手。開發者必須應對併發控制、背壓、錯誤處理等。幸運的是,Rust 提供了異步 / 等待機制,此外還有 Stream API

⤋ Read More

Smol:Rust 語言中的輕量級異步運行時
Rust 是一種注重安全、性能和併發的系統編程語言。在異步編程領域,Rust 提供了豐富的生態系統,而 Smol 是該生態中的一顆璀璨明珠。它以其小巧、快速和現代化的特點,在 Rust 異步運行時領域獨樹一幟。本文將深入探討 Smol 的設計理念、核心功能以及如何在 Rust 項目中使用 Smol 來執行異步任務。Smol 的設計哲學———-在異步編程的世界中,效率和易用性是衡量一個運 ⌘ Read more

⤋ Read More

Rust 賦能前端 – 寫一個 File 轉 Img 的功能
所有耀眼的成績,都需要苦熬,熬得過,出衆;熬不過,出局大家好,我是「柒八九」。一個「專注於前端開發技術 /Rust及AI應用知識分享」的Coder 此篇文章所涉及到的技術有 1. Rust 2. wasm-bindgen/js-sys/web-sys 3. Web Worker 4. WebAssembly 5. Webpack/Vite配置WebAs ⌘ Read more

⤋ Read More

Kubernetes Go 週期執行器的實現
週期執行器主要用在同步網絡規則,如 iptables proixer、nettables proixer 中,一旦有新的網絡規則需要增加,就會週期性執行。我們通過一張圖來快速瞭解一下 BoundedFrequencyRunner 的執行流程BoundedFrequencyRunner用於週期性的執行同步方法,並且提供了執行失敗進行重試,內部封裝了運行的限流器type BoundedFrequenc ⌘ Read more

⤋ Read More

深入探索 Rust GDB:Rust 程序調試的利器
在 Rust 編程語言的世界中,有效的調試是任何成功項目的關鍵組成部分。調試對於理解程序的行爲、識別錯誤來源以及性能優化至關重要。本文將詳細介紹 Rust GDB(GNU Project Debugger),這是一款功能強大的工具,專門用於調試使用 Rust 編程語言編寫的應用程序。Rust GDB 基礎———–Rust GDB 是 GNU 調試器的擴展,它添加了對 Rust 語言特 ⌘ Read more

⤋ Read More

使用 libbpf 和 Rust 開發 ebpf 程序
作者簡介:    張新誼,西安郵電大學計算機專業研一在讀,目前在學習操作系統底層原理和內核編程。 使用本教程前需有 C 語言的 libbpf 開發經驗,以及 rust 語言基礎。01環境搭建 安裝 Rust 編程環境 curl –proto ’=https’ –tlsv1.2 -sSf https://sh.rustup.rs | shCargo 是 Rust 的包管理器和構建系統,在安裝 ⌘ Read more

⤋ Read More

Linux 基礎知識 - 一文學會網絡虛擬化
原文地址:https://icyfenix.cn/immutable-infrastructure/network/linux-vnet.htmlLinux 目前提供的八種名稱空間裏,網絡名稱空間無疑是隔離內容最多的一種,它爲名稱空間內的所有進程提供了全套的網絡設施,包括獨立的設備界面、路由表、ARP 表,IP 地址表、iptables/ebtables 規則、協議棧,等等。虛擬化容器是以 Lin ⌘ Read more

⤋ Read More

高併發下千萬數據量的 Mysql 中熱點數據如何持續保留在 Redis 中
在高併發下,爲了增加系統的併發能力通常都會使用緩存技術來緩存熱點數據,目的是防止大量的請求打到 Mysql 上導致 Mysql 被打垮而崩潰。    假設現在 Mysql 中千萬條數據量並且有幾十萬條是熱點數據,那麼如何實現 Redis 中始終存儲的都是熱點數據呢?    在介紹 Redis 如何持久保留熱點數據之前先說兩種算法:LRU 和 LFU1、LRU 和 LFU 算法LRU:最近最 ⌘ Read more

⤋ Read More

使用 Go 語言實現定時任務:輕鬆掌握 Cron 表達式
一、cron 基本使用1、使用舉例package mainimport ( “fmt” “github.com/robfig/cron”)//主函數func main() { cron2 := cron.New() //創建一個cron實例 //執行定時任務(每5秒執行一次) err:= cron2.AddFunc(“/5 “, print5) if err!=nil{ ⌘ Read more

⤋ Read More

Rust 項目中使用 Quinn 打造高性能網絡通信
隨着互聯網技術的迅速發展,網絡通信對性能和安全性的要求不斷提高。QUIC(快速 UDP 互聯網連接)協議應運而生,它是一種基於 UDP 的、爲 HTTP/3 設計的傳輸層網絡協議。相比於傳統的 TCP,QUIC 提供了更快的建立連接時間、改進的擁塞控制、無隊頭阻塞和更好的多路徑使用等優勢。在 Rust 生態系統中,Quinn 是這一協議最爲重要的實現之一,提供了異步、基於 futures 的 AP ⌘ Read more

⤋ Read More

瞎逼逼:談談容器日誌採集
故事還得從本週我搞了個 panic 開始說起,在我發佈失敗要排查爲什麼失敗了時,我驚訝的發現我竟然要上容器才能看到 panic 日誌,我工作這麼久還是很少見到這種場面的,經過和基建同學的深入暢談,我要上容器這件事情合不合理拋開不談,但我意識到,雖然大家都有日誌採集,但似乎每家公司的實現卻都略有差異,因此今天就來講講關於日誌採集的一些個人想法。在過去的文章中,我們提到過好幾次關於系統的穩定性建設,而 ⌘ Read more

⤋ Read More

秒殺系統的設計
現在許多商家了吸引顧客都會使用低價的秒殺商品來做活動,下圖展示了京東的秒殺活動頁面:     秒殺活動在開始的時候,用戶根據自己的需要下單自己喜歡的商品,此時服務器瞬間會打入大量的流量進來,如何設計一套可以扛住高併發的秒殺系統來支撐秒殺活動?下面我們具體的做秒殺系統的設計。 1、整體的秒殺設計     秒殺系統中我們使用了 LVS 和 Nginx 來扛住第一波流量,並且在 Nginx ⌘ Read more

⤋ Read More

Go:泛型全面解析,從基礎到實際應用
引言Go 語言在其 1.18 版本中引入了泛型功能,這是一個具有里程碑意義的更新。此前,Go 開發者常常藉助接口、反射等方法間接實現泛型的需求,這既複雜又影響性能。泛型的引入使得代碼不僅更加靈活,同時也更加高效和類型安全。本文通過解析一段 Go 語言的泛型示例代碼,詳細講解泛型的特性及其在 Go 中的實際應用。Go 語言泛型特性詳解基本語法和定義泛型,或者說參數化類型,是一種在編程時不具體指定其數 ⌘ Read more

⤋ Read More

用 go 語言實現一個有界協程池
寫在文章開頭——本篇文章算是對go語言系列的一個收尾,通過 go 語言實現一個實現一個簡單的有界協程池。Hi,我是 sharkChili ,是個不斷在硬核技術上作死的 java coder ,是 CSDN 的博客專家 ,也是開源項目 Java Guide 的維護者之一,熟悉 Java 也會一點 Go ,偶爾也會在 C 源碼 邊緣徘徊。寫過很多有意思的技術博客,也還在研究並輸出技術的路上,希 ⌘ Read more

⤋ Read More

高併發下如何輕鬆的保證接口冪等性
日常的開發中有些接口對冪等性有嚴格的要求,如增加 / 扣減積分、用戶支付 / 退款等場景,如果沒有做接口的冪等性就會造成一定的資損或者用戶投訴等問題。如下是增加積分過程,若接口未做冪等處理,現在由於積分服務響應超時導致 Nginx 重試:    會出現由於積分服務沒有做接口冪等處理,Nginx 重試操作使得積分接口多次被調用,最終會給用戶多加了積分。     那麼導致接口重複執行的來源有 ⌘ Read more

⤋ Read More

全面解析 Go 語言 Channel:面試必備知識點
一、channel 的整體結構圖1、channel 結構圖 channel 本質是一個 hchan 這個結構體 type hchan struct { buf unsafe.Pointer // points to an array of dataqsiz elements sendx uint // send index recvx uint ⌘ Read more

⤋ Read More

Go 實驗室:image 圖像處理就用它
短腿子猿的 Go 實驗室,Golang 官方提供了很多 package 來幫助大家提高開發的效率,但是由於函數太多,經常會記不住,這裏開了一個專題來分享官方 package,努力做到每週一更 Golang 中的 image 包提供了基本的圖像類型、顏色模型、以及用於處理圖像的各種函數和接口。以下是一些常用的函數和接口,以及相應的示例。常用類型與接口——-image.Image 接口這是 ⌘ Read more

⤋ Read More

Go 併發編程精粹:掌握通道(channels)的藝術
在併發編程的多任務世界中,Go 語言以其強大的併發特性而獨樹一幟。通道(channels),作爲 Go 併發模型中的核心概念,是連接不同 goroutines 的橋樑,確保了數據在它們之間的流暢傳遞。如果你對 goroutines 已經有所瞭解,那麼現在是深入探索通道的絕佳時機。併發編程:Go 語言的殺手鐧————–併發性是現代編程中的關鍵特性,它允許程序在同一時間內執行多個任務 ⌘ Read more

⤋ Read More

Rust 開發新一代緩存神器 ReadySet,加快了數據庫查詢和讀取能力!
大家好,我是漁夫。今天分享主題,基於 Rust 開發的 Readyset,是數據庫緩存層解決方案,主要是加快查詢速度及增強讀取操作的水平擴展能力。 Readyset 介紹ReadySet 它是 Postgres 和 MySQL 的透明數據庫緩存,能夠提供內存鍵值存儲的性能和可擴展性,不需要你重寫應用程序或手動處理緩存失效。ReadySet 還可以將你的最複雜的 SQL 讀取轉換爲閃電般的快速查找 ⌘ Read more

⤋ Read More

Golang 插件系統實現
插件可以在解耦的基礎上靈活擴展應用功能,本文介紹瞭如何基於 Golang 標準庫實現插件功能,幫助我們構建更靈活可擴展的應用。原文: Plugins with Go

⤋ Read More

掌握 Go 語言 Interface:面試高頻考點詳解
一、interface1、interface 作用接口是 Go 語言的重要組成部分,它在 Go 語言中通過一組方法指定了一個對象的行爲 接口 interface 的引入能夠讓我們在 Go 語言更好地組織並寫出易於測試的代碼 golang 中的接口分爲帶方法的接口和空接口 iface: 表示帶方法的接口 eface:表示空接口 2、eface 空接口 空接口 efac ⌘ Read more

⤋ Read More

JavaScript 框架生態系統的最新動態!
大家好,我是 ConardLi。 JavaScript 的生態系統一直以它的變化速度飛快而著稱。在今天快速變化的 JavaScript 框架生態中,稍不留神你就可能錯過許多新東西。每當你覺得自己對最新的工具和技術駕輕就熟時,新的創新浪潮又會帶來一切改變。去一年,JavaScript 框架生態又發生了不小的變化,在今年的 Google I/O 開發者大會中,《Navigating the Java ⌘ Read more

⤋ Read More

Go 語言主流 ORM 框架對比:GORM vs- Ent
GORM 和 Ent 是 Go 語言中使用廣泛的兩種 ORM(對象關係映射)框架。它們都有助於將數據庫操作從底層 SQL 抽象出來,簡化數據庫交互,但它們的設計理念和使用方式有顯著的不同。本文將詳細介紹 GORM 和 Ent 的不同特點、使用示例,並比較它們在不同場景下的優劣。GORM 簡介——-GORM 是一個易於使用的 ORM 庫,旨在提供簡單、乾淨的 API。它通過反射機制動態處理數 ⌘ Read more

⤋ Read More

GRequests: 讓 HTTP 服務人類
熟悉我的讀者朋友們都知道,我早期是寫 Python 的,現在主力語言是 Go。開始接觸 Go 語言以後,我發現 Go 自帶的 net/http 請求庫不夠好用,好在我沒用 Go 寫過一行爬蟲代碼,平時 net/http 庫用的也就比較少,不是每天都用,也就忍了。最近我在網上衝浪時,無意間發現了 grequests 這個庫,靈感來源於 Python 生態中大名鼎鼎的 requests 庫。顧名思義, ⌘ Read more

⤋ Read More

命令分發模式
命令分發模式 (command dispatcher pattern) 不屬於 23 種經典的設計模式。它是一種不太爲人所知的設計模式, 它主要用於構建可擴展、可插拔的系統架構, 將請求與執行請求的操作對象解耦。它類似於命令模式 (Command Pattern), 但更加靈活和動態。雖然 Command Dispatch Pattern 不屬於那 23 種經典模式, 但它確實是一種很有價值的模式 ⌘ Read more

⤋ Read More

實現微服務註冊的高效利器:gRPC 與 Nacos 集成教程
一、golang gRPC 註冊 nacosgithub 地址 nacos-sdk-go(opens new window) nacos 官網 1、目錄結構 2、pb/person.protosyntax = “proto3”;option gopackage = “./person”;package pb;message Person { string name = 1; in ⌘ Read more

⤋ Read More

關於 Vue 中 Scoped CSS 的理解
當 style 標籤有 scoped 屬性時,它的 CSS 只作用於當前組件中的元素。這類似於 Shadow DOM 中的樣式封裝。它有一些注意事項,但不需要任何 polyfill。它通過使用 PostCSS 來實現以下轉換:style scoped.example { color: red;}/styletemplate divhi/div/template轉換結果:style.exampl ⌘ Read more

⤋ Read More

全網最佳 websocket 封裝:完美支持斷網重連、自動心跳!
簡介「websocket 在前端開發中,是一個必須掌握的技術!你可以不用,但必須掌握!」前幾天,就遇到這樣一個需求,要求界面的數據通過websocket實時推送,並且必須支持「斷網重連、自動心跳」! 自動心跳是定期向服務端發送小型數據包,如果一段時間內服務端沒有收到心跳響應,系統可能會斷開連接。websokect 的 API 非常簡單// 創建ws連接const ws = new WebSock ⌘ Read more

⤋ Read More

全面掌握 GORM 中的遷移系統,實現自動遷移與手動遷移
在 Golang 生態系統中,GORM 作爲一個廣泛使用的 ORM 框架,不僅在數據庫操作方面提供了友好的 API 支持,其遷移系統(Migration System)同樣功能強大且易於使用。在本文中,我們將詳細解析 GORM 中的遷移機制,包括自動遷移和手動遷移,同時提供詳盡的代碼示例,幫助開發者全面掌握這一技術。什麼是數據庫遷移?———在數據庫系統中,遷移是指對數據庫架構進行變更的 ⌘ Read more

⤋ Read More

適合 Rust 初學者晉級到中級的項目
項目 1:Pong 遊戲這個項目使用 piston 遊戲引擎和 OpenGL 圖形庫構建 Pong 遊戲,這個遊戲創建兩個球拍,一個在左邊,一個在右邊,還有一個球。有 2 名玩家,他們將能夠用 Y 和 X 鍵和上下箭頭處理左右球拍。github 地址:https://github.com/EleftheriaBatsou/pong-game-rust項目 2:聊天應用程序聊天應用程序是常見的,許多 ⌘ Read more

⤋ Read More

Git 還能這樣用?一文看懂 Git 最佳實踐!
很多 Git 的操作,都有多種方法達到目的,但其中往往只有一種方法是最佳路徑。 Git 是個超級強大也非常流行的版本控制系統(VCS)。它的設計理念和其他 VCS 非常不同。縱觀整個業界,很多人在用舊的思維方式來解決 Git 的使用問題,有 svn 方式的、p4 方式的、奇怪方式的、錯誤方式的,等等,而不是更新成 Git 的思維方式。雖然 Git 非常靈活,確實可以用這些方式來使用,但其實操作起 ⌘ Read more

⤋ Read More

項目從 MySQL 切換 PostgreSQL,踩了太多的坑!!!
0、前言—-原項目框架 SpringBoot + MybatisPlus + Mysql1、切換流程——1.1、項目引入 postgresql 驅動包由於我們要連接新的數據庫,理所當然的要引入該數據庫的驅動包,這與 mysql 驅動包類似dependency    groupIdorg.postgresql/groupId    artifactIdpostgresql/artifac ⌘ Read more

⤋ Read More

深入理解 Babel - 項目管理工具 lerna 解析
一背景Babel 是一個比較龐大的項目,其子工程就有至少 140 個 (如 babel/plugins/presets/lerna/babel-loader 等),產出的子工具已經是前端開發的基礎設施,對開發效率、代碼質量等有非常高的要求。在本文中,我們將瞭解 Babel 是怎樣進行項目管理的。本文從工程管理、代碼管理、文檔管理、質量管理四個方面對 Babel 項目管理進行拆解分析。工程管理Bab ⌘ Read more

⤋ Read More

Vite 熱更新 -HMR- 原理了解一下
❝ 幸福的三大要素是:有要做的事(something to do)、有要愛的人(someone to love)、有寄予希望的東西(something to hope for) ❞大家好,我是「柒八九」。一個「專注於前端開發技術 /Rust及AI應用知識分享」的Coder前言用過Vite進行項目開發的同學,肯定聽說過,Vite在開發環境和生產環境是兩種不同的資源處理方式。在開發環境 ⌘ Read more

⤋ Read More

SQL 實用技巧 - 行列轉換
在編寫大數據 SQL 的時候,有時需要進行行列的轉化什麼是行列轉化?如下圖,不同商品在不同月份的銷量數據,有時候我們希望數據和左側一樣的排列,但原始數據卻像右側一樣排列,此時我們需要把右側的列排列轉換成左側的行排列,反之亦然。下面以上面這個例子爲大家介紹一些行列轉換的方式行轉列—使用CASE WHEN適用場景:MySQL、Hive、Spark SQL把行轉換成列最簡單的方式就是使用CASE W ⌘ Read more

⤋ Read More

使用 Go Channel 構建可擴展的併發 worker pool
在本篇博文中,我們將深入探討如何在 Go 中構建一個可擴展的 Worker pool。該實現可有效地管理 Worker pool,以處理大量請求,同時根據負載動態調整 Worker 的數量。我們還會討論可能出現的問題以及如何避免它們。概覽要實現的 worker pool 應該具有以下功能:根據負載情況動態調整 worker 數量; 具備超時和重試機制處理接收到的請求; 能夠 Grace ⌘ Read more

⤋ Read More

如何規範 RESTful API 的業務錯誤處理
現如今,主流的 Web API 都採用 RESTful 設計風格,對於接口返回的 HTTP 狀態碼和響應內容都有統一的規範。針對接口錯誤響應,一般都會返回一個 Code(錯誤碼)和 Message(錯誤消息內容),通常錯誤碼 Code 用來定位一個唯一的錯誤,錯誤消息 Message 用來展示錯誤信息。本文就來詳細介紹下,如何將 RESTful API 的錯誤處理進行規範化。錯誤碼爲什麼需要業務錯 ⌘ Read more

⤋ Read More

箭頭函數的意義和函數的二義性
前言–說到箭頭函數,可能很多人的第一反應就是和普通函數的區別:箭頭函數沒有 this,普通函數的 this 指向依賴它是如何被調用的 箭頭函數沒有 arguments 對象,而是通過剩餘參數(rest parameters)來獲取所有參數的值 箭頭函數沒有 prototype 原型,不能用作構造函數,而普通函數可以 更加簡潔的函數語法 相信一名前端開發者,對於這兩者的區別 ⌘ Read more

⤋ Read More

一文搞懂 Kuberntes Pod 網絡原理
Kubernetes 網絡需求在深入研究數據包在 Kubernetes 集羣內部如何流動之前,讓我們首先明確 Kubernetes 網絡的需求。Kubernetes 網絡模型定義了一組基本規則:集羣中的 Pod 應該能夠自由地與任何其他 Pod 通信,而無需使用網絡地址轉換(NAT)。 在集羣節點上運行的任何程序都應該能夠與同一節點上的任何 Pod 通信,而無需使用 NAT。 每個 P ⌘ Read more

⤋ Read More