自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LK-T.O.P的博客

Learning makes me happy!!!

  • 博客(75)
  • 资源 (3)
  • 收藏
  • 关注

原创 Falco vs. Tetragon:云原生运行时安全选型指南

Falco与Tetragon是云原生运行时安全的两大主流工具:Falco基于规则引擎,开箱即用、生态丰富,适合以检测告警为核心的团队;Tetragon依托eBPF,提供内核级可观测与原生阻断能力,性能优越,适用于深度集成Cilium、需精细控制的场景。选型关键在于匹配团队的安全成熟度、技术栈与运营能力——前者重“看得见”,后者重“拦得住”。建议分阶段落地,从观测起步,逐步构建闭环响应体系,最终实现DevSecOps全流程安全。

2026-10-16 17:14:31 424 1

原创 GitLeaks

Gitleaks 是一款基于 Go 语言的开源敏感信息检测工具,通过正则匹配、信息熵分析与上下文识别三重机制,精准检测 Git 仓库中的 API 密钥、密钥、令牌等敏感数据。支持本地/远程仓库扫描、CI/CD 集成、Pre-commit 钩子及 GitHub Action,可输出 JSON、SARIF 等多种格式报告。提供自定义规则与允许列表,适配多平台,助力实现“左移安全”。

2026-09-21 15:56:49 200

原创 Common Go Mistakes(V 函数和方法)

参考 100go接收器类型包含了值接收器(Value Receiver)和指针接收器(Pointer Receiver),这会影响方法的行为和性能。方法接收器类型决定了该方法操作的是数据本身的副本还是内存地址。如何选择接收器类型?命名返回参数是 Go 语言的一个特性,允许在函数签名中为返回值命名。这些命名参数会被初始化为其类型的零值,并可以在函数体内像普通变量一样使用。这是一个强大的特性,但很多开发者从不使用它,或者误用它。何时应该使用命名返回参数作为文档,特别是在接口定义中何时不应该使用命名返回

2025-12-16 23:00:00 1909

原创 Kafka如何实现高性能IO?

强制顺序读写,规避机械硬盘的物理劣势。借力Page Cache减少 IO 并提升读性能。使用Zero Copy,解放 CPU。全链路Batching,以吞吐量换低延迟。

2025-12-04 10:11:14 1073

原创 Common Go Mistakes(IV 字符串)

许多开发者在处理 I/O 时,会不断地在 string 和 []byte 之间来回转换。在 Go 语言中,不应该使用基于索引的传统 for 循环来遍历字符串,因为这样遍历的是“字节”而不是“字符”。连接字符串都会创建一个新的字符串对象。因此,频繁的字符串连接可能会导致内存分配和复制开销。包相似的操作,可以帮助避免 []byte/string 之间的转换。Go 语言中的字符串是不可变的(immutable),每次使用。系列函数移除的是字符集,而不是字符串前缀/后缀。,而不是创建新的副本。

2025-12-02 19:30:00 633

原创 Common Go Mistakes(Ⅲ 控制结构)

Go语言常见循环错误及解决方案:1. range循环变量是值拷贝而非引用,修改需通过索引或指针切片;2. range表达式仅循环前求值一次,数组遍历副本不受修改影响,切片和映射受影响;3. Go 1.22+已修复循环变量指针问题;4. 映射遍历无序且修改结果不确定;5. 不带标签的break仅中断最内层循环;6. 循环中使用defer会导致资源延迟释放,应封装函数处理。需注意值拷贝特性及控制结构的具体行为差异。

2025-11-13 16:22:50 1260 1

原创 如何处理消费过程中的重复消息

消息队列中重复消息会导致数据错误,主要源于发送方重试或消费者ACK失败。解决关键是实现消费操作的幂等性,常见方法包括:1)唯一消息ID+去重表,通过Redis或DB检查记录是否已处理;2)数据库乐观锁,使用版本号机制确保数据一致性。这些方法能保证多次处理同一消息产生相同结果,避免数据异常。

2025-10-31 22:00:00 297

