自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

左手是诗,右手是代码。

写成一点自己的东西

  • 博客(90)
  • 资源 (3)
  • 收藏
  • 关注

原创 Boost.Asio 线程模型对比:单 io_context + strand vs 多 io_context + 单线程

少量线程 + 任意多虚拟串行通道”,胜在效率、灵活、API 标准、有 work stealing,输在隔离弱、心智模型重、调度不确定。适合:串行单位多、负载分布动态、追求并发吞吐的系统。典型场景:网络服务器、消息分发层。“线程数 = 关键串行单位数,各自跑各自的”,胜在强隔离、易监控、cache 友好、心智简单,输在没有 work stealing、资源开销大、扩展性差。适合:实时关键路径、负载分布稳定、需要可观测和分级 supervise 的关键服务。

2026-05-18 16:02:47 380

原创 动态规划 (Dynamic Programming) 入门到实战:状态、转移与 C++ 写法

动态规划 = 定义状态 + 写对转移 + 按正确顺序算一遍。与回溯不同:回溯重在「枚举所有解」,DP 重在「重叠子问题 + 最优或计数」。先写出暴力递归,标出参数即状态;再加memo或改成for 循环填表。0-1 背包一维要倒序,完全背包一维常要正序—— 这是面试里极高频的细节。「状态最少需要几个维度才能描述局面?答案往往就是突破口。

2026-05-07 11:16:51 229

原创 std::forward简明

`std::forward` 是 C++11 引入的一个工具,用于在**模板函数**中实现**完美转发(perfect forwarding)**:保持参数的值类别(左值/右值)不变地传递给下一个函数。

2026-04-21 14:25:20 374

原创 现代 C++ 异步编程:从零实现一个高性能 ThreadPool (C++20 深度实践)

实现一个线程池不难,但实现一个既类型安全又内存无忧的线程池需要对 C++ 的底层机制有深刻理解。解决了异质任务的存储问题。解决了异步任务的生命周期问题。解决了线程资源的回收问题。这个短小精悍的实现,正是 C++ 现代化的魅力所在。版权声明:本文采用 CC BY-SA 4.0 协议,转载请注明出处。

2026-04-17 21:47:35 481

原创 Valgrind 报错 “uninitialised value“ 与 std::optional 的隐藏陷阱

在 C++17 项目中,`std::optional` 是一个非常实用的类型,用于表示"值可能不存在"的语义。然而,在使用 Valgrind 进行内存检测时,`std::optional` 可能会触发一个令人困惑的误报:**Conditional jump or move depends on uninitialised value(s)**。

2026-03-24 17:49:31 367

原创 Ollama 本地部署编程大模型 + Zed 编辑器配置指南

隐私顾虑:核心业务逻辑或涉密代码不便上传云端。网络延迟:即时补全对延迟要求极高,网络波动影响体验。成本问题:长期订阅费用是一笔开支。Ollama作为目前最流行的本地大模型运行工具,极大简化了部署流程。配合Zed这款基于 Rust 开发、主打极致性能的编辑器,我们可以在消费级硬件上搭建一套完全免费、离线可用的结对编程环境。通过的组合,我们构建了一个零成本、低延迟、高隐私的本地 AI 编程环境。

2026-02-06 15:59:55 1558

原创 高性能网络编程终极对决:epoll vs IOCP vs io_uring(2026 更新版)

epoll是 Linux 下高性能服务器的标准配置(Nginx, Redis, Node.js)。优势:成熟、稳定、生态极其丰富。它利用红黑树管理连接,利用就绪链表返回事件,解决了轮询的 O(N) 性能问题。劣势:本质上还是Reactor。当数据量极大时,用户态和内核态之间的数据拷贝(read/write)依然占用 CPU 周期。技术的发展是一个轮回。Windows 早就使用的 Proactor 模式,Linux 终于通过 io_uring 追赶了上来,并且用更激进的“共享内存环形队列”实现了超越。

2026-02-05 17:39:33 1115

原创 连接在docker中运行的PostgreSQL数据库

背景描述随着容器化进程的加速,相比于传统虚拟机存在的巨大优势,分布式云计算的兴起,以docker为代表的容器化技术解决方案越来越流行。作为一种不算新兴技术的技术,毕竟docker所用到的技术在早很多年就存在,只是docker的出现让这些技术真正的组合在了一起,并开始发挥效用。docker相比于虚拟机的解决方案使用更少的宿主机资源,可扩展性更加优秀,相比于单独的软件安装,出现的问题更少,更容易部署...

