shubuzuo
shubuzuo

述而不作

daily


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

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

ts 严格模式配置,舒服

本文通过一段具体的tsconfig.json配置展示了TypeScript严格模式的使用,并以“严格模式真舒服啊”为主题,探讨了严格模式为开发带来的诸多好处。文章不仅呈现了一种经过实践验证的有效配置方案,更引发了对代码质量与开发者体验之间平衡的思考:在享受严格模式带来的规范性提升的同时,如何避免过度约束导致的效率下降?通过合理的配置调整,是否可以在保持代码严谨性的同时,保留一定的灵活性?这种平衡艺术不仅是技术层面的问题,更是开发团队在项目管理中需要深思的关键点。--DeepSeek

study ts daily config typescript typescript compiler

pyenv 记录

这篇文章记录了使用 `pyenv` 进行 Python 版本管理的经历与心得。作者在尝试构建 MongoDB 源码时遇到了 Python 版本兼容性问题,系统默认的 Python 3.12.3 因为脚本中使用了一些不兼容的 API 而无法顺利构建成功。因此,他决定使用 `pyenv` 来管理 Python 版本,并选择了 3.10.x 系列版本以避免兼容性问题。 文章详细介绍了如何在 Ubuntu 24.04 上安装和配置 `pyenv`,包括通过自动安装脚本快速部署以及镜像源的配置过程。作者提到在安装过程中遇到了一些问题,例如下载进度不显示、安装信息不够透明等,并对工具的友好性提出了批评。 此外,文章还分享了如何通过配置文件设置国内镜像源(如清华源和腾讯源)来加速包管理工具 `pip` 和 `poetry` 的使用。尽管部分尝试未能成功,但最终通过手动修改配置文件解决了问题。 整篇文章不仅记录了技术细节,也反映了作者在解决问题过程中的思考与体验,提出了对工具设计和用户体验的反思。文章最后以一句警示“慎之, 千万不能写这种极度不友好的程序”收尾,并留下了关于镜像源失效原因的问题值得读者进一步探索。 问题:你是否遇到过类似版本兼容性问题?如果是的话,你是如何解决的?--DeepSeek

mongodb study daily env install pyenv

debug vue3 源码

本文分享了调试 Vue3 源码的方法与实践过程。通过生成 sourcemap 文件并使用项目模板,开发者可以更方便地跟踪代码执行路径。文章详细介绍了如何配置调试环境,包括使用 VSCode 的调试插件设置以及不同场景下的调试配置示例。此外,作者还展示了从克隆 Vue3 源码仓库到创建开发项目的完整步骤,并提及未来可能的扩展方向如调试视频制作。 文中提到的调试方式包括:直接运行项目生成构建产物、通过 npm 脚本启动调试会话、使用浏览器调试远程 URL 或本地 HTML 文件。每种方法都配以具体的代码示例,帮助读者快速上手。文章末尾提醒开发者在实际操作中需要注意 sourcemap 的正确配置,并鼓励探索更多可能性。 通过这篇文章,你不仅能掌握 Vue3 源码调试的基本技巧,还能思考以下问题:如何在没有 sourcemap 的情况下进行有效调试?是否可以通过修改源码并观察变化来深入理解框架的运行机制?这些问题将帮助开发者更进一步地理解和优化自己的项目。--DeepSeek

study vue daily web vue3 sourcemap

此处记录详细 ubuntu 预装程序

这篇文章记录了作者在安装Ubuntu 24.04后预装的一系列软件和工具,包括代理工具v2raya、VS Code Insider、QQ、Git、Docker等,并分享了相关的安装命令。文章不仅展示了作者的个性化需求,还提供了一些实用的工具组合和解决方法,例如如何通过curl安装nvm以及处理snap安装curl时可能遇到的权限问题。这些记录不仅是个人使用的备忘录,也为其他读者提供了参考价值。通过这篇文章,我们可以看到一个开发者或技术爱好者在构建自己的工作环境时所做出的选择与思考。那么,你是否也在尝试打造属于自己的高效工作环境?如果有的话,你会选择哪些工具和软件来支持你的工作?又或者,你认为作者的选择中有哪些亮点或可以改进的地方?不妨带着这些问题去探索并分享你的答案。--DeepSeek

ubuntu daily 2024 Ubuntu 24.04 Software Installation Development Tools