2026年2月

题⽬描述

给定⼀个⾮负整数 x ,计算并返回 x 的平⽅根,即实现 int sqrt(int x) 函数。

正数的平⽅根有两个,只输出其中的正数平⽅根。如果平⽅根不是整数,输出只保留整数的部分,⼩数部分将被舍去。

示例1
输⼊:8
返回值:2
解释:8 的平⽅根是 2.82842…,由于⼩数部分将被舍去,所以返回 2

思路及解答

暴力枚举

从0开始递增,找到最大的i满足i² ≤ x < (i+1)²

public class Solution {
    public int sqrt(int x) {
        // 处理边界情况
        if (x < 0) return -1; // 输入非法
        if (x <= 1) return x; // 0和1的平方根是自身
        
        // 从1开始线性查找
        int i = 1;
        while (i <= x / i) { // 使用除法避免溢出
            i++;
        }
        return i - 1; // i是第一个使i² > x的数,所以平方根是i-1
    }
}
  • 时间复杂度:O(√x),最多需要√x次循环
  • 空间复杂度:O(1),只使用常数空间

二分查找(最优解)

在[0, x]范围内查找平方根,不断缩小区间,直到找到满足条件的最大整数

如果 $m^2$ < n, ⽽且 $(m+1)^2$>n,那么说明 m 是 n 的平⽅根。

public class Solution {
    public int sqrt(int x) {
        if (x < 0) return -1;
        if (x <= 1) return x;
        
        int left = 1;
        int right = x / 2; // 优化:平方根不会超过x/2(x≥4时)
        int result = 0;
        
        while (left <= right) {
            int mid = left + (right - left) / 2; // 防止溢出
            long square = (long) mid * mid; // 使用long防止溢出
            
            if (square == x) {
                return mid; // 找到精确平方根
            } else if (square < x) {
                result = mid; // 记录当前可能的结果
                left = mid + 1; // 向右查找
            } else {
                right = mid - 1; // 向左查找
            }
        }
        
        return result;
    }
}
  • 时间复杂度:O(logn),每次将搜索范围减半
  • 空间复杂度:O(1)

牛顿迭代法

这就属于是使用数学方法了

利用切线逼近平方根,迭代公式:xₙ₊₁ = (xₙ + a/xₙ)/2,其中a是要求平方根的数

public class Solution {
    public int sqrt(int x) {
        if (x < 0) return -1;
        if (x == 0) return 0;
        
        double guess = x; // 初始猜测值
        double epsilon = 1e-6; // 精度要求
        
        // 牛顿迭代
        while (Math.abs(guess * guess - x) > epsilon) {
            guess = (guess + x / guess) / 2.0;
        }
        
        return (int) guess; // 向下取整
    }
    
    /**
     * 整数版本:避免浮点数运算
     */
    public int sqrtInt(int x) {
        if (x < 0) return -1;
        if (x <= 1) return x;
        
        long r = x; // 使用long防止溢出
        // 牛顿迭代的整数版本
        while (r * r > x) {
            r = (r + x / r) / 2;
        }
        
        return (int) r;
    }
}
  • 时间复杂度:O(log x),收敛速度极快
  • 空间复杂度:O(1),常数空间

位运算

利用二进制特性逐位确定平方根,最高位开始,逐位尝试将1变为0或保持1

public class Solution {
    public int sqrt(int x) {
        if (x < 0) return -1;
        if (x <= 1) return x;
        
        int result = 0;
        int bit = 1 << 15; // 从第16位开始尝试(因为int最大值约21亿,平方根约46340)
        
        while (bit > 0) {
            int temp = result | bit; // 尝试将当前位设为1
            if (temp <= x / temp) { // 等价于temp² ≤ x
                result = temp; // 当前位可以设为1
            }
            bit >>= 1; // 移到下一位
        }
        
        return result;
    }
}
  • 时间复杂度:O(log x),固定32次循环(对于int类型)
  • 空间复杂度:O(1),常数空间

位运算原理解析

为什么从第16位开始?

  • int最大值:2³¹-1 ≈ 21亿
  • √21亿 ≈ 46340 < 2¹⁶ = 65536
  • 所以只需要检查16位即可

执行过程示例(x=8,二进制1000):

初始: result=0, bit=1<<15=32768
bit太大,跳过...
直到bit=4: temp=4, 4²=16 > 8 → 不设置
bit=2: temp=2, 2²=4 ≤ 8 → result=2
bit=1: temp=3, 3²=9 > 8 → 不设置
返回: result=2

