在线用 Python 正则查找文本

前段时间做了一个使用 Python 正则提取文本的工具服务: https://texttoolkit.com/re.findall ,用于解决日常一些繁琐的查找文本的需求。

工具主界面
工具主界面

场景 1

日常开发工作中你可能也需要像我一样,用各种内部管理系统,查看监控、日志、按机器 IP 过滤列表等等(我自嘲这是“面向浏览器开发”)。

[阅读全文]

博客从 org-static-blog 迁移 Hugo 小记

我从 2018 年开始用 org-static-blog 写博客到现在也有几年时间了,写的文章比较少,总体上这个简单的静态网站生成方案都能够满足需求。

但中途也发现一些不够用的地方,比如之前想要并贡献了一个生成 meta description 的 PR ,以便更好地在搜索引擎展示结果( SEO );又比如中途一度有区分中英双语博客的需求( index 列表、 RSS 等),但苦于没有想到很好的方法,就只能把两种文章都混杂在一起展示,但这样用户的阅读体验不好;另外之前的样式也差强人意,比如主页的链接带下划线,不利于阅读。

[阅读全文]

HTTP压测工具wrk的实现原理

注:本文分析的是 wrk v4.1.0 的源码。

wrk 是一个用 C 实现的 HTTP 压测工具,所有的参数都是通过命令行传递,没有配置文件,很容易使用;编译产物只有一个二进制文件,部署简单。

[阅读全文]

Doxygen 终于可以正确生成函数调用图了!

大家都知道, Doxygen 可以用于提取代码的注释生成项目的文档,只要注释满足它规定的格式。我喜欢通过它生成类继承图(inheritance diagram)和函数调用图(callgraph),有了他们能够加快对代码的理解。

[阅读全文]

Emacs 中使用 ppcompile 进行远程编译

不同于 Python 之类的项目, C/C++ 的项目需要有专门的编译环境,一般国内公司都会搭建特定的编译环境机器,把一些私有的库等依赖放在上面。而这些编译环境的工具链一般都比较老旧,有的编译环境可能还无法访问外网,甚至也没有提供代理间接访问外网。因此想要在这样的环境中使用 Emacs 开发代码着实不是一件容易的事。

[阅读全文]
Emacs 

用 Python Requests “一键”重启天翼路由器

不知道什么原因,我的网络有时候会很慢,而通过重启天翼路由器(版本 V1.0 )大概率能够恢复。重启的次数多了之后会我觉得好麻烦,本着偷懒的原则,就想写一个脚本来自动重启,一劳永逸。

[阅读全文]
Python 

记一个 Emacs 26 Keyboard Macro 输入字符重复的 Bug

工作中不时地会使用 Emacs keyboard macro 来解决重复性的编辑任务, 但有时录制了再重放却出现输入的字符被重复了,导致出现非预期的结果。 一般此时为了赶进度,只好忍了,放弃使用 keyboard macro ,改用其他方式编辑代码。

[阅读全文]
Emacs 

如何理解 Git submodule

Git 虽然很强大,但也有少数命令很难理解。 submodule 就是这么一个例子,其文档教程也不少,比如 Git - Submodules - git-scm.com , 但我之前始终没有真正领悟到如何使用。

直到有天看了一条 StackOverflow Answer ,茅塞顿开,才真正理解了 submodule ,下面尝试用自己的语言来解释一下。

[阅读全文]
Git 

在 Emacs 中使用 LSP 开发 C/C++ 工程

写代码的时候,如果能够基于当前的上下文提示补全,不仅能提高写代码的效率,还能提升编程体验,有种行云流水的快感。

Emacs 中之前我用 GNU Global (gtags) 等静态的工具来辅助写代码,最大的问题是无法根据上下文补全,体验不好。现在有了 LSP 协议之后, Emacs 中现在也能实现这个功能了,体验相当不错。

[阅读全文]
Emacs  C++  Python 

C++ 多态是如何实现的?

对于 OOP 编程,相信大家对于多态( polymorphism )肯定都耳熟能详。 但是对于多态是如何实现的,我不知道大家是否清楚,但我发现自己并不是很了解, 只知道在运行时通过一个 vtable 来确定应该调用哪个函数, 实际上 vtable 真的存在吗?它是如何起作用的?

[阅读全文]
C++  GDB