惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CERT Recently Published Vulnerability Notes
U
Unit 42
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
L
Lohrmann on Cybersecurity
Blog — PlanetScale
Blog — PlanetScale
Recorded Future
Recorded Future
D
DataBreaches.Net
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
I
Intezer
P
Palo Alto Networks Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
I
InfoQ
宝玉的分享
宝玉的分享
Security Latest
Security Latest
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threatpost
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
博客园 - 司徒正美
H
Hacker News: Front Page
Y
Y Combinator Blog
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
NISL@THU
NISL@THU
月光博客
月光博客
有赞技术团队
有赞技术团队
Cloudbric
Cloudbric
酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
A
Arctic Wolf
博客园 - 【当耐特】
W
WeLiveSecurity
V
Visual Studio Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
V
V2EX
C
Cyber Attacks, Cyber Crime and Cyber Security
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog

I'm OWenT

国产大模型(GLM 5.1、Kimi K2.6)真实场景效果和 Coding Plan 额度测试 新版本libatapp的连接管理——从etcd服务发现到拓扑驱动的自动重连 新版本libatbus的设计变更——从树形路由到拓扑驱动 Protobuf又一坑 - C++标准和ABI兼容性 AI真好用-给Blog主题统一加mermaid,chart.js,excalidraw,draw.io的多种引入方式支持 给内网部署Squid-通用HTTP下载缓存 UE使用CodeChecker和clang-tidy生成静态分析报告 找出UE的循环依赖 C++小协程栈和临时变量及作用域的栈溢出问题分析 游戏服务的可观测性能力建设(C++生态) 指标上报的多线程优化和多拉取源点优化 协程(libcopp)的Channel功能和CPU命中率优化 通用RPC代码生成器 实现strong_rc_ptr(比shared_ptr更快的引用计数智能指针) 手夯一个STL allocator和对象内存分析组件 std::condition_variable 的信号丢失问题 踩坑一处(GCC)STL std::async 实现BUG导致的crash问题 GCC 14的一个warning to error BUG 给xresloader(Excel导表工具)增强UE读表支持(包含蓝图,Blueprint) Opentelemetry社区在gRPC的几个链接问题(静态库和动态库混用,musl工具链,符号裁剪) Excel转表工具(xresloader)的新验证器(验证外部Excel和文本数据,唯一性和自定义规则) protobuf v22和gRPC v1.55版本升级的依赖变化和upb适配 关于protobuf近期版本(v20/v3.20+)和 gRPC v1.54版本在某些编译环境下的一些链接和编译问题 xresloader-Excel导表工具链的近期变更汇总 打通游戏服务端框架的C++20协程改造的最后一环 Opentelemetry-cpp的Logs模块标准更新(涉及近期版本:1.8-1.9的BREAK CHANGES) 给cmake-toolset和工具链(curl等)加HTTP/2和HTTP/3支持 又开新坑之 coredns 插件: nftables和filter 关于opentelemetry-cpp社区对于C++ Head Only组件单例和符号可见性的讨论小记 填个转表工具 xresloader 去年的坑(数组尾部裁剪) 集成 upb 和 lua binding 的踩坑小记 libcopp对C++20协程的接入和接口设计 再度优化GCC、LLVM、Clang、libc++、libc++abi等套件的构建脚本 游戏服务的分布式事务优化(二)- 事务管理 游戏服务的分布式事务优化(一)- Write Ahead Log(WAL) 模块 记录一些bazel适配用编译选项 测试现代化硬件C++浮点数性能和一致性 适配Boringssl和OpenSSL 3.0 近期cmake-toolset的一些适配问题 C++20 Text Formatting/fmtlib 适配问题小记 再次重构LLVM+Clang+libcxx+libc++abi+其他相关工具的构建流程 重构基于CMake的构建工具链 新版GCC和LLVM+Clang终于Release啦 折腾一下nftables下的双拨 [C++20] Module partitions和符号交叉引用(声明和实现分离) [Rust] 实现一个线程安全且迭代器可以保存的链表 基于protobuf的代码生成 几个使用protobuf中C++接口的Arena的坑 Amazon Aurora DB存储引擎论文阅读小记 近期对libatapp的一些优化调整(增加服务发现和连接管理,支持yaml等) xresloader转表工具链增加了一些新功能(map,oneof支持,输出矩阵,基于模板引擎的加载代码生成等) 在游戏服务器中使用分布式事务 libcopp接入C++20 Coroutine和一些过渡期的设计 libatbus 的大幅优化 nftables初体验 容器配置开发环境小计 PALM Tree - 适合多核并发架构的B+树 - 论文阅读小记 跨平台协程库 - libcopp 简介 C++20 Coroutine 性能测试 (附带和libcopp/libco/libgo/goroutine/linux ucontext对比) 尝鲜Github Action 一些xresloader(转表工具)的改进 protobuf、flatbuffer、msgpack 针对小数据包的简单对比 协程框架(libcopp) 小幅优化 Excel转表工具(xresloader) 增加protobuf插件功能和集成 UnrealEngine 支持 Anna(支持任意扩展和超高性能的KV数据库系统)阅读笔记 C++20 Coroutine libcopp merge boost.context 1.69.0 Google去中心化分布式系统论文三件套(Percolator、Spanner、F1)读后感 Rust玩具-企业微信机器人通用服务 使用ELK辅助监控开发测试环境服务质量和问题定位 2018年的新通用伪随机数算法(xoshiro / xoroshiro)的C++(head only)实现 Webpack+vue+boostrap+ejs构建Web版GM工具 Rust的第二次接触-写个小服务器程序 理解和适配AEAD加密套件 atsf4g-co的进化:协程框架v2、对象路由系统和一些其他细节优化 协程框架(libcopp)v2优化、自适应栈池和同类库的Benchmark对比 可执行文件压缩 初识Rust 使用restructedtext编写xresloader文档 atframework的etcd模块化重构 C++的backtrace ECDH椭圆双曲线(比DH快10倍的密钥交换)算法简介和封装 protobuf-net的动态Message实现 pbc的proto3接入 atgateway内置协议流程优化-加密、算法协商和ECDH 整理一波软件源镜像同步工具+DevOps工具 Blog切换到Hugo libcopp v2的第一波优化完成 libcopp(v2) vs goroutine性能测试 libcopp的线程安全、栈池和merge boost.context 1.64.0 GCC 7和LLVM+Clang+libc++abi 4.0的构建脚本 libatbus的几个藏得很深的bug 用cmake交叉编译到iOS和Android 开源项目得一些小维护 atapp的c binding和c#适配 对象路由系统设计 近期的一个协程流程BUG 重写了llvm+clang+libc++和libc++abi的构建脚本 atsf4g完整游戏工程示例|I'm OWenT atframework基本框架已经完成|I'm OWenT
2016年总结
2017-02-04 · via I'm OWenT

