<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="/static/rss.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>41</id>
  <title>Better Dev Link</title>
  <updated>2026-06-27T04:03:14.137796+00:00</updated>
  <author>
    <name>Unknown</name>
  </author>
  <link href="https://betterdev.link" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Better Dev Link - Resource around the web on becoming a better programmer, published every Monday and sent directly to your inbox.</subtitle>
  <entry>
    <id>https://betterdev.link/issues/285</id>
    <title>Issues #285 May 11, 2026 || &lt;think&gt;用户要求我翻译这个文本到简体中文。

原文是："Issues #285 May 11, 2026"

这是一句话，表示一个期刊或杂志的期号和日期。

翻译：
- Issues = 期（第285期）
- #285 = 第285期
- May 11, 2026 = 2026年5月11日

完整翻译：第285期 2026年5月11日

或者按照中文习惯：2026年5月11日 第285期
&lt;/think&gt;

第285期 2026年5月11日</title>
    <updated>2026-05-11T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;re back for another issue. I&amp;rsquo;m still trying my time to make this news letter become a weekly again :(.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/fo69mqkcnowzual2rfe8gojggqv"&gt;View the latest HubSpot Developer Platform updates in Spring Spotlight&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Spring Spotlight 2026 is live and we’ve rounded up the top updates for developers here. Featuring:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• AI-Assisted Development&lt;/span&gt;: Developer MCP Server lets you build apps faster with AI coding tools like Cursor, Claude Code, and Codex.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Modern API Infrastructure&lt;/span&gt;: Date-based versioned APIs and versioned docs for predictable releases.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• MCP&lt;/span&gt;: Unlock HubSpot data via the HubSpot MCP Server (remote) to connect any compatible MCP client and create custom workflows and integrations.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Projects 2026.03&lt;/span&gt;: Includes serverless functions, UI extension support, and migration from 2025.1 and 2023.2.&lt;br /&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.wiisfi.com/"&gt;Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/ac/ax/be/bn)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;decode and understand all the thing behind these cryptic number.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://alexsci.com/blog/how-time-gov-works/"&gt;How an HTTP header caused time.gov to skew from UTC&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In the United States, the National Institute of Standards and Technology (NIST) maintains the official U.S. time reference. On a recent project I needed a trustworthy clock and time.gov was a convenient option. To validate that the provided reference was accurate, I opened time.gov in two browser windows side-by-side, but found that the provided clock offset estimates disagreed by a margin larger than I could tolerate. When I compared to another source, an NTP client, I found even more disagreement.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://essenceia.github.io/projects/floating_dragon"&gt;Floating point from scratch: Hard Mode&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In famous problem. 0.1 + 0.2 is equal 0.30000000000000004. Best way to to understand is to re-implement them from the first principle, the hard way.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.codingconfessions.com/p/virtual-memory"&gt;Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;From page faults to NUMA topology: how the Linux kernel manages memory, and what that means for the performance of data-intensive systems&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kean.blog/post/lets-build-regex"&gt;Let's Build a Regex Engine&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Ever wondered how regex works under the hood? How does it understand an incantation like &amp;ldquo;&amp;lt;\/?[\w\s]*&amp;gt;|&amp;lt;.+[\W]&amp;gt;&amp;rdquo; and magically produces a desired result? This series is going to describe exactly how it works and how to implement a feature-rich regex engine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb4acf"&gt;Native Secure Enclave backed ssh keys on MacOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;that MacOS Tahoe can generate and use secure-enclave backed SSH keys! This replaces projects like &lt;a href="https://github.com/maxgoedjen/secretive"&gt;secretive&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lisyarus.github.io/blog/posts/making-your-own-programming-language.html"&gt;Making your own programming language is easier than you think&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most programmers dream of their own perfect programming language.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/monitor-autovacuum-my-queries"&gt;My queries to monitor autovacuum&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Without vacuum, deadtuple (dead row) are accumulate in Postgres, the engine needs to scan them and exclude them, vacuum suppose to delete them. Here are many tip and tricks to monitor that process&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.figma.com/blog/pgkeeper-building-the-bouncer-we-needed-for-postgres/"&gt;PGKeeper: Building the bouncer we needed for Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Figma outgrow pgbouncer and share experience writing their own Postgres connection pooling.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html"&gt;NPM Security best practices&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;cheatsheet covers several npm security best practices and productivity tips, useful for JavaScript and Node.js developers. This list was originally based on the 10 npm security best practices from the Snyk blog.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gitperf.com/index.html"&gt;High Performance Git&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;a book written for engineers who need Git to stay fast as repositories, histories, and teams get larger: build and CI engineers, monorepo owners, devprod teams, and anyone tasked with figuring out Git beyond the usual four commands.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/imtomt/ymawky" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ywawky&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;MacOS Web Server written entirely in ARM64 assembly&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/russellromney/honker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;honker&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;SQLite extension + bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub, and scheduler&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/alebeck/boring" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;boring&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple command line SSH tunnel manager that just works.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bradenaw/backpressure" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;backpressure&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prioritized semaphore/rate-limiter/adaptive throttle for load management.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/six-ddc/plow" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;plow&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rogerwelin/pg_column_tetris" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_column_tetris&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that can enforce optimal column alignment to minimize row padding waste.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgrwl/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwrl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Cloud-native continuous backup for PostgreSQL - WAL/base-backup streaming, compression, encryption, retention, and monitoring in a single binary.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/NikolayS/leandex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;leandex&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a pure SQL / PL/pgSQL control plane for conservative autonomous reindexing, in the same extension-avoidance spirit as pg_ash and PgQue. It installs into a separate control database, talks to target databases through postgres_fdw user mappings and dblink, and rebuilds only with reindex index concurrently. No schema is installed into target databases. No C extension, no shared_preload_libraries, no sidecar worker, no restart.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://hyperframes.heygen.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hyperframes&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;HyperFrames lets AI agents compose videos by writing HTML, CSS &amp;amp; JS.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/trickle-labs/pg-trickle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg-trickle&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Have u ever has to write some cronjob to refresh materialized view? this tool handle all of that, natively inside Postgres&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.remotion.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;remotion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Create real MP4 videos with React. Parametrize content, render server-side and build applications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/engseclabs/trailtool" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trailtool&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;aggregates CloudTrail logs to simplify analysis for AI agents&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kpolley/redai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;redai&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A terminal workbench for AI-driven vulnerability discovery and live validation.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate the HTML content to Simplified Chinese. I need to:
1. Translate all the text content while preserving the HTML structure
2. Keep the original paragraph breaks
3. Only return the translation, no explanations

Let me translate each section:

Title: Better Dev Link - Resource around the web on becoming a better programmer
→ Better Dev Link - 成为更优秀程序员的网络资源

Introduction paragraphs:
- Hi all → 大家好
- We're back for another issue → 我们又回来了，这是另一期
- I'm still trying my time to make this news letter become a weekly again → 我仍在努力让这份周刊恢复每周一期 :(
- If you enjoy BetterDev, please spread the word by sharing it with your friends → 如果你喜欢 BetterDev，请把它分享给你的朋友，让更多人知道
- And if you'd like to support my work, buying me a coffee would be much appreciated → 如果你想支持我的工作，请我喝杯咖啡将不胜感激

Link 1:
- View the latest HubSpot Developer Platform updates in Spring Spotlight → 查看最新的 HubSpot 开发者平台春季亮点更新
- Spring Spotlight 2026 is live and we've rounded up the top updates for developers here → Spring Spotlight 2026 已上线，我们在此汇总了面向开发者的重要更新
- AI-Assisted Development → AI 辅助开发
- Developer MCP Server lets you build apps faster with AI coding tools like Cursor, Claude Code, and Codex → 开发者 MCP 服务器让你可以使用 Cursor、Claude Code 和 Codex 等 AI 编码工具更快地构建应用


- Modern API Infrastructure → 现代 API 基础设施
- Date-based versioned APIs and versioned docs for predictable releases → 基于日期的版本化 API 和版本化文档，确保可预测的发布周期
- MCP → MCP
- Unlock HubSpot data via the HubSpot MCP Server (remote) to connect any compatible MCP client and create custom workflows and integrations → 通过 HubSpot MCP 服务器（远程）解锁 HubSpot 数据，连接任何兼容的 MCP 客户端，创建自定义工作流程和集成
- Projects 2026.03 → Projects 2026.03
- Includes serverless functions, UI extension support, and migration from 2025.1 and 2023.2 → 包含无服务器函数、UI 扩展支持，以及从 2025.1 和 2023.2 的迁移

Wi-Fi protocols are complex technical standards. These protocols represent different generations of wireless communication technologies, each with distinct capabilities in data transmission, frequency ranges, and network performance. Understanding these standards helps optimize network infrastructure and communication strategies.

Time-related technical challenges can significantly impact system reliability. An HTTP header misconfiguration might cause time synchronization issues, potentially disrupting critical time-dependent processes.

Decimal precision in computing remains a nuanced problem. Floating-point calculations reveal fundamental challenges in representing numerical values accurately, demonstrating why precise numeric computation requires careful algorithmic approaches.

Operating system memory management involves sophisticated techniques for tracking and utilizing system resources. Page tables, Translation Lookaside Buffers, and intricate Linux kernel mechanisms play crucial roles in maintaining efficient virtual memory systems.

Regular expression parsing represents a complex computational task. Understanding how pattern matching engines interpret and execute complex search patterns requires deep technical knowledge of string processing algorithms.

System security increasingly relies on specialized hardware components like Secure Enclaves. Apple's Secure Enclave provides robust cryptographic capabilities, enabling developers to implement advanced key management strategies.

Database maintenance is critical for performance. Autovacuum processes prevent tuple accumulation, which can degrade query performance and increase storage overhead in PostgreSQL environments.

Connection pooling mechanisms help manage database load efficiently. Specialized tools like PGKeeper demonstrate innovative approaches to handling database connection scalability.

Security practices in package management require continuous attention. The OWASP NPM Security Cheat Sheet provides comprehensive guidance for developers managing JavaScript and Node.js dependencies.

Performance optimization in version control systems demands strategic approaches. Specialized documentation and optimization techniques help engineering teams maintain efficient Git workflows.

Assembly programming remains a challenging yet rewarding endeavor. Projects like MacOS Web Server written in ARM64 assembly showcase the potential for low-level system programming.

Database extensions continue to expand PostgreSQL's capabilities. Tools like Honker demonstrate innovative approaches to database messaging and event-driven architectures.

CLI tooling provides essential functionality for developers. Projects like boring simplify complex network management tasks with focused, straightforward implementations.

Performance management requires nuanced approaches. Backpressure mechanisms help developers create adaptive systems that can handle varying load conditions effectively.

HTTP benchmarking tools enable precise performance analysis. Plow represents an advanced approach to measuring and visualizing web server capabilities.

PostgreSQL optimizations continue to evolve. pg_column_tetris addresses memory efficiency challenges in database row storage.

Backup and recovery strategies remain critical. pgwrl demonstrates modern approaches to continuous PostgreSQL protection.

Database maintenance tools simplify complex operations. Leandex provides innovative solutions for managing database reindexing without disrupting production environments.

AI capabilities are transforming application development. HyperFrames enables dynamic content generation through intelligent frameworks.

PostgreSQL extension development continues to push boundaries. pg-trickle offers native scheduling mechanisms for materialized views.

Video generation technologies are evolving rapidly. Remotion provides developers with programmatic video creation capabilities.

Cloud infrastructure monitoring requires intelligent tools. trailtool streamlines CloudTrail log analysis for enhanced operational insights.

Vulnerability detection is becoming more sophisticated. redai offers AI-driven approaches to security assessment and validation.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;我们又回来了，这是另一期。我仍在努力让这份周刊恢复每周一期 :(&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请把它分享给你的朋友，让更多人知道。如果你愿意支持我的工作，请我喝杯咖啡将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/fo69mqkcnowzual2rfe8gojggqv"&gt;查看最新的 HubSpot 开发者平台春季亮点更新&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Spring Spotlight 2026 已上线，我们在此汇总了面向开发者的重要更新。&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• AI 辅助开发&lt;/span&gt;：开发者 MCP 服务器让你可以使用 Cursor、Claude Code 和 Codex 等 AI 编码工具更快地构建应用。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• 现代 API 基础设施&lt;/span&gt;：基于日期的版本化 API 和版本化文档，确保可预测的发布周期。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• MCP&lt;/span&gt;：通过 HubSpot MCP 服务器（远程）解锁 HubSpot 数据，连接任何兼容的 MCP 客户端，创建自定义工作流程和集成。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Projects 2026.03&lt;/span&gt;：包含无服务器函数、UI 扩展支持，以及从 2025.1 和 2023.2 的迁移。&lt;br/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.wiisfi.com/"&gt;理解 Wi-Fi 4/5/6/6E/7/8 (802.11 n/ac/ax/be/bn)&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解码并理解这些神秘数字背后的所有内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://alexsci.com/blog/how-time-gov-works/"&gt;一个 HTTP 头如何导致 time.gov 与 UTC 产生偏差&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在美国，国家标准与技术研究院（NIST）维护着美国官方时间参考。在一个最近的项目中，我需要一个可靠的时钟，time.gov 是一个便捷的选择。为了验证提供的参考是否准确，我在两个浏览器窗口中同时打开了 time.gov，但发现提供的时钟偏移估计值之间的差异超出了我可接受的范围。当我与其他来源进行比较时，一个 NTP 客户端，我发现了更大的分歧。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://essenceia.github.io/projects/floating_dragon"&gt;从零实现浮点数：困难模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个著名的问题。0.1 + 0.2 等于 0.30000000000000004。最好的理解方式是从头开始重新实现它们，用最困难的方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.codingconfessions.com/p/virtual-memory"&gt;虚拟内存：深入了解页表、TLB 和 Linux 内部机制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从页错误到 NUMA 拓扑：Linux 内核如何管理内存，以及这对数据密集型系统性能意味着什么&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kean.blog/post/lets-build-regex"&gt;从零构建正则引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有没有想过正则表达式底层是如何工作的？它如何理解像 "&amp;lt;\/?[\w\s]*&amp;gt;|&amp;lt;.+[\W]&amp;gt;" 这样的咒语并神奇地产生期望的结果？本系列将精确描述它的工作原理以及如何实现一个功能丰富的正则引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb4acf"&gt;MacOS 原生 Secure Enclave 支持的 SSH 密钥&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;MacOS Tahoe 可以生成和使用 Secure Enclave 支持的 SSH 密钥！这取代了像 &lt;a href="https://github.com/maxgoedjen/secretive"&gt;secretive&lt;/a&gt; 这样的项目&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lisyarus.github.io/blog/posts/making-your-own-programming-language.html"&gt;创建你自己的编程语言比你想象的更容易&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;大多数程序员都梦想拥有自己的完美编程语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/monitor-autovacuum-my-queries"&gt;我用来监控 autovacuum 的查询&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;没有 vacuum，deadtuple（死元组）会在 Postgres 中积累，引擎需要扫描它们并排除它们，vacuum 负责删除它们。以下是监控该过程的许多技巧和诀窍&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.figma.com/blog/pgkeeper-building-the-bouncer-we-needed-for-postgres/"&gt;PGKeeper：构建我们所需的 Postgres 连接池管理器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Figma 超越了 pgbouncer，分享了编写自己的 Postgres 连接池的经验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html"&gt;NPM 安全最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;速查表涵盖了一些 npm 安全最佳实践和生产率技巧，对 JavaScript 和 Node.js 开发者很有用。这个列表最初基于 Snyk 博客的 10 个 npm 安全最佳实践。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitperf.com/index.html"&gt;高性能 Git&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一本为需要 Git 保持快速运转的工程师编写的书，因为仓库、历史和团队都在变大：构建和 CI 工程师、单体仓库所有者、devprod 团队，以及任何需要了解超出常规四个命令之外的 Git 的人。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/imtomt/ymawky" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ywawky&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;完全用 ARM64 汇编编写的 MacOS Web 服务器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/russellromney/honker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;honker&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;SQLite 扩展 + 绑定，为 Postgres 提供 NOTIFY/LISTEN 语义，支持持久化队列、流、发布/订阅和调度器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alebeck/boring" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;boring&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的命令行 SSH 隧道管理器，简单实用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bradenaw/backpressure" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;backpressure&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于负载管理的优先级信号量/限流器/自适应节流阀。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/six-ddc/plow" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;plow&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高性能 HTTP 基准测试工具，包含实时 Web UI 和终端显示&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rogerwelin/pg_column_tetris" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_column_tetris&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 扩展，可以强制最优列对齐以最小化行填充浪费。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgrwl/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwrl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;云原生 PostgreSQL 持续备份 - WAL/基础备份流、压缩、加密、保留和监控，全部整合在一个二进制文件中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/NikolayS/leandex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;leandex&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个纯 SQL / PL/pgSQL 控制平面，用于保守式自主重建索引，遵循与 pg_ash 和 PgQue 相同的避免扩展理念。它安装到一个单独的控制数据库，通过 postgres_fdw 用户映射和 dblink 与目标数据库通信，只使用 reindex index concurrently 重建。不会在目标数据库中安装任何模式。不需要 C 扩展、不需要 shared_preload_libraries、不需要 sidecar worker、不需要重启。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hyperframes.heygen.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hyperframes&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;HyperFrames 让 AI 智能体可以通过编写 HTML、CSS 和 JS 来合成视频。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/trickle-labs/pg-trickle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg-trickle&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;你曾经需要写一些 cronjob 来刷新物化视图吗？这个工具在 Postgres 内部原生处理所有这些。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.remotion.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;remotion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 React 创建真正的 MP4 视频。参数化内容、服务端渲染并构建应用程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/engseclabs/trailtool" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trailtool&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;聚合 CloudTrail 日志以简化 AI 智能体的分析&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kpolley/redai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;redai&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于 AI 驱动漏洞发现和实时验证的终端工作台。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/285"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;re back for another issue. I&amp;rsquo;m still trying my time to make this news letter become a weekly again :(.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/fo69mqkcnowzual2rfe8gojggqv"&gt;View the latest HubSpot Developer Platform updates in Spring Spotlight&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Spring Spotlight 2026 is live and we’ve rounded up the top updates for developers here. Featuring:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• AI-Assisted Development&lt;/span&gt;: Developer MCP Server lets you build apps faster with AI coding tools like Cursor, Claude Code, and Codex.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Modern API Infrastructure&lt;/span&gt;: Date-based versioned APIs and versioned docs for predictable releases.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• MCP&lt;/span&gt;: Unlock HubSpot data via the HubSpot MCP Server (remote) to connect any compatible MCP client and create custom workflows and integrations.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Projects 2026.03&lt;/span&gt;: Includes serverless functions, UI extension support, and migration from 2025.1 and 2023.2.&lt;br /&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.wiisfi.com/"&gt;Understanding Wi-Fi 4/5/6/6E/7/8 (802.11 n/ac/ax/be/bn)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;decode and understand all the thing behind these cryptic number.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://alexsci.com/blog/how-time-gov-works/"&gt;How an HTTP header caused time.gov to skew from UTC&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In the United States, the National Institute of Standards and Technology (NIST) maintains the official U.S. time reference. On a recent project I needed a trustworthy clock and time.gov was a convenient option. To validate that the provided reference was accurate, I opened time.gov in two browser windows side-by-side, but found that the provided clock offset estimates disagreed by a margin larger than I could tolerate. When I compared to another source, an NTP client, I found even more disagreement.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://essenceia.github.io/projects/floating_dragon"&gt;Floating point from scratch: Hard Mode&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In famous problem. 0.1 + 0.2 is equal 0.30000000000000004. Best way to to understand is to re-implement them from the first principle, the hard way.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.codingconfessions.com/p/virtual-memory"&gt;Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;From page faults to NUMA topology: how the Linux kernel manages memory, and what that means for the performance of data-intensive systems&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kean.blog/post/lets-build-regex"&gt;Let's Build a Regex Engine&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Ever wondered how regex works under the hood? How does it understand an incantation like &amp;ldquo;&amp;lt;\/?[\w\s]*&amp;gt;|&amp;lt;.+[\W]&amp;gt;&amp;rdquo; and magically produces a desired result? This series is going to describe exactly how it works and how to implement a feature-rich regex engine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb4acf"&gt;Native Secure Enclave backed ssh keys on MacOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;that MacOS Tahoe can generate and use secure-enclave backed SSH keys! This replaces projects like &lt;a href="https://github.com/maxgoedjen/secretive"&gt;secretive&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lisyarus.github.io/blog/posts/making-your-own-programming-language.html"&gt;Making your own programming language is easier than you think&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most programmers dream of their own perfect programming language.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/monitor-autovacuum-my-queries"&gt;My queries to monitor autovacuum&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Without vacuum, deadtuple (dead row) are accumulate in Postgres, the engine needs to scan them and exclude them, vacuum suppose to delete them. Here are many tip and tricks to monitor that process&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.figma.com/blog/pgkeeper-building-the-bouncer-we-needed-for-postgres/"&gt;PGKeeper: Building the bouncer we needed for Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Figma outgrow pgbouncer and share experience writing their own Postgres connection pooling.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html"&gt;NPM Security best practices&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;cheatsheet covers several npm security best practices and productivity tips, useful for JavaScript and Node.js developers. This list was originally based on the 10 npm security best practices from the Snyk blog.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gitperf.com/index.html"&gt;High Performance Git&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;a book written for engineers who need Git to stay fast as repositories, histories, and teams get larger: build and CI engineers, monorepo owners, devprod teams, and anyone tasked with figuring out Git beyond the usual four commands.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/imtomt/ymawky" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ywawky&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;MacOS Web Server written entirely in ARM64 assembly&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/russellromney/honker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;honker&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;SQLite extension + bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub, and scheduler&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/alebeck/boring" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;boring&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple command line SSH tunnel manager that just works.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bradenaw/backpressure" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;backpressure&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prioritized semaphore/rate-limiter/adaptive throttle for load management.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/six-ddc/plow" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;plow&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A high-performance HTTP benchmarking tool that includes a real-time web UI and terminal display&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rogerwelin/pg_column_tetris" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_column_tetris&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that can enforce optimal column alignment to minimize row padding waste.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgrwl/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwrl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Cloud-native continuous backup for PostgreSQL - WAL/base-backup streaming, compression, encryption, retention, and monitoring in a single binary.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/NikolayS/leandex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;leandex&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a pure SQL / PL/pgSQL control plane for conservative autonomous reindexing, in the same extension-avoidance spirit as pg_ash and PgQue. It installs into a separate control database, talks to target databases through postgres_fdw user mappings and dblink, and rebuilds only with reindex index concurrently. No schema is installed into target databases. No C extension, no shared_preload_libraries, no sidecar worker, no restart.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://hyperframes.heygen.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hyperframes&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;HyperFrames lets AI agents compose videos by writing HTML, CSS &amp;amp; JS.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/trickle-labs/pg-trickle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg-trickle&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Have u ever has to write some cronjob to refresh materialized view? this tool handle all of that, natively inside Postgres&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.remotion.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;remotion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Create real MP4 videos with React. Parametrize content, render server-side and build applications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/engseclabs/trailtool" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trailtool&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;aggregates CloudTrail logs to simplify analysis for AI agents&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kpolley/redai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;redai&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A terminal workbench for AI-driven vulnerability discovery and live validation.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate the HTML content to Simplified Chinese. I need to:
1. Translate all the text content while preserving the HTML structure
2. Keep the original paragraph breaks
3. Only return the translation, no explanations

Let me translate each section:

Title: Better Dev Link - Resource around the web on becoming a better programmer
→ Better Dev Link - 成为更优秀程序员的网络资源

Introduction paragraphs:
- Hi all → 大家好
- We're back for another issue → 我们又回来了，这是另一期
- I'm still trying my time to make this news letter become a weekly again → 我仍在努力让这份周刊恢复每周一期 :(
- If you enjoy BetterDev, please spread the word by sharing it with your friends → 如果你喜欢 BetterDev，请把它分享给你的朋友，让更多人知道
- And if you'd like to support my work, buying me a coffee would be much appreciated → 如果你想支持我的工作，请我喝杯咖啡将不胜感激

Link 1:
- View the latest HubSpot Developer Platform updates in Spring Spotlight → 查看最新的 HubSpot 开发者平台春季亮点更新
- Spring Spotlight 2026 is live and we've rounded up the top updates for developers here → Spring Spotlight 2026 已上线，我们在此汇总了面向开发者的重要更新
- AI-Assisted Development → AI 辅助开发
- Developer MCP Server lets you build apps faster with AI coding tools like Cursor, Claude Code, and Codex → 开发者 MCP 服务器让你可以使用 Cursor、Claude Code 和 Codex 等 AI 编码工具更快地构建应用


- Modern API Infrastructure → 现代 API 基础设施
- Date-based versioned APIs and versioned docs for predictable releases → 基于日期的版本化 API 和版本化文档，确保可预测的发布周期
- MCP → MCP
- Unlock HubSpot data via the HubSpot MCP Server (remote) to connect any compatible MCP client and create custom workflows and integrations → 通过 HubSpot MCP 服务器（远程）解锁 HubSpot 数据，连接任何兼容的 MCP 客户端，创建自定义工作流程和集成
- Projects 2026.03 → Projects 2026.03
- Includes serverless functions, UI extension support, and migration from 2025.1 and 2023.2 → 包含无服务器函数、UI 扩展支持，以及从 2025.1 和 2023.2 的迁移

Wi-Fi protocols are complex technical standards. These protocols represent different generations of wireless communication technologies, each with distinct capabilities in data transmission, frequency ranges, and network performance. Understanding these standards helps optimize network infrastructure and communication strategies.

Time-related technical challenges can significantly impact system reliability. An HTTP header misconfiguration might cause time synchronization issues, potentially disrupting critical time-dependent processes.

Decimal precision in computing remains a nuanced problem. Floating-point calculations reveal fundamental challenges in representing numerical values accurately, demonstrating why precise numeric computation requires careful algorithmic approaches.

Operating system memory management involves sophisticated techniques for tracking and utilizing system resources. Page tables, Translation Lookaside Buffers, and intricate Linux kernel mechanisms play crucial roles in maintaining efficient virtual memory systems.

Regular expression parsing represents a complex computational task. Understanding how pattern matching engines interpret and execute complex search patterns requires deep technical knowledge of string processing algorithms.

System security increasingly relies on specialized hardware components like Secure Enclaves. Apple's Secure Enclave provides robust cryptographic capabilities, enabling developers to implement advanced key management strategies.

Database maintenance is critical for performance. Autovacuum processes prevent tuple accumulation, which can degrade query performance and increase storage overhead in PostgreSQL environments.

Connection pooling mechanisms help manage database load efficiently. Specialized tools like PGKeeper demonstrate innovative approaches to handling database connection scalability.

Security practices in package management require continuous attention. The OWASP NPM Security Cheat Sheet provides comprehensive guidance for developers managing JavaScript and Node.js dependencies.

Performance optimization in version control systems demands strategic approaches. Specialized documentation and optimization techniques help engineering teams maintain efficient Git workflows.

Assembly programming remains a challenging yet rewarding endeavor. Projects like MacOS Web Server written in ARM64 assembly showcase the potential for low-level system programming.

Database extensions continue to expand PostgreSQL's capabilities. Tools like Honker demonstrate innovative approaches to database messaging and event-driven architectures.

CLI tooling provides essential functionality for developers. Projects like boring simplify complex network management tasks with focused, straightforward implementations.

Performance management requires nuanced approaches. Backpressure mechanisms help developers create adaptive systems that can handle varying load conditions effectively.

HTTP benchmarking tools enable precise performance analysis. Plow represents an advanced approach to measuring and visualizing web server capabilities.

PostgreSQL optimizations continue to evolve. pg_column_tetris addresses memory efficiency challenges in database row storage.

Backup and recovery strategies remain critical. pgwrl demonstrates modern approaches to continuous PostgreSQL protection.

Database maintenance tools simplify complex operations. Leandex provides innovative solutions for managing database reindexing without disrupting production environments.

AI capabilities are transforming application development. HyperFrames enables dynamic content generation through intelligent frameworks.

PostgreSQL extension development continues to push boundaries. pg-trickle offers native scheduling mechanisms for materialized views.

Video generation technologies are evolving rapidly. Remotion provides developers with programmatic video creation capabilities.

Cloud infrastructure monitoring requires intelligent tools. trailtool streamlines CloudTrail log analysis for enhanced operational insights.

Vulnerability detection is becoming more sophisticated. redai offers AI-driven approaches to security assessment and validation.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;我们又回来了，这是另一期。我仍在努力让这份周刊恢复每周一期 :(&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请把它分享给你的朋友，让更多人知道。如果你愿意支持我的工作，请我喝杯咖啡将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/fo69mqkcnowzual2rfe8gojggqv"&gt;查看最新的 HubSpot 开发者平台春季亮点更新&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Spring Spotlight 2026 已上线，我们在此汇总了面向开发者的重要更新。&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• AI 辅助开发&lt;/span&gt;：开发者 MCP 服务器让你可以使用 Cursor、Claude Code 和 Codex 等 AI 编码工具更快地构建应用。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• 现代 API 基础设施&lt;/span&gt;：基于日期的版本化 API 和版本化文档，确保可预测的发布周期。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• MCP&lt;/span&gt;：通过 HubSpot MCP 服务器（远程）解锁 HubSpot 数据，连接任何兼容的 MCP 客户端，创建自定义工作流程和集成。&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;• Projects 2026.03&lt;/span&gt;：包含无服务器函数、UI 扩展支持，以及从 2025.1 和 2023.2 的迁移。&lt;br/&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.wiisfi.com/"&gt;理解 Wi-Fi 4/5/6/6E/7/8 (802.11 n/ac/ax/be/bn)&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解码并理解这些神秘数字背后的所有内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://alexsci.com/blog/how-time-gov-works/"&gt;一个 HTTP 头如何导致 time.gov 与 UTC 产生偏差&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在美国，国家标准与技术研究院（NIST）维护着美国官方时间参考。在一个最近的项目中，我需要一个可靠的时钟，time.gov 是一个便捷的选择。为了验证提供的参考是否准确，我在两个浏览器窗口中同时打开了 time.gov，但发现提供的时钟偏移估计值之间的差异超出了我可接受的范围。当我与其他来源进行比较时，一个 NTP 客户端，我发现了更大的分歧。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://essenceia.github.io/projects/floating_dragon"&gt;从零实现浮点数：困难模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个著名的问题。0.1 + 0.2 等于 0.30000000000000004。最好的理解方式是从头开始重新实现它们，用最困难的方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.codingconfessions.com/p/virtual-memory"&gt;虚拟内存：深入了解页表、TLB 和 Linux 内部机制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从页错误到 NUMA 拓扑：Linux 内核如何管理内存，以及这对数据密集型系统性能意味着什么&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kean.blog/post/lets-build-regex"&gt;从零构建正则引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有没有想过正则表达式底层是如何工作的？它如何理解像 "&amp;lt;\/?[\w\s]*&amp;gt;|&amp;lt;.+[\W]&amp;gt;" 这样的咒语并神奇地产生期望的结果？本系列将精确描述它的工作原理以及如何实现一个功能丰富的正则引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gist.github.com/arianvp/5f59f1783e3eaf1a2d4cd8e952bb4acf"&gt;MacOS 原生 Secure Enclave 支持的 SSH 密钥&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;MacOS Tahoe 可以生成和使用 Secure Enclave 支持的 SSH 密钥！这取代了像 &lt;a href="https://github.com/maxgoedjen/secretive"&gt;secretive&lt;/a&gt; 这样的项目&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lisyarus.github.io/blog/posts/making-your-own-programming-language.html"&gt;创建你自己的编程语言比你想象的更容易&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;大多数程序员都梦想拥有自己的完美编程语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/monitor-autovacuum-my-queries"&gt;我用来监控 autovacuum 的查询&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;没有 vacuum，deadtuple（死元组）会在 Postgres 中积累，引擎需要扫描它们并排除它们，vacuum 负责删除它们。以下是监控该过程的许多技巧和诀窍&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.figma.com/blog/pgkeeper-building-the-bouncer-we-needed-for-postgres/"&gt;PGKeeper：构建我们所需的 Postgres 连接池管理器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Figma 超越了 pgbouncer，分享了编写自己的 Postgres 连接池的经验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html"&gt;NPM 安全最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;速查表涵盖了一些 npm 安全最佳实践和生产率技巧，对 JavaScript 和 Node.js 开发者很有用。这个列表最初基于 Snyk 博客的 10 个 npm 安全最佳实践。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitperf.com/index.html"&gt;高性能 Git&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一本为需要 Git 保持快速运转的工程师编写的书，因为仓库、历史和团队都在变大：构建和 CI 工程师、单体仓库所有者、devprod 团队，以及任何需要了解超出常规四个命令之外的 Git 的人。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/imtomt/ymawky" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ywawky&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;完全用 ARM64 汇编编写的 MacOS Web 服务器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/russellromney/honker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;honker&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;SQLite 扩展 + 绑定，为 Postgres 提供 NOTIFY/LISTEN 语义，支持持久化队列、流、发布/订阅和调度器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alebeck/boring" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;boring&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的命令行 SSH 隧道管理器，简单实用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bradenaw/backpressure" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;backpressure&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于负载管理的优先级信号量/限流器/自适应节流阀。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/six-ddc/plow" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;plow&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高性能 HTTP 基准测试工具，包含实时 Web UI 和终端显示&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rogerwelin/pg_column_tetris" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_column_tetris&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 扩展，可以强制最优列对齐以最小化行填充浪费。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgrwl/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwrl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;云原生 PostgreSQL 持续备份 - WAL/基础备份流、压缩、加密、保留和监控，全部整合在一个二进制文件中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/NikolayS/leandex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;leandex&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个纯 SQL / PL/pgSQL 控制平面，用于保守式自主重建索引，遵循与 pg_ash 和 PgQue 相同的避免扩展理念。它安装到一个单独的控制数据库，通过 postgres_fdw 用户映射和 dblink 与目标数据库通信，只使用 reindex index concurrently 重建。不会在目标数据库中安装任何模式。不需要 C 扩展、不需要 shared_preload_libraries、不需要 sidecar worker、不需要重启。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hyperframes.heygen.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hyperframes&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;HyperFrames 让 AI 智能体可以通过编写 HTML、CSS 和 JS 来合成视频。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/trickle-labs/pg-trickle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg-trickle&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;你曾经需要写一些 cronjob 来刷新物化视图吗？这个工具在 Postgres 内部原生处理所有这些。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.remotion.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;remotion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 React 创建真正的 MP4 视频。参数化内容、服务端渲染并构建应用程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/engseclabs/trailtool" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trailtool&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;聚合 CloudTrail 日志以简化 AI 智能体的分析&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kpolley/redai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;redai&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于 AI 驱动漏洞发现和实时验证的终端工作台。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2026-05-11T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/284</id>
    <title>Issues #284 Mar 30, 2026 || &lt;think&gt;This appears to be a simple text containing:
1. "Issues" - possibly a heading or title
2. "#284" - a number with hash, likely referring to issue number 284
3. "Mar 30, 2026" - a date

I need to translate this into Chinese Simplified. "Issues" can be translated as "问题" or "期号" or "议题" depending on context. Given the date format and number, this looks like it could be referring to a publication issue or an issue tracking number.

Let me translate:
- Issues = 期号/问题/议题
- #284 = #284 (numbers typically remain the same)
- Mar 30, 2026 = 2026年3月30日

Given the context (seems like a document header or publication listing), "Issues" could mean "期号" (issue number) or simply be left as is. But since I should only translate, I'll use:
- 期号 #284 2026年3月30日

Or if it's referring to tracked issues: 问题 #284 2026年3月30日

Given the format with a date, this is likely a changelog, release notes, or publication reference. I'll go with "问题 #284 2026年3月30日" as it's more commonly used in software/project tracking contexts.&lt;/think&gt;

问题 #284 2026年3月30日</title>
    <updated>2026-03-30T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Trivy is a security scanner to find vulnerabilities, misconfigurations, secrets and very widely used. Imagine, &lt;a href="https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise"&gt;Trivy got under attack itself&lt;/a&gt;. Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.&lt;/p&gt;

&lt;p&gt;Then last week, &lt;a href="https://futuresearch.ai/blog/litellm-attack-transcript/"&gt;two versions of the litellm Python package on PyPI were found to contain malicious code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All of that just mean we need to be extra triple careful when dealing with any external dependenies. Any external dep is a liability. In this issue we had included 2 tools that hopefully will allow us to run those app in sandbox instead.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/m246a6fvtpqwipi7sr28azdydxl"&gt;Autonoma — AI Agents That Find Your Bugs Before Your Users Do&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Let&amp;rsquo;s be honest: your test suite is probably lying to you. You&amp;rsquo;ve got green checkmarks in CI, 80% coverage, and your last deploy still broke the checkout flow on mobile.&lt;/p&gt;

&lt;p&gt;The problem isn&amp;rsquo;t that you&amp;rsquo;re bad at testing. It&amp;rsquo;s that test maintenance is a full-time job nobody wants, and the coverage you think you have is mostly happy paths you already tested manually. Meanwhile, your users are the ones discovering the real bugs.&lt;/p&gt;

&lt;p&gt;Autonoma takes a different approach. Instead of making you write and maintain test scripts, it runs AI agents that navigate your web and mobile apps like real users: clicking through forms, testing edge cases, handling state transitions, all in parallel across hundreds of browsers and devices.&lt;/p&gt;

&lt;p&gt;The best thing? If after 30 days a bug reaches production, we will refund you the money.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.mikhe.ch/quake2-on-fpga/part4.html"&gt;My DIY FPGA board can run Quake II (part 4)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An incredible story of someone dived into electronics design with almost zero prior experience. Their goal was ambitious: build an FPGA-based device capable of booting Linux, connecting to a screen and keyboard, and allowing me to write and compile code directly on the machine itself.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://richyen.com/postgres/2026/03/23/explain_options.html"&gt;EXPLAIN's Other Superpowers&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most people who work with PostgreSQL eventually learn two commands for query tuning: EXPLAIN and EXPLAIN ANALYZE. In this post we’ll take a look at a few of those lesser-known options.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tomasz-gintowt.medium.com/postgresql-and-huge-pages-boosting-database-performance-the-right-way-32a27b25a819"&gt;PostgreSQL and Huge Pages: Boosting Database Performance the Right Way&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When you run PostgreSQL on a high-performance server with a lot of RAM, one of the most overlooked performance tunings is Huge Pages.
Understanding and configuring Huge Pages correctly can significantly improve performance, especially for databases with large shared memory requirements.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/cubbit/postgresql-wal-replication-checkpoints-6681b8e0a0f1"&gt;PostgreSQL WAL replication and Checkpoints: why they might lag and how we fixed it&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Anyone who operate Postgres with high write will need to handle and optimize WAL and AutoVacuum. We can defer these job to AI, but it&amp;rsquo;s better to understand all the knowledge.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://neon.com/blog/ctrl-c-in-psql-gives-me-the-heebie-jeebies"&gt;Ctrl-C in psql gives me the heebie-jeebies&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Whatever the reason, if you’re a psql command-line user, Ctrl-C is in your muscle memory. So now you’re looking at the words Cancel request sent, followed shortly after by the not-really-an-error message ERROR: cancelling statement due to user request. But what’s going on behind the scenes?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://netflixtechblog.com/automating-rds-postgres-to-aurora-postgres-migration-261ca045447f"&gt;Automating RDS Postgres to Aurora Postgres Migration&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In 2024, the Online Data Stores team at Netflix conducted a comprehensive review of the relational database technologies used across the company, and decide to standardize on Amazon Aurora PostgreSQL as the primary relational database offering for Netflix teams.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.openui.com/blog/rust-wasm-parser"&gt;Rewriting our Rust WASM Parser in TypeScript&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Switching from Rust to TypeScript make the code faster. Not because Rust is slow, or TypeScript is fast. But simply the code to serialize/unserialize the object back and forth when passing between both world outweight the performance gain.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/playfulprogramming/two-react-design-choices-developers-dont-like-but-cant-avoid-d6g"&gt;Two React Design Choices Developers Don’t Like—But Can’t Avoid&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers have never been shy about disliking certain React APIs. They feel awkward, restrictive, or just plain counterintuitive. But the reality is that the two most complained‑about design choices in React weren’t arbitrary at all — they were early signs of deeper constraints that every UI model eventually runs into&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://css-tricks.com/a-complete-guide-to-bookmarklets/"&gt;A Complete Guide to Bookmarklets&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagine the ability to inject the JS code, and run it on any webpage whenever you click a bookmark, and it acts on the urrent page? That&amp;rsquo;s what Bookmarklet is&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/znkr/diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;diff&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A difference algorithm module for Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kepano/defuddle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;defuddle&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Get the main content of any page as Markdown.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;drop-in replacement for Nokogiri. It&amp;rsquo;s 4.7x faster at parsing HTML and up to 1352x faster at CSS selectors.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/eugene1g/agent-safehouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agent-safehouse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Sandbox your local AI agents so they can read/write only what they need&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;edgejs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Running Node apps inside a WebAssembly Sandbox&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/RecoLabs/gnata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gnata&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pure-Go implementation of JSONata 2.x for high-throughput streaming evaluation. And the story of &lt;a href="https://www.reco.ai/blog/we-rewrote-jsonata-with-ai"&gt;re-impelment it in Go with AI saves the compnay $500k USD per year&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/secretlint/secretlint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;secretlint&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pluggable linting tool to prevent committing credential.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://codeberg.org/kdwarn/pgtui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgtui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Postgres TUI client that utilizes your terminal text editor for inserts &amp;amp; updates&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/makroumi/slowql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slowql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;SQL static analyzer for performance, security, compliance and cost. 272 rules. Completely offline. Works in CI pipelines.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_stat_ch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_stat_ch&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that captures per-query execution telemetry and exports it to ClickHouse in real-time. Unlike pg_stat_statements which aggregates statistics in PostgreSQL, pg_stat_ch exports raw events to ClickHouse where aggregation happens via ClickHouse&amp;rsquo;s powerful analytical engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/owenrumney/go-lsp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-lsp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go LSP helper library support 3.17 of the LSP specification&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content from English to Simplified Chinese. I need to:

1. Translate all the visible text content while preserving HTML structure
2. Keep all the HTML tags and attributes intact
3. Preserve paragraph breaks
4. Handle the special case where class="notranslate" translate="no" is set - this indicates content that should not be translated
5. Return only the translations without explanations

Let me go through and translate:

1. Title: "Better Dev Link - Resource around the web on becoming a better programmer" → "Better Dev Link - 关于成为更好的程序员的网络资源"

2. "Hi all," → "大家好，"

3. "Trivy is a security scanner..." paragraph about Trivy attack

4. The paragraph with class="notranslate" translate="no" - this should NOT be translated

5. "All of that just mean..." paragraph

6. Share/support paragraph

7. Link titles and descriptions

8. "Code to read" section

9. "Tools" section

Let me translate carefully:&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 关于成为更好的程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;Trivy 是一款用于发现漏洞、配置错误和敏感信息的安 全扫描器，被广泛使用。然而，想象一下，&lt;a href="https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise"&gt;Trivy 本身遭到了攻击&lt;/a&gt;。攻击者通过强制更新标签来入侵 Trivy 的 GitHub Actions，以投放恶意软件，暴露了受影响 CI/CD 流水线中的敏感信息。&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;Then last week, &lt;a href="https://futuresearch.ai/blog/litellm-attack-transcript/"&gt;two versions of the litellm Python package on PyPI were found to contain malicious code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;所有这些都意味着我们在处理任何外部依赖时需要格外、格外小心。任何外部依赖都是一种风险。在本期内容中，我们收录了 2 个工具，希望能让我们在沙箱中运行这些应用。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/m246a6fvtpqwipi7sr28azdydxl"&gt;Autonoma — 在用户发现之前就找到 Bug 的 AI 代理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;实话实说：你的测试套件可能在骗你。你的 CI 上有绿色的勾，80% 的覆盖率，但你上次部署还是在移动端搞坏了结账流程。&lt;/p&gt;
&lt;p&gt;问题不在于你不会测试，而在于测试维护是一项没人想做的全职工作，而你以为拥有的覆盖率大多数只是你已经手动测试过的 happy path。与此同时，你的用户才是发现真正 bug 的人。&lt;/p&gt;
&lt;p&gt;Autonoma 采取了不同的方法。它不是让你编写和维护测试脚本，而是运行 AI 代理，像真实用户一样导航你的 Web 和移动应用：点击表单、测试边界情况、处理状态转换，全部并行运行在数百个浏览器和设备上。&lt;/p&gt;
&lt;p&gt;最棒的是什么？如果 30 天后仍有 bug 进入生产环境，我们会退款给你。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.mikhe.ch/quake2-on-fpga/part4.html"&gt;我的 DIY FPGA 板子能运行《雷神之锤 II》（第 4 部分）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个难以置信的故事，讲述了一个几乎没有先验经验的人深入电子设计领域。他们的目标雄心勃勃：构建一个基于 FPGA 的设备，能够启动 Linux、连接屏幕和键盘，并允许我直接在机器上编写和编译代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://richyen.com/postgres/2026/03/23/explain_options.html"&gt;EXPLAIN 的其他超能力&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;大多数使用 PostgreSQL 的人最终会学习两个用于查询调优的命令：EXPLAIN 和 EXPLAIN ANALYZE。在这篇文章中，我们将了解一些鲜为人知的选项。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tomasz-gintowt.medium.com/postgresql-and-huge-pages-boosting-database-performance-the-right-way-32a27b25a819"&gt;PostgreSQL 与大页：正确提升数据库性能的方式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当你在具有大量 RAM 的高性能服务器上运行 PostgreSQL 时，最容易被忽视的性能调优之一就是大页（Huge Pages）。正确理解和配置大页可以显著提升性能，尤其是对于有大量共享内存需求的数据库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/cubbit/postgresql-wal-replication-checkpoints-6681b8e0a0f1"&gt;PostgreSQL WAL 复制和检查点：为什么它们可能会延迟以及我们如何解决&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;任何在高写入环境下运行 Postgres 的人都需要处理和优化 WAL 和 AutoVacuum。我们可以把这些工作交给 AI，但最好还是理解所有的知识。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://neon.com/blog/ctrl-c-in-psql-gives-me-the-heebie-jeebies"&gt;psql 中的 Ctrl-C 让我毛骨悚然&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;不管出于什么原因，如果你是一个 psql 命令行用户，Ctrl-C 已经成为了你的肌肉记忆。所以现在你看到的是 "Cancel request sent" 这几个字，随后很快就会出现一个其实不算真正错误的提示：ERROR: cancelling statement due to user request。但幕后究竟发生了什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://netflixtechblog.com/automating-rds-postgres-to-aurora-postgres-migration-261ca045447f"&gt;自动化 RDS Postgres 到 Aurora Postgres 迁移&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;2024 年，Netflix 的在线数据存储团队对公司使用的关系型数据库技术进行了全面审查，并决定将 Amazon Aurora PostgreSQL 作为 Netflix 团队的主要关系型数据库产品进行标准化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.openui.com/blog/rust-wasm-parser"&gt;用 TypeScript 重写我们的 Rust WASM 解析器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从 Rust 切换到 TypeScript 让代码变得更快。这不是因为 Rust 慢，也不是因为 TypeScript 快。而是因为在两个世界之间来回序列化/反序列化对象所涉及的代码量超过了获得的性能提升。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/playfulprogramming/two-react-design-choices-developers-dont-like-but-cant-avoid-d6g"&gt;开发者不喜欢的两个 React 设计选择——但无法避免&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者从来不羞于表达对某些 React API 的厌恶。它们让人感觉别扭、受限，或者就是违背直觉。但现实是，React 中两个被抱怨最多的设计选择并非任意为之——它们是每个 UI 模型最终都会遇到的更深层约束的早期信号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://css-tricks.com/a-complete-guide-to-bookmarklets/"&gt;书签小程序完全指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;想象一下，能够注入 JS 代码，并在每次点击书签时在任意网页上运行它，而且它会在当前页面执行操作？这就是书签小程序（Bookmarklet）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;代码阅读&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/znkr/diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;diff&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 的差异化算法模块&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kepano/defuddle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;defuddle&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将任意页面的主要内容提取为 Markdown。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Nokogiri 的直接替代品。在解析 HTML 时快 4.7 倍，在 CSS 选择器上快达 1352 倍。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/eugene1g/agent-safehouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agent-safehouse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;为你的本地 AI 代理创建沙箱，使其只能读写需要的内容&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;edgejs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在 WebAssembly 沙箱中运行 Node 应用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/RecoLabs/gnata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gnata&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;纯 Go 实现的 JSONata 2.x，用于高吞吐量流式求值。还有&lt;a href="https://www.reco.ai/blog/we-rewrote-jsonata-with-ai"&gt;用 AI 用 Go 重写它为公司每年节省 50 万美元&lt;/a&gt;的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/secretlint/secretlint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;secretlint&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可插拔的 linting 工具，用于防止提交凭证。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/kdwarn/pgtui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgtui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres TUI 客户端，利用你的终端文本编辑器进行插入和更新操作&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/makroumi/slowql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slowql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于性能、安全、合规和成本的 SQL 静态分析器。272 条规则。完全离线运行。可在 CI 流水线中使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_stat_ch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_stat_ch&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 扩展，捕获每个查询的执行遥测数据并实时导出到 ClickHouse。与在 PostgreSQL 中聚合统计数据的 pg_stat_statements 不同，pg_stat_ch 将原始事件导出到 ClickHouse，在那里通过 ClickHouse 强大的分析引擎进行聚合。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/owenrumney/go-lsp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-lsp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;支持 LSP 规范 3.17 版本的 Go LSP 辅助库&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/284"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Trivy is a security scanner to find vulnerabilities, misconfigurations, secrets and very widely used. Imagine, &lt;a href="https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise"&gt;Trivy got under attack itself&lt;/a&gt;. Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.&lt;/p&gt;

&lt;p&gt;Then last week, &lt;a href="https://futuresearch.ai/blog/litellm-attack-transcript/"&gt;two versions of the litellm Python package on PyPI were found to contain malicious code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All of that just mean we need to be extra triple careful when dealing with any external dependenies. Any external dep is a liability. In this issue we had included 2 tools that hopefully will allow us to run those app in sandbox instead.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/m246a6fvtpqwipi7sr28azdydxl"&gt;Autonoma — AI Agents That Find Your Bugs Before Your Users Do&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Let&amp;rsquo;s be honest: your test suite is probably lying to you. You&amp;rsquo;ve got green checkmarks in CI, 80% coverage, and your last deploy still broke the checkout flow on mobile.&lt;/p&gt;

&lt;p&gt;The problem isn&amp;rsquo;t that you&amp;rsquo;re bad at testing. It&amp;rsquo;s that test maintenance is a full-time job nobody wants, and the coverage you think you have is mostly happy paths you already tested manually. Meanwhile, your users are the ones discovering the real bugs.&lt;/p&gt;

&lt;p&gt;Autonoma takes a different approach. Instead of making you write and maintain test scripts, it runs AI agents that navigate your web and mobile apps like real users: clicking through forms, testing edge cases, handling state transitions, all in parallel across hundreds of browsers and devices.&lt;/p&gt;

&lt;p&gt;The best thing? If after 30 days a bug reaches production, we will refund you the money.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.mikhe.ch/quake2-on-fpga/part4.html"&gt;My DIY FPGA board can run Quake II (part 4)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An incredible story of someone dived into electronics design with almost zero prior experience. Their goal was ambitious: build an FPGA-based device capable of booting Linux, connecting to a screen and keyboard, and allowing me to write and compile code directly on the machine itself.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://richyen.com/postgres/2026/03/23/explain_options.html"&gt;EXPLAIN's Other Superpowers&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most people who work with PostgreSQL eventually learn two commands for query tuning: EXPLAIN and EXPLAIN ANALYZE. In this post we’ll take a look at a few of those lesser-known options.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tomasz-gintowt.medium.com/postgresql-and-huge-pages-boosting-database-performance-the-right-way-32a27b25a819"&gt;PostgreSQL and Huge Pages: Boosting Database Performance the Right Way&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When you run PostgreSQL on a high-performance server with a lot of RAM, one of the most overlooked performance tunings is Huge Pages.
Understanding and configuring Huge Pages correctly can significantly improve performance, especially for databases with large shared memory requirements.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/cubbit/postgresql-wal-replication-checkpoints-6681b8e0a0f1"&gt;PostgreSQL WAL replication and Checkpoints: why they might lag and how we fixed it&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Anyone who operate Postgres with high write will need to handle and optimize WAL and AutoVacuum. We can defer these job to AI, but it&amp;rsquo;s better to understand all the knowledge.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://neon.com/blog/ctrl-c-in-psql-gives-me-the-heebie-jeebies"&gt;Ctrl-C in psql gives me the heebie-jeebies&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Whatever the reason, if you’re a psql command-line user, Ctrl-C is in your muscle memory. So now you’re looking at the words Cancel request sent, followed shortly after by the not-really-an-error message ERROR: cancelling statement due to user request. But what’s going on behind the scenes?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://netflixtechblog.com/automating-rds-postgres-to-aurora-postgres-migration-261ca045447f"&gt;Automating RDS Postgres to Aurora Postgres Migration&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In 2024, the Online Data Stores team at Netflix conducted a comprehensive review of the relational database technologies used across the company, and decide to standardize on Amazon Aurora PostgreSQL as the primary relational database offering for Netflix teams.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.openui.com/blog/rust-wasm-parser"&gt;Rewriting our Rust WASM Parser in TypeScript&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Switching from Rust to TypeScript make the code faster. Not because Rust is slow, or TypeScript is fast. But simply the code to serialize/unserialize the object back and forth when passing between both world outweight the performance gain.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/playfulprogramming/two-react-design-choices-developers-dont-like-but-cant-avoid-d6g"&gt;Two React Design Choices Developers Don’t Like—But Can’t Avoid&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers have never been shy about disliking certain React APIs. They feel awkward, restrictive, or just plain counterintuitive. But the reality is that the two most complained‑about design choices in React weren’t arbitrary at all — they were early signs of deeper constraints that every UI model eventually runs into&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://css-tricks.com/a-complete-guide-to-bookmarklets/"&gt;A Complete Guide to Bookmarklets&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagine the ability to inject the JS code, and run it on any webpage whenever you click a bookmark, and it acts on the urrent page? That&amp;rsquo;s what Bookmarklet is&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/znkr/diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;diff&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A difference algorithm module for Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kepano/defuddle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;defuddle&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Get the main content of any page as Markdown.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;drop-in replacement for Nokogiri. It&amp;rsquo;s 4.7x faster at parsing HTML and up to 1352x faster at CSS selectors.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/eugene1g/agent-safehouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agent-safehouse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Sandbox your local AI agents so they can read/write only what they need&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;edgejs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Running Node apps inside a WebAssembly Sandbox&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/RecoLabs/gnata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gnata&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pure-Go implementation of JSONata 2.x for high-throughput streaming evaluation. And the story of &lt;a href="https://www.reco.ai/blog/we-rewrote-jsonata-with-ai"&gt;re-impelment it in Go with AI saves the compnay $500k USD per year&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/secretlint/secretlint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;secretlint&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pluggable linting tool to prevent committing credential.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://codeberg.org/kdwarn/pgtui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgtui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Postgres TUI client that utilizes your terminal text editor for inserts &amp;amp; updates&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/makroumi/slowql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slowql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;SQL static analyzer for performance, security, compliance and cost. 272 rules. Completely offline. Works in CI pipelines.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_stat_ch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_stat_ch&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that captures per-query execution telemetry and exports it to ClickHouse in real-time. Unlike pg_stat_statements which aggregates statistics in PostgreSQL, pg_stat_ch exports raw events to ClickHouse where aggregation happens via ClickHouse&amp;rsquo;s powerful analytical engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/owenrumney/go-lsp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-lsp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go LSP helper library support 3.17 of the LSP specification&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content from English to Simplified Chinese. I need to:

1. Translate all the visible text content while preserving HTML structure
2. Keep all the HTML tags and attributes intact
3. Preserve paragraph breaks
4. Handle the special case where class="notranslate" translate="no" is set - this indicates content that should not be translated
5. Return only the translations without explanations

Let me go through and translate:

1. Title: "Better Dev Link - Resource around the web on becoming a better programmer" → "Better Dev Link - 关于成为更好的程序员的网络资源"

2. "Hi all," → "大家好，"

3. "Trivy is a security scanner..." paragraph about Trivy attack

4. The paragraph with class="notranslate" translate="no" - this should NOT be translated

5. "All of that just mean..." paragraph

6. Share/support paragraph

7. Link titles and descriptions

8. "Code to read" section

9. "Tools" section

Let me translate carefully:&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 关于成为更好的程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;Trivy 是一款用于发现漏洞、配置错误和敏感信息的安 全扫描器，被广泛使用。然而，想象一下，&lt;a href="https://socket.dev/blog/trivy-under-attack-again-github-actions-compromise"&gt;Trivy 本身遭到了攻击&lt;/a&gt;。攻击者通过强制更新标签来入侵 Trivy 的 GitHub Actions，以投放恶意软件，暴露了受影响 CI/CD 流水线中的敏感信息。&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;Then last week, &lt;a href="https://futuresearch.ai/blog/litellm-attack-transcript/"&gt;two versions of the litellm Python package on PyPI were found to contain malicious code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;所有这些都意味着我们在处理任何外部依赖时需要格外、格外小心。任何外部依赖都是一种风险。在本期内容中，我们收录了 2 个工具，希望能让我们在沙箱中运行这些应用。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/m246a6fvtpqwipi7sr28azdydxl"&gt;Autonoma — 在用户发现之前就找到 Bug 的 AI 代理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;实话实说：你的测试套件可能在骗你。你的 CI 上有绿色的勾，80% 的覆盖率，但你上次部署还是在移动端搞坏了结账流程。&lt;/p&gt;
&lt;p&gt;问题不在于你不会测试，而在于测试维护是一项没人想做的全职工作，而你以为拥有的覆盖率大多数只是你已经手动测试过的 happy path。与此同时，你的用户才是发现真正 bug 的人。&lt;/p&gt;
&lt;p&gt;Autonoma 采取了不同的方法。它不是让你编写和维护测试脚本，而是运行 AI 代理，像真实用户一样导航你的 Web 和移动应用：点击表单、测试边界情况、处理状态转换，全部并行运行在数百个浏览器和设备上。&lt;/p&gt;
&lt;p&gt;最棒的是什么？如果 30 天后仍有 bug 进入生产环境，我们会退款给你。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.mikhe.ch/quake2-on-fpga/part4.html"&gt;我的 DIY FPGA 板子能运行《雷神之锤 II》（第 4 部分）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个难以置信的故事，讲述了一个几乎没有先验经验的人深入电子设计领域。他们的目标雄心勃勃：构建一个基于 FPGA 的设备，能够启动 Linux、连接屏幕和键盘，并允许我直接在机器上编写和编译代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://richyen.com/postgres/2026/03/23/explain_options.html"&gt;EXPLAIN 的其他超能力&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;大多数使用 PostgreSQL 的人最终会学习两个用于查询调优的命令：EXPLAIN 和 EXPLAIN ANALYZE。在这篇文章中，我们将了解一些鲜为人知的选项。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tomasz-gintowt.medium.com/postgresql-and-huge-pages-boosting-database-performance-the-right-way-32a27b25a819"&gt;PostgreSQL 与大页：正确提升数据库性能的方式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当你在具有大量 RAM 的高性能服务器上运行 PostgreSQL 时，最容易被忽视的性能调优之一就是大页（Huge Pages）。正确理解和配置大页可以显著提升性能，尤其是对于有大量共享内存需求的数据库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/cubbit/postgresql-wal-replication-checkpoints-6681b8e0a0f1"&gt;PostgreSQL WAL 复制和检查点：为什么它们可能会延迟以及我们如何解决&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;任何在高写入环境下运行 Postgres 的人都需要处理和优化 WAL 和 AutoVacuum。我们可以把这些工作交给 AI，但最好还是理解所有的知识。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://neon.com/blog/ctrl-c-in-psql-gives-me-the-heebie-jeebies"&gt;psql 中的 Ctrl-C 让我毛骨悚然&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;不管出于什么原因，如果你是一个 psql 命令行用户，Ctrl-C 已经成为了你的肌肉记忆。所以现在你看到的是 "Cancel request sent" 这几个字，随后很快就会出现一个其实不算真正错误的提示：ERROR: cancelling statement due to user request。但幕后究竟发生了什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://netflixtechblog.com/automating-rds-postgres-to-aurora-postgres-migration-261ca045447f"&gt;自动化 RDS Postgres 到 Aurora Postgres 迁移&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;2024 年，Netflix 的在线数据存储团队对公司使用的关系型数据库技术进行了全面审查，并决定将 Amazon Aurora PostgreSQL 作为 Netflix 团队的主要关系型数据库产品进行标准化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.openui.com/blog/rust-wasm-parser"&gt;用 TypeScript 重写我们的 Rust WASM 解析器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从 Rust 切换到 TypeScript 让代码变得更快。这不是因为 Rust 慢，也不是因为 TypeScript 快。而是因为在两个世界之间来回序列化/反序列化对象所涉及的代码量超过了获得的性能提升。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/playfulprogramming/two-react-design-choices-developers-dont-like-but-cant-avoid-d6g"&gt;开发者不喜欢的两个 React 设计选择——但无法避免&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者从来不羞于表达对某些 React API 的厌恶。它们让人感觉别扭、受限，或者就是违背直觉。但现实是，React 中两个被抱怨最多的设计选择并非任意为之——它们是每个 UI 模型最终都会遇到的更深层约束的早期信号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://css-tricks.com/a-complete-guide-to-bookmarklets/"&gt;书签小程序完全指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;想象一下，能够注入 JS 代码，并在每次点击书签时在任意网页上运行它，而且它会在当前页面执行操作？这就是书签小程序（Bookmarklet）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;代码阅读&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/znkr/diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;diff&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 的差异化算法模块&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kepano/defuddle" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;defuddle&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将任意页面的主要内容提取为 Markdown。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Nokogiri 的直接替代品。在解析 HTML 时快 4.7 倍，在 CSS 选择器上快达 1352 倍。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/eugene1g/agent-safehouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agent-safehouse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;为你的本地 AI 代理创建沙箱，使其只能读写需要的内容&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;edgejs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在 WebAssembly 沙箱中运行 Node 应用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/RecoLabs/gnata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gnata&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;纯 Go 实现的 JSONata 2.x，用于高吞吐量流式求值。还有&lt;a href="https://www.reco.ai/blog/we-rewrote-jsonata-with-ai"&gt;用 AI 用 Go 重写它为公司每年节省 50 万美元&lt;/a&gt;的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/secretlint/secretlint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;secretlint&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可插拔的 linting 工具，用于防止提交凭证。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/kdwarn/pgtui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgtui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres TUI 客户端，利用你的终端文本编辑器进行插入和更新操作&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/makroumi/slowql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slowql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于性能、安全、合规和成本的 SQL 静态分析器。272 条规则。完全离线运行。可在 CI 流水线中使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_stat_ch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_stat_ch&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 扩展，捕获每个查询的执行遥测数据并实时导出到 ClickHouse。与在 PostgreSQL 中聚合统计数据的 pg_stat_statements 不同，pg_stat_ch 将原始事件导出到 ClickHouse，在那里通过 ClickHouse 强大的分析引擎进行聚合。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/owenrumney/go-lsp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-lsp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;支持 LSP 规范 3.17 版本的 Go LSP 辅助库&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2026-03-30T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/283</id>
    <title>Issues #283 Dec 15, 2025 || &lt;think&gt;The user wants me to translate "Issues #283 Dec 15, 2025" into Chinese Simplified.

"Issues #283" is a heading or issue number reference. 
"Dec 15, 2025" is a date.

Translation:
- Issues = 问题 / 期次 / 期刊
- #283 = #283
- Dec 15, 2025 = 2025年12月15日

Depending on context, "Issues" could mean:
- If it's a magazine/periodical: 期 / 第283期
- If it's a software/project issue tracker: 问题
- If it's a general term: 问题

Given the format (Issues #283 and a specific date), this seems like either:
1. A periodical/magazine issue
2. An issue tracker entry

For a magazine/periodical: 第283期 2025年12月15日
For an issue tracker: 问题 #283 2025年12月15日

I'll provide a straightforward translation. Given the structure, this looks like it could be a periodical or release notes, so I'll use the periodical format.&lt;/think&gt;

第283期 2025年12月15日</title>
    <updated>2025-12-15T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Merry Christmas everyone. It&amp;rsquo;s the end of years, take sometime off and enjoy the season.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/lq0ijqet0zw1vsbofyk9sbxqc2h"&gt;What Actually Moved the Needle for Engineering Leaders in 2025 — With Salesforce, Snyk, Port &amp;amp; Qodo&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;What&amp;rsquo;s actually working for engineering teams — and what&amp;rsquo;s not? Hear from Benjamin Stice (Salesforce VP Engineering), Clinton Herget (Snyk Field CTO), Yonatan Boguslavsky (Port CTO), and Dedy Kredo (Qodo Co-Founder) in this candid panel discussion. Three fast, honest segments: What we&amp;rsquo;re leaving behind: practices, tools, or org habits that no longer serve the team (and how we&amp;rsquo;re unwinding them without chaos). What we&amp;rsquo;re doubling down on: the investments that produced real outcomes in quality, delivery, and developer experience, and how we&amp;rsquo;re scaling them. What we&amp;rsquo;re betting on next: the experiments and measured risks we&amp;rsquo;ll run in 2026 to meet reliability, security, and growth goals. No platitudes. Just real lessons from leaders who&amp;rsquo;ve steered teams through a year of AI transformation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://authress.io/knowledge-base/articles/2025/11/01/how-we-prevent-aws-downtime-impacts"&gt;How when AWS was down, we were not&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;One of the most massive AWS incidents transpired on October 20th. The long story short is that the DNS for DynamoDB was impacted for us-east-1, which created a health event for the entire region. It&amp;rsquo;s the worst incident we&amp;rsquo;ve seen in a decade. authress shares with us how they maintain a high SLI to match our SLA reliability commitment even when the infrastructure and services we use don&amp;rsquo;t.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jax-ml.github.io/scaling-book/gpus/"&gt;How to Think About GPUs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Part 12 of &amp;ldquo;How to Scale Your Model&amp;rdquo;, an free ebook that aim to demystify the science of scaling language models: how TPUs (and GPUs) work and how they communicate with each other, how LLMs run on real hardware, and how to parallelize your models during training and inference so they run efficiently at massive scale.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go"&gt;How Memory Maps (mmap) Deliver 25x Faster File Access in Go&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Memory maps are a modern Unix mechanism where you can take a file and make it part of the virtual memory. In Unix context, modern means that it was introduced in the 1980s or later. You have a file, containing data, you mmap it and you&amp;rsquo;ll get a pointer to where this resides. Now, instead of seeking and reading, you just read from this pointer, adjusting the offset to get to the right data.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eli.thegreenplace.net/2025/bloom-filters"&gt;Bloom filters&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The original motivation for the creation of Bloom filters is efficient set membership, using a probabilistic approach to significantly reduce the time and space required to reject items that are not members in a certain set.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ochagavia.nl/blog/what-the-heck-is-aead-again"&gt;What the heck is AEAD again&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;It stands for “Authenticated Encryption with Associated Data” but if you are struggling to remember what is it. This post sumarize nicely.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kb.databasedesignbook.com/posts/sql-joins/"&gt;sql joins&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are many SQL JOINs guides and tutorials, but this one takes a different approach. We try to avoid misleading wording and imagery, and we structure the material in a different way. The goal of this article is to clarify your mental model&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/postgres-scan-types-in-explain-plans"&gt;Postgres Scan Types in EXPLAIN Plans&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The secret to unlocking performance gains often lies not just in what you ask in a query, but in how Postgres finds the answer. The Postgres EXPLAIN system is great for understanding how data is being queried. One of secretes to reading EXPLAIN plans is understanding the type of scan done to retrieve the data. The scan type can be the difference between a lightning-fast response or a slow quey&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://addyo.substack.com/p/21-lessons-from-14-years-at-google"&gt;21 Lessons from 14 Years at Google&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Addy Osmani is a legendary engineer. In his own words: &amp;ldquo;When I joined Google ~14 years ago, I thought the job was about writing great code. I was partly right. But the longer I’ve stayed, the more I’ve realized that the engineers who thrive aren’t necessarily the best programmers - they’re the ones who’ve figured out how to navigate everything around the code: the people, the politics, the alignment, the ambiguity.&amp;rdquo;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://calendar.perfplanet.com/2025/the-anatomy-of-a-web-performance-report/"&gt;The Anatomy of a Web Performance Report&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebPerformance Report was designed around that principle. Although its underlying data comes from automated performance tests, the report itself is intentionally high-level. It is structured to help anyone, developers, designers, marketers, and executives, understand what happened, why it matters, and where the opportunities lie.
This article walks through the anatomy of a Web Performance Report, explaining each section, why it exists, and what decisions it enables.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.maxdesign.com.au/articles/two-trees.html"&gt;Did you know your browser has two accessibility trees?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;To implement accessibility, Chrome has this pipeline
DOM mutation -&amp;gt; AXEvent -&amp;gt; Accessibility tree -&amp;gt; OS accessibility API -&amp;gt; Screen reader. But  here’s the strange part: Chrome doesn’t have one accessibility tree, it has two. This article traces the full lifecycle of an accessibility event. From the moment the DOM changes, through Blink’s internal systems, through its internal accessibility tree, and finally back out into the BrowserAccessibility tree that screen readers query.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/basecamp/fizzy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fizzy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;37signals release this kanban style app. A good opportunity to dive into the source and see how DHH write user facing code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/williamtroup/Heat.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Heat.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/steveiliop56/tinyauth" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tinyauth&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The simplest way to protect your apps with a login screen.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nathan-barry/tiny-diffusion/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-diffusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A character-level language diffusion model trained on Tiny Shakespeare&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ringtailsoftware/uvm32" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;uvm32&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimalist, dependency-free virtual machine sandbox for microcontrollers and other resource-constrained devices. Single C file, no dynamic memory allocations, asynchronous design, pure C99&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/domcyrus/rustnet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rustnet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A cross-platform network monitoring terminal UI tool built with Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://driverjs.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;driverjs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Lightweight JavaScript library for product tours, highlights, and contextual help to guide users through your product&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/KoljaB/RealtimeVoiceChat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;RealtimeVoiceChat&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This project lets you chat with a Large Language Model (LLM) using just your voice, receiving spoken responses in near real-time. Think of it as your own digital conversation partner.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gavrielc/Nano-PDF" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Nano-PDF&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Edit PDF files with Nano Banana&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MartenBE/mkslides" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mkslides&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Use mkslides to easily turn markdown files into beautiful slides using the power of Reveal.js!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://dbdock.mintlify.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dbdock&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Enterprise-grade PostgreSQL backup and restore. Beautiful CLI with real-time progress tracking.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://temboard.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termboard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;powerful management tool for PostgreSQL. You can use it to monitor, optimize or configure multiple PostgreSQL instances.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_clickhouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_clickhouse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Interfaces to query ClickHouse databases from PostgreSQL&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/tiny-craft/tiny-rdm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-rdm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;(Tiny Redis Desktop Manager) - A modern, colorful, super lightweight Redis GUI client for Mac, Windows, and Linux.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate the given HTML content to Simplified Chinese. I need to translate all the text content while preserving the HTML structure. Let me go through the content and translate it carefully.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源精选&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;祝大家圣诞快乐。年末将至，抽出时间休息一下，享受这个季节吧。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/lq0ijqet0zw1vsbofyk9sbxqc2h"&gt;2025年工程领导者真正推动了什么——Salesforce、Snyk、Port 和 Qodo 的分享&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;工程团队中真正有效的方案是什么——什么又无效？听听 Benjamin Stice（Salesforce 工程副总裁）、Clinton Herget（Snyk 现场 CTO）、Yonatan Boguslavsky（Port CTO）和 Dedy Kredo（Qodo 联合创始人）的坦诚对话。三个快速、真实的环节：我们正在放弃什么：不再为团队服务的实践、工具或组织习惯（以及我们如何在不造成混乱的情况下逐步淘汰它们）。我们正在加倍投入什么：那些在质量、交付和开发者体验方面产生了实际成果的投资，以及我们如何扩大它们的规模。我们押注于什么：为了实现可靠性、安全性和增长目标，我们将在 2026 年进行的实验和有衡量的风险尝试。没有空洞的说辞，只有经历过 AI 转型一年的领导者们的真实经验教训。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://authress.io/knowledge-base/articles/2025/11/01/how-we-prevent-aws-downtime-impacts"&gt;当 AWS 宕机时，我们为什么没有&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;最严重的一次 AWS 事故发生在 10 月 20 日。简而言之，DynamoDB 的 DNS 受到了影响，波及 us-east-1 区域，导致整个区域产生健康事件。这是我们十年来遇到的最严重的事故。authress 将分享他们如何在所使用的基础设施和服务出现问题时，仍能保持高 SLI 以匹配 SLA 可靠性承诺。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jax-ml.github.io/scaling-book/gpus/"&gt;如何理解 GPU&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;《如何扩展你的模型》第 12 部分，这是一本旨在揭开扩展语言模型科学奥秘的免费电子书：TPU（和 GPU）如何工作以及它们如何相互通信，LLM 如何在真实硬件上运行，以及如何在训练和推理期间并行化模型以使其在大规模时高效运行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go"&gt;内存映射（mmap）如何在 Go 中实现 25 倍更快的文件访问&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;内存映射是一种现代 Unix 机制，你可以将文件作为虚拟内存的一部分。在 Unix 环境中，"现代"意味着它在 1980 年代或更晚引入。你有一个包含数据的文件，你 mmap 它，你会得到一个指向它所在位置的指针。现在，你不再需要寻址和读取，只需从这个指针读取数据，调整偏移量以获取正确的数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eli.thegreenplace.net/2025/bloom-filters"&gt;布隆过滤器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;布隆过滤器创建的原始动机是高效的集合成员判定，使用概率方法显著减少拒绝不属于某个集合的元素所需的时间和空间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ochagavia.nl/blog/what-the-heck-is-aead-again"&gt;AEAD 到底是什么&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;它代表"带关联数据的认证加密"，但如果你正在努力记住它是什么，这篇文章很好地总结了它。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kb.databasedesignbook.com/posts/sql-joins/"&gt;SQL JOIN 详解&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有很多 SQL JOIN 指南和教程，但这篇采取了不同的方法。我们尽量避免误导性的措辞和图片，并以不同的方式组织材料。本文的目标是理清你的心智模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/postgres-scan-types-in-explain-plans"&gt;EXPLAIN 计划中的 PostgreSQL 扫描类型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解锁性能提升的秘密往往不仅在于你在查询中问什么，还在于 PostgreSQL 如何找到答案。PostgreSQL 的 EXPLAIN 系统对于理解数据如何被查询非常有用。解读 EXPLAIN 计划的一个秘诀是理解用于检索数据的扫描类型。扫描类型可能决定是闪电般的快速响应还是缓慢的查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://addyo.substack.com/p/21-lessons-from-14-years-at-google"&gt;在 Google 14 年的 21 条经验教训&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Addy Osmani 是一位传奇工程师。用他自己的话说："当我大约 14 年前加入 Google 时，我以为这份工作就是编写优秀的代码。我只对了一部分。但我在公司待得越久，我就越意识到那些成功的工程师不一定是最优秀的程序员——他们是那些弄清楚如何驾驭代码周围一切的人：人际关系、政治、共识、模糊性。"&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://calendar.perfplanet.com/2025/the-anatomy-of-a-web-performance-report/"&gt;网络性能报告的组成结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebPerformance 报告的设计基于这个原则。虽然其底层数据来自自动化性能测试，但报告本身是有意的高级设计。它的结构是为了帮助任何人——开发者、设计师、营销人员和高管——理解发生了什么、为什么重要、以及机会在哪里。本文将带你了解 Web Performance 报告的结构，解释每个部分、为什么存在，以及它支持什么决策。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.maxdesign.com.au/articles/two-trees.html"&gt;你知道你的浏览器有两个无障碍树吗？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为了实现无障碍功能，Chrome 有这条处理流水线：DOM 变更 -&gt; AXEvent -&gt; 无障碍树 -&gt; OS 无障碍 API -&gt; 屏幕阅读器。但这里有个奇怪的部分：Chrome 不是一个无障碍树，而是有两个。本文追踪了一个无障碍事件的完整生命周期。从 DOM 变化的时刻开始，通过 Blink 的内部系统，通过其内部无障碍树，最后回到屏幕阅读器查询的 BrowserAccessibility 树。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/basecamp/fizzy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fizzy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;37signals 发布的看板风格应用。这是一个深入源码的好机会，看看 DHH 如何编写面向用户的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/williamtroup/Heat.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Heat.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级 JavaScript 库，用于生成可定制的热力图、图表和统计数据，以可视化基于日期的活动和趋势。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/steveiliop56/tinyauth" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tinyauth&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用登录屏幕保护你的应用的最简单方法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nathan-barry/tiny-diffusion/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-diffusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个在 Tiny Shakespeare 上训练的角色级语言扩散模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ringtailsoftware/uvm32" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;uvm32&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;面向微控制器和其他资源受限设备的极简、无依赖的虚拟机沙箱。单文件 C 代码，无动态内存分配，异步设计，纯 C99。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/domcyrus/rustnet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rustnet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Rust 构建的跨平台网络监控终端 UI 工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://driverjs.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;driverjs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻量级 JavaScript 库，用于产品导览、高亮显示和情境帮助，引导用户了解你的产品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/KoljaB/RealtimeVoiceChat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;RealtimeVoiceChat&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这个项目让你可以用语音与大型语言模型（LLM）交流，近实时地接收语音回复。可以把它想象成你自己的数字对话伙伴。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gavrielc/Nano-PDF" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Nano-PDF&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 Nano Banana 编辑 PDF 文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MartenBE/mkslides" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mkslides&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用 mkslides 轻松将 markdown 文件转换成精美的幻灯片，利用 Reveal.js 的强大功能！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dbdock.mintlify.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dbdock&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;企业级 PostgreSQL 备份和恢复。美观命令行界面，实时进度跟踪。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://temboard.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termboard&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;强大的 PostgreSQL 管理工具。你可以用它来监控、优化或配置多个 PostgreSQL 实例。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_clickhouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_clickhouse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从 PostgreSQL 查询 ClickHouse 数据库的接口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tiny-craft/tiny-rdm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-rdm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;（Tiny Redis Desktop Manager）——一款现代、色彩丰富、超轻量的 Redis 图形客户端，支持 Mac、Windows 和 Linux。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/283"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Merry Christmas everyone. It&amp;rsquo;s the end of years, take sometime off and enjoy the season.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/lq0ijqet0zw1vsbofyk9sbxqc2h"&gt;What Actually Moved the Needle for Engineering Leaders in 2025 — With Salesforce, Snyk, Port &amp;amp; Qodo&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;What&amp;rsquo;s actually working for engineering teams — and what&amp;rsquo;s not? Hear from Benjamin Stice (Salesforce VP Engineering), Clinton Herget (Snyk Field CTO), Yonatan Boguslavsky (Port CTO), and Dedy Kredo (Qodo Co-Founder) in this candid panel discussion. Three fast, honest segments: What we&amp;rsquo;re leaving behind: practices, tools, or org habits that no longer serve the team (and how we&amp;rsquo;re unwinding them without chaos). What we&amp;rsquo;re doubling down on: the investments that produced real outcomes in quality, delivery, and developer experience, and how we&amp;rsquo;re scaling them. What we&amp;rsquo;re betting on next: the experiments and measured risks we&amp;rsquo;ll run in 2026 to meet reliability, security, and growth goals. No platitudes. Just real lessons from leaders who&amp;rsquo;ve steered teams through a year of AI transformation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://authress.io/knowledge-base/articles/2025/11/01/how-we-prevent-aws-downtime-impacts"&gt;How when AWS was down, we were not&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;One of the most massive AWS incidents transpired on October 20th. The long story short is that the DNS for DynamoDB was impacted for us-east-1, which created a health event for the entire region. It&amp;rsquo;s the worst incident we&amp;rsquo;ve seen in a decade. authress shares with us how they maintain a high SLI to match our SLA reliability commitment even when the infrastructure and services we use don&amp;rsquo;t.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jax-ml.github.io/scaling-book/gpus/"&gt;How to Think About GPUs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Part 12 of &amp;ldquo;How to Scale Your Model&amp;rdquo;, an free ebook that aim to demystify the science of scaling language models: how TPUs (and GPUs) work and how they communicate with each other, how LLMs run on real hardware, and how to parallelize your models during training and inference so they run efficiently at massive scale.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go"&gt;How Memory Maps (mmap) Deliver 25x Faster File Access in Go&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Memory maps are a modern Unix mechanism where you can take a file and make it part of the virtual memory. In Unix context, modern means that it was introduced in the 1980s or later. You have a file, containing data, you mmap it and you&amp;rsquo;ll get a pointer to where this resides. Now, instead of seeking and reading, you just read from this pointer, adjusting the offset to get to the right data.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eli.thegreenplace.net/2025/bloom-filters"&gt;Bloom filters&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The original motivation for the creation of Bloom filters is efficient set membership, using a probabilistic approach to significantly reduce the time and space required to reject items that are not members in a certain set.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ochagavia.nl/blog/what-the-heck-is-aead-again"&gt;What the heck is AEAD again&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;It stands for “Authenticated Encryption with Associated Data” but if you are struggling to remember what is it. This post sumarize nicely.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kb.databasedesignbook.com/posts/sql-joins/"&gt;sql joins&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are many SQL JOINs guides and tutorials, but this one takes a different approach. We try to avoid misleading wording and imagery, and we structure the material in a different way. The goal of this article is to clarify your mental model&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/postgres-scan-types-in-explain-plans"&gt;Postgres Scan Types in EXPLAIN Plans&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The secret to unlocking performance gains often lies not just in what you ask in a query, but in how Postgres finds the answer. The Postgres EXPLAIN system is great for understanding how data is being queried. One of secretes to reading EXPLAIN plans is understanding the type of scan done to retrieve the data. The scan type can be the difference between a lightning-fast response or a slow quey&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://addyo.substack.com/p/21-lessons-from-14-years-at-google"&gt;21 Lessons from 14 Years at Google&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Addy Osmani is a legendary engineer. In his own words: &amp;ldquo;When I joined Google ~14 years ago, I thought the job was about writing great code. I was partly right. But the longer I’ve stayed, the more I’ve realized that the engineers who thrive aren’t necessarily the best programmers - they’re the ones who’ve figured out how to navigate everything around the code: the people, the politics, the alignment, the ambiguity.&amp;rdquo;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://calendar.perfplanet.com/2025/the-anatomy-of-a-web-performance-report/"&gt;The Anatomy of a Web Performance Report&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebPerformance Report was designed around that principle. Although its underlying data comes from automated performance tests, the report itself is intentionally high-level. It is structured to help anyone, developers, designers, marketers, and executives, understand what happened, why it matters, and where the opportunities lie.
This article walks through the anatomy of a Web Performance Report, explaining each section, why it exists, and what decisions it enables.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.maxdesign.com.au/articles/two-trees.html"&gt;Did you know your browser has two accessibility trees?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;To implement accessibility, Chrome has this pipeline
DOM mutation -&amp;gt; AXEvent -&amp;gt; Accessibility tree -&amp;gt; OS accessibility API -&amp;gt; Screen reader. But  here’s the strange part: Chrome doesn’t have one accessibility tree, it has two. This article traces the full lifecycle of an accessibility event. From the moment the DOM changes, through Blink’s internal systems, through its internal accessibility tree, and finally back out into the BrowserAccessibility tree that screen readers query.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/basecamp/fizzy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fizzy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;37signals release this kanban style app. A good opportunity to dive into the source and see how DHH write user facing code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/williamtroup/Heat.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Heat.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/steveiliop56/tinyauth" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tinyauth&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The simplest way to protect your apps with a login screen.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nathan-barry/tiny-diffusion/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-diffusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A character-level language diffusion model trained on Tiny Shakespeare&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ringtailsoftware/uvm32" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;uvm32&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimalist, dependency-free virtual machine sandbox for microcontrollers and other resource-constrained devices. Single C file, no dynamic memory allocations, asynchronous design, pure C99&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/domcyrus/rustnet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rustnet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A cross-platform network monitoring terminal UI tool built with Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://driverjs.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;driverjs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Lightweight JavaScript library for product tours, highlights, and contextual help to guide users through your product&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/KoljaB/RealtimeVoiceChat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;RealtimeVoiceChat&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This project lets you chat with a Large Language Model (LLM) using just your voice, receiving spoken responses in near real-time. Think of it as your own digital conversation partner.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gavrielc/Nano-PDF" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Nano-PDF&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Edit PDF files with Nano Banana&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MartenBE/mkslides" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mkslides&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Use mkslides to easily turn markdown files into beautiful slides using the power of Reveal.js!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://dbdock.mintlify.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dbdock&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Enterprise-grade PostgreSQL backup and restore. Beautiful CLI with real-time progress tracking.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://temboard.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termboard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;powerful management tool for PostgreSQL. You can use it to monitor, optimize or configure multiple PostgreSQL instances.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_clickhouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_clickhouse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Interfaces to query ClickHouse databases from PostgreSQL&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/tiny-craft/tiny-rdm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-rdm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;(Tiny Redis Desktop Manager) - A modern, colorful, super lightweight Redis GUI client for Mac, Windows, and Linux.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate the given HTML content to Simplified Chinese. I need to translate all the text content while preserving the HTML structure. Let me go through the content and translate it carefully.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源精选&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;祝大家圣诞快乐。年末将至，抽出时间休息一下，享受这个季节吧。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/lq0ijqet0zw1vsbofyk9sbxqc2h"&gt;2025年工程领导者真正推动了什么——Salesforce、Snyk、Port 和 Qodo 的分享&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;工程团队中真正有效的方案是什么——什么又无效？听听 Benjamin Stice（Salesforce 工程副总裁）、Clinton Herget（Snyk 现场 CTO）、Yonatan Boguslavsky（Port CTO）和 Dedy Kredo（Qodo 联合创始人）的坦诚对话。三个快速、真实的环节：我们正在放弃什么：不再为团队服务的实践、工具或组织习惯（以及我们如何在不造成混乱的情况下逐步淘汰它们）。我们正在加倍投入什么：那些在质量、交付和开发者体验方面产生了实际成果的投资，以及我们如何扩大它们的规模。我们押注于什么：为了实现可靠性、安全性和增长目标，我们将在 2026 年进行的实验和有衡量的风险尝试。没有空洞的说辞，只有经历过 AI 转型一年的领导者们的真实经验教训。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://authress.io/knowledge-base/articles/2025/11/01/how-we-prevent-aws-downtime-impacts"&gt;当 AWS 宕机时，我们为什么没有&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;最严重的一次 AWS 事故发生在 10 月 20 日。简而言之，DynamoDB 的 DNS 受到了影响，波及 us-east-1 区域，导致整个区域产生健康事件。这是我们十年来遇到的最严重的事故。authress 将分享他们如何在所使用的基础设施和服务出现问题时，仍能保持高 SLI 以匹配 SLA 可靠性承诺。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jax-ml.github.io/scaling-book/gpus/"&gt;如何理解 GPU&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;《如何扩展你的模型》第 12 部分，这是一本旨在揭开扩展语言模型科学奥秘的免费电子书：TPU（和 GPU）如何工作以及它们如何相互通信，LLM 如何在真实硬件上运行，以及如何在训练和推理期间并行化模型以使其在大规模时高效运行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go"&gt;内存映射（mmap）如何在 Go 中实现 25 倍更快的文件访问&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;内存映射是一种现代 Unix 机制，你可以将文件作为虚拟内存的一部分。在 Unix 环境中，"现代"意味着它在 1980 年代或更晚引入。你有一个包含数据的文件，你 mmap 它，你会得到一个指向它所在位置的指针。现在，你不再需要寻址和读取，只需从这个指针读取数据，调整偏移量以获取正确的数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eli.thegreenplace.net/2025/bloom-filters"&gt;布隆过滤器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;布隆过滤器创建的原始动机是高效的集合成员判定，使用概率方法显著减少拒绝不属于某个集合的元素所需的时间和空间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ochagavia.nl/blog/what-the-heck-is-aead-again"&gt;AEAD 到底是什么&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;它代表"带关联数据的认证加密"，但如果你正在努力记住它是什么，这篇文章很好地总结了它。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kb.databasedesignbook.com/posts/sql-joins/"&gt;SQL JOIN 详解&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有很多 SQL JOIN 指南和教程，但这篇采取了不同的方法。我们尽量避免误导性的措辞和图片，并以不同的方式组织材料。本文的目标是理清你的心智模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/postgres-scan-types-in-explain-plans"&gt;EXPLAIN 计划中的 PostgreSQL 扫描类型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解锁性能提升的秘密往往不仅在于你在查询中问什么，还在于 PostgreSQL 如何找到答案。PostgreSQL 的 EXPLAIN 系统对于理解数据如何被查询非常有用。解读 EXPLAIN 计划的一个秘诀是理解用于检索数据的扫描类型。扫描类型可能决定是闪电般的快速响应还是缓慢的查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://addyo.substack.com/p/21-lessons-from-14-years-at-google"&gt;在 Google 14 年的 21 条经验教训&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Addy Osmani 是一位传奇工程师。用他自己的话说："当我大约 14 年前加入 Google 时，我以为这份工作就是编写优秀的代码。我只对了一部分。但我在公司待得越久，我就越意识到那些成功的工程师不一定是最优秀的程序员——他们是那些弄清楚如何驾驭代码周围一切的人：人际关系、政治、共识、模糊性。"&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://calendar.perfplanet.com/2025/the-anatomy-of-a-web-performance-report/"&gt;网络性能报告的组成结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebPerformance 报告的设计基于这个原则。虽然其底层数据来自自动化性能测试，但报告本身是有意的高级设计。它的结构是为了帮助任何人——开发者、设计师、营销人员和高管——理解发生了什么、为什么重要、以及机会在哪里。本文将带你了解 Web Performance 报告的结构，解释每个部分、为什么存在，以及它支持什么决策。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.maxdesign.com.au/articles/two-trees.html"&gt;你知道你的浏览器有两个无障碍树吗？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为了实现无障碍功能，Chrome 有这条处理流水线：DOM 变更 -&gt; AXEvent -&gt; 无障碍树 -&gt; OS 无障碍 API -&gt; 屏幕阅读器。但这里有个奇怪的部分：Chrome 不是一个无障碍树，而是有两个。本文追踪了一个无障碍事件的完整生命周期。从 DOM 变化的时刻开始，通过 Blink 的内部系统，通过其内部无障碍树，最后回到屏幕阅读器查询的 BrowserAccessibility 树。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/basecamp/fizzy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fizzy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;37signals 发布的看板风格应用。这是一个深入源码的好机会，看看 DHH 如何编写面向用户的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/williamtroup/Heat.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Heat.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级 JavaScript 库，用于生成可定制的热力图、图表和统计数据，以可视化基于日期的活动和趋势。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/steveiliop56/tinyauth" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tinyauth&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用登录屏幕保护你的应用的最简单方法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nathan-barry/tiny-diffusion/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-diffusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个在 Tiny Shakespeare 上训练的角色级语言扩散模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ringtailsoftware/uvm32" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;uvm32&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;面向微控制器和其他资源受限设备的极简、无依赖的虚拟机沙箱。单文件 C 代码，无动态内存分配，异步设计，纯 C99。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/domcyrus/rustnet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rustnet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Rust 构建的跨平台网络监控终端 UI 工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://driverjs.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;driverjs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻量级 JavaScript 库，用于产品导览、高亮显示和情境帮助，引导用户了解你的产品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/KoljaB/RealtimeVoiceChat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;RealtimeVoiceChat&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这个项目让你可以用语音与大型语言模型（LLM）交流，近实时地接收语音回复。可以把它想象成你自己的数字对话伙伴。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gavrielc/Nano-PDF" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Nano-PDF&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 Nano Banana 编辑 PDF 文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MartenBE/mkslides" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mkslides&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用 mkslides 轻松将 markdown 文件转换成精美的幻灯片，利用 Reveal.js 的强大功能！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dbdock.mintlify.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dbdock&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;企业级 PostgreSQL 备份和恢复。美观命令行界面，实时进度跟踪。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://temboard.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termboard&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;强大的 PostgreSQL 管理工具。你可以用它来监控、优化或配置多个 PostgreSQL 实例。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ClickHouse/pg_clickhouse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_clickhouse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从 PostgreSQL 查询 ClickHouse 数据库的接口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tiny-craft/tiny-rdm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tiny-rdm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;（Tiny Redis Desktop Manager）——一款现代、色彩丰富、超轻量的 Redis 图形客户端，支持 Mac、Windows 和 Linux。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-12-15T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/282</id>
    <title>Issues #282 Nov 16, 2025 || &lt;think&gt;The user wants me to translate "Issues #282 Nov 16, 2025" into Simplified Chinese.

This appears to be a publication date or issue number format. Let me translate it:

- "Issues" = 问题/期刊/期号
- "#282" = 第282期
- "Nov 16, 2025" = 2025年11月16日

A natural translation would be:
"第282期 2025年11月16日"

Or if it's meant to be a header/issue number: "第282期 2025年11月16日"
&lt;/think&gt;



第282期 2025年11月16日</title>
    <updated>2025-11-16T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Sometime when my though wandering the world, I just wonder how amazing TCP was design. The world all connect together because of it. Sometime you disconnect your VPN, then re-connect, and your SSH connection just resume. How amazing resilient it is. Today we discover that by learning about TCP protocol.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/cuvtbdltpqpb701tgdwzrvrbm3a"&gt;Build automation tools for AI agents. Earn passive income and win your share of $1M in prizes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers earned $563K in September alone building automation tools on Apify. Now there&amp;rsquo;s $1M more in prizes through January 31. Build web scrapers, API wrappers, MCP servers for AI agents. Earn up to $2K per tool based on monthly active users, compete for $30K/$20K/$10K grand prizes, plus $2K weekly spotlight prizes. Ongoing marketplace revenue continues after the challenge ends.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cefboud.com/posts/tcp-deep-dive-internals/"&gt;The Internet is Cool. Thank you, TCP&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The internet is incredible. It’s nearly impossible to keep people away from. But it can also be unreliable: packets drop, links congest, bits mangle, and data corrupts. Oh, it’s dangerous out there! (I’m writing this in Kramer’s tone)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://karboosx.net/post/4eZxhBon/building-a-simple-search-engine-that-actually-works"&gt;Building a Simple Search Engine That Actually Works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Sometimes you just want something that: Works with your existing database, Doesn&amp;rsquo;t require external services, Is easy to understand and debug. That&amp;rsquo;s what the OP built. A search engine that uses your existing database, respects your current architecture, and gives you full control over how it works.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.marginalia.nu/log/a_123_index_io/"&gt;Faster Index I/O with NVMe SSDs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Marginalia is an experimental search engine. The Marginalia Search index has been partially rewritten to perform much better, using new data structures designed to make better use of modern hardware. This post will cover the new design, and will also touch upon some of the unexpected and unintuitive performance characteristics of NVMe SSDs when it comes to read sizes.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/"&gt;Myths Programmers Believe about CPU Caches&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;As a computer engineer who has spent half a decade working with caches at Intel and Sun, I’ve learnt a thing or two about cache-coherency. This was one of the hardest concepts to learn back in college – but once you’ve truly understood it, it gives you a great appreciation for system design principles.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.wilsonl.in/blobd/"&gt;Building blobd: single-machine object store with sub-millisecond reads and 15 GB/s uploads&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I decided to experiment with writing an object store from scratch as a fun learning exercise, and to see how much I could get out of NVMe disks I had on my bare metal machines. Specifically, I wanted to really optimize for random reads and small objects — serving user content where the lower the latency, the better. This would not focus on other features; S3 is bottomless, distributed, and managed for example.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/postgres-internals-hiding-in-plain-sight"&gt;Postgres Internals Hiding in Plain Sight&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Postgres has an awesome amount of data collected in its own internal tables. Postgres hackers know all about this  - but software developers and folks working with day to day Postgres tasks often miss out the good stuff. Today I want to walk through some of the most important Postgres internal data catalog details. What they are, what is in them, and how they might help you understand more about what is happening inside your database.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://peterullrich.com/listen-to-database-changes-through-the-postgres-wal"&gt;Listen to Database Changes through the Postgres WAL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This could be a cheap way to have a Kafka-like consumer out of the box by consuming your Postgres WAL log. WAL log is like a stream of change happen to your database (update/create/delete) and you can decode them to JSON to see the change and act on them&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.polarsignals.com/blog/posts/2025/11/04/javascript-source-maps-internals"&gt;The Inner Workings of JavaScript Source Maps&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deep dive into how JavaScript source maps work under the hood, with examples showing how all the pieces fit together.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jakearchibald.com/2025/importing-vs-fetching-json/"&gt;Importing vs fetching JSON&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Beside the usualy way of &lt;code&gt;await fetch&lt;/code&gt; to load JSON API, we now can also use &lt;code&gt;import&lt;/code&gt; directly. We had this in NodeJS with build tool already but now it&amp;rsquo;s natively available in the browser too. Lets see when we should use what.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pzarycki.com/en/posts/js-nan/"&gt;Why NaN !== NaN in JavaScript (and the IEEE 754 story behind it)&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/randoneering/pgFirstAid" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFirstAid&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Easy-to-deploy, open source PostgreSQL function that provides a prioritized list of actions to improve database stability and performance.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/thoughtbot/top_secret" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;top_secret&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Filter sensitive information from free text before sending it to external services or APIs, such as chatbots and LLMs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/shayonj/pg_easy_replicate" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_easy_replicate&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Easily setup logical replication and switchover to new database with minimal downtime&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/toorshia/justgage" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;justgage&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a handy JavaScript plugin for generating and animating nice &amp;amp; clean dashboard gauges. It is based on Raphaël library for vector drawing&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/isaac-mason/navcat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;navcat&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;javascript navigation mesh construction and querying library for 3D floor-based navigation&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ashish0kumar/stormy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stormy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal neofetch-like weather CLI. Just fun code to read.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gosuda/portal" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portal&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Public Open Relay To Access Localhost&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/GeeeekExplorer/nano-vllm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nano-vllm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight vLLM implementation built from scratch.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zensical/zensical" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zensical&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A modern static site generator by the creators of Material for MkDocs&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/datalab-to/chandra" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chandra&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;OCR model that handles complex tables, forms, handwriting with full layout.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://perspective-dev.github.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;perspective&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Perspective is an interactive analytics and data visualization component, which is especially well-suited for large and/or streaming datasets. Use it to create user-configurable reports, dashboards, notebooks and applications, then deploy stand-alone in the browser, or in concert with Python and/or Jupyterlab.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/vyruss/pg_statviz" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_statviz&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A minimalist extension and utility pair for time series analysis and visualization of PostgreSQL internal statistics.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bucardo/check_postgres" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;check_postgres&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Nagios check_postgres plugin for checking status of PostgreSQL databases. You probably cannot use this as it&amp;rsquo;s because it&amp;rsquo;s for Nagios but the script can adopt to any monitoring system.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/phare/sloggo/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sloggo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal RFC 5424 syslog collector and viewer based on DuckDB. Runs as a single, resource-friendly process&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/brianvoe/slim-select" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slim-select&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Advanced select dropdown without any dependencies&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/casbin/caswaf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;caswaf&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;HTTP &amp;amp; OAuth Gateway and Web Application Firewall (WAF) based on ModSecurity&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mmastrac/stylus/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stylus&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Lightweight status page for home infrastructure&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content to Simplified Chinese (zh-CN). I need to:
1. Translate all the text content while preserving the HTML structure
2. Keep the original paragraph breaks
3. Preserve inline code elements as they appear in the source
4. Return only the translations

Let me go through each section:

Title: "Better Dev Link - Resource around the web on becoming a better programmer"
- Better Dev Link - 成为更优秀程序员的网络资源

Opening paragraph:
- Hi all -&gt; 大家好
- Sometime when my though wandering the world -&gt; 有时候当我的思绪漫游时 (note: "though" seems to be a typo for "thought")
- I just wonder how amazing TCP was design -&gt; 我只是惊叹TCP的设计是如此精妙 ("was design" should be "was designed")
- The world all connect together because of it -&gt; 整个世界因此紧密相连
- Sometime you disconnect your VPN -&gt; 有时候你断开VPN
- then re-connect, and your SSH connection just resume -&gt; 然后重新连接，你的SSH连接就会恢复
- How amazing resilient it is -&gt; 它是多么强大且具有韧性啊
- Today we discover that by learning about TCP protocol -&gt; 今天我们将通过学习TCP协议来发现这一点

Support message:
- If you enjoy BetterDev, please spread the word by sharing it with your friends. -&gt; 如果你喜欢BetterDev，请通过分享给朋友来传播它。
- And if you'd like to support my work, buying me a coffee would be much appreciated. -&gt; 如果你愿意支持我的工作，请买杯咖啡，我将不胜感激。

Now let's translate the links and their descriptions:

1. Build automation tools for AI agents... -&gt; 为AI代理构建自动化工具...

2. The Internet is Cool. Thank you, TCP -&gt; 互联网很酷。谢谢你，TCP


3. Building a Simple Search Engine That Actually Works -&gt; 构建一个真正能用的简单搜索引擎
4. Faster Index I/O with NVMe SSDs -&gt; 使用NVMe SSD实现更快的索引I/O
5. Myths Programmers Believe about CPU Caches -&gt; 程序员关于CPU缓存的误区

I'll continue translating the remaining links, focusing on technical and programming-related topics. The translations will maintain the original HTML structure while conveying the essence of each link's content in Simplified Chinese.

7. Postgres Internals Hiding in Plain Sight -&gt; 藏在眼皮底下的Postgres内部原理
8. Listen to Database Changes through the Postgres WAL -&gt; 通过Postgres WAL监听数据库变化
9. The Inner Workings of JavaScript Source Maps -&gt; JavaScript Source Maps的内部工作原理

The translations emphasize technical depth and nuanced understanding of programming concepts, highlighting the intricate details of database systems, JavaScript, and performance optimization.

11. Why NaN !== NaN in JavaScript (and the IEEE 754 story behind it) -&gt; JavaScript中为什么NaN !== NaN（及其背后的IEEE 754故事）

The section on code references showcases advanced tools for database management, highlighting innovative approaches to PostgreSQL optimization and monitoring. The "Code to read" segment introduces developers to cutting-edge solutions for database stability and performance analysis.

Tools section continues the theme of technical innovation, presenting specialized libraries and plugins designed to enhance system capabilities, including OCR models, status page management, and query optimization techniques.

I've noticed a critical translation requirement: preserving HTML tag attributes like `translate="no"` and maintaining code formatting integrity. This ensures technical accuracy while adapting content for Chinese language users.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;有时候当我的思绪漫游时，我不禁惊叹TCP的设计是如此精妙。整个世界因此紧密相连。有时候你断开VPN，然后重新连接，你的SSH连接就会恢复。它是多么强大且具有韧性啊。今天我们将通过学习TCP协议来发现这一点。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/cuvtbdltpqpb701tgdwzrvrbm3a"&gt;为AI代理构建自动化工具。赚取被动收入并赢得属于你的100万美元奖金&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者们在9月单月通过在Apify上构建自动化工具赚了56.3万美元。直至1月31日，还有100万美元的奖金等待争夺。构建网页爬虫、API封装、MCP服务器供AI代理使用。根据月活跃用户数，每款工具可赚取高达2000美元，还可以争夺3万美元/2万美元/1万美元的大奖，以及每周2000美元的聚焦奖。挑战结束后，市场平台的持续收益将继续。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cefboud.com/posts/tcp-deep-dive-internals/"&gt;互联网很酷。谢谢你，TCP&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;互联网是不可思议的。要让人们无法访问几乎是不可能的。但它也可能是不可靠的：数据包会丢失，链路会拥塞，字节会损坏，数据会腐化。哦，外面可真危险！（我用克莱默的语气写这句话）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://karboosx.net/post/4eZxhBon/building-a-simple-search-engine-that-actually-works"&gt;构建一个真正能用的简单搜索引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有时候你只需要这样的东西：与你现有的数据库配合工作，不需要外部服务，简单易懂且易于调试。这就是原作者构建的东西。一个使用你现有数据库的搜索引擎，尊重你当前的架构，并让你完全掌控它的工作方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.marginalia.nu/log/a_123_index_io/"&gt;使用NVMe SSD实现更快的索引I/O&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Marginalia是一个实验性搜索引擎。Marginalia搜索索引已被部分重写以实现更好的性能，使用了为更好利用现代硬件而设计的新数据结构。这篇文章将涵盖新的设计，并涉及NVMe SSD在读取大小方面的一些意想不到且违反直觉的性能特性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/"&gt;程序员关于CPU缓存的误区&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;作为一名在英特尔和Sun工作了五年、与缓存打交道的计算机工程师，我学到了一些关于缓存一致性的东西。这是大学时期最难理解的概念之一——但一旦你真正理解了它，它会让你对系统设计原则有深刻的认识。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.wilsonl.in/blobd/"&gt;构建blobd：支持亚毫秒级读取和15 GB/s上传的单机对象存储&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我决定将从头编写一个对象存储作为有趣的学习练习，看看我能从裸机服务器上的NVMe磁盘中获得多少性能。具体来说，我想真正优化随机读取和小对象——服务于用户内容，延迟越低越好。这不会关注其他功能；比如S3是无限的、分布式的、被托管的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/postgres-internals-hiding-in-plain-sight"&gt;藏在眼皮底下的Postgres内部原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Postgres在其自身的内部表中收集了惊人的数据量。Postgres高手对此了如指掌——但软件开发人员和日常使用Postgres的人往往错过了这些好东西。今天我想带你了解一些最重要的Postgres内部数据目录细节。它们是什么，里面有什么，以及它们如何帮助你了解数据库内部正在发生的事情。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://peterullrich.com/listen-to-database-changes-through-the-postgres-wal"&gt;通过Postgres WAL监听数据库变化&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这可能是一种利用现成的Postgres WAL日志获得类似Kafka消费者的廉价方式。WAL日志就像是发生在数据库上的变更流（更新/创建/删除），你可以将它们解码为JSON来查看变更并采取行动&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.polarsignals.com/blog/posts/2025/11/04/javascript-source-maps-internals"&gt;JavaScript Source Maps的内部工作原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入了解JavaScript source maps在底层是如何工作的，并通过示例展示所有部分是如何协同配合的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jakearchibald.com/2025/importing-vs-fetching-json/"&gt;导入JSON与获取JSON&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;除了通常使用&lt;code class="notranslate" translate="no"&gt;await fetch&lt;/code&gt;来加载JSON API的方式，我们现在也可以直接使用&lt;code class="notranslate" translate="no"&gt;import&lt;/code&gt;。我们在NodeJS中配合构建工具已经有了这个功能，但现在浏览器也原生支持了。让我们看看什么时候该用什么。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pzarycki.com/en/posts/js-nan/"&gt;JavaScript中为什么NaN !== NaN（及其背后的IEEE 754故事）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;代码阅读&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/randoneering/pgFirstAid" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFirstAid&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;易于部署的开源PostgreSQL函数，可提供优先级列表以提高数据库稳定性和性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thoughtbot/top_secret" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;top_secret&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在将自由文本发送到外部服务或API（如聊天机器人和LLM）之前，过滤其中的敏感信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/shayonj/pg_easy_replicate" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_easy_replicate&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻松设置逻辑复制并以最少停机时间切换到新数据库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/toorshia/justgage" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;justgage&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个方便的JavaScript插件，用于生成和动画化漂亮简洁的仪表盘仪表。基于Raphaël向量绘图库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/isaac-mason/navcat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;navcat&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于3D平面导航的JavaScript导航网格构建和查询库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ashish0kumar/stormy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stormy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;极简的类neofetch天气命令行工具。就是有趣的代码，值得一读。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gosuda/portal" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portal&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;公开的开放中继以访问本地主机&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/GeeeekExplorer/nano-vllm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nano-vllm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从零开始构建的轻量级vLLM实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zensical/zensical" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zensical&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Material for MkDocs创建者打造的现代静态网站生成器&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/datalab-to/chandra" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chandra&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可处理复杂表格、表单、手写的OCR模型，具有完整布局识别能力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://perspective-dev.github.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;perspective&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Perspective是一个交互式分析和数据可视化组件，特别适合大型和/或流式数据集。使用它创建用户可配置的报表、仪表盘、笔记本和应用程序，然后独立部署在浏览器中，或与Python和/或Jupyterlab配合使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vyruss/pg_statviz" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_statviz&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于PostgreSQL内部统计的时间序列分析和可视化的极简扩展和工具对。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bucardo/check_postgres" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;check_postgres&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Nagios的check_postgres插件，用于检查PostgreSQL数据库状态。你可能无法使用这个，因为它是为Nagios设计的，但脚本可以适配任何监控系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/phare/sloggo/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sloggo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于DuckDB的极简RFC 5424 syslog收集器和查看器。作为一个单一、资源友好的进程运行&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/brianvoe/slim-select" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slim-select&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;无任何依赖的高级选择下拉框&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/casbin/caswaf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;caswaf&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于ModSecurity的HTTP和OAuth网关及Web应用防火墙（WAF）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mmastrac/stylus/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stylus&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于家庭基础设施的轻量级状态页面&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/282"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Sometime when my though wandering the world, I just wonder how amazing TCP was design. The world all connect together because of it. Sometime you disconnect your VPN, then re-connect, and your SSH connection just resume. How amazing resilient it is. Today we discover that by learning about TCP protocol.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/cuvtbdltpqpb701tgdwzrvrbm3a"&gt;Build automation tools for AI agents. Earn passive income and win your share of $1M in prizes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers earned $563K in September alone building automation tools on Apify. Now there&amp;rsquo;s $1M more in prizes through January 31. Build web scrapers, API wrappers, MCP servers for AI agents. Earn up to $2K per tool based on monthly active users, compete for $30K/$20K/$10K grand prizes, plus $2K weekly spotlight prizes. Ongoing marketplace revenue continues after the challenge ends.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cefboud.com/posts/tcp-deep-dive-internals/"&gt;The Internet is Cool. Thank you, TCP&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The internet is incredible. It’s nearly impossible to keep people away from. But it can also be unreliable: packets drop, links congest, bits mangle, and data corrupts. Oh, it’s dangerous out there! (I’m writing this in Kramer’s tone)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://karboosx.net/post/4eZxhBon/building-a-simple-search-engine-that-actually-works"&gt;Building a Simple Search Engine That Actually Works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Sometimes you just want something that: Works with your existing database, Doesn&amp;rsquo;t require external services, Is easy to understand and debug. That&amp;rsquo;s what the OP built. A search engine that uses your existing database, respects your current architecture, and gives you full control over how it works.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.marginalia.nu/log/a_123_index_io/"&gt;Faster Index I/O with NVMe SSDs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Marginalia is an experimental search engine. The Marginalia Search index has been partially rewritten to perform much better, using new data structures designed to make better use of modern hardware. This post will cover the new design, and will also touch upon some of the unexpected and unintuitive performance characteristics of NVMe SSDs when it comes to read sizes.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/"&gt;Myths Programmers Believe about CPU Caches&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;As a computer engineer who has spent half a decade working with caches at Intel and Sun, I’ve learnt a thing or two about cache-coherency. This was one of the hardest concepts to learn back in college – but once you’ve truly understood it, it gives you a great appreciation for system design principles.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.wilsonl.in/blobd/"&gt;Building blobd: single-machine object store with sub-millisecond reads and 15 GB/s uploads&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I decided to experiment with writing an object store from scratch as a fun learning exercise, and to see how much I could get out of NVMe disks I had on my bare metal machines. Specifically, I wanted to really optimize for random reads and small objects — serving user content where the lower the latency, the better. This would not focus on other features; S3 is bottomless, distributed, and managed for example.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/postgres-internals-hiding-in-plain-sight"&gt;Postgres Internals Hiding in Plain Sight&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Postgres has an awesome amount of data collected in its own internal tables. Postgres hackers know all about this  - but software developers and folks working with day to day Postgres tasks often miss out the good stuff. Today I want to walk through some of the most important Postgres internal data catalog details. What they are, what is in them, and how they might help you understand more about what is happening inside your database.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://peterullrich.com/listen-to-database-changes-through-the-postgres-wal"&gt;Listen to Database Changes through the Postgres WAL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This could be a cheap way to have a Kafka-like consumer out of the box by consuming your Postgres WAL log. WAL log is like a stream of change happen to your database (update/create/delete) and you can decode them to JSON to see the change and act on them&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.polarsignals.com/blog/posts/2025/11/04/javascript-source-maps-internals"&gt;The Inner Workings of JavaScript Source Maps&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deep dive into how JavaScript source maps work under the hood, with examples showing how all the pieces fit together.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jakearchibald.com/2025/importing-vs-fetching-json/"&gt;Importing vs fetching JSON&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Beside the usualy way of &lt;code&gt;await fetch&lt;/code&gt; to load JSON API, we now can also use &lt;code&gt;import&lt;/code&gt; directly. We had this in NodeJS with build tool already but now it&amp;rsquo;s natively available in the browser too. Lets see when we should use what.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pzarycki.com/en/posts/js-nan/"&gt;Why NaN !== NaN in JavaScript (and the IEEE 754 story behind it)&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/randoneering/pgFirstAid" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFirstAid&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Easy-to-deploy, open source PostgreSQL function that provides a prioritized list of actions to improve database stability and performance.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/thoughtbot/top_secret" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;top_secret&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Filter sensitive information from free text before sending it to external services or APIs, such as chatbots and LLMs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/shayonj/pg_easy_replicate" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_easy_replicate&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Easily setup logical replication and switchover to new database with minimal downtime&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/toorshia/justgage" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;justgage&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a handy JavaScript plugin for generating and animating nice &amp;amp; clean dashboard gauges. It is based on Raphaël library for vector drawing&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/isaac-mason/navcat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;navcat&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;javascript navigation mesh construction and querying library for 3D floor-based navigation&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ashish0kumar/stormy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stormy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal neofetch-like weather CLI. Just fun code to read.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gosuda/portal" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portal&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Public Open Relay To Access Localhost&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/GeeeekExplorer/nano-vllm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nano-vllm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight vLLM implementation built from scratch.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zensical/zensical" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zensical&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A modern static site generator by the creators of Material for MkDocs&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/datalab-to/chandra" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chandra&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;OCR model that handles complex tables, forms, handwriting with full layout.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://perspective-dev.github.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;perspective&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Perspective is an interactive analytics and data visualization component, which is especially well-suited for large and/or streaming datasets. Use it to create user-configurable reports, dashboards, notebooks and applications, then deploy stand-alone in the browser, or in concert with Python and/or Jupyterlab.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/vyruss/pg_statviz" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_statviz&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A minimalist extension and utility pair for time series analysis and visualization of PostgreSQL internal statistics.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bucardo/check_postgres" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;check_postgres&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Nagios check_postgres plugin for checking status of PostgreSQL databases. You probably cannot use this as it&amp;rsquo;s because it&amp;rsquo;s for Nagios but the script can adopt to any monitoring system.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/phare/sloggo/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sloggo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal RFC 5424 syslog collector and viewer based on DuckDB. Runs as a single, resource-friendly process&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/brianvoe/slim-select" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slim-select&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Advanced select dropdown without any dependencies&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/casbin/caswaf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;caswaf&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;HTTP &amp;amp; OAuth Gateway and Web Application Firewall (WAF) based on ModSecurity&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mmastrac/stylus/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stylus&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Lightweight status page for home infrastructure&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content to Simplified Chinese (zh-CN). I need to:
1. Translate all the text content while preserving the HTML structure
2. Keep the original paragraph breaks
3. Preserve inline code elements as they appear in the source
4. Return only the translations

Let me go through each section:

Title: "Better Dev Link - Resource around the web on becoming a better programmer"
- Better Dev Link - 成为更优秀程序员的网络资源

Opening paragraph:
- Hi all -&gt; 大家好
- Sometime when my though wandering the world -&gt; 有时候当我的思绪漫游时 (note: "though" seems to be a typo for "thought")
- I just wonder how amazing TCP was design -&gt; 我只是惊叹TCP的设计是如此精妙 ("was design" should be "was designed")
- The world all connect together because of it -&gt; 整个世界因此紧密相连
- Sometime you disconnect your VPN -&gt; 有时候你断开VPN
- then re-connect, and your SSH connection just resume -&gt; 然后重新连接，你的SSH连接就会恢复
- How amazing resilient it is -&gt; 它是多么强大且具有韧性啊
- Today we discover that by learning about TCP protocol -&gt; 今天我们将通过学习TCP协议来发现这一点

Support message:
- If you enjoy BetterDev, please spread the word by sharing it with your friends. -&gt; 如果你喜欢BetterDev，请通过分享给朋友来传播它。
- And if you'd like to support my work, buying me a coffee would be much appreciated. -&gt; 如果你愿意支持我的工作，请买杯咖啡，我将不胜感激。

Now let's translate the links and their descriptions:

1. Build automation tools for AI agents... -&gt; 为AI代理构建自动化工具...

2. The Internet is Cool. Thank you, TCP -&gt; 互联网很酷。谢谢你，TCP


3. Building a Simple Search Engine That Actually Works -&gt; 构建一个真正能用的简单搜索引擎
4. Faster Index I/O with NVMe SSDs -&gt; 使用NVMe SSD实现更快的索引I/O
5. Myths Programmers Believe about CPU Caches -&gt; 程序员关于CPU缓存的误区

I'll continue translating the remaining links, focusing on technical and programming-related topics. The translations will maintain the original HTML structure while conveying the essence of each link's content in Simplified Chinese.

7. Postgres Internals Hiding in Plain Sight -&gt; 藏在眼皮底下的Postgres内部原理
8. Listen to Database Changes through the Postgres WAL -&gt; 通过Postgres WAL监听数据库变化
9. The Inner Workings of JavaScript Source Maps -&gt; JavaScript Source Maps的内部工作原理

The translations emphasize technical depth and nuanced understanding of programming concepts, highlighting the intricate details of database systems, JavaScript, and performance optimization.

11. Why NaN !== NaN in JavaScript (and the IEEE 754 story behind it) -&gt; JavaScript中为什么NaN !== NaN（及其背后的IEEE 754故事）

The section on code references showcases advanced tools for database management, highlighting innovative approaches to PostgreSQL optimization and monitoring. The "Code to read" segment introduces developers to cutting-edge solutions for database stability and performance analysis.

Tools section continues the theme of technical innovation, presenting specialized libraries and plugins designed to enhance system capabilities, including OCR models, status page management, and query optimization techniques.

I've noticed a critical translation requirement: preserving HTML tag attributes like `translate="no"` and maintaining code formatting integrity. This ensures technical accuracy while adapting content for Chinese language users.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;有时候当我的思绪漫游时，我不禁惊叹TCP的设计是如此精妙。整个世界因此紧密相连。有时候你断开VPN，然后重新连接，你的SSH连接就会恢复。它是多么强大且具有韧性啊。今天我们将通过学习TCP协议来发现这一点。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/cuvtbdltpqpb701tgdwzrvrbm3a"&gt;为AI代理构建自动化工具。赚取被动收入并赢得属于你的100万美元奖金&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者们在9月单月通过在Apify上构建自动化工具赚了56.3万美元。直至1月31日，还有100万美元的奖金等待争夺。构建网页爬虫、API封装、MCP服务器供AI代理使用。根据月活跃用户数，每款工具可赚取高达2000美元，还可以争夺3万美元/2万美元/1万美元的大奖，以及每周2000美元的聚焦奖。挑战结束后，市场平台的持续收益将继续。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cefboud.com/posts/tcp-deep-dive-internals/"&gt;互联网很酷。谢谢你，TCP&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;互联网是不可思议的。要让人们无法访问几乎是不可能的。但它也可能是不可靠的：数据包会丢失，链路会拥塞，字节会损坏，数据会腐化。哦，外面可真危险！（我用克莱默的语气写这句话）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://karboosx.net/post/4eZxhBon/building-a-simple-search-engine-that-actually-works"&gt;构建一个真正能用的简单搜索引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有时候你只需要这样的东西：与你现有的数据库配合工作，不需要外部服务，简单易懂且易于调试。这就是原作者构建的东西。一个使用你现有数据库的搜索引擎，尊重你当前的架构，并让你完全掌控它的工作方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.marginalia.nu/log/a_123_index_io/"&gt;使用NVMe SSD实现更快的索引I/O&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Marginalia是一个实验性搜索引擎。Marginalia搜索索引已被部分重写以实现更好的性能，使用了为更好利用现代硬件而设计的新数据结构。这篇文章将涵盖新的设计，并涉及NVMe SSD在读取大小方面的一些意想不到且违反直觉的性能特性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/"&gt;程序员关于CPU缓存的误区&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;作为一名在英特尔和Sun工作了五年、与缓存打交道的计算机工程师，我学到了一些关于缓存一致性的东西。这是大学时期最难理解的概念之一——但一旦你真正理解了它，它会让你对系统设计原则有深刻的认识。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.wilsonl.in/blobd/"&gt;构建blobd：支持亚毫秒级读取和15 GB/s上传的单机对象存储&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我决定将从头编写一个对象存储作为有趣的学习练习，看看我能从裸机服务器上的NVMe磁盘中获得多少性能。具体来说，我想真正优化随机读取和小对象——服务于用户内容，延迟越低越好。这不会关注其他功能；比如S3是无限的、分布式的、被托管的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/postgres-internals-hiding-in-plain-sight"&gt;藏在眼皮底下的Postgres内部原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Postgres在其自身的内部表中收集了惊人的数据量。Postgres高手对此了如指掌——但软件开发人员和日常使用Postgres的人往往错过了这些好东西。今天我想带你了解一些最重要的Postgres内部数据目录细节。它们是什么，里面有什么，以及它们如何帮助你了解数据库内部正在发生的事情。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://peterullrich.com/listen-to-database-changes-through-the-postgres-wal"&gt;通过Postgres WAL监听数据库变化&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这可能是一种利用现成的Postgres WAL日志获得类似Kafka消费者的廉价方式。WAL日志就像是发生在数据库上的变更流（更新/创建/删除），你可以将它们解码为JSON来查看变更并采取行动&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.polarsignals.com/blog/posts/2025/11/04/javascript-source-maps-internals"&gt;JavaScript Source Maps的内部工作原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入了解JavaScript source maps在底层是如何工作的，并通过示例展示所有部分是如何协同配合的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jakearchibald.com/2025/importing-vs-fetching-json/"&gt;导入JSON与获取JSON&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;除了通常使用&lt;code class="notranslate" translate="no"&gt;await fetch&lt;/code&gt;来加载JSON API的方式，我们现在也可以直接使用&lt;code class="notranslate" translate="no"&gt;import&lt;/code&gt;。我们在NodeJS中配合构建工具已经有了这个功能，但现在浏览器也原生支持了。让我们看看什么时候该用什么。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pzarycki.com/en/posts/js-nan/"&gt;JavaScript中为什么NaN !== NaN（及其背后的IEEE 754故事）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;代码阅读&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/randoneering/pgFirstAid" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFirstAid&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;易于部署的开源PostgreSQL函数，可提供优先级列表以提高数据库稳定性和性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/thoughtbot/top_secret" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;top_secret&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在将自由文本发送到外部服务或API（如聊天机器人和LLM）之前，过滤其中的敏感信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/shayonj/pg_easy_replicate" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_easy_replicate&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻松设置逻辑复制并以最少停机时间切换到新数据库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/toorshia/justgage" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;justgage&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个方便的JavaScript插件，用于生成和动画化漂亮简洁的仪表盘仪表。基于Raphaël向量绘图库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/isaac-mason/navcat" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;navcat&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于3D平面导航的JavaScript导航网格构建和查询库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ashish0kumar/stormy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stormy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;极简的类neofetch天气命令行工具。就是有趣的代码，值得一读。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gosuda/portal" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portal&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;公开的开放中继以访问本地主机&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/GeeeekExplorer/nano-vllm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nano-vllm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从零开始构建的轻量级vLLM实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zensical/zensical" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zensical&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Material for MkDocs创建者打造的现代静态网站生成器&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/datalab-to/chandra" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chandra&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可处理复杂表格、表单、手写的OCR模型，具有完整布局识别能力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://perspective-dev.github.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;perspective&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Perspective是一个交互式分析和数据可视化组件，特别适合大型和/或流式数据集。使用它创建用户可配置的报表、仪表盘、笔记本和应用程序，然后独立部署在浏览器中，或与Python和/或Jupyterlab配合使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vyruss/pg_statviz" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_statviz&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于PostgreSQL内部统计的时间序列分析和可视化的极简扩展和工具对。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bucardo/check_postgres" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;check_postgres&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Nagios的check_postgres插件，用于检查PostgreSQL数据库状态。你可能无法使用这个，因为它是为Nagios设计的，但脚本可以适配任何监控系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/phare/sloggo/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sloggo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于DuckDB的极简RFC 5424 syslog收集器和查看器。作为一个单一、资源友好的进程运行&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/brianvoe/slim-select" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;slim-select&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;无任何依赖的高级选择下拉框&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/casbin/caswaf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;caswaf&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于ModSecurity的HTTP和OAuth网关及Web应用防火墙（WAF）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mmastrac/stylus/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stylus&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于家庭基础设施的轻量级状态页面&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-11-16T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/281</id>
    <title>Issues #281 Oct 20, 2025 || 

问题 #281 2025年10月20日</title>
    <updated>2025-10-20T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s already autumn and we will continue to get more issue moving forward. Hope everyone have a great haloween ahead. I also shared a story about someone almost got hack by being trick into running code for an interview. Remind so stay safe these day, never run untrusted code on your machine.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/hdskc3nq5hrt576pu56rq17hxq4"&gt;Build your next on HubSpot with the flexibility of an all-new Developer Platform&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The HubSpot Developer Platform gives you the tools to build, extend, and scale with confidence. Create AI-ready apps, integrations, and workflows faster with a unified platform designed to grow alongside your business.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/cfenollosa/os-tutorial/tree/master"&gt;How to create an OS from scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;May sound overwhelm but it&amp;rsquo;s very approachable with step by step building from previous foundation. Eg to write the initial boot loader you just need:
  loop:
      jmp loop&lt;/p&gt;

&lt;p&gt;times 510-($-$$) db 0
  dw 0xaa55&lt;/p&gt;

&lt;p&gt;A very detail setup so you can prepare emulator to start learning these.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/caching"&gt;Caching&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Every time you use a computer, caches work to ensure your experience is fast. Everything a computer does from executing an instruction on the CPU, to requesting your X.com feed, to loading this very webpage, relies heavily on caching. You are about to enjoy a guided, interactive tour of caching: the most elegant, powerful, and pervasive innovation in computing.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://samwho.dev/big-o/"&gt;Big O&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A visual introduction to big O notation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eli.thegreenplace.net/2025/consistent-hashing/"&gt;Consistent hashing&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This post is an introduction to consistent hashing, an algorithm for designing a hash table such that only a small portion of keys has to be recomputed when the table&amp;rsquo;s size changes.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.tigerdata.com/learn/understanding-postgresql-tablespaces"&gt;Understanding PostgreSQL Tablespaces&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;By default all of the Postgres data stay in the same directory, under the same path and therefore the same volume. This limit our scale, many cloud provider has a max volume size, and they all share same IO. What can we do to put the database at different location instead?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.daviddodda.com/how-i-almost-got-hacked-by-a-job-interview"&gt;How I Almost Got Hacked By A 'Job Interview&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Be careful out there with sophisicated phishing attempt nowadays. Bottom line is never ever run untrusted code directly on your machine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://heikkila.dev/blog/find-where-a-specific-object-was-allocated-in-javascript/"&gt;Find where a specific object was allocated in JavaScript with DevTools&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Maybe you’re debugging a network request, but the stack trace has been laundered away by a batching mechanism. Maybe you have an enormous React codebase with kilometers of prop drilling, and you can’t be bothered to hit Go To References all morning. In any case, sometimes you just wish you could see where that specific object in the debugger was created.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://garrido.io/notes/wireguard-topologies-for-self-hosting-at-home/"&gt;WireGuard topologies for self-hosting at home&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mazzo.li/posts/stopping-linux-threads.html"&gt;How to stop Linux threads cleanly&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Once you get into the business of starting threads, you’re probably also in the business of stopping them. However the former is much easier than the latter. With “stopping” I mean stopping the thread while giving it a chance to run some cleanup operations before fully terminating. Or in other words, we want to terminate a thread while ensuring that memory is freed, locks are released, logs are flushed, and so on&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tanelpoder.com/posts/generate-qr-code-with-pure-sql-in-postgres/"&gt;pqr.sql: Generate QR Codes with Pure SQL in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rack/rack-attack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rack-attack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Rack middleware for blocking &amp;amp; throttling&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/timtatt/sift" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sift&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight terminal UI for displaying Go tests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ebitengine/oto" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;oto&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;♪ A low-level library to play sound on multiple platforms ♪&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://pgsync.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgsync&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;keeps PostgreSQL/MySQL/MariaDB as your source of truth and publishes denormalized documents to Elasticsearch/OpenSearch—continuously and transactionally.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/h4kbas/pgcalendar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgcalendar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that provides infinite calendar functionality for recurring schedules with exceptions&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://anchor.dev/relay" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;relay&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast &amp;amp; free browser trusted HTTPS certificates&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/BuilderIO/builder" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;builder&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visual Development for React, Vue, Svelte, Qwik, and more&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content into Simplified Chinese (zh-CN) as indicated by the target language specification in the system prompt.

Let me translate the content while preserving the HTML structure and original paragraph breaks.

Key elements to translate:
1. Title: "Better Dev Link - Resource around the web on becoming a better programmer"
2. All the paragraphs and descriptions
3. The "Code to read" and "Tools" section headers
4. All link descriptions and summaries

I need to maintain the HTML structure including all tags, links, and formatting.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源精选&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;秋天已经来了，我们也会继续推出更多期内容。希望大家都有一个精彩的万圣节。我还分享了一个故事，关于有人因为在面试中被骗运行代码而差点被黑客入侵。提醒大家要时刻保持安全，现在千万不要在本地运行不受信任的代码。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/hdskc3nq5hrt576pu56rq17hxq4"&gt;使用全新的开发者平台在 HubSpot 上构建你的下一个项目&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;HubSpot 开发者平台为你提供工具来构建、扩展和自信地扩展规模。借助统一的平台创建 AI 就绪的应用、集成和工作流，让你的业务与之一同成长。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cfenollosa/os-tutorial/tree/master"&gt;如何从零开始创建一个操作系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;听起来可能很复杂，但实际上通过从前面的基础一步步构建，是非常容易上手的。例如，编写初始引导加载程序你只需要：
  loop:
      jmp loop&lt;/p&gt;
&lt;p&gt;times 510-($-$$) db 0
  dw 0xaa55&lt;/p&gt;
&lt;p&gt;这是一个非常详细的设置，可以让你准备好模拟器来开始学习这些内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/caching"&gt;缓存&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每次你使用电脑时，缓存都在工作以确保你的体验是快速的。电脑所做的所有事情，从在 CPU 上执行指令，到请求你的 X.com 信息流，再到加载这个网页，都严重依赖缓存。你即将享受一场关于缓存的引导式交互之旅：这是计算领域中最优雅、最强大、最普遍的创新。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://samwho.dev/big-o/"&gt;Big O&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Big O 符号的可视化入门。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eli.thegreenplace.net/2025/consistent-hashing/"&gt;一致性哈希&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章是对一致性哈希的介绍，这是一种设计哈希表的方法，使得当哈希表的大小变化时，只需要重新计算一小部分键。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.tigerdata.com/learn/understanding-postgresql-tablespaces"&gt;理解 PostgreSQL 表空间&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;默认情况下，所有 Postgres 数据都存储在同一个目录下、同一个路径中，因此也在同一个卷上。这限制了我们扩展，许多云提供商都有最大卷大小限制，而且它们都共享相同的 IO。我们能做些什么来把数据库放在不同的位置呢？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.daviddodda.com/how-i-almost-got-hacked-by-a-job-interview"&gt;我是如何在"求职面试"中差点被黑客入侵的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这个时代复杂的网络钓鱼攻击无处不在，请务必小心。最重要的是，永远不要在本地直接运行不受信任的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heikkila.dev/blog/find-where-a-specific-object-was-allocated-in-javascript/"&gt;使用 DevTools 在 JavaScript 中查找特定对象是在哪里分配的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;也许你在调试一个网络请求，但堆栈跟踪已经被批处理机制洗掉了。也许你有一个庞大的 React 代码库，有很长的属性透传问题，而你不想整个上午都在点击"转到引用"。无论如何，有时候你只是希望能在调试器中看到那个特定对象是在哪里创建的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://garrido.io/notes/wireguard-topologies-for-self-hosting-at-home/"&gt;在家自托管的 WireGuard 拓扑结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mazzo.li/posts/stopping-linux-threads.html"&gt;如何干净地停止 Linux 线程&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一旦你开始从事启动线程的业务，你可能也需要从事停止它们的业务。然而，前者比后者要容易得多。我说的"停止"是指在线程终止之前给它一个机会运行一些清理操作。换句话说，我们想在确保内存被释放、锁被释放、日志被刷新等等的同时终止一个线程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tanelpoder.com/posts/generate-qr-code-with-pure-sql-in-postgres/"&gt;pqr.sql：在 PostgreSQL 中用纯 SQL 生成二维码&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rack/rack-attack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rack-attack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于阻止和限制请求的 Rack 中间件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/timtatt/sift" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sift&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于显示 Go 测试的轻量级终端 UI&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ebitengine/oto" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;oto&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;♪ 在多个平台上播放声音的低级库 ♪&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pgsync.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgsync&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将 PostgreSQL/MySQL/MariaDB 作为数据源，并持续且事务性地将非规范化文档发布到 Elasticsearch/OpenSearch。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/h4kbas/pgcalendar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgcalendar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个为周期性日程提供无限日历功能的 PostgreSQL 扩展，包含例外处理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://anchor.dev/relay" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;relay&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速且免费的浏览器信任的 HTTPS 证书&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/BuilderIO/builder" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;builder&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于 React、Vue、Svelte、Qwik 等的视觉化开发&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/281"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s already autumn and we will continue to get more issue moving forward. Hope everyone have a great haloween ahead. I also shared a story about someone almost got hack by being trick into running code for an interview. Remind so stay safe these day, never run untrusted code on your machine.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/hdskc3nq5hrt576pu56rq17hxq4"&gt;Build your next on HubSpot with the flexibility of an all-new Developer Platform&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The HubSpot Developer Platform gives you the tools to build, extend, and scale with confidence. Create AI-ready apps, integrations, and workflows faster with a unified platform designed to grow alongside your business.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/cfenollosa/os-tutorial/tree/master"&gt;How to create an OS from scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;May sound overwhelm but it&amp;rsquo;s very approachable with step by step building from previous foundation. Eg to write the initial boot loader you just need:
  loop:
      jmp loop&lt;/p&gt;

&lt;p&gt;times 510-($-$$) db 0
  dw 0xaa55&lt;/p&gt;

&lt;p&gt;A very detail setup so you can prepare emulator to start learning these.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/caching"&gt;Caching&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Every time you use a computer, caches work to ensure your experience is fast. Everything a computer does from executing an instruction on the CPU, to requesting your X.com feed, to loading this very webpage, relies heavily on caching. You are about to enjoy a guided, interactive tour of caching: the most elegant, powerful, and pervasive innovation in computing.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://samwho.dev/big-o/"&gt;Big O&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A visual introduction to big O notation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eli.thegreenplace.net/2025/consistent-hashing/"&gt;Consistent hashing&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This post is an introduction to consistent hashing, an algorithm for designing a hash table such that only a small portion of keys has to be recomputed when the table&amp;rsquo;s size changes.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.tigerdata.com/learn/understanding-postgresql-tablespaces"&gt;Understanding PostgreSQL Tablespaces&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;By default all of the Postgres data stay in the same directory, under the same path and therefore the same volume. This limit our scale, many cloud provider has a max volume size, and they all share same IO. What can we do to put the database at different location instead?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.daviddodda.com/how-i-almost-got-hacked-by-a-job-interview"&gt;How I Almost Got Hacked By A 'Job Interview&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Be careful out there with sophisicated phishing attempt nowadays. Bottom line is never ever run untrusted code directly on your machine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://heikkila.dev/blog/find-where-a-specific-object-was-allocated-in-javascript/"&gt;Find where a specific object was allocated in JavaScript with DevTools&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Maybe you’re debugging a network request, but the stack trace has been laundered away by a batching mechanism. Maybe you have an enormous React codebase with kilometers of prop drilling, and you can’t be bothered to hit Go To References all morning. In any case, sometimes you just wish you could see where that specific object in the debugger was created.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://garrido.io/notes/wireguard-topologies-for-self-hosting-at-home/"&gt;WireGuard topologies for self-hosting at home&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mazzo.li/posts/stopping-linux-threads.html"&gt;How to stop Linux threads cleanly&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Once you get into the business of starting threads, you’re probably also in the business of stopping them. However the former is much easier than the latter. With “stopping” I mean stopping the thread while giving it a chance to run some cleanup operations before fully terminating. Or in other words, we want to terminate a thread while ensuring that memory is freed, locks are released, logs are flushed, and so on&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tanelpoder.com/posts/generate-qr-code-with-pure-sql-in-postgres/"&gt;pqr.sql: Generate QR Codes with Pure SQL in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rack/rack-attack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rack-attack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Rack middleware for blocking &amp;amp; throttling&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/timtatt/sift" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sift&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight terminal UI for displaying Go tests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ebitengine/oto" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;oto&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;♪ A low-level library to play sound on multiple platforms ♪&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://pgsync.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgsync&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;keeps PostgreSQL/MySQL/MariaDB as your source of truth and publishes denormalized documents to Elasticsearch/OpenSearch—continuously and transactionally.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/h4kbas/pgcalendar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgcalendar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A PostgreSQL extension that provides infinite calendar functionality for recurring schedules with exceptions&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://anchor.dev/relay" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;relay&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast &amp;amp; free browser trusted HTTPS certificates&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/BuilderIO/builder" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;builder&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visual Development for React, Vue, Svelte, Qwik, and more&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;&lt;think&gt;The user wants me to translate this HTML content into Simplified Chinese (zh-CN) as indicated by the target language specification in the system prompt.

Let me translate the content while preserving the HTML structure and original paragraph breaks.

Key elements to translate:
1. Title: "Better Dev Link - Resource around the web on becoming a better programmer"
2. All the paragraphs and descriptions
3. The "Code to read" and "Tools" section headers
4. All link descriptions and summaries

I need to maintain the HTML structure including all tags, links, and formatting.&lt;/think&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 成为更优秀程序员的网络资源精选&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;秋天已经来了，我们也会继续推出更多期内容。希望大家都有一个精彩的万圣节。我还分享了一个故事，关于有人因为在面试中被骗运行代码而差点被黑客入侵。提醒大家要时刻保持安全，现在千万不要在本地运行不受信任的代码。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;请我喝杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/hdskc3nq5hrt576pu56rq17hxq4"&gt;使用全新的开发者平台在 HubSpot 上构建你的下一个项目&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;HubSpot 开发者平台为你提供工具来构建、扩展和自信地扩展规模。借助统一的平台创建 AI 就绪的应用、集成和工作流，让你的业务与之一同成长。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/cfenollosa/os-tutorial/tree/master"&gt;如何从零开始创建一个操作系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;听起来可能很复杂，但实际上通过从前面的基础一步步构建，是非常容易上手的。例如，编写初始引导加载程序你只需要：
  loop:
      jmp loop&lt;/p&gt;
&lt;p&gt;times 510-($-$$) db 0
  dw 0xaa55&lt;/p&gt;
&lt;p&gt;这是一个非常详细的设置，可以让你准备好模拟器来开始学习这些内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/caching"&gt;缓存&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每次你使用电脑时，缓存都在工作以确保你的体验是快速的。电脑所做的所有事情，从在 CPU 上执行指令，到请求你的 X.com 信息流，再到加载这个网页，都严重依赖缓存。你即将享受一场关于缓存的引导式交互之旅：这是计算领域中最优雅、最强大、最普遍的创新。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://samwho.dev/big-o/"&gt;Big O&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Big O 符号的可视化入门。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eli.thegreenplace.net/2025/consistent-hashing/"&gt;一致性哈希&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章是对一致性哈希的介绍，这是一种设计哈希表的方法，使得当哈希表的大小变化时，只需要重新计算一小部分键。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.tigerdata.com/learn/understanding-postgresql-tablespaces"&gt;理解 PostgreSQL 表空间&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;默认情况下，所有 Postgres 数据都存储在同一个目录下、同一个路径中，因此也在同一个卷上。这限制了我们扩展，许多云提供商都有最大卷大小限制，而且它们都共享相同的 IO。我们能做些什么来把数据库放在不同的位置呢？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.daviddodda.com/how-i-almost-got-hacked-by-a-job-interview"&gt;我是如何在"求职面试"中差点被黑客入侵的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这个时代复杂的网络钓鱼攻击无处不在，请务必小心。最重要的是，永远不要在本地直接运行不受信任的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heikkila.dev/blog/find-where-a-specific-object-was-allocated-in-javascript/"&gt;使用 DevTools 在 JavaScript 中查找特定对象是在哪里分配的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;也许你在调试一个网络请求，但堆栈跟踪已经被批处理机制洗掉了。也许你有一个庞大的 React 代码库，有很长的属性透传问题，而你不想整个上午都在点击"转到引用"。无论如何，有时候你只是希望能在调试器中看到那个特定对象是在哪里创建的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://garrido.io/notes/wireguard-topologies-for-self-hosting-at-home/"&gt;在家自托管的 WireGuard 拓扑结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mazzo.li/posts/stopping-linux-threads.html"&gt;如何干净地停止 Linux 线程&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一旦你开始从事启动线程的业务，你可能也需要从事停止它们的业务。然而，前者比后者要容易得多。我说的"停止"是指在线程终止之前给它一个机会运行一些清理操作。换句话说，我们想在确保内存被释放、锁被释放、日志被刷新等等的同时终止一个线程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tanelpoder.com/posts/generate-qr-code-with-pure-sql-in-postgres/"&gt;pqr.sql：在 PostgreSQL 中用纯 SQL 生成二维码&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rack/rack-attack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rack-attack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于阻止和限制请求的 Rack 中间件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/timtatt/sift" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sift&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于显示 Go 测试的轻量级终端 UI&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ebitengine/oto" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;oto&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;♪ 在多个平台上播放声音的低级库 ♪&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pgsync.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgsync&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将 PostgreSQL/MySQL/MariaDB 作为数据源，并持续且事务性地将非规范化文档发布到 Elasticsearch/OpenSearch。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/h4kbas/pgcalendar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgcalendar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个为周期性日程提供无限日历功能的 PostgreSQL 扩展，包含例外处理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://anchor.dev/relay" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;relay&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速且免费的浏览器信任的 HTTPS 证书&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/BuilderIO/builder" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;builder&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于 React、Vue、Svelte、Qwik 等的视觉化开发&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-10-20T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/280</id>
    <title>Issues #280 Sep 08, 2025 || 

问题 #280 2025年9月8日</title>
    <updated>2025-09-08T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;We came back with other issue. I had got a new job with lot of duties last few month but things are cooling down so we&amp;rsquo;re going back :).&lt;/p&gt;

&lt;p&gt;My friend, &lt;a href="https://joeldare.com/"&gt;Joel Dare&lt;/a&gt; has also start writing a news letter, you may consider to subscribe there. He&amp;rsquo;s also creator of &lt;a href="https://neat.joeldare.com/"&gt;neat&lt;/a&gt; which as its name, a very neat css framework.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;Transform Your Career: Build, Learn, and Network at AWS re:Invent 2025 | Las Vegas.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Transform your skills at AWS re:Invent 2025. Over five dynamic days, you’ll dive into technical training, explore the latest technologies, and build valuable peer connections.Take home practical solutions that deliver instant value to your work and advance your career.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Join us in Las Vegas from December 1-5 to:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Access insider knowledge through interactive labs, technical sessions, and workshop&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Accelerate your learning through direct mentorship from AWS experts&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Build your network and connect with peers who share your technical interests through AWS Community Programs at the Developer Pavilion&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Experience live music, amazing food, and more at re:Play, the ultimate tech celebration&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Attend in person and receive a 50% discount voucher for any AWS Certification exam&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Team up and save - Get one free pass for every 10 passes purchased*&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Our 2025 event catalog is now available! From experimenting with new solutions to interactive workshops and hands-on training, we&amp;rsquo;ve got something for everyone at &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;AWS re:Invent&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.righto.com/2025/06/inside-apollo-fdai.html"&gt;Inside the Apollo "8-Ball" FDAI (Flight Director / Attitude Indicator)"
&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The Apollo &amp;ldquo;8-Ball&amp;rdquo; FDAI (Flight Director/Attitude Indicator) was a crucial instrument in Apollo spacecraft, used to display the vehicle&amp;rsquo;s orientation. The article details its complex internal workings, which include a multi-axis rotating ball mechanism driven by three motors and a servo loop. The specific unit examined was later modified for use in a Space Shuttle simulator, with changes made to its components and markings.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://namvdo.ai/cpu-branch-prediction/"&gt;Branch prediction: Why CPUs can’t wait?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are some latency numbers that every programmer should know, according to Jeff Dean, and one of them is branch misprediction, which costs around 5ns in 2012, and the latency remains roughly the same as the time of writing this post. So what is branch prediction, what happens when it’s mispredicted, and why is it costly?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://stefan-marr.de/2025/08/how-to-slow-down-a-program/"&gt;How to Slow Down a Program? And Why it Can Be Useful.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Making programs slower can be useful to find race conditions, to simulate speedups, and to assess how accurate profilers are.
To detect race conditions, we may want to use an approach similar to fuzzing. Instead of exploring a program’s implementation by varying its input, we can explore different instruction interleavings, thread or event schedules, by slowing down program parts to change timings. This approach allows us to identify concurrency bugs and is used by CHESS, WAFFLE, and NACD.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.thenile.dev/blog/uuidv7"&gt;UUIDv7 Comes to PostgreSQL 18&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;UIDv7 is a highly important and long-awaited feature that addresses a major pain point for developers who use UUIDs as primary keys in databases. Unlike older versions like UUIDv4, which are randomly generated and lead to poor performance and index bloat in B-tree indexes, UUIDv7 incorporates a Unix Epoch timestamp. This makes it time-ordered, ensuring that new UUIDs are inserted sequentially, which significantly improves performance for write-heavy workloads. The article emphasizes that this quiet but impactful addition &amp;ldquo;brings the best of both worlds&amp;rdquo; by providing global uniqueness while also being sortable and performance-friendly.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://codeberg.org/oils/oils.vim/src/branch/main/doc/algorithms.md"&gt;Three Algorithms for YSH Syntax Highlighting&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I always like syntax highling algorithm. It&amp;rsquo;s something we take for granted and didn&amp;rsquo;t ask how it can be done. Andy walked us through how he do it for his own shell language.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://osor.io/text"&gt;Rendering Crispy Text On The GPU&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The webpage describes a new method for GPU text rendering that uses vector data of glyphs instead of pre-baked textures, addressing issues like poor quality with certain fonts and large texture sizes. The approach involves loading raw Bézier curves, sending them to the GPU, and rasterizing them at runtime with a temporal accumulation technique for high-quality anti-aliasing. This method also allows for customized subpixel anti-aliasing to eliminate color fringing on different monitor layouts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://madebyevan.com/algos/crdt-text-buffer/"&gt;CRDT: Text Buffer&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Collaboratively editing strings of text is a common desire in peer-to-peer applications. For example, a note-taking app might represent each document as a single collaboratively-edited string of text.&lt;/p&gt;

&lt;p&gt;The algorithm presented here is one way to do this. It comes from a family of algorithms called CRDTs, which I will not describe here. It&amp;rsquo;s similar to the approaches taken by popular collaborative text editing libraries such as Yjs and Automerge. Other articles have already been written about these similar approaches (see the references section below), but this article also has a nice interactive visualization of what goes on under the hood.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://briefer.cloud/blog/posts/p-hacking/"&gt;P-Hacking in Startups&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Speed kills rigor. In startups, the pressure to ship fast pushes teams to report anything that looks like an improvement. That’s how p-hacking happens. This piece breaks down three common cases—and how to avoid them&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://xania.org/202506/how-compiler-explorer-works"&gt;How Compiler Explorer Works in 2025&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;explains how Compiler Explorer works, a popular online tool for compiling code and viewing assembly output. The site handles millions of compilations annually, using Google&amp;rsquo;s nsjail tool for security to isolate compilation processes. To manage a massive 4 terabyte collection of over 4,700 compiler versions and reduce latency, it uses squashfs images mounted over NFS. The article concludes by discussing the site&amp;rsquo;s future plans, including the addition of an AI explanation tool and user accounts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://rrampage.github.io/2025/06/13/strace-tips-for-better-debugging/"&gt;strace tips for better debugging&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever scratch your head and see why your program seems hang? with very low CPU utilization? When you do &lt;code&gt;strace&lt;/code&gt; it just show a bunch of FUTEX. In this short article we just learn some useful options and flags of strace to debug these easiser&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/"&gt;Git Notes: git's coolest, most unloved­ feature&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;the short of it is: they’re cool for appending notes from automated systems (like ticket or build systems) but not really for having interactive conversations with other developers (at least not yet)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yousef-rafat/miniDiffusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;miniDiffusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A reimplementation of Stable Diffusion 3.5 in pure PyTorch. The &lt;a href="https://news.ycombinator.com/item?id=44276476"&gt;Hacker News&lt;/a&gt; thread also had a lot of userful and great comment.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EbodShojaei/bake" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bake&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Makefile formatter and linter. It only took 50 years!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/public-law/naturally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;naturally&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Natural (&amp;ldquo;version number&amp;rdquo;) sorting with support for: name, legal doc numbering,&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/adamhl8/filterql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filterql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tiny query language for filtering structured data&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://codeberg.org/chrisn/peaks.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;peaks.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;JavaScript UI component for interacting with audio waveforms&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/3b1b/manim" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;manim&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Animation engine for explanatory math videos&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/halo/LinkLiar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LinkLiar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Link-Layer MAC spoofing GUI for macOS&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Orange-OpenSource/hurl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hurl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;run and test HTTP requests with plain text.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/aws/pgactive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgactive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Active-active Replication Extension for PostgreSQL (pgactive)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hashmap-kz/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgrwl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Cloud-Native PostgreSQL WAL receiver. Stream, compress, encrypt, upload, retain and monitor your WAL archive.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/good-lly/s3mini" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;s3mini&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Tiny S3 client. Edge computing ready. No-dep. In Typescript. Works with @cloudflare @minio @Backblaze @digitalocean @garagehq&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://gonzo.controltheory.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gonzo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A powerful, real-time log analysis terminal UI inspired by k9s. Analyze log streams with beautiful charts, AI-powered insights, and advanced filtering - all from your terminal&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 资源围绕网络，帮助成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;我们又遇到了其他问题。我在过去几个月里获得了一份新工作，有很多职责，但现在事情逐渐平静下来，我们又回来了 :).&lt;/p&gt;
&lt;p&gt;我的朋友 &lt;a href="https://joeldare.com/"&gt;Joel Dare&lt;/a&gt; 也开始写新闻简报，您可以考虑订阅。他也是 &lt;a href="https://neat.joeldare.com/"&gt;neat&lt;/a&gt; 的创建者，这是一个以其名称命名的非常整洁的 CSS 框架。&lt;/p&gt;
&lt;p&gt;如果您喜欢 BetterDev，请通过与朋友分享来传播这个信息。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;Transform Your Career: Build, Learn, and Network at AWS re:Invent 2025 | Las Vegas.&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 AWS re:Invent 2025 上提升您的技能。五天动态的活动中，您将深入技术培训，探索最新技术，并建立有价值的同行联系。带回家实用的解决方案，这些方案能立即为您的工作带来价值并推动您的职业发展。&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;加入我们，在拉斯维加斯 12 月 1 日至 5 日期间：&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 通过交互式实验室、技术研讨会和工作坊获取内部知识&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 通过直接与 AWS 专家进行指导学习来加速您的学习&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 在开发者馆的 AWS 社区计划中建立您的网络并与其他技术爱好者建立联系&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 在 re:Play，终极科技庆典中体验现场音乐、美食等&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 亲临现场并获得任何 AWS 认证考试的 50% 折扣券&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 团队合作并节省费用 - 每购买 10 张通行证即可获得一张免费通行证&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;我们的 2025 年活动目录现已发布！从实验新解决方案到互动研讨会和动手培训，我们为每个人在 &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;AWS re:Invent&lt;/a&gt; 上都有所准备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.righto.com/2025/06/inside-apollo-fdai.html"&gt;Inside the Apollo "8-Ball" FDAI (Flight Director / Attitude Indicator)"&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Apollo “8-Ball” FDAI（飞行指挥/姿态指示器）是阿波罗飞船上的关键仪器，用于显示飞行器的方位。文章详细介绍了其复杂的内部工作机制，包括由三个电机和伺服环驱动的多轴旋转球机制。所研究的具体单元后来被修改用于航天飞机模拟器，对其组件和标记进行了更改。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://namvdo.ai/cpu-branch-prediction/"&gt;Branch prediction: Why CPUs can’t wait?&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;根据 Jeff Dean 的说法，每个程序员都应该知道一些延迟数字，其中之一是分支误预测，它在 2012 年的延迟成本约为 5ns，而延迟在撰写本文时仍大致相同。那么什么是分支预测，当它被误预测时会发生什么，为什么它会如此昂贵？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://stefan-marr.de/2025/08/how-to-slow-down-a-program/"&gt;How to Slow Down a Program? And Why it Can Be Useful.&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使程序变慢对于发现竞态条件、模拟加速以及评估剖析器的准确性可能很有用。为了检测竞态条件，我们可以采用类似于模糊测试的方法。而不是通过改变输入来探索程序的实现，我们可以通过减慢程序部分来改变时间安排，探索不同的指令交错、线程或事件调度。这种方法允许我们识别并发错误，并被 CHESS、WAFFLE 和 NACD 使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.thenile.dev/blog/uuidv7"&gt;UUIDv7 Comes to PostgreSQL 18&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;UUIDv7 是一个非常重要且期待已久的特性，解决了使用 UUID 作为数据库主键的开发人员的主要痛点。与较旧的版本如 UUIDv4 不同，后者是随机生成的，会导致 B 树索引的性能问题和索引膨胀，UUIDv7 融入了 Unix Epoch 时间戳。这使得它按时间排序，确保新的 UUID 按顺序插入，这显著提高了写密集型工作负载的性能。文章强调，这一安静但影响深远的添加“结合了两者最好的一面”，即提供全球唯一性的同时，也是可排序且性能友好的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codeberg.org/oils/oils.vim/src/branch/main/doc/algorithms.md"&gt;Three Algorithms for YSH Syntax Highlighting&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我总是喜欢语法高亮算法。这是我们习以为常的东西，很少有人问它是如何实现的。Andy 向我们展示了他是如何为自己的 shell 语言实现的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://osor.io/text"&gt;Rendering Crispy Text On The GPU&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;该网页描述了一种新的 GPU 文本渲染方法，使用字形的向量数据而不是预烘焙的纹理，解决了某些字体质量差和纹理尺寸过大的问题。该方法涉及加载原始贝塞尔曲线，将其发送到 GPU，并在运行时通过时间累积技术进行光栅化，以实现高质量的抗锯齿效果。这种方法还允许自定义子像素抗锯齿，以消除不同显示器布局上的颜色边缘。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://briefer.cloud/blog/posts/p-hacking/"&gt;P-Hacking in Startups&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;速度扼杀了严谨性。在初创公司中，快速交付的压力促使团队报告任何看起来像改进的东西。这就是 p-hacking 发生的方式。本文分解了三种常见的案例以及如何避免它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xania.org/202506/how-compiler-explorer-works"&gt;How Compiler Explorer Works in 2025&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解释了 Compiler Explorer 的工作原理，这是一个流行的在线工具，用于编译代码并查看汇编输出。该网站每年处理数百万次编译，使用 Google 的 nsjail 工具进行安全隔离，以隔离编译过程。为了管理庞大的 4TB 编译器版本集合和减少延迟，它使用 squashfs 镜像通过 NFS 挂载。文章最后讨论了网站的未来计划，包括添加 AI 解释工具和用户账户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rrampage.github.io/2025/06/13/strace-tips-for-better-debugging/"&gt;strace tips for better debugging&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;您是否曾经困惑于为什么程序似乎挂起？CPU 利用率非常低？当您使用 &lt;code class="notranslate" translate="no"&gt;strace&lt;/code&gt; 时，它只会显示一堆 FUTEX。在本文中，我们学习了一些有用的 strace 选项和标志，以便更容易地进行这些调试。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/"&gt;Git Notes: git's coolest, most unloved­ feature&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;简而言之：它们适合用于添加来自自动化系统（如票务或构建系统）的注释，但不太适合用于与其他开发人员进行交互式对话（至少目前还不行）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/yousef-rafat/miniDiffusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;miniDiffusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用纯 PyTorch 重新实现的 Stable Diffusion 3.5。 &lt;a href="https://news.ycombinator.com/item?id=44276476"&gt;Hacker News&lt;/a&gt; 的讨论线也包含了许多有用且精彩的评论。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EbodShojaei/bake" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bake&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Makefile 格式化和检查工具。只用了 50 年！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/public-law/naturally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;naturally&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;支持名称、法律文件编号等的自然（“版本号”）排序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/adamhl8/filterql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filterql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一种用于过滤结构化数据的小型查询语言。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/chrisn/peaks.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;peaks.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于与音频波形交互的 JavaScript 用户界面组件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/3b1b/manim" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;manim&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于解释数学视频的动画引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/halo/LinkLiar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LinkLiar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于 macOS 的链接层 MAC 欺骗图形用户界面。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Orange-OpenSource/hurl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hurl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用纯文本运行和测试 HTTP 请求。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aws/pgactive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgactive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 的主动-主动复制扩展（pgactive）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hashmap-kz/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgrwl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;云原生 PostgreSQL WAL 接收器。流式传输、压缩、加密、上传、保留和监控您的 WAL 归档。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/good-lly/s3mini" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;s3mini&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;微型 S3 客户端。适用于边缘计算。无依赖项。使用 TypeScript。与 @cloudflare @minio @Backblaze @digitalocean @garagehq 兼容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gonzo.controltheory.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gonzo&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个强大的实时日志分析终端用户界面，灵感来自 k9s。在终端中分析日志流，使用美丽的图表、AI 驱动的见解和高级过滤功能。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/280"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;We came back with other issue. I had got a new job with lot of duties last few month but things are cooling down so we&amp;rsquo;re going back :).&lt;/p&gt;

&lt;p&gt;My friend, &lt;a href="https://joeldare.com/"&gt;Joel Dare&lt;/a&gt; has also start writing a news letter, you may consider to subscribe there. He&amp;rsquo;s also creator of &lt;a href="https://neat.joeldare.com/"&gt;neat&lt;/a&gt; which as its name, a very neat css framework.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;Transform Your Career: Build, Learn, and Network at AWS re:Invent 2025 | Las Vegas.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Transform your skills at AWS re:Invent 2025. Over five dynamic days, you’ll dive into technical training, explore the latest technologies, and build valuable peer connections.Take home practical solutions that deliver instant value to your work and advance your career.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Join us in Las Vegas from December 1-5 to:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Access insider knowledge through interactive labs, technical sessions, and workshop&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Accelerate your learning through direct mentorship from AWS experts&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Build your network and connect with peers who share your technical interests through AWS Community Programs at the Developer Pavilion&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Experience live music, amazing food, and more at re:Play, the ultimate tech celebration&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Attend in person and receive a 50% discount voucher for any AWS Certification exam&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;● Team up and save - Get one free pass for every 10 passes purchased*&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Our 2025 event catalog is now available! From experimenting with new solutions to interactive workshops and hands-on training, we&amp;rsquo;ve got something for everyone at &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;AWS re:Invent&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.righto.com/2025/06/inside-apollo-fdai.html"&gt;Inside the Apollo "8-Ball" FDAI (Flight Director / Attitude Indicator)"
&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The Apollo &amp;ldquo;8-Ball&amp;rdquo; FDAI (Flight Director/Attitude Indicator) was a crucial instrument in Apollo spacecraft, used to display the vehicle&amp;rsquo;s orientation. The article details its complex internal workings, which include a multi-axis rotating ball mechanism driven by three motors and a servo loop. The specific unit examined was later modified for use in a Space Shuttle simulator, with changes made to its components and markings.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://namvdo.ai/cpu-branch-prediction/"&gt;Branch prediction: Why CPUs can’t wait?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are some latency numbers that every programmer should know, according to Jeff Dean, and one of them is branch misprediction, which costs around 5ns in 2012, and the latency remains roughly the same as the time of writing this post. So what is branch prediction, what happens when it’s mispredicted, and why is it costly?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://stefan-marr.de/2025/08/how-to-slow-down-a-program/"&gt;How to Slow Down a Program? And Why it Can Be Useful.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Making programs slower can be useful to find race conditions, to simulate speedups, and to assess how accurate profilers are.
To detect race conditions, we may want to use an approach similar to fuzzing. Instead of exploring a program’s implementation by varying its input, we can explore different instruction interleavings, thread or event schedules, by slowing down program parts to change timings. This approach allows us to identify concurrency bugs and is used by CHESS, WAFFLE, and NACD.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.thenile.dev/blog/uuidv7"&gt;UUIDv7 Comes to PostgreSQL 18&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;UIDv7 is a highly important and long-awaited feature that addresses a major pain point for developers who use UUIDs as primary keys in databases. Unlike older versions like UUIDv4, which are randomly generated and lead to poor performance and index bloat in B-tree indexes, UUIDv7 incorporates a Unix Epoch timestamp. This makes it time-ordered, ensuring that new UUIDs are inserted sequentially, which significantly improves performance for write-heavy workloads. The article emphasizes that this quiet but impactful addition &amp;ldquo;brings the best of both worlds&amp;rdquo; by providing global uniqueness while also being sortable and performance-friendly.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://codeberg.org/oils/oils.vim/src/branch/main/doc/algorithms.md"&gt;Three Algorithms for YSH Syntax Highlighting&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I always like syntax highling algorithm. It&amp;rsquo;s something we take for granted and didn&amp;rsquo;t ask how it can be done. Andy walked us through how he do it for his own shell language.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://osor.io/text"&gt;Rendering Crispy Text On The GPU&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The webpage describes a new method for GPU text rendering that uses vector data of glyphs instead of pre-baked textures, addressing issues like poor quality with certain fonts and large texture sizes. The approach involves loading raw Bézier curves, sending them to the GPU, and rasterizing them at runtime with a temporal accumulation technique for high-quality anti-aliasing. This method also allows for customized subpixel anti-aliasing to eliminate color fringing on different monitor layouts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://madebyevan.com/algos/crdt-text-buffer/"&gt;CRDT: Text Buffer&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Collaboratively editing strings of text is a common desire in peer-to-peer applications. For example, a note-taking app might represent each document as a single collaboratively-edited string of text.&lt;/p&gt;

&lt;p&gt;The algorithm presented here is one way to do this. It comes from a family of algorithms called CRDTs, which I will not describe here. It&amp;rsquo;s similar to the approaches taken by popular collaborative text editing libraries such as Yjs and Automerge. Other articles have already been written about these similar approaches (see the references section below), but this article also has a nice interactive visualization of what goes on under the hood.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://briefer.cloud/blog/posts/p-hacking/"&gt;P-Hacking in Startups&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Speed kills rigor. In startups, the pressure to ship fast pushes teams to report anything that looks like an improvement. That’s how p-hacking happens. This piece breaks down three common cases—and how to avoid them&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://xania.org/202506/how-compiler-explorer-works"&gt;How Compiler Explorer Works in 2025&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;explains how Compiler Explorer works, a popular online tool for compiling code and viewing assembly output. The site handles millions of compilations annually, using Google&amp;rsquo;s nsjail tool for security to isolate compilation processes. To manage a massive 4 terabyte collection of over 4,700 compiler versions and reduce latency, it uses squashfs images mounted over NFS. The article concludes by discussing the site&amp;rsquo;s future plans, including the addition of an AI explanation tool and user accounts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://rrampage.github.io/2025/06/13/strace-tips-for-better-debugging/"&gt;strace tips for better debugging&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever scratch your head and see why your program seems hang? with very low CPU utilization? When you do &lt;code&gt;strace&lt;/code&gt; it just show a bunch of FUTEX. In this short article we just learn some useful options and flags of strace to debug these easiser&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/"&gt;Git Notes: git's coolest, most unloved­ feature&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;the short of it is: they’re cool for appending notes from automated systems (like ticket or build systems) but not really for having interactive conversations with other developers (at least not yet)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yousef-rafat/miniDiffusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;miniDiffusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A reimplementation of Stable Diffusion 3.5 in pure PyTorch. The &lt;a href="https://news.ycombinator.com/item?id=44276476"&gt;Hacker News&lt;/a&gt; thread also had a lot of userful and great comment.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EbodShojaei/bake" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bake&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Makefile formatter and linter. It only took 50 years!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/public-law/naturally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;naturally&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Natural (&amp;ldquo;version number&amp;rdquo;) sorting with support for: name, legal doc numbering,&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/adamhl8/filterql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filterql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tiny query language for filtering structured data&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://codeberg.org/chrisn/peaks.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;peaks.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;JavaScript UI component for interacting with audio waveforms&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/3b1b/manim" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;manim&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Animation engine for explanatory math videos&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/halo/LinkLiar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LinkLiar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Link-Layer MAC spoofing GUI for macOS&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Orange-OpenSource/hurl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hurl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;run and test HTTP requests with plain text.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/aws/pgactive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgactive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Active-active Replication Extension for PostgreSQL (pgactive)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hashmap-kz/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgrwl&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Cloud-Native PostgreSQL WAL receiver. Stream, compress, encrypt, upload, retain and monitor your WAL archive.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/good-lly/s3mini" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;s3mini&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Tiny S3 client. Edge computing ready. No-dep. In Typescript. Works with @cloudflare @minio @Backblaze @digitalocean @garagehq&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://gonzo.controltheory.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gonzo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A powerful, real-time log analysis terminal UI inspired by k9s. Analyze log streams with beautiful charts, AI-powered insights, and advanced filtering - all from your terminal&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 资源围绕网络，帮助成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;我们又遇到了其他问题。我在过去几个月里获得了一份新工作，有很多职责，但现在事情逐渐平静下来，我们又回来了 :).&lt;/p&gt;
&lt;p&gt;我的朋友 &lt;a href="https://joeldare.com/"&gt;Joel Dare&lt;/a&gt; 也开始写新闻简报，您可以考虑订阅。他也是 &lt;a href="https://neat.joeldare.com/"&gt;neat&lt;/a&gt; 的创建者，这是一个以其名称命名的非常整洁的 CSS 框架。&lt;/p&gt;
&lt;p&gt;如果您喜欢 BetterDev，请通过与朋友分享来传播这个信息。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;Transform Your Career: Build, Learn, and Network at AWS re:Invent 2025 | Las Vegas.&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 AWS re:Invent 2025 上提升您的技能。五天动态的活动中，您将深入技术培训，探索最新技术，并建立有价值的同行联系。带回家实用的解决方案，这些方案能立即为您的工作带来价值并推动您的职业发展。&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;加入我们，在拉斯维加斯 12 月 1 日至 5 日期间：&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 通过交互式实验室、技术研讨会和工作坊获取内部知识&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 通过直接与 AWS 专家进行指导学习来加速您的学习&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 在开发者馆的 AWS 社区计划中建立您的网络并与其他技术爱好者建立联系&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 在 re:Play，终极科技庆典中体验现场音乐、美食等&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 亲临现场并获得任何 AWS 认证考试的 50% 折扣券&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;● 团队合作并节省费用 - 每购买 10 张通行证即可获得一张免费通行证&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;我们的 2025 年活动目录现已发布！从实验新解决方案到互动研讨会和动手培训，我们为每个人在 &lt;a href="https://www.vpdae.com/redirect/v2eldz500zh14wqby87imjjqscd"&gt;AWS re:Invent&lt;/a&gt; 上都有所准备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.righto.com/2025/06/inside-apollo-fdai.html"&gt;Inside the Apollo "8-Ball" FDAI (Flight Director / Attitude Indicator)"&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Apollo “8-Ball” FDAI（飞行指挥/姿态指示器）是阿波罗飞船上的关键仪器，用于显示飞行器的方位。文章详细介绍了其复杂的内部工作机制，包括由三个电机和伺服环驱动的多轴旋转球机制。所研究的具体单元后来被修改用于航天飞机模拟器，对其组件和标记进行了更改。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://namvdo.ai/cpu-branch-prediction/"&gt;Branch prediction: Why CPUs can’t wait?&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;根据 Jeff Dean 的说法，每个程序员都应该知道一些延迟数字，其中之一是分支误预测，它在 2012 年的延迟成本约为 5ns，而延迟在撰写本文时仍大致相同。那么什么是分支预测，当它被误预测时会发生什么，为什么它会如此昂贵？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://stefan-marr.de/2025/08/how-to-slow-down-a-program/"&gt;How to Slow Down a Program? And Why it Can Be Useful.&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使程序变慢对于发现竞态条件、模拟加速以及评估剖析器的准确性可能很有用。为了检测竞态条件，我们可以采用类似于模糊测试的方法。而不是通过改变输入来探索程序的实现，我们可以通过减慢程序部分来改变时间安排，探索不同的指令交错、线程或事件调度。这种方法允许我们识别并发错误，并被 CHESS、WAFFLE 和 NACD 使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.thenile.dev/blog/uuidv7"&gt;UUIDv7 Comes to PostgreSQL 18&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;UUIDv7 是一个非常重要且期待已久的特性，解决了使用 UUID 作为数据库主键的开发人员的主要痛点。与较旧的版本如 UUIDv4 不同，后者是随机生成的，会导致 B 树索引的性能问题和索引膨胀，UUIDv7 融入了 Unix Epoch 时间戳。这使得它按时间排序，确保新的 UUID 按顺序插入，这显著提高了写密集型工作负载的性能。文章强调，这一安静但影响深远的添加“结合了两者最好的一面”，即提供全球唯一性的同时，也是可排序且性能友好的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codeberg.org/oils/oils.vim/src/branch/main/doc/algorithms.md"&gt;Three Algorithms for YSH Syntax Highlighting&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我总是喜欢语法高亮算法。这是我们习以为常的东西，很少有人问它是如何实现的。Andy 向我们展示了他是如何为自己的 shell 语言实现的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://osor.io/text"&gt;Rendering Crispy Text On The GPU&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;该网页描述了一种新的 GPU 文本渲染方法，使用字形的向量数据而不是预烘焙的纹理，解决了某些字体质量差和纹理尺寸过大的问题。该方法涉及加载原始贝塞尔曲线，将其发送到 GPU，并在运行时通过时间累积技术进行光栅化，以实现高质量的抗锯齿效果。这种方法还允许自定义子像素抗锯齿，以消除不同显示器布局上的颜色边缘。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://briefer.cloud/blog/posts/p-hacking/"&gt;P-Hacking in Startups&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;速度扼杀了严谨性。在初创公司中，快速交付的压力促使团队报告任何看起来像改进的东西。这就是 p-hacking 发生的方式。本文分解了三种常见的案例以及如何避免它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xania.org/202506/how-compiler-explorer-works"&gt;How Compiler Explorer Works in 2025&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;解释了 Compiler Explorer 的工作原理，这是一个流行的在线工具，用于编译代码并查看汇编输出。该网站每年处理数百万次编译，使用 Google 的 nsjail 工具进行安全隔离，以隔离编译过程。为了管理庞大的 4TB 编译器版本集合和减少延迟，它使用 squashfs 镜像通过 NFS 挂载。文章最后讨论了网站的未来计划，包括添加 AI 解释工具和用户账户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rrampage.github.io/2025/06/13/strace-tips-for-better-debugging/"&gt;strace tips for better debugging&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;您是否曾经困惑于为什么程序似乎挂起？CPU 利用率非常低？当您使用 &lt;code class="notranslate" translate="no"&gt;strace&lt;/code&gt; 时，它只会显示一堆 FUTEX。在本文中，我们学习了一些有用的 strace 选项和标志，以便更容易地进行这些调试。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/"&gt;Git Notes: git's coolest, most unloved­ feature&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;简而言之：它们适合用于添加来自自动化系统（如票务或构建系统）的注释，但不太适合用于与其他开发人员进行交互式对话（至少目前还不行）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/yousef-rafat/miniDiffusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;miniDiffusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用纯 PyTorch 重新实现的 Stable Diffusion 3.5。 &lt;a href="https://news.ycombinator.com/item?id=44276476"&gt;Hacker News&lt;/a&gt; 的讨论线也包含了许多有用且精彩的评论。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EbodShojaei/bake" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bake&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Makefile 格式化和检查工具。只用了 50 年！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/public-law/naturally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;naturally&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;支持名称、法律文件编号等的自然（“版本号”）排序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/adamhl8/filterql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filterql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一种用于过滤结构化数据的小型查询语言。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/chrisn/peaks.js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;peaks.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于与音频波形交互的 JavaScript 用户界面组件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/3b1b/manim" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;manim&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于解释数学视频的动画引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/halo/LinkLiar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LinkLiar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于 macOS 的链接层 MAC 欺骗图形用户界面。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Orange-OpenSource/hurl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hurl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用纯文本运行和测试 HTTP 请求。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aws/pgactive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgactive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 的主动-主动复制扩展（pgactive）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hashmap-kz/pgrwl" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgrwl&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;云原生 PostgreSQL WAL 接收器。流式传输、压缩、加密、上传、保留和监控您的 WAL 归档。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/good-lly/s3mini" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;s3mini&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;微型 S3 客户端。适用于边缘计算。无依赖项。使用 TypeScript。与 @cloudflare @minio @Backblaze @digitalocean @garagehq 兼容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gonzo.controltheory.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gonzo&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个强大的实时日志分析终端用户界面，灵感来自 k9s。在终端中分析日志流，使用美丽的图表、AI 驱动的见解和高级过滤功能。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-09-08T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/279</id>
    <title>Issues #279 Jun 08, 2025 || 

问题 #279 2025年6月8日</title>
    <updated>2025-06-08T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I recently becomes a heavy LLM user in coding, It helps me write a lot of helper and tedious script which will take me days or even weeks now I can do in &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;10&lt;/sub&gt; of time. It is great when you know how to do something but dont&amp;rsquo; want to sit down and write it. Especially on UI.  So I plan to share more about LLM/AI to help all of us.&lt;/p&gt;

&lt;p&gt;On other note, Mozilla is shutting down Pocket on July 8, 2025. In spirit of self-hosted, I had switch to &lt;a href="https://linkding.link/"&gt;linkding&lt;/a&gt;. I wrote this &lt;a href="https://gist.github.com/v9n/7453a635acc2d7a84a28619b1e2ede7c"&gt;simple script&lt;/a&gt; to import Pocket archive to linkding. The script was written by Gemini btw.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Your data, built your way. Twilio Segment. For data you can depend on.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Customer Data You Can Depend On
&lt;br /&gt;
We know you run your business on data, so you better be able to depend on it.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
Twilio Segment was purpose-built so that you don’t have to worry about your data. Forget the data chaos, dissolve the silos between teams and tools, and bring your data together with ease.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
So that you can spend more time innovating and less time integrating.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Talk to sales and get a guided tour of Twilio Segment tailored to your business.&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jasonfantl.com/posts/What-is-Entropy"&gt;What is Entropy?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;People say many things about entropy: entropy increases with time, entropy is disorder, entropy increases with energy, entropy determines the arrow of time, etc.. But I have no idea what entropy is, and from what I find, neither do most other people. This is the introduction I wish I had when first told about entropy, so hopefully you find it helpful. My goal is that by the end of this long post we will have a rigorous and intuitive understanding of those statements, and in particular, why the universe looks different when moving forward through time versus when traveling backward through time.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://serverless.industries/2024/05/31/digital-cinema.en.html"&gt;How DCI Movie Delivery and Encryption works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The Cinema Industry is using its own standards for creating and distributing movies in a secure way. The DCI (Digital Cinema Initiatives) specification defines everything from file formats and encryption to the projection systems itself.&lt;/p&gt;

&lt;p&gt;The specification itself is publicly available but relies on various IEEE (Institute of Electrical and Electronics Engineers) and SMPTE (Society of Motion Picture and Television Engineers) standards, which have to be purchased.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.pixelstech.net/article/1747708863-openai%3a-scaling-postgresql-to-the-next-level"&gt;OpenAI: Scaling PostgreSQL to the Next Level&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;At scale of OpenAI, I imagine they might shard PostgreSQL. But they utilize an unsharded architecture with one writer and multiple readers, demonstrating that PostgreSQL can scale gracefully under massive read loads.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.lohr.dev/imap-introduction"&gt;Talking To Your Mailserver Is Not as Hard as You Think!&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Email is very well distributed where you cannot get lock down by a provider. As long asyou own domain, you can move email anywhere. In email world, generally SMTP is for sending email and IMAP is for receiving mail. In this article, we focus on IMAPv4.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.ducktyped.org/p/why-is-it-called-a-cloud-if-its-not"&gt;An illustrated guide to Amazon VPCs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this section, I talk about why VPCs were invented and how they work. This is critical to understand because almost everything you do in AWS will happen inside of VPC. If you don&amp;rsquo;t understand VPCs, it will be difficult to understand any of the other networking concepts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://behind.pretix.eu/2018/01/20/cups-driver/"&gt;Writing your own CUPS printer driver in 100 lines of Python&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Printing on unix-like operating systems like Linux or macOS is usually done through the CUPS daemon. CUPS is responsible for handling printer configuration, scheduling print jobs and actually talking to the printer over the wire. In this article we discuss a printer system for ticket using FGL. And they implement a CUPS driver to take the rastered pixel data and ouput FGL.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.springtail.io/blog/postgres-logical-replication"&gt;Understanding logical replication in Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deeper look at how PostgreSQL logical replication works, from WAL internals and logical decoding to streaming protocols and replica lag. If you’ve ever wondered what’s happening under the hood, this post connects the dots.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://diwank.space/field-notes-from-shipping-real-code-with-claude"&gt;Field Notes From Shipping Real Code With Claude&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Think of this post as your field guide to a new way of building software. By the time you finish reading, you’ll understand not just the how but the why behind AI-assisted development that actually works.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eshsoft.com/blog/how-reladiff-works"&gt;How Reladiff Works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;diffing dataset is very useful in data engineering. incremental syncing, detect drift etc. how can we create a tool that could efficiently diff large SQL datasets across different databases and servers. This article build such as a tool with: Divide, Hash, And Conquer&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.informationga.in/blog/building-an-ai-server-on-a-budget"&gt;Building an AI Server on a Budget&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Instead of renting the GPU we can pay up-front cost to build a server with GPU. This post can serve as a simple foundation into this process with sourcing parts and assbler thing together.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mattrighetti.com/2025/06/04/too-many-files-open"&gt;Too Many Open Files&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Every backend dev will hit file limit at some point and we run something like &lt;code&gt;ulimit -n 65000&lt;/code&gt; to fix it. But how we debug it, how we find out how many file it openning? and what is these file descriptor.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lichess.org/@/Mcie/blog/x-ray-defence-hidden-resource-sudden-lifeline/HERaZrZg"&gt;X-Ray Defence: Hidden Resource, Sudden Lifeline&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale"&gt;Taking out the Trash: Garbage Collection of Object Storage at Massive Scale&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/a-trip-down-memory-lane-how-we-resolved-a-memory-leak-when-pprof-failed-us"&gt;A Trip Down Memory Lane: How We Resolved a Memory Leak When pprof Failed Us&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Warpstream control plane is written in Go, which has excellent built-in support for debugging application memory issues with pprof. We’ve used pprof hundreds of times in the past to debug performance issues, and usually memory leaks are particularly easy to spot. But in this case, this isn’t something that pprof could help with.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/dontriskit/awesome-ai-system-prompts"&gt;Crafting Effective Prompts for Agentic AI Systems: Patterns and Practices&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Curated collection of system prompts for top AI tools. Perfect for AI agent builders and prompt engineers. Incuding: ChatGPT, Claude, Perplexity, Manus, Claude-Code, Loveable, v0, Grok, same new, windsurf, notion, and MetaAI.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/trimstray/the-book-of-secret-knowledge"&gt;The Book of Secret Knowledge&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Your data, built your way. Twilio Segment. For data you can depend on.&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Customer Data You Can Depend On
&lt;br /&gt;
We know you run your business on data, so you better be able to depend on it.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
Twilio Segment was purpose-built so that you don’t have to worry about your data. Forget the data chaos, dissolve the silos between teams and tools, and bring your data together with ease.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
So that you can spend more time innovating and less time integrating.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Talk to sales and get a guided tour of Twilio Segment tailored to your business.&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yjacquin/fast-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Use Ruby DSL to let AI Model call function inside your Ruby app&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/maquina-app/rails-mcp-server" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-mcp-server&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Ruby implementation of a Model Context Protocol (MCP) server for Rails projects. This server allows LLMs (Large Language Models) to interact with Rails projects&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mark3labs/mcp-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mcp-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ploMP4/chafa-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chafa-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go bindings for the Chafa terminal graphics library. Render high quality images on the terminal without CGO or external dependencies.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/livingbio/typed-ffmpeg" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typed-ffmpeg&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;offers a modern, Pythonic interface to FFmpeg, providing extensive support for complex filters with detailed typing and documentation.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/xdadda/mini-photo-editor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mini-photo-editor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Online webgl photo editor with effects, filters and cropping&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sebastiancarlos/beachpatrol" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;beachpatrol&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Browser&amp;rsquo;s End-user Automation CLI Hub. Potentialize All Tasks Regarding Online Life.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.glowui.com/icons" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;glowui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;442 open source icons in 2 styles, made for interfaces. MIT license&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://why-upgrade.depesz.com/show?from=17.4&amp;amp;to=17.5" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Why upgrade PostgreSQL?&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Build by the fame depesz, it tells you what you got between 2 PG version.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://postgresqlco.nf/doc/en/param/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PostgreSQL Conf: Parameters Documentation&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple list of all PostgreSQL parameter.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/neon443/AirAP" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;AirAP&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;airplay to an ios device, use your iphone as an airplay receiver&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/markitdown" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;markitdown&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Python tool for converting files and office documents to Markdown.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/shcherbak-ai/contextgem" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;contextgem&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Effortless LLM extraction from documents&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/koaning/smartfunc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Turn docstrings into LLM-functions&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/crystaldba/postgres-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postgres-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres MCP Pro is an open source Model Context Protocol (MCP) server built to support you and your AI agents throughout the entire development process—from initial coding, through testing and deployment, and to production tuning and maintenance.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hapostgres/pg_auto_failover" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_auto_failover&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres extension and service for automated failover and high-availability&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgsty/pg_exporter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_exporter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Advanced PostgreSQL &amp;amp; Pgbouncer Metrics Exporter for Prometheus&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 互联网上关于成为更好程序员的资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;我最近成为了一名重度LLM用户，用于编程。它帮助我编写大量辅助和繁琐的脚本，这些脚本以前可能需要几天甚至几周的时间，现在我可以在十分之一的时间内完成。当你知道如何做某事但不想坐下来编写代码时，这非常棒。特别是在UI方面。因此，我计划分享更多关于LLM/AI的内容，以帮助我们所有人。&lt;/p&gt;
&lt;p&gt;另外，Mozilla将在2025年7月8日关闭Pocket。出于对自托管精神的考虑，我已切换到&lt;linkding.link&gt;。我编写了一个简单的脚本，用于将Pocket存档导入linkding。这个脚本是由Gemini编写的。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个内容。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;你的数据，按你的方式构建。Twilio Segment。你可以依赖的数据。&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你可以依赖的客户数据
&lt;br/&gt;
我们知道你的业务依赖于数据，因此你最好能够依赖它。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Twilio Segment是专门设计的，这样你就不必担心你的数据。忘记数据的混乱，消除团队和工具之间的孤岛，轻松地将数据整合在一起。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
这样你就能花更多时间创新，而不是花时间整合。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;联系销售，获取针对你业务的Twilio Segment定制导览。&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jasonfantl.com/posts/What-is-Entropy"&gt;熵是什么？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;人们常说很多关于熵的事情：熵随时间增加，熵是无序，熵随能量增加，熵决定了时间的方向，等等。但我对熵一无所知，从我找到的内容来看，大多数人也不清楚。这是我第一次听说熵时希望拥有的介绍，所以希望对你有所帮助。我的目标是通过这篇长文，我们能够对这些说法有严格且直观的理解，特别是为什么宇宙在时间向前和向后流动时看起来不同。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://serverless.industries/2024/05/31/digital-cinema.en.html"&gt;DCI电影分发和加密是如何工作的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;电影行业使用自己的标准来安全地创建和分发电影。DCI（数字影院倡议）规范定义了从文件格式和加密到投影系统本身的各个方面。&lt;/p&gt;
&lt;p&gt;该规范本身是公开的，但依赖于各种IEEE（电气和电子工程师协会）和SMPTE（电影电视工程师协会）标准，这些标准需要购买。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pixelstech.net/article/1747708863-openai%3a-scaling-postgresql-to-the-next-level"&gt;OpenAI：将PostgreSQL扩展到下一水平&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在OpenAI的规模下，我想象他们可能会对PostgreSQL进行分片。但它们使用了一个非分片架构，一个写入者和多个读者，这表明PostgreSQL可以在巨大的读取负载下优雅地扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.lohr.dev/imap-introduction"&gt;与你的邮件服务器通信并不像你想的那么难！&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;电子邮件在分布式系统中非常强大，你无法通过提供商锁定它。只要你拥有域名，就可以将电子邮件迁移到任何地方。在电子邮件世界中，通常SMTP用于发送电子邮件，IMAP用于接收邮件。本文我们专注于IMAPv4。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.ducktyped.org/p/why-is-it-called-a-cloud-if-its-not"&gt;亚马逊VPC的图解指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这一部分中，我将讨论为什么VPC被发明以及它是如何工作的。这是至关重要的，因为你在AWS上做的几乎所有事情都会在VPC内进行。如果你不了解VPC，将很难理解其他任何网络概念。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://behind.pretix.eu/2018/01/20/cups-driver/"&gt;用100行Python编写你自己的CUPS打印机驱动程序&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在类Unix操作系统（如Linux或macOS）上打印通常是通过CUPS守护进程完成的。CUPS负责处理打印机配置、安排打印任务以及通过网络与打印机通信。在本文中，我们讨论了一个用于票务的打印机系统，使用FGL，并实现了将光栅化像素数据输出到FGL的CUPS驱动程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.springtail.io/blog/postgres-logical-replication"&gt;理解Postgres中的逻辑复制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入了解PostgreSQL逻辑复制的工作原理，从WAL内部机制和逻辑解码到流式传输协议和副本延迟。如果你曾经想知道幕后发生了什么，这篇文章将为你连接这些点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://diwank.space/field-notes-from-shipping-real-code-with-claude"&gt;在实际部署代码中使用Claude的现场笔记&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;将这篇帖子视为你新软件构建方式的野外指南。读完这篇文章后，你将不仅了解AI辅助开发的“如何”，还将理解其背后的“为什么”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eshsoft.com/blog/how-reladiff-works"&gt;Reladiff的工作原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对数据集进行差异比较在数据工程中非常有用。增量同步、检测漂移等。我们如何创建一个工具，可以高效地在不同数据库和服务器之间比较大型SQL数据集？本文构建了这样一个工具，方法是：分而治之，哈希和征服。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.informationga.in/blog/building-an-ai-server-on-a-budget"&gt;预算内构建AI服务器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;与其租用GPU，我们可以通过预先支付成本来构建一个带有GPU的服务器。这篇帖子可以作为这个过程的简单基础，包括采购零件和组装。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mattrighetti.com/2025/06/04/too-many-files-open"&gt;打开的文件过多&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每个后端开发人员都会在某个时候遇到文件限制问题，我们通常运行&lt;code class="notranslate" translate="no"&gt;ulimit -n 65000&lt;/code&gt;来解决这个问题。但如何调试它？如何找出它打开了多少文件？这些文件描述符是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lichess.org/@/Mcie/blog/x-ray-defence-hidden-resource-sudden-lifeline/HERaZrZg"&gt;X-Ray防御：隐藏的资源，突发的生命线&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale"&gt;清理垃圾：大规模对象存储的垃圾回收&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/a-trip-down-memory-lane-how-we-resolved-a-memory-leak-when-pprof-failed-us"&gt;一段记忆之旅：当pprof未能帮助我们时如何解决内存泄漏&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Warpstream控制平面是用Go编写的，它具有出色的内置支持，用于使用pprof调试应用程序内存问题。我们过去用pprof数百次来调试性能问题，通常内存泄漏很容易被发现。但在这种情况下，pprof无法提供帮助。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dontriskit/awesome-ai-system-prompts"&gt;为代理AI系统构建有效提示：模式与实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为顶级AI工具精选的系统提示集合。非常适合AI代理构建者和提示工程师。包括：ChatGPT、Claude、Perplexity、Manus、Claude-Code、Loveable、v0、Grok、same new、windsurf、notion和MetaAI。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trimstray/the-book-of-secret-knowledge"&gt;秘密知识之书&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;包含鼓舞人心的列表、手册、速查表、博客、技巧、一行命令、CLI/Web工具等的集合。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;你的数据，按你的方式构建。Twilio Segment。你可以依赖的数据。&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;你可以依赖的客户数据
&lt;br/&gt;
我们知道你的业务依赖于数据，因此你最好能够依赖它。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Twilio Segment是专门设计的，这样你就不必担心你的数据。忘记数据的混乱，消除团队和工具之间的孤岛，轻松地将数据整合在一起。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;联系销售，获取针对你业务的Twilio Segment定制导览。&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yjacquin/fast-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用Ruby DSL让AI模型在你的Ruby应用中调用函数&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maquina-app/rails-mcp-server" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-mcp-server&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个为Rails项目实现的模型上下文协议（MCP）服务器的Ruby版本。该服务器允许LLMs（大语言模型）与Rails项目交互&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mark3labs/mcp-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mcp-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;模型上下文协议（MCP）的Go实现，使LLM应用与外部数据源和工具无缝集成。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ploMP4/chafa-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chafa-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go语言绑定的Chafa终端图形库。无需CGO或外部依赖即可在终端上渲染高质量图像。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/livingbio/typed-ffmpeg" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typed-ffmpeg&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提供了一个现代、Python风格的FFmpeg接口，对复杂滤镜有广泛支持，并带有详细类型和文档说明。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xdadda/mini-photo-editor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mini-photo-editor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在线WebGL照片编辑器，带有特效、滤镜和裁剪功能&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sebastiancarlos/beachpatrol" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;beachpatrol&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;浏览器的终端用户自动化CLI中心。最大化你的在线生活任务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glowui.com/icons" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;glowui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;442个开源图标，两种风格，适用于界面。MIT许可证&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://why-upgrade.depesz.com/show?from=17.4&amp;amp;to=17.5" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;为什么要升级PostgreSQL？&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;由depesz打造，它会告诉你两个PostgreSQL版本之间的差异。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://postgresqlco.nf/doc/en/param/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PostgreSQL配置：参数文档&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;所有PostgreSQL参数的简单列表。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/neon443/AirAP" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;AirAP&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将AirPlay传输到iOS设备，使用你的iPhone作为AirPlay接收器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/markitdown" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;markitdown&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个将文件和办公文档转换为Markdown的Python工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/shcherbak-ai/contextgem" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;contextgem&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻松从文档中提取LLM信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/koaning/smartfunc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;将文档注释转换为LLM函数&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crystaldba/postgres-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postgres-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres MCP Pro是一个开源的模型上下文协议（MCP）服务器，旨在支持你和你的AI代理在整个开发过程中——从初始编码，到测试和部署，再到生产环境的调优和维护。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hapostgres/pg_auto_failover" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_auto_failover&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres的扩展和用于自动化故障转移和高可用性的服务&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🔥 比golint快6倍，更严格、可配置、可扩展且美观的替代品&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/pg_exporter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_exporter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高级PostgreSQL和Pgbouncer指标导出器，适用于Prometheus&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/279"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I recently becomes a heavy LLM user in coding, It helps me write a lot of helper and tedious script which will take me days or even weeks now I can do in &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;10&lt;/sub&gt; of time. It is great when you know how to do something but dont&amp;rsquo; want to sit down and write it. Especially on UI.  So I plan to share more about LLM/AI to help all of us.&lt;/p&gt;

&lt;p&gt;On other note, Mozilla is shutting down Pocket on July 8, 2025. In spirit of self-hosted, I had switch to &lt;a href="https://linkding.link/"&gt;linkding&lt;/a&gt;. I wrote this &lt;a href="https://gist.github.com/v9n/7453a635acc2d7a84a28619b1e2ede7c"&gt;simple script&lt;/a&gt; to import Pocket archive to linkding. The script was written by Gemini btw.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Your data, built your way. Twilio Segment. For data you can depend on.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Customer Data You Can Depend On
&lt;br /&gt;
We know you run your business on data, so you better be able to depend on it.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
Twilio Segment was purpose-built so that you don’t have to worry about your data. Forget the data chaos, dissolve the silos between teams and tools, and bring your data together with ease.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
So that you can spend more time innovating and less time integrating.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Talk to sales and get a guided tour of Twilio Segment tailored to your business.&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jasonfantl.com/posts/What-is-Entropy"&gt;What is Entropy?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;People say many things about entropy: entropy increases with time, entropy is disorder, entropy increases with energy, entropy determines the arrow of time, etc.. But I have no idea what entropy is, and from what I find, neither do most other people. This is the introduction I wish I had when first told about entropy, so hopefully you find it helpful. My goal is that by the end of this long post we will have a rigorous and intuitive understanding of those statements, and in particular, why the universe looks different when moving forward through time versus when traveling backward through time.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://serverless.industries/2024/05/31/digital-cinema.en.html"&gt;How DCI Movie Delivery and Encryption works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The Cinema Industry is using its own standards for creating and distributing movies in a secure way. The DCI (Digital Cinema Initiatives) specification defines everything from file formats and encryption to the projection systems itself.&lt;/p&gt;

&lt;p&gt;The specification itself is publicly available but relies on various IEEE (Institute of Electrical and Electronics Engineers) and SMPTE (Society of Motion Picture and Television Engineers) standards, which have to be purchased.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.pixelstech.net/article/1747708863-openai%3a-scaling-postgresql-to-the-next-level"&gt;OpenAI: Scaling PostgreSQL to the Next Level&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;At scale of OpenAI, I imagine they might shard PostgreSQL. But they utilize an unsharded architecture with one writer and multiple readers, demonstrating that PostgreSQL can scale gracefully under massive read loads.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.lohr.dev/imap-introduction"&gt;Talking To Your Mailserver Is Not as Hard as You Think!&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Email is very well distributed where you cannot get lock down by a provider. As long asyou own domain, you can move email anywhere. In email world, generally SMTP is for sending email and IMAP is for receiving mail. In this article, we focus on IMAPv4.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.ducktyped.org/p/why-is-it-called-a-cloud-if-its-not"&gt;An illustrated guide to Amazon VPCs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this section, I talk about why VPCs were invented and how they work. This is critical to understand because almost everything you do in AWS will happen inside of VPC. If you don&amp;rsquo;t understand VPCs, it will be difficult to understand any of the other networking concepts.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://behind.pretix.eu/2018/01/20/cups-driver/"&gt;Writing your own CUPS printer driver in 100 lines of Python&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Printing on unix-like operating systems like Linux or macOS is usually done through the CUPS daemon. CUPS is responsible for handling printer configuration, scheduling print jobs and actually talking to the printer over the wire. In this article we discuss a printer system for ticket using FGL. And they implement a CUPS driver to take the rastered pixel data and ouput FGL.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.springtail.io/blog/postgres-logical-replication"&gt;Understanding logical replication in Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deeper look at how PostgreSQL logical replication works, from WAL internals and logical decoding to streaming protocols and replica lag. If you’ve ever wondered what’s happening under the hood, this post connects the dots.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://diwank.space/field-notes-from-shipping-real-code-with-claude"&gt;Field Notes From Shipping Real Code With Claude&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Think of this post as your field guide to a new way of building software. By the time you finish reading, you’ll understand not just the how but the why behind AI-assisted development that actually works.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eshsoft.com/blog/how-reladiff-works"&gt;How Reladiff Works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;diffing dataset is very useful in data engineering. incremental syncing, detect drift etc. how can we create a tool that could efficiently diff large SQL datasets across different databases and servers. This article build such as a tool with: Divide, Hash, And Conquer&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.informationga.in/blog/building-an-ai-server-on-a-budget"&gt;Building an AI Server on a Budget&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Instead of renting the GPU we can pay up-front cost to build a server with GPU. This post can serve as a simple foundation into this process with sourcing parts and assbler thing together.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mattrighetti.com/2025/06/04/too-many-files-open"&gt;Too Many Open Files&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Every backend dev will hit file limit at some point and we run something like &lt;code&gt;ulimit -n 65000&lt;/code&gt; to fix it. But how we debug it, how we find out how many file it openning? and what is these file descriptor.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lichess.org/@/Mcie/blog/x-ray-defence-hidden-resource-sudden-lifeline/HERaZrZg"&gt;X-Ray Defence: Hidden Resource, Sudden Lifeline&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale"&gt;Taking out the Trash: Garbage Collection of Object Storage at Massive Scale&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/a-trip-down-memory-lane-how-we-resolved-a-memory-leak-when-pprof-failed-us"&gt;A Trip Down Memory Lane: How We Resolved a Memory Leak When pprof Failed Us&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Warpstream control plane is written in Go, which has excellent built-in support for debugging application memory issues with pprof. We’ve used pprof hundreds of times in the past to debug performance issues, and usually memory leaks are particularly easy to spot. But in this case, this isn’t something that pprof could help with.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/dontriskit/awesome-ai-system-prompts"&gt;Crafting Effective Prompts for Agentic AI Systems: Patterns and Practices&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Curated collection of system prompts for top AI tools. Perfect for AI agent builders and prompt engineers. Incuding: ChatGPT, Claude, Perplexity, Manus, Claude-Code, Loveable, v0, Grok, same new, windsurf, notion, and MetaAI.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/trimstray/the-book-of-secret-knowledge"&gt;The Book of Secret Knowledge&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Your data, built your way. Twilio Segment. For data you can depend on.&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Customer Data You Can Depend On
&lt;br /&gt;
We know you run your business on data, so you better be able to depend on it.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
Twilio Segment was purpose-built so that you don’t have to worry about your data. Forget the data chaos, dissolve the silos between teams and tools, and bring your data together with ease.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
So that you can spend more time innovating and less time integrating.&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;Talk to sales and get a guided tour of Twilio Segment tailored to your business.&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yjacquin/fast-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Use Ruby DSL to let AI Model call function inside your Ruby app&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/maquina-app/rails-mcp-server" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-mcp-server&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Ruby implementation of a Model Context Protocol (MCP) server for Rails projects. This server allows LLMs (Large Language Models) to interact with Rails projects&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mark3labs/mcp-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mcp-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ploMP4/chafa-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chafa-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go bindings for the Chafa terminal graphics library. Render high quality images on the terminal without CGO or external dependencies.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/livingbio/typed-ffmpeg" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typed-ffmpeg&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;offers a modern, Pythonic interface to FFmpeg, providing extensive support for complex filters with detailed typing and documentation.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/xdadda/mini-photo-editor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mini-photo-editor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Online webgl photo editor with effects, filters and cropping&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sebastiancarlos/beachpatrol" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;beachpatrol&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Browser&amp;rsquo;s End-user Automation CLI Hub. Potentialize All Tasks Regarding Online Life.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.glowui.com/icons" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;glowui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;442 open source icons in 2 styles, made for interfaces. MIT license&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://why-upgrade.depesz.com/show?from=17.4&amp;amp;to=17.5" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Why upgrade PostgreSQL?&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Build by the fame depesz, it tells you what you got between 2 PG version.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://postgresqlco.nf/doc/en/param/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PostgreSQL Conf: Parameters Documentation&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple list of all PostgreSQL parameter.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/neon443/AirAP" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;AirAP&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;airplay to an ios device, use your iphone as an airplay receiver&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/markitdown" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;markitdown&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Python tool for converting files and office documents to Markdown.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/shcherbak-ai/contextgem" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;contextgem&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Effortless LLM extraction from documents&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/koaning/smartfunc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Turn docstrings into LLM-functions&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/crystaldba/postgres-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postgres-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres MCP Pro is an open source Model Context Protocol (MCP) server built to support you and your AI agents throughout the entire development process—from initial coding, through testing and deployment, and to production tuning and maintenance.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hapostgres/pg_auto_failover" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_auto_failover&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres extension and service for automated failover and high-availability&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgsty/pg_exporter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_exporter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Advanced PostgreSQL &amp;amp; Pgbouncer Metrics Exporter for Prometheus&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 互联网上关于成为更好程序员的资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;我最近成为了一名重度LLM用户，用于编程。它帮助我编写大量辅助和繁琐的脚本，这些脚本以前可能需要几天甚至几周的时间，现在我可以在十分之一的时间内完成。当你知道如何做某事但不想坐下来编写代码时，这非常棒。特别是在UI方面。因此，我计划分享更多关于LLM/AI的内容，以帮助我们所有人。&lt;/p&gt;
&lt;p&gt;另外，Mozilla将在2025年7月8日关闭Pocket。出于对自托管精神的考虑，我已切换到&lt;linkding.link&gt;。我编写了一个简单的脚本，用于将Pocket存档导入linkding。这个脚本是由Gemini编写的。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个内容。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;你的数据，按你的方式构建。Twilio Segment。你可以依赖的数据。&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你可以依赖的客户数据
&lt;br/&gt;
我们知道你的业务依赖于数据，因此你最好能够依赖它。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Twilio Segment是专门设计的，这样你就不必担心你的数据。忘记数据的混乱，消除团队和工具之间的孤岛，轻松地将数据整合在一起。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
这样你就能花更多时间创新，而不是花时间整合。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;联系销售，获取针对你业务的Twilio Segment定制导览。&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jasonfantl.com/posts/What-is-Entropy"&gt;熵是什么？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;人们常说很多关于熵的事情：熵随时间增加，熵是无序，熵随能量增加，熵决定了时间的方向，等等。但我对熵一无所知，从我找到的内容来看，大多数人也不清楚。这是我第一次听说熵时希望拥有的介绍，所以希望对你有所帮助。我的目标是通过这篇长文，我们能够对这些说法有严格且直观的理解，特别是为什么宇宙在时间向前和向后流动时看起来不同。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://serverless.industries/2024/05/31/digital-cinema.en.html"&gt;DCI电影分发和加密是如何工作的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;电影行业使用自己的标准来安全地创建和分发电影。DCI（数字影院倡议）规范定义了从文件格式和加密到投影系统本身的各个方面。&lt;/p&gt;
&lt;p&gt;该规范本身是公开的，但依赖于各种IEEE（电气和电子工程师协会）和SMPTE（电影电视工程师协会）标准，这些标准需要购买。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pixelstech.net/article/1747708863-openai%3a-scaling-postgresql-to-the-next-level"&gt;OpenAI：将PostgreSQL扩展到下一水平&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在OpenAI的规模下，我想象他们可能会对PostgreSQL进行分片。但它们使用了一个非分片架构，一个写入者和多个读者，这表明PostgreSQL可以在巨大的读取负载下优雅地扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.lohr.dev/imap-introduction"&gt;与你的邮件服务器通信并不像你想的那么难！&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;电子邮件在分布式系统中非常强大，你无法通过提供商锁定它。只要你拥有域名，就可以将电子邮件迁移到任何地方。在电子邮件世界中，通常SMTP用于发送电子邮件，IMAP用于接收邮件。本文我们专注于IMAPv4。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.ducktyped.org/p/why-is-it-called-a-cloud-if-its-not"&gt;亚马逊VPC的图解指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这一部分中，我将讨论为什么VPC被发明以及它是如何工作的。这是至关重要的，因为你在AWS上做的几乎所有事情都会在VPC内进行。如果你不了解VPC，将很难理解其他任何网络概念。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://behind.pretix.eu/2018/01/20/cups-driver/"&gt;用100行Python编写你自己的CUPS打印机驱动程序&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在类Unix操作系统（如Linux或macOS）上打印通常是通过CUPS守护进程完成的。CUPS负责处理打印机配置、安排打印任务以及通过网络与打印机通信。在本文中，我们讨论了一个用于票务的打印机系统，使用FGL，并实现了将光栅化像素数据输出到FGL的CUPS驱动程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.springtail.io/blog/postgres-logical-replication"&gt;理解Postgres中的逻辑复制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入了解PostgreSQL逻辑复制的工作原理，从WAL内部机制和逻辑解码到流式传输协议和副本延迟。如果你曾经想知道幕后发生了什么，这篇文章将为你连接这些点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://diwank.space/field-notes-from-shipping-real-code-with-claude"&gt;在实际部署代码中使用Claude的现场笔记&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;将这篇帖子视为你新软件构建方式的野外指南。读完这篇文章后，你将不仅了解AI辅助开发的“如何”，还将理解其背后的“为什么”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eshsoft.com/blog/how-reladiff-works"&gt;Reladiff的工作原理&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对数据集进行差异比较在数据工程中非常有用。增量同步、检测漂移等。我们如何创建一个工具，可以高效地在不同数据库和服务器之间比较大型SQL数据集？本文构建了这样一个工具，方法是：分而治之，哈希和征服。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.informationga.in/blog/building-an-ai-server-on-a-budget"&gt;预算内构建AI服务器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;与其租用GPU，我们可以通过预先支付成本来构建一个带有GPU的服务器。这篇帖子可以作为这个过程的简单基础，包括采购零件和组装。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mattrighetti.com/2025/06/04/too-many-files-open"&gt;打开的文件过多&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每个后端开发人员都会在某个时候遇到文件限制问题，我们通常运行&lt;code class="notranslate" translate="no"&gt;ulimit -n 65000&lt;/code&gt;来解决这个问题。但如何调试它？如何找出它打开了多少文件？这些文件描述符是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lichess.org/@/Mcie/blog/x-ray-defence-hidden-resource-sudden-lifeline/HERaZrZg"&gt;X-Ray防御：隐藏的资源，突发的生命线&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/taking-out-the-trash-garbage-collection-of-object-storage-at-massive-scale"&gt;清理垃圾：大规模对象存储的垃圾回收&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/a-trip-down-memory-lane-how-we-resolved-a-memory-leak-when-pprof-failed-us"&gt;一段记忆之旅：当pprof未能帮助我们时如何解决内存泄漏&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Warpstream控制平面是用Go编写的，它具有出色的内置支持，用于使用pprof调试应用程序内存问题。我们过去用pprof数百次来调试性能问题，通常内存泄漏很容易被发现。但在这种情况下，pprof无法提供帮助。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/dontriskit/awesome-ai-system-prompts"&gt;为代理AI系统构建有效提示：模式与实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为顶级AI工具精选的系统提示集合。非常适合AI代理构建者和提示工程师。包括：ChatGPT、Claude、Perplexity、Manus、Claude-Code、Loveable、v0、Grok、same new、windsurf、notion和MetaAI。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/trimstray/the-book-of-secret-knowledge"&gt;秘密知识之书&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;包含鼓舞人心的列表、手册、速查表、博客、技巧、一行命令、CLI/Web工具等的集合。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;你的数据，按你的方式构建。Twilio Segment。你可以依赖的数据。&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;你可以依赖的客户数据
&lt;br/&gt;
我们知道你的业务依赖于数据，因此你最好能够依赖它。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Twilio Segment是专门设计的，这样你就不必担心你的数据。忘记数据的混乱，消除团队和工具之间的孤岛，轻松地将数据整合在一起。&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href="https://www.vpdae.com/redirect/3wtmx0m2socmdrancrul6pnfvub"&gt;联系销售，获取针对你业务的Twilio Segment定制导览。&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yjacquin/fast-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用Ruby DSL让AI模型在你的Ruby应用中调用函数&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maquina-app/rails-mcp-server" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-mcp-server&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个为Rails项目实现的模型上下文协议（MCP）服务器的Ruby版本。该服务器允许LLMs（大语言模型）与Rails项目交互&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mark3labs/mcp-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mcp-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;模型上下文协议（MCP）的Go实现，使LLM应用与外部数据源和工具无缝集成。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ploMP4/chafa-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;chafa-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go语言绑定的Chafa终端图形库。无需CGO或外部依赖即可在终端上渲染高质量图像。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/livingbio/typed-ffmpeg" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typed-ffmpeg&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提供了一个现代、Python风格的FFmpeg接口，对复杂滤镜有广泛支持，并带有详细类型和文档说明。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xdadda/mini-photo-editor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mini-photo-editor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在线WebGL照片编辑器，带有特效、滤镜和裁剪功能&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sebastiancarlos/beachpatrol" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;beachpatrol&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;浏览器的终端用户自动化CLI中心。最大化你的在线生活任务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glowui.com/icons" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;glowui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;442个开源图标，两种风格，适用于界面。MIT许可证&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://why-upgrade.depesz.com/show?from=17.4&amp;amp;to=17.5" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;为什么要升级PostgreSQL？&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;由depesz打造，它会告诉你两个PostgreSQL版本之间的差异。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://postgresqlco.nf/doc/en/param/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PostgreSQL配置：参数文档&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;所有PostgreSQL参数的简单列表。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/neon443/AirAP" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;AirAP&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;将AirPlay传输到iOS设备，使用你的iPhone作为AirPlay接收器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/markitdown" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;markitdown&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个将文件和办公文档转换为Markdown的Python工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/shcherbak-ai/contextgem" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;contextgem&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;轻松从文档中提取LLM信息&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/koaning/smartfunc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;将文档注释转换为LLM函数&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/crystaldba/postgres-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postgres-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres MCP Pro是一个开源的模型上下文协议（MCP）服务器，旨在支持你和你的AI代理在整个开发过程中——从初始编码，到测试和部署，再到生产环境的调优和维护。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hapostgres/pg_auto_failover" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_auto_failover&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Postgres的扩展和用于自动化故障转移和高可用性的服务&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🔥 比golint快6倍，更严格、可配置、可扩展且美观的替代品&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgsty/pg_exporter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_exporter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高级PostgreSQL和Pgbouncer指标导出器，适用于Prometheus&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-06-08T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/278</id>
    <title>Issues #278 Mar 31, 2025 || 

问题 #278 2025年3月31日</title>
    <updated>2025-03-31T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;So this week, &lt;a href="https://www.praetorian.com/blog/codeqleaked-public-secrets-exposure-leads-to-supply-chain-attack-on-github-codeql/"&gt;Github CodeQL leaked their token&lt;/a&gt;; the token was only publicly exposed for about 2 seconds, but that&amp;rsquo;s enough. Then, we had &lt;a href="https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell"&gt;Malware found on npm infecting local packages with a reverse shell&lt;/a&gt;. And an &lt;a href="https://openwall.com/lists/oss-security/2025/03/29/1"&gt;atop heap issue&lt;/a&gt;. The world truly fell apart last week, no joke. That&amp;rsquo;s why it&amp;rsquo;s helpful to be paranoid whenever we run any piece of software on our CI, on our dependencies—always vet them yourself.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@dichenldc/30-years-of-postgresql-buffer-manager-locking-design-evolution-e6e861d7072f"&gt;30 years of PostgreSQL buffer manager locking design evolution&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An in-depth exploration of the evolution of PostgreSQL&amp;rsquo;s buffer manager locking mechanisms over three decades, highlighting key design decisions and their impact on performance and concurrency.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://refactoringenglish.com/chapters/write-blog-posts-developers-read/"&gt;How to Write Blog Posts that Developers Read&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A guide offering practical advice on crafting technical blog posts that effectively engage and inform developer audiences, emphasizing clarity, structure, and relevance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.permit.io/blog/identity-tokens-best-practices"&gt;Identity Tokens Explained: Best Practices for Better Access Control&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An overview of identity tokens, detailing their role in authentication and authorization processes, and providing best practices for implementing secure and efficient access control mechanisms.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://googleprojectzero.blogspot.com/2025/03/blasting-past-webp.html"&gt;Blasting Past Webp: An analysis of the NSO BLASTPASS iMessage exploit&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A technical analysis by Google&amp;rsquo;s Project Zero team on the NSO Group&amp;rsquo;s BLASTPASS exploit, which targeted Apple&amp;rsquo;s iMessage using malicious WebP images to achieve zero-click remote code execution.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://photonlines.substack.com/p/visual-focused-algorithms-cheat-sheet"&gt;Visual-Focused Algorithms Cheat Sheet&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A concise reference guide summarizing key algorithms related to visual data processing, offering quick insights into their applications and implementations.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sambroner.com/posts/raspberry-pi-train"&gt;Train &amp;amp; Weather Tracker with Raspberry Pi &amp;amp; E-Ink&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you have some old Raspberry Pi hardware lying around, this could be a great hobby project.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sirupsen.com/napkin/problem-10-mysql-transactions-per-second"&gt;MySQL transactions per second vs fsyncs per second&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An examination of the relationship between MySQL&amp;rsquo;s transaction throughput and the filesystem&amp;rsquo;s synchronization operations, discussing how fsync frequency impacts database performance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tratt.net/laurie/blog/2025/better_shell_history_search.html"&gt;Better Shell History Search&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An article discussing techniques to enhance shell history search functionality, including the integration of tools like &lt;code&gt;fzf&lt;/code&gt; for more efficient command retrieval and improved productivity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns"&gt;Life Altering PostgreSQL Patterns&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A discussion on transformative PostgreSQL design patterns, such as using UUID primary keys, implementing timestamp fields, enforcing strict foreign key constraints, utilizing schemas for organization, and employing enum tables for data integrity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dansvetlov.me/postgres-anomalies/"&gt;A Practical Guide to Taming Postgres Isolation Anomalies&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A comprehensive guide addressing PostgreSQL&amp;rsquo;s transaction isolation anomalies, providing practical examples and strategies to understand and mitigate issues like dirty reads, lost updates, and phantom reads.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/open-sourcing-openpubkey-ssh-opkssh-integrating-single-sign-on-with-ssh/"&gt;Cloudflare open-sourcing OpenPubkey SSH (OPKSSH): integrating single sign-on with SSH&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Single sign-on for SSH is a dream. No longer dealing with keys, editing ~/authorized_keys files, or modifying LDAP or PAM configurations. Easy to revoke and offboard developers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://read.highgrowthengineer.com/p/mcps-simply-explained"&gt;MCP (Model Context Protocol): Simply explained in 5 minutes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An introduction to the Model Context Protocol (MCP), explaining its purpose, functionality, and how it can streamline development processes by providing contextual model information.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/habedi/hann" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hann&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A fast approximate nearest neighbor search library for Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple Physics engine in GoLang&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Kither12/shezem-rs/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shezem-rs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rust implementation of a fast audio fingerprinting system inspired by Shazam, for audio recognition and identification. It focuses on speed, efficiency and simplicity&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgr0ss/pgledger/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgledger&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A ledger implementation in PostgreSQL&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/amd/gaia" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gaia&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tool by AMD to run LLM Agents on Ryzen AI PCs in Minutes&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Stability-AI/stable-virtual-camera" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stable-virtual-camera&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Generative View Synthesis with Diffusion Models&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/joanrod/star-vector" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;star-vector&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a foundation model for SVG generation that transforms vectorization into a code generation task. Using a vision-language modeling architecture, StarVector processes both visual and textual inputs to produce high-quality SVG code with remarkable precision.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gopasspw/gopass" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gopass&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The slightly more awesome standard unix password manager for teams&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lakekeeper/lakekeeper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lakekeeper&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an Apache-Licensed, secure, fast and easy to use Apache Iceberg REST Catalog written in Rust. Apache Iceberg is a project that allow us to run SQL query on a set of file(CSV, Parquet, JSON) directly from storage such as S3.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MuhammadSaim/goavatark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;goavatar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This package provides a simple way to generate unique, symmetric identicons based on an input string (e.g., an email address or username). It uses an MD5 hash to create a deterministic pattern and color scheme, then mirrors the design for a visually appealing avatar.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;本周，&lt;a href="https://www.praetorian.com/blog/codeqleaked-public-secrets-exposure-leads-to-supply-chain-attack-on-github-codeql/"&gt;GitHub CodeQL 泄露了他们的令牌&lt;/a&gt;；该令牌仅公开暴露了大约 2 秒，但已经足够。然后，我们发现了 &lt;a href="https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell"&gt;npm 上的恶意软件，感染本地包并植入反向 shell&lt;/a&gt;。还有一个 &lt;a href="https://openwall.com/lists/oss-security/2025/03/29/1"&gt;atop 堆问题&lt;/a&gt;。上周世界真的崩溃了，不是开玩笑的。这就是为什么我们在 CI 上运行任何软件时，或者在依赖项上，都应该保持警惕，始终亲自验证它们。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享它来传播这个资源给朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@dichenldc/30-years-of-postgresql-buffer-manager-locking-design-evolution-e6e861d7072f"&gt;PostgreSQL 缓冲管理器锁设计的演变（30 年）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对 PostgreSQL 缓冲管理器锁机制在过去三十年中的演变进行深入探讨，突出关键设计决策及其对性能和并发的影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://refactoringenglish.com/chapters/write-blog-posts-developers-read/"&gt;如何撰写开发者会阅读的博客文章&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为开发者提供实用建议，指导如何撰写技术博客文章，有效吸引和告知开发者受众，强调清晰性、结构和相关性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.permit.io/blog/identity-tokens-best-practices"&gt;身份令牌详解：实现更好的访问控制的最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;介绍身份令牌，详细说明其在认证和授权过程中的作用，并提供实施安全高效访问控制机制的最佳实践。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://googleprojectzero.blogspot.com/2025/03/blasting-past-webp.html"&gt;突破 Webp：NSO BLASTPASS iMessage 漏洞分析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Google Project Zero 团队对 NSO Group 的 BLASTPASS 漏洞进行技术分析，该漏洞利用恶意 WebP 图像针对 Apple 的 iMessage 实现零点击远程代码执行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://photonlines.substack.com/p/visual-focused-algorithms-cheat-sheet"&gt;以视觉为中心的算法速查表&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一份简洁的参考指南，总结与视觉数据处理相关的关键算法，提供快速洞察其应用和实现方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sambroner.com/posts/raspberry-pi-train"&gt;使用 Raspberry Pi 和 E-Ink 的火车与天气追踪器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你有一些旧的 Raspberry Pi 硬件，这可能是一个很棒的爱好项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sirupsen.com/napkin/problem-10-mysql-transactions-per-second"&gt;MySQL 每秒事务数与每秒 fsync 次数对比&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;探讨 MySQL 事务吞吐量与文件系统同步操作之间的关系，讨论 fsync 频率如何影响数据库性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tratt.net/laurie/blog/2025/better_shell_history_search.html"&gt;更好的 Shell 历史搜索&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讨论增强 Shell 历史搜索功能的技术，包括集成工具如 &lt;code class="notranslate" translate="no"&gt;fzf&lt;/code&gt; 以更高效地检索命令并提高生产力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns"&gt;改变人生的 PostgreSQL 模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讨论具有变革性的 Postgres 设计模式，例如使用 UUID 主键、实现时间戳字段、强制严格的外键约束、利用模式进行组织，以及使用枚举表确保数据完整性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dansvetlov.me/postgres-anomalies/"&gt;驯服 Postgres 隔离异常的实用指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;全面指南，解决 Postgres 的事务隔离异常，提供实际示例和策略，以理解和缓解脏读、丢失更新和幻读等问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/open-sourcing-openpubkey-ssh-opkssh-integrating-single-sign-on-with-ssh/"&gt;Cloudflare 开源 OpenPubkey SSH（OPKSSH）：集成单点登录与 SSH&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SSH 的单点登录是一个梦想。不再需要处理密钥、编辑 ~/authorized_keys 文件，或修改 LDAP 或 PAM 配置。易于撤销和移除开发者权限。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://read.highgrowthengineer.com/p/mcps-simply-explained"&gt;MCP（模型上下文协议）：5 分钟内简单解释&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;介绍模型上下文协议（MCP），解释其目的、功能以及如何通过提供上下文模型信息来简化开发流程。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/habedi/hann" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hann&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 Go 的快速近似最近邻搜索库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的 GoLang 物理引擎&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Kither12/shezem-rs/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shezem-rs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Shazam 的快速音频指纹系统 Rust 实现，用于音频识别和鉴定。它专注于速度、效率和简洁性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgr0ss/pgledger/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgledger&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 实现的账本&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/amd/gaia" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gaia&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;AMD 提供的工具，可在几分钟内运行 LLM 代理在 Ryzen AI 电脑上&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Stability-AI/stable-virtual-camera" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stable-virtual-camera&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用扩散模型进行生成视角合成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/joanrod/star-vector" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;star-vector&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 SVG 生成的基础模型，将向量化转换为代码生成任务。使用视觉语言建模架构，StarVector 处理视觉和文本输入，以生成高质量的 SVG 代码，并具有惊人的精度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gopasspw/gopass" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gopass&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个稍微更强大的标准 Unix 密码管理器，适用于团队&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lakekeeper/lakekeeper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lakekeeper&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Apache 授权、安全、快速且易于使用的 Apache Iceberg REST 目录，用 Rust 编写。Apache Iceberg 是一个允许我们直接从存储（如 S3）上的文件（CSV、Parquet、JSON）运行 SQL 查询的项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MuhammadSaim/goavatark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;goavatar&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;该包提供了一种简单的方法，根据输入字符串（例如电子邮件地址或用户名）生成唯一的对称 identicon。它使用 MD5 哈希创建确定性的图案和配色方案，然后镜像设计以生成美观的头像。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/278"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;So this week, &lt;a href="https://www.praetorian.com/blog/codeqleaked-public-secrets-exposure-leads-to-supply-chain-attack-on-github-codeql/"&gt;Github CodeQL leaked their token&lt;/a&gt;; the token was only publicly exposed for about 2 seconds, but that&amp;rsquo;s enough. Then, we had &lt;a href="https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell"&gt;Malware found on npm infecting local packages with a reverse shell&lt;/a&gt;. And an &lt;a href="https://openwall.com/lists/oss-security/2025/03/29/1"&gt;atop heap issue&lt;/a&gt;. The world truly fell apart last week, no joke. That&amp;rsquo;s why it&amp;rsquo;s helpful to be paranoid whenever we run any piece of software on our CI, on our dependencies—always vet them yourself.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@dichenldc/30-years-of-postgresql-buffer-manager-locking-design-evolution-e6e861d7072f"&gt;30 years of PostgreSQL buffer manager locking design evolution&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An in-depth exploration of the evolution of PostgreSQL&amp;rsquo;s buffer manager locking mechanisms over three decades, highlighting key design decisions and their impact on performance and concurrency.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://refactoringenglish.com/chapters/write-blog-posts-developers-read/"&gt;How to Write Blog Posts that Developers Read&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A guide offering practical advice on crafting technical blog posts that effectively engage and inform developer audiences, emphasizing clarity, structure, and relevance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.permit.io/blog/identity-tokens-best-practices"&gt;Identity Tokens Explained: Best Practices for Better Access Control&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An overview of identity tokens, detailing their role in authentication and authorization processes, and providing best practices for implementing secure and efficient access control mechanisms.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://googleprojectzero.blogspot.com/2025/03/blasting-past-webp.html"&gt;Blasting Past Webp: An analysis of the NSO BLASTPASS iMessage exploit&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A technical analysis by Google&amp;rsquo;s Project Zero team on the NSO Group&amp;rsquo;s BLASTPASS exploit, which targeted Apple&amp;rsquo;s iMessage using malicious WebP images to achieve zero-click remote code execution.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://photonlines.substack.com/p/visual-focused-algorithms-cheat-sheet"&gt;Visual-Focused Algorithms Cheat Sheet&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A concise reference guide summarizing key algorithms related to visual data processing, offering quick insights into their applications and implementations.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sambroner.com/posts/raspberry-pi-train"&gt;Train &amp;amp; Weather Tracker with Raspberry Pi &amp;amp; E-Ink&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you have some old Raspberry Pi hardware lying around, this could be a great hobby project.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sirupsen.com/napkin/problem-10-mysql-transactions-per-second"&gt;MySQL transactions per second vs fsyncs per second&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An examination of the relationship between MySQL&amp;rsquo;s transaction throughput and the filesystem&amp;rsquo;s synchronization operations, discussing how fsync frequency impacts database performance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tratt.net/laurie/blog/2025/better_shell_history_search.html"&gt;Better Shell History Search&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An article discussing techniques to enhance shell history search functionality, including the integration of tools like &lt;code&gt;fzf&lt;/code&gt; for more efficient command retrieval and improved productivity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns"&gt;Life Altering PostgreSQL Patterns&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A discussion on transformative PostgreSQL design patterns, such as using UUID primary keys, implementing timestamp fields, enforcing strict foreign key constraints, utilizing schemas for organization, and employing enum tables for data integrity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dansvetlov.me/postgres-anomalies/"&gt;A Practical Guide to Taming Postgres Isolation Anomalies&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A comprehensive guide addressing PostgreSQL&amp;rsquo;s transaction isolation anomalies, providing practical examples and strategies to understand and mitigate issues like dirty reads, lost updates, and phantom reads.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/open-sourcing-openpubkey-ssh-opkssh-integrating-single-sign-on-with-ssh/"&gt;Cloudflare open-sourcing OpenPubkey SSH (OPKSSH): integrating single sign-on with SSH&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Single sign-on for SSH is a dream. No longer dealing with keys, editing ~/authorized_keys files, or modifying LDAP or PAM configurations. Easy to revoke and offboard developers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://read.highgrowthengineer.com/p/mcps-simply-explained"&gt;MCP (Model Context Protocol): Simply explained in 5 minutes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An introduction to the Model Context Protocol (MCP), explaining its purpose, functionality, and how it can streamline development processes by providing contextual model information.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/habedi/hann" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hann&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A fast approximate nearest neighbor search library for Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple Physics engine in GoLang&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Kither12/shezem-rs/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shezem-rs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rust implementation of a fast audio fingerprinting system inspired by Shazam, for audio recognition and identification. It focuses on speed, efficiency and simplicity&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgr0ss/pgledger/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgledger&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A ledger implementation in PostgreSQL&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/amd/gaia" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gaia&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tool by AMD to run LLM Agents on Ryzen AI PCs in Minutes&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Stability-AI/stable-virtual-camera" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stable-virtual-camera&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Generative View Synthesis with Diffusion Models&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/joanrod/star-vector" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;star-vector&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a foundation model for SVG generation that transforms vectorization into a code generation task. Using a vision-language modeling architecture, StarVector processes both visual and textual inputs to produce high-quality SVG code with remarkable precision.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gopasspw/gopass" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gopass&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The slightly more awesome standard unix password manager for teams&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lakekeeper/lakekeeper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lakekeeper&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an Apache-Licensed, secure, fast and easy to use Apache Iceberg REST Catalog written in Rust. Apache Iceberg is a project that allow us to run SQL query on a set of file(CSV, Parquet, JSON) directly from storage such as S3.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MuhammadSaim/goavatark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;goavatar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This package provides a simple way to generate unique, symmetric identicons based on an input string (e.g., an email address or username). It uses an MD5 hash to create a deterministic pattern and color scheme, then mirrors the design for a visually appealing avatar.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;本周，&lt;a href="https://www.praetorian.com/blog/codeqleaked-public-secrets-exposure-leads-to-supply-chain-attack-on-github-codeql/"&gt;GitHub CodeQL 泄露了他们的令牌&lt;/a&gt;；该令牌仅公开暴露了大约 2 秒，但已经足够。然后，我们发现了 &lt;a href="https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell"&gt;npm 上的恶意软件，感染本地包并植入反向 shell&lt;/a&gt;。还有一个 &lt;a href="https://openwall.com/lists/oss-security/2025/03/29/1"&gt;atop 堆问题&lt;/a&gt;。上周世界真的崩溃了，不是开玩笑的。这就是为什么我们在 CI 上运行任何软件时，或者在依赖项上，都应该保持警惕，始终亲自验证它们。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享它来传播这个资源给朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@dichenldc/30-years-of-postgresql-buffer-manager-locking-design-evolution-e6e861d7072f"&gt;PostgreSQL 缓冲管理器锁设计的演变（30 年）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对 PostgreSQL 缓冲管理器锁机制在过去三十年中的演变进行深入探讨，突出关键设计决策及其对性能和并发的影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://refactoringenglish.com/chapters/write-blog-posts-developers-read/"&gt;如何撰写开发者会阅读的博客文章&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为开发者提供实用建议，指导如何撰写技术博客文章，有效吸引和告知开发者受众，强调清晰性、结构和相关性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.permit.io/blog/identity-tokens-best-practices"&gt;身份令牌详解：实现更好的访问控制的最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;介绍身份令牌，详细说明其在认证和授权过程中的作用，并提供实施安全高效访问控制机制的最佳实践。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://googleprojectzero.blogspot.com/2025/03/blasting-past-webp.html"&gt;突破 Webp：NSO BLASTPASS iMessage 漏洞分析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Google Project Zero 团队对 NSO Group 的 BLASTPASS 漏洞进行技术分析，该漏洞利用恶意 WebP 图像针对 Apple 的 iMessage 实现零点击远程代码执行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://photonlines.substack.com/p/visual-focused-algorithms-cheat-sheet"&gt;以视觉为中心的算法速查表&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一份简洁的参考指南，总结与视觉数据处理相关的关键算法，提供快速洞察其应用和实现方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sambroner.com/posts/raspberry-pi-train"&gt;使用 Raspberry Pi 和 E-Ink 的火车与天气追踪器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你有一些旧的 Raspberry Pi 硬件，这可能是一个很棒的爱好项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sirupsen.com/napkin/problem-10-mysql-transactions-per-second"&gt;MySQL 每秒事务数与每秒 fsync 次数对比&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;探讨 MySQL 事务吞吐量与文件系统同步操作之间的关系，讨论 fsync 频率如何影响数据库性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tratt.net/laurie/blog/2025/better_shell_history_search.html"&gt;更好的 Shell 历史搜索&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讨论增强 Shell 历史搜索功能的技术，包括集成工具如 &lt;code class="notranslate" translate="no"&gt;fzf&lt;/code&gt; 以更高效地检索命令并提高生产力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns"&gt;改变人生的 PostgreSQL 模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讨论具有变革性的 Postgres 设计模式，例如使用 UUID 主键、实现时间戳字段、强制严格的外键约束、利用模式进行组织，以及使用枚举表确保数据完整性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dansvetlov.me/postgres-anomalies/"&gt;驯服 Postgres 隔离异常的实用指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;全面指南，解决 Postgres 的事务隔离异常，提供实际示例和策略，以理解和缓解脏读、丢失更新和幻读等问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/open-sourcing-openpubkey-ssh-opkssh-integrating-single-sign-on-with-ssh/"&gt;Cloudflare 开源 OpenPubkey SSH（OPKSSH）：集成单点登录与 SSH&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SSH 的单点登录是一个梦想。不再需要处理密钥、编辑 ~/authorized_keys 文件，或修改 LDAP 或 PAM 配置。易于撤销和移除开发者权限。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://read.highgrowthengineer.com/p/mcps-simply-explained"&gt;MCP（模型上下文协议）：5 分钟内简单解释&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;介绍模型上下文协议（MCP），解释其目的、功能以及如何通过提供上下文模型信息来简化开发流程。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/habedi/hann" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;hann&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 Go 的快速近似最近邻搜索库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的 GoLang 物理引擎&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Kither12/shezem-rs/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shezem-rs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Shazam 的快速音频指纹系统 Rust 实现，用于音频识别和鉴定。它专注于速度、效率和简洁性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgr0ss/pgledger/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgledger&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 实现的账本&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/amd/gaia" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gaia&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;AMD 提供的工具，可在几分钟内运行 LLM 代理在 Ryzen AI 电脑上&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Stability-AI/stable-virtual-camera" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stable-virtual-camera&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用扩散模型进行生成视角合成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/joanrod/star-vector" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;star-vector&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 SVG 生成的基础模型，将向量化转换为代码生成任务。使用视觉语言建模架构，StarVector 处理视觉和文本输入，以生成高质量的 SVG 代码，并具有惊人的精度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gopasspw/gopass" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gopass&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个稍微更强大的标准 Unix 密码管理器，适用于团队&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lakekeeper/lakekeeper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lakekeeper&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Apache 授权、安全、快速且易于使用的 Apache Iceberg REST 目录，用 Rust 编写。Apache Iceberg 是一个允许我们直接从存储（如 S3）上的文件（CSV、Parquet、JSON）运行 SQL 查询的项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MuhammadSaim/goavatark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;goavatar&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;该包提供了一种简单的方法，根据输入字符串（例如电子邮件地址或用户名）生成唯一的对称 identicon。它使用 MD5 哈希创建确定性的图案和配色方案，然后镜像设计以生成美观的头像。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-03-31T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/277</id>
    <title>Issues #277 Mar 25, 2025 || 

问题 #277 2025年3月25日</title>
    <updated>2025-03-25T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Last week, NextJS has a new security vulnerability, &lt;a href="https://nextjs.org/blog/cve-2025-29927"&gt;CVE-2025-29927&lt;/a&gt; that allow by pass middleware auth checking by setting a header to trick it into thinking this is an internal request and skip the auth middleware check. If you&amp;rsquo;re hosted on Vercel there is no action to take, but if you run the vercel server in your infra, you should update.&lt;/p&gt;

&lt;p&gt;Another one for k8s, if you&amp;rsquo;re running ingress-nginx, you should update &lt;a href="https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities"&gt;this patch&lt;/a&gt;. The attack require the ability to have a pod already running inside K8S network, such as sharing namespace with other users, or exposing admission controller webhook to internet. So if your cluster is dedicated to you, and not doing stuff like host network or expose admission controller service, you can buy sometime for the upgrade.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://tinyhack.com/2022/09/16/when-you-deleted-lib-on-linux-while-still-connected-via-ssh/"&gt;When You Deleted /lib on Linux While Still Connected via SSH&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A classic tale of Linux horror. You’re SSH’d into a machine, you make one wrong move, and suddenly your system is broken. This post walks through how to recover from this self-inflicted nightmare.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/"&gt;Think About SQL MERGE in Terms of a RIGHT JOIN&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. There is, however, one place in the SQL language where RIGHT JOIN is surprisingly ubiquitous and today we learn about it.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://vasekrozhon.wordpress.com/2025/03/17/zero-knowledge-proofs/"&gt;Zero-Knowledge Proofs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An approachable introduction to the magic of zero-knowledge proofs—how they let you prove something without revealing the details. Perfect for anyone curious about cryptography without diving into hardcore math.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.construction-physics.com/p/understanding-solar-energy"&gt;Understanding Solar Energy&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This one’s a bit outside the usual programming realm, but trust me—it’s fascinating. A deep dive into how solar panels actually work, the engineering behind them, and why understanding electricity at this level is surprisingly useful.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://greenvitriol.com/posts/sync-engine-for-everyone"&gt;A Synchronization Engine for Everyone&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Syncing data is one of those things that sounds easy until you try to build it. This post walks through a synchronization engine design that’s both simple and powerful.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://wts.dev/posts/password-leak/"&gt;Leaking Passwords (and more!) on macOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deep dive into how macOS can unintentionally leak sensitive data like passwords, thanks to clipboard behavior and debugging tools. A must-read for anyone who cares about security.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://frontendmasters.com/blog/overlapping-inline-backgrounds/"&gt;A Deep Dive into the Inline Background Overlap Problem&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Ever tried putting text over an image and ended up with weird background overlaps? This post explains why that happens and how to fix it. If you do anything with CSS, you’ll want to bookmark this one.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cgmathprog.home.blog/2025/02/17/bpf-or-how-i-stopped-worrying-and-loved-the-kernel/"&gt;BPF: Or How I Stopped Worrying and Loved the Kernel&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;BPF is like a superpower for peeking into Linux. Whether you care about performance monitoring, security, or just love cool system hacks, this is a fantastic read.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://afine.com/history-of-null-pointer-dereferences-on-macos/"&gt;A History of Null Pointer Dereferences on macOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A nostalgic yet technical look at how null pointer dereferences have plagued macOS over the years. Great for those who love debugging deep OS issues.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eugeneyan.com/writing/recsys-llm/"&gt;Improving Recommendation Systems &amp;amp; Search in the Age of LLMs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;AI-powered recommendations are everywhere, but how do they really work? This post explores how LLMs are changing search and recommendation engines for the better.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://iliabylich.github.io/ruby-ractors-and-lock-free-data-structures/intro.html"&gt;Ruby Ractors and Lock-Free Data Structures&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you’re a Rubyist curious about parallelism, this is for you. A practical look at Ruby’s Ractors and how they enable truly parallel execution without locks.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/smparsons/retroboy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;retroboy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Game Boy emulator written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ksylvest/rhino" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rhino&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rack web server written in Ruby from scratch.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/konvajs/konva" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;konva&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Zouuup/landrun" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;landrun&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Need to run untrusted code safely? This sandboxing tool might be your new best friend.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A physics engine in Go that makes simulating motion, collisions, and forces as simple as possible.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fastplotlib/fastplotlib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastplotlib&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A blazing-fast plotting library for massive datasets, using modern GPU rendering to keep things smooth.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EzequielRamis/zimdjson" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zimdjson&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Parsing gigabytes of JSON per second. Zig port of simdjson with fundamental features.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/playwright-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;playwright-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/julienbourdeau/debugbar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;debugbar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Powerful devtools for Ruby on Rails. Inspired by the Laravel Debugbar.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/xataio/agent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;xata agent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open source agent that monitors your database, finds root causes of issues, and suggests fixes and improvements. It&amp;rsquo;s like having a new SRE hire in your team, one with extensive experience in Postgres.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://sqlformat.darold.net/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFormatter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Free Online version of pgFormatter a PostgreSQL SQL syntax beautifier (no line limit here up to 100000 characters). This SQL formatter/beautifier supports keywords from SQL-92, SQL-99, SQL-2003, SQL-2008, SQL-2011 and PostgreSQL specifics keywords. May&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ariga/atlas" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;atlas&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A database schema management tool that works like Terraform—diff, apply, and keep your schema in check.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://typespec.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typespec&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Define your API once in a simple &lt;code&gt;tsp&lt;/code&gt; file, then generate OpenAPI, gRPC, client code, and docs automatically.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.ferronweb.org/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ferronweb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A fast, memory-safe web server powered by Rust. Similar to Caddy or Nginx but written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;更好的开发者链接 - 网络上的编程提升资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;上周，NextJS 发现了一个新的安全漏洞，&lt;a href="https://nextjs.org/blog/cve-2025-29927"&gt;CVE-2025-29927&lt;/a&gt;，该漏洞允许通过设置一个头信息来欺骗系统认为这是内部请求，从而绕过中间件的身份验证检查。如果你使用的是 Vercel，那么无需采取任何行动，但如果你在自己的基础设施中运行 vercel 服务器，你应该更新。&lt;/p&gt;
&lt;p&gt;另一个是关于 k8s 的，如果你正在运行 ingress-nginx，你应该更新 &lt;a href="https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities"&gt;这个补丁&lt;/a&gt;。该攻击需要能够在一个已经运行在 K8S 网络中的 Pod，例如与其他用户共享命名空间，或暴露准入控制器 webhook 到互联网。因此，如果你的集群是专用于你的，并且没有进行诸如主机网络或暴露准入控制器服务等操作，那么你可以为升级争取一些时间。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给你的朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;买一杯咖啡&lt;/a&gt; 会非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tinyhack.com/2022/09/16/when-you-deleted-lib-on-linux-while-still-connected-via-ssh/"&gt;当你在 Linux 上通过 SSH 连接时删除了 /lib&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Linux 世界中的经典恐怖故事。你通过 SSH 登录到一台机器，做出一个错误的举动，突然你的系统就崩溃了。这篇文章将带你了解如何从这种自找的噩梦中恢复。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/"&gt;以 RIGHT JOIN 的方式思考 SQL MERGE&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;RIGHT JOIN 是 SQL 语言中一个晦涩的特性，几乎很少在现实世界中看到，因为几乎每一个 RIGHT JOIN 都可以等价地用 LEFT JOIN 表达。不过，在 SQL 语言中有一个地方，RIGHT JOIN 却出乎意料地普遍，今天我们将学习这一点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vasekrozhon.wordpress.com/2025/03/17/zero-knowledge-proofs/"&gt;零知识证明&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;零知识证明的入门介绍——如何在不透露细节的情况下证明某事。非常适合对密码学感兴趣但不想深入硬核数学的人。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.construction-physics.com/p/understanding-solar-energy"&gt;理解太阳能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章稍微超出了通常的编程领域，但相信我——它非常有趣。深入探讨太阳能板的实际工作原理、背后的工程学，以及为何在这一层面上理解电力是出乎意料的有用的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://greenvitriol.com/posts/sync-engine-for-everyone"&gt;为每个人设计的同步引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;同步数据听起来很简单，直到你尝试去构建它。这篇文章将带你了解一个既简单又强大的同步引擎设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wts.dev/posts/password-leak/"&gt;在 macOS 上泄露密码（及其他）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入探讨 macOS 如何因剪贴板行为和调试工具而无意中泄露敏感数据，如密码。这是任何关心安全的人必读的文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://frontendmasters.com/blog/overlapping-inline-backgrounds/"&gt;内联背景重叠问题的深入探讨&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾尝试在图像上放置文本，却导致了奇怪的背景重叠？这篇文章解释了为什么会发生这种情况以及如何修复。如果你使用 CSS，你一定会想收藏这篇文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cgmathprog.home.blog/2025/02/17/bpf-or-how-i-stopped-worrying-and-loved-the-kernel/"&gt;BPF：或者我是如何停止担心并爱上内核实现的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;BPF 是 Linux 的一种超级能力，无论你是否关心性能监控、安全，或者只是喜欢酷炫的系统黑客，这篇文章都是绝佳的阅读材料。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://afine.com/history-of-null-pointer-dereferences-on-macos/"&gt;macOS 上的空指针解引用历史&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一次怀旧但技术性的回顾，探讨空指针解引用如何多年来困扰 macOS。非常适合喜欢调试深层操作系统问题的人。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eugeneyan.com/writing/recsys-llm/"&gt;在大语言模型时代改进推荐系统与搜索&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;AI 驱动的推荐无处不在，但它们究竟是如何工作的？这篇文章探讨大语言模型如何改善搜索和推荐引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://iliabylich.github.io/ruby-ractors-and-lock-free-data-structures/intro.html"&gt;Ruby Ractors 与无锁数据结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你是 Ruby 开发者，对并行处理感兴趣，那么这篇文章适合你。深入探讨 Ruby 的 Ractors 以及它们如何实现真正的并行执行而无需锁。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/smparsons/retroboy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;retroboy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 Rust 编写的 Game Boy 模拟器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ksylvest/rhino" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rhino&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从头开始用 Ruby 编写的 Rack Web 服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/konvajs/konva" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;konva&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 HTML5 Canvas JavaScript 框架，通过扩展 2d 上下文，使画布在桌面和移动应用中具备交互性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Zouuup/landrun" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;landrun&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;需要安全地运行不可信代码吗？这个沙箱工具可能是你的新最佳朋友。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Go 编写的物理引擎，使模拟运动、碰撞和力变得尽可能简单。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fastplotlib/fastplotlib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastplotlib&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于大规模数据集的超快速绘图库，使用现代 GPU 渲染保持流畅。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EzequielRamis/zimdjson" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zimdjson&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;每秒解析数十亿字节的 JSON。Zig 实现的 simdjson 基础功能。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/playwright-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;playwright-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Playwright 的 Model Context Protocol (MCP) 服务器，提供浏览器自动化功能。该服务器使 LLMs 能够通过结构化的可访问性快照与网页交互，无需截图或视觉调优的模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/julienbourdeau/debugbar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;debugbar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby on Rails 的强大开发工具。灵感来自 Laravel Debugbar。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xataio/agent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;xata agent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源代理，监控你的数据库，找出问题的根本原因，并建议修复和改进方案。它就像拥有一个新加入的 SRE 团队成员，拥有丰富的 Postgres 经验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sqlformat.darold.net/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFormatter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL SQL 语法美化工具的在线版本（无行数限制，最多 100000 个字符）。该 SQL 美化工具支持 SQL-92、SQL-99、SQL-2003、SQL-2008、SQL-2011 以及 PostgreSQL 特定的关键词。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ariga/atlas" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;atlas&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个数据库模式管理工具，其工作方式类似于 Terraform——进行差异分析、应用更改，并保持模式的可控性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typespec.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typespec&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在简单的 &lt;code class="notranslate" translate="no"&gt;tsp&lt;/code&gt; 文件中定义你的 API，然后自动生成 OpenAPI、gRPC、客户端代码和文档。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ferronweb.org/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ferronweb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Rust 的快速、内存安全的 Web 服务器。类似于 Caddy 或 Nginx，但用 Rust 编写。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/277"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Last week, NextJS has a new security vulnerability, &lt;a href="https://nextjs.org/blog/cve-2025-29927"&gt;CVE-2025-29927&lt;/a&gt; that allow by pass middleware auth checking by setting a header to trick it into thinking this is an internal request and skip the auth middleware check. If you&amp;rsquo;re hosted on Vercel there is no action to take, but if you run the vercel server in your infra, you should update.&lt;/p&gt;

&lt;p&gt;Another one for k8s, if you&amp;rsquo;re running ingress-nginx, you should update &lt;a href="https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities"&gt;this patch&lt;/a&gt;. The attack require the ability to have a pod already running inside K8S network, such as sharing namespace with other users, or exposing admission controller webhook to internet. So if your cluster is dedicated to you, and not doing stuff like host network or expose admission controller service, you can buy sometime for the upgrade.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://tinyhack.com/2022/09/16/when-you-deleted-lib-on-linux-while-still-connected-via-ssh/"&gt;When You Deleted /lib on Linux While Still Connected via SSH&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A classic tale of Linux horror. You’re SSH’d into a machine, you make one wrong move, and suddenly your system is broken. This post walks through how to recover from this self-inflicted nightmare.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/"&gt;Think About SQL MERGE in Terms of a RIGHT JOIN&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;RIGHT JOIN is an esoteric feature in the SQL language, and hardly ever seen in the real world, because almost every RIGHT JOIN can just be expressed as an equivalent LEFT JOIN. There is, however, one place in the SQL language where RIGHT JOIN is surprisingly ubiquitous and today we learn about it.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://vasekrozhon.wordpress.com/2025/03/17/zero-knowledge-proofs/"&gt;Zero-Knowledge Proofs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;An approachable introduction to the magic of zero-knowledge proofs—how they let you prove something without revealing the details. Perfect for anyone curious about cryptography without diving into hardcore math.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.construction-physics.com/p/understanding-solar-energy"&gt;Understanding Solar Energy&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This one’s a bit outside the usual programming realm, but trust me—it’s fascinating. A deep dive into how solar panels actually work, the engineering behind them, and why understanding electricity at this level is surprisingly useful.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://greenvitriol.com/posts/sync-engine-for-everyone"&gt;A Synchronization Engine for Everyone&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Syncing data is one of those things that sounds easy until you try to build it. This post walks through a synchronization engine design that’s both simple and powerful.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://wts.dev/posts/password-leak/"&gt;Leaking Passwords (and more!) on macOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A deep dive into how macOS can unintentionally leak sensitive data like passwords, thanks to clipboard behavior and debugging tools. A must-read for anyone who cares about security.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://frontendmasters.com/blog/overlapping-inline-backgrounds/"&gt;A Deep Dive into the Inline Background Overlap Problem&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Ever tried putting text over an image and ended up with weird background overlaps? This post explains why that happens and how to fix it. If you do anything with CSS, you’ll want to bookmark this one.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cgmathprog.home.blog/2025/02/17/bpf-or-how-i-stopped-worrying-and-loved-the-kernel/"&gt;BPF: Or How I Stopped Worrying and Loved the Kernel&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;BPF is like a superpower for peeking into Linux. Whether you care about performance monitoring, security, or just love cool system hacks, this is a fantastic read.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://afine.com/history-of-null-pointer-dereferences-on-macos/"&gt;A History of Null Pointer Dereferences on macOS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A nostalgic yet technical look at how null pointer dereferences have plagued macOS over the years. Great for those who love debugging deep OS issues.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eugeneyan.com/writing/recsys-llm/"&gt;Improving Recommendation Systems &amp;amp; Search in the Age of LLMs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;AI-powered recommendations are everywhere, but how do they really work? This post explores how LLMs are changing search and recommendation engines for the better.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://iliabylich.github.io/ruby-ractors-and-lock-free-data-structures/intro.html"&gt;Ruby Ractors and Lock-Free Data Structures&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you’re a Rubyist curious about parallelism, this is for you. A practical look at Ruby’s Ractors and how they enable truly parallel execution without locks.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/smparsons/retroboy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;retroboy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Game Boy emulator written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ksylvest/rhino" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rhino&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rack web server written in Ruby from scratch.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/konvajs/konva" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;konva&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an HTML5 Canvas JavaScript framework that extends the 2d context by enabling canvas interactivity for desktop and mobile applications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Zouuup/landrun" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;landrun&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Need to run untrusted code safely? This sandboxing tool might be your new best friend.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix-go&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A physics engine in Go that makes simulating motion, collisions, and forces as simple as possible.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fastplotlib/fastplotlib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastplotlib&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A blazing-fast plotting library for massive datasets, using modern GPU rendering to keep things smooth.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EzequielRamis/zimdjson" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zimdjson&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Parsing gigabytes of JSON per second. Zig port of simdjson with fundamental features.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/playwright-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;playwright-mcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/julienbourdeau/debugbar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;debugbar&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Powerful devtools for Ruby on Rails. Inspired by the Laravel Debugbar.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/xataio/agent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;xata agent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open source agent that monitors your database, finds root causes of issues, and suggests fixes and improvements. It&amp;rsquo;s like having a new SRE hire in your team, one with extensive experience in Postgres.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://sqlformat.darold.net/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFormatter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Free Online version of pgFormatter a PostgreSQL SQL syntax beautifier (no line limit here up to 100000 characters). This SQL formatter/beautifier supports keywords from SQL-92, SQL-99, SQL-2003, SQL-2008, SQL-2011 and PostgreSQL specifics keywords. May&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ariga/atlas" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;atlas&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A database schema management tool that works like Terraform—diff, apply, and keep your schema in check.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://typespec.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typespec&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Define your API once in a simple &lt;code&gt;tsp&lt;/code&gt; file, then generate OpenAPI, gRPC, client code, and docs automatically.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.ferronweb.org/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ferronweb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A fast, memory-safe web server powered by Rust. Similar to Caddy or Nginx but written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;更好的开发者链接 - 网络上的编程提升资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;上周，NextJS 发现了一个新的安全漏洞，&lt;a href="https://nextjs.org/blog/cve-2025-29927"&gt;CVE-2025-29927&lt;/a&gt;，该漏洞允许通过设置一个头信息来欺骗系统认为这是内部请求，从而绕过中间件的身份验证检查。如果你使用的是 Vercel，那么无需采取任何行动，但如果你在自己的基础设施中运行 vercel 服务器，你应该更新。&lt;/p&gt;
&lt;p&gt;另一个是关于 k8s 的，如果你正在运行 ingress-nginx，你应该更新 &lt;a href="https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities"&gt;这个补丁&lt;/a&gt;。该攻击需要能够在一个已经运行在 K8S 网络中的 Pod，例如与其他用户共享命名空间，或暴露准入控制器 webhook 到互联网。因此，如果你的集群是专用于你的，并且没有进行诸如主机网络或暴露准入控制器服务等操作，那么你可以为升级争取一些时间。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给你的朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;买一杯咖啡&lt;/a&gt; 会非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tinyhack.com/2022/09/16/when-you-deleted-lib-on-linux-while-still-connected-via-ssh/"&gt;当你在 Linux 上通过 SSH 连接时删除了 /lib&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Linux 世界中的经典恐怖故事。你通过 SSH 登录到一台机器，做出一个错误的举动，突然你的系统就崩溃了。这篇文章将带你了解如何从这种自找的噩梦中恢复。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.jooq.org/think-about-sql-merge-in-terms-of-a-right-join/"&gt;以 RIGHT JOIN 的方式思考 SQL MERGE&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;RIGHT JOIN 是 SQL 语言中一个晦涩的特性，几乎很少在现实世界中看到，因为几乎每一个 RIGHT JOIN 都可以等价地用 LEFT JOIN 表达。不过，在 SQL 语言中有一个地方，RIGHT JOIN 却出乎意料地普遍，今天我们将学习这一点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vasekrozhon.wordpress.com/2025/03/17/zero-knowledge-proofs/"&gt;零知识证明&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;零知识证明的入门介绍——如何在不透露细节的情况下证明某事。非常适合对密码学感兴趣但不想深入硬核数学的人。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.construction-physics.com/p/understanding-solar-energy"&gt;理解太阳能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章稍微超出了通常的编程领域，但相信我——它非常有趣。深入探讨太阳能板的实际工作原理、背后的工程学，以及为何在这一层面上理解电力是出乎意料的有用的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://greenvitriol.com/posts/sync-engine-for-everyone"&gt;为每个人设计的同步引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;同步数据听起来很简单，直到你尝试去构建它。这篇文章将带你了解一个既简单又强大的同步引擎设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://wts.dev/posts/password-leak/"&gt;在 macOS 上泄露密码（及其他）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;深入探讨 macOS 如何因剪贴板行为和调试工具而无意中泄露敏感数据，如密码。这是任何关心安全的人必读的文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://frontendmasters.com/blog/overlapping-inline-backgrounds/"&gt;内联背景重叠问题的深入探讨&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾尝试在图像上放置文本，却导致了奇怪的背景重叠？这篇文章解释了为什么会发生这种情况以及如何修复。如果你使用 CSS，你一定会想收藏这篇文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cgmathprog.home.blog/2025/02/17/bpf-or-how-i-stopped-worrying-and-loved-the-kernel/"&gt;BPF：或者我是如何停止担心并爱上内核实现的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;BPF 是 Linux 的一种超级能力，无论你是否关心性能监控、安全，或者只是喜欢酷炫的系统黑客，这篇文章都是绝佳的阅读材料。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://afine.com/history-of-null-pointer-dereferences-on-macos/"&gt;macOS 上的空指针解引用历史&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一次怀旧但技术性的回顾，探讨空指针解引用如何多年来困扰 macOS。非常适合喜欢调试深层操作系统问题的人。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eugeneyan.com/writing/recsys-llm/"&gt;在大语言模型时代改进推荐系统与搜索&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;AI 驱动的推荐无处不在，但它们究竟是如何工作的？这篇文章探讨大语言模型如何改善搜索和推荐引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://iliabylich.github.io/ruby-ractors-and-lock-free-data-structures/intro.html"&gt;Ruby Ractors 与无锁数据结构&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你是 Ruby 开发者，对并行处理感兴趣，那么这篇文章适合你。深入探讨 Ruby 的 Ractors 以及它们如何实现真正的并行执行而无需锁。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/smparsons/retroboy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;retroboy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用 Rust 编写的 Game Boy 模拟器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ksylvest/rhino" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rhino&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;从头开始用 Ruby 编写的 Rack Web 服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/konvajs/konva" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;konva&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 HTML5 Canvas JavaScript 框架，通过扩展 2d 上下文，使画布在桌面和移动应用中具备交互性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Zouuup/landrun" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;landrun&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;需要安全地运行不可信代码吗？这个沙箱工具可能是你的新最佳朋友。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rudransh61/Physix-go" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Physix-go&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Go 编写的物理引擎，使模拟运动、碰撞和力变得尽可能简单。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fastplotlib/fastplotlib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastplotlib&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于大规模数据集的超快速绘图库，使用现代 GPU 渲染保持流畅。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EzequielRamis/zimdjson" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zimdjson&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;每秒解析数十亿字节的 JSON。Zig 实现的 simdjson 基础功能。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/playwright-mcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;playwright-mcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Playwright 的 Model Context Protocol (MCP) 服务器，提供浏览器自动化功能。该服务器使 LLMs 能够通过结构化的可访问性快照与网页交互，无需截图或视觉调优的模型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/julienbourdeau/debugbar" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;debugbar&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby on Rails 的强大开发工具。灵感来自 Laravel Debugbar。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xataio/agent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;xata agent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源代理，监控你的数据库，找出问题的根本原因，并建议修复和改进方案。它就像拥有一个新加入的 SRE 团队成员，拥有丰富的 Postgres 经验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sqlformat.darold.net/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgFormatter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL SQL 语法美化工具的在线版本（无行数限制，最多 100000 个字符）。该 SQL 美化工具支持 SQL-92、SQL-99、SQL-2003、SQL-2008、SQL-2011 以及 PostgreSQL 特定的关键词。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ariga/atlas" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;atlas&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个数据库模式管理工具，其工作方式类似于 Terraform——进行差异分析、应用更改，并保持模式的可控性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typespec.io/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;typespec&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在简单的 &lt;code class="notranslate" translate="no"&gt;tsp&lt;/code&gt; 文件中定义你的 API，然后自动生成 OpenAPI、gRPC、客户端代码和文档。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ferronweb.org/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ferronweb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于 Rust 的快速、内存安全的 Web 服务器。类似于 Caddy 或 Nginx，但用 Rust 编写。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-03-25T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/276</id>
    <title>Issues #276 Mar 18, 2025 || 

问题 #276 2025年3月18日</title>
    <updated>2025-03-18T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;This week the github action &lt;a href="https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised"&gt;tj-actions/changed-files&lt;/a&gt; are compromise and steeling credential of github action env. I had always found the concept of trusting randome github action is scary. Especially github make the action appear under the global namespace &lt;code&gt;/marketplace/actions&lt;/code&gt; make it seems trust worth. Had github adopt a &lt;code&gt;&amp;lt;user-org&amp;gt;/name&lt;/code&gt; probably more people will aware. I recommend for any non official github action, fork it to your own org or account and review source code manually.&lt;/p&gt;

&lt;p&gt;Second thing, if you has been using WHOIS to find out domain owner or registra info, that is going to change. ICANN is &lt;a href="https://www.icann.org/en/announcements/details/icann-update-launching-rdap-sunsetting-whois-27-01-2025-en. There are a [web version](https://lookup.icann.org/en"&gt;Launching RDAP; Sunsetting WHOIS&lt;/a&gt; and a &lt;a href="https://github.com/icann/icann-rdap/wiki/RDAP-command"&gt;CLI to replace whois too&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Developer AI for real software engineering work&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks&amp;hellip;a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it&amp;rsquo;s fast, high quality, and secure. Even better - you don&amp;rsquo;t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Start building for free today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/io-devices-and-latency"&gt;IO devices and latency&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Non-volatile storage is a cornerstone of modern computer systems. Every modern photo, email, bank balance, medical record, and other critical pieces of data are kept on digital storage devices, often replicated many times over for added durability. we&amp;rsquo;re going to cover the history, functionality, and performance of non-volatile storage devices over the history of computing, all using fun and interactive visual elements.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://bughunters.google.com/blog/5424842357473280/zen-and-the-art-of-microcode-hacking"&gt;Zen and the Art of Microcode Hacking&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Google release the full details of EntrySign, the AMD Zen microcode signature validation vulnerability which they initially disclosed on Feb 2025. This vulnerability allows an adversary with local administrator privileges (ring 0 from outside a VM) to load malicious microcode patches. We have demonstrated the ability to craft arbitrary malicious microcode patches on Zen 1 through Zen 4 CPUs&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.gitbutler.com/going-down-the-rabbit-hole-of-gits-new-bundle-uri/"&gt;Going down the rabbit hole of Git's new bundle-uri&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Exploring an unpopular git bundle-uri that can help speed up Git by pre-populate git local object cache from https instead of fetching from git server.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://okaydev.co/articles/dive-into-webgpu-part-1"&gt;Dive Into WebGPU — Part 1&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebGPU is a modern graphics API designed to provide high-performance graphics and computation capabilities across different platforms, including web browsers, desktops, and mobile devices. It is intended to be a successor to the WebGL API, offering more advanced features, better performance, and greater flexibility for developers&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ishadeed.com/article/css-relative-colors/"&gt;CSS Relative Colors&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;CSS is evolving realy fast. This is a useful feature used to cover by CSS pre-processor like SCSS or LESS.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://seeinglogic.com/posts/visual-readability-patterns"&gt;What Makes Code Hard To Read: Visual Patterns of Complexity&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The question everyone have an answer for. The OP share with us an interesting concept: visual patterns of code, specifically the ones that make their brain hurt!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://surfingcomplexity.blog/2025/03/09/paxos-made-visual-in-fizzbee/"&gt;Paxos made visual in FizzBee&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Any distributed system you will hear the term Raft or Paxos. Some expert consider Paxos is super simple, some say it&amp;rsquo;s the most complicated. In this post, the OP modeling Paxos with &lt;a href="https://fizzbee.io/"&gt;FizzBee&lt;/a&gt;, a design specification language and model checker to specify distributed systems at a much higher level of abstraction than a programming language for system analysis and design. So we will learn 2 things in this post.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ashwanirathee.com/blog/2025/sort2/"&gt;Sorting Algorithms with CUDA!&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Building on a previous post on sorting algorithms, I implemented the same algorithms using CUDA to explore performance improvements through parallel computing. The goal is to see how we can leverage the power of parallel computing to speed up our sorting algorithms. I went for a NVIDIA recruiting event some days ago, that was a great event and it motivated me to try to rewrite the sorting algorithms using CUDA.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/postgresql-1-trillion-rows-in-citus/"&gt;PostgreSQL: 1 trillion rows in Citus&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;&amp;ldquo;PostgreSQL scales&amp;rdquo; - we have all heard this phrase over and over again. However, the question is: What does this actually mean? Does it mean 1 million rows? Or maybe even 1 billion rows? So, on a rainy weekend, I decided to do a little experiment to figure out if it is possible to squeeze 1 trillion rows (= 1000 billion rows) into my local personal computer&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sbaziotis.com/compilers/getting-started-with-compilers.html"&gt;Getting started with Compilers&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;As an engineer we&amp;rsquo;re all curious how a compilers to made. The bad news is there is no single resource to grasp all of that. The good news are all the resource widely available for us to get started.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://binarysecurity.no/posts/2025/03/api-connection"&gt;Azure’s Weakest Link? How API Connections Spill Secrets&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Binary Security found the undocumented APIs for Azure API Connections. In this post we examine the inner workings of the Connections allowing us to escalate privileges and read secrets in backend resources for services ranging from Key Vaults, Storage Blobs, Defender ATP, to Enterprise Jira and SalesForce servers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/crmne/ruby_llm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby_llm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/addyosmani/filter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a powerful, web-based image editor built with React and TypeScript. It provides a modern, intuitive interface for quick image edits and filters, optimized for both desktop and mobile devices.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://cmdk.paco.me/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;⌘K: Fast, composable, unstyled command menu for React.&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever need a short-cut like a spotlight search for your app. You would want this&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jaypipes/ghw" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ghw&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go HardWare discovery/inspection library&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nishantjoshi00/shelgon" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shelgon&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a robust Rust framework for building interactive REPL (Read-Eval-Print Loop) applications and custom shells. It provides a flexible, type-safe foundation with built-in terminal UI capabilities using ratatui.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/octotools/octotools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;octotools&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An agentic framework with extensible tools for complex reasoning&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/markqvist/Reticulum" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Reticulum&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prevent merging of malicious code in pull requests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/wild-card-ai/agents-json" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agents-json&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The agents.json Specification is an open specification that formally describes contracts for API and agent interactions, built on top of the OpenAPI standar&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rajathjn/shorts_maker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shorts_maker&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Python package designed to facilitate the creation of engaging short videos or social media clips. It leverages a variety of external services and libraries to streamline the process of generating, processing, and uploading short content.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://jatin-yadav05.github.io/MotifyX/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MotifyX&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Elevate your designs with our curated collection of modern background patterns. Preview, customize, and implement with just a few clicks.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pipecat-ai/smart-turn" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;smart-turn&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open source, community-driven, native audio turn detection model. &lt;a href="https://huggingface.co/pipecat-ai/smart-turn"&gt;Hugging Face&lt;/a&gt; model is available&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dicedb/dice" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dicedb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open-source, fast, reactive, in-memory database optimized for modern hardware.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgdogdev/pgdog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgdog&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Horizontal scaling for PostgreSQL.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nubskr/nubmq" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nubmq&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A blazing-fast KV store written in pure Golang without any dependencies with native pub-sub support, engineered for high-frequency, contention-heavy workloads&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/allenai/olmocr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;olmocr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Toolkit for linearizing PDFs for LLM datasets/training&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 有关如何成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好,&lt;/p&gt;
&lt;p&gt;本周，github action &lt;a href="https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised"&gt;tj-actions/changed-files&lt;/a&gt; 被入侵并窃取了 github action 环境的凭证。我一直觉得信任随机的 github action 是令人不安的。特别是 github 将 action 放在全局命名空间 &lt;code class="notranslate" translate="no"&gt;/marketplace/actions&lt;/code&gt; 下，让人觉得更值得信赖。如果 github 采用 &lt;code class="notranslate" translate="no"&gt;&amp;lt;user-org&amp;gt;/name&lt;/code&gt; 的方式，可能更多人会意识到这个问题。我建议对于任何非官方的 github action，都应将其 fork 到自己的组织或账户中，并手动审查源代码。&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;第二件事，如果你一直在使用 WHOIS 来查找域名所有者或注册信息，这将发生变化。ICANN 已经 &lt;a href="https://www.icann.org/en/announcements/details/icann-update-launching-rdap-sunsetting-whois-27-01-2025-en. There are a [web version](https://lookup.icann.org/en"&gt;Launching RDAP; Sunsetting WHOIS&lt;/a&gt; 和一个 &lt;a href="https://github.com/icann/icann-rdap/wiki/RDAP-command"&gt;CLI 工具来替代 WHOIS&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter" target="_blank"&gt;为真实软件工程工作打造的开发者 AI&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;许多编码 AI 在绿色字段应用上都有炫酷的 X 演示。但专业软件工程师在团队中日常的工作却看起来……与 vibe 编码有些不同。进入 Augment Code。这是首个为团队和大型代码库打造的开发者 AI，Augment 可在数百万行代码和数千个文件的代码库中运行，为每个按键带来完整的代码库上下文。Datastax、Observe、Kong 和 Lemonade 等客户信任 Augment，因为它快速、高质量且安全。更棒的是——你无需更换 IDE，Augment 支持 VS Code、JetBrains，甚至 Vim。Augment 可免费试用，且不会未经许可地训练代码。 &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter" target="_blank"&gt;今天就开始免费构建吧&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/io-devices-and-latency" target="_blank"&gt;IO 设备和延迟&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;非易失性存储是现代计算机系统的基础。每一张现代照片、每一封电子邮件、每个银行账户余额、每一份医疗记录以及其他关键数据都存储在数字存储设备上，通常会多次复制以增加耐用性。我们将通过有趣且互动的视觉元素，探讨非易失性存储设备在计算机发展历史中的功能和性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bughunters.google.com/blog/5424842357473280/zen-and-the-art-of-microcode-hacking" target="_blank"&gt;Zen 与微代码破解的艺术&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Google 公布了 EntrySign 的完整细节，这是 AMD Zen 微代码签名验证漏洞，他们最初于 2025 年 2 月披露。该漏洞允许拥有本地管理员权限（在虚拟机外部的 ring 0）的对手加载恶意微代码补丁。我们已经展示了如何在 Zen 1 到 Zen 4 处理器上构建任意恶意微代码补丁。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.gitbutler.com/going-down-the-rabbit-hole-of-gits-new-bundle-uri" target="_blank"&gt;深入探索 Git 新的 bundle-uri&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;探索一个不受欢迎的 git bundle-uri，它可以通过 https 预填充 git 本地对象缓存，从而加快 Git 的速度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://okaydev.co/articles/dive-into-webgpu-part-1" target="_blank"&gt;深入 WebGPU — 第一部分&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebGPU 是一种现代图形 API，旨在为不同平台（包括网络浏览器、桌面和移动设备）提供高性能的图形和计算能力。它旨在成为 WebGL API 的继任者，提供更先进的功能、更好的性能和更大的灵活性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ishadeed.com/article/css-relative-colors" target="_blank"&gt;CSS 相对颜色&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;CSS 正在以极快的速度发展。这是一个有用的特性，可用于 CSS 预处理器如 SCSS 或 LESS。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://seeinglogic.com/posts/visual-readability-patterns" target="_blank"&gt;什么让代码难以阅读：复杂性的视觉模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每个人都对此有答案。作者与我们分享了一个有趣的概念：代码的视觉模式，特别是那些让大脑感到痛苦的模式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://surfingcomplexity.blog/2025/03/09/paxos-made-visual-in-fizzbee" target="_blank"&gt;FizzBee 中的 Paxos 可视化&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;任何分布式系统你都会听到 Raft 或 Paxos 这个术语。一些专家认为 Paxos 非常简单，一些人则认为它是最复杂的。在本文中，作者使用 &lt;a href="https://fizzbee.io/"&gt;FizzBee&lt;/a&gt;，一种设计规范语言和模型检查器，以比编程语言更高的抽象级别来指定分布式系统，从而进行系统分析和设计。因此，我们在本文中将学到两件事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ashwanirathee.com/blog/2025/sort2" target="_blank"&gt;使用 CUDA 实现排序算法！&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在之前一篇关于排序算法的文章基础上，我使用 CUDA 实现了相同的算法，以探索通过并行计算实现的性能提升。目标是看看我们如何利用并行计算来加速排序算法。前几天我参加了一个 NVIDIA 的招聘活动，那是一次很棒的活动，也激励我尝试用 CUDA 重写排序算法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/postgresql-1-trillion-rows-in-citus" target="_blank"&gt;PostgreSQL：在 Citus 中实现 1 万亿行&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;“PostgreSQL 可扩展”——我们早已听过这句话。然而，问题是：这到底意味着什么？是指 100 万行？还是甚至 10 亿行？因此，在一个雨天的周末，我决定做个小实验，看看是否可以将 1 万亿行（= 1000 亿行）塞进我的个人电脑中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sbaziotis.com/compilers/getting-started-with-compilers.html" target="_blank"&gt;开始学习编译器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;作为工程师，我们所有人都好奇编译器是如何被制造出来的。坏消息是，没有单一资源能涵盖所有内容。好消息是，所有资源都广泛可用，供我们入门。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://binarysecurity.no/posts/2025/03/api-connection" target="_blank"&gt;Azure 的最薄弱环节？API 连接如何泄露秘密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Binary Security 发现了 Azure API 连接的未文档化 API。在本文中，我们将探讨 Connections 的内部运作，使我们能够提升权限并读取后端资源（如 Key Vaults、Storage Blobs、Defender ATP、Enterprise Jira 和 SalesForce 服务器）中的秘密。&lt;/p&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/crmne/ruby_llm" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;ruby_llm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一种愉快的 Ruby 方式来与 AI 交互。无需配置混乱，无需复杂的回调，无需处理地狱——只需优雅、富有表现力的 Ruby 代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/addyosmani/filter" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;filter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于网络的强大图像编辑器，使用 React 和 TypeScript 构建。它提供了一个现代、直观的界面，用于快速图像编辑和滤镜，优化了桌面和移动设备的使用体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cmdk.paco.me/" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;⌘K: 用于 React 的快速、可组合、无样式命令菜单&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你曾经需要一个类似 Spotlight 搜索的快捷方式来查找你的应用程序，那么你需要这个。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jaypipes/ghw" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;ghw&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言的硬件发现/检查库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nishantjoshi00/shelgon" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;shelgon&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于构建交互式 REPL（读取-求值-打印循环）应用程序和自定义 shell 的强大 Rust 框架。它提供了一个灵活、类型安全的基础，并内置了使用 ratatui 的终端 UI 功能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/octotools/octotools" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;octotools&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个具有可扩展工具的代理框架，用于复杂推理&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/markqvist/Reticulum" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;Reticulum&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于加密的网络堆栈，用于构建不可阻挡的网络，涵盖 LoRa、Packet Radio、WiFi 以及中间的一切。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent/tree/main" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;PRevent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;防止拉取请求中合并恶意代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/wild-card-ai/agents-json" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;agents-json&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;agents.json 规范是一个开放规范，正式描述了 API 和代理交互的合同，基于 OpenAPI 标准构建&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rajathjn/shorts_maker" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;shorts_maker&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 包，旨在帮助创建吸引人的短视频或社交媒体片段。它利用各种外部服务和库，简化了生成、处理和上传短视频的过程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jatin-yadav05.github.io/MotifyX/" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;MotifyX&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提升你的设计，使用我们精心挑选的现代背景图案。只需几下点击即可预览、定制和实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pipecat-ai/smart-turn" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;smart-turn&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源、社区驱动的原生音频转检测模型。 &lt;a href="https://huggingface.co/pipecat-ai/smart-turn"&gt;Hugging Face&lt;/a&gt; 模型已可用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dicedb/dice" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;dicedb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源、快速、反应式、内存数据库，专为现代硬件优化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgdogdev/pgdog" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;pgdog&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 的水平扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nubskr/nubmq" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;nubmq&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用纯 Golang 编写的快速键值存储，无任何依赖，并且原生支持发布-订阅功能，专为高频率、高竞争的工作负载设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/allenai/olmocr" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;olmocr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于线性化 PDF 以供 LLM 数据集/训练的工具包&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/276"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;This week the github action &lt;a href="https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised"&gt;tj-actions/changed-files&lt;/a&gt; are compromise and steeling credential of github action env. I had always found the concept of trusting randome github action is scary. Especially github make the action appear under the global namespace &lt;code&gt;/marketplace/actions&lt;/code&gt; make it seems trust worth. Had github adopt a &lt;code&gt;&amp;lt;user-org&amp;gt;/name&lt;/code&gt; probably more people will aware. I recommend for any non official github action, fork it to your own org or account and review source code manually.&lt;/p&gt;

&lt;p&gt;Second thing, if you has been using WHOIS to find out domain owner or registra info, that is going to change. ICANN is &lt;a href="https://www.icann.org/en/announcements/details/icann-update-launching-rdap-sunsetting-whois-27-01-2025-en. There are a [web version](https://lookup.icann.org/en"&gt;Launching RDAP; Sunsetting WHOIS&lt;/a&gt; and a &lt;a href="https://github.com/icann/icann-rdap/wiki/RDAP-command"&gt;CLI to replace whois too&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Developer AI for real software engineering work&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks&amp;hellip;a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it&amp;rsquo;s fast, high quality, and secure. Even better - you don&amp;rsquo;t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Start building for free today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/io-devices-and-latency"&gt;IO devices and latency&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Non-volatile storage is a cornerstone of modern computer systems. Every modern photo, email, bank balance, medical record, and other critical pieces of data are kept on digital storage devices, often replicated many times over for added durability. we&amp;rsquo;re going to cover the history, functionality, and performance of non-volatile storage devices over the history of computing, all using fun and interactive visual elements.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://bughunters.google.com/blog/5424842357473280/zen-and-the-art-of-microcode-hacking"&gt;Zen and the Art of Microcode Hacking&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Google release the full details of EntrySign, the AMD Zen microcode signature validation vulnerability which they initially disclosed on Feb 2025. This vulnerability allows an adversary with local administrator privileges (ring 0 from outside a VM) to load malicious microcode patches. We have demonstrated the ability to craft arbitrary malicious microcode patches on Zen 1 through Zen 4 CPUs&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.gitbutler.com/going-down-the-rabbit-hole-of-gits-new-bundle-uri/"&gt;Going down the rabbit hole of Git's new bundle-uri&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Exploring an unpopular git bundle-uri that can help speed up Git by pre-populate git local object cache from https instead of fetching from git server.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://okaydev.co/articles/dive-into-webgpu-part-1"&gt;Dive Into WebGPU — Part 1&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebGPU is a modern graphics API designed to provide high-performance graphics and computation capabilities across different platforms, including web browsers, desktops, and mobile devices. It is intended to be a successor to the WebGL API, offering more advanced features, better performance, and greater flexibility for developers&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ishadeed.com/article/css-relative-colors/"&gt;CSS Relative Colors&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;CSS is evolving realy fast. This is a useful feature used to cover by CSS pre-processor like SCSS or LESS.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://seeinglogic.com/posts/visual-readability-patterns"&gt;What Makes Code Hard To Read: Visual Patterns of Complexity&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The question everyone have an answer for. The OP share with us an interesting concept: visual patterns of code, specifically the ones that make their brain hurt!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://surfingcomplexity.blog/2025/03/09/paxos-made-visual-in-fizzbee/"&gt;Paxos made visual in FizzBee&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Any distributed system you will hear the term Raft or Paxos. Some expert consider Paxos is super simple, some say it&amp;rsquo;s the most complicated. In this post, the OP modeling Paxos with &lt;a href="https://fizzbee.io/"&gt;FizzBee&lt;/a&gt;, a design specification language and model checker to specify distributed systems at a much higher level of abstraction than a programming language for system analysis and design. So we will learn 2 things in this post.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ashwanirathee.com/blog/2025/sort2/"&gt;Sorting Algorithms with CUDA!&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Building on a previous post on sorting algorithms, I implemented the same algorithms using CUDA to explore performance improvements through parallel computing. The goal is to see how we can leverage the power of parallel computing to speed up our sorting algorithms. I went for a NVIDIA recruiting event some days ago, that was a great event and it motivated me to try to rewrite the sorting algorithms using CUDA.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/postgresql-1-trillion-rows-in-citus/"&gt;PostgreSQL: 1 trillion rows in Citus&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;&amp;ldquo;PostgreSQL scales&amp;rdquo; - we have all heard this phrase over and over again. However, the question is: What does this actually mean? Does it mean 1 million rows? Or maybe even 1 billion rows? So, on a rainy weekend, I decided to do a little experiment to figure out if it is possible to squeeze 1 trillion rows (= 1000 billion rows) into my local personal computer&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://sbaziotis.com/compilers/getting-started-with-compilers.html"&gt;Getting started with Compilers&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;As an engineer we&amp;rsquo;re all curious how a compilers to made. The bad news is there is no single resource to grasp all of that. The good news are all the resource widely available for us to get started.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://binarysecurity.no/posts/2025/03/api-connection"&gt;Azure’s Weakest Link? How API Connections Spill Secrets&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Binary Security found the undocumented APIs for Azure API Connections. In this post we examine the inner workings of the Connections allowing us to escalate privileges and read secrets in backend resources for services ranging from Key Vaults, Storage Blobs, Defender ATP, to Enterprise Jira and SalesForce servers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/crmne/ruby_llm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby_llm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/addyosmani/filter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;filter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a powerful, web-based image editor built with React and TypeScript. It provides a modern, intuitive interface for quick image edits and filters, optimized for both desktop and mobile devices.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://cmdk.paco.me/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;⌘K: Fast, composable, unstyled command menu for React.&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever need a short-cut like a spotlight search for your app. You would want this&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jaypipes/ghw" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ghw&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go HardWare discovery/inspection library&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nishantjoshi00/shelgon" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shelgon&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a robust Rust framework for building interactive REPL (Read-Eval-Print Loop) applications and custom shells. It provides a flexible, type-safe foundation with built-in terminal UI capabilities using ratatui.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/octotools/octotools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;octotools&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An agentic framework with extensible tools for complex reasoning&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/markqvist/Reticulum" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Reticulum&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The cryptography-based networking stack for building unstoppable networks with LoRa, Packet Radio, WiFi and everything in between.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prevent merging of malicious code in pull requests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/wild-card-ai/agents-json" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;agents-json&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The agents.json Specification is an open specification that formally describes contracts for API and agent interactions, built on top of the OpenAPI standar&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rajathjn/shorts_maker" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shorts_maker&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Python package designed to facilitate the creation of engaging short videos or social media clips. It leverages a variety of external services and libraries to streamline the process of generating, processing, and uploading short content.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://jatin-yadav05.github.io/MotifyX/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MotifyX&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Elevate your designs with our curated collection of modern background patterns. Preview, customize, and implement with just a few clicks.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pipecat-ai/smart-turn" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;smart-turn&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open source, community-driven, native audio turn detection model. &lt;a href="https://huggingface.co/pipecat-ai/smart-turn"&gt;Hugging Face&lt;/a&gt; model is available&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dicedb/dice" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dicedb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open-source, fast, reactive, in-memory database optimized for modern hardware.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgdogdev/pgdog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgdog&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Horizontal scaling for PostgreSQL.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nubskr/nubmq" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nubmq&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A blazing-fast KV store written in pure Golang without any dependencies with native pub-sub support, engineered for high-frequency, contention-heavy workloads&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/allenai/olmocr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;olmocr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Toolkit for linearizing PDFs for LLM datasets/training&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 有关如何成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好,&lt;/p&gt;
&lt;p&gt;本周，github action &lt;a href="https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised"&gt;tj-actions/changed-files&lt;/a&gt; 被入侵并窃取了 github action 环境的凭证。我一直觉得信任随机的 github action 是令人不安的。特别是 github 将 action 放在全局命名空间 &lt;code class="notranslate" translate="no"&gt;/marketplace/actions&lt;/code&gt; 下，让人觉得更值得信赖。如果 github 采用 &lt;code class="notranslate" translate="no"&gt;&amp;lt;user-org&amp;gt;/name&lt;/code&gt; 的方式，可能更多人会意识到这个问题。我建议对于任何非官方的 github action，都应将其 fork 到自己的组织或账户中，并手动审查源代码。&lt;/p&gt;
&lt;p class="notranslate" translate="no"&gt;第二件事，如果你一直在使用 WHOIS 来查找域名所有者或注册信息，这将发生变化。ICANN 已经 &lt;a href="https://www.icann.org/en/announcements/details/icann-update-launching-rdap-sunsetting-whois-27-01-2025-en. There are a [web version](https://lookup.icann.org/en"&gt;Launching RDAP; Sunsetting WHOIS&lt;/a&gt; 和一个 &lt;a href="https://github.com/icann/icann-rdap/wiki/RDAP-command"&gt;CLI 工具来替代 WHOIS&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt; 将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter" target="_blank"&gt;为真实软件工程工作打造的开发者 AI&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;许多编码 AI 在绿色字段应用上都有炫酷的 X 演示。但专业软件工程师在团队中日常的工作却看起来……与 vibe 编码有些不同。进入 Augment Code。这是首个为团队和大型代码库打造的开发者 AI，Augment 可在数百万行代码和数千个文件的代码库中运行，为每个按键带来完整的代码库上下文。Datastax、Observe、Kong 和 Lemonade 等客户信任 Augment，因为它快速、高质量且安全。更棒的是——你无需更换 IDE，Augment 支持 VS Code、JetBrains，甚至 Vim。Augment 可免费试用，且不会未经许可地训练代码。 &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter" target="_blank"&gt;今天就开始免费构建吧&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/io-devices-and-latency" target="_blank"&gt;IO 设备和延迟&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;非易失性存储是现代计算机系统的基础。每一张现代照片、每一封电子邮件、每个银行账户余额、每一份医疗记录以及其他关键数据都存储在数字存储设备上，通常会多次复制以增加耐用性。我们将通过有趣且互动的视觉元素，探讨非易失性存储设备在计算机发展历史中的功能和性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bughunters.google.com/blog/5424842357473280/zen-and-the-art-of-microcode-hacking" target="_blank"&gt;Zen 与微代码破解的艺术&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Google 公布了 EntrySign 的完整细节，这是 AMD Zen 微代码签名验证漏洞，他们最初于 2025 年 2 月披露。该漏洞允许拥有本地管理员权限（在虚拟机外部的 ring 0）的对手加载恶意微代码补丁。我们已经展示了如何在 Zen 1 到 Zen 4 处理器上构建任意恶意微代码补丁。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.gitbutler.com/going-down-the-rabbit-hole-of-gits-new-bundle-uri" target="_blank"&gt;深入探索 Git 新的 bundle-uri&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;探索一个不受欢迎的 git bundle-uri，它可以通过 https 预填充 git 本地对象缓存，从而加快 Git 的速度。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://okaydev.co/articles/dive-into-webgpu-part-1" target="_blank"&gt;深入 WebGPU — 第一部分&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebGPU 是一种现代图形 API，旨在为不同平台（包括网络浏览器、桌面和移动设备）提供高性能的图形和计算能力。它旨在成为 WebGL API 的继任者，提供更先进的功能、更好的性能和更大的灵活性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ishadeed.com/article/css-relative-colors" target="_blank"&gt;CSS 相对颜色&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;CSS 正在以极快的速度发展。这是一个有用的特性，可用于 CSS 预处理器如 SCSS 或 LESS。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://seeinglogic.com/posts/visual-readability-patterns" target="_blank"&gt;什么让代码难以阅读：复杂性的视觉模式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;每个人都对此有答案。作者与我们分享了一个有趣的概念：代码的视觉模式，特别是那些让大脑感到痛苦的模式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://surfingcomplexity.blog/2025/03/09/paxos-made-visual-in-fizzbee" target="_blank"&gt;FizzBee 中的 Paxos 可视化&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;任何分布式系统你都会听到 Raft 或 Paxos 这个术语。一些专家认为 Paxos 非常简单，一些人则认为它是最复杂的。在本文中，作者使用 &lt;a href="https://fizzbee.io/"&gt;FizzBee&lt;/a&gt;，一种设计规范语言和模型检查器，以比编程语言更高的抽象级别来指定分布式系统，从而进行系统分析和设计。因此，我们在本文中将学到两件事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ashwanirathee.com/blog/2025/sort2" target="_blank"&gt;使用 CUDA 实现排序算法！&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在之前一篇关于排序算法的文章基础上，我使用 CUDA 实现了相同的算法，以探索通过并行计算实现的性能提升。目标是看看我们如何利用并行计算来加速排序算法。前几天我参加了一个 NVIDIA 的招聘活动，那是一次很棒的活动，也激励我尝试用 CUDA 重写排序算法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/postgresql-1-trillion-rows-in-citus" target="_blank"&gt;PostgreSQL：在 Citus 中实现 1 万亿行&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;“PostgreSQL 可扩展”——我们早已听过这句话。然而，问题是：这到底意味着什么？是指 100 万行？还是甚至 10 亿行？因此，在一个雨天的周末，我决定做个小实验，看看是否可以将 1 万亿行（= 1000 亿行）塞进我的个人电脑中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://sbaziotis.com/compilers/getting-started-with-compilers.html" target="_blank"&gt;开始学习编译器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;作为工程师，我们所有人都好奇编译器是如何被制造出来的。坏消息是，没有单一资源能涵盖所有内容。好消息是，所有资源都广泛可用，供我们入门。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://binarysecurity.no/posts/2025/03/api-connection" target="_blank"&gt;Azure 的最薄弱环节？API 连接如何泄露秘密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Binary Security 发现了 Azure API 连接的未文档化 API。在本文中，我们将探讨 Connections 的内部运作，使我们能够提升权限并读取后端资源（如 Key Vaults、Storage Blobs、Defender ATP、Enterprise Jira 和 SalesForce 服务器）中的秘密。&lt;/p&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/crmne/ruby_llm" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;ruby_llm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一种愉快的 Ruby 方式来与 AI 交互。无需配置混乱，无需复杂的回调，无需处理地狱——只需优雅、富有表现力的 Ruby 代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/addyosmani/filter" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;filter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于网络的强大图像编辑器，使用 React 和 TypeScript 构建。它提供了一个现代、直观的界面，用于快速图像编辑和滤镜，优化了桌面和移动设备的使用体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cmdk.paco.me/" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;⌘K: 用于 React 的快速、可组合、无样式命令菜单&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你曾经需要一个类似 Spotlight 搜索的快捷方式来查找你的应用程序，那么你需要这个。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jaypipes/ghw" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;ghw&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言的硬件发现/检查库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nishantjoshi00/shelgon" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;shelgon&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于构建交互式 REPL（读取-求值-打印循环）应用程序和自定义 shell 的强大 Rust 框架。它提供了一个灵活、类型安全的基础，并内置了使用 ratatui 的终端 UI 功能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/octotools/octotools" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;octotools&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个具有可扩展工具的代理框架，用于复杂推理&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/markqvist/Reticulum" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;Reticulum&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于加密的网络堆栈，用于构建不可阻挡的网络，涵盖 LoRa、Packet Radio、WiFi 以及中间的一切。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent/tree/main" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;PRevent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;防止拉取请求中合并恶意代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/wild-card-ai/agents-json" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;agents-json&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;agents.json 规范是一个开放规范，正式描述了 API 和代理交互的合同，基于 OpenAPI 标准构建&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rajathjn/shorts_maker" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;shorts_maker&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 包，旨在帮助创建吸引人的短视频或社交媒体片段。它利用各种外部服务和库，简化了生成、处理和上传短视频的过程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jatin-yadav05.github.io/MotifyX/" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;MotifyX&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提升你的设计，使用我们精心挑选的现代背景图案。只需几下点击即可预览、定制和实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pipecat-ai/smart-turn" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;smart-turn&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源、社区驱动的原生音频转检测模型。 &lt;a href="https://huggingface.co/pipecat-ai/smart-turn"&gt;Hugging Face&lt;/a&gt; 模型已可用&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dicedb/dice" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;dicedb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源、快速、反应式、内存数据库，专为现代硬件优化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgdogdev/pgdog" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;pgdog&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 的水平扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nubskr/nubmq" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;nubmq&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用纯 Golang 编写的快速键值存储，无任何依赖，并且原生支持发布-订阅功能，专为高频率、高竞争的工作负载设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/allenai/olmocr" target="_blank" style="font-size: 1rem; text-decoration: underline;"&gt;olmocr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于线性化 PDF 以供 LLM 数据集/训练的工具包&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-03-18T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/275</id>
    <title>Issues #275 Mar 10, 2025 || 

问题 #275 2025年3月10日</title>
    <updated>2025-03-10T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;In the wave of &lt;a href="https://x.com/safe/status/1897663514975649938"&gt;ByBit exchange being hack for 1.6billion&lt;/a&gt;, and the hack is very sophisciated, exploit developer access key to change an s3 bucket. The attack start by having the developer run some untrusted docker compose with &lt;code&gt;privileged: true&lt;/code&gt; I&amp;rsquo;ll include a few more tools in security, vulnerable scan, and supply chain attack.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Developer AI for real software engineering work&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks&amp;hellip;a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it&amp;rsquo;s fast, high quality, and secure. Even better - you don&amp;rsquo;t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Start building for free today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nroottag.github.io/?utm_source=pocket_saves"&gt;Tracking You from a Thousand Miles Away! Turning a Bluetooth Device into an Apple AirTag Without Root Privileges&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagine someone could turn your laptop, smartphone, or even your gaming console into a tracking device without your knowledge. Our research team discovered a way this can happen through Apple&amp;rsquo;s Find My network The Find My network uses over a billion Apple devices worldwide. We found a security problem that lets hackers use this system to track almost any device with Bluetooth capabilities - not just Apple products. We call this attack &amp;ldquo;nRootTag.&amp;rdquo;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.fogsecurity.io/blog/the-complete-guide-to-ransomware-protection-in-s3-and-kms"&gt;The Complete Guide to Cloud-Native Ransomware Protection in Amazon S3 and KMS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this post, we&amp;rsquo;ll cover how to prevent ransomware and provide resources &amp;amp; code for 11 different ransomware prevention use cases to ensure preventative controls are in place to prevent against types of ransomware attacks targeting AWS S3.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tusharf5.com/posts/ssl-certificates-for-the-rest-of-us"&gt;TLS/SSL Certificates - For The Rest Of Us&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The internet is insecure by default. Attackers can intercept and modify traffic, so we need a way to secure communication and verify the server’s identity. Encryption ensures data privacy, but without verification, hackers could impersonate a legitimate website, intercepting traffic while still using encryption. This is why TLS/SSL combines encryption with authentication.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/kafka-transactions-explained-twice"&gt;Kafka Transactions Explained (Twice!)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When consuming Kafka in a consumer group, the offset each consumer has bit read the message and ack it is recorded by Kafka. When they crashed or restart, they can resume from the commited ack position. But what happen if a record has been processed by consumer but failed to send the ack, the app will consume the record again on restarting. How can we somehow do 2 thing: commit the offset and the result of operation somehow in a single atomic operation. Enter Kafka transactions allow.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tympanus.net/codrops/2025/03/03/css-meets-voxel-art-building-a-rendering-engine-with-stacked-grids/"&gt;CSS Meets Voxel Art: Building a Rendering Engine with Stacked Grids&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We usually don&amp;rsquo;t include this tutorial style link but this one is really interesting to see. We will learn how transforms, perspective, and stacked grids can create a fully addressable 3D space and push the boundaries of what’s possible with pure CSS&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://javascriptgametutorials.com/tutorials/react-three-fiber/crossy-road"&gt;Crossy Road with React Three Fiber&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this tutorial, we learn how to create a simplified clone of the mobile game Crossy Road with React Three Fiber. The goal of the game is to move a character through an endless path of static and moving obstacles. We have to go around the trees and avoid getting hit by a car or a truck. We start with the basic setup: setting up the scene, camera, and lighting. We learn how to draw the player and the map’s trees, cars, and trucks. We cover how to animate the vehicles and add event handlers to move the player through the map. Finally, we add logic to detect collisions between the player and the cars.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.richard-towers.com/2025/02/16/representing-graphs-in-postgres.html"&gt;Representing graphs in Postgresql&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A very command problem when we need to re-present a relationship in databsae such as family, friend. Can come in very handy to write a single SQL query to find relationship instead of building them from the app level&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor"&gt;XOR explanation&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;XOR is every where. We use them in Linux permission: umask, chmod. We use them in Cryptography. We will learn about their hardware implementation, about their usage and all kind of trick to use them efficiently.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.gilesthomas.com/2025/03/llm-from-scratch-8-trainable-self-attention"&gt;Writing an LLM from scratch, part 8 -- trainable self-attention&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Write up when following &amp;ldquo;Build a large language model from scratch&amp;rdquo; book.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://den.dev/blog/how-i-automated-podcast-transcription-with-local-ai"&gt;How I Automated My Podcast Transcript Production With Local AI&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Den has been running podcast for half a decade. He use WhistpeX, run it locally and build a workflow to transcibe his podcast to text. He shared with us the setup. I think local ai is really useful and worth to explorer the self hosted path. It is much easiser to self hosted than we think even&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/"&gt;Tips to debug hanging Go program&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Go specific but come in very handy when working with Go app.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://fabiensanglard.net/fastdoom/index.html"&gt;Why fastDOOM is fast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;FastDOOM was a port of DOOM but it is 30% faster. On some complicated map, it&amp;rsquo;s even 48% faster. We will dive into the secret sauce of the technique that is used to optimized it. very low level thing like use the right assembly instruction to make code run in fewer instructions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://genna.win/blog/convolution-simd/"&gt;Performance optimization, and how to do it wrong&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I recently tried to optimize convolutions using SIMD instructions, but what I thought would be a simple task ended up taking me days, with issue after issue popping up one after another. Some of them make sense in hindsight, but others were utterly baffling. While the specific examples are for direct convolution, these considerations apply to pretty much any code with a hot loop.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/oramasearch/orama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;orama&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A complete search engine and RAG pipeline in your browser, server or edge network with support for full-text, vector, and hybrid search in less than 2kb.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pdfslick/pdfslick" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pdfslick&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a library which enables viewing of and interaction with PDF documents in React and SolidJS apps. It&amp;rsquo;s build on top of Mozilla&amp;rsquo;s PDF.js, and utilises Zustand to provide a reactive store for the loaded documents.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zigzap/zap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zap: blazingly fast backends in zig&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;I recently pickup Zig and I think this is going to replace Rust and C for me when I needed them. It has all the power of Rust while less restricted, and have power of C while being more friendly than C.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EFForg/rayhunter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rayhunter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tool to detect cell site simulators on an Orbic mobile hotspot&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/floere/phony" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;phony&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;E164 international phone number normalizing, splitting, formatting.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/x-motemen/gore" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gore&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Yet another Go REPL that works nicely. Featured with line editing, code completion, and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prevent merging of malicious code in pull requests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/PeerDB-io/peerdb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Peerdb: PostGres Replication Tool&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever need to keep postgres in-sync with another datawarehouse, or even another postgres, this is the way to go.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Blaizzy/mlx-audio" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mlx-audio&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A text-to-speech (TTS) and Speech-to-Speech (STS) library built on Apple&amp;rsquo;s MLX framework, providing efficient speech synthesis on Apple Silicon&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sqldef/sqldef/tree/master" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sqldef&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Idempotent schema management for MySQL, PostgreSQL, and more&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/faizann24/rogue/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rogue&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An intelligent web vulnerability scanner agent powered by Large Language Models&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/edoardottt/pphack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pphack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The Most Advanced Client-Side Prototype Pollution Scanner&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/FerretDB/FerretDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;FerretDB&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A truly Open Source MongoDB alternative&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kunai-project/kunai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kunai&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;powerful tool designed to bring actionable insights for tasks such as security monitoring and threat hunting on Linux systems. Think of it as the Linux counterpart to Sysmon on Windows, tailored for comprehensive and precise event monitoring.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.pgmustard.com/blog/postgres-query-plan-visualization-tools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Postgres query plan visualization tools&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;在ByBit交易所被黑客攻击了16亿美元的浪潮中，这次攻击非常复杂，利用开发者访问密钥更改S3存储桶。攻击始于开发者运行一些不受信任的docker compose，并使用&lt;code class="notranslate" translate="no"&gt;privileged: true&lt;/code&gt;。我将加入更多关于安全、漏洞扫描和供应链攻击的工具。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;为真实软件工程工作而设计的开发者AI&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;很多编码AI在绿色领域应用中有酷炫的X演示。但专业软件工程师在团队中日常的工作看起来……与随意编码略有不同。进入Augment Code。这是首个为团队和大型代码库设计的开发者AI，Augment可以在数百万行代码和数千个文件的代码库中运行，为每个按键提供完整的代码库上下文。Datastax、Observe、Kong和Lemonade等客户信任Augment，因为它快速、高质量且安全。更棒的是——你不需要更换IDE，Augment可以在VS Code、JetBrains甚至Vim中使用。Augment可免费试用，且绝不会在未经许可的情况下训练代码。&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;立即免费开始构建&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nroottag.github.io/?utm_source=pocket_saves"&gt;千里追踪！无需Root权限将蓝牙设备变成Apple AirTag&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;想象一下，有人可以在你不知情的情况下将你的笔记本电脑、智能手机，甚至是游戏主机变成追踪设备。我们的研究团队发现了一种通过Apple的Find My网络实现这一目标的方法。Find My网络使用了全球超过十亿台Apple设备。我们发现了一个安全漏洞，让黑客能够利用该系统追踪几乎所有具有蓝牙功能的设备——不仅仅是Apple产品。我们将这种攻击称为“nRootTag”。 &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.fogsecurity.io/blog/the-complete-guide-to-ransomware-protection-in-s3-and-kms"&gt;在Amazon S3和KMS中实现云原生勒索软件防护的完整指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本文中，我们将介绍如何防止勒索软件，并提供11种不同勒索软件防护用例的资源和代码，以确保在针对AWS S3的勒索软件攻击中具备预防控制措施。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tusharf5.com/posts/ssl-certificates-for-the-rest-of-us"&gt;TLS/SSL证书——为普通用户而设计&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;互联网默认是不安全的。攻击者可以拦截并修改流量，因此我们需要一种方法来加密通信并验证服务器身份。加密确保了数据隐私，但如果没有验证，黑客可以伪装成合法网站，即使使用加密也能拦截流量。这就是为什么TLS/SSL结合了加密和认证。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/kafka-transactions-explained-twice"&gt;Kafka事务解释（两次！）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当在消费者组中消费Kafka时，每个消费者读取消息并确认（ack）的位置由Kafka记录。当它们崩溃或重启时，可以从中断的确认位置恢复。但如果一条记录已被消费者处理但未能发送确认，重启后应用会重新消费该记录。我们如何才能在一次原子操作中完成两个任务：提交偏移量和操作结果？进入Kafka事务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tympanus.net/codrops/2025/03/03/css-meets-voxel-art-building-a-rendering-engine-with-stacked-grids/"&gt;CSS与Voxel艺术：使用堆叠网格构建渲染引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们通常不会包含这种教程风格的链接，但这个链接非常有趣。我们将学习如何通过变换、透视和堆叠网格创建一个完全可寻址的3D空间，并推动纯CSS的边界。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://javascriptgametutorials.com/tutorials/react-three-fiber/crossy-road"&gt;使用React Three Fiber制作Crossy Road&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本教程中，我们将学习如何使用React Three Fiber制作移动游戏Crossy Road的简化克隆。游戏的目标是让角色通过静态和移动障碍物的无限路径。我们需要绕过树木并避免被汽车或卡车撞到。我们将从基本设置开始：设置场景、相机和照明。我们将学习如何绘制玩家和地图中的树木、汽车和卡车。我们将介绍如何动画化车辆并添加事件处理程序以移动玩家。最后，我们将添加逻辑以检测玩家与汽车之间的碰撞。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.richard-towers.com/2025/02/16/representing-graphs-in-postgres.html"&gt;在PostgreSQL中表示图&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当我们需要在数据库中表示关系（如家庭、朋友）时，这是一个非常常见的问题。它可以非常方便地用一个SQL查询来查找关系，而不是在应用层构建。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor"&gt;XOR解释&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;XOR无处不在。我们用它在Linux权限中：umask、chmod。我们用它在密码学中。我们将学习其硬件实现、使用方法以及各种高效使用技巧。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.gilesthomas.com/2025/03/llm-from-scratch-8-trainable-self-attention"&gt;从零编写LLM，第8部分——可训练的自注意力&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是按照“从零构建大型语言模型”书籍进行的总结。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://den.dev/blog/how-i-automated-podcast-transcription-with-local-ai"&gt;如何用本地AI自动化我的播客转录&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Den已经运营播客五年了。他使用WhistpeX，本地运行并构建了一个转录播客为文本的工作流程。他与我们分享了这个设置。我认为本地AI非常有用，值得探索自托管路径。它比我们想象的更容易自托管。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/"&gt;调试挂起的Go程序技巧&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Go特定但对工作中的Go应用非常有用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fabiensanglard.net/fastdoom/index.html"&gt;为什么fastDOOM如此快速&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;FastDOOM是对DOOM的移植，但速度提高了30%。在某些复杂地图中，甚至提高了48%。我们将深入探讨用于优化该技术的秘诀。涉及非常底层的内容，比如使用正确的汇编指令以减少指令数量。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://genna.win/blog/convolution-simd/"&gt;性能优化，以及如何错误地进行&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我最近尝试使用SIMD指令优化卷积，但本应是一个简单的任务却花了我数天时间，问题接踵而至。其中一些问题事后看来是有道理的，但其他问题却令人困惑。虽然这些具体示例是针对直接卷积的，但这些考虑适用于任何具有热循环的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/oramasearch/orama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;orama&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个完整的搜索引擎和RAG管道，可在浏览器、服务器或边缘网络中运行，支持全文、向量和混合搜索，仅需不到2KB。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pdfslick/pdfslick" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pdfslick&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个允许在React和SolidJS应用中查看和交互PDF文档的库。它基于Mozilla的PDF.js，并利用Zustand为加载的文档提供反应式存储。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zigzap/zap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zap: 用Zig构建的超快后端&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;我最近开始学习Zig，我认为这将取代我需要的Rust和C。它拥有Rust的所有功能，但限制更少，同时拥有C的强大功能，但比C更友好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EFForg/rayhunter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rayhunter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于检测Orbic移动热点上的蜂窝模拟器的工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/floere/phony" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;phony&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;E164国际电话号码的标准化、拆分和格式化&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/x-motemen/gore" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gore&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;另一个功能良好的Go REPL。支持行编辑、代码补全等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;防止拉取请求中合并恶意代码&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/PeerDB-io/peerdb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Peerdb: PostgreSQL复制工具&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你需要将PostgreSQL与另一个数据仓库甚至另一个PostgreSQL保持同步，这是最佳选择。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Blaizzy/mlx-audio" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mlx-audio&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Apple的MLX框架构建的文本到语音（TTS）和语音到语音（STS）库，提供高效的Apple硅芯片语音合成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sqldef/sqldef/tree/master" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sqldef&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于MySQL、PostgreSQL等的幂等模式管理工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/faizann24/rogue/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rogue&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个由大型语言模型驱动的智能Web漏洞扫描代理&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/edoardottt/pphack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pphack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;最先进的客户端侧原型污染扫描工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/FerretDB/FerretDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;FerretDB&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个真正开源的MongoDB替代品&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kunai-project/kunai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kunai&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个强大的工具，旨在为Linux系统上的任务（如安全监控和威胁狩猎）提供可操作的见解。可以将其视为Linux系统上的Sysmon（Windows）的对应工具，专为全面且精确的事件监控而设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pgmustard.com/blog/postgres-query-plan-visualization-tools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Postgres查询计划可视化工具&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/275"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;In the wave of &lt;a href="https://x.com/safe/status/1897663514975649938"&gt;ByBit exchange being hack for 1.6billion&lt;/a&gt;, and the hack is very sophisciated, exploit developer access key to change an s3 bucket. The attack start by having the developer run some untrusted docker compose with &lt;code&gt;privileged: true&lt;/code&gt; I&amp;rsquo;ll include a few more tools in security, vulnerable scan, and supply chain attack.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Developer AI for real software engineering work&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lots of coding AIs have cool X demos on greenfield apps. But the day-to-day of a pro software engineer working on a team looks&amp;hellip;a little different from vibe coding. Enter Augment Code. The first developer AI built for teams and large codebases, Augment works on codebases of millions of lines of code and thousands of files, bringing full codebase context to every keystroke. Customers like Datastax, Observe, Kong, and Lemonade trust Augment because it&amp;rsquo;s fast, high quality, and secure. Even better - you don&amp;rsquo;t have to switch your IDE - Augment works in VS Code, JetBrains, and even Vim. Augment is free to try and never trains on code without consent. &lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;Start building for free today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nroottag.github.io/?utm_source=pocket_saves"&gt;Tracking You from a Thousand Miles Away! Turning a Bluetooth Device into an Apple AirTag Without Root Privileges&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagine someone could turn your laptop, smartphone, or even your gaming console into a tracking device without your knowledge. Our research team discovered a way this can happen through Apple&amp;rsquo;s Find My network The Find My network uses over a billion Apple devices worldwide. We found a security problem that lets hackers use this system to track almost any device with Bluetooth capabilities - not just Apple products. We call this attack &amp;ldquo;nRootTag.&amp;rdquo;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.fogsecurity.io/blog/the-complete-guide-to-ransomware-protection-in-s3-and-kms"&gt;The Complete Guide to Cloud-Native Ransomware Protection in Amazon S3 and KMS&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this post, we&amp;rsquo;ll cover how to prevent ransomware and provide resources &amp;amp; code for 11 different ransomware prevention use cases to ensure preventative controls are in place to prevent against types of ransomware attacks targeting AWS S3.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tusharf5.com/posts/ssl-certificates-for-the-rest-of-us"&gt;TLS/SSL Certificates - For The Rest Of Us&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The internet is insecure by default. Attackers can intercept and modify traffic, so we need a way to secure communication and verify the server’s identity. Encryption ensures data privacy, but without verification, hackers could impersonate a legitimate website, intercepting traffic while still using encryption. This is why TLS/SSL combines encryption with authentication.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/kafka-transactions-explained-twice"&gt;Kafka Transactions Explained (Twice!)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When consuming Kafka in a consumer group, the offset each consumer has bit read the message and ack it is recorded by Kafka. When they crashed or restart, they can resume from the commited ack position. But what happen if a record has been processed by consumer but failed to send the ack, the app will consume the record again on restarting. How can we somehow do 2 thing: commit the offset and the result of operation somehow in a single atomic operation. Enter Kafka transactions allow.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tympanus.net/codrops/2025/03/03/css-meets-voxel-art-building-a-rendering-engine-with-stacked-grids/"&gt;CSS Meets Voxel Art: Building a Rendering Engine with Stacked Grids&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We usually don&amp;rsquo;t include this tutorial style link but this one is really interesting to see. We will learn how transforms, perspective, and stacked grids can create a fully addressable 3D space and push the boundaries of what’s possible with pure CSS&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://javascriptgametutorials.com/tutorials/react-three-fiber/crossy-road"&gt;Crossy Road with React Three Fiber&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this tutorial, we learn how to create a simplified clone of the mobile game Crossy Road with React Three Fiber. The goal of the game is to move a character through an endless path of static and moving obstacles. We have to go around the trees and avoid getting hit by a car or a truck. We start with the basic setup: setting up the scene, camera, and lighting. We learn how to draw the player and the map’s trees, cars, and trucks. We cover how to animate the vehicles and add event handlers to move the player through the map. Finally, we add logic to detect collisions between the player and the cars.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.richard-towers.com/2025/02/16/representing-graphs-in-postgres.html"&gt;Representing graphs in Postgresql&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A very command problem when we need to re-present a relationship in databsae such as family, friend. Can come in very handy to write a single SQL query to find relationship instead of building them from the app level&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor"&gt;XOR explanation&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;XOR is every where. We use them in Linux permission: umask, chmod. We use them in Cryptography. We will learn about their hardware implementation, about their usage and all kind of trick to use them efficiently.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.gilesthomas.com/2025/03/llm-from-scratch-8-trainable-self-attention"&gt;Writing an LLM from scratch, part 8 -- trainable self-attention&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Write up when following &amp;ldquo;Build a large language model from scratch&amp;rdquo; book.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://den.dev/blog/how-i-automated-podcast-transcription-with-local-ai"&gt;How I Automated My Podcast Transcript Production With Local AI&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Den has been running podcast for half a decade. He use WhistpeX, run it locally and build a workflow to transcibe his podcast to text. He shared with us the setup. I think local ai is really useful and worth to explorer the self hosted path. It is much easiser to self hosted than we think even&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/"&gt;Tips to debug hanging Go program&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Go specific but come in very handy when working with Go app.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://fabiensanglard.net/fastdoom/index.html"&gt;Why fastDOOM is fast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;FastDOOM was a port of DOOM but it is 30% faster. On some complicated map, it&amp;rsquo;s even 48% faster. We will dive into the secret sauce of the technique that is used to optimized it. very low level thing like use the right assembly instruction to make code run in fewer instructions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://genna.win/blog/convolution-simd/"&gt;Performance optimization, and how to do it wrong&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;I recently tried to optimize convolutions using SIMD instructions, but what I thought would be a simple task ended up taking me days, with issue after issue popping up one after another. Some of them make sense in hindsight, but others were utterly baffling. While the specific examples are for direct convolution, these considerations apply to pretty much any code with a hot loop.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/oramasearch/orama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;orama&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A complete search engine and RAG pipeline in your browser, server or edge network with support for full-text, vector, and hybrid search in less than 2kb.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pdfslick/pdfslick" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pdfslick&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a library which enables viewing of and interaction with PDF documents in React and SolidJS apps. It&amp;rsquo;s build on top of Mozilla&amp;rsquo;s PDF.js, and utilises Zustand to provide a reactive store for the loaded documents.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zigzap/zap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zap: blazingly fast backends in zig&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;I recently pickup Zig and I think this is going to replace Rust and C for me when I needed them. It has all the power of Rust while less restricted, and have power of C while being more friendly than C.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EFForg/rayhunter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rayhunter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tool to detect cell site simulators on an Orbic mobile hotspot&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/floere/phony" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;phony&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;E164 international phone number normalizing, splitting, formatting.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/x-motemen/gore" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gore&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Yet another Go REPL that works nicely. Featured with line editing, code completion, and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Prevent merging of malicious code in pull requests&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/PeerDB-io/peerdb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Peerdb: PostGres Replication Tool&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever need to keep postgres in-sync with another datawarehouse, or even another postgres, this is the way to go.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Blaizzy/mlx-audio" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mlx-audio&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A text-to-speech (TTS) and Speech-to-Speech (STS) library built on Apple&amp;rsquo;s MLX framework, providing efficient speech synthesis on Apple Silicon&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sqldef/sqldef/tree/master" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sqldef&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Idempotent schema management for MySQL, PostgreSQL, and more&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/faizann24/rogue/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rogue&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An intelligent web vulnerability scanner agent powered by Large Language Models&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/edoardottt/pphack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pphack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The Most Advanced Client-Side Prototype Pollution Scanner&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/FerretDB/FerretDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;FerretDB&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A truly Open Source MongoDB alternative&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kunai-project/kunai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kunai&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;powerful tool designed to bring actionable insights for tasks such as security monitoring and threat hunting on Linux systems. Think of it as the Linux counterpart to Sysmon on Windows, tailored for comprehensive and precise event monitoring.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.pgmustard.com/blog/postgres-query-plan-visualization-tools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Postgres query plan visualization tools&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;在ByBit交易所被黑客攻击了16亿美元的浪潮中，这次攻击非常复杂，利用开发者访问密钥更改S3存储桶。攻击始于开发者运行一些不受信任的docker compose，并使用&lt;code class="notranslate" translate="no"&gt;privileged: true&lt;/code&gt;。我将加入更多关于安全、漏洞扫描和供应链攻击的工具。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;为真实软件工程工作而设计的开发者AI&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;很多编码AI在绿色领域应用中有酷炫的X演示。但专业软件工程师在团队中日常的工作看起来……与随意编码略有不同。进入Augment Code。这是首个为团队和大型代码库设计的开发者AI，Augment可以在数百万行代码和数千个文件的代码库中运行，为每个按键提供完整的代码库上下文。Datastax、Observe、Kong和Lemonade等客户信任Augment，因为它快速、高质量且安全。更棒的是——你不需要更换IDE，Augment可以在VS Code、JetBrains甚至Vim中使用。Augment可免费试用，且绝不会在未经许可的情况下训练代码。&lt;a href="https://www.augmentcode.com/?utm_source=BetterDev&amp;amp;utm_medium=newsletter"&gt;立即免费开始构建&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nroottag.github.io/?utm_source=pocket_saves"&gt;千里追踪！无需Root权限将蓝牙设备变成Apple AirTag&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;想象一下，有人可以在你不知情的情况下将你的笔记本电脑、智能手机，甚至是游戏主机变成追踪设备。我们的研究团队发现了一种通过Apple的Find My网络实现这一目标的方法。Find My网络使用了全球超过十亿台Apple设备。我们发现了一个安全漏洞，让黑客能够利用该系统追踪几乎所有具有蓝牙功能的设备——不仅仅是Apple产品。我们将这种攻击称为“nRootTag”。 &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.fogsecurity.io/blog/the-complete-guide-to-ransomware-protection-in-s3-and-kms"&gt;在Amazon S3和KMS中实现云原生勒索软件防护的完整指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本文中，我们将介绍如何防止勒索软件，并提供11种不同勒索软件防护用例的资源和代码，以确保在针对AWS S3的勒索软件攻击中具备预防控制措施。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tusharf5.com/posts/ssl-certificates-for-the-rest-of-us"&gt;TLS/SSL证书——为普通用户而设计&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;互联网默认是不安全的。攻击者可以拦截并修改流量，因此我们需要一种方法来加密通信并验证服务器身份。加密确保了数据隐私，但如果没有验证，黑客可以伪装成合法网站，即使使用加密也能拦截流量。这就是为什么TLS/SSL结合了加密和认证。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/kafka-transactions-explained-twice"&gt;Kafka事务解释（两次！）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当在消费者组中消费Kafka时，每个消费者读取消息并确认（ack）的位置由Kafka记录。当它们崩溃或重启时，可以从中断的确认位置恢复。但如果一条记录已被消费者处理但未能发送确认，重启后应用会重新消费该记录。我们如何才能在一次原子操作中完成两个任务：提交偏移量和操作结果？进入Kafka事务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tympanus.net/codrops/2025/03/03/css-meets-voxel-art-building-a-rendering-engine-with-stacked-grids/"&gt;CSS与Voxel艺术：使用堆叠网格构建渲染引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们通常不会包含这种教程风格的链接，但这个链接非常有趣。我们将学习如何通过变换、透视和堆叠网格创建一个完全可寻址的3D空间，并推动纯CSS的边界。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://javascriptgametutorials.com/tutorials/react-three-fiber/crossy-road"&gt;使用React Three Fiber制作Crossy Road&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本教程中，我们将学习如何使用React Three Fiber制作移动游戏Crossy Road的简化克隆。游戏的目标是让角色通过静态和移动障碍物的无限路径。我们需要绕过树木并避免被汽车或卡车撞到。我们将从基本设置开始：设置场景、相机和照明。我们将学习如何绘制玩家和地图中的树木、汽车和卡车。我们将介绍如何动画化车辆并添加事件处理程序以移动玩家。最后，我们将添加逻辑以检测玩家与汽车之间的碰撞。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.richard-towers.com/2025/02/16/representing-graphs-in-postgres.html"&gt;在PostgreSQL中表示图&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当我们需要在数据库中表示关系（如家庭、朋友）时，这是一个非常常见的问题。它可以非常方便地用一个SQL查询来查找关系，而不是在应用层构建。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/xor"&gt;XOR解释&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;XOR无处不在。我们用它在Linux权限中：umask、chmod。我们用它在密码学中。我们将学习其硬件实现、使用方法以及各种高效使用技巧。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.gilesthomas.com/2025/03/llm-from-scratch-8-trainable-self-attention"&gt;从零编写LLM，第8部分——可训练的自注意力&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是按照“从零构建大型语言模型”书籍进行的总结。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://den.dev/blog/how-i-automated-podcast-transcription-with-local-ai"&gt;如何用本地AI自动化我的播客转录&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Den已经运营播客五年了。他使用WhistpeX，本地运行并构建了一个转录播客为文本的工作流程。他与我们分享了这个设置。我认为本地AI非常有用，值得探索自托管路径。它比我们想象的更容易自托管。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://michael.stapelberg.ch/posts/2025-02-27-debug-hanging-go-programs/"&gt;调试挂起的Go程序技巧&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Go特定但对工作中的Go应用非常有用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fabiensanglard.net/fastdoom/index.html"&gt;为什么fastDOOM如此快速&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;FastDOOM是对DOOM的移植，但速度提高了30%。在某些复杂地图中，甚至提高了48%。我们将深入探讨用于优化该技术的秘诀。涉及非常底层的内容，比如使用正确的汇编指令以减少指令数量。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://genna.win/blog/convolution-simd/"&gt;性能优化，以及如何错误地进行&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我最近尝试使用SIMD指令优化卷积，但本应是一个简单的任务却花了我数天时间，问题接踵而至。其中一些问题事后看来是有道理的，但其他问题却令人困惑。虽然这些具体示例是针对直接卷积的，但这些考虑适用于任何具有热循环的代码。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/oramasearch/orama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;orama&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个完整的搜索引擎和RAG管道，可在浏览器、服务器或边缘网络中运行，支持全文、向量和混合搜索，仅需不到2KB。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pdfslick/pdfslick" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pdfslick&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个允许在React和SolidJS应用中查看和交互PDF文档的库。它基于Mozilla的PDF.js，并利用Zustand为加载的文档提供反应式存储。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zigzap/zap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;zap: 用Zig构建的超快后端&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;我最近开始学习Zig，我认为这将取代我需要的Rust和C。它拥有Rust的所有功能，但限制更少，同时拥有C的强大功能，但比C更友好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EFForg/rayhunter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rayhunter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于检测Orbic移动热点上的蜂窝模拟器的工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/floere/phony" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;phony&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;E164国际电话号码的标准化、拆分和格式化&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/x-motemen/gore" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gore&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;另一个功能良好的Go REPL。支持行编辑、代码补全等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apiiro/PRevent" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PRevent&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;防止拉取请求中合并恶意代码&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/PeerDB-io/peerdb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Peerdb: PostgreSQL复制工具&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你需要将PostgreSQL与另一个数据仓库甚至另一个PostgreSQL保持同步，这是最佳选择。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Blaizzy/mlx-audio" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mlx-audio&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Apple的MLX框架构建的文本到语音（TTS）和语音到语音（STS）库，提供高效的Apple硅芯片语音合成&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sqldef/sqldef/tree/master" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sqldef&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于MySQL、PostgreSQL等的幂等模式管理工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/faizann24/rogue/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rogue&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个由大型语言模型驱动的智能Web漏洞扫描代理&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/edoardottt/pphack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pphack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;最先进的客户端侧原型污染扫描工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/FerretDB/FerretDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;FerretDB&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个真正开源的MongoDB替代品&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kunai-project/kunai" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kunai&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个强大的工具，旨在为Linux系统上的任务（如安全监控和威胁狩猎）提供可操作的见解。可以将其视为Linux系统上的Sysmon（Windows）的对应工具，专为全面且精确的事件监控而设计。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pgmustard.com/blog/postgres-query-plan-visualization-tools" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Postgres查询计划可视化工具&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-03-10T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/274</id>
    <title>Issues #274 Mar 04, 2025 || 

问题 #274 2025年3月04日</title>
    <updated>2025-03-04T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to second issue of BetterDev. I&amp;rsquo;m lagging behind a few issues but catching up. There are many things happens with LLM/AI recently. I encourage to give these tools a try, on your own hardware.&lt;/p&gt;

&lt;p&gt;As a reader of this newsletter, you probably has the itch to build some app all the time. My friend at &lt;a href="https://lapa.ninja"&gt;lapa.ninja&lt;/a&gt; has been curating almost 7000 landing pages, all hand pick. So you can get the inspiration next time when you want to build a landing page or a dashboard for your app.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.gitbutler.com/how-git-core-devs-configure-git/"&gt;How Core Git Developers Configure Git&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this post, I’ll go through some of the perhaps obscure Git config settings that I have personally globally enabled and go into them to explain what they do and why they should probably be the default settings.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://vjerci.com/writings/chromecast/basics/"&gt;Hacking chromecast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Do you want to be able to discover chromecast device on your network and broadcast arbitrary media to it? Sure, there is many tools to do it. But what is the protocol behind it. This is a 4 part series dive into that. We will  learn the basic, the protocol, the casting server and gotcha.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/GianlucaP106/minecraft"&gt;Minecraft from scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A Minecraft clone from scratch with only modern OpenGL. No game engines or frameworks. Using Go so it&amp;rsquo;s very h igh level and easy to follow.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/Hawzen/hdp"&gt;What would happen if we didn't use TCP or UDP?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Switches, bridges, routers, load balancers, firewalls—these network boxes keep the internet running. Routing, blocking, mirroring, duplicating and deduplicating traffic in ways most people never think about. Without them, this document wouldn’t have reached you&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.sylver.dev/build-your-own-sqlite-part-5-evaluating-queries"&gt;Build your own SQLite, Part 5: Evaluating queries&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We had been featuring this series in previos issue. In this part we will learn how to evaluate a SQL query. If you are interesting of understanding deep into your stack, these article provide great approach into learning and rebuilding them.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://travisdowns.github.io/blog/2019/06/11/speed-limits.html"&gt;Performance Speed Limits&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Sometimes you just want to know how fast your code can go, without benchmarking it. Sometimes you have benchmarked it and want to know how close you are to the maximum speed. Often you just need to know what the current limiting factor is, to guide your optimization decisions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.shayon.dev/post/2025/40/scaling-with-postgresql-without-boiling-the-ocean/"&gt;Scaling with PostgreSQL without boiling the ocean&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Scaling PostgreSQL successfully doesn’t always require a full team of DBAs and experts. The beauty of PostgreSQL is that solutions often lie within the database itself - by rethinking your data access patterns from first principles, you can solve many business problems at scale.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eieio.games/blog/running-pong-in-240-browser-tabs/"&gt;Running Pong in 240 Browser Tabs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;What do you do with your unclosed browser tabs? I find that they take up a lot of screen space. So this week I figured out how to run pong inside mine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@radhian.amri/video-streaming-using-http-206-partial-content-in-go-4e89d96abdd0"&gt;Video streaming using http 206 partial content&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Implementing video streaming might be a pain for some cases, especially when we talk about memory management alongside scalability of the application. One common way is using HTTP Live Streaming Protocol where a single video could be broken down into smaller chunks and sent through multiple HTTP requests. But then we need to transcode video ahead of time. Can we stream MP4 file? has it playable asap instead of downloading whole video? Turn out we can thank to the modern browser support of byte &amp;ldquo;Rang: byte&amp;rdquo; header.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.procustodibus.com/blog/2022/06/multi-hop-wireguard/#internet-gateway-as-a-spoke"&gt;Multi-Hop WireGuard&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WireGuard is a very powerful VPN which support multiple topology and routing. Can come in very handy when you want to perform complex routing, especially in environment where you want to control egress. Give this a read to learn about these setups: Site Gateway as a Spoke, Internet Gateway as a Spoke, Chain of Hubs, Hub is Also a Site Gateway.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gendignoux.com/blog/2025/03/03/rust-interning-2000x.html"&gt;The power of interning: making a time series database 2000x smaller in Rust&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;interning is a technique of storing only one copy of each unique piece of data in memory.Very common use in string so we don&amp;rsquo;t need to store the string multiple time. Imagine big JSON document with repeated field. In this post we look into a time series database and how interning help with different data type.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://josephmate.github.io/2025-02-26-3200p-cpu-util/"&gt;3,200% CPU Utilization&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A tale into debugging a Java program to see why it use all 32 cores.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://gist.github.com/tarruda/5b8c19779c8ff4e8100f0b37eb5981ea" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micro_events.py&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Micro event loop library to teach the basic concepts of python coroutines and how event loop libraries might be implemented&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/commaai/opendbc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;opendbc&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Python API for your car. Control the gas, brake, steering, and more. Read the speed, steering angle, and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/adamcooke/authie" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;authie&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Improve user session security in Ruby on Rails applications with database session storage&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jonathanyeong/bsky-parser" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bsky-parser&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Bluesky text parser that outputs parsed text with rich text facets&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rajibola/human-regex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;human-regex&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Human-friendly regular expression builder with English-like syntax.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/le0pard/re2js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;re2js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;the JavaScript port of RE2, a regular expression engine that provides linear time matching&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/HugoSmits86/nativewebp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nativewebp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This is a native WebP encoder written entirely in Go, with no dependencies on libwebp or other external libraries. Designed for performance and efficiency, this encoder generates smaller files than the standard Go PNG encoder and is approximately 50% faster in execution&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/cartography-cncf/cartography" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;cartography&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a Neo4j database.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/vjerci/gochromecast" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gochromecast&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple tool to stream your media to android TV or chromecast device.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://waveform-renderer.vercel.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Waveform Renderer&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight and customizable TypeScript library for rendering audio waveforms on HTML canvas. Create beautiful, interactive audio visualizations with ease.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MatheusRich/rails-diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-diff&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Compare Rails-generated files with the ones in your repository&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/CapSoftware/Cap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Cap.So&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Open source Loom alternative. Beautiful, shareable screen recordings.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/browserbase/stagehand" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stagehand&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An AI web browsing framework focused on simplicity and extensibility.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/BemiHQ/BemiDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;BemiDB&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres read replica optimized for analytics. It consists of a single binary that seamlessly connects to a Postgres database, replicates the data in a compressed columnar format, and allows you to run complex queries using its Postgres-compatible analytical query engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/cybertec-postgresql/pgwatch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwatch&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;PostgreSQL metrics monitor/dashboard&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;各位读者，&lt;/p&gt;
&lt;p&gt;欢迎阅读 BetterDev 的第二期。我稍微落后了几期，但现在正在追上。最近有很多关于 LLM/AI 的进展。我鼓励大家尝试这些工具，用你们自己的硬件。&lt;/p&gt;
&lt;p&gt;作为 BetterDev 的读者，你可能总是渴望构建一些应用程序。我的朋友在 &lt;a href="https://lapa.ninja"&gt;lapa.ninja&lt;/a&gt; 上精心挑选了将近 7000 个落地页，都是手动挑选的。下次当你想要为你的应用程序构建一个落地页或仪表盘时，可以从中获得灵感。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;购买我一杯咖啡&lt;/a&gt; 会非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog.gitbutler.com/how-git-core-devs-configure-git/"&gt;核心 Git 开发者如何配置 Git&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这篇文章中，我会介绍一些可能不太为人所知的 Git 配置设置，这些是我个人全局启用的，并解释它们的作用以及为什么它们应该是默认设置。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vjerci.com/writings/chromecast/basics/"&gt;破解 Chromecast&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否想要在你的网络上发现 Chromecast 设备，并向其广播任意媒体？当然，有很多工具可以做到这一点。但你知道其背后的协议吗？这是一个四部分系列，深入探讨该协议。我们将学习基础知识、协议、投屏服务器以及一些注意事项。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/GianlucaP106/minecraft"&gt;从零开始制作 Minecraft&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用现代 OpenGL 从头开始制作一个 Minecraft 克隆程序。不使用任何游戏引擎或框架。使用 Go 语言，因此代码非常高级且易于理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Hawzen/hdp"&gt;如果不使用 TCP 或 UDP 会怎样？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;交换机、网桥、路由器、负载均衡器、防火墙——这些网络设备维持着互联网的运行。它们以大多数人从未考虑过的方式路由、阻止、镜像、复制和去重流量。没有它们，这篇文档也不会到达你这里。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.sylver.dev/build-your-own-sqlite-part-5-evaluating-queries"&gt;从零构建 SQLite，第 5 部分：查询评估&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们之前在上一期中介绍了这个系列。在这一部分，我们将学习如何评估 SQL 查询。如果你对深入了解你的技术栈感兴趣，这些文章提供了学习和重构它们的绝佳方法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://travisdowns.github.io/blog/2019/06/11/speed-limits.html"&gt;性能速度限制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有时候你只是想知道你的代码能有多快，而无需进行基准测试。有时候你已经进行了基准测试，想知道你离最大速度有多远。很多时候你只需要知道当前的限制因素是什么，以指导你的优化决策。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.shayon.dev/post/2025/40/scaling-with-postgresql-without-boiling-the-ocean/"&gt;无需大海捞针：使用 PostgreSQL 实现扩展&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;成功地扩展 PostgreSQL 并不总是需要一个完整的 DBA 团队。PostgreSQL 的美妙之处在于，解决方案往往存在于数据库本身——通过重新思考你的数据访问模式，你可以以更高效的方式解决许多业务问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eieio.games/blog/running-pong-in-240-browser-tabs/"&gt;在 240 个浏览器标签页中运行 Pong&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你对未关闭的浏览器标签页有什么想法？我发现它们会占用很多屏幕空间。因此，本周我研究了如何在我的标签页中运行 Pong。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@radhian.amri/video-streaming-using-http-206-partial-content-in-go-4e89d96abdd0"&gt;使用 HTTP 206 部分内容进行视频流传输&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在某些情况下，实现视频流传输可能是个麻烦，尤其是在涉及内存管理和应用程序可扩展性时。一种常见的方法是使用 HTTP Live Streaming 协议，将单个视频拆分成更小的块并通过多个 HTTP 请求发送。但这样就需要提前转码视频。我们能否直接流式传输 MP4 文件？能否让视频立即播放而不是下载整个文件？结果表明，现代浏览器对“Range: byte”头的支持使这一切成为可能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.procustodibus.com/blog/2022/06/multi-hop-wireguard/#internet-gateway-as-a-spoke"&gt;多跳 WireGuard&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WireGuard 是一个非常强大的 VPN，支持多种拓扑和路由。当你想要执行复杂的路由，尤其是在需要控制出站流量的环境中时，它会非常有用。请阅读这些设置：站点网关作为中继、互联网网关作为中继、链式中继、中继也是站点网关。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gendignoux.com/blog/2025/03/03/rust-interning-2000x.html"&gt;Interning 的力量：用 Rust 将时间序列数据库缩小 2000 倍&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Interning 是一种技术，用于在内存中仅存储每个唯一数据片段的一个副本。它在字符串中非常常见，因此我们不需要多次存储字符串。想象一个包含重复字段的巨大 JSON 文档。在本文中，我们将探讨时间序列数据库以及 internning 如何帮助处理不同的数据类型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://josephmate.github.io/2025-02-26-3200p-cpu-util/"&gt;3200% CPU 利用率&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个关于调试 Java 程序以了解其为何使用所有 32 个核心的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/tarruda/5b8c19779c8ff4e8100f0b37eb5981ea" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micro_events.py&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个微事件循环库，用于教授 Python 协程的基本概念以及事件循环库的实现方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/commaai/opendbc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;opendbc&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于你汽车的 Python API。控制油门、刹车、转向等。读取速度、转向角度等信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/adamcooke/authie" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;authie&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用数据库会话存储来提升 Ruby on Rails 应用程序的用户会话安全性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jonathanyeong/bsky-parser" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bsky-parser&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个解析 Bluesky 文本的库，输出带有富文本面的解析文本。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rajibola/human-regex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;human-regex&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个使用类似英语的语法构建的用户友好的正则表达式生成器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/le0pard/re2js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;re2js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;RE2 的 JavaScript 版本，RE2 是一个提供线性时间匹配的正则表达式引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/HugoSmits86/nativewebp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nativewebp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这是一个完全用 Go 语言编写的本地 WebP 编码器，不依赖 libwebp 或其他外部库。它专为性能和效率而设计，生成的文件比标准的 Go PNG 编码器小约 50%，并且执行速度更快。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/cartography-cncf/cartography" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;cartography&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 工具，通过 Neo4j 数据库以直观的图形视图整合基础设施资产及其关系。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vjerci/gochromecast" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gochromecast&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的工具，用于将你的媒体流式传输到 Android TV 或 Chromecast 设备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://waveform-renderer.vercel.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Waveform Renderer&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级且可定制的 TypeScript 库，用于在 HTML 画布上渲染音频波形。轻松创建美观、互动的音频可视化效果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MatheusRich/rails-diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-diff&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;比较 Rails 生成的文件与你仓库中的文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CapSoftware/Cap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Cap.So&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开源的 Loom 替代工具。可分享的屏幕录制。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/browserbase/stagehand" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stagehand&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专注于简单性和可扩展性的 AI 浏览框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/BemiHQ/BemiDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;BemiDB&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;专为分析优化的 PostgreSQL 只读副本。它由一个单一的二进制文件组成，无缝连接到 PostgreSQL 数据库，以压缩的列式格式复制数据，并允许你使用其 PostgreSQL 兼容的分析查询引擎运行复杂查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/cybertec-postgresql/pgwatch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwatch&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 指标监控/仪表盘。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/274"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to second issue of BetterDev. I&amp;rsquo;m lagging behind a few issues but catching up. There are many things happens with LLM/AI recently. I encourage to give these tools a try, on your own hardware.&lt;/p&gt;

&lt;p&gt;As a reader of this newsletter, you probably has the itch to build some app all the time. My friend at &lt;a href="https://lapa.ninja"&gt;lapa.ninja&lt;/a&gt; has been curating almost 7000 landing pages, all hand pick. So you can get the inspiration next time when you want to build a landing page or a dashboard for your app.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.gitbutler.com/how-git-core-devs-configure-git/"&gt;How Core Git Developers Configure Git&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this post, I’ll go through some of the perhaps obscure Git config settings that I have personally globally enabled and go into them to explain what they do and why they should probably be the default settings.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://vjerci.com/writings/chromecast/basics/"&gt;Hacking chromecast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Do you want to be able to discover chromecast device on your network and broadcast arbitrary media to it? Sure, there is many tools to do it. But what is the protocol behind it. This is a 4 part series dive into that. We will  learn the basic, the protocol, the casting server and gotcha.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/GianlucaP106/minecraft"&gt;Minecraft from scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A Minecraft clone from scratch with only modern OpenGL. No game engines or frameworks. Using Go so it&amp;rsquo;s very h igh level and easy to follow.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/Hawzen/hdp"&gt;What would happen if we didn't use TCP or UDP?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Switches, bridges, routers, load balancers, firewalls—these network boxes keep the internet running. Routing, blocking, mirroring, duplicating and deduplicating traffic in ways most people never think about. Without them, this document wouldn’t have reached you&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.sylver.dev/build-your-own-sqlite-part-5-evaluating-queries"&gt;Build your own SQLite, Part 5: Evaluating queries&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We had been featuring this series in previos issue. In this part we will learn how to evaluate a SQL query. If you are interesting of understanding deep into your stack, these article provide great approach into learning and rebuilding them.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://travisdowns.github.io/blog/2019/06/11/speed-limits.html"&gt;Performance Speed Limits&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Sometimes you just want to know how fast your code can go, without benchmarking it. Sometimes you have benchmarked it and want to know how close you are to the maximum speed. Often you just need to know what the current limiting factor is, to guide your optimization decisions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.shayon.dev/post/2025/40/scaling-with-postgresql-without-boiling-the-ocean/"&gt;Scaling with PostgreSQL without boiling the ocean&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Scaling PostgreSQL successfully doesn’t always require a full team of DBAs and experts. The beauty of PostgreSQL is that solutions often lie within the database itself - by rethinking your data access patterns from first principles, you can solve many business problems at scale.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eieio.games/blog/running-pong-in-240-browser-tabs/"&gt;Running Pong in 240 Browser Tabs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;What do you do with your unclosed browser tabs? I find that they take up a lot of screen space. So this week I figured out how to run pong inside mine.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@radhian.amri/video-streaming-using-http-206-partial-content-in-go-4e89d96abdd0"&gt;Video streaming using http 206 partial content&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Implementing video streaming might be a pain for some cases, especially when we talk about memory management alongside scalability of the application. One common way is using HTTP Live Streaming Protocol where a single video could be broken down into smaller chunks and sent through multiple HTTP requests. But then we need to transcode video ahead of time. Can we stream MP4 file? has it playable asap instead of downloading whole video? Turn out we can thank to the modern browser support of byte &amp;ldquo;Rang: byte&amp;rdquo; header.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.procustodibus.com/blog/2022/06/multi-hop-wireguard/#internet-gateway-as-a-spoke"&gt;Multi-Hop WireGuard&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WireGuard is a very powerful VPN which support multiple topology and routing. Can come in very handy when you want to perform complex routing, especially in environment where you want to control egress. Give this a read to learn about these setups: Site Gateway as a Spoke, Internet Gateway as a Spoke, Chain of Hubs, Hub is Also a Site Gateway.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gendignoux.com/blog/2025/03/03/rust-interning-2000x.html"&gt;The power of interning: making a time series database 2000x smaller in Rust&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;interning is a technique of storing only one copy of each unique piece of data in memory.Very common use in string so we don&amp;rsquo;t need to store the string multiple time. Imagine big JSON document with repeated field. In this post we look into a time series database and how interning help with different data type.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://josephmate.github.io/2025-02-26-3200p-cpu-util/"&gt;3,200% CPU Utilization&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A tale into debugging a Java program to see why it use all 32 cores.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://gist.github.com/tarruda/5b8c19779c8ff4e8100f0b37eb5981ea" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micro_events.py&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Micro event loop library to teach the basic concepts of python coroutines and how event loop libraries might be implemented&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/commaai/opendbc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;opendbc&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Python API for your car. Control the gas, brake, steering, and more. Read the speed, steering angle, and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/adamcooke/authie" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;authie&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Improve user session security in Ruby on Rails applications with database session storage&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jonathanyeong/bsky-parser" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bsky-parser&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Bluesky text parser that outputs parsed text with rich text facets&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/rajibola/human-regex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;human-regex&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Human-friendly regular expression builder with English-like syntax.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/le0pard/re2js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;re2js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;the JavaScript port of RE2, a regular expression engine that provides linear time matching&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/HugoSmits86/nativewebp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nativewebp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This is a native WebP encoder written entirely in Go, with no dependencies on libwebp or other external libraries. Designed for performance and efficiency, this encoder generates smaller files than the standard Go PNG encoder and is approximately 50% faster in execution&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/cartography-cncf/cartography" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;cartography&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a Neo4j database.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/vjerci/gochromecast" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gochromecast&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple tool to stream your media to android TV or chromecast device.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://waveform-renderer.vercel.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Waveform Renderer&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight and customizable TypeScript library for rendering audio waveforms on HTML canvas. Create beautiful, interactive audio visualizations with ease.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/MatheusRich/rails-diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-diff&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Compare Rails-generated files with the ones in your repository&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/CapSoftware/Cap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Cap.So&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Open source Loom alternative. Beautiful, shareable screen recordings.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/browserbase/stagehand" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stagehand&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An AI web browsing framework focused on simplicity and extensibility.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/BemiHQ/BemiDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;BemiDB&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Postgres read replica optimized for analytics. It consists of a single binary that seamlessly connects to a Postgres database, replicates the data in a compressed columnar format, and allows you to run complex queries using its Postgres-compatible analytical query engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/cybertec-postgresql/pgwatch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwatch&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;PostgreSQL metrics monitor/dashboard&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;各位读者，&lt;/p&gt;
&lt;p&gt;欢迎阅读 BetterDev 的第二期。我稍微落后了几期，但现在正在追上。最近有很多关于 LLM/AI 的进展。我鼓励大家尝试这些工具，用你们自己的硬件。&lt;/p&gt;
&lt;p&gt;作为 BetterDev 的读者，你可能总是渴望构建一些应用程序。我的朋友在 &lt;a href="https://lapa.ninja"&gt;lapa.ninja&lt;/a&gt; 上精心挑选了将近 7000 个落地页，都是手动挑选的。下次当你想要为你的应用程序构建一个落地页或仪表盘时，可以从中获得灵感。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;购买我一杯咖啡&lt;/a&gt; 会非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog.gitbutler.com/how-git-core-devs-configure-git/"&gt;核心 Git 开发者如何配置 Git&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这篇文章中，我会介绍一些可能不太为人所知的 Git 配置设置，这些是我个人全局启用的，并解释它们的作用以及为什么它们应该是默认设置。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vjerci.com/writings/chromecast/basics/"&gt;破解 Chromecast&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否想要在你的网络上发现 Chromecast 设备，并向其广播任意媒体？当然，有很多工具可以做到这一点。但你知道其背后的协议吗？这是一个四部分系列，深入探讨该协议。我们将学习基础知识、协议、投屏服务器以及一些注意事项。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/GianlucaP106/minecraft"&gt;从零开始制作 Minecraft&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用现代 OpenGL 从头开始制作一个 Minecraft 克隆程序。不使用任何游戏引擎或框架。使用 Go 语言，因此代码非常高级且易于理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Hawzen/hdp"&gt;如果不使用 TCP 或 UDP 会怎样？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;交换机、网桥、路由器、负载均衡器、防火墙——这些网络设备维持着互联网的运行。它们以大多数人从未考虑过的方式路由、阻止、镜像、复制和去重流量。没有它们，这篇文档也不会到达你这里。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.sylver.dev/build-your-own-sqlite-part-5-evaluating-queries"&gt;从零构建 SQLite，第 5 部分：查询评估&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们之前在上一期中介绍了这个系列。在这一部分，我们将学习如何评估 SQL 查询。如果你对深入了解你的技术栈感兴趣，这些文章提供了学习和重构它们的绝佳方法。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://travisdowns.github.io/blog/2019/06/11/speed-limits.html"&gt;性能速度限制&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有时候你只是想知道你的代码能有多快，而无需进行基准测试。有时候你已经进行了基准测试，想知道你离最大速度有多远。很多时候你只需要知道当前的限制因素是什么，以指导你的优化决策。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.shayon.dev/post/2025/40/scaling-with-postgresql-without-boiling-the-ocean/"&gt;无需大海捞针：使用 PostgreSQL 实现扩展&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;成功地扩展 PostgreSQL 并不总是需要一个完整的 DBA 团队。PostgreSQL 的美妙之处在于，解决方案往往存在于数据库本身——通过重新思考你的数据访问模式，你可以以更高效的方式解决许多业务问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eieio.games/blog/running-pong-in-240-browser-tabs/"&gt;在 240 个浏览器标签页中运行 Pong&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你对未关闭的浏览器标签页有什么想法？我发现它们会占用很多屏幕空间。因此，本周我研究了如何在我的标签页中运行 Pong。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@radhian.amri/video-streaming-using-http-206-partial-content-in-go-4e89d96abdd0"&gt;使用 HTTP 206 部分内容进行视频流传输&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在某些情况下，实现视频流传输可能是个麻烦，尤其是在涉及内存管理和应用程序可扩展性时。一种常见的方法是使用 HTTP Live Streaming 协议，将单个视频拆分成更小的块并通过多个 HTTP 请求发送。但这样就需要提前转码视频。我们能否直接流式传输 MP4 文件？能否让视频立即播放而不是下载整个文件？结果表明，现代浏览器对“Range: byte”头的支持使这一切成为可能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.procustodibus.com/blog/2022/06/multi-hop-wireguard/#internet-gateway-as-a-spoke"&gt;多跳 WireGuard&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WireGuard 是一个非常强大的 VPN，支持多种拓扑和路由。当你想要执行复杂的路由，尤其是在需要控制出站流量的环境中时，它会非常有用。请阅读这些设置：站点网关作为中继、互联网网关作为中继、链式中继、中继也是站点网关。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gendignoux.com/blog/2025/03/03/rust-interning-2000x.html"&gt;Interning 的力量：用 Rust 将时间序列数据库缩小 2000 倍&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Interning 是一种技术，用于在内存中仅存储每个唯一数据片段的一个副本。它在字符串中非常常见，因此我们不需要多次存储字符串。想象一个包含重复字段的巨大 JSON 文档。在本文中，我们将探讨时间序列数据库以及 internning 如何帮助处理不同的数据类型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://josephmate.github.io/2025-02-26-3200p-cpu-util/"&gt;3200% CPU 利用率&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一个关于调试 Java 程序以了解其为何使用所有 32 个核心的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/tarruda/5b8c19779c8ff4e8100f0b37eb5981ea" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micro_events.py&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个微事件循环库，用于教授 Python 协程的基本概念以及事件循环库的实现方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/commaai/opendbc" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;opendbc&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于你汽车的 Python API。控制油门、刹车、转向等。读取速度、转向角度等信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/adamcooke/authie" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;authie&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用数据库会话存储来提升 Ruby on Rails 应用程序的用户会话安全性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jonathanyeong/bsky-parser" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bsky-parser&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个解析 Bluesky 文本的库，输出带有富文本面的解析文本。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rajibola/human-regex" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;human-regex&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个使用类似英语的语法构建的用户友好的正则表达式生成器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/le0pard/re2js" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;re2js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;RE2 的 JavaScript 版本，RE2 是一个提供线性时间匹配的正则表达式引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/HugoSmits86/nativewebp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nativewebp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这是一个完全用 Go 语言编写的本地 WebP 编码器，不依赖 libwebp 或其他外部库。它专为性能和效率而设计，生成的文件比标准的 Go PNG 编码器小约 50%，并且执行速度更快。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/cartography-cncf/cartography" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;cartography&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 工具，通过 Neo4j 数据库以直观的图形视图整合基础设施资产及其关系。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vjerci/gochromecast" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gochromecast&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的工具，用于将你的媒体流式传输到 Android TV 或 Chromecast 设备。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://waveform-renderer.vercel.app/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Waveform Renderer&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级且可定制的 TypeScript 库，用于在 HTML 画布上渲染音频波形。轻松创建美观、互动的音频可视化效果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/MatheusRich/rails-diff" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rails-diff&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;比较 Rails 生成的文件与你仓库中的文件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CapSoftware/Cap" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Cap.So&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开源的 Loom 替代工具。可分享的屏幕录制。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/browserbase/stagehand" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;stagehand&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专注于简单性和可扩展性的 AI 浏览框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/BemiHQ/BemiDB" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;BemiDB&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;专为分析优化的 PostgreSQL 只读副本。它由一个单一的二进制文件组成，无缝连接到 PostgreSQL 数据库，以压缩的列式格式复制数据，并允许你使用其 PostgreSQL 兼容的分析查询引擎运行复杂查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/cybertec-postgresql/pgwatch" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgwatch&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;PostgreSQL 指标监控/仪表盘。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-03-04T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/273</id>
    <title>Issues #273 Jan 12, 2025 || 

问题 #273 2025年1月12日</title>
    <updated>2025-01-12T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Happy new year. Welcome to the first issue of 2025. I&amp;rsquo;m trying to become more regular this year. Looking forward to a new year and hope everyone continue to build cool thing. For me, I was unable to launch my another SaaS last year. I did overhault my cloudcost &lt;a href="https://ec2.shop"&gt;https://ec2.shop&lt;/a&gt; and much more happy with its state now.&lt;/p&gt;

&lt;p&gt;This week our sponsor is &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;, they have build an amazing Kafka alternative while 100% compatible with Kafka and way more cheaper. If you are running Kafka in Kubernetes, or looking to replace Redis with Kafka, &lt;a href="https://www.honeybadger.io/blog/sidekiq-to-karafka/"&gt;like Honeybadger team did&lt;/a&gt;, then definetely give &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt; a try.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;Pixel Federation Swaps Amazon MSK for WarpStream, Saves 83% on Apache Kafka Costs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The video game company Pixel Federation uses Kafka as the message bus to power its real-time data streaming infrastructure. However, they were leveraging Amazon MSK and their bill was growing faster than their data volumes and they had to use complex networking like VPC peering. &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;By switching to WarpStream, they saved 83% and ditched VPC peering and manual partition rebalancing&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://operating-system-in-1000-lines.vercel.app/en/"&gt;Operating System in 1,000 Lines&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;build a small operating system from scratch, step by step.
You might get intimidated when you hear OS or kernel development, the basic functions of an OS (especially the kernel) are surprisingly simple. Even Linux, which is often cited as a huge open-source software, was only 8,413 lines in version 0.01. Today&amp;rsquo;s Linux kernel is overwhelmingly large, but it started with a tiny codebase, just like your hobby project.
We&amp;rsquo;ll implement basic context switching, paging, user mode, a command-line shell, a disk device driver, and file read/write operations in C. Sounds like a lot, however, it&amp;rsquo;s only 1,000 lines of code!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nicholas.carlini.com/writing/2025/regex-chess.html"&gt;A 2-ply minimax chess engine in 84,688 regular expressions&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;So without further ado, I present to you &amp;hellip; Regex Chess: sequence of 84,688 regular expressions that, when executed in order, will play a (valid; not entirely terrible) move given a chess board as input.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.seangoedecke.com/large-established-codebases/"&gt;Mistakes engineers make in large established codebases&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Working in large established codebases is one of the hardest things to learn as a software engineer. You can’t practice it beforehand (no, open source does not give you the same experience). Personal projects can never teach you how to do it, because they’re necessarily small and from-scratch.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://aphyr.com/posts/378-seconds-since-the-epoch"&gt;Seconds Since the Epoch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;People, myself included, like to say that POSIX time, also known as Unix time, is the number of seconds since the Unix epoch, which was 1970-01-01 at 00:00:00.
This is not true. Or rather, it isn’t true in the sense most people think. For example, it is presently 2024-12-25 at 18:51:26 UTC. The POSIX time is 1735152686. It has been 1735152713 seconds since the POSIX epoch. The POSIX time number is twenty-seven seconds lower.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tailscale.com/blog/how-nat-traversal-works"&gt;How NAT traversal works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How 2 devices under a NAT can connect directly to each other without a server beind in the middle to relay traffic?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.sdn.clinic/2025/01/linux-routing-fundamentals/"&gt;Linux Routing Fundamentals&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Routing table define what what happens when an IP packet is sent from or through a Linux box.
But the simplify is which destination a package should send to? how do your computer know that a LAN ip need to send to othe laptop, and the rest go out to internet?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://8dcc.github.io/programming/pool-allocator.html"&gt;Writing a simple pool allocator in C&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When you need memory for your program, you can malloc.
Similarly to malloc, a pool allocator allows the user to allocate memory at run time. The pool allocator, however, is much faster than malloc1, at the cost of having a fixed pool size. It allows the user to allocate and free memory blocks (referred to as chunks, from now on) in O(1) constant time. This implementation also uses very little memory: when creating the pool, a very small Pool structure is allocated, along with the pool itself. Free chunks are used to store information, so the memory impact is minimal.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/behind-the-scenes-with-stream-live-cloudflares-live-streaming-service/"&gt;Behind the scenes with Stream Live, Cloudflare’s live streaming service&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Stream Live accepts audio/video content from broadcasters and makes that content available to viewers around the world in real time through the Cloudflare network. This post look into how they build broadcast ingestion with RTMPS, SRT, WHIP and Spectrum. The data is converted and store in their Durable Object, then serve to viewer through HLS or DASH protocol.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/"&gt;B-Trees: More Than I Thought I'd Want to Know&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;B-Trees were essentially “better” Binary Search Trees, with some hand-waving done that they had improved performance when used in database applications. But it&amp;rsquo;s more than just that, today we will look into disk constraint, slotted pages to see how B-Tree node fit naturally into a page - a chunk of data that the harddrive read all in the same  time.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jirevwe.github.io/sql-nulls-are-weird.html?utm_source=pocket_saves"&gt;SQL NULLs are Weird&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://calendar.perfplanet.com/2024/breaking-up-with-long-tasks-or-how-i-learned-to-group-loops-and-wield-the-yield/"&gt;Breaking Up with Long Tasks or: how I learned to group loops and wield the yield&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Arrays are in every web developer’s toolbox, and there are a dozen ways to iterate over them. Choose wrong, though, and all of that processing time will happen synchronously in one long, blocking task. The thing is, the most natural ways are the wrong ways.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yoshoku/rumale" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rumale&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a machine learning library in Ruby. Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hybridgroup/go-haystack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-haystack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Track personal Bluetooth devices via Apple&amp;rsquo;s &amp;ldquo;Find My&amp;rdquo; network using OpenHaystack and Macless-Haystack with tools written in Go/TinyGo. No Apple hardware required!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/postalsys/postal-mime" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postal-mime&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Email parser for browser and serverless environments&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/QuivrHQ/MegaParse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MegaParse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;File Parser optimised for LLM Ingestion with no loss 🧠 Parse PDFs, Docx, PPTx in a format that is ideal for LLMs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://gitlab.com/smoores/storyteller/-/tree/main/epub?ref_type=heads" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;@smoores/epub&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Node.js library for inspecting, modifying, and creating EPUB 3 publications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/byawitz/ggh/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ggh&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Recall your SSH sessions (also search your SSH config file)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://termo.rajnandan.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a simple terminal emulator that can be used to create a terminal-like interface on your website&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kleisauke/wasm-vips" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;wasm-vips&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;libvips for the browser and Node.js, compiled to WebAssembly with Emscripten.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dbohdan/recur" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;recur&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Retry a command with exponential backoff and jitter (+ Starlark expressions)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/google/vanir" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;vanir&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a source code-based static analysis tool that automatically identifies the list of missing security patches in the target system. By default, Vanir pulls up-to-date CVEs from Open Source Vulnerabilities (OSV) together with their corresponding signatures so that users can transparently scan missing patches for an up-to-date list of CVEs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apernet/OpenGFW" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;OpenGFW&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;OpenGFW is a flexible, easy-to-use, open source implementation of GFW (Great Firewall of China) on Linux&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.postgresql.org/about/news/announce-pig-the-postgres-extension-wizard-2988/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Pig: The Postgres Extension Wizard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ever wished installing or upgrading PostgreSQL extensions didn’t feel like digging through outdated readmes, cryptic configure scripts, or random GitHub forks &amp;amp; patches? The painful truth is that Postgres’s richness of extension often comes at the cost of complicated setups—especially if you’re juggling multiple distros or CPU architectures.
Enter Pig, a Go-based package manager built to tame Postgres and its ecosystem of 340+ extensions in one fell swoop.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/timescale/pgspot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgspot&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Spot vulnerabilities in postgres SQL scripts&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;新年快乐。欢迎来到2025年的第一期。今年我试图更加规律地发布内容。期待新的一年，希望每个人继续构建酷炫的东西。对我而言，去年我无法成功推出另一个SaaS项目。我重新整顿了我的cloudcost &lt;a class="notranslate" href="https://ec2.shop" translate="no"&gt;https://ec2.shop&lt;/a&gt;，现在对它的状态更加满意。&lt;/p&gt;
&lt;p&gt;本周我们的赞助商是 &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;，他们构建了一个出色的Kafka替代方案，完全兼容Kafka且成本更低。如果你正在使用Kubernetes运行Kafka，或者想要用Kafka替代Redis，&lt;a href="https://www.honeybadger.io/blog/sidekiq-to-karafka/"&gt;像Honeybadger团队所做的那样&lt;/a&gt;，那么一定要尝试 &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;Pixel Federation将Amazon MSK替换为WarpStream，节省了83%的Apache Kafka成本&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;视频游戏公司Pixel Federation使用Kafka作为消息总线来驱动其实时数据流基础设施。然而，他们之前依赖于Amazon MSK，账单增长速度超过了数据量，并且必须使用复杂的网络技术如VPC对等连接。通过切换到WarpStream，他们节省了83%的成本，并摆脱了VPC对等连接和手动分区再平衡。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://operating-system-in-1000-lines.vercel.app/en/"&gt;1000行构建操作系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从零开始逐步构建一个小型操作系统。
当你听到操作系统或内核开发时，可能会感到有些畏惧，但操作系统的最基本功能（尤其是内核）出乎意料地简单。即使是经常被引用为巨大开源软件的Linux，其0.01版本也仅有8,413行代码。如今的Linux内核规模庞大，但它也是从一个微小的代码库开始的，就像你的个人项目一样。
我们将用C语言实现基本的上下文切换、分页、用户模式、命令行外壳、磁盘设备驱动以及文件读写操作。听起来很多，但其实只用了1000行代码！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nicholas.carlini.com/writing/2025/regex-chess.html"&gt;用84,688个正则表达式构建的2层极小极大法国际象棋引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;所以，不用多说了，我向你们介绍……Regex Chess：一个由84,688个正则表达式组成的序列，当按顺序执行时，可以根据输入的棋盘状态生成一个有效的（虽然不是特别好）移动。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.seangoedecke.com/large-established-codebases/"&gt;在大型成熟代码库中工程师常犯的错误&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在大型成熟代码库中工作是软件工程师最难掌握的技能之一。你无法提前练习（不，开源项目并不能提供相同的体验）。个人项目永远无法教会你这一点，因为它们本质上是小型且从头开始的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aphyr.com/posts/378-seconds-since-the-epoch"&gt;POSIX时间（自纪元以来的秒数）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;人们，包括我自己，喜欢说POSIX时间，也称为Unix时间，是自Unix纪元（1970-01-01 00:00:00）以来的秒数。
这并不正确。或者说，它并不是大多数人所理解的那种正确。例如，现在是2024-12-25 18:51:26 UTC。POSIX时间是1735152686。自POSIX纪元以来已经过去了1735152713秒。POSIX时间数字比这个少了27秒。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tailscale.com/blog/how-nat-traversal-works"&gt;NAT穿越是如何工作的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如何让两个处于NAT后的设备能够直接连接，而不需要中间服务器来中继流量？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.sdn.clinic/2025/01/linux-routing-fundamentals/"&gt;Linux路由基础&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;路由表定义了当IP数据包从Linux设备发送或经过时会发生什么。
但简化来说，它决定了数据包应该发送到哪个目的地？你的电脑是如何知道局域网IP需要发送到另一台笔记本，而其他IP则发送到互联网的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://8dcc.github.io/programming/pool-allocator.html"&gt;用C语言编写一个简单的池分配器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当你需要为程序分配内存时，可以使用malloc。
与malloc类似，池分配器允许用户在运行时分配内存。然而，池分配器的速度比malloc快得多，代价是池的大小是固定的。它允许用户以O(1)的常数时间分配和释放内存块（从现在起称为块）。这种实现还使用了非常少的内存：在创建池时，仅分配了一个非常小的Pool结构，以及池本身。空闲块用于存储信息，因此内存影响非常小。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/behind-the-scenes-with-stream-live-cloudflares-live-streaming-service/"&gt;Stream Live背后的技术揭秘 - Cloudflare的实时流媒体服务&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Stream Live接收广播者的音频/视频内容，并通过Cloudflare网络在全球范围内实时提供给观众。本文探讨了他们如何构建广播摄入功能，使用RTMPS、SRT、WHIP和Spectrum。数据被转换并存储在他们的Durable Object中，然后通过HLS或DASH协议提供给观众。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/"&gt;B树：比我想象的要多&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;B树本质上是“更好的”二叉搜索树，人们通常认为它们在数据库应用中具有更好的性能。但其实不仅如此，今天我们将探讨磁盘限制、槽页，以及B树节点如何自然地适应于一页数据 - 一块硬盘一次性读取的数据块。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jirevwe.github.io/sql-nulls-are-weird.html?utm_source=pocket_saves"&gt;SQL中的NULL值很奇怪&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://calendar.perfplanet.com/2024/breaking-up-with-long-tasks-or-how-i-learned-to-group-loops-and-wield-the-yield/"&gt;与长时间任务分手，或：如何学会分组循环并使用yield&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;数组是每个Web开发者的工具箱中不可或缺的一部分，有十几种方法可以遍历它们。但选择错误的方法，所有处理时间都会在同步的长时间任务中发生。实际上，最自然的方法往往是错误的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/yoshoku/rumale" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rumale&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Ruby编写的机器学习库。Rumale提供了与Python的Scikit-Learn类似的机器学习算法接口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hybridgroup/go-haystack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-haystack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用Go/TinyGo编写工具，通过Apple的“查找我的”网络追踪个人蓝牙设备。无需Apple硬件！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/postalsys/postal-mime" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postal-mime&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于浏览器和无服务器环境的电子邮件解析器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/QuivrHQ/MegaParse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MegaParse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;专为LLM摄入优化的文件解析器，无任何数据丢失 🧠 可以解析PDF、Docx、PPTx文件，并以适合LLM的格式呈现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.com/smoores/storyteller/-/tree/main/epub?ref_type=heads" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;@smoores/epub&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个Node.js库，用于检查、修改和创建EPUB 3出版物。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/byawitz/ggh/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ggh&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;回溯SSH会话（也可搜索SSH配置文件）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://termo.rajnandan.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的终端模拟器，可用于在你的网站上创建终端样式的界面&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kleisauke/wasm-vips" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;wasm-vips&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;libvips在浏览器和Node.js中的实现，通过Emscripten编译为WebAssembly。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dbohdan/recur" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;recur&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用指数退避和抖动重试命令（+ Starlark表达式）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/google/vanir" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;vanir&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于源代码的静态分析工具，自动识别目标系统中缺失的安全补丁。默认情况下，Vanir会从Open Source Vulnerabilities (OSV)获取最新的CVE信息及其对应的签名，让用户可以透明地扫描缺失的补丁，以获得最新的CVE列表。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apernet/OpenGFW" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;OpenGFW&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;OpenGFW是一个灵活、易于使用的Linux开源实现的GFW（中国防火墙）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.postgresql.org/about/news/announce-pig-the-postgres-extension-wizard-2988/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Pig：Postgres扩展向导&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;是否曾经希望安装或升级PostgreSQL扩展时，不需要翻找过时的readme、晦涩的配置脚本或随机的GitHub分支和补丁？PostgreSQL扩展的丰富性往往伴随着复杂的设置，尤其是当你需要处理多个发行版或CPU架构时。
进入Pig，这是一个基于Go的包管理器，旨在一次性管理PostgreSQL及其340多个扩展的生态系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/timescale/pgspot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgspot&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;检测PostgreSQL SQL脚本中的漏洞&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/273"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Happy new year. Welcome to the first issue of 2025. I&amp;rsquo;m trying to become more regular this year. Looking forward to a new year and hope everyone continue to build cool thing. For me, I was unable to launch my another SaaS last year. I did overhault my cloudcost &lt;a href="https://ec2.shop"&gt;https://ec2.shop&lt;/a&gt; and much more happy with its state now.&lt;/p&gt;

&lt;p&gt;This week our sponsor is &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;, they have build an amazing Kafka alternative while 100% compatible with Kafka and way more cheaper. If you are running Kafka in Kubernetes, or looking to replace Redis with Kafka, &lt;a href="https://www.honeybadger.io/blog/sidekiq-to-karafka/"&gt;like Honeybadger team did&lt;/a&gt;, then definetely give &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt; a try.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;Pixel Federation Swaps Amazon MSK for WarpStream, Saves 83% on Apache Kafka Costs&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The video game company Pixel Federation uses Kafka as the message bus to power its real-time data streaming infrastructure. However, they were leveraging Amazon MSK and their bill was growing faster than their data volumes and they had to use complex networking like VPC peering. &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;By switching to WarpStream, they saved 83% and ditched VPC peering and manual partition rebalancing&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://operating-system-in-1000-lines.vercel.app/en/"&gt;Operating System in 1,000 Lines&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;build a small operating system from scratch, step by step.
You might get intimidated when you hear OS or kernel development, the basic functions of an OS (especially the kernel) are surprisingly simple. Even Linux, which is often cited as a huge open-source software, was only 8,413 lines in version 0.01. Today&amp;rsquo;s Linux kernel is overwhelmingly large, but it started with a tiny codebase, just like your hobby project.
We&amp;rsquo;ll implement basic context switching, paging, user mode, a command-line shell, a disk device driver, and file read/write operations in C. Sounds like a lot, however, it&amp;rsquo;s only 1,000 lines of code!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nicholas.carlini.com/writing/2025/regex-chess.html"&gt;A 2-ply minimax chess engine in 84,688 regular expressions&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;So without further ado, I present to you &amp;hellip; Regex Chess: sequence of 84,688 regular expressions that, when executed in order, will play a (valid; not entirely terrible) move given a chess board as input.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.seangoedecke.com/large-established-codebases/"&gt;Mistakes engineers make in large established codebases&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Working in large established codebases is one of the hardest things to learn as a software engineer. You can’t practice it beforehand (no, open source does not give you the same experience). Personal projects can never teach you how to do it, because they’re necessarily small and from-scratch.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://aphyr.com/posts/378-seconds-since-the-epoch"&gt;Seconds Since the Epoch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;People, myself included, like to say that POSIX time, also known as Unix time, is the number of seconds since the Unix epoch, which was 1970-01-01 at 00:00:00.
This is not true. Or rather, it isn’t true in the sense most people think. For example, it is presently 2024-12-25 at 18:51:26 UTC. The POSIX time is 1735152686. It has been 1735152713 seconds since the POSIX epoch. The POSIX time number is twenty-seven seconds lower.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tailscale.com/blog/how-nat-traversal-works"&gt;How NAT traversal works&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How 2 devices under a NAT can connect directly to each other without a server beind in the middle to relay traffic?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.sdn.clinic/2025/01/linux-routing-fundamentals/"&gt;Linux Routing Fundamentals&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Routing table define what what happens when an IP packet is sent from or through a Linux box.
But the simplify is which destination a package should send to? how do your computer know that a LAN ip need to send to othe laptop, and the rest go out to internet?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://8dcc.github.io/programming/pool-allocator.html"&gt;Writing a simple pool allocator in C&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;When you need memory for your program, you can malloc.
Similarly to malloc, a pool allocator allows the user to allocate memory at run time. The pool allocator, however, is much faster than malloc1, at the cost of having a fixed pool size. It allows the user to allocate and free memory blocks (referred to as chunks, from now on) in O(1) constant time. This implementation also uses very little memory: when creating the pool, a very small Pool structure is allocated, along with the pool itself. Free chunks are used to store information, so the memory impact is minimal.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/behind-the-scenes-with-stream-live-cloudflares-live-streaming-service/"&gt;Behind the scenes with Stream Live, Cloudflare’s live streaming service&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Stream Live accepts audio/video content from broadcasters and makes that content available to viewers around the world in real time through the Cloudflare network. This post look into how they build broadcast ingestion with RTMPS, SRT, WHIP and Spectrum. The data is converted and store in their Durable Object, then serve to viewer through HLS or DASH protocol.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/"&gt;B-Trees: More Than I Thought I'd Want to Know&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;B-Trees were essentially “better” Binary Search Trees, with some hand-waving done that they had improved performance when used in database applications. But it&amp;rsquo;s more than just that, today we will look into disk constraint, slotted pages to see how B-Tree node fit naturally into a page - a chunk of data that the harddrive read all in the same  time.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jirevwe.github.io/sql-nulls-are-weird.html?utm_source=pocket_saves"&gt;SQL NULLs are Weird&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://calendar.perfplanet.com/2024/breaking-up-with-long-tasks-or-how-i-learned-to-group-loops-and-wield-the-yield/"&gt;Breaking Up with Long Tasks or: how I learned to group loops and wield the yield&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Arrays are in every web developer’s toolbox, and there are a dozen ways to iterate over them. Choose wrong, though, and all of that processing time will happen synchronously in one long, blocking task. The thing is, the most natural ways are the wrong ways.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yoshoku/rumale" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rumale&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a machine learning library in Ruby. Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hybridgroup/go-haystack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-haystack&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Track personal Bluetooth devices via Apple&amp;rsquo;s &amp;ldquo;Find My&amp;rdquo; network using OpenHaystack and Macless-Haystack with tools written in Go/TinyGo. No Apple hardware required!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/postalsys/postal-mime" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postal-mime&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Email parser for browser and serverless environments&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/QuivrHQ/MegaParse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MegaParse&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;File Parser optimised for LLM Ingestion with no loss 🧠 Parse PDFs, Docx, PPTx in a format that is ideal for LLMs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://gitlab.com/smoores/storyteller/-/tree/main/epub?ref_type=heads" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;@smoores/epub&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Node.js library for inspecting, modifying, and creating EPUB 3 publications.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/byawitz/ggh/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ggh&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Recall your SSH sessions (also search your SSH config file)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://termo.rajnandan.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a simple terminal emulator that can be used to create a terminal-like interface on your website&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kleisauke/wasm-vips" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;wasm-vips&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;libvips for the browser and Node.js, compiled to WebAssembly with Emscripten.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dbohdan/recur" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;recur&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Retry a command with exponential backoff and jitter (+ Starlark expressions)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/google/vanir" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;vanir&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a source code-based static analysis tool that automatically identifies the list of missing security patches in the target system. By default, Vanir pulls up-to-date CVEs from Open Source Vulnerabilities (OSV) together with their corresponding signatures so that users can transparently scan missing patches for an up-to-date list of CVEs.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/apernet/OpenGFW" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;OpenGFW&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;OpenGFW is a flexible, easy-to-use, open source implementation of GFW (Great Firewall of China) on Linux&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.postgresql.org/about/news/announce-pig-the-postgres-extension-wizard-2988/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Pig: The Postgres Extension Wizard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ever wished installing or upgrading PostgreSQL extensions didn’t feel like digging through outdated readmes, cryptic configure scripts, or random GitHub forks &amp;amp; patches? The painful truth is that Postgres’s richness of extension often comes at the cost of complicated setups—especially if you’re juggling multiple distros or CPU architectures.
Enter Pig, a Go-based package manager built to tame Postgres and its ecosystem of 340+ extensions in one fell swoop.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/timescale/pgspot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgspot&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Spot vulnerabilities in postgres SQL scripts&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;新年快乐。欢迎来到2025年的第一期。今年我试图更加规律地发布内容。期待新的一年，希望每个人继续构建酷炫的东西。对我而言，去年我无法成功推出另一个SaaS项目。我重新整顿了我的cloudcost &lt;a class="notranslate" href="https://ec2.shop" translate="no"&gt;https://ec2.shop&lt;/a&gt;，现在对它的状态更加满意。&lt;/p&gt;
&lt;p&gt;本周我们的赞助商是 &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;，他们构建了一个出色的Kafka替代方案，完全兼容Kafka且成本更低。如果你正在使用Kubernetes运行Kafka，或者想要用Kafka替代Redis，&lt;a href="https://www.honeybadger.io/blog/sidekiq-to-karafka/"&gt;像Honeybadger团队所做的那样&lt;/a&gt;，那么一定要尝试 &lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;WarpStream&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享给朋友来传播这个资源。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/k7kvnm9mmen45caob7mevk59rv0"&gt;Pixel Federation将Amazon MSK替换为WarpStream，节省了83%的Apache Kafka成本&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;视频游戏公司Pixel Federation使用Kafka作为消息总线来驱动其实时数据流基础设施。然而，他们之前依赖于Amazon MSK，账单增长速度超过了数据量，并且必须使用复杂的网络技术如VPC对等连接。通过切换到WarpStream，他们节省了83%的成本，并摆脱了VPC对等连接和手动分区再平衡。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://operating-system-in-1000-lines.vercel.app/en/"&gt;1000行构建操作系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;从零开始逐步构建一个小型操作系统。
当你听到操作系统或内核开发时，可能会感到有些畏惧，但操作系统的最基本功能（尤其是内核）出乎意料地简单。即使是经常被引用为巨大开源软件的Linux，其0.01版本也仅有8,413行代码。如今的Linux内核规模庞大，但它也是从一个微小的代码库开始的，就像你的个人项目一样。
我们将用C语言实现基本的上下文切换、分页、用户模式、命令行外壳、磁盘设备驱动以及文件读写操作。听起来很多，但其实只用了1000行代码！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nicholas.carlini.com/writing/2025/regex-chess.html"&gt;用84,688个正则表达式构建的2层极小极大法国际象棋引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;所以，不用多说了，我向你们介绍……Regex Chess：一个由84,688个正则表达式组成的序列，当按顺序执行时，可以根据输入的棋盘状态生成一个有效的（虽然不是特别好）移动。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.seangoedecke.com/large-established-codebases/"&gt;在大型成熟代码库中工程师常犯的错误&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在大型成熟代码库中工作是软件工程师最难掌握的技能之一。你无法提前练习（不，开源项目并不能提供相同的体验）。个人项目永远无法教会你这一点，因为它们本质上是小型且从头开始的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aphyr.com/posts/378-seconds-since-the-epoch"&gt;POSIX时间（自纪元以来的秒数）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;人们，包括我自己，喜欢说POSIX时间，也称为Unix时间，是自Unix纪元（1970-01-01 00:00:00）以来的秒数。
这并不正确。或者说，它并不是大多数人所理解的那种正确。例如，现在是2024-12-25 18:51:26 UTC。POSIX时间是1735152686。自POSIX纪元以来已经过去了1735152713秒。POSIX时间数字比这个少了27秒。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tailscale.com/blog/how-nat-traversal-works"&gt;NAT穿越是如何工作的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如何让两个处于NAT后的设备能够直接连接，而不需要中间服务器来中继流量？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.sdn.clinic/2025/01/linux-routing-fundamentals/"&gt;Linux路由基础&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;路由表定义了当IP数据包从Linux设备发送或经过时会发生什么。
但简化来说，它决定了数据包应该发送到哪个目的地？你的电脑是如何知道局域网IP需要发送到另一台笔记本，而其他IP则发送到互联网的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://8dcc.github.io/programming/pool-allocator.html"&gt;用C语言编写一个简单的池分配器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;当你需要为程序分配内存时，可以使用malloc。
与malloc类似，池分配器允许用户在运行时分配内存。然而，池分配器的速度比malloc快得多，代价是池的大小是固定的。它允许用户以O(1)的常数时间分配和释放内存块（从现在起称为块）。这种实现还使用了非常少的内存：在创建池时，仅分配了一个非常小的Pool结构，以及池本身。空闲块用于存储信息，因此内存影响非常小。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/behind-the-scenes-with-stream-live-cloudflares-live-streaming-service/"&gt;Stream Live背后的技术揭秘 - Cloudflare的实时流媒体服务&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Stream Live接收广播者的音频/视频内容，并通过Cloudflare网络在全球范围内实时提供给观众。本文探讨了他们如何构建广播摄入功能，使用RTMPS、SRT、WHIP和Spectrum。数据被转换并存储在他们的Durable Object中，然后通过HLS或DASH协议提供给观众。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://benjamincongdon.me/blog/2021/08/17/B-Trees-More-Than-I-Thought-Id-Want-to-Know/"&gt;B树：比我想象的要多&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;B树本质上是“更好的”二叉搜索树，人们通常认为它们在数据库应用中具有更好的性能。但其实不仅如此，今天我们将探讨磁盘限制、槽页，以及B树节点如何自然地适应于一页数据 - 一块硬盘一次性读取的数据块。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jirevwe.github.io/sql-nulls-are-weird.html?utm_source=pocket_saves"&gt;SQL中的NULL值很奇怪&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://calendar.perfplanet.com/2024/breaking-up-with-long-tasks-or-how-i-learned-to-group-loops-and-wield-the-yield/"&gt;与长时间任务分手，或：如何学会分组循环并使用yield&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;数组是每个Web开发者的工具箱中不可或缺的一部分，有十几种方法可以遍历它们。但选择错误的方法，所有处理时间都会在同步的长时间任务中发生。实际上，最自然的方法往往是错误的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/yoshoku/rumale" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rumale&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Ruby编写的机器学习库。Rumale提供了与Python的Scikit-Learn类似的机器学习算法接口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hybridgroup/go-haystack" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-haystack&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用Go/TinyGo编写工具，通过Apple的“查找我的”网络追踪个人蓝牙设备。无需Apple硬件！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/postalsys/postal-mime" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;postal-mime&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;适用于浏览器和无服务器环境的电子邮件解析器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/QuivrHQ/MegaParse" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MegaParse&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;专为LLM摄入优化的文件解析器，无任何数据丢失 🧠 可以解析PDF、Docx、PPTx文件，并以适合LLM的格式呈现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gitlab.com/smoores/storyteller/-/tree/main/epub?ref_type=heads" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;@smoores/epub&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个Node.js库，用于检查、修改和创建EPUB 3出版物。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/byawitz/ggh/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ggh&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;回溯SSH会话（也可搜索SSH配置文件）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://termo.rajnandan.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;termo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的终端模拟器，可用于在你的网站上创建终端样式的界面&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kleisauke/wasm-vips" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;wasm-vips&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;libvips在浏览器和Node.js中的实现，通过Emscripten编译为WebAssembly。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dbohdan/recur" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;recur&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用指数退避和抖动重试命令（+ Starlark表达式）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/google/vanir" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;vanir&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于源代码的静态分析工具，自动识别目标系统中缺失的安全补丁。默认情况下，Vanir会从Open Source Vulnerabilities (OSV)获取最新的CVE信息及其对应的签名，让用户可以透明地扫描缺失的补丁，以获得最新的CVE列表。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/apernet/OpenGFW" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;OpenGFW&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;OpenGFW是一个灵活、易于使用的Linux开源实现的GFW（中国防火墙）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.postgresql.org/about/news/announce-pig-the-postgres-extension-wizard-2988/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Pig：Postgres扩展向导&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;是否曾经希望安装或升级PostgreSQL扩展时，不需要翻找过时的readme、晦涩的配置脚本或随机的GitHub分支和补丁？PostgreSQL扩展的丰富性往往伴随着复杂的设置，尤其是当你需要处理多个发行版或CPU架构时。
进入Pig，这是一个基于Go的包管理器，旨在一次性管理PostgreSQL及其340多个扩展的生态系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/timescale/pgspot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgspot&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;检测PostgreSQL SQL脚本中的漏洞&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2025-01-12T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/272</id>
    <title>Issues #272 Dec 09, 2024 || 

问题 #272 2024年12月9日</title>
    <updated>2024-12-09T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s chrismast time. Time for led lighting project. This year I came across this &lt;a href="https://kno.wled.ge/"&gt;WLED project&lt;/a&gt;, a fast and feature-rich implementation of an ESP8266/ESP32 webserver to control NeoPixel (WS2812B, WS2811, SK6812) LEDs or also SPI based chipsets like the WS2801 and APA102! They had all the resouces from hardwares to softwares, Web UI,mobile app to control your leds.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;Stop worrying about your to-do list.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Zapier connects the apps you use every day, so you can focus on what matters most. &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;Start working more efficiently - Create your free account today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://flatt.tech/research/posts/compromising-openwrt-supply-chain-sha256-collision/"&gt;Compromising OpenWrt Supply Chain via Truncated SHA-256 Collision and Command Injection&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;BetterDev usually doesn&amp;rsquo;t include these kind of vulnerability report. However, this one is very interesting because it happen through using a cache key as a truncate hash of user input data, lead to collision. And caching is common particularlly in web dev, picking right cache key is important to avoid cache poisoning.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/skerkour/black-hat-rust"&gt;Applied offensive security with Rust&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;it&amp;rsquo;s a from-theory-to-practice guide and you may enjoy it if you are a developer and want to learn security&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.nullpt.rs/breaking-the-4chan-captcha#scraping-captchas-from-4chan"&gt;Breaking the 4Chan CAPTCHA&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This project was entered into as a learning experience, to enhance my knowledge of machine learning, as well as TensorFlow specifically. At the end, I wanted to have a trained machine learning model that runs in the browser to reliably (at least 80% accuracy, &amp;gt;90% preferred) solve the 4Chan CAPTCHA. These goals were achieved - let&amp;rsquo;s talk about how I got there!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cyberdemon.org/2024/03/20/submodules.html"&gt;Demystifying git submodules&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Throughout my career, I have found git submodules to be a pain. Because I did not understand them, I kept getting myself into frustrating situations.
So, I finally sat down and learned how git tracks submodules. Turns out, it’s not complex at all. It’s just different from how git tracks regular files. It’s just one more thing you have to learn.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.smidt.dev/posts/0003/"&gt;Diving into eBPF: Building a Process Tracer from Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Today i want to share a story about how i ended up writing a simple process tracer for linux. Using eBPF in go to fix a github actions which i actually didn’t need. We will go over each piece and hopefully you will learn something form it.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eieio.games/blog/writing-down-every-uuid/"&gt;Writing down (and searching through) every UUID&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most of time you see UUID re-present as text based, but it&amp;rsquo;s actually a 128 bit integer. The OP makes &lt;a href="https://everyuuid.com"&gt;everyuuid.com&lt;/a&gt; to display both the number and text based of every single UUID. They share the challenge of rendering, ordering an searching.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/Olshansk/postgres_for_everything"&gt;PostgreSQL for everything&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How to reduce complexity and move faster? Just Postgres for everything.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://joyofrails.com/articles/what-you-need-to-know-about-sqlite"&gt;What you need to know about SQLite&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A compilation of lessons about what the SQLite database engine can and cannot do. It&amp;rsquo;s written for Rails, but you can apply all the lessons to use SQLite generally.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://notso.boringsql.com/posts/deletes-are-difficult/"&gt;Deletes are difficult&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We tend to optimize db for insert and select, and overlook delete. At first glance, the DELETE command seems straightforward. But more ofthen than not on production the delete break down. We’ll uncover why DELETE operations demand careful consideration and explore how to handle them effectively&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/the-case-for-shared-storage"&gt;The Case for Shared Storage&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you operate Kafka, you know how important the storage layer is. In K8S, when a pod went down, and come back up, we need o make sure the storage is mounted to the same node, lead to slowness of pod because it needs to detach and re-attach volume. WarpStream is essentially serverless Kafka. They aim to solve this storage layer. In this post, they share with us why they choose to use a shared storage system.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.raymondcamden.com/2024/12/03/using-transformersjs-for-ai-in-the-browser"&gt;Using Transformers.js for AI in the Browser&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A practical journey to use transformersjs.js to perform ML task directly in browser.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kurtextrem.de/posts/improve-inp-react"&gt;How To Improve Interaction-to-Next-Paint : React&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sentriz/go-taglib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-taglib&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This project is a Go library for reading and writing audio metadata tags. It provides a portable solution with no external dependencies required, thanks to an embedded WASM binary. The most interesting part is WASM. So there is no CGO invoke at all even though taglib is a C++ codebase. A very interesting approach&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/borewit/music-metadata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;music-metadata&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pganalyze/pg_query" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_query&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ruby extension to parse, deparse and normalize SQL queries using the PostgreSQL query parser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/squidowl/halloy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;halloy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;IRC application written in Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/volfpeter/htmy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;htmy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Async, pure-Python rendering engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/anchore/quill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;quill&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Simple mac binary signing and notarization from any platform (replacing the codesign utility for simple use cases).&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/outerbase/studio?utm_source=pocket_shared" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;studio&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight Database GUI in your browser. It supports connecting to Postgres, MySQL, and SQLite.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jlowin/fastmcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastmcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/introduction"&gt;Model Context Protocol (MCP)&lt;/a&gt; servers are a new, standardized way to provide context and tools to your LLMs, and FastMCP makes building MCP servers simple and intuitive. Create tools, expose resources, and define prompts with clean, Pythonic code:&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hyperium/tonic" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tonic&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A rust implementation of gRPC, a high performance, open source, general RPC framework that puts mobile and HTTP/2 first.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kaluma-project/kaluma" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kaluma&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tiny and efficient JavaScript runtime for RP2040 (Raspberry Pi Pico).&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/tiagorangel1/bunbuster/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bunbuster&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ridiculously fast web &amp;amp; TCP fuzzer designed for brute-forcing directories, subdomains, and files on web servers.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;圣诞节到了。是时候进行LED灯光项目了。今年我接触到了这个 &lt;a href="https://kno.wled.ge/"&gt;WLED项目&lt;/a&gt;，它是一个快速且功能丰富的ESP8266/ESP32网络服务器实现，用于控制NeoPixel（WS2812B、WS2811、SK6812）LED灯，也可以用于基于SPI的芯片组如WS2801和APA102！他们提供了从硬件到软件的所有资源，包括Web界面、移动应用来控制你的LED灯。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享它来传播这个信息。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;别再担心你的待办事项清单。&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;Zapier连接你每天使用的应用程序，这样你就可以专注于最重要的事情。 &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;开始更高效地工作 - 现在就创建你的免费账户&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://flatt.tech/research/posts/compromising-openwrt-supply-chain-sha256-collision/"&gt;通过截断SHA-256碰撞和命令注入破坏OpenWrt供应链&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;BetterDev通常不包含这类漏洞报告。然而，这个报告非常有趣，因为它通过将缓存键作为用户输入数据的截断哈希来实现碰撞，而缓存在Web开发中非常常见，选择正确的缓存键对于避免缓存中毒至关重要。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/skerkour/black-hat-rust"&gt;使用Rust进行应用性安全&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是一份从理论到实践的指南，如果你是开发者并想学习安全知识，可能会喜欢它。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.nullpt.rs/breaking-the-4chan-captcha#scraping-captchas-from-4chan"&gt;破解4Chan的CAPTCHA&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这个项目是作为学习经验而进行的，旨在增强我对机器学习以及TensorFlow的了解。最终，我希望有一个在浏览器中运行的训练好的机器学习模型，能够可靠地（至少80%准确率，&gt;90%为佳）解决4Chan的CAPTCHA。这些目标都实现了，让我们来谈谈我是如何做到的！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cyberdemon.org/2024/03/20/submodules.html"&gt;揭开Git子模块的神秘面纱&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在我的职业生涯中，我发现Git子模块是一个麻烦。因为我没有理解它们，所以我总是陷入令人沮丧的情况。因此，我终于坐下来学习Git如何跟踪子模块。结果发现，这并不复杂。它只是与Git跟踪普通文件的方式不同。它只是你需要学习的另一件事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.smidt.dev/posts/0003/"&gt;深入eBPF：从零构建一个进程追踪器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;今天我想分享一个故事，讲述我是如何为Linux编写一个简单的进程追踪器的。使用eBPF在Go中实现，以修复GitHub Actions，尽管实际上我并不需要它。我们将逐一探讨每个部分，希望你也能从中学习到一些东西。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eieio.games/blog/writing-down-every-uuid/"&gt;记录并搜索每一个UUID&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;通常你看到的UUID是文本形式的，但实际上它是一个128位整数。该作者创建了 &lt;a href="https://everyuuid.com"&gt;everyuuid.com&lt;/a&gt; 来显示每个UUID的数字和文本形式。他们分享了渲染、排序和搜索的挑战。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Olshansk/postgres_for_everything"&gt;PostgreSQL用于一切&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如何减少复杂性并加快速度？只需使用PostgreSQL来处理一切。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://joyofrails.com/articles/what-you-need-to-know-about-sqlite"&gt;你需要知道的SQLite知识&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是一篇关于SQLite数据库引擎能做什么和不能做什么的综合文章。它针对Rails编写，但你可以将所有这些经验应用于一般使用SQLite的情况。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://notso.boringsql.com/posts/deletes-are-difficult/"&gt;删除操作是困难的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们通常会优化数据库以适应插入和查询操作，而忽视删除操作。乍一看，DELETE命令似乎很简单。但在生产环境中，删除操作往往会出现问题。我们将揭示为什么DELETE操作需要谨慎对待，并探讨如何有效处理它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/the-case-for-shared-storage"&gt;共享存储的必要性&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你使用Kafka，你就会知道存储层有多重要。在K8S中，当一个Pod崩溃并重新启动时，我们需要确保存储挂载到同一个节点，这会导致Pod变慢，因为它需要分离和重新挂载卷。WarpStream本质上是无服务器Kafka。他们旨在解决这一存储层问题。在本文中，他们与我们分享了为何选择使用共享存储系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.raymondcamden.com/2024/12/03/using-transformersjs-for-ai-in-the-browser"&gt;使用Transformers.js在浏览器中进行AI操作&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一次实际的旅程，使用Transformers.js在浏览器中直接执行机器学习任务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kurtextrem.de/posts/improve-inp-react"&gt;如何提高React的交互到下一次绘画时间&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sentriz/go-taglib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-taglib&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;该项目是一个Go库，用于读取和写入音频元数据标签。它提供了一个无需外部依赖的便携解决方案，得益于嵌入的WebAssembly二进制文件。最有趣的部分是WebAssembly。因此，即使taglib是一个C++代码库，也完全不需要调用CGO。这是一种非常有趣的处理方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/borewit/music-metadata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;music-metadata&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于流和文件的Node.js音乐元数据解析器，支持广泛的音频和标签格式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pganalyze/pg_query" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_query&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个Ruby扩展，使用PostgreSQL查询解析器来解析、重新生成和规范化SQL查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/squidowl/halloy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;halloy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Rust编写的IRC应用程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/volfpeter/htmy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;htmy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个异步、纯Python的渲染引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/anchore/quill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;quill&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的mac二进制签名和公证工具，适用于任何平台（替代codesign工具用于简单用例）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/outerbase/studio?utm_source=pocket_shared" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;studio&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级的浏览器端数据库图形用户界面。它支持连接到Postgres、MySQL和SQLite。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jlowin/fastmcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastmcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/introduction"&gt;模型上下文协议（MCP）&lt;/a&gt; 服务器是一种为你的大型语言模型提供上下文和工具的新标准化方式，FastMCP使构建MCP服务器变得简单直观。用干净、Python化的代码创建工具、暴露资源并定义提示语：&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hyperium/tonic" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tonic&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Rust实现的gRPC，一个高性能、开源、通用的远程过程调用（RPC）框架，以移动设备和HTTP/2为核心。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kaluma-project/kaluma" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kaluma&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专为RP2040（Raspberry Pi Pico）设计的轻巧高效的JavaScript运行时。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tiagorangel1/bunbuster/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bunbuster&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个设计用于暴力破解Web服务器目录、子域和文件的超快速Web和TCP模糊测试工具。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/272"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s chrismast time. Time for led lighting project. This year I came across this &lt;a href="https://kno.wled.ge/"&gt;WLED project&lt;/a&gt;, a fast and feature-rich implementation of an ESP8266/ESP32 webserver to control NeoPixel (WS2812B, WS2811, SK6812) LEDs or also SPI based chipsets like the WS2801 and APA102! They had all the resouces from hardwares to softwares, Web UI,mobile app to control your leds.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;Stop worrying about your to-do list.&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Zapier connects the apps you use every day, so you can focus on what matters most. &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;Start working more efficiently - Create your free account today&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://flatt.tech/research/posts/compromising-openwrt-supply-chain-sha256-collision/"&gt;Compromising OpenWrt Supply Chain via Truncated SHA-256 Collision and Command Injection&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;BetterDev usually doesn&amp;rsquo;t include these kind of vulnerability report. However, this one is very interesting because it happen through using a cache key as a truncate hash of user input data, lead to collision. And caching is common particularlly in web dev, picking right cache key is important to avoid cache poisoning.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/skerkour/black-hat-rust"&gt;Applied offensive security with Rust&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;it&amp;rsquo;s a from-theory-to-practice guide and you may enjoy it if you are a developer and want to learn security&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.nullpt.rs/breaking-the-4chan-captcha#scraping-captchas-from-4chan"&gt;Breaking the 4Chan CAPTCHA&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This project was entered into as a learning experience, to enhance my knowledge of machine learning, as well as TensorFlow specifically. At the end, I wanted to have a trained machine learning model that runs in the browser to reliably (at least 80% accuracy, &amp;gt;90% preferred) solve the 4Chan CAPTCHA. These goals were achieved - let&amp;rsquo;s talk about how I got there!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cyberdemon.org/2024/03/20/submodules.html"&gt;Demystifying git submodules&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Throughout my career, I have found git submodules to be a pain. Because I did not understand them, I kept getting myself into frustrating situations.
So, I finally sat down and learned how git tracks submodules. Turns out, it’s not complex at all. It’s just different from how git tracks regular files. It’s just one more thing you have to learn.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.smidt.dev/posts/0003/"&gt;Diving into eBPF: Building a Process Tracer from Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Today i want to share a story about how i ended up writing a simple process tracer for linux. Using eBPF in go to fix a github actions which i actually didn’t need. We will go over each piece and hopefully you will learn something form it.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://eieio.games/blog/writing-down-every-uuid/"&gt;Writing down (and searching through) every UUID&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Most of time you see UUID re-present as text based, but it&amp;rsquo;s actually a 128 bit integer. The OP makes &lt;a href="https://everyuuid.com"&gt;everyuuid.com&lt;/a&gt; to display both the number and text based of every single UUID. They share the challenge of rendering, ordering an searching.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://github.com/Olshansk/postgres_for_everything"&gt;PostgreSQL for everything&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How to reduce complexity and move faster? Just Postgres for everything.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://joyofrails.com/articles/what-you-need-to-know-about-sqlite"&gt;What you need to know about SQLite&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A compilation of lessons about what the SQLite database engine can and cannot do. It&amp;rsquo;s written for Rails, but you can apply all the lessons to use SQLite generally.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://notso.boringsql.com/posts/deletes-are-difficult/"&gt;Deletes are difficult&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We tend to optimize db for insert and select, and overlook delete. At first glance, the DELETE command seems straightforward. But more ofthen than not on production the delete break down. We’ll uncover why DELETE operations demand careful consideration and explore how to handle them effectively&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.warpstream.com/blog/the-case-for-shared-storage"&gt;The Case for Shared Storage&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you operate Kafka, you know how important the storage layer is. In K8S, when a pod went down, and come back up, we need o make sure the storage is mounted to the same node, lead to slowness of pod because it needs to detach and re-attach volume. WarpStream is essentially serverless Kafka. They aim to solve this storage layer. In this post, they share with us why they choose to use a shared storage system.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.raymondcamden.com/2024/12/03/using-transformersjs-for-ai-in-the-browser"&gt;Using Transformers.js for AI in the Browser&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A practical journey to use transformersjs.js to perform ML task directly in browser.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kurtextrem.de/posts/improve-inp-react"&gt;How To Improve Interaction-to-Next-Paint : React&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sentriz/go-taglib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-taglib&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;This project is a Go library for reading and writing audio metadata tags. It provides a portable solution with no external dependencies required, thanks to an embedded WASM binary. The most interesting part is WASM. So there is no CGO invoke at all even though taglib is a C++ codebase. A very interesting approach&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/borewit/music-metadata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;music-metadata&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pganalyze/pg_query" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_query&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ruby extension to parse, deparse and normalize SQL queries using the PostgreSQL query parser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/squidowl/halloy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;halloy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;IRC application written in Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/volfpeter/htmy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;htmy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Async, pure-Python rendering engine.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/anchore/quill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;quill&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Simple mac binary signing and notarization from any platform (replacing the codesign utility for simple use cases).&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/outerbase/studio?utm_source=pocket_shared" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;studio&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A lightweight Database GUI in your browser. It supports connecting to Postgres, MySQL, and SQLite.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jlowin/fastmcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastmcp&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/introduction"&gt;Model Context Protocol (MCP)&lt;/a&gt; servers are a new, standardized way to provide context and tools to your LLMs, and FastMCP makes building MCP servers simple and intuitive. Create tools, expose resources, and define prompts with clean, Pythonic code:&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/hyperium/tonic" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tonic&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A rust implementation of gRPC, a high performance, open source, general RPC framework that puts mobile and HTTP/2 first.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/kaluma-project/kaluma" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kaluma&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A tiny and efficient JavaScript runtime for RP2040 (Raspberry Pi Pico).&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/tiagorangel1/bunbuster/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bunbuster&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ridiculously fast web &amp;amp; TCP fuzzer designed for brute-forcing directories, subdomains, and files on web servers.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;圣诞节到了。是时候进行LED灯光项目了。今年我接触到了这个 &lt;a href="https://kno.wled.ge/"&gt;WLED项目&lt;/a&gt;，它是一个快速且功能丰富的ESP8266/ESP32网络服务器实现，用于控制NeoPixel（WS2812B、WS2811、SK6812）LED灯，也可以用于基于SPI的芯片组如WS2801和APA102！他们提供了从硬件到软件的所有资源，包括Web界面、移动应用来控制你的LED灯。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请通过分享它来传播这个信息。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;别再担心你的待办事项清单。&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;Zapier连接你每天使用的应用程序，这样你就可以专注于最重要的事情。 &lt;a href="https://www.vpdae.com/redirect/45u6b5sfxgg06ndy9aggn0txdce"&gt;开始更高效地工作 - 现在就创建你的免费账户&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://flatt.tech/research/posts/compromising-openwrt-supply-chain-sha256-collision/"&gt;通过截断SHA-256碰撞和命令注入破坏OpenWrt供应链&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;BetterDev通常不包含这类漏洞报告。然而，这个报告非常有趣，因为它通过将缓存键作为用户输入数据的截断哈希来实现碰撞，而缓存在Web开发中非常常见，选择正确的缓存键对于避免缓存中毒至关重要。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/skerkour/black-hat-rust"&gt;使用Rust进行应用性安全&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是一份从理论到实践的指南，如果你是开发者并想学习安全知识，可能会喜欢它。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.nullpt.rs/breaking-the-4chan-captcha#scraping-captchas-from-4chan"&gt;破解4Chan的CAPTCHA&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这个项目是作为学习经验而进行的，旨在增强我对机器学习以及TensorFlow的了解。最终，我希望有一个在浏览器中运行的训练好的机器学习模型，能够可靠地（至少80%准确率，&gt;90%为佳）解决4Chan的CAPTCHA。这些目标都实现了，让我们来谈谈我是如何做到的！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cyberdemon.org/2024/03/20/submodules.html"&gt;揭开Git子模块的神秘面纱&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在我的职业生涯中，我发现Git子模块是一个麻烦。因为我没有理解它们，所以我总是陷入令人沮丧的情况。因此，我终于坐下来学习Git如何跟踪子模块。结果发现，这并不复杂。它只是与Git跟踪普通文件的方式不同。它只是你需要学习的另一件事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.smidt.dev/posts/0003/"&gt;深入eBPF：从零构建一个进程追踪器&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;今天我想分享一个故事，讲述我是如何为Linux编写一个简单的进程追踪器的。使用eBPF在Go中实现，以修复GitHub Actions，尽管实际上我并不需要它。我们将逐一探讨每个部分，希望你也能从中学习到一些东西。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eieio.games/blog/writing-down-every-uuid/"&gt;记录并搜索每一个UUID&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;通常你看到的UUID是文本形式的，但实际上它是一个128位整数。该作者创建了 &lt;a href="https://everyuuid.com"&gt;everyuuid.com&lt;/a&gt; 来显示每个UUID的数字和文本形式。他们分享了渲染、排序和搜索的挑战。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Olshansk/postgres_for_everything"&gt;PostgreSQL用于一切&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如何减少复杂性并加快速度？只需使用PostgreSQL来处理一切。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://joyofrails.com/articles/what-you-need-to-know-about-sqlite"&gt;你需要知道的SQLite知识&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是一篇关于SQLite数据库引擎能做什么和不能做什么的综合文章。它针对Rails编写，但你可以将所有这些经验应用于一般使用SQLite的情况。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://notso.boringsql.com/posts/deletes-are-difficult/"&gt;删除操作是困难的&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们通常会优化数据库以适应插入和查询操作，而忽视删除操作。乍一看，DELETE命令似乎很简单。但在生产环境中，删除操作往往会出现问题。我们将揭示为什么DELETE操作需要谨慎对待，并探讨如何有效处理它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.warpstream.com/blog/the-case-for-shared-storage"&gt;共享存储的必要性&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你使用Kafka，你就会知道存储层有多重要。在K8S中，当一个Pod崩溃并重新启动时，我们需要确保存储挂载到同一个节点，这会导致Pod变慢，因为它需要分离和重新挂载卷。WarpStream本质上是无服务器Kafka。他们旨在解决这一存储层问题。在本文中，他们与我们分享了为何选择使用共享存储系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.raymondcamden.com/2024/12/03/using-transformersjs-for-ai-in-the-browser"&gt;使用Transformers.js在浏览器中进行AI操作&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;一次实际的旅程，使用Transformers.js在浏览器中直接执行机器学习任务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kurtextrem.de/posts/improve-inp-react"&gt;如何提高React的交互到下一次绘画时间&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sentriz/go-taglib" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-taglib&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;该项目是一个Go库，用于读取和写入音频元数据标签。它提供了一个无需外部依赖的便携解决方案，得益于嵌入的WebAssembly二进制文件。最有趣的部分是WebAssembly。因此，即使taglib是一个C++代码库，也完全不需要调用CGO。这是一种非常有趣的处理方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/borewit/music-metadata" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;music-metadata&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个基于流和文件的Node.js音乐元数据解析器，支持广泛的音频和标签格式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pganalyze/pg_query" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_query&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个Ruby扩展，使用PostgreSQL查询解析器来解析、重新生成和规范化SQL查询。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/squidowl/halloy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;halloy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Rust编写的IRC应用程序。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/volfpeter/htmy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;htmy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个异步、纯Python的渲染引擎。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/anchore/quill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;quill&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个简单的mac二进制签名和公证工具，适用于任何平台（替代codesign工具用于简单用例）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/outerbase/studio?utm_source=pocket_shared" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;studio&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个轻量级的浏览器端数据库图形用户界面。它支持连接到Postgres、MySQL和SQLite。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jlowin/fastmcp" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fastmcp&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/introduction"&gt;模型上下文协议（MCP）&lt;/a&gt; 服务器是一种为你的大型语言模型提供上下文和工具的新标准化方式，FastMCP使构建MCP服务器变得简单直观。用干净、Python化的代码创建工具、暴露资源并定义提示语：&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/hyperium/tonic" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tonic&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Rust实现的gRPC，一个高性能、开源、通用的远程过程调用（RPC）框架，以移动设备和HTTP/2为核心。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kaluma-project/kaluma" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;kaluma&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专为RP2040（Raspberry Pi Pico）设计的轻巧高效的JavaScript运行时。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tiagorangel1/bunbuster/tree/main" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bunbuster&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个设计用于暴力破解Web服务器目录、子域和文件的超快速Web和TCP模糊测试工具。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-12-09T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/271</id>
    <title>Issues #271 Nov 26, 2024 || 

问题 #271 2024年11月26日</title>
    <updated>2024-11-26T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to thanksgiving issue of BetterDev. Hope everyone had a safe and warm thanksgiving. It&amp;rsquo;s getting so cold these days. If you are in warzone such as Ukraina or Gaza, I really hope thing will become better.&lt;/p&gt;

&lt;p&gt;AI field has been evolve quite fast this month with a lot of amazing tooling. I added many of them in self-hosted section to help you try them out.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://lcamtuf.substack.com/p/memory-the-forgotten-history"&gt;Memory: The Forgotten History&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This article explores the historical development of memory in computing, from the early innovations in storage to the evolution of modern memory technologies. It reflects on the forgotten milestones in memory history and their impact on current computing.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://devblogs.microsoft.com/oldnewthing/20241112-00/?p=110507"&gt;Why did Windows 95 setup use three operating systems?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;why Windows 95 setup goes through three operating systems: MS-DOS, Windows 3.1, and then Windows 95. Why not go from MS-DOS straight to Windows 95?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://articles.foletta.org/post/2024-01-08-a-day-in-the-life-the-bgp-table/?utm_source=pocket_shared"&gt;A Day in the Life: The Global BGP Table&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Border Gateway Protocol (BGP) is the routing protocol for the Internet. Much like the post office processing mail, BGP picks the most efficient routes for delivering Internet traffic.  In this post, we&amp;rsquo;re exploring the intra-day shenanigans with an eye to finding some of the ridiculous things that go on out.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dotat.at/@/2024-10-22-tmp.html"&gt;against /tmp&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Why using /tmp to store file is a usually a bad idea.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/topaz-policy-engine-design/"&gt;How we prevent conflicts in authoritative DNS configuration using formal verification&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Learn how CloudFlare use formal verification to mathematically prove properties about DNS addressing behavior, even when different systems (owned by different teams) at Cloudflare have contradictory views on which IP addresses should be returned.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.micron.com/about/blog/memory/dram/how-dram-changed-the-world"&gt;How DRAM Changed the World&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This blog post from Micron explores the transformative role of DRAM (Dynamic Random Access Memory) in the evolution of technology. It highlights DRAM&amp;rsquo;s impact on everything from personal computing to cloud infrastructures and its continued importance in the development of modern devices.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://substack.com/home/post/p-150506520"&gt;Best Practices for Bulk Optimization of Queries in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;After reading this article, you’ll learn about the techniques we use to analyze SQL query performance when dealing with millions of queries per day and monitoring hundreds of PostgreSQL servers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/loading-the-world-openstreetmap-import-in-under-4-hours"&gt;Loading the World! OpenStreetMap Import In Under 4 Hours&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The OpenStreetMap (OSM) database builds almost 750GB of location data from a single file download. OSM notoriously takes a full day to run. A fresh open street map load involves both a massive write process and large index builds. It is a great performance stress-test bulk load for any Postgres system. I use it to stress the latest PostgreSQL versions and state-of-the-art hardware. The stress test validates new tuning tricks and identifies performance regressions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/shricodev/build-your-personal-siri-with-llama-3-like-a-pro-5h1o"&gt;Build your own personal SIRI with LLAMA-3 like a PRO! &lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this easy-to-follow tutorial, you will learn how to build your own voice assistant Siri with the LLAMA-3 AI Model.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/"&gt;SRE deep dive into Linux Page Cache&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this series of articles, I would like to talk about Linux Page Cache. I believe that the following knowledge of the theory and tools is essential and crucial for every SRE. This understanding can help both in usual and routine everyday DevOps-like tasks and in emergency debugging and firefighting. Page Cache is often left unattended, and its better understanding leads to the following:&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.stephendiehl.com/posts/graphrag1/"&gt;Tiny GraphRAG (Part 1)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We&amp;rsquo;re going to build a tiny 1000 line implementation of a GraphRAG algorithm originally invented by Microsoft. I consistently hear people talk about this algorithm at meetups, but it appears there are several orders of magnitude of people talking about it than actually using it or implementing it. Likely because the reference implementation is enormous and rather complex. So let&amp;rsquo;s break it down and see if there&amp;rsquo;s any merit to the hype around this approach.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.timescale.com/blog/boosting-postgres-insert-performance/"&gt;Boosting Postgres INSERT Performance by 2x With UNNEST&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes"&gt;Why TCP needs 3 way handshakes&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;High-performance HTML5 parser for Ruby based on Lexbor, with support for both CSS selectors and XPath. A drop-in replacement for Nokogiri.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/danini-the-panini/mittsu" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mittsu&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Mittsu is a 3D Graphics Library for Ruby, based heavily on Three.js&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/destel/rill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rill&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go toolkit for clean, composable, channel-based concurrency&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EricSmekens/jsep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;jsep&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a simple expression parser written in JavaScript. It can parse JavaScript expressions but not operations. The difference between expressions and operations is akin to the difference between a cell in an Excel spreadsheet vs. a proper JavaScript program.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/micromark/micromark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micromark&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;small, safe, and great commonmark (optionally gfm) compliant markdown parser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/TutteInstitute/datamapplot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;datamapplot&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Creating beautiful plots of data maps&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/frectonz/pglite-fusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pglite-fusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Embed an SQLite database in your PostgreSQL table. AKA multitenancy has been solved.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://powa.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PoWA&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;performance tool compatible with all PostgreSQL versions (down to 9.4) allowing to collect, aggregate and purge statistics gathered from multiple PostgreSQL instances from various Stats Extensions.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yorukot/superfile" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;superfile&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pretty fancy and modern terminal file manager&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/SysSec-KAIST/LTESniffer" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LTESniffer&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An Open-source LTE Downlink/Uplink Eavesdropper&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dbohdan/memsparkline" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;memsparkline&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Track the RAM usage of a process and its descendants in real time&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/JustAman62/ovault" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ovault: Secure Vault for OAuth Credentials&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ovault is an open-source tool designed to securely store OAuth credentials for applications. It offers encrypted storage, helping developers manage sensitive tokens without compromising security.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Skyvern-AI/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Automate browser-based workflows with LLMs and Computer Vision&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://lexical.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lexical&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An extensible text editor framework that does things differently. At somepoint you would definetely need a JS text editor, having another option is great.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;提升开发链接 - 网络上的资源，帮助您成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎来到BetterDev的感恩节特辑。希望大家都度过了一个安全温暖的感恩节。最近天气变得越来越冷了。如果您身处战区，如乌克兰或加沙，我真心希望局势能够好转。&lt;/p&gt;
&lt;p&gt;本月AI领域发展迅速，涌现了许多令人惊叹的工具。我将其中许多添加到自托管部分，以帮助您尝试使用。&lt;/p&gt;
&lt;p&gt;如果您喜欢BetterDev，请通过分享给您的朋友来传播它。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://lcamtuf.substack.com/p/memory-the-forgotten-history"&gt;记忆：被遗忘的历史&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章探讨了计算机中内存的历史发展，从早期的存储创新到现代内存技术的演变。它回顾了被遗忘的内存历史里程碑及其对当前计算的影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://devblogs.microsoft.com/oldnewthing/20241112-00/?p=110507"&gt;为什么Windows 95安装使用三个操作系统？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为什么Windows 95安装会经过三个操作系统：MS-DOS、Windows 3.1，然后才是Windows 95？为什么不直接从MS-DOS跳到Windows 95？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://articles.foletta.org/post/2024-01-08-a-day-in-the-life-the-bgp-table/?utm_source=pocket_shared"&gt;一天的生活：全球BGP表&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;边界网关协议（BGP）是互联网的路由协议。它与邮局处理邮件的方式类似，BGP会选择最有效的路由来传递互联网流量。在本文中，我们将探索一天内的各种操作，关注一些荒谬的事情。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dotat.at/@/2024-10-22-tmp.html"&gt;反对/tmp&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用/tmp存储文件通常是个坏主意。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/topaz-policy-engine-design/"&gt;如何通过形式化验证防止权威DNS配置中的冲突&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;学习CloudFlare如何使用形式化验证来数学证明DNS地址行为的属性，即使Cloudflare的不同系统（由不同团队拥有）对应该返回的IP地址有矛盾的观点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.micron.com/about/blog/memory/dram/how-dram-changed-the-world"&gt;DRAM如何改变世界&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Micron的这篇博客文章探讨了DRAM（动态随机存取存储器）在技术演变中的变革作用。它突出了DRAM对个人计算、云基础设施以及现代设备开发的广泛影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://substack.com/home/post/p-150506520"&gt;PostgreSQL中批量优化查询的最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;阅读本文后，您将了解如何分析SQL查询性能，处理每天数百万个查询，并监控数百个PostgreSQL服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/loading-the-world-openstreetmap-import-in-under-4-hours"&gt;加载世界！在4小时内完成OpenStreetMap导入&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;OpenStreetMap（OSM）数据库从单个文件下载中构建近750GB的地理位置数据。OSM以耗时一天而著称。一次全新的OpenStreetMap加载涉及大规模的写入过程和大型索引构建。这是对任何Postgres系统的绝佳性能压力测试批量加载。我使用它来测试最新的PostgreSQL版本和最先进的硬件。压力测试验证了新的调优技巧，并识别了性能退化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/shricodev/build-your-personal-siri-with-llama-3-like-a-pro-5h1o"&gt;用LLAMA-3打造自己的个人SIRI（像专业人士一样！）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本易于跟随的教程中，您将学习如何使用LLAMA-3 AI模型构建自己的语音助手SIRI。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/"&gt;SRE深入探讨Linux Page Cache&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这一系列文章中，我想谈谈Linux Page Cache。我相信对理论和工具的理解对于每个SRE来说都是必不可少且至关重要的。这种理解可以帮助在日常的DevOps任务和紧急调试中。Page Cache通常被忽视，更好的理解将带来以下好处：&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.stephendiehl.com/posts/graphrag1/"&gt;微型GraphRAG（第一部分）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们将构建一个微型的1000行实现的GraphRAG算法，该算法最初由微软发明。我经常在聚会中听到人们谈论这个算法，但看起来有大量的人谈论它而不是实际使用或实现它。可能是因为参考实现非常庞大且复杂。因此，让我们分解它，看看这种方法的炒作是否有其价值。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.timescale.com/blog/boosting-postgres-insert-performance/"&gt;通过UNNEST提升Postgres插入性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes"&gt;为什么TCP需要三次握手&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Lexbor的高性能HTML5解析器，适用于Ruby，支持CSS选择器和XPath。可作为Nokogiri的替代品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/danini-the-panini/mittsu" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mittsu&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Mittsu是一个基于Three.js的Ruby 3D图形库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/destel/rill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rill&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go语言的工具包，用于实现干净、可组合、基于通道的并发&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EricSmekens/jsep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;jsep&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用JavaScript编写的简单表达式解析器。它可以解析JavaScript表达式，但不能解析操作。表达式和操作之间的区别类似于Excel电子表格中的单元格与真正的JavaScript程序之间的区别。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/micromark/micromark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micromark&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;小型、安全且符合通用标记（可选gfm）的Markdown解析器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TutteInstitute/datamapplot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;datamapplot&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;创建美丽的数据地图图表&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/frectonz/pglite-fusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pglite-fusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在您的PostgreSQL表中嵌入SQLite数据库。即多租户问题已解决。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://powa.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PoWA&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;兼容所有PostgreSQL版本（最低至9.4）的性能工具，允许收集、汇总和清除来自多个PostgreSQL实例的统计数据，这些数据来自各种统计扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yorukot/superfile" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;superfile&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个非常时尚且现代的终端文件管理器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SysSec-KAIST/LTESniffer" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LTESniffer&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源的LTE下行/上行窃听工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dbohdan/memsparkline" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;memsparkline&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;实时跟踪进程及其子进程的RAM使用情况&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JustAman62/ovault" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ovault: OAuth凭证的安全保险库&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ovault是一个开源工具，用于安全存储应用程序的OAuth凭证。它提供加密存储，帮助开发者管理敏感令牌而不影响安全性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Skyvern-AI/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用LLM和计算机视觉自动化基于浏览器的工作流&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lexical.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lexical&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个以不同方式运作的可扩展文本编辑器框架。在某个时候，您肯定需要一个JS文本编辑器，拥有另一个选择是很好的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/271"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to thanksgiving issue of BetterDev. Hope everyone had a safe and warm thanksgiving. It&amp;rsquo;s getting so cold these days. If you are in warzone such as Ukraina or Gaza, I really hope thing will become better.&lt;/p&gt;

&lt;p&gt;AI field has been evolve quite fast this month with a lot of amazing tooling. I added many of them in self-hosted section to help you try them out.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://lcamtuf.substack.com/p/memory-the-forgotten-history"&gt;Memory: The Forgotten History&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This article explores the historical development of memory in computing, from the early innovations in storage to the evolution of modern memory technologies. It reflects on the forgotten milestones in memory history and their impact on current computing.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://devblogs.microsoft.com/oldnewthing/20241112-00/?p=110507"&gt;Why did Windows 95 setup use three operating systems?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;why Windows 95 setup goes through three operating systems: MS-DOS, Windows 3.1, and then Windows 95. Why not go from MS-DOS straight to Windows 95?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://articles.foletta.org/post/2024-01-08-a-day-in-the-life-the-bgp-table/?utm_source=pocket_shared"&gt;A Day in the Life: The Global BGP Table&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Border Gateway Protocol (BGP) is the routing protocol for the Internet. Much like the post office processing mail, BGP picks the most efficient routes for delivering Internet traffic.  In this post, we&amp;rsquo;re exploring the intra-day shenanigans with an eye to finding some of the ridiculous things that go on out.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dotat.at/@/2024-10-22-tmp.html"&gt;against /tmp&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Why using /tmp to store file is a usually a bad idea.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.cloudflare.com/topaz-policy-engine-design/"&gt;How we prevent conflicts in authoritative DNS configuration using formal verification&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Learn how CloudFlare use formal verification to mathematically prove properties about DNS addressing behavior, even when different systems (owned by different teams) at Cloudflare have contradictory views on which IP addresses should be returned.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.micron.com/about/blog/memory/dram/how-dram-changed-the-world"&gt;How DRAM Changed the World&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This blog post from Micron explores the transformative role of DRAM (Dynamic Random Access Memory) in the evolution of technology. It highlights DRAM&amp;rsquo;s impact on everything from personal computing to cloud infrastructures and its continued importance in the development of modern devices.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://substack.com/home/post/p-150506520"&gt;Best Practices for Bulk Optimization of Queries in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;After reading this article, you’ll learn about the techniques we use to analyze SQL query performance when dealing with millions of queries per day and monitoring hundreds of PostgreSQL servers.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.crunchydata.com/blog/loading-the-world-openstreetmap-import-in-under-4-hours"&gt;Loading the World! OpenStreetMap Import In Under 4 Hours&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The OpenStreetMap (OSM) database builds almost 750GB of location data from a single file download. OSM notoriously takes a full day to run. A fresh open street map load involves both a massive write process and large index builds. It is a great performance stress-test bulk load for any Postgres system. I use it to stress the latest PostgreSQL versions and state-of-the-art hardware. The stress test validates new tuning tricks and identifies performance regressions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/shricodev/build-your-personal-siri-with-llama-3-like-a-pro-5h1o"&gt;Build your own personal SIRI with LLAMA-3 like a PRO! &lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this easy-to-follow tutorial, you will learn how to build your own voice assistant Siri with the LLAMA-3 AI Model.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/"&gt;SRE deep dive into Linux Page Cache&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this series of articles, I would like to talk about Linux Page Cache. I believe that the following knowledge of the theory and tools is essential and crucial for every SRE. This understanding can help both in usual and routine everyday DevOps-like tasks and in emergency debugging and firefighting. Page Cache is often left unattended, and its better understanding leads to the following:&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.stephendiehl.com/posts/graphrag1/"&gt;Tiny GraphRAG (Part 1)&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;We&amp;rsquo;re going to build a tiny 1000 line implementation of a GraphRAG algorithm originally invented by Microsoft. I consistently hear people talk about this algorithm at meetups, but it appears there are several orders of magnitude of people talking about it than actually using it or implementing it. Likely because the reference implementation is enormous and rather complex. So let&amp;rsquo;s break it down and see if there&amp;rsquo;s any merit to the hype around this approach.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.timescale.com/blog/boosting-postgres-insert-performance/"&gt;Boosting Postgres INSERT Performance by 2x With UNNEST&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes"&gt;Why TCP needs 3 way handshakes&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;High-performance HTML5 parser for Ruby based on Lexbor, with support for both CSS selectors and XPath. A drop-in replacement for Nokogiri.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/danini-the-panini/mittsu" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mittsu&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Mittsu is a 3D Graphics Library for Ruby, based heavily on Three.js&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/destel/rill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rill&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Go toolkit for clean, composable, channel-based concurrency&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/EricSmekens/jsep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;jsep&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a simple expression parser written in JavaScript. It can parse JavaScript expressions but not operations. The difference between expressions and operations is akin to the difference between a cell in an Excel spreadsheet vs. a proper JavaScript program.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/micromark/micromark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micromark&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;small, safe, and great commonmark (optionally gfm) compliant markdown parser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/TutteInstitute/datamapplot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;datamapplot&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Creating beautiful plots of data maps&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/frectonz/pglite-fusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pglite-fusion&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Embed an SQLite database in your PostgreSQL table. AKA multitenancy has been solved.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://powa.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PoWA&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;performance tool compatible with all PostgreSQL versions (down to 9.4) allowing to collect, aggregate and purge statistics gathered from multiple PostgreSQL instances from various Stats Extensions.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yorukot/superfile" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;superfile&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Pretty fancy and modern terminal file manager&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/SysSec-KAIST/LTESniffer" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LTESniffer&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An Open-source LTE Downlink/Uplink Eavesdropper&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dbohdan/memsparkline" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;memsparkline&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Track the RAM usage of a process and its descendants in real time&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/JustAman62/ovault" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ovault: Secure Vault for OAuth Credentials&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ovault is an open-source tool designed to securely store OAuth credentials for applications. It offers encrypted storage, helping developers manage sensitive tokens without compromising security.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Skyvern-AI/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Automate browser-based workflows with LLMs and Computer Vision&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://lexical.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lexical&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An extensible text editor framework that does things differently. At somepoint you would definetely need a JS text editor, having another option is great.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;提升开发链接 - 网络上的资源，帮助您成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎来到BetterDev的感恩节特辑。希望大家都度过了一个安全温暖的感恩节。最近天气变得越来越冷了。如果您身处战区，如乌克兰或加沙，我真心希望局势能够好转。&lt;/p&gt;
&lt;p&gt;本月AI领域发展迅速，涌现了许多令人惊叹的工具。我将其中许多添加到自托管部分，以帮助您尝试使用。&lt;/p&gt;
&lt;p&gt;如果您喜欢BetterDev，请通过分享给您的朋友来传播它。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://lcamtuf.substack.com/p/memory-the-forgotten-history"&gt;记忆：被遗忘的历史&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章探讨了计算机中内存的历史发展，从早期的存储创新到现代内存技术的演变。它回顾了被遗忘的内存历史里程碑及其对当前计算的影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://devblogs.microsoft.com/oldnewthing/20241112-00/?p=110507"&gt;为什么Windows 95安装使用三个操作系统？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;为什么Windows 95安装会经过三个操作系统：MS-DOS、Windows 3.1，然后才是Windows 95？为什么不直接从MS-DOS跳到Windows 95？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://articles.foletta.org/post/2024-01-08-a-day-in-the-life-the-bgp-table/?utm_source=pocket_shared"&gt;一天的生活：全球BGP表&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;边界网关协议（BGP）是互联网的路由协议。它与邮局处理邮件的方式类似，BGP会选择最有效的路由来传递互联网流量。在本文中，我们将探索一天内的各种操作，关注一些荒谬的事情。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dotat.at/@/2024-10-22-tmp.html"&gt;反对/tmp&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用/tmp存储文件通常是个坏主意。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.cloudflare.com/topaz-policy-engine-design/"&gt;如何通过形式化验证防止权威DNS配置中的冲突&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;学习CloudFlare如何使用形式化验证来数学证明DNS地址行为的属性，即使Cloudflare的不同系统（由不同团队拥有）对应该返回的IP地址有矛盾的观点。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.micron.com/about/blog/memory/dram/how-dram-changed-the-world"&gt;DRAM如何改变世界&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Micron的这篇博客文章探讨了DRAM（动态随机存取存储器）在技术演变中的变革作用。它突出了DRAM对个人计算、云基础设施以及现代设备开发的广泛影响。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://substack.com/home/post/p-150506520"&gt;PostgreSQL中批量优化查询的最佳实践&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;阅读本文后，您将了解如何分析SQL查询性能，处理每天数百万个查询，并监控数百个PostgreSQL服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crunchydata.com/blog/loading-the-world-openstreetmap-import-in-under-4-hours"&gt;加载世界！在4小时内完成OpenStreetMap导入&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;OpenStreetMap（OSM）数据库从单个文件下载中构建近750GB的地理位置数据。OSM以耗时一天而著称。一次全新的OpenStreetMap加载涉及大规模的写入过程和大型索引构建。这是对任何Postgres系统的绝佳性能压力测试批量加载。我使用它来测试最新的PostgreSQL版本和最先进的硬件。压力测试验证了新的调优技巧，并识别了性能退化。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/shricodev/build-your-personal-siri-with-llama-3-like-a-pro-5h1o"&gt;用LLAMA-3打造自己的个人SIRI（像专业人士一样！）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本易于跟随的教程中，您将学习如何使用LLAMA-3 AI模型构建自己的语音助手SIRI。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/"&gt;SRE深入探讨Linux Page Cache&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在这一系列文章中，我想谈谈Linux Page Cache。我相信对理论和工具的理解对于每个SRE来说都是必不可少且至关重要的。这种理解可以帮助在日常的DevOps任务和紧急调试中。Page Cache通常被忽视，更好的理解将带来以下好处：&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.stephendiehl.com/posts/graphrag1/"&gt;微型GraphRAG（第一部分）&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;我们将构建一个微型的1000行实现的GraphRAG算法，该算法最初由微软发明。我经常在聚会中听到人们谈论这个算法，但看起来有大量的人谈论它而不是实际使用或实现它。可能是因为参考实现非常庞大且复杂。因此，让我们分解它，看看这种方法的炒作是否有其价值。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.timescale.com/blog/boosting-postgres-insert-performance/"&gt;通过UNNEST提升Postgres插入性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes"&gt;为什么TCP需要三次握手&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/serpapi/nokolexbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nokolexbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Lexbor的高性能HTML5解析器，适用于Ruby，支持CSS选择器和XPath。可作为Nokogiri的替代品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/danini-the-panini/mittsu" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;mittsu&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Mittsu是一个基于Three.js的Ruby 3D图形库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/destel/rill" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rill&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go语言的工具包，用于实现干净、可组合、基于通道的并发&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/EricSmekens/jsep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;jsep&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用JavaScript编写的简单表达式解析器。它可以解析JavaScript表达式，但不能解析操作。表达式和操作之间的区别类似于Excel电子表格中的单元格与真正的JavaScript程序之间的区别。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/micromark/micromark" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;micromark&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;小型、安全且符合通用标记（可选gfm）的Markdown解析器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TutteInstitute/datamapplot" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;datamapplot&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;创建美丽的数据地图图表&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/frectonz/pglite-fusion" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pglite-fusion&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在您的PostgreSQL表中嵌入SQLite数据库。即多租户问题已解决。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://powa.readthedocs.io/en/latest/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;PoWA&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;兼容所有PostgreSQL版本（最低至9.4）的性能工具，允许收集、汇总和清除来自多个PostgreSQL实例的统计数据，这些数据来自各种统计扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yorukot/superfile" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;superfile&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个非常时尚且现代的终端文件管理器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SysSec-KAIST/LTESniffer" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LTESniffer&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个开源的LTE下行/上行窃听工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dbohdan/memsparkline" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;memsparkline&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;实时跟踪进程及其子进程的RAM使用情况&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JustAman62/ovault" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ovault: OAuth凭证的安全保险库&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ovault是一个开源工具，用于安全存储应用程序的OAuth凭证。它提供加密存储，帮助开发者管理敏感令牌而不影响安全性。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Skyvern-AI/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用LLM和计算机视觉自动化基于浏览器的工作流&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lexical.dev/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lexical&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个以不同方式运作的可扩展文本编辑器框架。在某个时候，您肯定需要一个JS文本编辑器，拥有另一个选择是很好的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-11-26T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/270</id>
    <title>Issues #270 Oct 21, 2024 || 

问题 #270 2024年10月21日</title>
    <updated>2024-10-21T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev! This week I come across Colmi, a smart ring where you can write your own software to interact with it. It&amp;rsquo;s also have a &lt;a href="https://www.aliexpress.us/item/3256806445134241.html?gatewayAdapt=glo2usa4itemAdapt"&gt;$12.51 deal on AliExpress&lt;/a&gt; so very affordable to toy around with hardware.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;WarpStream Makes Apache Kafka Simpler and More Affordable&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WarpStream is a drop-in replacement for Apache Kafka that has no interzone networking fees, no disks to manage and requires zero cross-account IAM access, so raw data never leaves your environment. You&amp;rsquo;ll never again have to do things like partition or broker rebalancing, deal with snapshot replication issues or worry about over-provisioning, as auto-scaling is automatic and you&amp;rsquo;re always right-sized. Join customers that have saved over 80% by replacing self-hosted Kafka and MSK with WarpStream. &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;Sign up for a free WarpStream account and get $400 in credits that never expire&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://citizenlab.ca/2024/10/should-we-chat-too-security-analysis-of-wechats-mmtls-encryption-protocol/"&gt;Should We Chat, Too? Security Analysis of WeChat’s MMTLS Encryption Protocol&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The first public analysis of the security and privacy properties of MMTLS, the main network protocol used by WeChat, an app with over one billion monthly active users. While they were unable to develop an attack to completely defeat WeChat’s encryption, the implementation is inconsistent with the level of cryptography you would expect in an app used by a billion users, such as its use of deterministic IVs and lack of forward secrecy.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tahnok.github.io/colmi_r02_client/colmi_r02_client.html#what-is-the-colmi-r02"&gt;Open source python client to read your data from the Colmi R02 family of Smart Rings&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Colmi is a cheap (as in $20) &amp;ldquo;smart ring&amp;rdquo; / fitness wearable that includes the following sensors: Accelerometer, sleep tracking, gestures, heart rate and blood oxygen. The coolest thing is you can write your own client to interact with it through bluetooth.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dri.es/my-solar-powered-and-self-hosted-website"&gt;solar-powered and self-hosted website&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How cool it&amp;rsquo;s to setup a website run on solar powered at home? Follow this journey.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.uber.com/en-JO/blog/upgrading-ubers-mysql-fleet"&gt;Upgrading Uber’s MySQL Fleet  to version 8.0&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Uber upgraded their databae from 5.7 to 8.0. If you had use Uber app, you can use the app is no joke. Routing driver, provide real time upgrade etc. A very complicated app. The strategy that they used to upgraded it is worth a read for us. One important point is not being able to rollback once a v8.0 node is promoted to primary. There is risk and they careful testing to accept that risk.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://briandouglas.ie/sqlite-defaults/"&gt;Sensible SQLite defaults&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;SQLite got a lot of attention recently. If you ever try to use it for some high load you most likely disappointed at its performance. In this post we will look at a few sensible default to help that.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mindhub365.com/sql/postgresql-streaming-replication-wal-what-it-is-and-how-to-configure-one"&gt;PostgreSQL Streaming Replication (WAL); What It Is And How To Configure One&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/dealing-with-trigger-recursion-in-postgresql/"&gt;Dealing with trigger recursion in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Many a beginner falls into the trap of trigger recursion at some point. Usually, the solution is to avoid recursion at all. But for some use cases, you may have to handle trigger recursion. This article tells you what you need to know about the topic. If you were ever troubled by the error message “stack depth limit exceeded”, here is the solution.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://xata.io/blog/migrations-and-exclusive-locks"&gt;Schema changes and the Postgres lock queue&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are two classes of breakage that can occur when applying database migrations: Migrations that make incompatible changes to the schema, breaking client applications, Migrations that lock a database object for an unacceptable amount of time, causing the application to become unavailable as reads and writes start to fail.
Today we&amp;rsquo;re going to talk about the second type of breakage: how long running queries together with DDL statements can lock out reads and writes from a table, causing application downtime.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jpetazzo.github.io/2024/05/12/understanding-kubernetes-dns-hostnetwork-dnspolicy-dnsconfigforming/"&gt;Understanding DNS resolution on Linux and Kubernetes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Resolve DNS on k8s is a bit messy. For convenience there is a few way to hit a servie with just a name, a name and namespace or the cluster domain. What is the rule there?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.orhun.dev/cant-trust-any-vpn/"&gt;Fixing a DNS leak in OpenVPN setup&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;After Turkey banned Discord, I had to jump through some hoops, fix my VPN, and learn a bit about how DNS works. Today I&amp;rsquo;m here to share what I have learned while trying to&amp;hellip; you know. Find a way to use Discord again. Surprisingly, this ban ended up being a positive experience for me.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/jagroop2001/building-a-chat-with-pdfs-using-pinataopenai-and-streamlit-3jb7"&gt;Chat with your PDF using Pinata,OpenAI and Streamlit&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this tutorial, we’ll build a simple chat interface that allows users to upload a PDF, retrieve its content using OpenAI’s API, and display the responses in a chat-like interface using Streamlit. W&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/denko-rb/denko" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;denko&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Electronics programming in Ruby&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ratatui/ratatui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ratatui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rust crate for cooking up terminal user interfaces (TUIs)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Melkeydev/go-blueprint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-blueprint&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;allows users to spin up a quick Go project using a popular framework&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/AChep/keyguard-app" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Keyguard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;With new of Bitwarden moving to close source, this is an alternative client for the Bitwarden® platform, created to provide the best user experience possible.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/openvmm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;openvmm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a modular, cross-platform, general-purpose Virtual Machine Monitor (VMM), written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fujiapple852/trippy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trippy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Trippy combines the functionality of traceroute and ping and is designed to assist with the analysis of networking issues.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgroonga/pgroonga" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgroonga&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a PostgreSQL extension to use Groonga as index. PGroonga makes PostgreSQL fast full text search platform for all languages!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-postgres-and-parquet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_parquet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever want a way to export and load parquet file like how BigQuery does it, this finally happens for PostgreSQL.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/julep-ai/julep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;julep&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A new DSL and server for AI agents and multi-step tasks&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读 BetterDev 的又一期内容！本周我遇到了 Colmi，这是一个智能戒指，你可以编写自己的软件来与它交互。它在 AliExpress 上还有一个 &lt;a href="https://www.aliexpress.us/item/3256806445134241.html?gatewayAdapt=glo2usa4itemAdapt"&gt;$12.51 的优惠&lt;/a&gt;，因此非常实惠，可以随意尝试硬件。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt; 将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;WarpStream 使 Apache Kafka 更简单且更实惠&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;WarpStream 是 Apache Kafka 的即插即用替代品，没有跨区域网络费用，不需要管理磁盘，也不需要跨账户 IAM 访问权限，因此原始数据永远不会离开你的环境。你将不再需要做诸如分区或代理重新平衡、处理快照复制问题或担心过度配置之类的事情，因为自动扩展是自动的，你始终处于最佳规模。加入那些通过将自托管 Kafka 和 MSK 替换为 WarpStream 而节省超过 80% 的客户。 &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;注册一个免费的 WarpStream 账户，获取永不到期的 $400 信用额度&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://citizenlab.ca/2024/10/should-we-chat-too-security-analysis-of-wechats-mmtls-encryption-protocol/"&gt;Should We Chat, Too? WeChat 的 MMTLS 加密协议安全性分析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是首次公开分析 WeChat 主要网络协议 MMTLS 的安全性和隐私特性，WeChat 是一款拥有超过十亿月活跃用户的 App。虽然他们未能开发出完全破解 WeChat 加密的攻击方法，但其实施与你期望在十亿用户使用的 App 中的加密级别不一致，例如其使用确定性 IV 和缺乏前向保密。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tahnok.github.io/colmi_r02_client/colmi_r02_client.html#what-is-the-colmi-r02"&gt;开源 Python 客户端，用于读取 Colmi R02 家族智能戒指的数据&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Colmi 是一款价格低廉（即 $20）的“智能戒指”/健身可穿戴设备，包含以下传感器：加速度计、睡眠追踪、手势识别、心率和血氧。最酷的是你可以通过蓝牙编写自己的客户端来与它交互。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dri.es/my-solar-powered-and-self-hosted-website"&gt;太阳能供电并自托管的网站&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在家中搭建一个运行在太阳能供电上的网站有多酷？跟随这个旅程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.uber.com/en-JO/blog/upgrading-ubers-mysql-fleet"&gt;升级 Uber 的 MySQL 集群到 8.0 版本&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Uber 将他们的数据库从 5.7 升级到 8.0。如果你使用过 Uber 应用，你会发现这个应用确实很强大。路由司机、提供实时升级等。这是一个非常复杂的应用。他们升级的策略值得我们阅读。一个重要点是，一旦 v8.0 节点被提升为主节点，就无法回滚。存在风险，但他们进行了谨慎的测试以接受这种风险。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://briandouglas.ie/sqlite-defaults/"&gt;合理的 SQLite 默认设置&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SQLite 最近受到了很多关注。如果你曾经尝试用它处理高负载，很可能会对它的性能感到失望。在本文中，我们将探讨一些合理的默认设置来帮助改善这一情况。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mindhub365.com/sql/postgresql-streaming-replication-wal-what-it-is-and-how-to-configure-one"&gt;PostgreSQL 流式复制（WAL）；什么是它以及如何配置&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/dealing-with-trigger-recursion-in-postgresql/"&gt;处理 PostgreSQL 中的触发器递归&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;许多初学者在某个时候会陷入触发器递归的陷阱。通常，解决方案是完全避免递归。但对于某些用例，你可能需要处理触发器递归。本文将告诉你关于这个主题所需的知识。如果你曾经被错误信息“堆栈深度限制超过”困扰，这里就是解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xata.io/blog/migrations-and-exclusive-locks"&gt;模式更改与 PostgreSQL 锁队列&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在应用数据库迁移时，可能发生两种类型的破坏：对模式进行不兼容更改的迁移，破坏客户端应用；以及锁定数据库对象时间过长的迁移，导致应用因读写失败而不可用。
今天我们将讨论第二种类型的破坏：长时间运行的查询与 DDL 语句如何阻止对表的读写，导致应用停机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jpetazzo.github.io/2024/05/12/understanding-kubernetes-dns-hostnetwork-dnspolicy-dnsconfigforming/"&gt;理解 Linux 和 Kubernetes 上的 DNS 解析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 Kubernetes 上解析 DNS 有点混乱。为了方便，有一些方法可以通过名称、名称和命名空间或集群域来访问服务。规则是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.orhun.dev/cant-trust-any-vpn/"&gt;修复 OpenVPN 设置中的 DNS 泄漏&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在土耳其禁止 Discord 后，我不得不经历一些麻烦，修复我的 VPN 并学习一些关于 DNS 的知识。今天我来分享我在尝试……你知道的。找到再次使用 Discord 的方法过程中所学到的内容。令人惊讶的是，这个禁令最终成为我一次积极的体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/jagroop2001/building-a-chat-with-pdfs-using-pinataopenai-and-streamlit-3jb7"&gt;使用 Pinata、OpenAI 和 Streamlit 构建 PDF 聊天&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本教程中，我们将构建一个简单的聊天界面，允许用户上传 PDF，使用 OpenAI 的 API 提取其内容，并使用 Streamlit 在聊天式界面中显示响应。 W&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/denko-rb/denko" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;denko&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby 电子编程&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ratatui/ratatui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ratatui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于构建终端用户界面（TUI）的 Rust 库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Melkeydev/go-blueprint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-blueprint&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;允许用户使用流行框架快速启动一个 Go 项目&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/AChep/keyguard-app" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Keyguard&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;随着 Bitwarden 转向闭源，这是 Bitwarden® 平台的一个替代客户端，旨在提供最佳用户体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/openvmm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;openvmm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个模块化、跨平台、通用的虚拟机监视器（VMM），用 Rust 编写。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fujiapple852/trippy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trippy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Trippy 结合了 traceroute 和 ping 的功能，旨在帮助分析网络问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgroonga/pgroonga" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgroonga&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 扩展，使用 Groonga 作为索引。PGroonga 使 PostgreSQL 成为所有语言的快速全文搜索平台！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-postgres-and-parquet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_parquet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你曾经想要一种方法来导出和加载 parquet 文件，就像 BigQuery 那样，这终于在 PostgreSQL 上实现了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/julep-ai/julep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;julep&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 AI 代理和多步骤任务的新 DSL 和服务器&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/270"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev! This week I come across Colmi, a smart ring where you can write your own software to interact with it. It&amp;rsquo;s also have a &lt;a href="https://www.aliexpress.us/item/3256806445134241.html?gatewayAdapt=glo2usa4itemAdapt"&gt;$12.51 deal on AliExpress&lt;/a&gt; so very affordable to toy around with hardware.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;WarpStream Makes Apache Kafka Simpler and More Affordable&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WarpStream is a drop-in replacement for Apache Kafka that has no interzone networking fees, no disks to manage and requires zero cross-account IAM access, so raw data never leaves your environment. You&amp;rsquo;ll never again have to do things like partition or broker rebalancing, deal with snapshot replication issues or worry about over-provisioning, as auto-scaling is automatic and you&amp;rsquo;re always right-sized. Join customers that have saved over 80% by replacing self-hosted Kafka and MSK with WarpStream. &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;Sign up for a free WarpStream account and get $400 in credits that never expire&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://citizenlab.ca/2024/10/should-we-chat-too-security-analysis-of-wechats-mmtls-encryption-protocol/"&gt;Should We Chat, Too? Security Analysis of WeChat’s MMTLS Encryption Protocol&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;The first public analysis of the security and privacy properties of MMTLS, the main network protocol used by WeChat, an app with over one billion monthly active users. While they were unable to develop an attack to completely defeat WeChat’s encryption, the implementation is inconsistent with the level of cryptography you would expect in an app used by a billion users, such as its use of deterministic IVs and lack of forward secrecy.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tahnok.github.io/colmi_r02_client/colmi_r02_client.html#what-is-the-colmi-r02"&gt;Open source python client to read your data from the Colmi R02 family of Smart Rings&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Colmi is a cheap (as in $20) &amp;ldquo;smart ring&amp;rdquo; / fitness wearable that includes the following sensors: Accelerometer, sleep tracking, gestures, heart rate and blood oxygen. The coolest thing is you can write your own client to interact with it through bluetooth.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dri.es/my-solar-powered-and-self-hosted-website"&gt;solar-powered and self-hosted website&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;How cool it&amp;rsquo;s to setup a website run on solar powered at home? Follow this journey.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.uber.com/en-JO/blog/upgrading-ubers-mysql-fleet"&gt;Upgrading Uber’s MySQL Fleet  to version 8.0&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Uber upgraded their databae from 5.7 to 8.0. If you had use Uber app, you can use the app is no joke. Routing driver, provide real time upgrade etc. A very complicated app. The strategy that they used to upgraded it is worth a read for us. One important point is not being able to rollback once a v8.0 node is promoted to primary. There is risk and they careful testing to accept that risk.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://briandouglas.ie/sqlite-defaults/"&gt;Sensible SQLite defaults&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;SQLite got a lot of attention recently. If you ever try to use it for some high load you most likely disappointed at its performance. In this post we will look at a few sensible default to help that.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://mindhub365.com/sql/postgresql-streaming-replication-wal-what-it-is-and-how-to-configure-one"&gt;PostgreSQL Streaming Replication (WAL); What It Is And How To Configure One&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.cybertec-postgresql.com/en/dealing-with-trigger-recursion-in-postgresql/"&gt;Dealing with trigger recursion in PostgreSQL&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Many a beginner falls into the trap of trigger recursion at some point. Usually, the solution is to avoid recursion at all. But for some use cases, you may have to handle trigger recursion. This article tells you what you need to know about the topic. If you were ever troubled by the error message “stack depth limit exceeded”, here is the solution.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://xata.io/blog/migrations-and-exclusive-locks"&gt;Schema changes and the Postgres lock queue&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are two classes of breakage that can occur when applying database migrations: Migrations that make incompatible changes to the schema, breaking client applications, Migrations that lock a database object for an unacceptable amount of time, causing the application to become unavailable as reads and writes start to fail.
Today we&amp;rsquo;re going to talk about the second type of breakage: how long running queries together with DDL statements can lock out reads and writes from a table, causing application downtime.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jpetazzo.github.io/2024/05/12/understanding-kubernetes-dns-hostnetwork-dnspolicy-dnsconfigforming/"&gt;Understanding DNS resolution on Linux and Kubernetes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Resolve DNS on k8s is a bit messy. For convenience there is a few way to hit a servie with just a name, a name and namespace or the cluster domain. What is the rule there?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.orhun.dev/cant-trust-any-vpn/"&gt;Fixing a DNS leak in OpenVPN setup&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;After Turkey banned Discord, I had to jump through some hoops, fix my VPN, and learn a bit about how DNS works. Today I&amp;rsquo;m here to share what I have learned while trying to&amp;hellip; you know. Find a way to use Discord again. Surprisingly, this ban ended up being a positive experience for me.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://dev.to/jagroop2001/building-a-chat-with-pdfs-using-pinataopenai-and-streamlit-3jb7"&gt;Chat with your PDF using Pinata,OpenAI and Streamlit&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In this tutorial, we’ll build a simple chat interface that allows users to upload a PDF, retrieve its content using OpenAI’s API, and display the responses in a chat-like interface using Streamlit. W&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/denko-rb/denko" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;denko&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Electronics programming in Ruby&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ratatui/ratatui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ratatui&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Rust crate for cooking up terminal user interfaces (TUIs)&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Melkeydev/go-blueprint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-blueprint&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;allows users to spin up a quick Go project using a popular framework&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/AChep/keyguard-app" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Keyguard&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;With new of Bitwarden moving to close source, this is an alternative client for the Bitwarden® platform, created to provide the best user experience possible.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/microsoft/openvmm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;openvmm&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a modular, cross-platform, general-purpose Virtual Machine Monitor (VMM), written in Rust.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fujiapple852/trippy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trippy&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Trippy combines the functionality of traceroute and ping and is designed to assist with the analysis of networking issues.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pgroonga/pgroonga" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgroonga&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a PostgreSQL extension to use Groonga as index. PGroonga makes PostgreSQL fast full text search platform for all languages!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-postgres-and-parquet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_parquet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;If you ever want a way to export and load parquet file like how BigQuery does it, this finally happens for PostgreSQL.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/julep-ai/julep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;julep&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A new DSL and server for AI agents and multi-step tasks&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的资源，帮助成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读 BetterDev 的又一期内容！本周我遇到了 Colmi，这是一个智能戒指，你可以编写自己的软件来与它交互。它在 AliExpress 上还有一个 &lt;a href="https://www.aliexpress.us/item/3256806445134241.html?gatewayAdapt=glo2usa4itemAdapt"&gt;$12.51 的优惠&lt;/a&gt;，因此非常实惠，可以随意尝试硬件。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请通过分享给朋友来传播它。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt; 将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;WarpStream 使 Apache Kafka 更简单且更实惠&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;WarpStream 是 Apache Kafka 的即插即用替代品，没有跨区域网络费用，不需要管理磁盘，也不需要跨账户 IAM 访问权限，因此原始数据永远不会离开你的环境。你将不再需要做诸如分区或代理重新平衡、处理快照复制问题或担心过度配置之类的事情，因为自动扩展是自动的，你始终处于最佳规模。加入那些通过将自托管 Kafka 和 MSK 替换为 WarpStream 而节省超过 80% 的客户。 &lt;a href="https://www.vpdae.com/redirect/okr0k9668lwao4gzt0sed1romcv"&gt;注册一个免费的 WarpStream 账户，获取永不到期的 $400 信用额度&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://citizenlab.ca/2024/10/should-we-chat-too-security-analysis-of-wechats-mmtls-encryption-protocol/"&gt;Should We Chat, Too? WeChat 的 MMTLS 加密协议安全性分析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这是首次公开分析 WeChat 主要网络协议 MMTLS 的安全性和隐私特性，WeChat 是一款拥有超过十亿月活跃用户的 App。虽然他们未能开发出完全破解 WeChat 加密的攻击方法，但其实施与你期望在十亿用户使用的 App 中的加密级别不一致，例如其使用确定性 IV 和缺乏前向保密。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tahnok.github.io/colmi_r02_client/colmi_r02_client.html#what-is-the-colmi-r02"&gt;开源 Python 客户端，用于读取 Colmi R02 家族智能戒指的数据&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Colmi 是一款价格低廉（即 $20）的“智能戒指”/健身可穿戴设备，包含以下传感器：加速度计、睡眠追踪、手势识别、心率和血氧。最酷的是你可以通过蓝牙编写自己的客户端来与它交互。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dri.es/my-solar-powered-and-self-hosted-website"&gt;太阳能供电并自托管的网站&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在家中搭建一个运行在太阳能供电上的网站有多酷？跟随这个旅程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.uber.com/en-JO/blog/upgrading-ubers-mysql-fleet"&gt;升级 Uber 的 MySQL 集群到 8.0 版本&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Uber 将他们的数据库从 5.7 升级到 8.0。如果你使用过 Uber 应用，你会发现这个应用确实很强大。路由司机、提供实时升级等。这是一个非常复杂的应用。他们升级的策略值得我们阅读。一个重要点是，一旦 v8.0 节点被提升为主节点，就无法回滚。存在风险，但他们进行了谨慎的测试以接受这种风险。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://briandouglas.ie/sqlite-defaults/"&gt;合理的 SQLite 默认设置&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SQLite 最近受到了很多关注。如果你曾经尝试用它处理高负载，很可能会对它的性能感到失望。在本文中，我们将探讨一些合理的默认设置来帮助改善这一情况。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://mindhub365.com/sql/postgresql-streaming-replication-wal-what-it-is-and-how-to-configure-one"&gt;PostgreSQL 流式复制（WAL）；什么是它以及如何配置&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cybertec-postgresql.com/en/dealing-with-trigger-recursion-in-postgresql/"&gt;处理 PostgreSQL 中的触发器递归&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;许多初学者在某个时候会陷入触发器递归的陷阱。通常，解决方案是完全避免递归。但对于某些用例，你可能需要处理触发器递归。本文将告诉你关于这个主题所需的知识。如果你曾经被错误信息“堆栈深度限制超过”困扰，这里就是解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xata.io/blog/migrations-and-exclusive-locks"&gt;模式更改与 PostgreSQL 锁队列&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在应用数据库迁移时，可能发生两种类型的破坏：对模式进行不兼容更改的迁移，破坏客户端应用；以及锁定数据库对象时间过长的迁移，导致应用因读写失败而不可用。
今天我们将讨论第二种类型的破坏：长时间运行的查询与 DDL 语句如何阻止对表的读写，导致应用停机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jpetazzo.github.io/2024/05/12/understanding-kubernetes-dns-hostnetwork-dnspolicy-dnsconfigforming/"&gt;理解 Linux 和 Kubernetes 上的 DNS 解析&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 Kubernetes 上解析 DNS 有点混乱。为了方便，有一些方法可以通过名称、名称和命名空间或集群域来访问服务。规则是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.orhun.dev/cant-trust-any-vpn/"&gt;修复 OpenVPN 设置中的 DNS 泄漏&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在土耳其禁止 Discord 后，我不得不经历一些麻烦，修复我的 VPN 并学习一些关于 DNS 的知识。今天我来分享我在尝试……你知道的。找到再次使用 Discord 的方法过程中所学到的内容。令人惊讶的是，这个禁令最终成为我一次积极的体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/jagroop2001/building-a-chat-with-pdfs-using-pinataopenai-and-streamlit-3jb7"&gt;使用 Pinata、OpenAI 和 Streamlit 构建 PDF 聊天&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在本教程中，我们将构建一个简单的聊天界面，允许用户上传 PDF，使用 OpenAI 的 API 提取其内容，并使用 Streamlit 在聊天式界面中显示响应。 W&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/denko-rb/denko" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;denko&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby 电子编程&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ratatui/ratatui" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ratatui&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于构建终端用户界面（TUI）的 Rust 库&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Melkeydev/go-blueprint" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-blueprint&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;允许用户使用流行框架快速启动一个 Go 项目&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/AChep/keyguard-app" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;Keyguard&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;随着 Bitwarden 转向闭源，这是 Bitwarden® 平台的一个替代客户端，旨在提供最佳用户体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/openvmm" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;openvmm&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个模块化、跨平台、通用的虚拟机监视器（VMM），用 Rust 编写。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fujiapple852/trippy" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;trippy&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Trippy 结合了 traceroute 和 ping 的功能，旨在帮助分析网络问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgroonga/pgroonga" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgroonga&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 PostgreSQL 扩展，使用 Groonga 作为索引。PGroonga 使 PostgreSQL 成为所有语言的快速全文搜索平台！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-postgres-and-parquet" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pg_parquet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;如果你曾经想要一种方法来导出和加载 parquet 文件，就像 BigQuery 那样，这终于在 PostgreSQL 上实现了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/julep-ai/julep" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;julep&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于 AI 代理和多步骤任务的新 DSL 和服务器&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-10-21T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/269</id>
    <title>Issues #269 Oct 14, 2024 || 

问题 #269 2024年10月14日</title>
    <updated>2024-10-14T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev! I&amp;rsquo;ve been exploring LLMs more and, while they&amp;rsquo;re not perfect or likely to replace programming jobs, they&amp;rsquo;re great for pattern recognition and repetitive tasks. I see LLMs becoming as common as email, with most people using providers and a few hosting their own. That&amp;rsquo;s why I&amp;rsquo;m sharing more LLM content, focusing on first principles to help programmers understand and build them from scratch.&lt;/p&gt;

&lt;p&gt;Don&amp;rsquo;t worry, this newsletter isn&amp;rsquo;t turning into AI &amp;ldquo;hype.&amp;rdquo; I simply want to share useful tools and insights with our audience&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;Seamlessly Integrate Product Usage Insights with Your Customer Data&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Unlock unparalleled insights with the improved Amplitude app for HubSpot. This integration empowers you to seamlessly sync user data and behavior insights, ensuring real-time analytics at your fingertips. Elevate your customer engagement with advanced segmentation, allowing marketers to identify product qualified leads. &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;Try the app and start optimizing your strategies today&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@msouza.os/llm-from-scratch-with-pytorch-9f21808c6319"&gt;LLM from scratch with Pytorch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever feel overwhelm with all the news about LLM? what is these 70B 4B or 3.5 4.0? Or when you go and check out the code of some project, it&amp;rsquo;s super short and simple, where is the logic?
In this link, we go back to that root to understand how to build an LLM by using Pytorch.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gwolf.org/2024/10/started-a-guide-to-writing-fuse-filesystems-in-python.html"&gt;Started a guide to writing FUSE filesystems in Python&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever feel like iCloud drive, Google Drive or Dropbox app is magic? What power them? It&amp;rsquo;s pretty much FUSE behind the scene. Can we turn random data available through RPC into a file system?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://brokencloudstorage.info/"&gt;End-to-End Encrypted Cloud Storage in the Wild: A Broken Ecosystem&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Cloud storage is ubiquitous: Google Drive, Dropbox, and OneDrive are household names. However, these services do not provide end-to-end encryption (E2EE), meaning that the provider has access to the data stored on their servers. The promise of end-to-end encrypted cloud storage is that users can have the best of both worlds, keeping control of their data using cryptographic techniques, while still benefiting from low-cost storage solutions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kylezhe.ng/posts/crafting_qr_codes"&gt;Crafting qr codes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;QRCode is everywhere nowsaday. However, they doesn&amp;rsquo;t need to be just square black and white box. How can we generate QRcode that looks artsy while still readable to the decoder?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://imbue.com/research/70b-infrastructure/"&gt;From bare metal to a 70B model: infrastructure set-up and scripts&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;With a small team and in a few monthes, imblue trained a 70B parameter model from scratch on their own infrastructure that outperformed zero-shot GPT-4o on reasoning-related tasks. They&amp;rsquo;re sharing an end-to-end guide for setting up the required infrastructure: from bringing up the initial cluster and installing the OS, to automatically recovering from errors encountered during training.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://r.ena.to/blog/optimizing-postgres-table-layout-for-maximum-efficiency/"&gt;Optimizing Postgres table layout for maximum efficiency&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;what if I told you that simply reordering your columns could reduce the size of your tables and indexes by 20%? This isn’t some obscure database trick — it’s a direct result of how Postgres aligns data on disk.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ngrok.com/blog-post/how-we-built-ngroks-data-platform"&gt;How ngrok build their data platform&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This article is a look at how ngrok, a platform to enable you expose local service on your laptop to internet, built their data platform. Given their team size of 1 engineer, this maybe more useful and relevant to us more than scale of big corp(where there are hundred engineers building a data platform).&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pthorpe92.dev/programming/systems/threads-async-runtimes-part0/"&gt;Confusing or misunderstood topics in systems programming&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Threads and the general concept of concurrency are among the most widely misunderstood and confusing topics for newer developers. This series is meant to help clarify some of these concepts and provide a better understanding of how they work.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://beeps.website/blog/2024-10-09-why-govuk-exit-this-page-doesnt-use-escape/"&gt;Why GOV.UK’s Exit this Page component doesn’t use the Escape key&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.superdurszlak.dev/posts/the-four-horsemen-of-network-communication/"&gt;The Four Horsemen of network communication&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blogsystem5.substack.com/p/dos-memory-models"&gt;Revisiting the DOS memory models&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://netflixtechblog.com/pushy-to-the-limit-evolving-netflixs-websocket-proxy-for-the-future-b468bc0ff658"&gt;Pushy to the Limit: Evolving Netflix’s WebSocket proxy for the future&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;a very high level discussion of how Netflix improve and evolve their websocket infrastructure to perform many kind of tasks. There isn&amp;rsquo;t much technical discussion on this post, but more about concept and system design.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ankane/neighbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;neighbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Nearest neighbor search for Rails.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zhengkyl/qrframe" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrframe&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;code-based qr code generator.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/photostructure/exiftool-vendored.js/tree/main?tab=readme-ov-file" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;exiftool-vendored.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast, cross-platform Node.js access to ExifTool.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zhengkyl/fuqr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fuqr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an awesome qr code generator in Rust. Go beyond the normal QR Code, it can generate animation QR code as well. By the same author of above qrframe package.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/samuel-vitorino/lm.rs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lm.rs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal LLM inference in Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/anordin95/run-llama-locally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;run-llama-locally&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Running Llama locally with minimal dependencies&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/azuline/rose" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rose&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A music manager with a virtual filesystem.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/andrearaponi/dito" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dito&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an advanced Layer 7 reverse proxy server written in Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://player.style/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;player.style&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Video and audio player themes built with Media Chrome, for every web player and every web app framework.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/stenzek/duckstation" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;duckstation&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;is an simulator/emulator of the Sony PlayStation&amp;trade; console, focusing on playability, speed, and long-term maintainability. The goal is to be as accurate as possible while maintaining performance suitable for low-end devices. &amp;ldquo;Hack&amp;rdquo; options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jdholtz/auto-southwest-check-in" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;auto-southwest-check-in&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Python script that automatically checks in to your Southwest flight 24 hours beforehand.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Stengo/DeskPad" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;DeskPad&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Certain workflows require sharing the entire screen (usually due to switching through multiple applications), but if the presenter has a much larger display than the audience it can be hard to see what is happening.
DeskPad creates a virtual display that is mirrored within its application window so that you can create a dedicated, easily shareable workspace.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/latentcat/qrbtf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrbtf&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;AI &amp;amp; parametric QR code generator. View the actualy deployment on &lt;a href="https://qrbtf.com/en"&gt;https://qrbtf.com&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sequinstream/sequin" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sequin&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Add streaming capabilities to Postgres.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gitbutlerapp/gitbutler" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gitbutler&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Git GUI branch management tool. Support Linux/Mac/Window. Build with Tauri/Rust/TypeScript so it won&amp;rsquo;t be as slow as Electron. If you&amp;rsquo;re a visual person, give it a try.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/theseus-rs/rsql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rsql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Command line interface for DuckDB, LibSQL, MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3 and SQL Server&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

Better Dev Link - 网络上的资源，帮助你成为更好的程序员
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎收看 BetterDev 的又一期内容！我最近在研究 LLMs，虽然它们并不完美，也不太可能取代编程工作，但它们在模式识别和重复任务方面非常有用。我看到 LLMs 正变得像电子邮件一样普遍，大多数人使用服务提供商，少数人则自己托管。这就是为什么我要分享更多关于 LLMs 的内容，专注于第一性原理，帮助程序员理解并从头构建它们。&lt;/p&gt;
&lt;p&gt;别担心，这期 newsletter 并不会变成 AI 的“炒作”。我只是想与我们的读者分享有用的工具和见解。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;将产品使用洞察无缝集成到客户数据中&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用改进后的 Amplitude 应用程序与 HubSpot 集成，解锁前所未有的洞察。这种集成使您能够无缝同步用户数据和行为洞察，确保实时分析触手可及。通过高级细分功能，提升客户参与度，让营销人员能够识别产品合格的潜在客户。 &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;尝试该应用，今天就开始优化您的策略&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@msouza.os/llm-from-scratch-with-pytorch-9f21808c6319"&gt;使用 PyTorch 从头开始构建 LLM&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾因关于 LLM 的所有新闻而感到不知所措？这些 70B、4B 或 3.5、4.0 是什么？或者当你查看某个项目的代码时，发现它非常简短且简单，逻辑在哪里？在这篇文章中，我们将回到根源，了解如何使用 PyTorch 构建一个 LLM。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gwolf.org/2024/10/started-a-guide-to-writing-fuse-filesystems-in-python.html"&gt;编写 Python 中的 FUSE 文件系统指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾觉得 iCloud Drive、Google Drive 或 Dropbox 应用是魔法？它们背后的力量是什么？实际上，它们背后是 FUSE。我们能否将通过 RPC 获取的随机数据转换为文件系统？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brokencloudstorage.info/"&gt;真实世界中的端到端加密云存储：一个破碎的生态系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;云存储无处不在：Google Drive、Dropbox 和 OneDrive 是家喻户晓的名字。然而，这些服务并未提供端到端加密（E2EE），这意味着服务提供商可以访问存储在他们服务器上的数据。端到端加密云存储的承诺是让用户能够掌握数据，同时还能享受低成本的存储解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pthorpe92.dev/programming/systems/threads-async-runtimes-part0/"&gt;系统编程中令人困惑或误解的主题&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;线程和并发的一般概念是新手开发者中最常误解和困惑的主题之一。本系列旨在澄清这些概念，提供更深入的理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://beeps.website/blog/2024-10-09-why-govuk-exit-this-page-doesnt-use-escape"&gt;为什么 GOV.UK 的 Exit this Page 组件不使用 Esc 键&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.superdurszlak.dev/posts/the-four-horsemen-of-network-communication/"&gt;网络通信的四大骑士&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blogsystem5.substack.com/p/dos-memory-models"&gt;重新审视 DOS 内存模型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://netflixtechblog.com/pushy-to-the-limit-evolving-netflixs-websocket-proxy-for-the-future-b468bc0ff658"&gt;Pushy 到极限：演进 Netflix 的 WebSocket 代理以面向未来&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章讨论了 Netflix 如何改进和演进他们的 WebSocket 基础设施以执行各种任务。这篇文章没有太多技术讨论，更多的是关于概念和系统设计。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ankane/neighbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;neighbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rails 中的最近邻搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zhengkyl/qrframe" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrframe&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于代码的二维码生成器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/photostructure/exiftool-vendored.js/tree/main?tab=readme-ov-file" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;exiftool-vendored.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速、跨平台的 Node.js ExifTool 访问方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zhengkyl/fuqr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fuqr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个强大的二维码生成器，用 Rust 编写。超越普通二维码，它还能生成动画二维码。由上述 qrframe 包的同一位作者开发。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/samuel-vitorino/lm.rs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lm.rs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rust 中的最小 LLM 推理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/anordin95/run-llama-locally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;run-llama-locally&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用最少依赖项在本地运行 Llama。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/azuline/rose" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rose&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个带有虚拟文件系统的音乐管理器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/andrearaponi/dito" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dito&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Go 编写的高级第 7 层反向代理服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://player.style/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;player.style&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用 Media Chrome 构建的视频和音频播放器主题，适用于每个网络播放器和每个网络应用框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/stenzek/duckstation" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;duckstation&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这是一个 Sony PlayStation™ 控制台的模拟器/游戏机，专注于可玩性、速度和长期可维护性。目标是在保持性能适合低端设备的同时尽可能准确。不鼓励“黑客”选项，默认配置应支持所有可玩游戏，只有部分增强功能可能存在兼容性问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jdholtz/auto-southwest-check-in" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;auto-southwest-check-in&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 脚本，可以自动在出发前 24 小时进行西南航空的登机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Stengo/DeskPad" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;DeskPad&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;某些工作流程需要共享整个屏幕（通常由于需要在多个应用程序之间切换），但如果演示者使用的显示器比观众的大，就很难看清发生了什么。DeskPad 创建了一个虚拟显示器，它在应用程序窗口内被镜像，以便您可以创建一个专用的、易于共享的工作空间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/latentcat/qrbtf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrbtf&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;AI 和参数化二维码生成器。查看实际部署请访问 &lt;a class="notranslate" href="https://qrbtf.com/en" translate="no"&gt;https://qrbtf.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sequinstream/sequin" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sequin&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;为 Postgres 添加流媒体功能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gitbutlerapp/gitbutler" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gitbutler&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Git 图形用户界面分支管理工具。支持 Linux/Mac/Window。使用 Tauri/Rust/TypeScript 构建，因此不会像 Electron 那样慢。如果你是视觉型用户，不妨尝试一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/theseus-rs/rsql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rsql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于 DuckDB、LibSQL、MariaDB、MySQL、PostgreSQL、Redshift、Snowflake、SQLite3 和 SQL Server 的命令行界面。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content>
    <link href="https://betterdev.link/issues/269"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev! I&amp;rsquo;ve been exploring LLMs more and, while they&amp;rsquo;re not perfect or likely to replace programming jobs, they&amp;rsquo;re great for pattern recognition and repetitive tasks. I see LLMs becoming as common as email, with most people using providers and a few hosting their own. That&amp;rsquo;s why I&amp;rsquo;m sharing more LLM content, focusing on first principles to help programmers understand and build them from scratch.&lt;/p&gt;

&lt;p&gt;Don&amp;rsquo;t worry, this newsletter isn&amp;rsquo;t turning into AI &amp;ldquo;hype.&amp;rdquo; I simply want to share useful tools and insights with our audience&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;Seamlessly Integrate Product Usage Insights with Your Customer Data&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Unlock unparalleled insights with the improved Amplitude app for HubSpot. This integration empowers you to seamlessly sync user data and behavior insights, ensuring real-time analytics at your fingertips. Elevate your customer engagement with advanced segmentation, allowing marketers to identify product qualified leads. &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;Try the app and start optimizing your strategies today&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://medium.com/@msouza.os/llm-from-scratch-with-pytorch-9f21808c6319"&gt;LLM from scratch with Pytorch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever feel overwhelm with all the news about LLM? what is these 70B 4B or 3.5 4.0? Or when you go and check out the code of some project, it&amp;rsquo;s super short and simple, where is the logic?
In this link, we go back to that root to understand how to build an LLM by using Pytorch.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://gwolf.org/2024/10/started-a-guide-to-writing-fuse-filesystems-in-python.html"&gt;Started a guide to writing FUSE filesystems in Python&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever feel like iCloud drive, Google Drive or Dropbox app is magic? What power them? It&amp;rsquo;s pretty much FUSE behind the scene. Can we turn random data available through RPC into a file system?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://brokencloudstorage.info/"&gt;End-to-End Encrypted Cloud Storage in the Wild: A Broken Ecosystem&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Cloud storage is ubiquitous: Google Drive, Dropbox, and OneDrive are household names. However, these services do not provide end-to-end encryption (E2EE), meaning that the provider has access to the data stored on their servers. The promise of end-to-end encrypted cloud storage is that users can have the best of both worlds, keeping control of their data using cryptographic techniques, while still benefiting from low-cost storage solutions.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kylezhe.ng/posts/crafting_qr_codes"&gt;Crafting qr codes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;QRCode is everywhere nowsaday. However, they doesn&amp;rsquo;t need to be just square black and white box. How can we generate QRcode that looks artsy while still readable to the decoder?&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://imbue.com/research/70b-infrastructure/"&gt;From bare metal to a 70B model: infrastructure set-up and scripts&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;With a small team and in a few monthes, imblue trained a 70B parameter model from scratch on their own infrastructure that outperformed zero-shot GPT-4o on reasoning-related tasks. They&amp;rsquo;re sharing an end-to-end guide for setting up the required infrastructure: from bringing up the initial cluster and installing the OS, to automatically recovering from errors encountered during training.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://r.ena.to/blog/optimizing-postgres-table-layout-for-maximum-efficiency/"&gt;Optimizing Postgres table layout for maximum efficiency&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;what if I told you that simply reordering your columns could reduce the size of your tables and indexes by 20%? This isn’t some obscure database trick — it’s a direct result of how Postgres aligns data on disk.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ngrok.com/blog-post/how-we-built-ngroks-data-platform"&gt;How ngrok build their data platform&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This article is a look at how ngrok, a platform to enable you expose local service on your laptop to internet, built their data platform. Given their team size of 1 engineer, this maybe more useful and relevant to us more than scale of big corp(where there are hundred engineers building a data platform).&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pthorpe92.dev/programming/systems/threads-async-runtimes-part0/"&gt;Confusing or misunderstood topics in systems programming&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Threads and the general concept of concurrency are among the most widely misunderstood and confusing topics for newer developers. This series is meant to help clarify some of these concepts and provide a better understanding of how they work.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://beeps.website/blog/2024-10-09-why-govuk-exit-this-page-doesnt-use-escape/"&gt;Why GOV.UK’s Exit this Page component doesn’t use the Escape key&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.superdurszlak.dev/posts/the-four-horsemen-of-network-communication/"&gt;The Four Horsemen of network communication&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blogsystem5.substack.com/p/dos-memory-models"&gt;Revisiting the DOS memory models&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://netflixtechblog.com/pushy-to-the-limit-evolving-netflixs-websocket-proxy-for-the-future-b468bc0ff658"&gt;Pushy to the Limit: Evolving Netflix’s WebSocket proxy for the future&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;a very high level discussion of how Netflix improve and evolve their websocket infrastructure to perform many kind of tasks. There isn&amp;rsquo;t much technical discussion on this post, but more about concept and system design.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ankane/neighbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;neighbor&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Nearest neighbor search for Rails.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zhengkyl/qrframe" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrframe&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;code-based qr code generator.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/photostructure/exiftool-vendored.js/tree/main?tab=readme-ov-file" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;exiftool-vendored.js&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast, cross-platform Node.js access to ExifTool.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zhengkyl/fuqr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fuqr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an awesome qr code generator in Rust. Go beyond the normal QR Code, it can generate animation QR code as well. By the same author of above qrframe package.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/samuel-vitorino/lm.rs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lm.rs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Minimal LLM inference in Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/anordin95/run-llama-locally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;run-llama-locally&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Running Llama locally with minimal dependencies&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/azuline/rose" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rose&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A music manager with a virtual filesystem.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/andrearaponi/dito" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dito&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an advanced Layer 7 reverse proxy server written in Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://player.style/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;player.style&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Video and audio player themes built with Media Chrome, for every web player and every web app framework.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/stenzek/duckstation" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;duckstation&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;is an simulator/emulator of the Sony PlayStation&amp;trade; console, focusing on playability, speed, and long-term maintainability. The goal is to be as accurate as possible while maintaining performance suitable for low-end devices. &amp;ldquo;Hack&amp;rdquo; options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/jdholtz/auto-southwest-check-in" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;auto-southwest-check-in&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Python script that automatically checks in to your Southwest flight 24 hours beforehand.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/Stengo/DeskPad" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;DeskPad&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Certain workflows require sharing the entire screen (usually due to switching through multiple applications), but if the presenter has a much larger display than the audience it can be hard to see what is happening.
DeskPad creates a virtual display that is mirrored within its application window so that you can create a dedicated, easily shareable workspace.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/latentcat/qrbtf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrbtf&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;AI &amp;amp; parametric QR code generator. View the actualy deployment on &lt;a href="https://qrbtf.com/en"&gt;https://qrbtf.com&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/sequinstream/sequin" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sequin&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Add streaming capabilities to Postgres.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/gitbutlerapp/gitbutler" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gitbutler&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A Git GUI branch management tool. Support Linux/Mac/Window. Build with Tauri/Rust/TypeScript so it won&amp;rsquo;t be as slow as Electron. If you&amp;rsquo;re a visual person, give it a try.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/theseus-rs/rsql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rsql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Command line interface for DuckDB, LibSQL, MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3 and SQL Server&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

Better Dev Link - 网络上的资源，帮助你成为更好的程序员
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎收看 BetterDev 的又一期内容！我最近在研究 LLMs，虽然它们并不完美，也不太可能取代编程工作，但它们在模式识别和重复任务方面非常有用。我看到 LLMs 正变得像电子邮件一样普遍，大多数人使用服务提供商，少数人则自己托管。这就是为什么我要分享更多关于 LLMs 的内容，专注于第一性原理，帮助程序员理解并从头构建它们。&lt;/p&gt;
&lt;p&gt;别担心，这期 newsletter 并不会变成 AI 的“炒作”。我只是想与我们的读者分享有用的工具和见解。&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买一杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;将产品使用洞察无缝集成到客户数据中&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;使用改进后的 Amplitude 应用程序与 HubSpot 集成，解锁前所未有的洞察。这种集成使您能够无缝同步用户数据和行为洞察，确保实时分析触手可及。通过高级细分功能，提升客户参与度，让营销人员能够识别产品合格的潜在客户。 &lt;a href="https://www.vpdae.com/redirect/3i4ylzfg9gbu142k28e7u6fvofp"&gt;尝试该应用，今天就开始优化您的策略&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/@msouza.os/llm-from-scratch-with-pytorch-9f21808c6319"&gt;使用 PyTorch 从头开始构建 LLM&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾因关于 LLM 的所有新闻而感到不知所措？这些 70B、4B 或 3.5、4.0 是什么？或者当你查看某个项目的代码时，发现它非常简短且简单，逻辑在哪里？在这篇文章中，我们将回到根源，了解如何使用 PyTorch 构建一个 LLM。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gwolf.org/2024/10/started-a-guide-to-writing-fuse-filesystems-in-python.html"&gt;编写 Python 中的 FUSE 文件系统指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾觉得 iCloud Drive、Google Drive 或 Dropbox 应用是魔法？它们背后的力量是什么？实际上，它们背后是 FUSE。我们能否将通过 RPC 获取的随机数据转换为文件系统？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://brokencloudstorage.info/"&gt;真实世界中的端到端加密云存储：一个破碎的生态系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;云存储无处不在：Google Drive、Dropbox 和 OneDrive 是家喻户晓的名字。然而，这些服务并未提供端到端加密（E2EE），这意味着服务提供商可以访问存储在他们服务器上的数据。端到端加密云存储的承诺是让用户能够掌握数据，同时还能享受低成本的存储解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pthorpe92.dev/programming/systems/threads-async-runtimes-part0/"&gt;系统编程中令人困惑或误解的主题&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;线程和并发的一般概念是新手开发者中最常误解和困惑的主题之一。本系列旨在澄清这些概念，提供更深入的理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://beeps.website/blog/2024-10-09-why-govuk-exit-this-page-doesnt-use-escape"&gt;为什么 GOV.UK 的 Exit this Page 组件不使用 Esc 键&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.superdurszlak.dev/posts/the-four-horsemen-of-network-communication/"&gt;网络通信的四大骑士&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blogsystem5.substack.com/p/dos-memory-models"&gt;重新审视 DOS 内存模型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://netflixtechblog.com/pushy-to-the-limit-evolving-netflixs-websocket-proxy-for-the-future-b468bc0ff658"&gt;Pushy 到极限：演进 Netflix 的 WebSocket 代理以面向未来&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;这篇文章讨论了 Netflix 如何改进和演进他们的 WebSocket 基础设施以执行各种任务。这篇文章没有太多技术讨论，更多的是关于概念和系统设计。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ankane/neighbor" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;neighbor&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rails 中的最近邻搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zhengkyl/qrframe" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrframe&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于代码的二维码生成器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/photostructure/exiftool-vendored.js/tree/main?tab=readme-ov-file" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;exiftool-vendored.js&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速、跨平台的 Node.js ExifTool 访问方式。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zhengkyl/fuqr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fuqr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个强大的二维码生成器，用 Rust 编写。超越普通二维码，它还能生成动画二维码。由上述 qrframe 包的同一位作者开发。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/samuel-vitorino/lm.rs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;lm.rs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rust 中的最小 LLM 推理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/anordin95/run-llama-locally" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;run-llama-locally&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用最少依赖项在本地运行 Llama。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/azuline/rose" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rose&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个带有虚拟文件系统的音乐管理器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/andrearaponi/dito" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dito&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用 Go 编写的高级第 7 层反向代理服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://player.style/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;player.style&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用 Media Chrome 构建的视频和音频播放器主题，适用于每个网络播放器和每个网络应用框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/stenzek/duckstation" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;duckstation&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;这是一个 Sony PlayStation™ 控制台的模拟器/游戏机，专注于可玩性、速度和长期可维护性。目标是在保持性能适合低端设备的同时尽可能准确。不鼓励“黑客”选项，默认配置应支持所有可玩游戏，只有部分增强功能可能存在兼容性问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jdholtz/auto-southwest-check-in" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;auto-southwest-check-in&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Python 脚本，可以自动在出发前 24 小时进行西南航空的登机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Stengo/DeskPad" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;DeskPad&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;某些工作流程需要共享整个屏幕（通常由于需要在多个应用程序之间切换），但如果演示者使用的显示器比观众的大，就很难看清发生了什么。DeskPad 创建了一个虚拟显示器，它在应用程序窗口内被镜像，以便您可以创建一个专用的、易于共享的工作空间。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/latentcat/qrbtf" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;qrbtf&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;AI 和参数化二维码生成器。查看实际部署请访问 &lt;a class="notranslate" href="https://qrbtf.com/en" translate="no"&gt;https://qrbtf.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sequinstream/sequin" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sequin&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;为 Postgres 添加流媒体功能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gitbutlerapp/gitbutler" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;gitbutler&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个 Git 图形用户界面分支管理工具。支持 Linux/Mac/Window。使用 Tauri/Rust/TypeScript 构建，因此不会像 Electron 那样慢。如果你是视觉型用户，不妨尝试一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/theseus-rs/rsql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rsql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;用于 DuckDB、LibSQL、MariaDB、MySQL、PostgreSQL、Redshift、Snowflake、SQLite3 和 SQL Server 的命令行界面。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</summary>
    <published>2024-10-14T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/268</id>
    <title>Issues #268 Sep 30, 2024 || 

问题 #268 2024年9月30日</title>
    <updated>2024-09-30T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week PostgreSQL 17 is released. It has a lot of amazing feature. Time to update and look over the &lt;a href="https://www.postgresql.org/docs/17/release-17.html"&gt;release note&lt;/a&gt;. If you are a Postgres user, consider subscribe to &lt;a href="https://postgresweekly.com"&gt;Postgres Weekly as well&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;Not too many days left for DevSecCon 2024&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developing AI Trust, hosted by Snyk on October 8-9. With 20+ sessions and 5 themed tracks, DevSecCon 2024 is packed with DevSecOps lessons and hands-on experiences from industry trailblazers. For all our developers, here’s one that you just can’t miss: Leonardo Zanivan from Okta, who will be discussing how to Secure Node.js Applications from Supply Chain Attacks. &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;Register today&lt;/a&gt;!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://keleshev.com/compiling-to-assembly-from-scratch/#table-of-contents"&gt;Compiling to Assembly from Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you been trying to learn how compilers and programming languages work?
Then come along! Let’s make a compiler that goes all the way from source to assembly from scratch—no shortcuts
This book will teach you enough compiler theory and assembly programming to get going. It uses a subset of TypeScript that reads like pseudocode and targets ARM 32-bit instruction set.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.0de5.net/explore"&gt;A Reintroduction to Programming&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagion composing a BMP image by hand, or writing a executable file manually? What kind of knowledge need to do that? Mastery of computer programming unlocks power, flexibility, speed, and debugging prowess across all of your work. We will learn in depth what you use every day, by exploring memory, instructions, syscalls, functions, structure and cognition.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lyra.horse/blog/2024/09/using-youtube-to-steal-your-files/?utm_source=pocket_shared"&gt;Using YouTube to steal your files&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In my security research I often come across weird quirks and behaviours that aren’t particularly useful beyond a neat party trick. It’s always a good idea to keep track of them though, perhaps one day they’ll be just the missing piece you need.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tembo.io/blog/image-search"&gt;Building an image search engine on Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever want a search to find similar image? In this blog we’ll build a basic image search engine using Postgres. We’ll use a pre-trained model to generate embeddings for images and text, then store those embeddings in Postgres. The pgvector extension will enable us to conduct similarity searches on these embeddings using both images and raw-text as queries.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://christophergs.com/blog/production-rag-with-postgres-vector-store-open-source-models"&gt;Production RAG with a Postgres Vector Store and Open-Source Models&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Part 6 of an AI Engineering open-source models tutorial series. We focus on RAG on this article. A RAG pipeline is what allows your AI model(s) to leverage the knowledge of your private/corporate data in its inference. It consists of the following stages: loading, indexing, storing, querying and evaluation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kettanaito.com/blog/dont-sleep-on-abort-controller"&gt;Don't Sleep on AbortController&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In JavaScript, more often that not you may want to cancel a request? Imagine an auto-completed, when user type more, you may want to cancel the previous request, there is no point to get them.
AbortController is a global class in JavaScript that you can use to abort these fetch request. And also anything else, not just http request.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://fljd.in/en/2024/09/19/hierarchical-data-types/"&gt;Hierarchical data types&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Parent-child relationship happens a lot in context of web dev. Even harder when it&amp;rsquo;s nested. Example, nested comment. In this shortarticle we look at the &lt;code&gt;ltree&lt;/code&gt; Postgres extension to store and retreive that data type.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://developer.chrome.com/blog/devtools-realtime-cwv"&gt;Monitor your local and real-user Core Web Vitals performance in DevTools&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This post is part of an ongoing series about Chrome&amp;rsquo;s efforts to improve the DevTools Performance panel. Learn about these tools to help analyze performance of our front-end app. In this post we&amp;rsquo;ll take a closer look at each of the new features: Real-time local Core Web Vitals performance, Real-user experience data, Recommendations to configure your local environment, Information to help you reproduce issues.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://discord.com/blog/how-discord-reduced-websocket-traffic-by-40-percent"&gt;How Discord Reduced Websocket Traffic by 40%&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Websocket bandwidth is especially chatty for Discord because they need to broadcast the message to all connection client. Also, decreasing bandwidth usage would lead to a more responsive experience.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://yieldcode.blog/post/npm-workspaces/?utm_source=pocket_shared"&gt;Typescript Monorepo with NPM workspace&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.bemi.io/the-ultimate-guide-to-postgresql-data-change-tracking/"&gt;The Ultimate Guide to PostgreSQL Data Change Tracking&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mikestefanello/pagoda" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pagoda&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Rapid, easy full-stack web development starter kit in Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/deckarep/golang-set" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;golang-set&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pawurb/ruby-pg-extras" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby-pg&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ruby PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. Also, if you&amp;rsquo;re a Rails dev, checkout the &lt;a href="https://github.com/pawurb/rails-pg-extras"&gt;rails-pg-extras&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/elijah-potter/harper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;harper&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The Grammar Checker for Developers. Can be think of your own Grammarly replacement.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lds133/weather_landscape" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;weather_landscape&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visualizing Weather Forecasts Through Landscape Imagery.
Traditional weather stations often display sensor readings as raw numerical data. Navigating these dashboards can be overwhelming and stressful, as it requires significant effort to locate, interpret, and visualize specific parameters effectively.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/go-jet/jet/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-jet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Type safe SQL builder with code generation and automatic query result data mapping&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint. Use by a lot of other Go project to lint their Go code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/amalshaji/portr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Open source ngrok alternative designed for teams. Tunnel http, tcp or websocket connections.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://explain.dalibo.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dalibo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visualizing and understanding PostgreSQL EXPLAIN plans made easy.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bytebase/bytebase" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bytebase&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Have you ever feel tedious and risky when you acquire prod db credential, to run some kind of data modification query? Or feel wrong when giving someone access to a postgres db user and have to follow up when revoke/rotate password? Bytebase might solve these pain points. A single place to track change, query db, manage access. Bill itself World&amp;rsquo;s most advanced database DevOps and CI/CD for Developer, DBA and Platform Engineering teams.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/iongion/container-desktop" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;container-desktop&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Podman desktop companion&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/schedule-x/schedule-x" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;schedule-x&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an event calendar focused on covering the needs of modern web apps: responsive design, internationalization, and extensibility. You can ship it with default settings in a matter of minutes. Surely come in handy when you need some sort of calendar-ish displaying for your app&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎收看本期 BetterDev。本周 PostgreSQL 17 已发布。它有许多令人惊叹的功能。现在是时候更新并查看 &lt;a href="https://www.postgresql.org/docs/17/release-17.html"&gt;发布说明&lt;/a&gt;。如果你是 Postgres 用户，也可以考虑订阅 &lt;a href="https://postgresweekly.com"&gt;Postgres Weekly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;DevSecCon 2024 仅剩不多的天数&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;由 Snyk 主办的 Developing AI Trust，将于 10月8日至9日举行。20多个会场和5个主题轨道，DevSecCon 2024 充满 DevSecOps 教训和行业先锋的实践体验。对于所有开发者，这是一场你不能错过的活动：来自 Okta 的 Leonardo Zanivan 将讲解如何防范供应链攻击来安全地开发 Node.js 应用。 &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;立即注册&lt;/a&gt;!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keleshev.com/compiling-to-assembly-from-scratch/#table-of-contents"&gt;从零开始编译为汇编语言&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否一直在尝试学习编译器和编程语言的工作原理？来加入我们吧！让我们从源代码到汇编语言一步步构建一个编译器——不走捷径。这本书将教你足够的编译理论和汇编语言编程知识，以开始你的学习。它使用一种类似伪代码的 TypeScript 子集，并针对 ARM 32 位指令集。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.0de5.net/explore"&gt;编程的重新引入&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否想过手动编写 BMP 图像，或手动编写可执行文件？你需要掌握哪些知识才能做到这一点？掌握计算机编程将为你日常使用的所有工具带来力量、灵活性、速度和调试能力。我们将通过探索内存、指令、系统调用、函数、结构和认知，深入了解你每天都在使用的东西。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lyra.horse/blog/2024/09/using-youtube-to-steal-your-files/?utm_source=pocket_shared"&gt;利用 YouTube 盗取你的文件&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在我的安全研究中，我经常遇到一些奇怪的特性与行为，它们在除了一些有趣的把戏之外似乎没有特别的用途。不过，记录这些特性还是很有必要的，也许有一天它们会成为你解决问题的关键。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tembo.io/blog/image-search"&gt;在 Postgres 上构建图像搜索引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾经想要通过搜索找到相似的图像？在本博客中，我们将使用 Postgres 构建一个基本的图像搜索引擎。我们将使用一个预训练模型来为图像和文本生成嵌入向量，然后将这些嵌入向量存储在 Postgres 中。pgvector 扩展将使我们能够使用图像或原始文本作为查询，对这些嵌入向量进行相似性搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://christophergs.com/blog/production-rag-with-postgres-vector-store-open-source-models"&gt;使用 Postgres 向量存储和开源模型构建生产级 RAG 系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;AI 工程开源模型教程系列的第六部分。本文重点讨论 RAG。RAG 管道允许你的 AI 模型（或模型组）在推理过程中利用你私有/企业数据的知识。它包括以下阶段：加载、索引、存储、查询和评估。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kettanaito.com/blog/dont-sleep-on-abort-controller"&gt;不要忽视 AbortController&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 JavaScript 中，你经常需要取消请求吗？想象一个自动补全功能，当用户输入更多内容时，你可能希望取消之前的请求，因为那些请求已经没有意义了。AbortController 是一个 JavaScript 全局类，可以用来取消这些 fetch 请求。它不仅适用于 HTTP 请求，还可以用于其他任何场景。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fljd.in/en/2024/09/19/hierarchical-data-types/"&gt;层次化数据类型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;父-子关系在 Web 开发中非常常见。而当它嵌套时，情况就更加复杂了。例如，嵌套评论。在本文中，我们将探讨 &lt;code class="notranslate" translate="no"&gt;ltree&lt;/code&gt; Postgres 扩展，用于存储和检索此类数据类型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.chrome.com/blog/devtools-realtime-cwv"&gt;在 DevTools 中监控本地和真实用户 Core Web Vitals 性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;本文是关于 Chrome 改进 DevTools 性能面板的一系列文章中的一部分。学习这些工具有助于分析我们前端应用的性能。在本文中，我们将深入了解每个新功能：实时本地 Core Web Vitals 性能、真实用户体验数据、配置本地环境的建议，以及帮助你复现问题的信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://discord.com/blog/how-discord-reduced-websocket-traffic-by-40-percent"&gt;Discord 如何将 WebSocket 流量减少 40%&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebSocket 流量对 Discord 来说尤其繁杂，因为它们需要将消息广播给所有连接的客户端。同时，减少带宽使用将带来更流畅的用户体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://yieldcode.blog/post/npm-workspaces/?utm_source=pocket_shared"&gt;使用 NPM 工作区的 TypeScript 单仓库&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.bemi.io/the-ultimate-guide-to-postgresql-data-change-tracking/"&gt;PostgreSQL 数据变更追踪终极指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mikestefanello/pagoda" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pagoda&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言快速、便捷的全栈 Web 开发启动套件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/deckarep/golang-set" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;golang-set&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言中简单、经过实战检验且通用的集合类型。受 Docker、1Password、以太坊和 Hashicorp 等项目的信任。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pawurb/ruby-pg-extras" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby-pg&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby PostgreSQL 数据库性能洞察。包括锁、索引使用情况、缓冲区缓存命中率、真空统计信息等。此外，如果你是 Rails 开发者，可以查看 &lt;a href="https://github.com/pawurb/rails-pg-extras"&gt;rails-pg-extras&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/elijah-potter/harper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;harper&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开发者语法检查器。可以视为你的专属 Grammarly 替代品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lds133/weather_landscape" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;weather_landscape&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过景观图像可视化天气预报。传统气象站通常以原始数值数据的形式显示传感器读数。浏览这些仪表盘可能会令人感到混乱和压力，因为需要付出大量努力才能找到、解释和有效可视化特定参数。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/go-jet/jet/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-jet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;类型安全的 SQL 构建器，支持代码生成和自动查询结果数据映射&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🔥 速度是 golint 的 6 倍，更严格、可配置、可扩展且美观的 golint 替代品。被许多其他 Go 项目用于 Go 代码的静态检查。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/amalshaji/portr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开源的 ngrok 替代品，专为团队设计。支持 HTTP、TCP 或 WebSocket 连接的隧道服务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://explain.dalibo.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dalibo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可视化和理解 PostgreSQL EXPLAIN 计划的简便工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bytebase/bytebase" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bytebase&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;是否觉得在获取生产数据库凭证运行数据修改查询时繁琐且风险高？或者在授予他人 Postgres 数据库用户权限后，需要撤销或重置密码时感到不安？Bytebase 或许能解决这些问题。它是一个集中管理变更、查询数据库和权限的地方，为开发者、DBA 和平台工程团队提供世界上最先进的数据库 DevOps 和 CI/CD 解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iongion/container-desktop" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;container-desktop&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Podman 桌面伴侣&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/schedule-x/schedule-x" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;schedule-x&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专注于满足现代 Web 应用需求的事件日历：响应式设计、国际化和可扩展性。你可以通过默认设置在几分钟内部署它，非常适合需要日历式显示的应用场景。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/268"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week PostgreSQL 17 is released. It has a lot of amazing feature. Time to update and look over the &lt;a href="https://www.postgresql.org/docs/17/release-17.html"&gt;release note&lt;/a&gt;. If you are a Postgres user, consider subscribe to &lt;a href="https://postgresweekly.com"&gt;Postgres Weekly as well&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;Not too many days left for DevSecCon 2024&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developing AI Trust, hosted by Snyk on October 8-9. With 20+ sessions and 5 themed tracks, DevSecCon 2024 is packed with DevSecOps lessons and hands-on experiences from industry trailblazers. For all our developers, here’s one that you just can’t miss: Leonardo Zanivan from Okta, who will be discussing how to Secure Node.js Applications from Supply Chain Attacks. &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;Register today&lt;/a&gt;!&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://keleshev.com/compiling-to-assembly-from-scratch/#table-of-contents"&gt;Compiling to Assembly from Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you been trying to learn how compilers and programming languages work?
Then come along! Let’s make a compiler that goes all the way from source to assembly from scratch—no shortcuts
This book will teach you enough compiler theory and assembly programming to get going. It uses a subset of TypeScript that reads like pseudocode and targets ARM 32-bit instruction set.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.0de5.net/explore"&gt;A Reintroduction to Programming&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Imagion composing a BMP image by hand, or writing a executable file manually? What kind of knowledge need to do that? Mastery of computer programming unlocks power, flexibility, speed, and debugging prowess across all of your work. We will learn in depth what you use every day, by exploring memory, instructions, syscalls, functions, structure and cognition.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://lyra.horse/blog/2024/09/using-youtube-to-steal-your-files/?utm_source=pocket_shared"&gt;Using YouTube to steal your files&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In my security research I often come across weird quirks and behaviours that aren’t particularly useful beyond a neat party trick. It’s always a good idea to keep track of them though, perhaps one day they’ll be just the missing piece you need.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://tembo.io/blog/image-search"&gt;Building an image search engine on Postgres&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Have you ever want a search to find similar image? In this blog we’ll build a basic image search engine using Postgres. We’ll use a pre-trained model to generate embeddings for images and text, then store those embeddings in Postgres. The pgvector extension will enable us to conduct similarity searches on these embeddings using both images and raw-text as queries.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://christophergs.com/blog/production-rag-with-postgres-vector-store-open-source-models"&gt;Production RAG with a Postgres Vector Store and Open-Source Models&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Part 6 of an AI Engineering open-source models tutorial series. We focus on RAG on this article. A RAG pipeline is what allows your AI model(s) to leverage the knowledge of your private/corporate data in its inference. It consists of the following stages: loading, indexing, storing, querying and evaluation.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://kettanaito.com/blog/dont-sleep-on-abort-controller"&gt;Don't Sleep on AbortController&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In JavaScript, more often that not you may want to cancel a request? Imagine an auto-completed, when user type more, you may want to cancel the previous request, there is no point to get them.
AbortController is a global class in JavaScript that you can use to abort these fetch request. And also anything else, not just http request.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://fljd.in/en/2024/09/19/hierarchical-data-types/"&gt;Hierarchical data types&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Parent-child relationship happens a lot in context of web dev. Even harder when it&amp;rsquo;s nested. Example, nested comment. In this shortarticle we look at the &lt;code&gt;ltree&lt;/code&gt; Postgres extension to store and retreive that data type.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://developer.chrome.com/blog/devtools-realtime-cwv"&gt;Monitor your local and real-user Core Web Vitals performance in DevTools&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;This post is part of an ongoing series about Chrome&amp;rsquo;s efforts to improve the DevTools Performance panel. Learn about these tools to help analyze performance of our front-end app. In this post we&amp;rsquo;ll take a closer look at each of the new features: Real-time local Core Web Vitals performance, Real-user experience data, Recommendations to configure your local environment, Information to help you reproduce issues.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://discord.com/blog/how-discord-reduced-websocket-traffic-by-40-percent"&gt;How Discord Reduced Websocket Traffic by 40%&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Websocket bandwidth is especially chatty for Discord because they need to broadcast the message to all connection client. Also, decreasing bandwidth usage would lead to a more responsive experience.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://yieldcode.blog/post/npm-workspaces/?utm_source=pocket_shared"&gt;Typescript Monorepo with NPM workspace&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.bemi.io/the-ultimate-guide-to-postgresql-data-change-tracking/"&gt;The Ultimate Guide to PostgreSQL Data Change Tracking&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mikestefanello/pagoda" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pagoda&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Rapid, easy full-stack web development starter kit in Go&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/deckarep/golang-set" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;golang-set&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pawurb/ruby-pg-extras" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby-pg&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Ruby PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. Also, if you&amp;rsquo;re a Rails dev, checkout the &lt;a href="https://github.com/pawurb/rails-pg-extras"&gt;rails-pg-extras&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/elijah-potter/harper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;harper&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;The Grammar Checker for Developers. Can be think of your own Grammarly replacement.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lds133/weather_landscape" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;weather_landscape&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visualizing Weather Forecasts Through Landscape Imagery.
Traditional weather stations often display sensor readings as raw numerical data. Navigating these dashboards can be overwhelming and stressful, as it requires significant effort to locate, interpret, and visualize specific parameters effectively.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/go-jet/jet/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-jet&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Type safe SQL builder with code generation and automatic query result data mapping&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint. Use by a lot of other Go project to lint their Go code.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/amalshaji/portr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Open source ngrok alternative designed for teams. Tunnel http, tcp or websocket connections.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://explain.dalibo.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dalibo&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Visualizing and understanding PostgreSQL EXPLAIN plans made easy.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/bytebase/bytebase" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bytebase&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Have you ever feel tedious and risky when you acquire prod db credential, to run some kind of data modification query? Or feel wrong when giving someone access to a postgres db user and have to follow up when revoke/rotate password? Bytebase might solve these pain points. A single place to track change, query db, manage access. Bill itself World&amp;rsquo;s most advanced database DevOps and CI/CD for Developer, DBA and Platform Engineering teams.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/iongion/container-desktop" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;container-desktop&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Podman desktop companion&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/schedule-x/schedule-x" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;schedule-x&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an event calendar focused on covering the needs of modern web apps: responsive design, internationalization, and extensibility. You can ship it with default settings in a matter of minutes. Surely come in handy when you need some sort of calendar-ish displaying for your app&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev 链接 - 网络上的资源，帮助你成为更好的程序员&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎收看本期 BetterDev。本周 PostgreSQL 17 已发布。它有许多令人惊叹的功能。现在是时候更新并查看 &lt;a href="https://www.postgresql.org/docs/17/release-17.html"&gt;发布说明&lt;/a&gt;。如果你是 Postgres 用户，也可以考虑订阅 &lt;a href="https://postgresweekly.com"&gt;Postgres Weekly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你喜欢 BetterDev，请将它分享给你的朋友。如果你想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将非常感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;DevSecCon 2024 仅剩不多的天数&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;由 Snyk 主办的 Developing AI Trust，将于 10月8日至9日举行。20多个会场和5个主题轨道，DevSecCon 2024 充满 DevSecOps 教训和行业先锋的实践体验。对于所有开发者，这是一场你不能错过的活动：来自 Okta 的 Leonardo Zanivan 将讲解如何防范供应链攻击来安全地开发 Node.js 应用。 &lt;a href="https://www.vpdae.com/redirect/7n8wouvq0yqa2luiw8xz21b5gsf"&gt;立即注册&lt;/a&gt;!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://keleshev.com/compiling-to-assembly-from-scratch/#table-of-contents"&gt;从零开始编译为汇编语言&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否一直在尝试学习编译器和编程语言的工作原理？来加入我们吧！让我们从源代码到汇编语言一步步构建一个编译器——不走捷径。这本书将教你足够的编译理论和汇编语言编程知识，以开始你的学习。它使用一种类似伪代码的 TypeScript 子集，并针对 ARM 32 位指令集。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.0de5.net/explore"&gt;编程的重新引入&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否想过手动编写 BMP 图像，或手动编写可执行文件？你需要掌握哪些知识才能做到这一点？掌握计算机编程将为你日常使用的所有工具带来力量、灵活性、速度和调试能力。我们将通过探索内存、指令、系统调用、函数、结构和认知，深入了解你每天都在使用的东西。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lyra.horse/blog/2024/09/using-youtube-to-steal-your-files/?utm_source=pocket_shared"&gt;利用 YouTube 盗取你的文件&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在我的安全研究中，我经常遇到一些奇怪的特性与行为，它们在除了一些有趣的把戏之外似乎没有特别的用途。不过，记录这些特性还是很有必要的，也许有一天它们会成为你解决问题的关键。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tembo.io/blog/image-search"&gt;在 Postgres 上构建图像搜索引擎&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;你是否曾经想要通过搜索找到相似的图像？在本博客中，我们将使用 Postgres 构建一个基本的图像搜索引擎。我们将使用一个预训练模型来为图像和文本生成嵌入向量，然后将这些嵌入向量存储在 Postgres 中。pgvector 扩展将使我们能够使用图像或原始文本作为查询，对这些嵌入向量进行相似性搜索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://christophergs.com/blog/production-rag-with-postgres-vector-store-open-source-models"&gt;使用 Postgres 向量存储和开源模型构建生产级 RAG 系统&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;AI 工程开源模型教程系列的第六部分。本文重点讨论 RAG。RAG 管道允许你的 AI 模型（或模型组）在推理过程中利用你私有/企业数据的知识。它包括以下阶段：加载、索引、存储、查询和评估。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://kettanaito.com/blog/dont-sleep-on-abort-controller"&gt;不要忽视 AbortController&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在 JavaScript 中，你经常需要取消请求吗？想象一个自动补全功能，当用户输入更多内容时，你可能希望取消之前的请求，因为那些请求已经没有意义了。AbortController 是一个 JavaScript 全局类，可以用来取消这些 fetch 请求。它不仅适用于 HTTP 请求，还可以用于其他任何场景。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://fljd.in/en/2024/09/19/hierarchical-data-types/"&gt;层次化数据类型&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;父-子关系在 Web 开发中非常常见。而当它嵌套时，情况就更加复杂了。例如，嵌套评论。在本文中，我们将探讨 &lt;code class="notranslate" translate="no"&gt;ltree&lt;/code&gt; Postgres 扩展，用于存储和检索此类数据类型。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.chrome.com/blog/devtools-realtime-cwv"&gt;在 DevTools 中监控本地和真实用户 Core Web Vitals 性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;本文是关于 Chrome 改进 DevTools 性能面板的一系列文章中的一部分。学习这些工具有助于分析我们前端应用的性能。在本文中，我们将深入了解每个新功能：实时本地 Core Web Vitals 性能、真实用户体验数据、配置本地环境的建议，以及帮助你复现问题的信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://discord.com/blog/how-discord-reduced-websocket-traffic-by-40-percent"&gt;Discord 如何将 WebSocket 流量减少 40%&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebSocket 流量对 Discord 来说尤其繁杂，因为它们需要将消息广播给所有连接的客户端。同时，减少带宽使用将带来更流畅的用户体验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://yieldcode.blog/post/npm-workspaces/?utm_source=pocket_shared"&gt;使用 NPM 工作区的 TypeScript 单仓库&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.bemi.io/the-ultimate-guide-to-postgresql-data-change-tracking/"&gt;PostgreSQL 数据变更追踪终极指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mikestefanello/pagoda" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pagoda&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言快速、便捷的全栈 Web 开发启动套件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/deckarep/golang-set" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;golang-set&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Go 语言中简单、经过实战检验且通用的集合类型。受 Docker、1Password、以太坊和 Hashicorp 等项目的信任。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pawurb/ruby-pg-extras" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;ruby-pg&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ruby PostgreSQL 数据库性能洞察。包括锁、索引使用情况、缓冲区缓存命中率、真空统计信息等。此外，如果你是 Rails 开发者，可以查看 &lt;a href="https://github.com/pawurb/rails-pg-extras"&gt;rails-pg-extras&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/elijah-potter/harper" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;harper&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开发者语法检查器。可以视为你的专属 Grammarly 替代品。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lds133/weather_landscape" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;weather_landscape&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;通过景观图像可视化天气预报。传统气象站通常以原始数值数据的形式显示传感器读数。浏览这些仪表盘可能会令人感到混乱和压力，因为需要付出大量努力才能找到、解释和有效可视化特定参数。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/go-jet/jet/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;go-jet&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;类型安全的 SQL 构建器，支持代码生成和自动查询结果数据映射&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mgechev/revive" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;revive&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🔥 速度是 golint 的 6 倍，更严格、可配置、可扩展且美观的 golint 替代品。被许多其他 Go 项目用于 Go 代码的静态检查。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/amalshaji/portr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;portr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;开源的 ngrok 替代品，专为团队设计。支持 HTTP、TCP 或 WebSocket 连接的隧道服务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://explain.dalibo.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;dalibo&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;可视化和理解 PostgreSQL EXPLAIN 计划的简便工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bytebase/bytebase" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;bytebase&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;是否觉得在获取生产数据库凭证运行数据修改查询时繁琐且风险高？或者在授予他人 Postgres 数据库用户权限后，需要撤销或重置密码时感到不安？Bytebase 或许能解决这些问题。它是一个集中管理变更、查询数据库和权限的地方，为开发者、DBA 和平台工程团队提供世界上最先进的数据库 DevOps 和 CI/CD 解决方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iongion/container-desktop" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;container-desktop&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Podman 桌面伴侣&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/schedule-x/schedule-x" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;schedule-x&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个专注于满足现代 Web 应用需求的事件日历：响应式设计、国际化和可扩展性。你可以通过默认设置在几分钟内部署它，非常适合需要日历式显示的应用场景。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-09-30T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/267</id>
    <title>Issues #267 Sep 23, 2024 || 

问题 #267 2024年9月23日</title>
    <updated>2024-09-23T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week we will learn about some crypto, a topic many time we are taugh to just use a library instead of writing our own. Therefor, it&amp;rsquo;s great to dive deep into the concept.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;HubSpot's Smart CRM offers a comprehensive, customizable company record, allowing marketing, sales, and service teams to have a single, unified view of the customer&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;However, most GTM teams still struggle to understand how customers are using their products. Now, teams can combine the power of HubSpot and Amplitude&amp;rsquo;s customer behavior data to accelerate growth.&lt;/p&gt;

&lt;p&gt;The new and improved Amplitude app for HubSpot allows you to uncover your most qualified leads using product usage insights. Now, marketers can use key product signals for personalized lead nurturing, pass qualified leads to Sales, and work with Service to re-ignite at-risk customers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;Try the improved app today to enrich your HubSpot customer data with Amplitude’s product usage data&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cryptography101.ca/"&gt;Cryptography 101 with Alfred Menezes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Alfred Menezes, a professor in the Department of Combinatorics and Optimization, Faculty of Mathematics, at the University of Waterloo in Canada. His research field is cryptography.
He has made quite a few of his lecture available for free, both of slide, video, exercises and handout.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://math.ucr.edu/home/baez/what_is_entropy.pdf"&gt;What is entropy?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Engineer no doubt encounters the term entropy quite a bit when it come to randomess. But what is it? how to define it? This is the draft to a book about that exact topic. And here is &lt;a href="https://johncarlosbaez.wordpress.com/2024/07/20/what-is-entropy/"&gt;the introduction post by author&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://rsms.me/wasm-intro"&gt;Introduction to WebAssembly&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebAssembly, or WASM for short, is a new technology for running portable programs in a safe and efficient manner primarily aimed at the web platform. Similarly to ASM.js, WASM aims at a low level-of abstraction suitable as an intermediate representation of a higher-level program — i.e. WebAssembly code is intended to be generated by compilers rather than being written by humans. T&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jeremymorrell.dev/blog/minimal-js-tracing/"&gt;OpenTelemetry Tracing in 200 lines of code&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers tend to treat tracing as deep magic, and OpenTelemetry is no exception. OpenTelemetry may be even more mysterious given how many concepts your are exposed to even with beginning examples.
They are likely a lot simpler than you expect! Once you peel back the layers, I find a useful mental model of tracing looks like “fancy logging” combined with “context propagation” a.k.a “passing some IDs around”.
The examples are JS code but the concept can be applied to your favorite language SDK given OpenTelemetry popularity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/"&gt;Visual guide to SSH tunneling and port&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you always confuse with ssh remote port, local port forwarding this visualization might help.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nolanlawson.com/2024/09/18/improving-rendering-performance-with-css-content-visibility/"&gt;Improving rendering performance with CSS content-visibility&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;On Mastodon, an opensource platform that is similar to Twitter. People can define custom emoji. The op library call &lt;code&gt;emoji-picker-element&lt;/code&gt; is used to render the picker. It&amp;rsquo;s choke with 19k emoji. How can we improve performance here to render a bunch of emojis as fast as possible.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://karenjex.blogspot.com/2024/09/optimising-your-database-for-analytics.html"&gt;Optimising your Database for Analytics&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Your database is configured for the needs of your day-to-day application activity, but what if you need to run complex analytics queries against your application data? Let’s look at how you can optimise your database for an analytics workload without compromising the performance of your application.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://web.archive.org/web/20240423134349/http://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/"&gt;Detecting the use of "curl | bash" server side&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Installing software by piping from curl to bash is obviously a bad idea and a knowledgable user will most likely check the content first. So wouldn&amp;rsquo;t it be great if a malicious payload would only render when piped to bash? A few people have tried this before by checking for the curl user agent which is by no means fail safe - the user may simply curl the url on the commandline revealing your malicious code. Luckily the behaviour of curl (and wget) changes subtely when piped into bash. This allows an attacker to present two different versions of their script depending on the context :)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://bitfieldconsulting.com/posts/aes-encryption"&gt;Cryptography in Go: AES encryption&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lets learn how to encryption and decrypt with AES. You will learn stuff like AES-CBC or AWS-GCM. It uses Go as the language but the idea can be applied to your favorite langugage.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://hackmysql.com/why-mysql-replication-is-fast/"&gt;Why MySQL Replication Is Fast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Replication being slow—replication lag—is a common complaint, but MySQL replication is actually really fast. Let’s run a controlled experiment and peek inside the Performance Schema and binary logs to see why.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://go.dev/blog/llmpowered"&gt;Building LLM-powered applications in Go&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In other words, LLM-powered applications are a lot like other modern cloud-native applications: they require excellent support for REST and RPC protocols, concurrency and performance. These just so happen to be the areas where Go excels, making it a fantastic language for writing LLM-powered applications.
This blog post works through an example of using Go for a simple LLM-powered application. It starts by describing the problem the demo application is solving, and proceeds by presenting several variants of the application that all accomplish the same task, but use different packages to implement it. All the code for the demos of this post is available online.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/satmihir/fair" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fair&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Go library designed to ensure fairness in the resource-constrained environments. It helps distribute the limited resources (e.g., database/blob storage throughput, job execution resources etc.) evenly across multiple clients during the time of shortage, preventing over-allocation and starvation based on client behavior.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lambda-fairy/maud" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maud&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Compile-time HTML templates for Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mattbrictson/nextgen" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nextgen&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Generate your next Rails app interactively! This template includes production-ready recommendations for testing, security, developer productivity, and modern frontends. Plus optional Vite support! ⚡️&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/digital-fabric/iou" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;iou&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Ruby gem for working with the io_uring API. IOU provides a simple and idiomatic API for working with io_uring.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ictnlp/LLaMA-Omni" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LLaMA-Omni&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a low-latency and high-quality end-to-end speech interaction model built upon Llama-3.1-8B-Instruct, aiming to achieve speech capabilities at the GPT-4o level.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dleemiller/WordLlama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;WordLlama: Things you can do with the token embeddings of an LLM&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;WordLlama is a fast, lightweight NLP toolkit that handles tasks like fuzzy-deduplication, similarity and ranking with minimal inference-time dependencies and optimized for CPU hardware.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/OpenBMB/MiniCPM" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MiniCPM&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An edge-side LLM that surpasses GPT-3.5-Turbo.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yogeshojha/rengine" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;The Ultimate Web Reconnaissance &amp;amp; Vulnerability Scanner 🚀&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;your ultimate web application reconnaissance suite, designed to supercharge the recon process for security pros, pentesters, and bug bounty hunters. It is go-to web application reconnaissance suite that&amp;rsquo;s designed to simplify and streamline the reconnaissance process for all the needs of security professionals, penetration testers, and bug bounty hunters&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zlwaterfield/scramble" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;scramble&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open-source Chrome extension that leverages AI to enhance your writing directly in your browser. It&amp;rsquo;s designed to be a more customizable and privacy-respecting alternative to Grammarly.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/achristmascarl/rainfrog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rainfrog&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a database management tui for postgres&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/maelstrom-software/maelstrom" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maelstrom&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a suite of tools for running tests in isolated micro-containers locally on your machine or distributed across arbitrarily large clusters. Maelstrom currently has test runners for Rust, Go, and Python, with more on the way.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dena-sohrabi/There" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;There&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A native menubar app to track friends, teammates or city time zones on macOS.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/getsops/sops" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sops&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Simple and flexible tool for managing secrets. Used to be managed by Mozilla but become a community project now.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/skyvern-ai/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Automate Browser-based workflows using LLMs and Computer Vision&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/HengyiWang/spann3r" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;spann3r&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;3D Reconstruction with Spatial Memory&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的编程提升资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读本期的BetterDev。本周我们将深入了解一些加密技术，这是一个通常被建议直接使用库而不是自行编写代码的主题。因此，深入探讨这一概念是非常有益的。&lt;/p&gt;
&lt;p&gt;如果您喜欢BetterDev，请将它分享给您的朋友以传播这个资源。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;购买我一杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;HubSpot的智能客户关系管理（CRM）提供了一个全面且可定制的公司记录，使市场、销售和服务团队能够拥有客户统一的视图&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;然而，大多数GTM团队仍然难以理解客户如何使用他们的产品。现在，团队可以结合HubSpot和Amplitude的客户行为数据，以加速增长。&lt;/p&gt;
&lt;p&gt;HubSpot上新升级的Amplitude应用允许您通过产品使用洞察发现最优质的潜在客户。现在，营销人员可以利用关键的产品信号进行个性化潜在客户培育，将优质客户传递给销售团队，并与客服合作重新激活面临流失风险的客户。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;今天就尝试改进后的应用，以Amplitude的产品使用数据丰富您的HubSpot客户数据&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cryptography101.ca/"&gt;与Alfred Menezes一起学习密码学基础&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Alfred Menezes是加拿大滑铁卢大学数学学院组合学与优化系的教授。他的研究领域是密码学。他提供了大量免费的讲座资源，包括幻灯片、视频、练习题和讲义。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://math.ucr.edu/home/baez/what_is_entropy.pdf"&gt;什么是熵？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;工程师在涉及随机性时无疑会频繁遇到熵（entropy）这一术语。但什么是它？如何定义它？这是关于该主题的一本书的草稿。这里是作者的引言帖子。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rsms.me/wasm-intro"&gt;WebAssembly简介&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebAssembly，或简称WASM，是一种新技术，旨在以安全高效的方式在Web平台上运行可移植程序。与ASM.js类似，WASM旨在提供一个较低的抽象层级，作为更高层次程序的中间表示——即WebAssembly代码旨在由编译器生成，而不是由人类直接编写。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jeremymorrell.dev/blog/minimal-js-tracing/"&gt;200行代码实现OpenTelemetry追踪&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者往往将追踪视为深奥的魔法，而OpenTelemetry也不例外。OpenTelemetry可能更加神秘，因为即使在初学者示例中，您也会接触到许多概念。但它们可能比您想象的要简单得多！一旦揭开这些概念的层，我发现追踪的有用思维模型类似于“高级日志记录”结合“上下文传播”即“传递一些ID”。
这些示例是JS代码，但OpenTelemetry的流行性意味着这些概念可以应用到您最喜欢的编程语言SDK中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/"&gt;SSH隧道和端口的视觉指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果您总是混淆ssh远程端口和本地端口转发，这个可视化可能会有所帮助。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nolanlawson.com/2024/09/18/improving-rendering-performance-with-css-content-visibility/"&gt;使用CSS content-visibility提高渲染性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在Mastodon上，一个开源平台，类似于Twitter。用户可以自定义表情符号。op库调用&lt;code class="notranslate" translate="no"&gt;emoji-picker-element&lt;/code&gt;用于渲染选择器。它包含19000个表情符号。如何在这里提高性能，以尽可能快速地渲染大量表情符号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.archive.org/web/20240423134349/http://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/"&gt;检测“curl | bash”在服务器端的使用&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;通过curl管道到bash安装软件显然是个坏主意，有经验的用户很可能会先检查内容。那么，如果恶意负载只在被管道到bash时才渲染，那不是很好吗？一些人之前尝试过通过检查curl用户代理来实现这一点，但这种方法绝非万无一失——用户可能直接在命令行中curl该URL，从而暴露您的恶意代码。幸运的是，curl（和wget）在被管道到bash时的行为会微妙地改变。这使得攻击者能够根据上下文呈现脚本的两个不同版本：)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bitfieldconsulting.com/posts/aes-encryption"&gt;Go语言中的密码学：AES加密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;让我们学习如何使用AES进行加密和解密。您将了解诸如AES-CBC或AWS-GCM等技术。它使用Go作为编程语言，但其思想可以应用于您喜欢的任何语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hackmysql.com/why-mysql-replication-is-fast/"&gt;为什么MySQL复制如此快速&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;复制缓慢——复制延迟——是常见的抱怨，但MySQL复制实际上非常快速。让我们进行一个受控实验，并查看性能模式和二进制日志，以了解原因。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://go.dev/blog/llmpowered"&gt;使用Go构建LLM驱动的应用程序&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;换句话说，LLM驱动的应用程序与其他现代云原生应用程序非常相似：它们需要出色的REST和RPC协议支持、并发性和性能。而这些正是Go语言擅长的领域，使其成为编写LLM驱动应用程序的绝佳语言。
本文通过一个使用Go构建简单LLM驱动应用程序的示例，逐步介绍了该演示应用程序解决的问题，并展示了几种实现相同任务的不同包版本的应用程序。本文中所有演示的代码都可在网络上找到。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/satmihir/fair" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fair&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Go语言编写的库，旨在确保在资源受限环境中实现公平性。它帮助在资源短缺时，将有限资源（例如数据库/对象存储吞吐量、作业执行资源等）均匀分配给多个客户端，防止基于客户端行为的过度分配和资源饥饿。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lambda-fairy/maud" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maud&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rust的编译时HTML模板&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mattbrictson/nextgen" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nextgen&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;生成您的下一个Rails应用！该模板包含生产就绪的测试、安全、开发人员生产力和现代前端的推荐。此外还有可选的Vite支持！⚡️&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/digital-fabric/iou" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;iou&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于操作io_uring API的Ruby gem。IOU提供了一个简单且符合Rust风格的io_uring API。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ictnlp/LLaMA-Omni" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LLaMA-Omni&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Llama-3.1-8B-Instruct构建的低延迟、高质量端到端语音交互模型，旨在实现与GPT-4o相当的语音能力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dleemiller/WordLlama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;WordLlama：使用LLM的token嵌入可以做什么&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;WordLlama是一个快速、轻量级的NLP工具包，处理模糊去重、相似度和排序等任务，依赖极少的推理时间依赖项，并针对CPU硬件进行了优化。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/OpenBMB/MiniCPM" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MiniCPM&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款超越GPT-3.5-Turbo的边缘侧LLM。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yogeshojha/rengine" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;终极Web侦察与漏洞扫描器 🚀&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;您的终极Web应用侦察套件，专为安全专家、渗透测试人员和漏洞赏金猎人设计，旨在简化和加速所有安全专业人员、渗透测试人员和漏洞赏金猎人的侦察过程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zlwaterfield/scramble" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;scramble&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款开源的Chrome扩展，利用AI在浏览器中直接增强您的写作。它旨在成为比Grammarly更可定制且尊重隐私的替代方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/achristmascarl/rainfrog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rainfrog&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款用于PostgreSQL的数据库管理TUI工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maelstrom-software/maelstrom" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maelstrom&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一套用于在本地机器或任意大规模集群上运行测试的工具。目前，maelstrom提供了Rust、Go和Python的测试运行器，未来还将支持更多语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dena-sohrabi/There" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;There&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款原生菜单栏应用，用于在macOS上跟踪朋友、队友或城市时区。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getsops/sops" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sops&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款简单灵活的密钥管理工具。之前由Mozilla管理，现在已成为社区项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/skyvern-ai/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用LLM和计算机视觉自动化浏览器工作流&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/HengyiWang/spann3r" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;spann3r&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;3D重建与空间记忆&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/267"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week we will learn about some crypto, a topic many time we are taugh to just use a library instead of writing our own. Therefor, it&amp;rsquo;s great to dive deep into the concept.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;HubSpot's Smart CRM offers a comprehensive, customizable company record, allowing marketing, sales, and service teams to have a single, unified view of the customer&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;However, most GTM teams still struggle to understand how customers are using their products. Now, teams can combine the power of HubSpot and Amplitude&amp;rsquo;s customer behavior data to accelerate growth.&lt;/p&gt;

&lt;p&gt;The new and improved Amplitude app for HubSpot allows you to uncover your most qualified leads using product usage insights. Now, marketers can use key product signals for personalized lead nurturing, pass qualified leads to Sales, and work with Service to re-ignite at-risk customers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;Try the improved app today to enrich your HubSpot customer data with Amplitude’s product usage data&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://cryptography101.ca/"&gt;Cryptography 101 with Alfred Menezes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Alfred Menezes, a professor in the Department of Combinatorics and Optimization, Faculty of Mathematics, at the University of Waterloo in Canada. His research field is cryptography.
He has made quite a few of his lecture available for free, both of slide, video, exercises and handout.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://math.ucr.edu/home/baez/what_is_entropy.pdf"&gt;What is entropy?&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Engineer no doubt encounters the term entropy quite a bit when it come to randomess. But what is it? how to define it? This is the draft to a book about that exact topic. And here is &lt;a href="https://johncarlosbaez.wordpress.com/2024/07/20/what-is-entropy/"&gt;the introduction post by author&lt;/a&gt;.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://rsms.me/wasm-intro"&gt;Introduction to WebAssembly&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;WebAssembly, or WASM for short, is a new technology for running portable programs in a safe and efficient manner primarily aimed at the web platform. Similarly to ASM.js, WASM aims at a low level-of abstraction suitable as an intermediate representation of a higher-level program — i.e. WebAssembly code is intended to be generated by compilers rather than being written by humans. T&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://jeremymorrell.dev/blog/minimal-js-tracing/"&gt;OpenTelemetry Tracing in 200 lines of code&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Developers tend to treat tracing as deep magic, and OpenTelemetry is no exception. OpenTelemetry may be even more mysterious given how many concepts your are exposed to even with beginning examples.
They are likely a lot simpler than you expect! Once you peel back the layers, I find a useful mental model of tracing looks like “fancy logging” combined with “context propagation” a.k.a “passing some IDs around”.
The examples are JS code but the concept can be applied to your favorite language SDK given OpenTelemetry popularity.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/"&gt;Visual guide to SSH tunneling and port&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you always confuse with ssh remote port, local port forwarding this visualization might help.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://nolanlawson.com/2024/09/18/improving-rendering-performance-with-css-content-visibility/"&gt;Improving rendering performance with CSS content-visibility&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;On Mastodon, an opensource platform that is similar to Twitter. People can define custom emoji. The op library call &lt;code&gt;emoji-picker-element&lt;/code&gt; is used to render the picker. It&amp;rsquo;s choke with 19k emoji. How can we improve performance here to render a bunch of emojis as fast as possible.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://karenjex.blogspot.com/2024/09/optimising-your-database-for-analytics.html"&gt;Optimising your Database for Analytics&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Your database is configured for the needs of your day-to-day application activity, but what if you need to run complex analytics queries against your application data? Let’s look at how you can optimise your database for an analytics workload without compromising the performance of your application.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://web.archive.org/web/20240423134349/http://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/"&gt;Detecting the use of "curl | bash" server side&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Installing software by piping from curl to bash is obviously a bad idea and a knowledgable user will most likely check the content first. So wouldn&amp;rsquo;t it be great if a malicious payload would only render when piped to bash? A few people have tried this before by checking for the curl user agent which is by no means fail safe - the user may simply curl the url on the commandline revealing your malicious code. Luckily the behaviour of curl (and wget) changes subtely when piped into bash. This allows an attacker to present two different versions of their script depending on the context :)&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://bitfieldconsulting.com/posts/aes-encryption"&gt;Cryptography in Go: AES encryption&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Lets learn how to encryption and decrypt with AES. You will learn stuff like AES-CBC or AWS-GCM. It uses Go as the language but the idea can be applied to your favorite langugage.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://hackmysql.com/why-mysql-replication-is-fast/"&gt;Why MySQL Replication Is Fast&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Replication being slow—replication lag—is a common complaint, but MySQL replication is actually really fast. Let’s run a controlled experiment and peek inside the Performance Schema and binary logs to see why.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://go.dev/blog/llmpowered"&gt;Building LLM-powered applications in Go&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In other words, LLM-powered applications are a lot like other modern cloud-native applications: they require excellent support for REST and RPC protocols, concurrency and performance. These just so happen to be the areas where Go excels, making it a fantastic language for writing LLM-powered applications.
This blog post works through an example of using Go for a simple LLM-powered application. It starts by describing the problem the demo application is solving, and proceeds by presenting several variants of the application that all accomplish the same task, but use different packages to implement it. All the code for the demos of this post is available online.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/satmihir/fair" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fair&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Go library designed to ensure fairness in the resource-constrained environments. It helps distribute the limited resources (e.g., database/blob storage throughput, job execution resources etc.) evenly across multiple clients during the time of shortage, preventing over-allocation and starvation based on client behavior.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/lambda-fairy/maud" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maud&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Compile-time HTML templates for Rust&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/mattbrictson/nextgen" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nextgen&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Generate your next Rails app interactively! This template includes production-ready recommendations for testing, security, developer productivity, and modern frontends. Plus optional Vite support! ⚡️&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/digital-fabric/iou" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;iou&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a Ruby gem for working with the io_uring API. IOU provides a simple and idiomatic API for working with io_uring.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/ictnlp/LLaMA-Omni" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LLaMA-Omni&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a low-latency and high-quality end-to-end speech interaction model built upon Llama-3.1-8B-Instruct, aiming to achieve speech capabilities at the GPT-4o level.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dleemiller/WordLlama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;WordLlama: Things you can do with the token embeddings of an LLM&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;WordLlama is a fast, lightweight NLP toolkit that handles tasks like fuzzy-deduplication, similarity and ranking with minimal inference-time dependencies and optimized for CPU hardware.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/OpenBMB/MiniCPM" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MiniCPM&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;An edge-side LLM that surpasses GPT-3.5-Turbo.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/yogeshojha/rengine" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;The Ultimate Web Reconnaissance &amp;amp; Vulnerability Scanner 🚀&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;your ultimate web application reconnaissance suite, designed to supercharge the recon process for security pros, pentesters, and bug bounty hunters. It is go-to web application reconnaissance suite that&amp;rsquo;s designed to simplify and streamline the reconnaissance process for all the needs of security professionals, penetration testers, and bug bounty hunters&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/zlwaterfield/scramble" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;scramble&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;an open-source Chrome extension that leverages AI to enhance your writing directly in your browser. It&amp;rsquo;s designed to be a more customizable and privacy-respecting alternative to Grammarly.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/achristmascarl/rainfrog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rainfrog&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a database management tui for postgres&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/maelstrom-software/maelstrom" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maelstrom&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;a suite of tools for running tests in isolated micro-containers locally on your machine or distributed across arbitrarily large clusters. Maelstrom currently has test runners for Rust, Go, and Python, with more on the way.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/dena-sohrabi/There" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;There&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A native menubar app to track friends, teammates or city time zones on macOS.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/getsops/sops" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sops&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Simple and flexible tool for managing secrets. Used to be managed by Mozilla but become a community project now.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/skyvern-ai/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Automate Browser-based workflows using LLMs and Computer Vision&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/HengyiWang/spann3r" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;spann3r&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;3D Reconstruction with Spatial Memory&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;Better Dev Link - 网络上的编程提升资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读本期的BetterDev。本周我们将深入了解一些加密技术，这是一个通常被建议直接使用库而不是自行编写代码的主题。因此，深入探讨这一概念是非常有益的。&lt;/p&gt;
&lt;p&gt;如果您喜欢BetterDev，请将它分享给您的朋友以传播这个资源。如果您想支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;购买我一杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;HubSpot的智能客户关系管理（CRM）提供了一个全面且可定制的公司记录，使市场、销售和服务团队能够拥有客户统一的视图&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;然而，大多数GTM团队仍然难以理解客户如何使用他们的产品。现在，团队可以结合HubSpot和Amplitude的客户行为数据，以加速增长。&lt;/p&gt;
&lt;p&gt;HubSpot上新升级的Amplitude应用允许您通过产品使用洞察发现最优质的潜在客户。现在，营销人员可以利用关键的产品信号进行个性化潜在客户培育，将优质客户传递给销售团队，并与客服合作重新激活面临流失风险的客户。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.vpdae.com/redirect/zrcr36zpo2etw2xrxs2s8vji2ws"&gt;今天就尝试改进后的应用，以Amplitude的产品使用数据丰富您的HubSpot客户数据&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cryptography101.ca/"&gt;与Alfred Menezes一起学习密码学基础&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;Alfred Menezes是加拿大滑铁卢大学数学学院组合学与优化系的教授。他的研究领域是密码学。他提供了大量免费的讲座资源，包括幻灯片、视频、练习题和讲义。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://math.ucr.edu/home/baez/what_is_entropy.pdf"&gt;什么是熵？&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p class="notranslate" translate="no"&gt;工程师在涉及随机性时无疑会频繁遇到熵（entropy）这一术语。但什么是它？如何定义它？这是关于该主题的一本书的草稿。这里是作者的引言帖子。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://rsms.me/wasm-intro"&gt;WebAssembly简介&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;WebAssembly，或简称WASM，是一种新技术，旨在以安全高效的方式在Web平台上运行可移植程序。与ASM.js类似，WASM旨在提供一个较低的抽象层级，作为更高层次程序的中间表示——即WebAssembly代码旨在由编译器生成，而不是由人类直接编写。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://jeremymorrell.dev/blog/minimal-js-tracing/"&gt;200行代码实现OpenTelemetry追踪&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;开发者往往将追踪视为深奥的魔法，而OpenTelemetry也不例外。OpenTelemetry可能更加神秘，因为即使在初学者示例中，您也会接触到许多概念。但它们可能比您想象的要简单得多！一旦揭开这些概念的层，我发现追踪的有用思维模型类似于“高级日志记录”结合“上下文传播”即“传递一些ID”。
这些示例是JS代码，但OpenTelemetry的流行性意味着这些概念可以应用到您最喜欢的编程语言SDK中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/"&gt;SSH隧道和端口的视觉指南&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果您总是混淆ssh远程端口和本地端口转发，这个可视化可能会有所帮助。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nolanlawson.com/2024/09/18/improving-rendering-performance-with-css-content-visibility/"&gt;使用CSS content-visibility提高渲染性能&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;在Mastodon上，一个开源平台，类似于Twitter。用户可以自定义表情符号。op库调用&lt;code class="notranslate" translate="no"&gt;emoji-picker-element&lt;/code&gt;用于渲染选择器。它包含19000个表情符号。如何在这里提高性能，以尽可能快速地渲染大量表情符号。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://web.archive.org/web/20240423134349/http://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/"&gt;检测“curl | bash”在服务器端的使用&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;通过curl管道到bash安装软件显然是个坏主意，有经验的用户很可能会先检查内容。那么，如果恶意负载只在被管道到bash时才渲染，那不是很好吗？一些人之前尝试过通过检查curl用户代理来实现这一点，但这种方法绝非万无一失——用户可能直接在命令行中curl该URL，从而暴露您的恶意代码。幸运的是，curl（和wget）在被管道到bash时的行为会微妙地改变。这使得攻击者能够根据上下文呈现脚本的两个不同版本：)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://bitfieldconsulting.com/posts/aes-encryption"&gt;Go语言中的密码学：AES加密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;让我们学习如何使用AES进行加密和解密。您将了解诸如AES-CBC或AWS-GCM等技术。它使用Go作为编程语言，但其思想可以应用于您喜欢的任何语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hackmysql.com/why-mysql-replication-is-fast/"&gt;为什么MySQL复制如此快速&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;复制缓慢——复制延迟——是常见的抱怨，但MySQL复制实际上非常快速。让我们进行一个受控实验，并查看性能模式和二进制日志，以了解原因。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://go.dev/blog/llmpowered"&gt;使用Go构建LLM驱动的应用程序&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;换句话说，LLM驱动的应用程序与其他现代云原生应用程序非常相似：它们需要出色的REST和RPC协议支持、并发性和性能。而这些正是Go语言擅长的领域，使其成为编写LLM驱动应用程序的绝佳语言。
本文通过一个使用Go构建简单LLM驱动应用程序的示例，逐步介绍了该演示应用程序解决的问题，并展示了几种实现相同任务的不同包版本的应用程序。本文中所有演示的代码都可在网络上找到。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/satmihir/fair" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fair&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用Go语言编写的库，旨在确保在资源受限环境中实现公平性。它帮助在资源短缺时，将有限资源（例如数据库/对象存储吞吐量、作业执行资源等）均匀分配给多个客户端，防止基于客户端行为的过度分配和资源饥饿。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lambda-fairy/maud" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maud&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rust的编译时HTML模板&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mattbrictson/nextgen" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;nextgen&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;生成您的下一个Rails应用！该模板包含生产就绪的测试、安全、开发人员生产力和现代前端的推荐。此外还有可选的Vite支持！⚡️&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/digital-fabric/iou" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;iou&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个用于操作io_uring API的Ruby gem。IOU提供了一个简单且符合Rust风格的io_uring API。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ictnlp/LLaMA-Omni" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LLaMA-Omni&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;基于Llama-3.1-8B-Instruct构建的低延迟、高质量端到端语音交互模型，旨在实现与GPT-4o相当的语音能力。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dleemiller/WordLlama" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;WordLlama：使用LLM的token嵌入可以做什么&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;WordLlama是一个快速、轻量级的NLP工具包，处理模糊去重、相似度和排序等任务，依赖极少的推理时间依赖项，并针对CPU硬件进行了优化。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/OpenBMB/MiniCPM" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;MiniCPM&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款超越GPT-3.5-Turbo的边缘侧LLM。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/yogeshojha/rengine" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;终极Web侦察与漏洞扫描器 🚀&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;您的终极Web应用侦察套件，专为安全专家、渗透测试人员和漏洞赏金猎人设计，旨在简化和加速所有安全专业人员、渗透测试人员和漏洞赏金猎人的侦察过程。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/zlwaterfield/scramble" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;scramble&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款开源的Chrome扩展，利用AI在浏览器中直接增强您的写作。它旨在成为比Grammarly更可定制且尊重隐私的替代方案。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/achristmascarl/rainfrog" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;rainfrog&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款用于PostgreSQL的数据库管理TUI工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maelstrom-software/maelstrom" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;maelstrom&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一套用于在本地机器或任意大规模集群上运行测试的工具。目前，maelstrom提供了Rust、Go和Python的测试运行器，未来还将支持更多语言。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dena-sohrabi/There" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;There&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款原生菜单栏应用，用于在macOS上跟踪朋友、队友或城市时区。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/getsops/sops" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;sops&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一款简单灵活的密钥管理工具。之前由Mozilla管理，现在已成为社区项目。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/skyvern-ai/skyvern" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;skyvern&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用LLM和计算机视觉自动化浏览器工作流&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/HengyiWang/spann3r" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;spann3r&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;3D重建与空间记忆&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-09-23T12:19:00+00:00</published>
  </entry>
  <entry>
    <id>https://betterdev.link/issues/266</id>
    <title>Issues #266 Sep 16, 2024 || 

问题 #266 2024年9月16日</title>
    <updated>2024-09-16T12:19:00+00:00</updated>
    <author>
      <name>Unknown</name>
    </author>
    <content type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week we will learn about making SWIFT payment, imagine you don&amp;rsquo;t have to rely on Stripe, and just be able to make payment right from your bank through SWIFT Protocol.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Snyk is thrilled to announce DevSecCon 2024, Developing AI Trust Oct 8-9, a FREE virtual summit designed for DevOps, developer and security pros of all levels&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Hear from John Hammond &amp;amp; Daniel Miessler on some of the critical strategies and prescriptive DevSecOps approach needed to build and maintain trust in the age of AI-powered development. &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Save your spot&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.iso20022js.com/guides/how-to-send-swift"&gt;How to Send a SWIFT Wire From Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;SWIFT is the most widely used international payment method in the world. In this tutorial we will be going over how to send a SWIFT wire programatically to your bank, what information you might need about your recipient to allow the payment to clear successfully, and the software you might need to do so. The following example can be implemented in code using iso20022.js.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://labs.watchtowr.com/we-spent-20-to-achieve-rce-and-accidentally-became-the-admins-of-mobi/"&gt;We Spent $20 To Achieve RCE And Accidentally Became The Admins Of .MOBI&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A tale of how not renewing domain allow one to register and control an endpoint, lead to RCE.  Another reminder that if you ever has a domain in use, then stopping using it, don&amp;rsquo;t let it expired.
Also, yet another story to stick with traditional TLD such as .com, .net etc&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/btrees-and-database-indexes"&gt;B-trees and database indexes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;B-trees are used by many modern DBMSs. Learn how they work, how databases use them, and how your choice of primary key can affect index performance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.alexewerlof.com/p/slo-elastic-datadog-grafana"&gt;SLO: Elastic vs Datadog vs Grafana&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A very hand-on comparison of SLO functionality on 3 platforms. Really good and detail write up if you&amp;rsquo;re evaluating these observability platfor.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.joshwcomeau.com/css/has/"&gt;The Undeniable Utility Of CSS :has&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;CSS is getting better and better recently with ton of of highly-requested CSS features delivered.
Today, we will looks into the &lt;code&gt;:has&lt;/code&gt; pseduo class and share some of the most interesting real-world use cases I’ve found so far, along with some truly mindblowing experiments.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.amazon.science/blog/better-performing-25519-elliptic-curve-cryptography"&gt;Better-performing “25519” elliptic-curve cryptography&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In recent years, you may notice we started to use SSH key with ED25519 instead of RSA. You will notice the key length is much shorter, but more secure. Another Two cryptographic algorithms that have become increasingly popular are x25519. AWS has optimized the x25519 and Ed25519 cryptographic algorithms in their AWS LibCrypto library, improving both performance and security and they share the benchmark and how we can use it here.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.kenmuse.com/blog/the-many-shas-of-a-github-pull-request/"&gt;The Many SHAs of a GitHub Pull Request&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you ever want to get the SHA of the Github commit in a Github action. You will quickly realize depend on pull request or branch push, the data path to get the SHA is different. In this we will demystify it&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://avestura.dev/blog/creating-a-git-commit-the-hard-way"&gt;Creating a Git commit: The Hard Way&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;To create git commit, we use Git high-level commands (also known as Porcelain commands) like git add, and git commit. However, there is another group of Git commands, known as Plumbing commands, that handle the low-level operations.  In this blog post, we want to create a Git commit using these low-level operations, and not the git commit command.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pyatl.dev/2024/09/01/bitten-by-unicode/"&gt;Bitten by Unicode&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are character that looks the same. But depending on where one type the message, it may be a different unicode code of the underlying data. So today we will learn the tail of hyphen and hyphen-minus.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://andyatkinson.com/copy-swap-drop-postgres-table-shrink"&gt;Shrinking Big PostgreSQL tables: Copy-Swap-Drop&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://neon.tech/blog/dynamically-estimating-and-scaling-postgres-working-set-size"&gt;Dynamically estimating and scaling Postgres’ working set size&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nuno-faria/tetris-sql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tetris-sql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Using SQL&amp;rsquo;s Turing Completeness to Build Tetris&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/1and1/acts_as_recursive_tree" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;acts_as_recursive_tree&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Make use of recursive queries in Rails when using Postgresql or SQLite to retrieve tree-based data.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/drwl/annotaterb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;annotaterb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Adds comments summarizing the model schema or routes in your. Really good codebase to learn how to parse and insert code into the existing files&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/KwaiVGI/LivePortrait" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LivePortrait&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Efficient Portrait Animation with Stitching and Retargeting Control&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/moderato-app/live-pprof" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;live-pprof&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Instead of cluttering up your computer with Docker, Prometheus, Grafana or even K8S just to monitor a Go app&amp;rsquo;s heap size, use this package to Monitor a Go app&amp;rsquo;s performance. Note that, it&amp;rsquo;s build mainly for local dev&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fastfloat/fast_float" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast_float&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast and exact implementation of the C++ from_chars functions for number types: 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis and WebKit/Safari. C++ is the language I never wrote, but I do plan to read to understand how float parse from characters works.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pixijs/pixijs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pixijs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;to provide a fast, lightweight 2D library that works across all devices. The PixiJS renderer allows everyone to enjoy the power of hardware acceleration without prior knowledge of WebGL. Also, it&amp;rsquo;s fast. Really fast.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://css-triggers.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;css-triggers&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/eduardolat/pgbackweb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgbackweb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/linagora/tmail-flutter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tmail-flutter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A multi-platform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/SVG-Edit/svgedit" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;svgedit&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Powerful SVG-Editor for your browser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/containrrr/shoutrrr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shoutrrr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A notifications library and a CLI to send notification to multiple services such as discord, slack, telegram and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;更好的开发者链接 - 有关如何成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读本期BetterDev。本周我们将学习如何进行SWIFT支付，想象一下你不需要依赖Stripe，而是可以直接通过SWIFT协议从自己的银行进行支付。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请将它分享给你的朋友。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Snyk激动地宣布DevSecCon 2024，AI信任开发，10月8-9日，一个免费的虚拟峰会，面向所有级别的DevOps、开发人员和安全专家&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;听取John Hammond和Daniel Miessler关于在AI驱动开发时代构建和维护信任所需的关键策略和具有指导性的DevSecOps方法。 &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;保留你的席位&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://iso20022js.com/guides/how-to-send-swift"&gt;如何从零开始发送SWIFT电汇&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SWIFT是全球最广泛使用的国际支付方式。在本教程中，我们将讲解如何通过编程方式向你的银行发送SWIFT电汇，你需要哪些关于接收方的信息才能确保支付顺利清算，以及你可能需要的软件。以下示例可以使用iso20022.js在代码中实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://labs.watchtowr.com/we-spent-20-to-achieve-rce-and-accidentally-became-the-admins-of-mobi/"&gt;我们花20美元实现RCE并意外成为.MOBI的管理员&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讲述一个因未续费域名而能够注册并控制端点，进而导致RCE的故事。另一个提醒是，如果你曾经使用过某个域名，停止使用它时不要让它过期。这也是另一个故事，建议继续使用传统TLD如.com、.net等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/btrees-and-database-indexes"&gt;B树和数据库索引&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;B树被许多现代数据库管理系统使用。学习它们的工作原理，数据库如何使用它们，以及你的主键选择如何影响索引性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.alexewerlof.com/p/slo-elastic-datadog-grafana"&gt;SLO：Elastic vs Datadog vs Grafana&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对三个平台上的SLO功能进行非常实际的比较。如果你正在评估这些可观测平台，这是一篇非常详细且值得阅读的文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.joshwcomeau.com/css/has/"&gt;CSS :has伪类的不可否认的实用性&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;CSS最近变得越来越好，许多高度请求的CSS功能都得到了实现。今天，我们将探讨&lt;code class="notranslate" translate="no"&gt;:has&lt;/code&gt;伪类，并分享一些我目前找到的最有趣的真实世界用例，以及一些真正令人惊叹的实验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.science/blog/better-performing-25519-elliptic-curve-cryptography"&gt;更高效的“25519”椭圆曲线加密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;近年来，你可能会注意到我们开始使用ED25519 SSH密钥而不是RSA。你会发现密钥长度大大缩短，但更加安全。另外，两种越来越受欢迎的加密算法是x25519。AWS在其AWS LibCrypto库中优化了x25519和Ed25519加密算法，提高了性能和安全性，并分享了基准测试和如何在这里使用它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.kenmuse.com/blog/the-many-shas-of-a-github-pull-request/"&gt;GitHub Pull Request的多种SHA&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你想在GitHub操作中获取GitHub提交的SHA。你会发现，根据是拉取请求还是分支推送，获取SHA的数据路径是不同的。在本文中，我们将揭开这一谜团。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://avestura.dev/blog/creating-a-git-commit-the-hard-way"&gt;创建Git提交：困难的方式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;要创建Git提交，我们通常使用Git的高级命令（也称为Porcelain命令），如git add和git commit。然而，还有一组Git命令，称为Plumbing命令，用于处理底层操作。在本文中，我们希望使用这些底层操作来创建Git提交，而不是使用git commit命令。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pyatl.dev/2024/09/01/bitten-by-unicode/"&gt;被Unicode咬伤&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有些字符看起来相同，但根据输入的位置，它们可能代表不同的Unicode编码。因此，今天我们将学习连字符和连字符减号的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://andyatkinson.com/copy-swap-drop-postgres-table-shrink"&gt;缩减大型PostgreSQL表：复制-交换-删除&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://neon.tech/blog/dynamically-estimating-and-scaling-postgres-working-set-size"&gt;动态估算和扩展Postgres的工作集大小&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/nuno-faria/tetris-sql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tetris-sql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用SQL的图灵完备性构建俄罗斯方块&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/1and1/acts_as_recursive_tree" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;acts_as_recursive_tree&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在使用PostgreSQL或SQLite时，利用递归查询在Rails中检索树状数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/drwl/annotaterb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;annotaterb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在你的代码中添加总结模型架构或路由的注释。这是一个非常好的代码库，可以学习如何解析和插入代码到现有文件中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/KwaiVGI/LivePortrait" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LivePortrait&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高效的人像动画，带有缝合和重定向控制&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/moderato-app/live-pprof" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;live-pprof&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;而不是为了监控Go应用程序的堆大小而让你的电脑变得杂乱，使用这个库来监控Go应用程序的性能。请注意，它主要是为本地开发构建的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fastfloat/fast_float" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast_float&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速且精确的C++ from_chars函数实现，用于数字类型：比strtod快4到10倍，是GCC 12、Chromium、Redis和WebKit/Safari的一部分。C++是我从未写过的语言，但我计划阅读以理解如何从字符解析浮点数。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pixijs/pixijs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pixijs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提供一个快速、轻量级的2D库，适用于所有设备。PixiJS渲染器让每个人都能享受硬件加速的威力，而无需了解WebGL。此外，它非常快速。真的非常快。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-triggers.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;css-triggers&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardolat/pgbackweb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgbackweb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🐘 通过用户友好的Web界面轻松备份PostgreSQL！🌐💾&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/linagora/tmail-flutter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tmail-flutter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个跨平台（Flutter）应用程序，使用JMAP协议在你最喜欢的设备上阅读电子邮件！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SVG-Edit/svgedit" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;svgedit&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;强大的浏览器SVG编辑器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/containrrr/shoutrrr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shoutrrr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个通知库和CLI工具，用于将通知发送到多个服务，如Discord、Slack、Telegram等。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</content>
    <link href="https://betterdev.link/issues/266"/>
    <summary type="html">&lt;h1&gt;Better Dev Link - Resource around the web on becoming a better programmer&lt;/h1&gt;
         &lt;p&gt;&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Welcome to another issue of BetterDev. This week we will learn about making SWIFT payment, imagine you don&amp;rsquo;t have to rely on Stripe, and just be able to make payment right from your bank through SWIFT Protocol.&lt;/p&gt;

&lt;p&gt;If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you&amp;rsquo;d like to support my work, &lt;a href="https://www.buymeacoffee.com/betterdev"&gt;buying me a coffee&lt;/a&gt; would be much appreciated.&lt;/p&gt;
&lt;/p&gt;
         &lt;ul&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Snyk is thrilled to announce DevSecCon 2024, Developing AI Trust Oct 8-9, a FREE virtual summit designed for DevOps, developer and security pros of all levels&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;Hear from John Hammond &amp;amp; Daniel Miessler on some of the critical strategies and prescriptive DevSecOps approach needed to build and maintain trust in the age of AI-powered development. &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Save your spot&lt;/a&gt;&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.iso20022js.com/guides/how-to-send-swift"&gt;How to Send a SWIFT Wire From Scratch&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;SWIFT is the most widely used international payment method in the world. In this tutorial we will be going over how to send a SWIFT wire programatically to your bank, what information you might need about your recipient to allow the payment to clear successfully, and the software you might need to do so. The following example can be implemented in code using iso20022.js.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://labs.watchtowr.com/we-spent-20-to-achieve-rce-and-accidentally-became-the-admins-of-mobi/"&gt;We Spent $20 To Achieve RCE And Accidentally Became The Admins Of .MOBI&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A tale of how not renewing domain allow one to register and control an endpoint, lead to RCE.  Another reminder that if you ever has a domain in use, then stopping using it, don&amp;rsquo;t let it expired.
Also, yet another story to stick with traditional TLD such as .com, .net etc&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://planetscale.com/blog/btrees-and-database-indexes"&gt;B-trees and database indexes&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;B-trees are used by many modern DBMSs. Learn how they work, how databases use them, and how your choice of primary key can affect index performance.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://blog.alexewerlof.com/p/slo-elastic-datadog-grafana"&gt;SLO: Elastic vs Datadog vs Grafana&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;A very hand-on comparison of SLO functionality on 3 platforms. Really good and detail write up if you&amp;rsquo;re evaluating these observability platfor.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.joshwcomeau.com/css/has/"&gt;The Undeniable Utility Of CSS :has&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;CSS is getting better and better recently with ton of of highly-requested CSS features delivered.
Today, we will looks into the &lt;code&gt;:has&lt;/code&gt; pseduo class and share some of the most interesting real-world use cases I’ve found so far, along with some truly mindblowing experiments.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.amazon.science/blog/better-performing-25519-elliptic-curve-cryptography"&gt;Better-performing “25519” elliptic-curve cryptography&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;In recent years, you may notice we started to use SSH key with ED25519 instead of RSA. You will notice the key length is much shorter, but more secure. Another Two cryptographic algorithms that have become increasingly popular are x25519. AWS has optimized the x25519 and Ed25519 cryptographic algorithms in their AWS LibCrypto library, improving both performance and security and they share the benchmark and how we can use it here.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://www.kenmuse.com/blog/the-many-shas-of-a-github-pull-request/"&gt;The Many SHAs of a GitHub Pull Request&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;If you ever want to get the SHA of the Github commit in a Github action. You will quickly realize depend on pull request or branch push, the data path to get the SHA is different. In this we will demystify it&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://avestura.dev/blog/creating-a-git-commit-the-hard-way"&gt;Creating a Git commit: The Hard Way&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;To create git commit, we use Git high-level commands (also known as Porcelain commands) like git add, and git commit. However, there is another group of Git commands, known as Plumbing commands, that handle the low-level operations.  In this blog post, we want to create a Git commit using these low-level operations, and not the git commit command.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://pyatl.dev/2024/09/01/bitten-by-unicode/"&gt;Bitten by Unicode&lt;/a&gt;
           &lt;p&gt;
            &lt;p&gt;There are character that looks the same. But depending on where one type the message, it may be a different unicode code of the underlying data. So today we will learn the tail of hyphen and hyphen-minus.&lt;/p&gt;

           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://andyatkinson.com/copy-swap-drop-postgres-table-shrink"&gt;Shrinking Big PostgreSQL tables: Copy-Swap-Drop&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
          &lt;li&gt;
           &lt;a href="https://neon.tech/blog/dynamically-estimating-and-scaling-postgres-working-set-size"&gt;Dynamically estimating and scaling Postgres’ working set size&lt;/a&gt;
           &lt;p&gt;
            
           &lt;/p&gt;
          &lt;/li&gt;
          
         &lt;/ul&gt;
          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Code to read&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/nuno-faria/tetris-sql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tetris-sql&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Using SQL&amp;rsquo;s Turing Completeness to Build Tetris&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/1and1/acts_as_recursive_tree" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;acts_as_recursive_tree&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Make use of recursive queries in Rails when using Postgresql or SQLite to retrieve tree-based data.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/drwl/annotaterb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;annotaterb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Adds comments summarizing the model schema or routes in your. Really good codebase to learn how to parse and insert code into the existing files&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/KwaiVGI/LivePortrait" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LivePortrait&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Efficient Portrait Animation with Stitching and Retargeting Control&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/moderato-app/live-pprof" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;live-pprof&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Instead of cluttering up your computer with Docker, Prometheus, Grafana or even K8S just to monitor a Go app&amp;rsquo;s heap size, use this package to Monitor a Go app&amp;rsquo;s performance. Note that, it&amp;rsquo;s build mainly for local dev&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/fastfloat/fast_float" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast_float&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Fast and exact implementation of the C++ from_chars functions for number types: 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis and WebKit/Safari. C++ is the language I never wrote, but I do plan to read to understand how float parse from characters works.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;
          

          
            &lt;h3 class="subtitle"&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/h3&gt;
            &lt;ul&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/pixijs/pixijs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pixijs&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;to provide a fast, lightweight 2D library that works across all devices. The PixiJS renderer allows everyone to enjoy the power of hardware acceleration without prior knowledge of WebGL. Also, it&amp;rsquo;s fast. Really fast.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://css-triggers.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;css-triggers&lt;/a&gt;
                &lt;p&gt;&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/eduardolat/pgbackweb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgbackweb&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/linagora/tmail-flutter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tmail-flutter&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A multi-platform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/SVG-Edit/svgedit" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;svgedit&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;Powerful SVG-Editor for your browser&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
              &lt;li&gt;&lt;a href="https://github.com/containrrr/shoutrrr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shoutrrr&lt;/a&gt;
                &lt;p&gt;&lt;p&gt;A notifications library and a CLI to send notification to multiple services such as discord, slack, telegram and more.&lt;/p&gt;
&lt;/p&gt;
              &lt;/li&gt;
            
            &lt;/ul&gt;&lt;br /&gt;---------------&lt;br /&gt;

&lt;html&gt;&lt;body&gt;&lt;h1&gt;更好的开发者链接 - 有关如何成为更好程序员的网络资源&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;大家好，&lt;/p&gt;
&lt;p&gt;欢迎阅读本期BetterDev。本周我们将学习如何进行SWIFT支付，想象一下你不需要依赖Stripe，而是可以直接通过SWIFT协议从自己的银行进行支付。&lt;/p&gt;
&lt;p&gt;如果你喜欢BetterDev，请将它分享给你的朋友。如果你愿意支持我的工作，&lt;a href="https://www.buymeacoffee.com/betterdev"&gt;给我买杯咖啡&lt;/a&gt;将不胜感激。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;Snyk激动地宣布DevSecCon 2024，AI信任开发，10月8-9日，一个免费的虚拟峰会，面向所有级别的DevOps、开发人员和安全专家&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;听取John Hammond和Daniel Miessler关于在AI驱动开发时代构建和维护信任所需的关键策略和具有指导性的DevSecOps方法。 &lt;a href="https://www.vpdae.com/redirect/9buuwe3ccfskwiekk4lxhs639st"&gt;保留你的席位&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://iso20022js.com/guides/how-to-send-swift"&gt;如何从零开始发送SWIFT电汇&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;SWIFT是全球最广泛使用的国际支付方式。在本教程中，我们将讲解如何通过编程方式向你的银行发送SWIFT电汇，你需要哪些关于接收方的信息才能确保支付顺利清算，以及你可能需要的软件。以下示例可以使用iso20022.js在代码中实现。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://labs.watchtowr.com/we-spent-20-to-achieve-rce-and-accidentally-became-the-admins-of-mobi/"&gt;我们花20美元实现RCE并意外成为.MOBI的管理员&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;讲述一个因未续费域名而能够注册并控制端点，进而导致RCE的故事。另一个提醒是，如果你曾经使用过某个域名，停止使用它时不要让它过期。这也是另一个故事，建议继续使用传统TLD如.com、.net等。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://planetscale.com/blog/btrees-and-database-indexes"&gt;B树和数据库索引&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;B树被许多现代数据库管理系统使用。学习它们的工作原理，数据库如何使用它们，以及你的主键选择如何影响索引性能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.alexewerlof.com/p/slo-elastic-datadog-grafana"&gt;SLO：Elastic vs Datadog vs Grafana&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;对三个平台上的SLO功能进行非常实际的比较。如果你正在评估这些可观测平台，这是一篇非常详细且值得阅读的文章。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.joshwcomeau.com/css/has/"&gt;CSS :has伪类的不可否认的实用性&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;CSS最近变得越来越好，许多高度请求的CSS功能都得到了实现。今天，我们将探讨&lt;code class="notranslate" translate="no"&gt;:has&lt;/code&gt;伪类，并分享一些我目前找到的最有趣的真实世界用例，以及一些真正令人惊叹的实验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.science/blog/better-performing-25519-elliptic-curve-cryptography"&gt;更高效的“25519”椭圆曲线加密&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;近年来，你可能会注意到我们开始使用ED25519 SSH密钥而不是RSA。你会发现密钥长度大大缩短，但更加安全。另外，两种越来越受欢迎的加密算法是x25519。AWS在其AWS LibCrypto库中优化了x25519和Ed25519加密算法，提高了性能和安全性，并分享了基准测试和如何在这里使用它们。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.kenmuse.com/blog/the-many-shas-of-a-github-pull-request/"&gt;GitHub Pull Request的多种SHA&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;如果你想在GitHub操作中获取GitHub提交的SHA。你会发现，根据是拉取请求还是分支推送，获取SHA的数据路径是不同的。在本文中，我们将揭开这一谜团。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://avestura.dev/blog/creating-a-git-commit-the-hard-way"&gt;创建Git提交：困难的方式&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;要创建Git提交，我们通常使用Git的高级命令（也称为Porcelain命令），如git add和git commit。然而，还有一组Git命令，称为Plumbing命令，用于处理底层操作。在本文中，我们希望使用这些底层操作来创建Git提交，而不是使用git commit命令。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pyatl.dev/2024/09/01/bitten-by-unicode/"&gt;被Unicode咬伤&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;有些字符看起来相同，但根据输入的位置，它们可能代表不同的Unicode编码。因此，今天我们将学习连字符和连字符减号的故事。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://andyatkinson.com/copy-swap-drop-postgres-table-shrink"&gt;缩减大型PostgreSQL表：复制-交换-删除&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://neon.tech/blog/dynamically-estimating-and-scaling-postgres-working-set-size"&gt;动态估算和扩展Postgres的工作集大小&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;值得阅读的代码&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/nuno-faria/tetris-sql" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tetris-sql&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用SQL的图灵完备性构建俄罗斯方块&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/1and1/acts_as_recursive_tree" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;acts_as_recursive_tree&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在使用PostgreSQL或SQLite时，利用递归查询在Rails中检索树状数据。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/drwl/annotaterb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;annotaterb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;在你的代码中添加总结模型架构或路由的注释。这是一个非常好的代码库，可以学习如何解析和插入代码到现有文件中。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/KwaiVGI/LivePortrait" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;LivePortrait&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;高效的人像动画，带有缝合和重定向控制&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/moderato-app/live-pprof" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;live-pprof&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;而不是为了监控Go应用程序的堆大小而让你的电脑变得杂乱，使用这个库来监控Go应用程序的性能。请注意，它主要是为本地开发构建的。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fastfloat/fast_float" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;fast_float&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;快速且精确的C++ from_chars函数实现，用于数字类型：比strtod快4到10倍，是GCC 12、Chromium、Redis和WebKit/Safari的一部分。C++是我从未写过的语言，但我计划阅读以理解如何从字符解析浮点数。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 class="subtitle"&gt;&lt;strong&gt;工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pixijs/pixijs" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pixijs&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;提供一个快速、轻量级的2D库，适用于所有设备。PixiJS渲染器让每个人都能享受硬件加速的威力，而无需了解WebGL。此外，它非常快速。真的非常快。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-triggers.com/" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;css-triggers&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/eduardolat/pgbackweb" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;pgbackweb&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;🐘 通过用户友好的Web界面轻松备份PostgreSQL！🌐💾&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/linagora/tmail-flutter" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;tmail-flutter&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个跨平台（Flutter）应用程序，使用JMAP协议在你最喜欢的设备上阅读电子邮件！&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SVG-Edit/svgedit" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;svgedit&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;强大的浏览器SVG编辑器&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/containrrr/shoutrrr" style="font-size: 1rem; text-decoration: underline;" target="_blank"&gt;shoutrrr&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;一个通知库和CLI工具，用于将通知发送到多个服务，如Discord、Slack、Telegram等。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <published>2024-09-16T12:19:00+00:00</published>
  </entry>
</feed>
