博客
青甘大环线
## 缘起 时间飞逝,转眼间我就要 29 岁了 <span class="heimu">写此文的时候我已经29了</span>,去年我和我的女伴约定今年一起进行一次大规模的旅行。 正好在 8 月份,青甘大环线是最热门的路线,同时青 ...
#0 新的开始
最近英语水平下降的厉害,所以这个第 0 期 Newsletter 就用中文来写了。 年初就有想写 Newsletter 的想法,但是我真的不知道应该放点什么内容进来,之所以要写 Newsletter 也只是为了培养自己周期性写作的习惯, ...
2022 Ending
## 2022 2022 年过去了,又是一年,今年好像什么也没做。 我很讨厌这一年经历的一些事,封城,跑毒等等,总让我感觉没有安全感。 ### 职业 从内部岗位来到了外部岗位,工作更加单一也更专注了,尝试了一些新的领域 DevSe ...
使用 Semgrep 自定义规则进行代码审查
使用 Semgrep 改进代码审查:强制执行标准,检测漏洞,提高代码质量。在发布代码之前集成 Semgrep 以识别和解决问题。

用 Semgrep 改进你的代码审查流程
用于自动执行代码分析和实施安全最佳实践的工具,帮助开发人员更快地编写更好的代码。
My HomeLab
这篇文章将会介绍一下我的 HomeLab。 为什么会建设 HomeLab,它给我带来了什么价值?以及为什么是现在的结构,解决了什么问题。 ## Update in 2022 今年接触了 DevOps、Kubernetes、Terra ...
反躬自问
## 缘起 事情还得从一次因防疫政策变化导致的“特殊”出差说起。 人在远离舒适圈的时候,总会经历种种困难与不适,噪音、拥挤、打卡、隔离、被缩短的工期、不合理的政策……都让“出差”成为了一项挑战,而“疫情”和“三年第一次出差”,这两重因 ...
2021 Ending
2021 年就要过去了,分享一下我今年都干了些什么事请。 下面会分为几个维度来说。 ## 职业 今年无缝转职成了安全从业人员,学习到了很多 DevSecOps 的知识,同时了解到安全不仅仅是技术开发,有时候流程安全能比应用安全起到更多 ...
复式记账工具 Beancount
本文简单介绍一下复式记账和 Beancount 的使用方法。 ## 为什么要记账 记账是理财的第一步,熟话说得好:”你不理财,才不理你。“ 记账可以明确自己每一笔钱花在哪去了,这个月最大的开销是什么,以及对自己的冲动消费、不必要消费 ...
一百行代码实现异步爬虫
一个优雅的爬虫需要一下这些东西: - 请求器 - 页面解析器 - 链接生成器 - 调度器 ## 请求器 负责发送请求。 ## 页面解析器 负责从页面上解析出继续爬的链接。 ## 链接生成器 负责处理继续爬虫的链接并放入队列。 ...
倒排索引
世界上最伟大的互联网产品,说是搜索引擎,绝对没有别的产品可以替代,尤其是伟大的先在市场占用率最高的搜索引擎,Google Search. 还有很多差一大截的,比如 Bing, Yahoo 和 YANDEX. ## 什么是搜索引擎 所 ...
Tornado Auto Etag 机制
为了研究缓存看了 tornado `web.py` 里的 `finish` 函数 代码如下 ```python def finish(self, chunk: Union[str, bytes, dict] = None) - ...
Pipenv + Autoenv 更友善的工作环境
Python 包管理一直都是一个问题,如今 3.6 推荐采用 Pipenv 出自 Requests 的大牛做所。配合上他写的 Autoenv 切换环境再也不是问题。 ## 安装 ### MacOS ```bash brew inst ...
KMP 算法
> 在计算机科学中,Knuth-Morris-Pratt 字符串查找算法(简称为 KMP 算法)可在一个主文本字符串 S 内查找一个词 W 的出现位置。此算法通过运用对这个词在不匹配时本身就包含足够的信息来确定下一个匹配将在哪里开始的发现 ...
编辑距离
> 编辑距离是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。编辑距离可以用在自然语言处理中,例如拼写检查可以根据一个拼错的字和其他正确的字的编辑距离,判断哪一个(或哪几 ...
Tree in Python
树是计算机科学中常用的数据结构之一,常见的地方有,Java 的继承树等。 还有一些基于树的特殊数据结构,比如二叉树,B 树,等等。 本篇会讲述一些关于简单关于树的操作。 ## 树的定义 > 树(英语:tree)是一种抽象数据类型(A ...
基本排序算法的Python实现
本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序。希望大家回顾知识的时候也能从我的这篇文章得到帮助。 **为了防止误导读者,本文所有概念性内容均截取自对应 Wiki** ...
Thoughtworks 一月
距离加入 Thoughtworks 已有一个月。 这家公司也并非互联网公司,没有高强度的工作节奏,没有 996,有一些敏捷信仰。 对于武汉来说,也算是一个优秀的公司。 同时正如网上所言:该有的缺点也是有的。好奇的同学可以去看一下我的编程 ...
基本线性数据结构的Python实现
本篇主要实现四种数据结构,分别是数组、堆栈、队列、链表。我不知道我为什么要用 Python 来干 C 干的事情,总之 Python 就是可以干。 **所有概念性内容可以在参考资料中找到出处** ## 数组 ### 数组的设计 数组 ...
小白也能上手的 ArchLinux 安装教程
ArchLinux 是一个非常符合我个人哲学的操作系统,深得与我一样的大部分 Pythonista 之心(不好意思代表你们了)。 ## 什么是 ArchLinux > ## 原则 >以下核心原则构成了我们通常所指的 Arch 之道,或者 ...