原创 Common Go Mistakes(Ⅱ 数据类型)

本文总结了Go语言中常见的数据类型使用错误,重点分析了切片和整型的典型问题。在整型方面,指出了八进制表示法的混淆风险、整型溢出的检测方法;在切片方面,详细讲解了长度与容量的区别、初始化优化、nil与空切片的差异、正确的拷贝方式以及append操作可能带来的副作用。特别强调了切片操作导致的内存泄漏问题,并提供了解决方案。这些总结对于编写高效、安全的Go代码具有重要指导意义。

2025-10-29 20:00:00 766 1

原创 消息队列如何确保消息不会丢失

对于单个节点的 Broker,需要配置 Broker 参数,在收到消息后,将消息写入磁盘后再给 Producer 返回确认响应,这样即使发生宕机,由于消息已经被写入磁盘,就不会丢失消息,恢复后还可以继续消费。在生产阶段,消息队列通过最常用的请求确认机制,来保证消息的可靠传递:生产者发送消息给 Broker,Broker 收到消息后,会给客户端返回一个确认响应,表明消息已经收到了。在编写发送消息代码时,需要注意,正确处理返回值或者捕获异常,就可以保证这个阶段的消息不会丢失。实现这一目标需要一个涵盖。

2025-10-27 20:00:00 939

原创 事务消息(Transactional Message)

事务消息是解决数据最终一致性的柔性事务方案中最常用且优雅的方式之一。它牺牲了严格的实时性(最终一致性)来换取更高的系统性能、可用性和吞吐量,特别适用于电商、金融等对数据一致性要求高的场景。

2025-10-14 23:00:00 883

原创 Common Go Mistakes

参考。

2025-09-25 16:48:57 355

原创 Common Go Mistakes(Ⅰ 代码与项目组织)

所有导出的元素都要被文档化,通常的做法是增加一行注释,以被导出元素的名称打头,以句号‘.’结尾,并且应当说明函数的作用和意图,而不是函数如何实现(这应该放到函数内部)。它不是一个单一的工具,而是一系列 Linter 的集合,可以用它精确地控制需要启用或禁用的 Linter,以及自定义规则。Linters 是一种代码审查工具,它会分析源代码,找出编译器可能忽略的常见错误、不规范的风格以及不符合最佳实践的代码。中提取key,可以有多种做法,最简单的做法就是编写2个函数,其次,可以使用如下接口的方式。

2025-09-25 16:35:20 1069

原创 EKS Mountpoint for Amazon S3 CSI Driver

本文介绍在Amazon EKS集群上部署Mountpoint for Amazon S3 CSI Driver的方法,使Kubernetes应用可通过文件系统接口访问S3存储。主要内容包括环境要求(EKS集群、IAM配置等)、实施步骤(创建IAM角色与服务账户、安装CSI驱动)以及实践示例(静态配置PV/PVC挂载S3存储桶)。文章还指出了该方案的限制,如不支持某些POSIX文件操作。通过该方案,容器可直接以卷挂载方式访问S3对象存储,实现高效的数据访问。部署完成后可验证文件操作是否正常同步到S3存储桶。

2025-06-24 20:30:00 475

原创 选项模式(Options Pattern)

在Python语言中,创建一个对象时,可以给参数设置默认值,这样在不传入任何参数时,可以返回携带默认值的对象,并在需要时修改对象的属性。在Go语言中,我们经常会遇到一个结构体中有很多字段,我们只想设置其中的一部分字段,其他字段都使用默认值的情况,这时可以通过选项模式来解决。选项模式是指定义一个函数,这个函数的参数是一个结构体指针,这个结构体中包含了所有可选参数,函数根据参数的需求来设置结构体的字段值。第一种方法,我们要分别开发两个用来创建实例的函数,一个可以创建带默认值的实例,一个可以定制化创建实例。

2025-03-11 23:00:00 938

原创 Nextflow 可选输入文件

可以使用特殊的文件名来标记这类输入参数,类似于一个 placeholder。有时候存在需要 process 接收可选的输入文件的场景。控制是否真正的使用输入文件。这样就可以在运行时指定参数。

