主页 | Web版 | 订阅 | 归档 | Feed

GopherDaily

20241227

每日一谚:Do not ignore or swallow errors


Go技术生态

如何处理Go安全警报
本文阐明了 Golang 安全补丁周期。您将学习如何识别 Go 代码和 Go 二进制文件中的漏洞,并获得必要的洞察力来评估这些问题是否会影响您的应用程序并构成安全风险。文章介绍了使用 `govulncheck` 和 `Docker Scout` 等工具扫描 Docker 镜像和 Go 代码以检测漏洞的方法,并演示了如何升级受影响的包以修复漏洞。文章强调了区分潜在安全问题和实际安全风险的重要性,并建议将安全测试和补丁过程自动化并集成到持续集成管道中。

Go-Prequel:Google Prequel负载均衡器的概念验证
这篇文章尝试解读和复制论文《负载并非你应该均衡的对象:介绍 Prequel》中的发现。文章重点关注一般的负载均衡策略、背后的动机以及作者的实现。作者实现了基于 Prequel 的负载均衡器,并进行了实验,观察了在不同负载情况下的流量分配。实验结果显示,Prequel 通过平衡正在处理的请求数 (RIF) 和延迟,有效地减少了尾部延迟和资源利用率。文章还包含了实验的截图和代码链接。

云原生技术

我如何将 AWS 成本降低 100 倍
作者讲述了如何从零开始构建一个低成本的社交网络和活动管理平台,以及如何通过构建一个新的、更高效的后台系统,将 AWS 成本从每月 2000 美元降低到 20 美元的故事。文章中还提到了旧后台系统存在的问题,例如命名约定不一致、HTTP 方法有限、模型设计糟糕以及 API 响应效率低等。作者最终成功说服客户采用其新系统,并成功迁移数据。

PostgreSQL 中读取操作导致写入操作
本文探讨了在 PostgreSQL 中,简单的 SELECT 查询如何导致数据写入磁盘的两种机制:事务状态跟踪的提示位设置和页面修剪。文章详细解释了 PostgreSQL 的多版本并发控制 (MVCC)、表、页面和元组的概念,并通过示例演示了如何使用 `pageinspect` 模块检查页面和元组,以及如何理解行更新、提示位更新和页面修剪的过程。最后,文章还简要介绍了 HOT 更新的优化机制。

1.6GB 中的整个社交网络 (GraphD 第二部分)
本文介绍了如何使用 Roaring Bitmaps 构建更高效的社交网络图数据库 GraphD。Roaring Bitmaps 提供了一种更高效的方式来存储和查询整个社交图,将 550 万用户和 1.64 亿个关注关系存储到大约 1.6GB 的 SQLite 数据库中。文章详细解释了 Roaring Bitmaps 的工作原理,并比较了它与其他方法(如简单的位图和运行长度编码)的优缺点。最终,作者展示了使用 Roaring Bitmaps 的 GraphD 在内存使用、磁盘空间、启动时间和吞吐量方面的显著改进。

AI

开放式 WebUI
我今天第一次尝试了这个开源(MIT 许可证,JavaScript 和 Python)本地主机 UI,用于访问大型语言模型。它做得非常好。我使用 uvx 运行它,它安装了许多依赖项,然后下载了 903MB 的 all-MiniLM-L6-v2 嵌入模型(可能是为了它的 RAG 功能)。它随后为我提供了一个可用的 Llama 3.2:3b 聊天界面,这让我很惊讶,因为我没有发现它下载了该模型。事实证明,这是因为我的笔记本电脑上已经运行了 Ollama(安装了包括 Llama 3.2:3b 在内的多个模型),而 Open WebUI 自动检测到 Ollama 并让我访问可用模型列表。我找到一个“知识”部分,并添加了所有 Datasette 文档(通过放入文档中的 .rst 文件),现在我可以在聊天中键入 # 来搜索文件,将其添加到上下文中,然后直接询问有关它的问题。我选择了 spatialite.rst.txt 文件,提示它“如何将 SpatiaLite 与 Datasette 一起使用”,并得到了这个答案:这是一个非常可靠的答案,特别是考虑到来自 Ollama 的 Llama 3.2 3B 模型只是一个 1.9GB 的文件!令人印象深刻的是,该模型能够很好地处理针对提供给它的文本进行的基本问答和摘要——它不知何故具有 128,000 个令牌的上下文大小。Open WebUI 还有一些其他技巧:它可以直接与 OpenAI 等 API 模型对话,具有与网络搜索和自定义工具集成的可选功能,并将每次交互记录到 SQLite 数据库。它还附带了详尽的文档。

2024 年谷歌 AI 重大公告回顾:Gemini、NotebookLM 等
本文回顾了谷歌 2024 年最重要的 AI 新闻,包括 Gemini、NotebookLM、搜索等方面的进展。文章总结了全年各个月份的重大 AI 新闻,涵盖了 Gemini 的多个版本发布、NotebookLM 的更新、AI 在 Google 搜索、Pixel、Chrome 等产品中的应用,以及 AI 在医疗、教育和可持续发展等领域的应用。

流行工具与项目

IceWhaleTech/CasaOS
CasaOS - A simple, easy-to-use, elegant open-source Personal Cloud system.

jackc/pgx
PostgreSQL driver and toolkit for Go

AlexxIT/go2rtc
Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.

flipped-aurora/gin-vue-admin
🚀Vite+Vue3+Gin拥有AI辅助的基础开发平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器、表单生成器和可配置的导入导出等开发必备功能。

jaegertracing/jaeger
CNCF Jaeger, a Distributed Tracing Platform

usememos/memos
An open-source, lightweight note-taking solution. The pain-less way to create your meaningful notes. Your Notes, Your Way.

milvus-io/milvus
Milvus is a high-performance, cloud-native vector database designed to scale.

charmbracelet/bubbletea
A powerful little TUI framework 🏗

shopspring/decimal
Arbitrary-precision fixed-point decimal numbers in Go

juanfont/headscale
An open source, self-hosted implementation of the Tailscale control server

apache/incubator-answer
A Q&A platform software for teams at any scales. Whether it's a community forum, help center, or knowledge management platform, you can always count on Apache Answer.

ccfos/nightingale
An all-in-one observability solution which aims to combine the advantages of Prometheus and Grafana. It manages alert rules and visualizes metrics, logs, traces in a beautiful web UI.

redis/go-redis
Redis Go client

hibiken/asynq
Simple, reliable, and efficient distributed task queue in Go

getkin/kin-openapi
OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more)

cashapp/cloner

nats-io/nats-server
High-Performance server for NATS.io, the cloud and edge native messaging system.

ollama/ollama
Get up and running with Llama 3.3, Mistral, Gemma 2, and other large language models.

gin-gonic/gin
Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.

gogs/gogs
Gogs is a painless self-hosted Git service

zeromicro/go-zero
A cloud-native Go microservices framework with cli tool for productivity.

Calcium-Ion/new-api
AI模型接口管理与分发系统,支持将多种大模型转为OpenAI格式调用、支持Midjourney Proxy、Suno、Rerank,兼容易支付协议,可供个人或者企业内部管理与分发渠道使用,本项目基于One API二次开发。🍥 The next-generation LLM gateway and AI asset management system supports multiple languages.

bluenviron/mediamtx
Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily项目:github.com/bigwhite/gopherdaily

Copyright 2019-2024 GopherDaily