Pay Back Tech Debt

Pay back tech debt Tech debt is like a credit card for your codebase. Easy to get into, hard to get out of. The phenomenon(现象) known as software rot(软件腐烂) has several symptoms(症状): Decreasing MTBF (meantime between failure 平均故障间隔时间): the software fails more often and there are increasingly more incidents. Increasing LT (lead time): for features that have similar user value, the time it takes for implementation, review, deploy and release increases over time.
Read more →

Software Architectural Patterns

Architectural Pattern An architectural pattern is a proven structural organisation organisation schema for software systems. LAYERS PATTERN The Layer pattern helps to structure applications that can be decomposed into groups of subtasks, each of which is at a particular level of abstraction. Each layer provides services to the next higher layer. This pattern has the following benefits: A lower layer can be used by different higher layers. The TCP layer from TCP/IP connections, for instance, can be resued without changes by various applications, such as telnet or FTP.
Read more →

Introduction to Web Development

Introduction to Web Development What is web development? Web development is basically the creation of website pages - either a single page or many pages. How do websites works? Client-Server Mode What are frontend and backend? FRONTEND BACKEND Language HTML,CSS and JavaScript Go,Python and Java Learning the Basics – HTML, CSS and JavaScript HTML Hyper Test Markup Language, HTML is like the mother of all the websites. CSS: The Cascading Style Sheets, CSS, causes the website to appear more appealing.
Read more →

Build a Home Lab

Setting Up a Home Lab The main compoennets of the home software lab Computing power This is the main horsepower of your lab and consists of the physical server and CPU(s) your intend to use. The more physical processors the better, as well as the more CPU cores too. Memory The amount of memory(RAM) your labs makes available for use is an intrinsic component of your lab. Unless you run specific workloads, you may be surprised to find out that the total amount of RAM in your lab can be more important than the amount of computing power you have available.
Read more →

Set Up a Ceph Cluster

Intro To Ceph A Ceph Storage Cluster requires at least one Ceph Monitor, Ceph manager, and Ceph OSD (Object Storage Daemon). The Ceph Metadata Server is also required when running Ceph File System clients.
Read more →

Golang Best Practices

Handle Context Deadline Exceeded Error Context Deadline Exceeded is an error occurring in Go when a context of an HTTP request has a deadline or a timeout set, i.e., the time after which the request should abort. context_deadline_exeeded.go Handle ‘connection reset by peer’ error The connection reset by peer is a TCP/IP error that occurs when the other end (peer) has unexpectedly closed the connection. It happends when you send a packet from your end, but the other end crashes and forcibly closes the connection with the RST packet instead of the TCP FIN, which is used to close a connection under normal circumstances.
Read more →

How to Contribute

开源软件指南 如何为开源做贡献 为什么要为开源做贡献 巩固现有技能 遇到那些和你志趣相投之人 寻找导师, 并且尝试帮助他人 在公众间建立你的声誉 (职业口碑) 学习领导和管理的艺术 鼓励做出改变,哪怕改变是很微小的 选择一个项目加入贡献 分析感兴趣的开源项目 一个典型的开源项目均会有如下类型的人: 作者: 项目的创始人或创始组织 归属者: 代码仓库或组织的管理员(不一定和作者是同一个人) 维护者: 贡献者, 负责项目的未来走向和组织的管理(他们通常也是项目的作者或者归属者) 贡献者: 只要是为项目做出了贡献,就算是贡献者 社区成员: 那些使用项目的人们,他们或许是积极的讨论者,又或者是为项目的方向提出意见的人. 开源项目文档文件说明 LICENSE: 根据开源软件的定义,每一个开源项目必须是有开源许可协议的 README: 是一个介绍性的说明文件,它通常会解释项目有何用处,为何发起,以及如何快速入门等. CONTRIBUTING: 告诉人们对项目如何做贡献,解释目前项目需要什么样类型的贡献者,社区的流程是什么样的 CODE_OF_CONDUCT: 项目的行为准则文件,是一些参与社区时的一些礼仪、说话方式、行为等. 问题追踪: 这里是人们讨论项目相关问题的地方 Pull requests: 审核代码、以及相关的问题讨论 论坛或邮件列表: 即时在线聊天: 有一些项目会使用聊天频道(诸如Slack或IRC) 找一个项目开始贡献 * 开始一个开源项目 为项目寻找何时的用户 打造受欢迎的社区 维护者最佳实践 领导力和治理 通过为开源工作获得报酬 行为准则 开源衡量标准 开源的法律保护 Reference materials [1] opensource [2] codeTriage
Read more →

Docker in Action

Docker in Action Docker Docker is a tool that enables your to create,deploy,and run applications using containers. Docker-compose Restart Policies Docker Compose no: It means never attempt to restart the container if it stops or crashes. Remember to give single quotes ’no’ because in yaml file, if we give no without quotes, it is treated as false. always: If our container stops for any reason, always attempt to restart the stopped container.
Read more →

Build Calibre Ebook Server

Build Calibre Ebook Server Introduction calibre is a free and open source ebook manager that’s well known for its cross-platform desktop application. You can use calibre to manage your ebook library on a single device, but the application also includes a powerful server component. Setting up an ebook server allows your to: Access your books from anywhere in the world Easily transfer your books to mobile devices Share books with your friends and family Prerequisites Step 1 - Downloading and Installing the calibre Content Server First, install some necessary dependencies
Read more →

The Rust Programming Language

The Rust Programming Language Rust 开发工具 Cargo: 内置的依赖管理器和构建工具 Rustfmt: 确保开发者遵循一致的代码风格 Rust Language Server 集成开发环境(IDE)提供强大的代码补全和内联错误信息功能 Chapter 1 - 入门指南 1.1 - 安装 rustup: 一个管理Rust版本和相关工具的命令行工具 chyiyaqing in ~ at aapc at ☸️ v1.25.0 kubernetes-admin@kubernetes (istioinaction) … ➜ curl –proto '=https' –tlsv1.2 -sSf https://sh.rustup.rs | sh 检查安装是否正确 chyiyaqing in ~ at aapc at ☸️ v1.25.0 kubernetes-admin@kubernetes (istioinaction) took 3.6s … ➜ rustc –version rustc 1.66.0 (69f9c33d7 2022-12-12) 1.2 更新与卸载 chyiyaqing in ~ at aapc at ☸️ v1.
Read more →