2024-07-10 20:00:00 425 1

原创 python 循环导入(circular imports)解决方法

正如在开头提到的,修复循环导入的最佳方法是对代码结构进行优化,这样模块就不会相互依赖。模块,这样是可以正常导入的,因为这两个模块都存在。就像上面提到的那样,它们此刻是空的,但是现在我们没有导入某个具体的函数名称。与函数调用一样,当 import 语句运行时,它开始执行导入的文件,直到导入完成后才返回当前文件。模块就都会包含了他们的内部的函数名称,我们可以使用模块名来引用其中的函数了。将函数名称查找延迟到函数体内,可以让所有模块完全初始化,避免循环导入的错误。模块已经存在,但是还没有定义。

2024-06-13 23:00:00 2276

原创 vim常用快捷键

vim 快捷键

2024-04-22 21:00:00 1099

原创 为容器添加非root用户

大多数的Docker镜像都使用root作为默认用户,但是有些场景下我们需要使用非root在容器里面。

2023-07-20 00:00:00 614

原创 Python detach 进程

有一个调度程序会周期性的读取任务来调度,并且这些任务的执行时间比较长,我们想要在调度程序退出或Ctrl+c中断时不要影响其启动的任务。

2023-07-15 22:00:00 721

原创 Ubuntu – apt-get update fails “The repository no longer has a Release file”

Ubuntu – apt-get update fails “The repository no longer has a Release file”

2023-02-09 20:15:00 924 1

原创 Python代码编译

python 代码编译

2022-12-09 22:00:00 627

原创 Nextflow Bugs

Nextflow 使用感言

2022-12-06 21:30:00 739

原创 守护进程

守护进程

2022-10-10 23:00:00 275

原创 15 Nextflow编码实践

Nextflow对空格不敏感。可以使用空格来提高可读性。使用注释和空格来对代码块进行分组。在脚本中报告工具版本。使用关键字命名输出channel。避免在process中使用params.xxx。将其作为输入参数传入。输入文件应该使用输入通道传入。将短的运行的命令组织到一个更大的进程中。包含一个在小型测试数据集上运行工作流的测试配置文件。重用现有的容器/软件包来编写process。尽可能使用压缩文件和临时磁盘空间。使用一致的命名约定。...

2022-07-25 18:00:00 954

原创 14 部署 nf-core pipelines

nf-core是一个由社区领导的项目,旨在开发一套使用Nextflow工作流管理系统建造的最佳实践管道。

2022-07-21 20:00:00 1667

原创 13 Workflow caching and checkpointing

像 Nextflow 这样的工作流管理系统的一个关键特性是可重入性,即在上次成功执行的流程出现错误后重新启动管道的能力。可重入性允许在向管道添加更多数据时跳过耗时的已经完成的步骤,例如创建索引。这会促进更快的工作流原型的开发,以及更快的附加数据分析。Nextflow 通过缓存和检查点自动跟踪管道中执行的所有进程来实现重入。...

2022-07-13 23:30:00 414

原创 12 Reporting

脚本运行之后,Nextflow 将存储执行的所有 workflow 的日志在当前文件夹中。

2022-07-13 19:30:00 441

原创 11 Sub-workflows

在一个Workflow里面可以包含一个或多个process

2022-07-12 19:00:00 367

原创 10 Modules

在大多数编程语言都有创建代码模块这个概念,以便重用代码。Nextflow (DSL2)允许定义可以跨workflow管道包含和共享的脚本。

2022-07-08 21:00:00 217

原创 9 Nextflow configuration

Nextflow的关键能力是将workflow的的实现与底层执行平台所需的配置解耦。这使得workflow具有可移植性,运行其在不同的计算平台上运行,而不需要修改实现。

2022-07-07 23:30:00 1099

原创 8 Operators

operators大概可以分为以下几类:

2022-06-29 19:30:00 423

原创 7 Workflow

Workflow 主要作用是用来连接多个进程的。

