在 Go 语言中,切片 (slice) 是一种非常灵活且强大的数据结构,它提供了对底层数组部分连续片段的引用。然而,切片的一个特性常常让初学者感到困惑:切片本身是一个值类型,但在复制或传递过程中,其行为又似乎表现出引用类型的特征,尤其是在修改切片内容时。
最近,你可能遇到了类似下面这样的代码片段,并对其行为产生了疑问:
12345678910111213141516171819202122232425262728package mainimport "fmt"func main() { matrix := [][]int{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, } // 假设这是简化的逻辑,实际场景可能更复杂 rowFlags := []bool{false, true, false} // 示例:标记第二行需要清零 colFlags := []bool{false, false, true} // 示例 ...
项目源码
如果你对这个项目感兴趣,欢迎Star GitHub 仓库:Bilibili Watcher
使用截图
Light
Dark
项目背景在当今数字化时代,视频学习已经成为一种重要的学习方式。Bilibili 作为中国最大的视频平台之一,拥有海量的学习资源。然而,很多用户在使用 B 站学习时,常常会遇到以下问题:
无法准确追踪自己的学习时长
难以分析自己的观看习惯
缺乏对学习进度的系统化管理
基于这些痛点,我开发了 Bilibili Watcher - 一个开源的 B 站视频观看时长追踪与分析工具。
项目特点Bilibili Watcher 具有以下核心特点:
1. 数据可视化
提供直观的观看时长统计图表
支持多维度数据分析
清晰展示学习进度和趋势
2. 自动化追踪
定时自动同步 Bilibili 观看进度
无需手动记录,解放双手
实时更新数据,保持同步
3. 用户体验
支持浅色/深色主题切换
响应式设计,完美适配各种设备
简洁直观的界面设计
4. 数据安全
本地部署,数据完全掌握在自己手中
无需担心隐私泄露
支持数据导出和备份
快速开始使 ...
引言Supabase 作为一个强大的开源 Firebase 替代品,提供了便捷的后端服务,包括数据库、认证、存储等。与 Supabase 交互的核心是其 API Keys。当你创建一个 Supabase 项目时,系统会自动生成两个关键的密钥:anon key 和 service_role key。理解这两者的区别和正确使用场景至关重要,否则,你可能会像许多开发者(包括我)一样,陷入因行级安全(Row Level Security, RLS)策略而无法获取数据的困境,尤其是在服务端开发中。本文将深入探讨这两个密钥,并结合实际踩坑经验,帮助你避免同样的错误。
API Keys 与 PostgreSQL 角色首先,需要理解 Supabase 的 API Keys 本质上是映射到 PostgreSQL 数据库角色的长效 JWT(JSON Web Tokens)。如果你查看项目 API 设置中的密钥,会发现 anon key 和 service_role key。同时,在数据库的 Roles 部分,你也能找到对应的 anon 和 service_role 用户角色。
这些 JWT 包含了角色信息 ...
引言Go语言的接口(interface)提供了一种强大的方式来指定对象的行为。如果你有其他面向对象语言的背景,可能会觉得它与其他语言的接口或抽象类相似。然而,Go接口的内部实现机制——(type, value) pair——却有着独特的微妙之处,尤其是处理nil值时,常常让新手”踩坑”。本文将深入解析这一机制,并重点阐释为何一个包含nil值的接口变量本身却不等于nil。
Go接口的核心:(type, value) pair在Go语言中,一个接口类型的变量(interface value)内部实际上是由两部分组成的:
类型 (Type): 存储了赋给该接口变量的具体类型(Concrete Type)。
值 (Value): 存储了赋给该接口变量的具体值(Concrete Value)。
你可以把接口变量想象成一个”盒子”,盒子上贴着标签(Type),盒子里装着东西(Value)。
12345678910111213141516171819202122232425262728293031323334353637package mainimport "fmt"type ...
引言人工智能(AI)技术正以前所未有的速度改变我们的世界。本文将梳理AI、机器学习(ML)和深度学习(DL)的基础概念,介绍PPO、DPO、GRPO等强化学习算法,并简要探讨瑞典AI创业公司Lovable以及AWS CDK等基础设施工具在AI发展中的作用。
AI、ML与DL:层层递进的技术体系概念界定人工智能、机器学习和深度学习三者之间存在包含关系:
1人工智能(AI) ⊃ 机器学习(ML) ⊃ 深度学习(DL)
人工智能(AI)人工智能是研究如何使计算机模拟或实现人类智能的广泛领域,包括:
推理与问题解决
知识表示与处理
自然语言理解
感知与模式识别
规划与决策
机器学习(ML)机器学习是AI的一个子领域,重点研究如何让系统:
从数据中学习模式
自动提升性能
无需明确编程即可适应新情况
深度学习(DL)深度学习是机器学习的特定子集,主要特点是:
基于人工神经网络
多层次特征学习
端到端训练
适用于大规模数据
技术对比
特性
传统AI
机器学习
深度学习
数据依赖
低
中
高
特征工程
人工定义规则
部分自动
自动学习
可解释性
高
中
低
计算需求 ...
引言人工智能正在经历从被动响应到主动执行的变革,这场革命的核心是Agentic范式的兴起。本文将探讨AI代理技术的最新发展,深入分析Agentic范式、CodeAct多轮交互框架以及思维链(Chain of Thought)技术如何改变AI与世界的交互方式。
Agentic范式:从对话到执行的飞跃基本概念Agentic范式是一种全新的AI交互模式,代表着AI从单纯的对话系统向具有自主执行能力的代理系统的转变:
主动性:不再只是被动回应用户问题
目标导向:能够理解并实现用户意图
持续性:能够长期维持任务状态并动态调整
自主性:在明确范围内独立决策和行动
核心组件一个典型的Agentic系统包含以下关键组件:
1234567891011121314151617181920212223class AgenticSystem: def __init__(self): self.perception = EnvironmentPerception() # 感知环境 self.planning = StrategicPlanning() # 规 ...
引言人工智能技术正以前所未有的速度发展,各大AI公司不断推出创新技术与模型架构。本文将深入探讨三种前沿AI模型技术:Anthropic的Claude Think工具、OpenAI的DeepResearch以及DeepSeek提出的RL+蒸馏新范式,分析它们如何拓展AI能力边界并重塑应用场景。
Claude Think Tool:增强思考能力的新工具基本概念Claude Think Tool是Anthropic公司为旗下大型语言模型Claude开发的增强功能,旨在提升模型的:
深度思考能力
复杂问题解决
逻辑推理与分析
工作原理Claude Think的核心机制包括:
12345678910111213def claude_think_process(problem): # 初始化思考空间 thinking_space = create_scratch_space() # 多阶段思考 initial_thoughts = generate_initial_ideas(problem) refined_thoughts = evaluate_and ...
引言在当今快速变化的时代,传统的职业发展模式正在被颠覆。面对不确定性增加的职场环境,越来越多的人开始思考:如何在这个时代更好地管理自己的职业生涯?”个人公司”(Me, Inc.)的理念应运而生,它提供了一个全新的视角来思考个人发展。
什么是Me, Inc.核心理念Me, Inc.(个人公司)强调每个人都应该像经营一家公司一样管理自己的职业发展和个人成长。这种思维方式的核心在于:
将自己视为独立的经营实体
建立清晰的角色分工
实现理性的决策机制
注重长期可持续发展
组织架构一个完整的Me, Inc.通常包含以下核心部门:
销售部门
负责个人品牌建设
开发职业机会
管理人际关系网络
展示个人价值
生产部门
专业技能输出
工作效率管理
价值创造与交付
质量标准把控
研发部门
持续学习新知识
提升核心能力
跟踪行业趋势
创新方法探索
管理部门
时间资源分配
目标规划制定
财务预算管理
风险控制评估
经营策略1. 品牌建设个人品牌是Me, Inc.的核心资产,需要系统化建设:
定位明确
找准专业领域
确定目标受众
设计独特价值主张
内容输出
专业知识分享 ...
引言在当今远程办公和分布式系统盛行的时代,安全、高效的网络连接方案变得越来越重要。Tailscale作为一个基于WireGuard®的现代化VPN解决方案,以其零配置、高安全性和易用性而备受关注。
什么是TailscaleTailscale是一个基于WireGuard的软件定义网络(SDN)解决方案,它能够:
快速建立点对点加密连接
自动穿越NAT
实现零信任网络架构
提供简单的用户管理和访问控制
核心特性
零配置VPN
基于WireGuard协议
自动密钥管理
无需复杂的网络配置
安全性
端到端加密
基于身份的访问控制
SOC 2合规认证
易用性
快速部署(约3分钟)
跨平台支持
100+集成选项
技术原理网络架构12345[用户设备] ←→ [Tailscale客户端] ↓[控制平面(DERP中继)] ↓[目标设备] ←→ [Tailscale客户端]
核心组件
控制平面
身份认证
密钥交换
路由管理
数据平面
WireGuard加密通道
NAT穿透
点对点连接
部署实践1. 基础配置123456789# 安装Tailscal ...
引言TCP(传输控制协议)作为互联网核心协议之一,其拥塞控制机制对于保证网络性能和稳定性起着至关重要的作用。本文将深入探讨TCP拥塞控制的工作原理、核心算法以及实现细节。
什么是TCP拥塞控制基本概念TCP拥塞控制是一种端到端的控制机制,用于:
防止过多的数据注入网络
避免网络拥塞崩溃
实现网络资源的公平分配
拥塞控制与流量控制的区别
特性
拥塞控制
流量控制
目的
防止网络过载
防止接收方缓冲区溢出
关注点
网络资源
端系统资源
实现方式
拥塞窗口(cwnd)
接收窗口(rwnd)
控制主体
发送方
接收方
TCP拥塞控制的四个核心算法1. 慢启动(Slow Start)慢启动算法的工作原理:
1234567891011121314# 慢启动算法的简化实现def slow_start(): cwnd = 1 # 初始拥塞窗口大小(MSS) ssthresh = 65535 # 慢启动阈值 while cwnd < ssthresh: if ack_received: cwnd *= ...