lnav

在最开始的时候……

2019年1月前往印度高通出差,出差期间使用的是 MacBook Pro 进行调试。

每天需要看很多 log,平时在 Windows 上使用 TAT 进行 log 分析,但是在 macOS 上暂时不知道应该用什么看,就想着能不能找一个 vim/emacs 的 log 分析/过滤插件,不过一直没找到合适的;后来就直接找有没有对应的程序,于是就找到了这个 Log NAVigator。

不过不怎么会用,help 页比较长,而且 format 也难写,就懒得看,于是束之高阁……

接下来的故事……

2019年6月前往韩国三星出差,出差期间使用的依然是这台 MacBook Pro……

不过不一样的是,当时 macOS Catalina 和 iPadOS 13已经开始公测了(有 SideCar,用过的人都知道),就想着可以自带多屏办公了,还是多用用 macOS 来看代码分析问题……

所以就算是硬着头皮开始摸索着用 lnav。

当时用的功能仅限于 filter-in/filter-out,而且还不知道该怎么删过滤器,所以就看了两眼文档,不过感觉这个命令还是好麻烦啊,还要把那个正则重新写一遍(现在看来简直蠢萌)……

后来……

后来就发现可以用 <TAB> 快捷操作过滤器,感觉这个工具就不那么难用了(明明是开始的时候我太懒了好吗)……

就在刚刚!

我又看了一下帮助页,这个工具简直就是个神仙工具啊!

在使用 format 对 log 成功解析之后,各种高亮就出来了,然后配合 SQL 语句,就可以开始各种过滤。

这也太厉害了吧!

最后附上文档(当然,在 lnav 里用 “:help” 命令也可以查看帮助文档)。

https://lnav.readthedocs.io/

关于KDE Connect

2015年的时候我写过一篇文章,关于KDE Connect。
时至今日,我依然在使用这款软件——不仅仅是因为好用。
由于新客户端的加入,扩展了这款app(或者说是协议)的生态和使用场景。不得不说,这款app为多设备协作提供了更多可能。

新加入的客户端有:

不过遗憾的是,目前iOS和Windows这两个主流平台还没有这款app进行适配。

红黑树(一):概念

(摘自维基百科)红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为”对称二叉B树”,它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在 O(log n) 时间内做查找,插入和删除,这里的 n 是树中元素的数目。

红黑树的性质

红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:
1. 节点是红色或黑色。
2. 根是黑色。
3. 所有叶子都是黑色(叶子是NIL节点)。
4. 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点。)
5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。

红黑树的应用(欢迎评论中补充)

内核中的CFS调度算法
STL::map