- 博客(111)
- 资源 (27)
- 收藏
- 关注
原创 当TCP情侣闹分手:一次TCP连接关闭引发的悬疑剧
资深工程师在TLS握手失败后发现,原本标准的TCP四次挥手竟演变成五步"分手闹剧"。当客户端因证书错误主动关闭连接时,服务端也同步发出FIN包,导致双方FIN/ACK序列错位。服务端重传FIN后,客户端才最终确认关闭,使双方都进入TIME_WAIT状态。这场协议层的"情感大戏"揭示了网络通信中时序错位带来的复杂性,也印证了TCP协议在连接管理中既严谨又充满变数的特性。
2025-06-18 20:24:28
622
原创 异步编程演进史:从回调到Promise再到Async/Await
本文梳理了异步编程的三波技术浪潮——从 Callback 到 Promises 再到 Async/Await,逐层剖析了每波浪潮在解决旧痛点的同时引入的新问题:回调地狱、错误吞噬、函数着色税、并发劣化、取消断链等经典陷阱。文章最后展望了 Go(goroutine)、Java(虚拟线程)、Zig 等现代语言如何在运行时或编译器层面绕道而行,试图打破这一魔咒。
2026-06-27 15:09:20
87
原创 从噪音到情报:用AI读懂用户观察趋势
信息爆炸的时代,真正的机会往往藏在那些不起眼的群聊里。本文将通过一款开源工具 `wx-cli`,演示如何将杂乱无章的群聊,转化为清晰的“用户画像”与“市场趋势”。
2026-05-17 15:13:23
358
原创 收到YC邀请?一文读懂硅谷顶级创业加速器的魅力与价值
YC是全球顶尖的创业加速器,为入选初创提供50万美元投资、3个月密集培训和顶级资源网络。其校友包括Airbnb、OpenAI等知名企业。收到YC邀请意味着你的创始人潜力被认可,可能源于你的思维模式或项目潜力。入选后将获得导师陪跑、结构化训练、强大校友网络和融资支持。申请需在2026年5月4日前提交,重点阐述市场需求、解决方案和团队优势。建议认真对待邀请,深入研究YC文化,真诚准备申请材料。YC是创业催化剂,能快速提升认知、资源和网络,助力实现改变世界的想法。
2026-04-05 18:53:30
413
原创 访问自己集群的VIP时好时坏?一个“火星包”引发的故障
想象这样一个场景:在一个高可用的LVS集群中,作为流量入口的Master节点,竟然无法稳定地访问自己对外提供的虚拟IP(VIP)。监控曲线如同心律不齐般跳动,`curl`命令的返回在“成功”与“超时”之间随机切换。这并非天方夜谭,而是一个发生在复杂网络架构下的真实问题。
2026-03-28 15:29:07
368
原创 程序员只做技术够吗:一位AI创业先驱的反思录
2016年,当AI还远未成为全民浪潮时,一位名叫徐宥(Eric Xu)的工程师做了一件疯狂的事:用语言模型来理解、修改和生成代码。他给公司起名叫 ai.codes,意思是“用AI写代码”。十年后的今天,AI编程已成为现实,但他当年的创业却停在了2016年。这段往事不仅是对技术爆发前夜的记录,更是一面镜子,照出了程序员职业发展的核心命题:只做技术,够吗?
2026-03-21 10:43:13
390
翻译 如何避免过度设计:从0到1千万用户的演进之路
你是否曾好奇,一个成功的互联网产品,其技术后台是如何从零开始,一步步支撑起百万、千万乃至亿级用户的?当应用和数据库开始争夺同一台服务器的CPU和内存时,第一步就是将数据库分离到独立的服务器。让我们沿着这条清晰的路径,走过每一个关键的里程碑。最好的架构,永远是能够满足当前需求的最简单的那一个,并保留清晰、可执行的演进路径。通常从“主-从”模式开始(一个主区写,多个从区读),逐步演进到更复杂但体验更佳的“多主”模式。成为新前沿,将计算逻辑从中心数据中心推向离用户更近的CDN边缘节点,实现极致的低延迟。
2026-03-03 11:06:46
32
翻译 文档的灵魂:教导,而非告知
优秀技术文档的核心在于"教导而非告知",需模拟耐心教师引导用户从零到精通。常见误区包括仅提供源码、测试或零散文档,缺乏系统教学。完整文档应包含四部分:初次接触(明确项目价值)、黑色三角形(快速上手示例)、毛线团(结构化教程)和参考手册(深度API文档)。文档作者需培养教学思维,通过实践教学预见用户困惑,并借助高效工具提升写作质量。技术文档的本质是构建用户与项目之间的理解桥梁,而非信息壁垒。
2026-02-28 10:47:50
32
翻译 职场未来:AI时代的价值坐标系
AI正加速重塑职场,传统技能迅速贬值。资深分析师Sarah的案例显示,企业更倾向用低成本AI替代人力而非重新定义岗位。常见的应对策略(精通AI工具、深耕专业或强调软技能)往往被动且无效。真正的出路在于主动转型为"协同指挥者",利用AI突破人力限制,规模化执行并聚焦决策层。关键行动:每周用AI扩大一项工作规模,从中提炼新洞察。经验堆积的护城河正在瓦解,唯有自我重塑能力才是应对之策。不要等待企业或教育系统指引,而应主动构建前所未有的新角色。
2026-02-07 08:33:01
33
翻译 从码农到指挥家:软件开发的30年历程
从精打细算的底层编程,历经面向对象、框架库、云计算等阶段,发展到当前的AI革命。开发者角色正从“编码者”转变为“系统指挥者”,通过自然语言指导AI协作。未来,专业开发者的核心竞争力将转向架构设计、安全合规和业务理解等更高层次的能力,以在全民开发时代脱颖而出。
2025-11-15 08:18:00
63
原创 时延揭密:探索不同函数调用实现背后的性能差异
本文通过基准测试对比了四种函数调用方式的性能差异,并结合汇编分析性能差异的真实原因。文章揭示了性能优化的关键权衡:标准库提供安全但牺牲效率,内联提升性能但增加复杂度,无调用实现极致性能但风险最高。这些微观决策共同塑造了系统的宏观性能特征。
2025-08-10 16:19:49
1097
原创 设备重启神奇断连40秒:交换机LACP配置的致命陷阱
摘要: 设备重启后网络出现40秒通信中断,原因在于交换机LACP配置的Long超时模式。通过抓包分析发现,LACP协议在Long模式下链路恢复缓慢(30秒间隔),而Short模式可实现秒级恢复。调整交换机为Short模式后,网络恢复时间从40秒缩短至3秒内。建议高故障率链路采用Short模式实现快速切换,稳定链路使用Long模式降低协议开销。该案例揭示了LACP超时模式选择对网络恢复速度的关键影响。
2025-07-26 11:52:39
885
原创 Nginx代理上游响应时延之谜:前端并发为何增大后端时延
Nginx监控发现异常现象:上游服务资源充足时,客户端并发越高,上游响应耗时($upstream_response_time)反而显著增长。通过eBPF深度追踪发现,Nginx事件循环在高并发下处理单轮事件的时间成倍增加,导致上游响应数据在内核缓冲区排队等待,这部分隐性等待时间被计入响应耗时。根本原因是Nginx的异步事件驱动架构中,$upstream_response_time实际包含上游处理时间与事件循环调度延迟。
2025-07-20 15:12:27
743
原创 AI行业的历史、当下与未来
OpenAI首席执行官Sam Altman在Y Combinator的AI Startup School活动上分享了OpenAI的发展历程和AI行业未来趋势。他系统复盘了从创业维艰到打造行业标杆的完整历程,并针对奠基性战略抉择、突破性技术前景、人机交互范式及组织治理哲学等维度,提出了前瞻性战略预见。
2025-07-06 10:14:23
615
原创 HTTP协议中的60秒魔咒:一个不规范响应引发的性能谜案
HTTP协议中,当响应既无Content-Length头也未启用Chunked编码时,接收方需依赖TCP连接关闭事件判断响应完整性。这导致三种典型场景:立即关闭(理想情况)、浏览器60秒内主动关闭(触发SSL网关终止连接)及60秒超时关闭(造成浏览器加载卡顿)。问题根源在于Web服务未遵循协议规范,加上代理超时机制碰撞,形成精确的60秒延迟。文章通过生动的技术场景分析,揭示了看似简单的HTTP响应机制背后复杂的交互逻辑,为运维优化提供了重要启示。
2025-06-29 12:09:46
960
原创 Windows Live Writer 使用指南
一、简介 Windows Live Writer 是一个强大的离线博客编辑工具,通过它可以离线编辑内容丰富的博文。Windows Live Writer除了自身强大的编辑功能之外,还提供了接口,让其它开发人员通过插件提供工具自身没有提供的功能。 二、安装 参考:http://www.2cto.com/os/201305/211736.html 指定安装目录进行安装,方法如下
2015-05-12 14:49:49
740
原创 证书吊销列表(CRL)介绍
一、证书吊销列表(CRL) 证书吊销列表 (Certificate Revocation List ,简称: CRL) 是 PKI 系统中的一个结构化数据文件,该文件包含了证书颁发机构 (CA) 已经吊销的证书的序列号及其吊销日期。 CRL 文件中还包含证书颁发机构信息、吊销列表失效时间和下一次更新时间,以及采用的签名算法等。证书吊销列表最短的有效期为一个小时,一般为 1 天,甚至一个月不等,
2015-04-25 14:47:57
29330
9
原创 时间处理:计算下一天日期,如输入"2004/12/31"(注释2014年12月31日),则输出"2005/1/1".
/* ============================================================================ Name : Exercise.c Author : haier Version : 0.01 Copyright : Your copyright notice Descr
2015-03-11 22:43:07
661
原创 朱迪矩阵
朱迪矩阵[编辑] (重定向自Judy array) Judy array是一个计算机科学和软件工程学中的名词,是一种高性能、低内存消耗的数据结构,实现了关联数组的功能。与普通数组不同,Judy array可以是稀疏的,这一点更像是散列表,而非数组。Judy array可以用整形或字符串作为键值来存储、查询数据,它最大的优势是可动态自动扩展,高性能,节省内存并且易于使用。 由于Judy arr
2015-03-09 23:48:58
1078
原创 Linux设备模型应用
simple.c#include #include #include #include #include #include #include MODULE_AUTHOR("haoyu");MODULE_LICENSE("Dual BSD/GPL"); struct my_kobject{ int value; struct kobject kobj;
2015-01-09 09:35:12
479
转载 Linux设备模型
simple.c#include #include #include #include #include #include #include MODULE_AUTHOR("haoyu");MODULE_LICENSE("Dual BSD/GPL");struct my_kobject{ int value; struct kobject kobj;};
2015-01-08 22:24:39
531
转载 设备驱动--中断
short.c#include #include #include #include #include /* printk() */#include /* everything... */#include /* error codes */#include /* udelay */#include #include #include #include #in
2015-01-05 22:22:42
658
原创 设备驱动--定时、延时操作
jit.c#include #include #include #include #include #include #include #include #include #include #include /* * This module is a silly one: it only embeds short code fragments * that s
2015-01-03 22:09:37
715
原创 设备驱动--时间与延迟操作
jit.c#include #include #include #include #include #include #include #include #include #include #include /* * This module is a silly one: it only embeds short code fragments * that s
2015-01-03 17:20:58
572
原创 字符设备驱动
main.c//#include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include /* error codes */#include /* size_t */#include #in
2015-01-03 11:55:43
1299
原创 块设备驱动程序3
Virtual_blkdev.c//============================================================================ // Name : Virtual_blkdev // Author : Haier // Version : 0.3 // Copyrigh
2014-12-31 19:29:09
593
原创 块设备驱动程序2
Virtual_blkdev.c//============================================================================ // Name : Virtual_blkdev // Author : Haier // Version : 0.2 // Copyrigh
2014-12-30 13:48:41
568
原创 块设备驱动程序1
//============================================================================ // Name : Virtual_blkdev // Author : Haier // Version : 0.1 // Copyright : Your copyrig
2014-12-29 13:43:54
617
转载 typedef的用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别
2014-11-23 14:25:19
404
原创 web服务器
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-09 11:24:55
486
原创 Oracle 客户端(oci方式)
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-08 00:23:34
1665
原创 Oracle数据库操作3(OCI方式)
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-05 16:01:10
1074
原创 Oracle数据库编程2(OCI方式)
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-05 11:45:11
704
原创 Oracle数据库操作(pro*c/c++方式)
//============================================================================ // Name : CExercise.pc // Author : Haier // Version : 0.1 // Copyright : Your copyright notice
2014-11-03 22:09:55
1898
转载 Oracle数据库操作(OCCI方式)
#include #define LINUXOCCI //避免函数重定义错误#include using namespace std;using namespace oracle::occi;int main(){ Environment *env=Environment::createEnvironment(Environment::DEFAULT); cout<<"su
2014-11-03 00:17:38
737
原创 Oracle数据库操作1(OCI方式)
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-02 14:58:33
2203
原创 mysql数据库文件操作
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-01 23:33:43
613
原创 mysql数据库编程
//============================================================================// Name : CExercise.cpp// Author : Haier// Version : 0.1// Copyright : Your copyright notice// Desc
2014-11-01 19:54:58
581
转载 套接字选项的应用
#include #include #include #include #include #include #include #include #include #include #include #include #define PORT 8888#define BACKLOG 8static int alive = 1;static void sigpipe(
2014-10-01 23:27:58
535
原创 取得套接字选项
getsopts.c/*============================================================================ Name : getsopts.c Author : Haier Version : 1.01 Copyright : Copyright (c) 2
2014-10-01 21:40:43
555
10年编程无师自通
2013-08-17
TCP IP详解 卷一 二 三
2014-08-04
Linux内核阅读
2014-10-18
使用curl-config配置选项
2015-05-05
Oracle Spatial与OCI高级编程源码
2014-11-07
Oracle Spatial与OCI高级编程 代码
2014-11-04
Oracle 11g Pro﹡C C++编程艺术
2014-11-04
汇编语言程序设计(AT&T)
2014-10-30
汇编语言程序设计(AT&T英)
2014-10-30
学习DOS的书籍
2013-08-17
CiteSpaceII.zip
2015-07-07
编程高手箴言
2013-08-17
Linux命令大全
2013-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