摘要: 当C++系统依赖模块多了之后,构建系统本身的工程质量就成为了重要的瓶颈,这方面开源项目里做的最好的是Chromium项目。 全局视角 构建系统有很多东西,从全局视角来说,这是一个目录 理解 C/C++ 代码的基本编写 理解 C99 理解 C++ 11/14/17/20 标准 理解 C++ 现代多线程 阅读全文
posted @ 2023-08-24 14:42 ffl 阅读(108) 评论(1) 推荐(0) 编辑
摘要: 0x00 最新博文 C++工程如何系列: 如何排查C++链接库之间链接顺序问题 如何解决库链接出现符号重定义问题 如何证明一个静态库没有使用 malloc 0x01 工具/技术 工具 工具(1): 极简Word排版示例(Example by Word2013) 工具(2): 极简MarkDown排版 阅读全文
posted @ 2019-04-02 13:14 ffl 阅读(1903) 评论(24) 推荐(2) 编辑
摘要: conan 常用命令 conan commands 文档: https://docs.conan.io/1/reference/commands.html 阅读全文
posted @ 2024-04-14 21:56 ffl 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 最好用的C++圈复杂度分析工具:pip install lizard,没想到它解析C++的函数块超级快,可以用来作为建立进一步的代码片分析的基础,完胜其他所有工具。 我花了1天多将一个C++模块测试覆盖率做到100%,对于代码如何才具有良好可测试性有了直观的经验,从测试的角度看代码的设计是否简洁是一 阅读全文
posted @ 2024-03-30 15:49 ffl 阅读(97) 评论(0) 推荐(0) 编辑
摘要: day 0: VSCode官方教程 https://code.visualstudio.com/api/get-started/your-first-extension day1: 我需要一些树形控件。 https://dumptyd.github.io/treeflex/ http://inspi 阅读全文
posted @ 2024-03-28 22:12 ffl 阅读(9) 评论(0) 推荐(0) 编辑
摘要: CodeReview发生在软件工具链的每一层,例如这里有对 GCC 生成的代码(汇编)的CodeReview: https://skanthak.hier-im-netz.de/gcc.html GCC 14对静态代码分析的改进:https://developers.redhat.com/artic 阅读全文
posted @ 2024-03-27 14:42 ffl 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 重装 nvidia-docker2 apt-get remove docker docker-engine docker.io containerd runc apt-get install apt-transport-https ca-certificates curl gnupg-agent s 阅读全文
posted @ 2024-03-27 14:27 ffl 阅读(10) 评论(0) 推荐(0) 编辑
摘要: NodeJS: async/awiat: https://github.com/fanfeilong/jsasync Python: asyncio支持 async/await: https://realpython.com/async-io-python/ Rust: async/await: h 阅读全文
posted @ 2024-03-25 14:58 ffl 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 静态变量在编译时和运行时初始化的顺序问题:https://www.modernescpp.com/index.php/c-20-static-initialization-order-fiasco/ 阅读全文
posted @ 2024-03-21 13:00 ffl 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 我们系统性的学习了数学知识,有时候觉的数学毫无用处(例如学了高等数学,实用的还是Excel),有时候觉的数学是门槛(例如机器学习的入门就对数学有要求)。有时候我们只是觉的数学是难的,难的就应该有价值,但是日常生活工作中可能用到的数学工具最多也就是四则运算,最多用用线性组合y=k*x 分析相关性。 那 阅读全文
posted @ 2024-03-01 15:02 ffl 阅读(33) 评论(1) 推荐(0) 编辑
摘要: 第一节,编程入门。 回顾我掌握编程技能的过程,大部分时候,真正掌握实战技能的时候,都是在解决实际工作需要的问题中发生的。 早期在学校的时候,我学习编程也硬着骨头啃过一些书,但是那些更像是把一些要诀和口诀硬记忆在脑子里作为线索,在以后用到的时候能想到这些线索再去查。 所以,我的感觉是编程并需要像数学一 阅读全文
posted @ 2024-02-29 17:48 ffl 阅读(26) 评论(0) 推荐(0) 编辑
摘要: Python 库精选 基础库 os, sys, shuitl, subprocess json, pyyaml 机器学习 numpy, pandas, matplotlib numpy basic:https://wesmckinney.com/book/data-cleaning tensorfl 阅读全文
posted @ 2024-02-28 17:08 ffl 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 大模型(LLM)需要大量的算力,从而导致大部分人没办法像旧时代一样轻易的参与AI时代的编程。网上也有很多从零开始写GPT的例子,我们也可以这么做。对于数据和算力的需求,可以通过把目标定的比较小的方式来实现。 先开个头,随时更新。 // 可以从这里开始:https://github.com/karpa 阅读全文
posted @ 2024-02-21 10:40 ffl 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 以GCC9.2为例,下面是一个完整的下载源代码,编译,安装,配置的过程 cd /usr/local/src wget ftp://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.xz xz -d gcc-9.2.0.tar.xz tar -xf gcc-9.2 阅读全文
posted @ 2024-02-06 22:24 ffl 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 一个容器,进入容器的时候是否开启gpu,会导致 curl 的行为不一致。具体表现为 容器开启 --gpus all 后进入容器,执行 curl 会出现“curl: symbol lookup error: curl: undefined symbol: curl_mime_free” 错误 诊断中, 阅读全文
posted @ 2024-02-06 20:44 ffl 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 如何安全的在一个已有的git分支上,自动化的切换到另外一个分支指定commit?下面是一种干净的安全的可以自动化的做法: 清理本地脏数据 git checkout . git clean -df . 将 commit 重置到 HEAD git reset --hard HEAD 重置子git模块 g 阅读全文
posted @ 2024-01-30 22:52 ffl 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 这几天写了一些有趣的代码: 规格设计 把git当作 json 数据库。做法是这样的: 创建一个git仓库 为每个最小粒度的数据创建一个独立的json文件({table}.json) 客户端通过 Python写git操作代码,实现几个数据库操作接口。 数据库操作接口最小集: 初始化:把git仓库拉下来 阅读全文
posted @ 2024-01-30 12:39 ffl 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 编写干净清晰的Python代码的一种通用设计 在 python 和 shell 之间选择 如果有Python环境,应该大部分时候都选择使用 Python 来编写系统。这是因为: Python 更易于维护,适合模块化设计(class, 多文件 import,层次文件夹支持,成熟的库依赖) Shell 阅读全文
posted @ 2024-01-29 00:45 ffl 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 构架 在代码编写和工程设计中,构架的好坏往往决定着模块代码编写和系统构建的不变性和灵活性。构架的好坏往往在根本层面上导致了实际开发中的效率和反碎片化问题。好的构架思维经常是会丢失的,被反复重新发现的。因此我们有必要不断收集好的构架设计,从中归纳不变的部分。 常见构架 多进程模式 插件模式 多git仓 阅读全文
posted @ 2023-12-24 00:45 ffl 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 工程中的“面向对象”编程 在工程处理中,工程师很容易写出碎片的脚本代码,例如处理服务器上的脚本: 假设了一些存在的环境变量、目录结构、配置和数据 脚本基于这些假设开始做一堆中间处理,并最终得到一些输出数据。 即使有了docker,有了k8s,无论是在docker外,还是docker内,还是会有很多这 阅读全文
posted @ 2023-11-21 18:03 ffl 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 实用"函数式"编程范式 通常说函数式编程,可能就会提到 map / reduce, 或者函数编程语言,例如 lisp, Haskell 等。 我以前读过一篇文章,具体链接找不到了,作者的观点是函数式编程具体体现在通过函数编程可以直观得看到逻辑调用链条之间的关系。 例如下面这段代码: p = a( b 阅读全文
posted @ 2023-11-19 19:38 ffl 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 软件开发,基本的过程是三部分: 工具,流程,和人。开发中,每个角色需要关注两个方向的问题,一个是向下的问题拆解(How),另一个是向上的问题定义(What)。这两部分又都分别和另外一个绑定在一起: Why,为什么问题这样解决,为什么问题是这个。常常,解决How耗费了工程师大量的精力,因为向下解决问题 阅读全文
posted @ 2023-11-04 09:26 ffl 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 软件都有分层,C/C++代码的覆盖率工具亦如此。我们从测试覆盖率工具的分层,来理解工程上十分普遍分层概念,而在工具链上,这点又常常容易被忽视。 一个简单的例子,C/C++的基本测试覆盖率介绍 源代码main.cpp: #include <stdio.h> void test_1(){ int arr 阅读全文
posted @ 2023-10-27 04:42 ffl 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 最近总想,算法好像没有数学那样直观,例如方程可以解决一大类问题,我们遇到许多数学问题,只要将其转成方程问题,剩下的就是解方程。算法好像不是那么直观,顺着这个思路开始重新看算法问题。今天有一个收获,也可能其他人早就知道。 int max=INT_MIN; for(size_t i=0;i<v.size 阅读全文
posted @ 2023-10-20 00:35 ffl 阅读(35) 评论(0) 推荐(0) 编辑
摘要: by @幻灰龙 && GPT3.5 PDF下载:学习Linux基础的一种思维链条.pdf 介绍Linux 的目录结构 Linux的目录结构采用了树形结构,主要包括以下核心目录: /(根目录):整个文件系统的起点,包含所有其他目录和文件。 /bin:二进制可执行文件,包括一些基本的系统命令,如ls、c 阅读全文
posted @ 2023-10-15 14:45 ffl 阅读(194) 评论(0) 推荐(0) 编辑
摘要: <stdint.h>是C99的标准,在里面定义了8,16,32,64位的有符号和无符号整数类型定义。 分别是: int8_t, int16_t, int32_t, int64_t; uint8_t, uint16_t, uint32_t, uint64_t; 那么,这些类型具体是什么呢?让我们一起追 阅读全文
posted @ 2023-10-13 22:36 ffl 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 引子 昨天为了教大一的小朋友入门C++,又去折腾了下windows的环境。 windows上的开发环境,从老的到新的 DevCpp (CCF出的一套针对初中生的编程入门书还在用这个,作为上手简化先把代码写起来的角度也能接受) VisualC++6.0 (学校教学居然还在用这个) VisualStud 阅读全文
posted @ 2023-10-05 12:12 ffl 阅读(152) 评论(0) 推荐(0) 编辑
摘要: GCC 动态链接库链接查找 https://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html It looks in the DT_RPATH section of the executable, unless there i 阅读全文
posted @ 2023-09-22 23:33 ffl 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 下面是一组和GPT的对话,通过逐个排查,我们知道只有一种情况会导致符号重定义。以下假设在 CMake 配置环境。 Q:如果一个静态库a,链接了b,这个时候 c 链接了 a 和 b ,会导致 b 符号重复定义么? A: 任何库(静态或动态)本身都不链接其他库。他们可能有对其他库的依赖性,但实际上并不包 阅读全文
posted @ 2023-09-21 13:18 ffl 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 今天我还做了另外一个有趣的事情: 有一个客户要求我们提供的一个 libxxx.a 文件不能使用 malloc 动态分配内存。研发排查了下代码都没有用到 malloc。 但是客户说他们还是可以看到 malloc 符号,但是他们把malloc的实现hook成空的也能跑。所以他们相信我们应该没有调用mal 阅读全文
posted @ 2023-09-21 00:36 ffl 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 今天浪费了8个小时排查了一个 C++ 库编译后依赖的cuda符号找不到的问题。后面在凑巧的情况下在 链接库的地方加了一个可能会用到的库,结果就通过了。但是凑巧肯定是有更深刻的原因,再反复验证,实际上是这样的: link(A) link(B) link(mm) 我加的 mm 库后链接就通过了。但是 m 阅读全文
posted @ 2023-09-21 00:13 ffl 阅读(72) 评论(0) 推荐(0) 编辑
摘要: https://abuseofnotation.github.io/category-theory-illustrated/01_set/ 阅读全文
posted @ 2023-09-14 11:11 ffl 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 这些博客仍然非常值得读,虽然再也不会更新了: Vamei: https://www.cnblogs.com/vamei/ 一个程序员被骗去养猪 左耳朵耗子:https://www.coolshell.cn/ 我做系统架构的一些原则 程序员技术练级攻略 阅读全文
posted @ 2023-09-13 13:29 ffl 阅读(39) 评论(0) 推荐(0) 编辑
摘要: CMAKE 强制忽略警告 将目录当作系统目录,可以忽略目录下头文件产生的警告,在某些情况下有用 include_directories(SYSTEM "xxx/include") CMAKE 配置 protobuf Q: protobuf_generate_cpp 是 CMake 的内置函数么? A 阅读全文
posted @ 2023-09-08 18:30 ffl 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 在编写 Python 程序的时候,很容易直接调用 system, subprocess.Popen, subprocess.run, subprocess.call, subprocess.check_call, subprocess.check_output 等方法执行命令。但是如果一个系统里充满 阅读全文
posted @ 2023-09-07 02:44 ffl 阅读(59) 评论(0) 推荐(0) 编辑
摘要: #### [flatten-json](https://pypi.org/project/flatten-json/): 将object, dict, array 压缩成一维 一个有趣的用法: ```python from flatten_json import flatten def __flat 阅读全文
posted @ 2023-09-06 22:46 ffl 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 语言入门,循序渐进: C语言: CCF中学生计算机程序设计 入门/基础/提高 三册,由于面向中学生,适合一开始的时候先一步步建立概念,它的IDE用的是古典的DevCPP,如果能改成用Visual Studio Code 会更好。 阮一峰-网道: C语言教程 C程序设计语言: [美] Brian W. 阅读全文
posted @ 2023-09-02 20:20 ffl 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 批量资源创建是一种典型的数据处理流程。这样的数据处理流程典型步骤是 * 加载输入数据集 * 遍历数据集,对每个条目,创建目标资源,目标资源可能是一种,也可能是嵌套的有层次结构的树状结构的一系列资源。 这样的处理流程,如果不做任何错误处理,整个程序处于脆弱状态。应该考虑哪些问题呢? * 首先需要考虑的 阅读全文
posted @ 2023-08-28 22:45 ffl 阅读(27) 评论(0) 推荐(0) 编辑
摘要: Five things you need to know about: mRNA vaccine safety Five things you need to know about: mRNA vaccines Understanding mRNA COVID-19 Vaccines Why are 阅读全文
posted @ 2021-01-05 11:04 ffl 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 上一篇:技术的极限(12): 探索编译器 目录: ** 0x01 Mozilla的Areweyet ** 0x02 做小的决策 ** 0x03 细胞地图 ** 0x04 rga: 多文件类型行搜索 ** 0x05 Kaitai|又一个多语言二进制编解码器生成器 ** 0x06 命令行程序开发指南 * 阅读全文
posted @ 2020-12-14 09:35 ffl 阅读(298) 评论(0) 推荐(0) 编辑
摘要: notes for learning and using typescript 阅读全文
posted @ 2020-11-25 11:16 ffl 阅读(597) 评论(0) 推荐(0) 编辑