blog-website

又好久没写blog啦。诶最近好懒啊。正好过年在家里有点空,写完我那些lib的patch之后还有一点时间写一下2016年的总结吧。

之前两年的总结有点流水账,我还是写得随意一点好了,也没必要凑字数。

关于创业失败

2016年最大的一个事件应该算是创业失败吧,所以从之前的公司退出了。这两年的努力和经历让人感触良多,虽然是失败了,也不算是一无所得吧。接触到了如果呆在腾讯,永远也不可能接触到的东西。

也算是创业失败了,才体会到腾讯里的一些体系到底有多么的NB。之前作为纯腾讯员工的时候,更多的关注在对一些现象和制度上的不满上。比如项目频繁被砍,某些团队和个人对其他的团队或个人存在的偏见等问题上。但是进过这两年的折腾,我也深深感受到虽然在腾讯的体系中确实有一些问题,但是大方向上做到现在这个地步有多么的不易。比如,现在市场程序员的平均素质是在我的预估之下不少的,很多工程师并没有学习的动力,对编程也没什么激情。而我们面试的程序员中,几乎没有出现过对编程有热情而且基础还不错的,都不用说再加上经验了。大多数人都是很被动的接触了一些东西,然后浅尝辄止,所谓的经验完全是碰到的东西多了接触到一些,没有多少人有深入挖掘的兴趣和动力。甚至还有些人会觉得烦,不愿意。

然而腾讯做到了整体上推动员工之间主动互相分享和学习进步,虽然多少会出现几个“养老”的人,但是我接触的至少80%会去追求高技术和新兴技术的。当时我在腾讯的时候,升值时因为考评内容里有对分享和课程的要求,导致我看到有些人会很应付得对待(内容水分太多),但是现在回头想想,这小部分人的时间浪费远远比整体上驱动大家互相交流带来的好处,简直不值一提。

其实这也只是冰山一角,还有很多个地方让人现在想想觉得很不容易的,比如沟通方式和效率和活跃的氛围等等。

另外一点创业这段时间也算接触到了更多的想法各异的人。外面的人的思维和喜好差异更大一些,比如有个程序员最近给我们推荐的书叫《摩托车维修技术与禅》,虽然我对这个不感兴趣,但是这些看到一些奇怪的兴趣也是挺有意思的。

同时不可避免的会接触一些市场啊、竞品啊、运维系统啊、推广啊方方面面的东西。这些因为在大公司里分工比较明确,基本上对写业务的人是透明的。就连人员管理大公司里都是按照公司的大方向的模板里去执行,而不是去创造,所以很多细节的地方容易被遗漏掉。这也是这两年的收获吧。

