摘要: 当C++系统依赖模块多了之后,构建系统本身的工程质量就成为了重要的瓶颈,这方面开源项目里做的最好的是Chromium项目。 全局视角 构建系统有很多东西,从全局视角来说,这是一个目录 理解 C/C++ 代码的基本编写 理解 C99 理解 C++ 11/14/17/20 标准 理解 C++ 现代多线程 阅读全文
posted @ 2023-08-24 14:42 ffl 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 0x00 最新博文 C++工程如何系列: 如何排查C++链接库之间链接顺序问题 如何解决库链接出现符号重定义问题 如何证明一个静态库没有使用 malloc 0x01 工具/技术 工具 工具(1): 极简Word排版示例(Example by Word2013) 工具(2): 极简MarkDown排版 阅读全文
posted @ 2019-04-02 13:14 ffl 阅读(1920) 评论(24) 推荐(2) 编辑
摘要: 材料处理 原始链接: https://pycoders.com/link/13271/web 使用r.jina.ai 获得其Markdown: https://r.jina.ai/https://realpython.com/courses/pydantic-simplify-data-valida 阅读全文
posted @ 2024-09-15 10:31 ffl 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 我们知道做成一件事,和一个人以前是否做过这件事有关系。那么如果这件事以前没做过,如何才能一步一步做成呢? 其中一种情况类似 DK-effect 曲线。 一开始信心满满,信息不全,只看到探照灯看见的范围内的事情的难度就开始入手做了,一路往上爬到第一个峰顶。 到了峰顶,会遇到要做的这个事情的瓶颈问题,这 阅读全文
posted @ 2024-09-12 19:29 ffl 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 如何编写可维护代码,从一开始就规避代码的质量劣化。本文侧重 Python 编程语言。 参考资料: [1] 王垠: 编程的智慧 [2] 陈皓: Go编程模式 实战体会 for 循环体内一开始就应该尽可能只是转调用一个子函数,而不是就地写for循环的body,因为代码非常快的就暴涨,很快for循环的bo 阅读全文
posted @ 2024-08-27 11:55 ffl 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Q: 我们重新开始设计,每个Parser必须包含两个方法,一个方法是parse(self,main_parser),另一个方法是 try_parse(tokens, position)。parse方法里转调用try_parse,只有try_parse返回非空结果和位置信息时在parse方法里才会真正 阅读全文
posted @ 2024-08-24 14:43 ffl 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 本节内容可能不会很长,但是还是希望尽可能把这个环节重要的骨架勾勒出来。 有一个经典的问题是:“如果你是一个投资人,要投资一个项目,核心是看什么?项目还是团队?”。与之对应的一个问题是:“如果你是一位创业者,创业的基石是一个独特的项目还是一个优秀的团队?” 当然这种二选一的问题往往都只强调了某一个方面 阅读全文
posted @ 2024-08-14 00:31 ffl 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 工欲善其事,必先利其器,以我在C公司主导的技能树产品的分层构架和工具链构建为例子,展示投资工具链在软件开发中的好处。流畅的工具链,是软件开发团队效能的关键之一。 技能树数据服务的编译/构建 技能树数据服务按顺序,分别在如下几个维度来建立规范化的编译/构建 源代码管理 项目采用git做源代码版本管理, 阅读全文
posted @ 2024-08-14 00:29 ffl 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 现代软件开发,人与人在空间上的距离已经越来越明显地发生了范式转移,在可预见的未来和更久远的时候,远程办公都会是一件经常发生或者常态的协同方式。远程软件开发的最小组织单位是远程小组软件开发,把远程小组软件开发的效能做好,软件公司将在空间上解放了一种新的能力:可以在更大区域间完成软件开发的组织和协同工作 阅读全文
posted @ 2024-08-14 00:25 ffl 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 问题 你是一位软件工程专家。现在有40个c++模块,每个模块有管理者和实际开发的负责人。每个c++模块都要做parasoft静态代码扫描,测试覆盖率,圈复杂度指标。三个方面各自有工具来扫描数据以及工具的负责人。这个项目有项目经理,每周有一次所有模块研发都在的例会。请你设计一个3个月的爬坡计划,包含每 阅读全文
posted @ 2024-07-30 12:30 ffl 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 本文主要展示Transfomer, Bert, GPT的神经网络结构之间的关系和差异。网络上有很多资料,但是把这个关系清晰展示清楚的不多。本文作为一个补充资料组织,同时利用chatGPT,让它使用Tensor flow Keras 来组装对应的迷你代码辅助理解。 从这个组装,可以直观的看到: Tra 阅读全文
posted @ 2024-07-11 14:07 ffl 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 很多技术,我们并不会动手去实现,有时候也不必要自己都动手实现。但是如果不对它有过一些「操作」,对这些名词的理解就会缺乏具体的感觉。通过对GPT的略微系统的提问,结合自己的经验,可以极大的扩展此类知识的理解和掌握。 Q: 数据库底层有哪些重要的数据结构? A: 数据库底层有以下几种重要的数据结构: B 阅读全文
posted @ 2024-07-11 14:01 ffl 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Pandas 的核心数据模型主要有两个:Series 和 DataFrame。 Series: Series 是一个一维的数据结构,可以理解为带有标签的一维数组。标签可以是数字或字符串。 每个 Series 对象包含两部分:数据 (values) 和索引 (index)。 示例:import pan 阅读全文
posted @ 2024-06-27 18:49 ffl 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 主成分分析(PCA)是一种用于降维的统计方法。以下是一个包含具体数据的PCA计算例子,包含每一个步骤。 数据集 假设我们有一个2D数据集,如下所示: X = [[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0], [2.3, 2.7] 阅读全文
posted @ 2024-06-18 21:30 ffl 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 要证明表面积相同时,正方体的体积比长方体的体积大,可以通过比较它们的体积公式来证明。以下是详细的证明过程: 设定变量: 设正方体的边长为 \(a\)。 设长方体的长、宽、高分别为 \(l\)、\(w\)、\(h\)。 表面积公式: 正方体的表面积 \(S_{\text{cube}} = 6a^2\) 阅读全文
posted @ 2024-06-16 21:47 ffl 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 下面的方式,把任意的局部代码包装在λ 函数里,就地调用,同时把λ 函数保存到全局表,在外部访问。 #include <iostream> #include <vector> #include <functional> #include <map> #include <any> // 全局的 map, 阅读全文
posted @ 2024-05-30 20:35 ffl 阅读(8) 评论(0) 推荐(0) 编辑
摘要: // 下面是GPT的回答,实际上并不靠谱,gcov生成的多个branch信息,但是它并没有给出足够的信息表明这些branches如何判断是否进入了if 理解 branch Q: 这里的fallthough 是什么意思 600000: 116: if (lu_dis >= 0 && ru_dis > 阅读全文
posted @ 2024-05-25 01:43 ffl 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 应用程序里可以任意写SQL语句,到了数据库这层,所有的SQL语句都被做了编排。 在应用层可以同步、异步的投递SQL语句:s1, s2,s3,...。混在意大利面条一样的代码里,看不到谁先执行谁后执行。 在数据库层,这些语句会被编排。编排后,实际的执行时序可能是 s2,25,s1,s3,s4... 那 阅读全文
posted @ 2024-05-24 23:04 ffl 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 假设有要处理的数据 A1 A2 A3 ... 你想要设计一个功能 F,这个F应该处理数据 Ai,那么你需要编写程序P=F,是的: O1 = F(A1) O2 = F(A2) O3 = F(A3) ... 如果写了个F,一次就解决了,那就万事大吉了。 如果不行,你会发现: 处理A1,需要上下文 C1 阅读全文
posted @ 2024-05-21 02:11 ffl 阅读(21) 评论(0) 推荐(0) 编辑
摘要: “malloc.c: No such file or directory.” 参考:https://www.cnblogs.com/gatsby123/p/11755320.html 安装依赖 sudo apt-get install libc6-dbg sudo apt-get source li 阅读全文
posted @ 2024-05-06 21:16 ffl 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 无论系统怎么组织,只要发生如下问题,工程上就会非常费劲: 一个叶子结点的模块,在不同的系统集成里集成叶子结点模块的不同分支,这些分支之间代码差异很大。 单模块的分支管理 git解决了单项目的分支管理问题。但是这只是一个模块的分支管理。 一个模块内的版本可以是: main dev somebody/d 阅读全文
posted @ 2024-04-30 01:14 ffl 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 最好用的C++圈复杂度分析工具:pip install lizard,没想到它解析C++的函数块超级快,可以用来作为建立进一步的代码片分析的基础,完胜其他所有工具。 我花了1天多将一个C++模块测试覆盖率做到100%,对于代码如何才具有良好可测试性有了直观的经验,从测试的角度看代码的设计是否简洁是一 阅读全文
posted @ 2024-03-30 15:49 ffl 阅读(133) 评论(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 阅读(17) 评论(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:26 ffl 阅读(15) 评论(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:57 ffl 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 静态变量在编译时和运行时初始化的顺序问题:https://www.modernescpp.com/index.php/c-20-static-initialization-order-fiasco/ C风格代码:https://github.com/mcinglis/c-style Unreal的C 阅读全文
posted @ 2024-03-21 13:00 ffl 阅读(12) 评论(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 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 大模型(LLM)需要大量的算力,从而导致大部分人没办法像旧时代一样轻易的参与AI时代的编程。网上也有很多从零开始写GPT的例子,我们也可以这么做。对于数据和算力的需求,可以通过把目标定的比较小的方式来实现。 先开个头,随时更新。 // 可以从这里开始:https://github.com/karpa 阅读全文
posted @ 2024-02-21 10:40 ffl 阅读(69) 评论(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:23 ffl 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 一个容器,进入容器的时候是否开启gpu,会导致 curl 的行为不一致。具体表现为 容器开启 --gpus all 后进入容器,执行 curl 会出现“curl: symbol lookup error: curl: undefined symbol: curl_mime_free” 错误 诊断中, 阅读全文
posted @ 2024-02-06 20:44 ffl 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 如何安全的在一个已有的git分支上,自动化的切换到另外一个分支指定commit?下面是一种干净的安全的可以自动化的做法: 清理本地脏数据 git checkout . git clean -df . 将 commit 重置到 HEAD git reset --hard HEAD 重置子git模块 g 阅读全文
posted @ 2024-01-30 22:52 ffl 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 这几天写了一些有趣的代码: 规格设计 把git当作 json 数据库。做法是这样的: 创建一个git仓库 为每个最小粒度的数据创建一个独立的json文件({table}.json) 客户端通过 Python写git操作代码,实现几个数据库操作接口。 数据库操作接口最小集: 初始化:把git仓库拉下来 阅读全文
posted @ 2024-01-30 12:39 ffl 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 编写干净清晰的Python代码的一种通用设计 在 python 和 shell 之间选择 如果有Python环境,应该大部分时候都选择使用 Python 来编写系统。这是因为: Python 更易于维护,适合模块化设计(class, 多文件 import,层次文件夹支持,成熟的库依赖) Shell 阅读全文
posted @ 2024-01-29 00:45 ffl 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 构架 在代码编写和工程设计中,构架的好坏往往决定着模块代码编写和系统构建的不变性和灵活性。构架的好坏往往在根本层面上导致了实际开发中的效率和反碎片化问题。好的构架思维经常是会丢失的,被反复重新发现的。因此我们有必要不断收集好的构架设计,从中归纳不变的部分。 构架的图示 图片来自:https://ia 阅读全文
posted @ 2023-12-24 00:45 ffl 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 工程中的“面向对象”编程 在工程处理中,工程师很容易写出碎片的脚本代码,例如处理服务器上的脚本: 假设了一些存在的环境变量、目录结构、配置和数据 脚本基于这些假设开始做一堆中间处理,并最终得到一些输出数据。 即使有了docker,有了k8s,无论是在docker外,还是docker内,还是会有很多这 阅读全文
posted @ 2023-11-21 18:03 ffl 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 实用"函数式"编程范式 通常说函数式编程,可能就会提到 map / reduce, 或者函数编程语言,例如 lisp, Haskell 等。 我以前读过一篇文章,具体链接找不到了,作者的观点是函数式编程具体体现在通过函数编程可以直观得看到逻辑调用链条之间的关系。 例如下面这段代码: p = a( b 阅读全文
posted @ 2023-11-19 19:37 ffl 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 软件开发,基本的过程是三部分: 工具,流程,和人。开发中,每个角色需要关注两个方向的问题,一个是向下的问题拆解(How),另一个是向上的问题定义(What)。这两部分又都分别和另外一个绑定在一起: Why,为什么问题这样解决,为什么问题是这个。常常,解决How耗费了工程师大量的精力,因为向下解决问题 阅读全文
posted @ 2023-11-04 09:26 ffl 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 软件都有分层,C/C++代码的覆盖率工具亦如此。我们从测试覆盖率工具的分层,来理解工程上十分普遍分层概念,而在工具链上,这点又常常容易被忽视。 一个简单的例子,C/C++的基本测试覆盖率介绍 源代码main.cpp: #include <stdio.h> void test_1(){ int arr 阅读全文
posted @ 2023-10-27 04:42 ffl 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 最近总想,算法好像没有数学那样直观,例如方程可以解决一大类问题,我们遇到许多数学问题,只要将其转成方程问题,剩下的就是解方程。算法好像不是那么直观,顺着这个思路开始重新看算法问题。今天有一个收获,也可能其他人早就知道。 int max=INT_MIN; for(size_t i=0;i<v.size 阅读全文
posted @ 2023-10-20 00:35 ffl 阅读(42) 评论(0) 推荐(0) 编辑
摘要: by @幻灰龙 && GPT3.5 PDF下载:学习Linux基础的一种思维链条.pdf 介绍Linux 的目录结构 Linux的目录结构采用了树形结构,主要包括以下核心目录: /(根目录):整个文件系统的起点,包含所有其他目录和文件。 /bin:二进制可执行文件,包括一些基本的系统命令,如ls、c 阅读全文
posted @ 2023-10-15 14:45 ffl 阅读(202) 评论(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 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 引子 昨天为了教大一的小朋友入门C++,又去折腾了下windows的环境。 windows上的开发环境,从老的到新的 DevCpp (CCF出的一套针对初中生的编程入门书还在用这个,作为上手简化先把代码写起来的角度也能接受) VisualC++6.0 (学校教学居然还在用这个) VisualStud 阅读全文
posted @ 2023-10-05 12:12 ffl 阅读(299) 评论(0) 推荐(0) 编辑