2022-06-28 21:30:00 522

原创 6 Processes 下

我们已经了解了如何将数据输入到进程中; 现在我们将了解如何从进程中输出文件和值。

2022-06-22 18:00:00 448

原创 5 Processes 上

我们现在知道如何创建和使用 Channels 来发送数据。现在我们将看到如何使用进程在工作流中运行任务。

2022-06-21 21:00:00 639

原创 3 Workflow参数

前面提到的Nextflow wc.nf 脚本定义了一个管道参数 params.input。管道参数允许在运行时通过命令行或配置文件更改工作流的输入,因此它们不会硬编码到脚本中。

2022-06-21 19:00:00 624

原创 4 Channels

通道是 Nextflow 在工作流中发送数据的方式。通道通过它们的输入和输出连接进程。通道可以存储多个项,比如文件(例如 fastq 文件)或值。通道存储的项数决定了使用该通道作为输入的进程将运行多少次。...

2022-06-21 14:02:16 565

原创 2 Nextflow 脚本

Nextflow 是在 Groovy 编程语言之上实现的领域特定语言(Domain Special Language,DSL) ,而 Groovy 编程语言又是 Java 编程语言的超集。这意味着 Nextflow 可以运行任何 Groovy 和 Java 代码。学习 Groovy 使用 Nextflow DSL 是没有必要的,但是在需要比 DSL 提供更多功能的边缘情况下,它可能会很有用。......

2022-06-21 09:57:05 662

原创 1 Nextflow入门

分析数据涉及到一系列的任务,包括收集、清洗和处理数据。这些序列被称为工作流或流水线(pipeline)。这些工作流通常需要执行多个软件,有时运行在不同的计算环境,例如台式机或计算机集群。传统上,这些工作流通过脚本连接在一起,使用通用编程语言,如 Bash 或 Python。然而,随着工作流变得更大和更复杂,对编程逻辑和软件的管理变得困难。工作流管理系统,像Snakemake、Galaxy、Nextflow,是专门为管理特定领域的计算数据分析工作流而开发的。.........

2022-06-20 22:00:00 2742

原创 python tricks

python tricks2 数据结构与算法 📃3 字符串相关 🔤4 对象迭代与反迭代 👍5 文件io 📃6 数据解析及构建 🔢7 类与对象 🐘8 多线程并发 🔜9 装饰器 🖼NumPy: Remove all rows in a NumPy array that contain non-numeric valuesimport numpy as npx = np.array([[1,2,3], [4,5,np.nan], [7,8,9], [True, False, True]])print(

2022-05-29 14:52:06 364

原创 pyside国际化

internationalpyside6.1版本中没有lupdate,可以使用pyqt中的lupdate生成ts文件,pylupdate5 cali_dialog.py -ts eng-chs.ts,若有多个ts文件,可以使用 lconvert -i eng-chs.ts eng-chs1.ts -o all.ts 合并,然后使用linguist(在qt中)生成qm文件,然后再代码中loadtrans = QTranslator(self)app = QCoreApplication.instanc

2022-05-29 14:12:30 1249

chenhao耗子叔博客集锦

耗子叔博客集锦

2024-06-13

电梯调度程序

公共汽车调度算法: 有一个最坏情况的算法称之为“BUS调度”,这个算法将一个电梯的调度按照BUS进行。在这个调度算法中,电梯从底层向最高层运行,在其中每一层都要停止,开门让乘客进入或走出去,然后电梯关门并且继续运行。当电梯运行到最高层后,将会折返向下运行。这个算法能够处理几乎所有的乘客要求,但是它显然不是最快速的算法。 程序比较简单清晰,适合初学者使用。

2015-06-20

成绩管理系统

苏小红等人编的高教出版社的C语言课本上的学生管理系统,有几个版本,这个是书上最后一个版本,也可以根据自己的需求增加或减少

2015-06-22

图书管理系统

一个简单的图书管理系统,功能虽然不是很齐全,但是最基本的功能都实现了,可以作为初学者的参考。(大神可以绕道!)

2015-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除