以前总觉得老人生病了不去看,现在自己的一些小毛病,也不想去看医生, 总是拖着。不知道大家小毛病或者慢性炎症啥的会去看医生吗

macos26 系统,微信输入法自动更新为最新版后,每次切换输入法都会出现如下弹窗:

即使为在辅助功能里给予权限后,仍然会弹窗;

气愤之下,我将微信输入法卸载了,使用系统自带输入法;
重启系统后,好家伙,切换输入法还是会出现这个弹窗;微信输入法都卸载干净了,找不到残留了。

真令人抓狂,这也太流氓了吧。

大伙谁有经验解决这个问题?

各位佬友大家好,潜水很久了,很久没带来新作品了。最近一直想找一个趁手的划词助手,市面上现成的插件不少,但大多要么过于臃肿(满屏广告和注册引导),要么模型支持有限。作为一个“强迫症”开发者,我决定自己动手撸一个趁手的划词工具。扩展的名称是:FlashClip (闪电划词),提供划词解释、翻译、总结、润色、搜索、复制等功能。支持 17+ 种 AI 模型服务商,完全开放可配置,所有交互均在浏览器端完成。

💡 为什么要做这个?

我给它定的设计原则是:自由、开放,轻量化。我不希望它打扰我的阅读,只在需要时出现,最少可以只显示一个图标,想要几个快捷操作就保留几个。

✨ 觉得还算拿得出手的地方:

  1. 模型自由: 一次适配了 17+ 种供应商,从国际主流的 OpenAI/Claude ,到国内的 DeepSeek 、通义、豆包,以及本地跑的 Ollama 。

  2. 快捷操作自由选:想要哪些快捷操作,自己在后台可以随意自定义,展示样式也可以选择,所有快捷操作的 Prompt 都可以根据不同的动作单独配置,充分自由!

  3. 不仅仅是划词: 还加入了搜索和复制功能,搜索引擎也支持完全的自定义。

  4. UI/UX 美观: 引入了 Framer Motion 动画和代码高亮,支持对话窗口的 Pin 固定和拖拽,夜间和日间模式适配,整体 UI 细节还算做的不错。

🛠️ 技术栈

  • Core: React 19 + TypeScript + Vite

  • Style: Tailwind CSS 4 + Lucide Icons

  • Logic: @mozilla/readability (提取网页正文)

安装方式:chrome 应用商店搜索扩展名称,edge 扩展商店正在审核中。

https://chromewebstore.google.com/detail/flashclip-free-ai-text-se/gajdagngnghmemlihphhhmfhhdmojhmc

💬 最后

如果有你特别喜欢的 AI 服务商没适配,或者有什么想要的功能,请在下面回复,我会尽力更新,谢谢大家🙏!

各位老哥好!

最近陪我家小姑娘玩 Twister (扭扭乐)的时候发现一个痛点——每次转完转盘就得手忙脚乱地去拨,经常转到一半人就倒了 😂

程序员爸爸的本能发作,花了点时间撸了个 App:**TwisterGO**

## 这是啥?

一个**语音控制的 Twister 转盘**,喊一声 "Go" 手机就会随机喊出指令(比如"左脚 → 蓝色"),还有音效和震动反馈,再也不用腾出手来转转盘了。

现在可以解放双手,专心看小朋友们扭成一团 🤣

## 主要特点

- 🎙️ 喊 "Go" 就转,完全免提
- 🔒 语音识别 100% 本地运行,不联网、不上传任何数据
- 🌍 支持中文、英语、日语、德语、法语、西班牙语
- 🎵 转盘音效 + 震动反馈,小朋友很喜欢
- ⚡ 响应很快,喊完立刻出结果

## 求助的事情

Google Play 新政策要求新 App 必须有 **12 个人加入 Closed Testing 并测试 14 天** 才能发布正式版。

目前还差不少人,恳请各位老哥帮忙点一下,**不需要安装、不需要真的用,只需要点两个链接就行**,1 分钟搞定 🙏

### 操作步骤:

**Step 1:用 Google 账号加入测试群组**
👉 https://groups.google.com/g/twistgotester

**Step 2:点击成为测试者**
👉 https://play.google.com/apps/testing/com.k2fsa.sherpa.onnx.twistergo

两步都点完就算帮到我了!感谢 🙏🙏🙏

自己打算先把文档过一遍,之间用过 php Go ,关于 python 基础再过一遍。想搞搞 LangChain LangGraph LangSmith 做过的佬给些建议。熟悉后,看看搞搞自己熟悉的业务垂直领域。熟悉的佬给些建议,欢迎各位聊起。

点赞 + 关注 + 收藏 = 学会了