2018-11-23 13:50:37 15333

原创 C++20/23 Ranges:从「迭代器对」到「可组合管道」

是有begin()end()(或满足概念)的对象;在管道里惰性变换;统一用整段序列调用。本文面向已经会写的读者,讲清核心心智模型、常用视图、与算法配合的写法,以及几个真实项目里最容易踩的坑。

2026-05-13 16:51:56 411

原创 std::string vs std::string_view

字符串的所有者:深拷贝、可变、自管理内存、\0结尾。字符串的"借用"视图:浅引用、只读、不管理内存、不保证\0。能用当只读形参,就不要用,这是现代 C++ 最容易拿到的性能红利之一。但绝不是"免费午餐":它是个带指针的借用语义,所有悬空、失效的规则都适用。要写入 / 要持有,用string;只读 / 只看,用。

2026-04-24 03:45:00 351

原创 C++ 内存到底分配在哪?

这是一个看似简单却能把人问倒的问题。很多人会脱口而出"new就是堆、局部变量就是栈",其实远不止这样 —— C++ 里还有。本文按""为主线梳理,这是 C++ 标准真正用的术语。

2026-04-22 11:28:32 367

原创 C++20 Concepts:让模板编程从“黑魔法”走向“契约时代”

C++20 引入的 Concepts(概念) 是模板泛型编程自诞生以来最具革命性的进化。它将模板从“黑魔法”转变为一种类型安全、语义清晰、易于调试的现代化工程工具。

2026-04-03 12:20:24 308

原创 回溯算法 (Backtracking) 完全指南:从排列到组合,从去重到剪枝

理解回溯算法

2026-02-24 14:28:18 936

原创 简单的计时小工具

一个小计时工具

2025-09-19 22:25:56 295

原创 新版本svn使用gpg-agent存储密码

自从开始使用debian11,应该是subversion版本的升级,导致不可以存储明文的密码,导致每次都要输入密码,很恼人。svn会缓冲auth的东西到~/.subversion/auth,为了使用gpg-agent,将老的东西删除。下边可以重新设置参数,当然还有其他参数,设置完成之后要重新启动gpg-agent。当第一次登录svn需要输入密码,之后密码会cache住直到失效,可以更改其配置。新版本的svn默认支持gpg-agent,那么问题演变成配置这个工具。Debian11的svn版本如下。

2023-11-30 10:06:10 1720 1

翻译 eBPF介绍

可惜是英文的,等我有空或者学会了,试着翻译一下。

2023-11-18 17:37:55 162

原创 安装使用分布式C/C++编译器distcc

distcc安装指南

2022-09-22 17:27:10 3010

原创 基于python3协程的log传输工具

python3 asyncio example

2022-09-12 09:52:06 657

原创 C++ https server based on boost asio and beast

目前在做的项目需要一个C++版本的https server,只能求助于boost库。幸运的是确实存在。并且提供了协程版本,本着学习的精神拿来改造一下,就获得了如下成果。AsyncHttpServerV2.hpp//// Created by chuanqin on 7/5/21.//#ifndef CBRS_UT_TOOL_ASYNCHTTPSERVERV2_HPP_#define CBRS_UT_TOOL_ASYNCHTTPSERVERV2_HPP_#include <algori

2021-07-07 18:09:30 1142

原创 某读书软件书籍导出想法

读书发现用读书软件很长时间了,这是一个很不错的软件。尤其是腾讯出品,自带社交加成,能方便的知道大家在读什么书。于是,读书开始变得没有那么闭塞,也减少了很多读完一本书之后的慌张。虽然我是程序员。可是,发现最近读的技术书籍反而越来越少,文学乃至小说反而越来越多。或许是职业的缘故,或许是生活节奏的缘故,不管怎么说这算是一个好习惯。有时候一周能读10个小时,不过最近发现能保持一天读一个小时就很不错,尤其是家里还有小孩子。一个想法读书软件既然是+讯的作品,肯定天然就带有腾讯的尿性,要做任务增加免费天数,为了

2021-03-15 17:50:16 714 1

翻译 Boost.Asio翻译

