本文介绍了使用dotfiles同步不同设备间配置文件的方法。作者通过在任意路径下维护一个dotfiles仓库,并使用软链接将配置文件映射到正确路径,解决了直接在用户目录下管理配置文件的复杂性。文章还介绍了rcm工具的使用,包括创建、更新和管理dotfiles的命令。作者分享了个人配置经验,如切换到zsh终端环境并使用zinit、fzf、ripgrep等工具优化工作流,同时提供了dotfiles仓库的链接,便于读者参考和实践。
本文介绍了作者开发的md5any工具,用于计算文件和文件夹的MD5值,解决了传统md5sum无法处理目录的问题。作者定义了文件夹MD5值与其内容和目录结构相关,但与顶层文件夹名无关。工具通过递归计算文件和子目录的MD5值,并结合文件名和目录名生成最终结果。文章详细描述了工具的设计思路、实现细节及其在GitHub Action中的应用场景,展示了md5any在检测文件夹内容变化中的实用性。
本文介绍了如何使用GPG密钥对防止Git提交者身份被冒充的详细方法,包括生成和管理GPG密钥对、导出公钥并配置到GitHub等平台,以及在Git中配置签名密钥和提交签名代码。通过GPG签名,可以验证提交者的真实身份,防止因用户名和邮箱被篡改而导致的冒充行为,从而提高代码提交的安全性。文章还解释了GPG签名的工作原理及其在防止冒充中的作用。
本文是作者对《现代C++白皮书》一周目阅读的总结,回顾了C++从C++98到C++20的发展历程,分析了语言特性和设计哲学的演变。文章强调C++是一门全新的语言,探讨了零开销抽象、多态、RAII等核心概念,并详细介绍了C++11、C++14、C++17和C++20的主要更新,包括移动语义、constexpr、概念和模块等。作者还反思了学习编程语言的方式,认为理解语言设计思想和历史对编程能力的提升至关重要。
本文详细记录了在废旧笔记本上配置NAS的过程,重点介绍了通过Docker容器部署服务的具体操作,包括Jellyfin、Transmission和Nextcloud的配置。作者分享了硬件升级对性能的影响,并探讨了网络速度瓶颈及未来扩展计划。文章提供了Docker Compose文件示例,涵盖了服务的环境变量、权限设置、目录映射及端口配置等关键内容,同时对各服务的功能和使用场景进行了分析,例如Jellyfin作为媒体库、Transmission用于下载管理,以及Nextcloud实现跨平台文件同步和备份。本文适合对NAS搭建和Docker应用感兴趣的读者参考。
本文总结了作者2019至2022年在Android相机底层算法集成领域的工作经验与技术收获。文章详细介绍了相机功能开发的各个角色分工、Android相机底层结构及数据流动过程,并重点阐述了算法集成的核心工作——设计和优化数据通路。作者分享了分层设计思想在实际项目中的应用,以及算法集成在性能、功耗优化中的挑战。此外,作者还提到自己开发的看图软件和数据分析平台等工具项目,展示了其在工具开发中的创新能力。最后,文章总结了算法集成岗位的优缺点及个人成长经验,为从事相关工作的读者提供了宝贵的参考。
本文记录了作者从北京搬迁到苏州的经历,分享了选择新城市的思考过程及对生活与工作的重新定位。作者描述了苏州的生活环境、租房体验及初到城市的感受,并反思了北京工作环境中的问题。文章展现了对新生活的期待和对未来的规划,同时表达了对生活质量的追求。
本文解决了在Ubuntu系统中切换Python版本后导致终端无法打开的问题。作者通过安装xterm终端并复制重命名特定Python库文件的方法,成功修复了问题。文章详细说明了操作步骤,并提醒读者在处理其他Python版本时需注意库的兼容性。这一方法适用于类似的Python版本切换引发的终端问题。
本文介绍了一个名为fstats的系统信息悬浮窗工具,使用Python和tkinter开发,能够实时显示CPU和内存占用率,并通过背景颜色变化反映系统负载情况。工具支持用户通过配置文件自定义显示内容和样式,提供了扩展接口以实现个性化功能,如监控进程状态或显示动态信息。文章还展示了工具的安装方法及使用示例,强调了其灵活性和可扩展性,适合需要实时监控系统资源的用户。
本文通过实现一个简化版的std::tuple——TinyTuple,详细解析了C++中std::tuple的实现原理。文章从递归模板继承的方式入手,展示了如何存储和访问任意类型的参数,并通过代码示例说明了get<N>和get<Type>的实现方法。此外,文章还对std::tuple的底层结构,包括_Head_base、_Tuple_impl等核心组件进行了深入剖析,解释了其内存布局和访问机制。最后,文章扩展了TinyTuple的功能,如支持tie解包和类型索引,提供了完整代码和使用示例,适合对C++模板元编程感兴趣的读者。