整理了一个NAS小专栏,有兴趣的工友可以关注一下 👉 《NAS邪修》

wxchat 主打文件传输助手本地私有化存储,数据全程不上传第三方。

我这次使用绿联 NAS 部署 wxchat,其他品牌的 NAS 操作步骤大同小异。

在“文件管理”里找个位置(我是在“docker”文件夹里操作),新建一个“wxchat”文件夹。

然后在“wxchat”文件夹下再创建2个文件夹:

  • uploads:以后上传的文件都存到这里。
  • data:数据库文件会存放在这里,也就是聊天记录。

打开“Docker”,切换到「镜像」。

yilan666/wxchat,找到红框那个,点击“下载”。

下载好之后,切换到「本地镜像」,点击它旁边的加号,创建一个容器。

容器配置这边,可以开启“自动重启”。

然后往下滑,在环境变量这里添加3项:

  • DATABASE_PATH:/app/data/wxchat.db
  • UPLOAD_PATH:/app/uploads
  • ACCESS_PASSWORD:密码,建议输入一个复杂点的,但你一定要记得住

再往下滑动,在存储空间这里新增2项,分别指向刚刚你创建的那两个文件夹。权限都是“读写”。

  • /app/data
  • /app/uploads

继续往下滑,配置一个端口号,比如我这里给的是 42906

然后点击“确定“,等项目构建完成后,在浏览器输入 你NAS的IP:42906 就能用了。

首次打开需要输入密码,这个密码就是前面在环境变量里配的那个。

登录后就可以发消息了。文字、图片、其他文件都能发。

而且在手机端也能用。

需要注意的是,iPhone这边下载的图片不是直接存放到相册里的,要在“文件”这个App里的“下载”文件夹里找。


以上就是本文的全部内容啦,有疑问可以在评论区讨论~

想了解更多NAS玩法可以关注《NAS邪修》👏

点赞 + 关注 + 收藏 = 学会了

大家好,我是良许。

最近在技术圈里,区块链和智能合约这两个词的热度一直居高不下。

作为一名嵌入式程序员,我一开始对这些概念也是一知半解,但随着物联网设备与区块链技术的结合越来越紧密,我发现有必要深入了解一下这个领域。

今天就和大家聊聊区块链和智能合约到底是什么,它们是如何工作的,以及在嵌入式领域有哪些应用场景。

1. 区块链技术基础

1.1 什么是区块链

区块链本质上是一种分布式账本技术。

你可以把它想象成一个公开的记账本,这个账本不是存放在某一台服务器上,而是同时存在于网络中的成千上万台计算机上。

每当有新的交易发生,所有参与者都会收到通知并更新自己的账本副本。

这种设计最大的优势在于去中心化和防篡改。

传统的数据库系统,数据都存储在中心服务器上,一旦服务器被攻击或者管理员作恶,数据就可能被篡改。

但在区块链系统中,要想篡改数据,你需要同时控制网络中超过 51% 的节点,这在大型区块链网络中几乎是不可能完成的任务。

1.2 区块链的基本结构

区块链由一个个"区块"按照时间顺序链接而成。

每个区块包含三个核心部分:区块头、交易数据和哈希值。

区块头记录了这个区块的元数据,比如时间戳、前一个区块的哈希值等。

交易数据就是这个区块中记录的所有交易信息。

哈希值则像是这个区块的"指纹",通过加密算法对区块内容进行计算得出,任何微小的改动都会导致哈希值完全不同。

最关键的是,每个区块都包含了前一个区块的哈希值,这样就形成了一条链。

如果有人想要篡改历史记录,比如修改第 100 个区块的内容,那么这个区块的哈希值就会改变,第 101 个区块中存储的"前一个区块哈希值"就对不上了,整条链就断了。

要想掩盖这个篡改,就必须重新计算从第 100 个区块到最新区块的所有哈希值,这需要巨大的计算量。

1.3 共识机制

在分布式系统中,如何让所有节点对新增的数据达成一致,这就需要共识机制。

最著名的是比特币使用的工作量证明(PoW)机制。

工作量证明要求矿工通过大量计算来竞争记账权。

具体来说,矿工需要找到一个特殊的数字(称为 nonce),使得区块头的哈希值满足特定条件(比如前面有若干个 0)。

这个过程需要不断尝试,谁先找到谁就获得记账权,并得到奖励。

除了 PoW,还有权益证明(PoS)、委托权益证明(DPoS)等多种共识机制,它们各有优劣,适用于不同的应用场景。

2. 智能合约详解

2.1 智能合约的概念

