shubuzuo
shubuzuo

述而不作

All Posts


readFile 为例 nodejs 如何实现

本文通过分析 `readFileSync` 和 `readFile` 的内部实现机制,探讨了 Node.js 如何处理文件读取操作。同步方法 `readFileSync` 直接调用系统调用,而异步方法 `readFile` 则借助回调函数与事件循环实现非阻塞 IO。两者均最终通过 libuv 库的 `uv_fs_read` 函数执行实际的文件读取操作。文章详细阐述了从高层 API 到底层实现的技术细节,并强调了内部抽象机制的重要性,这些机制为 Node.js 平台提供了高效的文件处理能力。--DeepSeek

study daily source-code nodejs v8 c++ 2025 libuv javascript

v8 build linux 平台

本文详细描述了在尝试将V8嵌入到项目时遇到的挑战及其解决过程。首先,构建静态库时出现了“unknown architecture”错误,通过改用lld链接器解决了该问题。随后,程序因Undefined reference to `v8::platform::NewDefaultPlatform`而失败。为了解决这一问题,进行了多次配置尝试,包括调整目标CPU和OS、调试模式、组件构建、单体库设置以及禁用自定义libc++等参数。最终,在启用调试模式并禁用自定义libcxx后,成功编译并运行了示例程序。整个过程强调了V8文档的不足,并指出了详细配置说明的重要性,以减少用户在探索和调试过程中所需的时间和精力。--DeepSeek

study daily v8 c++ linux 2025

一次喝酒事后复盘

这篇文章记录了一次饮酒经历后的深刻反思,并以此为契机探讨了如何在社交场合中坚持个人戒律与修行原则。作者回顾了自己被迫饮酒的场景,从中总结出在面对群体压力时坚守戒律的重要性,并延伸至对“四正勤”的思考。文章不仅揭示了饮酒对身体和心理的负面影响,还讨论了在日常生活中如何通过法义抉择避免恶行、培养善业。作者最终强调,在任何情境下都要坚定自己的修行目标,不受外界干扰,并以问题结尾引发读者对自身行为与信仰之间关系的深思。--DeepSeek

study daily foxue alcohol buddhist-precepts reflections interpersonal-relationships mindfulness four-right-efforts

文档编辑版本追踪的一些思考

本文探讨了从 Word 文档到多人协作修订的完整流程,重点介绍了使用飞书云文档、Markdown 和 Git 进行版本追踪和管理的经验。作者指出,通过将 Word 文档转换为 Markdown 格式存储在 Git 仓库中,并结合飞书云文档进行多人协作,可以实现细粒度的内容变更追踪与管理。这种组合方式不仅支持内容讨论与校订,还能够通过 Git 分支轻松维护不同目录结构(如讲习目录和内容目录),同时便于后续将文档发布为网页或导出为 Word/PDF 格式。文章详细展示了从原始文档到最终发布的完整流程,并探讨了当前协作模式中的潜在问题,例如飞书评论的匿名性限制。--DeepSeek

daily document-collaboration version-control git markdown static-site-generator project-management

nestjs pg 模板

文章介绍了构建 NestJS 项目的关键步骤,包括使用 TypeORM 进行数据迁移、安装必要的开发依赖如 Winston 和 Dayjs 以实现日志管理和日期处理功能。文中还详细说明了如何通过 Swagger 文档生成 API 文档,并借助 OpenAPI SDK 工具进行代码生成。此外,文章强调了代码质量的重要性,介绍了 Linting 工具的使用以及遵循提交规范来维护代码仓库的整洁性和可追溯性。整个过程涵盖了从项目初始化到功能开发、文档编写和持续集成等多个方面,为开发者提供了一个完整的 NestJS 项目构建指南。--DeepSeek

node pgsql daily 2024 nest typeorm

node 后端 dockerFile 示例

这篇文章主要介绍了如何通过Dockerfile来构建一个多阶段的节点应用容器,涵盖了从开发环境到生产环境的完整流程。文中详细描述了各个阶段的配置步骤,包括节点环境的初始化、依赖包的安装与缓存优化、Python相关工具链的配置以及中文字体的支持设置。同时,文章还提到了如何通过健康检查确保服务正常运行,并提供了具体的Docker构建和运行命令示例。--DeepSeek

