跳转至

笔记

劝退指南:不是博客,而是笔记,甚至是草稿

写笔记是为了让自己看懂,写博客是为了让别人看懂,不一样的,认真做好后者对自己各方面能力的提升会非常大(比如表达能力),其实很多时候记笔记就是写几段自己能看懂的表达,很随性,但写博客更像是写一篇论文,需要自己先彻底搞明白一个东西后才能输出1

我一直努力将内容写成博客。但是后来发现,根本没有时间和心思,来为别人解释很多事情。我的想法是最多是解释给多年后忘记一切的自己听,我还能快速看懂。能达到这点,这些内容的意义对于我就已经足够。

从读者的角度,我并不会推荐任何人阅读这个网站的内容:因为你会遇到以下令人烦躁的场景

  1. 完整性差:某些笔记写着写着就没有了,内容是残缺的。甚至只有一个标题。(这是因为我没有时间填充内容,或者我的研究和注意力转变方向了,弃坑了弃坑了~)
  2. 可读性一般:很少有起承转合的解释语句,笔记的内容逻辑几乎全部靠多级标题维持.
  3. 笔记间关联性低:从读者的角度是看不到本人是如何使用多级文件夹,来组织划分笔记间的内容逻辑。如果你在搜索栏找不到你想要的关键词,那大概率我没接触到这方面的内容。
知识是自然聚类和融合的,但需要两级的文档来过滤内容和撰写正文。小而全、无懈可击的内容应该是所追求的

导致这种情况,其实和我对知识产出过程的理解有关,我认为过程是 知识是自然聚类和融合的

  1. 接触到领域对象(新建文件夹)
  2. 阅读各种文献网站(零散的知识进行简单的聚类)
  3. 上手实践和研究(踩了许多坑,有或多或少的感悟)。

而且三者的占比是前面远大于后面,这样看来我这网站大部分的内容岂不是都是笔记的草稿

我以这样的方式撰写我的正式的毕业论文时,发现这样的处理有利有弊:

  1. 优势:
    1. 速度?:能快速的罗列出内容,填充了大量垃圾内容
    2. 完备性:保留所有必要的相关信息,
  2. 劣势:
    1. 对工作进度的误判:罗列的大量页数迷惑了自己,以为进度很快。其实仔细思路内容的有效性、逻辑关联性。核心观点的提炼。遣词造句都极其耗费时间。
      1. 最重要是导致只看页数的领导对你工作速度的误判导致的嫌弃:一周前就看见里论文写了60页了,怎么两周了还没写完。或者你都60页了快结束了,来帮帮我弄这个~阿米诺斯~
    2. 需要返工:重新整理罗列的垃圾内容,至少需要三倍以上的时间才能整理好。

总结:知识是自然聚类和融合的思想是没错的,但是在实际生产应用时需要两级的信息筛选过滤体系:区分出正文内的todo内容和未整理的archived信息。通过将罗列的完备信息初步分类归档(有基础的逻辑)以待后续使用,正文精心撰写每一句话保证不需要大量返工。

宛如泥潭的大型项目开发困境

导言

当时我选择一线的原因是决定能最解决客户,每个工作能产生最大的价值。

通过一段时间的开发,我感觉在一线开发就像在泥潭里前进:走得越快越远,泥潭陷得越深,前进阻力越大。

困境为何而来,如何解决困境,是我想讨论的重点。

Continuous Integration, CI

导言

在交付PTA需求的时候,发现需求在测试人员的更大的测试规模下出现了问题:

在增多了不同的测试样例,和不同的测试设备(910A,910B,310P)时;程序是否可执行,性能是否达标,精度是不是正常;都有待监控。

说明在开发过程中,我构建个人的每日测试框架,持续监控开发的测试和性能。

集成 windmill-labs / windmill。

AI Model Visualization

导言

作为一个AI初学者,总是遇到以下场景:

  1. 客户正在基于NV开发一个AI模型,需要同步的做昇腾适配。手上只有NV下的代码。
  2. 往往很难将论文里的AI模型的图,和代码里的每一层以及参数对应起来。

设计期望:

  1. 在模型开发的过程中,能简单插入,来明确当前模块的大致信息。
  2. 名称,类型(卷积层,池化层),输入/输出/参数, 执行的时间(第一次)。
  3. 可视化
  4. 格式兼容cpprinter。
  5. 能体现出TP,CP等并行策略的效果。

大致思路:

  • 还是借助chrome://tracing格式,来设计类似PyPrinter的工具。
  • 早期可以使用VizTracer代替。

Naming

导言

变量和函数的命名一直是程序员最头疼的事,好的命名应该简洁且自注释,同时还要注意冲突、和相似命名的歧义。

本文将从以下几个方面展开:

  1. 驼峰型 、下划线型
  2. 命名示例

Aarch64 CPU Benchmarks for Performance Degrade

导言

测试人员之前有台高性能的测试机器,未知原因坏了之后,他们修好之后,发现性能损失。推测是鲲鹏920的性能损失,为此需要:

  1. 通过benchmark证明性能损失。
  2. 定位并说明性能损失原因:1. 软件硬件? 2. 硬件老化还是流片差异?
  3. 确定性能损失原因,并给出解决方案。

Disk Space Cleanup

导言

  • 在开发的过程中,服务器基本没有用户隔离,一个root走天下。
  • 磁盘空间也总是告罄,删除时也难以判断文件所属,和是否有保留的必要。

[C++] Destructor Order

导言

  • 一般来说,析构函数应该只处理释放资源,不处理逻辑。
  • 但是PTA的代码里,在全局变量的析构函数里,写了向子线程发送结束信号的函数,和childThread.join()。这导致了很奇怪的问题,string demalloc等。

为此,想研究一下C++的析构函数执行顺序。包括嵌套的Class结构,和全局变量的析构时机。

Install Zsh from source

导言

在工作的时候,发现机器有许多网络限制,EulerOS 也没有zsh,tmux(请看tmux的内容),所以尝试从源码安装。

Disease And Prevention

导言

  • 从8月5号开始到华为工作,我就感觉身体状况比上学时期下降几个水平。
  • 问题包括感冒发热、心悸心梗、耳鸣、喉咙发炎、四肢僵硬、失眠。(哪怕是我记录的现在,也心慌难受,和喉咙发炎疼痛)
  • 最主要的原因无疑是工作强度很大(9106),工作压力也大(导致失眠)
  • 这导致锻炼不足,哪怕抽出空能锻炼了,在迈开腿跑之前,也时常感觉心慌难受,和双腿酸胀,根本跑不动。

本文希望从记录遇到的各种疾病问题的视角,和对性的自我医治和预防,从而对作息和生活习惯进行反思和改进。

RPM Package

导言

  • 一般情况不会需要使用rpm安装包,因为包之间的依赖复杂,一般交给yum或者dnf处理
  • 那如果yum,和dnf报错了,你就需要使用rpm命令来修复yum和dnf了。