智能合约是运行在区块链上的程序代码,它可以自动执行、控制或记录法律相关的事件和行动。

简单来说,就是"如果满足条件 A,就自动执行操作 B"的自动化协议。

举个例子,传统的租房合约需要房东和租客签字,可能还需要中介见证。

而智能合约可以这样设计:每月 1 号,如果租客账户有足够余额,自动转账给房东.

如果连续三个月未支付,自动解除合约并通知双方。

整个过程不需要人工干预,完全由代码自动执行。

2.2 智能合约的工作原理

智能合约通常用特定的编程语言编写,比如以太坊使用 Solidity 语言。

合约代码部署到区块链后,会得到一个唯一的地址,就像一个账户一样。

当有人想要调用这个合约时,需要发送一笔交易到合约地址,交易中包含要调用的函数名和参数。

区块链网络中的节点收到这笔交易后,会在本地执行合约代码,计算出结果。

由于所有节点使用相同的代码和输入,它们会得到相同的输出,这就保证了执行结果的一致性。

执行结果会被记录在新的区块中,永久保存。

这意味着智能合约的执行历史是完全透明和可追溯的,任何人都可以验证某个合约是否按照预期执行。

2.3 智能合约示例

虽然我主要做嵌入式开发,但理解智能合约的代码逻辑对我们也很有帮助。

下面是一个简单的以太坊智能合约示例,实现了一个基础的代币功能:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
​
contract SimpleToken {
    // 代币名称
    string public name = "SimpleToken";
    // 代币符号
    string public symbol = "STK";
    // 总供应量
    uint256 public totalSupply;
    
    // 记录每个地址的余额
    mapping(address => uint256) public balanceOf;
    
    // 转账事件
    event Transfer(address indexed from, address indexed to, uint256 value);
    
    // 构造函数,创建合约时执行
    constructor(uint256 _initialSupply) {
        totalSupply = _initialSupply;
        balanceOf[msg.sender] = _initialSupply;
    }
    
    // 转账函数
    function transfer(address _to, uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value, "Insufficient balance");
        require(_to != address(0), "Invalid address");
        
        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;
        
        emit Transfer(msg.sender, _to, _value);
        return true;
    }
}

这个合约定义了一个简单的代币系统。

构造函数在部署时执行,将所有代币分配给部署者。

transfer 函数允许用户将代币转给其他人,函数内部会检查余额是否足够,然后更新双方的余额,最后触发一个转账事件。

3. 嵌入式系统与区块链的结合

3.1 物联网设备上链

作为嵌入式程序员,我最关心的是区块链技术如何应用到我们的领域。

物联网设备与区块链的结合是一个很有前景的方向。

传统的物联网架构中,设备采集的数据通常上传到云端服务器,这存在数据安全和隐私问题。

而通过区块链,设备可以将数据直接写入分布式账本,保证数据的真实性和不可篡改性。

比如在供应链管理中,每个环节的传感器(温度、湿度、位置等)可以将数据实时上链。

从生产、运输到销售,整个过程的数据都被记录且无法篡改,消费者可以完全追溯产品的来源和流转过程。

3.2 嵌入式设备的轻量级区块链实现

完整的区块链节点对计算能力和存储空间要求很高,这对资源受限的嵌入式设备是个挑战。

但我们可以采用轻量级的实现方案。

一种方法是使用简化支付验证(SPV)模式,设备只存储区块头而不存储完整的交易数据。

区块头通常只有 80 字节左右,即使是 STM32 这样的单片机也能存储大量区块头。

当需要验证某笔交易时,可以向完整节点请求默克尔证明。

下面是一个简化的区块头结构示例,可以在 STM32 上实现:

#include "stm32f4xx_hal.h"
#include <string.h>
​
// SHA256哈希长度
#define HASH_SIZE 32
​
// 区块头结构
typedef struct {
    uint32_t version;              // 版本号
    uint8_t prev_hash[HASH_SIZE];  // 前一个区块的哈希
    uint8_t merkle_root[HASH_SIZE];// 默克尔根
    uint32_t timestamp;            // 时间戳
    uint32_t difficulty;           // 难度值
    uint32_t nonce;                // 随机数
} BlockHeader;
​
// 计算区块哈希(简化版,实际需要使用SHA256)
void calculate_block_hash(BlockHeader *header, uint8_t *hash_out) {
    // 这里应该使用真正的SHA256算法
    // 为了演示,我们使用简化的哈希计算
    uint8_t *data = (uint8_t *)header;
    uint32_t sum = 0;
    
    for (int i = 0; i < sizeof(BlockHeader); i++) {
        sum += data[i];
    }
    
    // 将sum转换为哈希(实际应用中需要使用加密哈希函数)
    memset(hash_out, 0, HASH_SIZE);
    memcpy(hash_out, &sum, sizeof(uint32_t));
}
​
// 验证区块链
int verify_blockchain(BlockHeader *blocks, int count) {
    uint8_t calculated_hash[HASH_SIZE];
    
    for (int i = 1; i < count; i++) {
        // 计算前一个区块的哈希
        calculate_block_hash(&blocks[i-1], calculated_hash);
        
        // 验证当前区块存储的前一个区块哈希是否正确
        if (memcmp(blocks[i].prev_hash, calculated_hash, HASH_SIZE) != 0) {
            return 0; // 验证失败
        }
    }
    
    return 1; // 验证成功
}
​
// 创建新区块
void create_new_block(BlockHeader *new_block, BlockHeader *prev_block, 
                      uint8_t *merkle_root, uint32_t timestamp) {
    new_block->version = 1;
    calculate_block_hash(prev_block, new_block->prev_hash);
    memcpy(new_block->merkle_root, merkle_root, HASH_SIZE);
    new_block->timestamp = timestamp;
    new_block->difficulty = 0x1d00ffff;
    new_block->nonce = 0;
}

这段代码展示了如何在 STM32 上实现基本的区块链数据结构和验证逻辑。

实际应用中,我们需要集成真正的 SHA256 加密库,并根据具体需求优化内存使用。

3.3 智能合约控制嵌入式设备

另一个有趣的应用是通过智能合约来控制嵌入式设备。

设备可以监听区块链上的特定合约事件,当满足条件时执行相应操作。

比如在智能家居场景中,可以创建一个智能合约来管理门锁权限。

当用户通过手机 APP 调用合约的授权函数时,合约会触发一个事件。

门锁设备监听到这个事件后,就会允许对应用户开门。

整个过程的记录都保存在区块链上,可以随时查询谁在什么时间开过门。

这种方案的优势在于去中心化和安全性。

即使云端服务器宕机,只要区块链网络正常运行,设备仍然可以正常工作。

而且由于区块链的不可篡改特性,所有操作记录都是可信的。

4. 实际应用场景

4.1 汽车电子领域的应用

在我从事的汽车电子领域,区块链技术也开始崭露头角。

车辆的维修记录、行驶里程、事故历史等信息如果记录在区块链上,就能有效防止二手车交易中的欺诈行为。

车载系统可以定期将关键数据(如里程数、保养记录、故障码等)上传到区块链。

这些数据一旦上链就无法篡改,买家在购买二手车时可以完全信任这些信息。

这对整个二手车市场的健康发展有重要意义。

4.2 工业物联网应用

在工业生产中,设备的运行数据、生产参数、质量检测结果等如果记录在区块链上,可以实现完整的生产追溯。

当产品出现质量问题时,可以快速定位是哪个环节、哪台设备、什么时间出现的问题。

而且,通过智能合约可以实现设备之间的自动协作。

比如当某个传感器检测到异常时,智能合约自动触发,通知相关设备停机检修,同时记录整个过程,实现工业生产的智能化管理。

4.3 能源管理系统

在智能电网中,区块链可以用于点对点的能源交易。

安装了太阳能板的家庭可以将多余电力出售给邻居,整个交易过程通过智能合约自动完成,不需要电力公司作为中介。

嵌入式智能电表可以实时监测发电量和用电量,并与区块链交互。

当有多余电力时,智能合约自动匹配买家并完成交易,资金结算也是自动进行的。

这种去中心化的能源交易模式可以提高能源利用效率,降低交易成本。

5. 技术挑战与未来展望

5.1 性能瓶颈

目前区块链技术面临的最大挑战是性能问题。

比特币每秒只能处理约 7 笔交易,以太坊也只有 15-20 笔,这与传统数据库系统相比差距很大。

对于需要实时响应的嵌入式应用,这是一个严重的限制。

不过,新一代区块链技术正在解决这个问题。

比如分片技术、侧链、状态通道等方案都能显著提升交易处理能力。

随着技术的发展,性能瓶颈会逐步得到缓解。

5.2 能耗问题

工作量证明机制需要大量计算,导致能耗很高。

这对于电池供电的嵌入式设备来说是不可接受的。

好在现在有很多低能耗的共识机制,比如权益证明、实用拜占庭容错等,更适合资源受限的设备。

5.3 标准化问题

目前区块链领域还缺乏统一的标准,不同的区块链平台之间难以互通。

