GopherDaily

GopherDaily

2024-07-31

每日一谚:Use defer to clean up


Go技术生态

播客:Go 1.23 有什么新功能?
The Ethicically-Trained Programmer 在 Go Time 播客中讨论了 Go 1.23 版本中的新功能,并引用了 Nathaniel Borenstein 的一句话。

Go,一种合理的好语言
作者讨论了他们使用 Go 编程语言的经验,强调了它的优点,如静态二进制文件、快速编译和简单的依赖项管理,但也对其缺乏可空性、错误处理和对魔术的依赖表达了复杂的感受。

在 Linux 上使用 Go 构建静态二进制文件
该文档讨论了在 Linux 上使用 Go 构建静态二进制文件的过程,强调了默认动态链接的局限性,并提出了一些替代方案,例如使用不同的“libc”实现、使用“musl”实现或使用 Zig 工具链。

GoLand 2024.2 候选版本已发布!
GoLand 2024.2 候选版本是一个跨平台的 Go IDE,已经发布,引入了一些新功能,例如“Add method to interface and its all implementations”重构、反向类型推断支持、显示推断类型,以及将设置从 VS Code 迁移到 GoLand 的能力,以及针对中国、韩国和日本用户的改进。

没有JavaScript,没问题!使用 HTMX 和 Go 构建 Web 应用程序:构建不使用 Javascript 的动态 Web 应用程序
本教程演示了如何使用 HTMX 和 Go 构建动态 Web 应用程序,并使用翻译服务应用程序来添加交互性并进行 API 调用,而无需 JavaScript。

第 11 集:通过有效的应用层测试增强 Go 代码
Ultimate Software Design 系列的第 11 集讨论了在 Go 项目中实现鲁棒的应用层测试,强调了领域级组织、用于问题隔离的子测试以及管理依赖项和上下文以提高软件质量和可靠性的重要性。

在 Go 中追加到切片时,容量会如何变化?
该文档解释了在 Go 中追加到切片时容量如何变化,解释了“growslice”函数如何计算新容量,根据数据类型大小调整内存大小,并使用“roundupsize”函数对齐内存块的大小。

HTTP/0.9 From Scratch
The blog series " HTTP from scratch" explores the HTTP/0.9 protocol, the initial incarnation of the World Wide Web, by creating a simple server and client in Go, exploring its simplicity and limitations, and preparing for future versions that introduced features like headers, status codes, and additional methods.

本地第一的HTMX 第 2 部分
Local First HTMX 系列的第二篇文章讨论了 Local First HTMX Todo App 的技术细节,它使用一个服务工作者和一个编译为 WASM 的 Go 程序来代理获取请求和渲染 HTML,目的是创建一个单一的语言堆栈,以实现高效的开发。

使用 Groq 的 Whisper API 和 Go 将音频转录为文本
该文档提供了有关如何使用 Groq 的 Whisper API 和 Go 将音频转录为文本的指南,重点介绍了其各种应用程序以及在使用音频文件之前准备音频文件的步骤。

Google 轻松进行代码审查的秘诀
Google 的代码审查工具 Critique 因其效率、AI 驱动的改进以及对最新更改文件的关注而受到前 Google 工程师的高度青睐,从而使所有相关人员的流程更快、更高效。

数据库代理开发人员指南:何时使用它们以及如何创建一个
Alex Pliutau 的文章讨论了数据库代理的优点和缺点,强调了它们在复杂的分布式系统中增强安全性、优化性能以及提供更好的安全性和可观察性的能力,但也强调了使用数据库代理的成本和挑战。

新的 KV 执行引擎
Dolt 是一个开源数据库引擎,通过使用自定义键值 (KV) 层 SQL 逻辑来改进其 SQL 引擎,以提高查询执行速度,重点是查找联接,与 MySQL 相比,其延迟倍数低于 2 倍。

云原生技术

高级发布技术:Kubernetes 中有状态应用的自定义策略
Slack Engineering 讨论了 Blackstone Rollout Operator 的开发,这是一个管理 StatefulSet 部署的 Kubernetes Operator,可实现更可控的部署、更快的回滚以及与 Slack 的集成,同时解决大型应用程序和版本泄漏等限制。

linux 网络性能终极指南
该文档提供了有关 Linux 网络性能的全面指南,解释了数据包接收过程、数据包处理的各种技术以及内核绕过技术(如数据平面开发套件 (DPDK) 和 eXpress 数据路径 (XDP))的使用。

DHH:让软件再次变得简单
David Heinemeier Hansson, creator of the Ruby on Rails framework and co-founder of 37 Signals, spoke at the We Are Developers World Congress in Berlin, criticizing the prevalence of subscription models and the complexity of developer tools, and advocating for a simpler and more efficient software development.

如果敏捷是答案,那么问题是什么?戴夫·奥格尔(Dave Ogle)
Scott Logic 的首席开发人员 Dave Ogle 讨论了敏捷开发的演变和相关性,强调了敏捷开发在软件开发中的重要性,因为在软件开发中,目标和需求通常是未知的或可能会发生变化的,以及它在提供定期反馈和灵活性方面的作用。

令人愉悦的 Postgres 生产级复制
该文档是关于PostgreSQL生产级复制的外部帖子,作者通过电子邮件或Twitter邀请反馈和问题。

Docker Scout 运行状况分数:Docker Hub 存储库中容器映像的安全分级
源文档是一条消息,指示来自系统的“403 Forbidden”错误消息,特别是来自服务器端,特别是来自“ns”部分。