最近在写自己的小应用的时候,开始涉及到boost.asio,之前在项目中也没有系统性的学习过。于是,趁着这个时间好好学习一下。最好的入门资料当然是boost的官方文档,将几篇翻译的文档放在下边。声明,我当然不会投入巨大的精力翻译这样的文档,从某种严格意义上来讲,我是在必应或者谷歌提供的翻译基础上做了一些校对,使句子不那么显得机器。Boost.asio理由(Rationale)大多数程序以...

2020-04-18 21:35:13 492

原创 解决Mac使用wine安装的软件中文显示成方块的问题

毫无疑问Mac的体验相较于Windows有之质的区别。由于,平台的差异导致很多软件不兼容,尤其是使用某个平台的特定API导致很难迁移。Wine这是一个在非Windows平台运行Windows软件成为可能的软件。这是一个开源的软件,在其基础上有很多包装了Wine的软件,比如Crossover,这也是wine官方推荐的,这是收费的。wine好像不翻墙的话,不好下载,附上自己的百度云:链接:ht...

2020-04-11 16:56:00 6409

原创 Pytest debug/C++ debug

Python/C++ debugdebug的方式有很多最简单的方式是打印log,看log,这个的缺点是比较慢,尤其是用加log的方式来缩小怀疑的范围。因为这是一个不断迭代的过程,最主要的原因,一开始不知道代码哪个地方有问题。只能在所有可能有问题的地方加打印log。然后逐步的缩小怀疑范围。下边介绍一种快速的debug方法。UT debug什么是UT一半正儿八经的公司,一定会设计UT,UT是对...

2020-03-16 16:35:44 2075

原创 百度网盘API操作

**前言:**在写自己的公众号杂谈123过程中,本意是使用python爬虫爬取bookset网站的电子书,然后保存在自己的服务器上,然后根据用于的请求,可以予以返回对应的电子书下载,或者用发送邮件的方式直接推送到用户自己的kindle上。问题引入在我的公众号还没有开发完成的情况下,bookset已然不能访问。于是,只能思考其他思路。方案考虑如下几个方案:从其他网站爬取,比如豆瓣。使用...

2019-10-01 18:38:28 5999 1

原创 leveldb中coding源文件的小分析

leveldb中coding源文件的小分析最近在尝试看leveldb的源码,这个是好久之前就选定的作为学习别人代码的一个项目,只是因为各种懒惰,才不得不一次一次的开始和丢下,为了能又一个学习的总结和继续,我打算不定时的做一下愿下的注释和分析。下边这篇文章作为第一篇。项目源码1 代码首先包括两类函数1.1 从数据的存储和获取来分类是如下:1.1.1 put系列void PutFixed...

2019-01-30 13:03:01 395

翻译 leveldb介绍

网上有很多关于leveldb的介绍文章,还不如直接看官方文档,直接上文档,希望自己以后有空翻译成中文版本。leveldbJeff Dean, Sanjay GhemawatThe leveldb library provides a persistent key value store. Keys and values arearbitrary byte arrays. The ke...

2019-01-23 18:00:36 488

转载 32个Python爬虫项目让你一次吃到撑

今天为大家整理了32个Python爬虫项目。整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心。所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)OWechatSogou [1]- 微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。DouBanSpider [2]- 豆瓣读书爬虫。可以爬下豆瓣读...

2019-01-04 18:09:29 387

翻译 ZooKeeper: A Distributed Coordination Service for Distributed Applications[中文]

https://zookeeper.apache.org/doc/current/zookeeperOver.html翻译这篇文档。

2019-01-02 16:45:43 386

原创 python发送带有附件的163邮件

问题背景在开发私人公众号,根据开发公众号的初衷,需要实现python脚本下发送带有附件的163邮件,实现Kindle电子书的自动化推送。参考# below original code comes from the link:https://blog.csdn.net/gpf951101/article/details/78909233# great thanks to this great...

2018-12-04 18:07:01 1915 2

原创 WeChat Official Account Development

IntroductionThis is my own Official Account for server side program. which main purpose is to learn how to develop one functional and beautiful official Account which can provide below service in pla...

2018-11-23 13:49:05 2463

原创 C++和boost实现的C/S