对于嵌入式开发者来说,这意味着需要针对不同平台开发不同的接口,增加了开发难度。

未来随着行业的成熟,相信会出现更多的标准化协议,让不同系统之间的集成变得更加容易。

作为一名嵌入式程序员,我认为区块链和智能合约技术虽然还处于发展阶段,但已经展现出巨大的潜力。

特别是在物联网、工业自动化、智能交通等领域,区块链技术能够解决传统方案难以解决的信任和安全问题。

虽然目前还面临一些技术挑战,但随着技术的不断进步,相信区块链会在嵌入式领域发挥越来越重要的作用。

我们作为技术从业者,应该保持开放的心态,积极学习和探索这些新技术,为未来的应用做好准备。

更多编程学习资源

最近在学习 Seedance 2.0 ,顺手搭了个网站收集看到的优秀案例。

网址: https://www.awesomeseedance.com/

为什么要做这个:

自己学习过程中发现好的提示词挺分散的,有的在微博、有的在 Twitter 、有的在官方文档。就想着集中整理一下,方便自己查阅,也顺便分享给同样需要的人。

学习就是多看案例多练习。

后续计划:

  • 继续收集更多社区案例
  • 写一些提示词学习心得博客
  • 可能加一个提交功能,大家可以分享自己的作品

如果对你有帮助就好。有任何建议欢迎提。

大概 5 万首个,通过 itunes match 全部匹配了一遍,虽然不是无损,但是也 OK 了
但是 tag 信息不是很全,itunes match 似乎没有补全 tag 信息的功能,目前的需求如下:
1.补全 tag 信息
2.删除重复文件
3.根据歌手/专辑/歌曲进行整理,最好可以告知缺失的文件,我用 itunes match 匹配一下

看了一圈似乎就是这个了? https://github.com/xhongc/music-tag-web
尝试过 MusicBrainz Picard ,全部搞成了繁体,面目全非。。。

GitHub 最近推出 Agentic Workflows(智能体工作流)技术预览版。据 GitHub 介绍,这是一种借助可理解上下文与意图的编码智能体来自动化完成复杂、重复性仓库任务的全新方案。该技术可实现自动问题分类与标注、文档更新、CI 故障排查、测试优化及报告生成等工作流。

我们最初探索 GitHub Agentic Workflows 源于一个简单的问题:在 AI 编码智能体时代,具备强大安全防护机制的仓库自动化会是怎样的形态?而一个很自然的切入点就是作为 GitHub 上可扩展仓库自动化核心的 GitHub Actions。

GitHub Agentic Workflows 利用了大语言模型的自然语言理解能力,让开发者只需通过简洁的 Markdown 文件定义自动化目标、描述预期结果,随后编码智能体便可通过 GitHub Actions 执行这些指令。

这样可以在现有的自动化基础设施之上构建智能体工作流,继承权限管理、日志记录、沙箱隔离和可审计性等能力,同时融入额外的安全控制机制,从而实现“真正可持续运行的智能体”。该架构大量使用隔离沙箱来运行智能体与 MCP 服务器,避免单个组件被入侵后影响整个系统;智能体由防火墙保护,仅能访问开发者明确授权的资源。

此外,该系统具备强大的安全防护机制,可将 AI 决策安全地集成到 CI 流程中。工作流默认以只读权限运行,任何写入操作(如创建 PR 或 Issue)都必须经过安全输出流程,确保输出可审查、可管控。

GitHub 表示,开发者也可采用另一种方案:将 Copilot、Claude 等编码智能体的 CLI 直接集成到标准的 GitHub Actions YAML 工作流中。但这样做,会授予智能体超出特定任务所需的过多权限。

GitHub 重点介绍的示例包括持续分类、文档维护、代码质量改进、每日状态报告等,体现了 GitHub 所提出的持续 AI(Continuous AI)的愿景。据 GitHub 表示,无论是智能体工作流还是持续 AI,其目的都是增强而非取代现有的 CI/CD 流程,并确保人类始终参与拉取请求审批等关键决策环节。

GitHub Agentic Workflow 的定义采用 Markdown 文件的形式,包含两个部分:第一部分使用 YAML 指定配置细节,例如何时运行工作流、所需权限、输出内容以及使用的工具;第二部分用自然语言描述任务,如下例所示:

# Daily Repo Status Report  Create a daily status report for maintainers.  Include - Recent repository activity (issues, PRs, discussions, releases, code changes) - Progress tracking, goal reminders and highlights - Project status and recommendations - Actionable next steps for maintainers  Keep it concise and link to the relevant issues/PRs.
复制代码