Prometheus 深入探究:警报、服务发现、导出器和集成
本文提供了有关如何掌握 Prometheus 的高级功能的综合指南,Prometheus 是一种云监控工具,包括精确警报、高级服务发现技术以及导出器和集成,以增强系统的可观察性和性能。

Docker Desktop 4.33:Docker 调试和 Docker 构建检查的 GA 版本以及增强的配置完整性检查
源文档是一条消息,指示来自系统的“403 Forbidden”错误消息,特别是来自服务器端,特别是来自“ns”部分。

调查 Crazy Rust 编译时间
Zoo 的系统工程师 Adam Chalmers 讨论了他对 KittyCAD Rust API 客户端编译时间缓慢的调查,发现这是由于 Rust 枚举很长,世界上每个国家都有一个变体,以及他如何设法将编译时间从 33 分钟减少到 1.5 分钟。

从头开始引导 Kubernetes 集群
本文提供了使用“kubeadm”手动设置 Kubernetes 集群的详细指南,包括提供虚拟机、安装容器运行时和建立主节点,重点是确保所有组件相互通信并设置必要的证书。

衡量 Nomad 绩效的新方法
HashiCorp Nomad 团队在其 1.8 版本中引入了新的指标,以更好地了解和衡量其工作负载编排器的性能,包括吞吐量、响应时间和延迟。

eBPF 能否将我们从 CrowdStrike 式的灾难中拯救出来?
The New Stack 讨论了 eBPF(一种系统性能程序)的潜力,它是在 CrowdStrike Windows 安全灾难之后运行低级安全程序的一种更安全的方式,一些人认为它可以防止未来的灾难,而另一些人则对其安全性和复杂性表示担忧。

AI

与其限制人工智能和算法,不如让它们变得可解释
马丁·福勒(Martin Fowler)认为,与其限制人工智能和算法,不如实施可解释性原则,软件做出的决策是可解释的,以确保透明度并改善结果。

量化的视觉指南
Maarten Grootendorst 介绍了大型语言模型 (LLM) 中的量化概念,解释了其各种方法、用例和原则,并介绍了用于以 1.58 位表示权重的 BitNet 方法,该方法允许更快的计算和特征过滤。

transformer数学 101
该文档提供了有关转换器语言模型的综合指南,包括训练成本的方程式、考虑训练的令牌数量的重要性、计算最优语言模型、训练的内存要求以及不同浮点格式和技术的使用。

ICML 2024 热门论文:机器学习有什么新变化?
本文讨论了在 2024 年国际机器学习会议 (ICML) 上发表的热门论文,重点介绍了最佳论文奖获得者、时间序列、大型语言模型和迁移学习、计算机视觉和音频以及音频与大型语言模型的集成等主题。

流行工具与项目

DiceDB/dice
使用基于 SQL 的实时响应性直接替代 Redis。

pocketbase/pocketbase
1 个文件中的开源实时后端

projectdiscovery/nuclei
基于简单 YAML 的 DSL 的快速可定制漏洞扫描器。

shirou/gopsutil
psutil for golang

spf13/viper
用獠牙去配置

ccfos/nightingale
一个多合一的可观测性解决方案,旨在结合 Prometheus 和 Grafana 的优势。它管理警报规则,并在漂亮的 Web UI 中可视化指标、日志和跟踪。

hashicorp/terraform
Terraform 使你能够安全且可预测地创建、更改和改进基础结构。它是一种源可用工具,可将 API 编码为声明性配置文件,这些文件可以在团队成员之间共享、视为代码、编辑、审查和版本控制。

cyclops-ui/cyclops
开发人员友好的 Kubernetes 👁️

aquasecurity/trivy
查找容器、Kubernetes、代码仓库、云等中的漏洞、错误配置、机密、SBOM

ollama/ollama
启动并运行 Llama 3.1、Mistral、Gemma 2 和其他大型语言模型。

milvus-io/milvus
云原生矢量数据库,为下一代 AI 应用程序提供存储

moby/moby
Moby Project - 一个容器生态系统的协作项目,用于组装基于容器的系统

kubernetes/autoscaler
自动缩放 Kubernetes 的组件

alpkeskin/mosint
自动化电子邮件 OSINT 工具

anchore/grype
容器镜像和文件系统的漏洞扫描器

hashicorp/terraform-provider-aws
AWS 提供商使 Terraform 能够管理 AWS 资源。

spf13/cobra
现代 Go CLI 交互的指挥官

containers/podman
Podman:用于管理 OCI 容器和 Pod 的工具。

GoogleCloudPlatform/microservices-demo
具有 10 个微服务的示例云优先应用程序,展示了 Kubernetes、Istio 和 gRPC。

distribution/distribution
用于包装、运输、存储和交付容器内容的工具包

fsnotify/fsnotify
Go 的跨平台文件系统通知。

usememos/memos
一种开源的轻量级笔记服务。轻松捕捉和分享您的精彩想法。

google/wire
Go 的编译时依赖性注入

kubernetes-sigs/kustomize
自定义 kubernetes YAML 配置


编辑:Tony Bai

编辑主页:tonybai.com

GopherDaily主页:gopherdaily.tonybai.com

GopherDaily归档:gopherdaily.tonybai.com/more

GopherDaily项目:github.com/bigwhite/gopherdaily

订阅GopherDaily

取消订阅GopherDaily

Copyright 2019-2024 GopherDaily