C++和boost实现的C/S实现概述Client 代码Server代码编译命令编译client.cpp编译server.cpp运行代码实现概述现在很多的编程语言提供拆开即用的Client/Server的框架代码,比如Java的Netty,用起来超级舒服、简单。python编程语言的更简单,忘记用的什么框架了。最近在C++上工作,想来不如用C++试验一下。代码实现的功能:首先服务器等待客户...

2018-10-25 17:45:06 1469

原创 Docker经常用到的一些命令

docker基本命令 docker run docker run -ti ubuntu bash docker run -ti --name qcq --dns ip ubuntu bash docker run -ti --name qcq --net host --dns ip ubuntu bash docker exec # 执行一个创建出来的容器 docker ...

2018-07-10 10:27:32 324

原创 Python批处理zip压缩文件

问题引入自己家的领导接了一个领导的活,要统计话费账单,话费的记录文件是一个文件夹的zip文件,每一个zip文件对应了一个月的话费,每一个zip文件下是该公司每一个号码的当月通话记录。问题描述数据存储在一个文件夹下文件夹下对应12个月的话费记录,工12个zip文件每一个zip文件,对应了很多压缩了的通话记录文件每一个通话记录文件对应了一个号码的话费 Note: 为了代码...

2018-06-08 09:57:17 1209

翻译 C++类型推导(Deducing Types)

原文地址准备下一篇的翻译

2018-06-06 15:29:47 1004

翻译 pytest session scoped fixtures--pytest 会话作用域的fixtures(测试夹具)

原文博客链接

2018-05-08 10:42:07 2958

翻译 Google Guava官方教程 中文版

这是第三篇翻译文章,这个文档有人已经翻译过。尝试在已翻译的基础上重新翻译原文wiki 别人译文

2018-05-08 10:15:02 2687 2

翻译 pytest fixtures: explicit, modular, scalable 中文版

随着编程生涯的增长,会越来越发现,基本出现在中文相关资料的相关技术文章,靠谱的太少,老外的相反,真的是有种月亮还是外国的圆的感觉,最近想闲下来事情不多的时候,翻译一些,自己用的到,然后特别有用处的一些技术文章。前边的一篇JAVA NIO是第一篇,这将是第二篇。 python是一门特别容易上手,使用的语言,并且得益于其庞大的第三方库,使其具有其他脚本语言不具有的更多能力。或许这是众多软件使用py...

2018-05-08 09:55:52 730

原创 Java使用Lambda实现字符串出现次数最多的字符查找

问题引入:给定字符串,写代码找出在字符串中出现次数最多的字符,出现次数相等的字符按照字典序输出。问题剖析:考虑错误处理(字符串为空)考虑出现最多次数的字符不是一个,也即存在出现次数相等的字符出现次数相同的字符需要按照字典顺序排序代码剖析:package com.nokia.pats;import com.google.common.base.String...

2018-04-10 18:43:27 2378

翻译 Java new I/O(NIO)--non-blocking I/O初探

这篇博客翻译自如下的链接,如有纰漏还望指正。 non-block IO NIO stands for non-blocking IO, 本文作者习惯使用new 代替non,本文依照原文进行翻译,力图完整。写在开始之前关于本教程NIO接续原始的IO在JDK 1.4版本引入,NIO为标准的Java代码提供高速,面向块的IO操作。通过定义承载数据的类,并且以块的形式处理数据,...

2018-04-04 15:33:31 910

原创 Sublime(mac/windows) with cpplint check——code-style of C++

sublime是一个轻量级的编辑器,是现在使用非常广泛的一个编辑器。可以渲染编辑很多种语言。本博客讲解使用sublime加载cpplint插件,加入代码风格的检查功能。 这篇博客是在同事的onenote的基础上写成的,感谢他。首先安装sublime3sublime跨平台,支持mac和windows,下载相应的版本即可 sublime 安装python2.7这个插件...

2018-04-04 09:44:56 1313

stopwatch.jar

stopwatch.jar

2025-09-19

python-3.8.8-macosx10.9.pkg

python mac 3.8.8

2021-03-23

server:client.7z

这是工作中用到的一个工具,测试环境隔离在实验室,有一个PC和其相连,这个PC是可以连接网络的,测试设备通过udp端口向外发送信息,比如log,sever.py监听udp端口,将收到的消息,直接转发给在这个文件中起来的tcp server,外界的PC可以直接连接这个server获取测试设备发出的信息。

2020-04-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除