在 Hacker News 上,woodruffw 表达了对持续 AI 这一宽泛概念的担忧,但同时也指出,利用 LLM 生成工作流规范或许具备一定价值:

我能理解让 LLM 辅助开发 CI/CD 工作流的价值,但想不明白为什么要让它以持续运行的方式参与到 CI/CD 流程中?

wiether 评论称,这种结合 YAML 和 Markdown 的工作流格式“糟糕得可笑”,在一定程度上背离了“让非技术人员以低代码/无代码方式创建自己的工作流与 CI”这一目标。

最后,ljm 对使用智能体 AI 可能带来大量额外开销表示担忧,并表示不希望“任何借助生成式 AI 进行重构或文档维护的工作流刷屏我的仓库”。

如前所述,GitHub Agentic Workflow 仍处于技术预览阶段,暂不适合用于生产环境。如需更多工作流示例,GitHub 建议开发者查看 Peli 的 Agent Factory

原文链接:

https://www.infoq.com/news/2026/02/github-agentic-workflows/

📰 今日新闻精选:

  • 2026 年全国票房突破 90 亿元,两天连跨两个十亿大关,暂列全球单一市场第一
  • 上海发布楼市 “沪七条”:符合条件非沪籍居民可在外环内增购 1 套住房,公积金最高能贷 324 万
  • 庐山风景区公告:今年 3 月对全体海内外游客免门票
  • 贵州盘州一乡倡议 “双方二婚不摆酒” 引热议,当地回应:村民自治非强制
  • 甘肃一中学超长作息表引关注:早 5 点 35 读书,晚 11 点 20 放学;当地教育局回应:尚未执行
  • 教育部:将严防 “阴阳课表”,严查挤占体育课、课间不准学生出教室等行为
  • 广州时隔 27 年将重启赛马:已与香港跨境养马 9 年,赛事将沿用与香港同样的标准
  • 在岸、离岸人民币对美元汇率均升破 6.87,创 34 个月新高
  • 我国可重复使用火箭 “朱雀三号” 计划于今年第二季度再次挑战回收
  • 中德联合声明发布:同意强化体育领域合作、继续开展气候变化与绿色转型对话
  • 中领馆提醒:18-65 岁在俄长期居留男性,须同意在俄军事单位等至少服役 1 年
  • 日媒:高市早苗被曝向自民党议员发放数万日元礼品,在野党将展开追责
  • 美媒:比尔・盖茨就与爱泼斯坦的关系向基金会员工道歉,并再度否认参与其犯罪行为
  • 美媒:美国政府削减儿童疫苗接种计划,遭 15 个州联合起诉;纽约州要求特朗普政府退还 135 亿美元关税
  • 美媒:特朗普发表 107 分钟史上最长国情咨文,谈及移民、经济和犯罪问题;民调显示 6 成美国人认为特朗普年纪越大越反复无常

📅 今日信息:

  • 公历:2026-02-26 星期四 双鱼座
  • 农历:二〇二六年正月初十
  • 下一节气:2026-03-05,惊蛰
  • 今年进度:15.62%(已过 57 天,剩余 307 天)

🌟 历史上的今天

  • 1993 年:世界贸易中心(纽约)发生爆炸案,造成 6 人死亡,超过 1000 人受伤,提醒我们安全与和平的珍贵。
  • 1848 年:法国二月革命爆发,推动了欧洲民主运动的发展,影响了后续的社会变革。

家里飞来的一只鹦鹉,被我养死了,后悔没早点给它吃药,它不活跃已经有好几天了,我没经验不重视,等我反应过来给它吃药的时候,它已经快撑不住了。
有没有养鸟的朋友给点经验,要怎么养。

之前咱们这租金收益如此之低,房产投资回报率还那么高,纯粹是靠炒房的投机风气,如果回归理性考虑,核心还是租金收益为主,资本增值为辅。

投资要考虑收益,以十年期国债作为无风险利率 1.85%为“基底”,叠加其他成本,才是真实合理的投资收益。

在当前这个时段,几乎没有房产税的成本,那就主要剩下折旧和流动性风险,这些都要考虑进去作为投资的成本,折旧和流动性风险加一起,溢价 2%感觉不为过,那 1.85+2=3.85%。

也就是至少这套房子抛开室内维护、空置后的租金净收益率为 3.85%,才有投资价值,否则约等于承担了风险,但没有获得收益。

如果考虑贷款 85%买房,等于上杠杆,投资的性质就发生了变化,此时还要考虑到杠杆成本。简单来说,就是租金扣除必要开支后,必须能覆盖当前 3.5%的贷款利息。