devops node docker ci-cd dockerfile nodejs python multistage-build web-service fonts

gitlab 流水线钉钉通知

这篇文章详细介绍了如何在GitLab CI/CD流水线中集成钉钉通知功能,并通过配置文件实现了代码检查、构建、镜像推送和部署等自动化流程。作者展示了如何引入外部模板文件`dingtalk.yml`以实现钉钉通知的统一管理和定制化,同时定义了全局变量用于控制镜像名称和版本信息。整个流水线分为多个阶段(check、build、build_tag、deploy_test、deploy_production),每个阶段都继承了`.dingtalk`模板任务,并通过不同的脚本命令完成特定操作。此外,文章还介绍了如何在不同环境中部署代码并记录操作日志,最终实现了开发流程的自动化和实时通知功能。--DeepSeek

devops ci-cd daily gitlab dingtalk integration gitlab ci

mongoose 类型问题

在使用 `NestJS/Mongoose` 进行系统重构时,作者遇到了一些与 `Mongoose` 类型相关的问题。具体来说,在构建查询过滤器时,期望能够通过类型检查来限制和约束过滤条件的字段类型,但在实际代码中发现并没有严格的类型限制,甚至可以随意添加不存在的字段而不引发编译错误。 使用 `TypeScript` 的一个重要目的就是通过静态类型检查减少编码错误,提高开发效率。然而在构建查询条件这一重要环节上,无论是 `NestJS/Mongoose` 还是之前的 `Typegoose` 实现,都未能提供令人满意的类型安全性和约束能力。这引发了对当前ORM选择的思考:是否需要更换ORM框架?比如 `Prisma` 是否能解决这个问题?或者继续使用 `TypeOrm` 但接受其在 MongoDB 支持上的局限性? 核心问题其实源于 `Mongoose` 本身的类型处理机制。作者认为,尽管可以通过调整 ORM 框架来改善体验,但在根本上这仍然是一个需要面对的技术挑战。 那么你是否也在使用 `Mongoose` 或其他 ORM 遇到了类似的类型安全问题?你会如何权衡框架的便利性与开发体验的重要性?又会选择哪一种解决方案来实现更好的类型安全保障呢?这些问题值得每一位开发者深入思考。--DeepSeek

study work 2024 mongoose orm typescript

nginx 密码套件安全排查

这篇文章记录了一次针对Nginx密码套件安全问题的排查过程,从使用nmap工具扫描发现安全隐患开始,到逐步定位问题根源的过程进行了详细描述。文章首先介绍了通过nmap脚本嗅探HTTP服务器密码套件的方法,并讨论了这些套件的安全性。随后,作者尝试通过配置Nginx启用TLS 1.3并禁用TLS 1.2来解决问题,但发现安全漏洞仍然存在。 在排查过程中,作者逐渐意识到问题可能出在Nginx之前的中间件上,尽管初期并未明确具体是哪种产品,但最终锁定为Web应用防火墙(WAF)配置不当导致的问题。文章还反思了整个排查过程中的经验教训,强调了系统化排查的重要性,并对运维人员的沟通效率提出了批评。 这篇文章不仅揭示了一个实际的安全问题解决案例,还引发了关于服务器安全配置、中间件影响以及团队协作等方面的思考。通过这个故事,读者可以了解到在面对复杂安全问题时如何逐步缩小范围,找到根本原因的方法。同时,它也提醒我们在安全管理中要注意各个组件之间的相互作用,避免因单一环节的疏忽导致整体安全性下降。 最后,这篇文章提出了一些值得深思的问题:Nginx的安全配置是否真的生效?中间件的影响如何评估?安全测试与实际运行环境的一致性如何保证?这些问题都值得读者在阅读后进一步探讨和实践。--DeepSeek

2023 nginx docker centos work security cloud

因明入正理论 立论梳理

这篇文章详细探讨了因明学中论议的方法与原则,包括立论的基本要素(宗、因、喻、合、结)、论议可能出现的负处及其具体表现形式,以及如何通过三种观察方法来决定是否展开论议。文章还讨论了在论议过程中需要具备的多所作法,如善自他宗、勇猛无畏和辩才无竭等素质,以确保论议能够顺利进行并达到预期效果。--DeepSeek

zhongzhe study weishi 2024 logic debate