当然,作为一名程序猿,软件设计和软件工程上的建树也会有一些。

作为程序猿

重大事件

2016年比较重要的程序和系统设计方面的重要事件并不是很多,但是比较杂。

  • 第一当然是很多客户端的编码让我能看到很多客户端引擎的实现,和外界开源项目(特别是前端工具类项目)的代码质量简直惨不忍
  • 第二是学习了下Raft算法,确实是个比Pasox容易得多的分布式一致性去中心化的算法
  • 第三是boost.context的设计模型变化,所以在merge的时候libcopp对新的模型的应用。这理论上能微弱地加快性能。之所以说是微弱的是因为比起那一点切换和透传开销而言,分配栈空间和逻辑的消耗要高得多。
  • 第四也是最重要的是我自己的游戏服务器框架atsf4g-co正式完成了并且开始投入使用。当然过程中避免不了会碰到一些细节问题,但是修复以后这就是一个经过项目验证并且可维护性和性能都高于腾讯TSF4G的解决方案。当然TSF4G的人力和比较元老导致其周边设施高的多。另外单独抽离了asf4g-co的网关层的客户端库,接入了Unity,支持加密和断线重连,预留了数据压缩,相当Nice。

反正都记在blog文章里了就懒得枚举了。

不那么很重要的事件

这些个不是特别重要的事件中有一部分是对重要事件的补充。比如atsf4g-co里面,分析并实现了小数据包合包优化,导致TCP通道QPS上升了几乎两个数量级;再比如解决了以前发现的Android和IOS的C++运行时不支持TLS的问题,并在这些环境里使用pthread代替C++ Run Time的TLS。然后重要的就是libcopp和libatbus的一些细节流程的BUG修复。过年这两天在家修复和优化的也是libatbus和libatapp的一些细节流程,这些都是在实际使用中发现的一些不致命问题。

还有一些是和那些重要事件无关的,比如试用了下gitbook,这货可以监视github,然后把仓库里的markdown文件编撰成电子书。还是很强大很有意思的。当时看《Effective Modern C++》的时候还想在上面建个仓库写点翻译。后来像太费时间了而且有版权问题就作罢了。但是我把blog里的markdown都导入到了里面,挺有意思的。

再就是研究了下let’s encrypted,然后我的域名的重要子站都用上了免费的SSL证书,全面开启了HTTPS,然后中和了实用性和安全性,配置了nginx的HTTPS配置,让安全评级到了A+。一开始我开启了HSTS,后来发现一旦写错配置,只能清空浏览器缓存才能再次打开网站,得不偿失,所以后来关闭了。

然后研究了下tmux,这玩意可以复用终端做做终端管理,感觉用起来相当棒。就是现在还不是特别稳定所以有些接口一直在变。前途还是很远大的。

很多配置和安装脚本2016年都重写了,主要是迁移环境的时候方便一键化。比较复杂的应该算是llvm+clang+libc++abi+libc++的那一套。

另外也是为了接触下现在前端很火的Reactor(虽然我不是前端,接触一下并没什么坏处)。使用Typescript+Node.js+Angular2写了个内网软件源同步的工具,并且同步了CentOS 6和CentOS 7,Ubuntu 16.04和14.04,MSYS2的仓库,比较适合给公司内部用。目前还没开源出来,反正写得也不是很严谨。后面有空可以开源出来。有了这个以后公司内网就很方便很快了,毕竟atsf4g-co同时支持Windows+Linux+Ubuntu On Windows,然后sample solution支持Linux+Ubuntu On Windows,然后为了方便所有人可以用自己熟悉的环境(Windows里用MSYS2+Clion或者Visual Studio)写代码,这些软件仓库都是为了方便大家各自按自己的喜好来的时候可以不浪费时间在网络上。

今年我很喜欢VSCode,所以贡献了一个用clang-format来格式化代码的插件,给添加很多功能,比如支持protocol buffer,增加更多的选项和BUG修复等等。然后看到ES6里的promise/thenable异步模型十分有意思。对比看了下C++里也出现了promise/future,感觉这个方案虽然不如协程直观,但是确实比协程坑少并且严谨,是个挺有意思的思路。目前没想到C++里怎么用它编程模式比较好。等到这套东东更完善了而且我想到了怎么用比较好,说不定atsf4g-co的sample solution会换一种RPC的设计模式,不再用协程。

还有一些小东西也不是很记得了,先这样吧。

写在最后

这一年的变化还是很大的,现在帮同学搞游戏服务端,我的另一个私心就是正式上线自己的游戏框架。所以,2017年加油!!!