按照加权平均资本成本( WACC )计算,此时的资金由 15%的自有资金和 85%的银行贷款组成。要达到预期的投资价值,这套房产的“盈亏平衡租售比”应该如下计算:

  1. 自有资金成本:3.85%*15% = 0.5775%(目标回报)
  2. 贷款利息成本:3.5%*85% = 2.975%(房贷利息)

两者相加等于 3.5525%,约 3.56%。也就是说,只有当租售比至少达到 3.56%时,你才能负担得起银行利息的同时,让 15%自有资金拿到应有的风险回报。如果租售比低于这个值,你实际上是在给银行打工而已。

如果这里你无法理解,我举个例子来说明,假设你首付 15%购买了一套 100 万的房子,租售比为 3.5525%:

  • 总租金收入:3.5525 万
  • 你付给银行的利息:85*3.5% = 2.975 万
  • 剩下的利润:3.5525-2.975 = 0.5775 万
  • 你投入的本金:15 万
  • 你的实际收益率:0.5775/15*100 = 3.85%

通过这个例子,你应该能理解如果贷款买房时,为何是约 3.56%这个租售比了。

租金低于上述两个收益率还去投资房产的话,我觉得就属于是去博未来有大幅的资本增值了,稍微有些危险。

租售比的提升,有可能是租金的提升,也有可能是房价的下跌。



为什么不买债券?

也许有人会认为 3.85%的收益,还不如买债券,长期年化还有 4%左右,波动比房产小,流动性又好。 但房产自身也可能因为土地需缺性、经济增长、政策支撑等因素升值,假设未来每年房产自身还有 2%的升值空间,那最终的收益是 3.85+2=5.85%。

此时房产就是一个介于债券和股票之间的投资品,它的收益高于债券低于股票,波动同样高于债券低于股票。



总结

所以,一套房子只有租售比达到了 3.85%,我觉得才是可以考虑投资的,且是全款的情况,如果贷款,则要再计算一下贷款成本。

之所以是“可以考虑”,是因为目前房价还处于下行期,即使出现了租售比达标的房产,买入后如果房价本身持续下跌,需要经过很多年才能回正或者上涨,那你的本金其实也变相的锁死在里面了。

类型 型号 数量 单价
CPU AMD 9800X3D 1 3192.00
主板 华硕 TUF GAMING B850-PLUS WIFI 1 1789.00
内存 金百达 星刃海力士 A-die C28 16G 2 3250.00
显卡 华硕 TUF RTX 5070Ti O16G 1 8556.00
固态硬盘 致态 TiPro9000 Gen5 2T 1 2287.00
机箱 华硕 GT302 装备库黑色 1 649.00
电源 振华 VII1200W 白金全模 1 1299.00
散热器 九州风神 冰立方 AK700 暗夜风冷 1 324.00
显示器 华硕 ROG 绝神 27 XG27UCG 1 2187.00


这是我自己拍脑袋弄出来的玩游戏的配置,不知道合不合理,请各位大佬指点一下需不需要修改,价格是京东的价格

肉身香港,2 年前之前也发过类似的话题,之前是 2500M 上下对等。买了个工控 2.5G 刷了 ikuai 做主路由,然后加了两个 2.5G 爱快 AP 就解决了。
用 iPhone 测速可以跑到下行 1600 ,上行 1200 ,最近到期了原宽带续费反而还要加 20 元每个月。
但是如果取消新装只是换个名字就可以得到原来的价格少 50 每个月还能变成 5G 上下对等。
而且可以等新宽带竣工旧的再取消。这样我自然乐意。
运营商送的以下(退网要还)
光猫 OptiXstar EN8250Ts-20
自带一个 10G 口,还有 4 个千兆口,两个语音口
也就是常规尺寸大小,摸起来就是很热。

路由器真的巨大,跟品牌机的小主机一样大
搜了下尺寸:302 x 262.5 x 96 mm
TPLINK EB810v BE22000 三頻 Wi-Fi 7 VoIP Router
1 個 10GE/SFP+ Combo WAN 連接埠、1 個 10GE LAN 連接埠和 3 個 2.5GE LAN
有线测速可以到 4998M
一个主路由明显是不够的。
想捣鼓下。
主要就是 15 个设备连接 WiFi ,包括开关,手机等各种 WiFi 设备
两个设备需要网线,一个是自用电脑,另外一个是 nas 。

补充下也有个 ASUS RT-BE86U 也是 10G 的,但是装的人说那个反而没这个好,如果要换也可以去申请。等几天即可
因为我没打算用他们的设备就默许了。