传输和备份实践
rsync rsync 是一个强大的文件同步和传输工具,适用于类 Unix 系统。Windows 用户可以通过 WSL(Windows Subsystem for Linux)来使用 rsync。以下是详细的安装和使用方法: Ubuntu/Debian: 12sudo apt updatesudo apt install rsync CentOS/Fedora: 1sudo yum install rsync macOS(使用 Homebrew): 1brew install rsync 注意,两台机器都要安装好。 使用方法 1rsync [选项] 源目录/ 目标目录 -a:归档模式,保留所有文件属性 -v:详细输出 -z:压缩传输 -P:显示进度并允许断点续传 –delete:删除目标目录中源目录没有的文件 -h:以人类可读的格式显示文件大小 -e:指定要使用的远程 shell,通常用于指定 SSH 连接参数 本地同步: 1rsync -avzP /path/to/source/...
macbook体验
为什么我喜欢 MacBook 最近买了一台 MacBook,使用下来感觉很不错。MacBook 铝制一体化机身,既美观又坚固,硬件质量很可以。最主要是非常省心,合上盖子即可快速休眠,打开盖子能立即恢复工作状态,不会出现无法休眠或休眠后无法唤醒的问题,提供流畅、稳定的使用体验。 MacBook 的电池续航能力一直是业界领先,屏幕素质好,高分辨率和准确的色彩,还有应用的UI更加美观。其次是 macOS 基于 Unix,基本能通过命令行管理开发环境和软件安装,对于熟悉的人来说,会比UI更加便捷。MacBook 在众多开源项目使用很普遍,尤其是视频剪辑和写代码,生态还是相当完善的。 我最近购买了一台 MacBook Pro 14 英寸,配备 M4 Pro 处理器、48GB 内存和 512GB 存储,还买了三年的 AC+。选择这么大的内存是为了确保长期使用(3 年以上)时系统仍能流畅运行。考虑到未来软件可能会更加耗费内存,24GB 可能在几年后显得不够用。我之前 32GB 的MBP一般占用在27GB左右。我主要用于编程和文字处理,不会存储大量视频素材或游戏,因此 512GB...
GitHub 协作开发指南
开源项目参与流程 在开源项目或团队协作开发中,使用 GitHub 是一个常见的实践。以下是一套从 Fork 项目到提交 Pull Request(PR)的完整流程,帮助你高效管理代码并与团队或社区协作。 1. Fork 项目仓库 进入项目的 GitHub 页面,点击右上角的 Fork 按钮,将该项目仓库复制到自己的 GitHub 账户下。这个 Fork 的副本是你对项目的个人副本,你可以在上面进行改动而不会影响原项目。 2. Clone 项目到本地 在你的 GitHub 账户中找到刚刚 Fork 的仓库,复制仓库的链接。在本地执行以下命令将仓库克隆到你的电脑: 1git clone <your-forked-repo-url> 3. 添加上游仓库 (Upstream) 当你 Fork 了一个仓库后,你的代码会与原项目(官方项目)脱离直接联系。为了能够同步原项目的最新更改,你需要将原项目添加为“上游仓库”。进入克隆的项目文件夹,运行以下命令: 1git remote add upstream <original-repo-url> 然后验证 git...
(三)Python面向对象设计模式
类和对象 一切都是对象 在 Python 中,“一切皆对象”是一个核心理念。简单来说,Python 中的所有东西都是对象,无论是数值、字符串、函数、类,甚至是模块和代码本身。Python 对象有三个特征:身份、类型和值。 身份:对象在内存中的地址,可以通过 id() 函数查看,例如 id(obj)。 类型:对象的类别,可以通过 type() 函数查看。例如,type(5) 返回 <class 'int'>。 值:对象的实际内容或数据,直接调用变量名即可查看。 1234i = 2print(id(i)) # 输出 i 的存储地址print(type(i)) # 输出 <class 'int'>print(i) # 输出变量 i...
(二)包的开发
Python 包的开发是一项重要的技能,可以帮助你组织代码、实现代码复用,并且将功能模块分发给其他开发者使用。 包和模块是什么 在 Python 中,一个包(Package)就是一个包含多个模块的目录,其中通过 __init__.py 文件来表明它是一个包。包允许你将代码逻辑分解为多个文件,并且通过模块的方式进行导入和复用。 模块:一个 Python 文件(*.py 文件)就是一个模块。模块可以包含函数、类和变量。 包:包是包含多个模块的文件夹。包使得模块之间可以被组织起来,以便更好的管理。 目录结构示例: 1234my_package/ ├── __init__.py # 包初始化文件 ├── module_a.py # 模块 A ├── module_b.py # 模块 B 在代码中使用包(如果要供外部使用,推荐使用相对路径): 12345# 导入包中的模块from my_package import module_a# 使用模块中的函数module_a.some_function() 一个典型的 python...
docker自动化
了解背景 Docker 是一种轻量级的容器化技术,主要用于应用程序的环境迁移和一致性。你需要知道下面的基本概念: 了解镜像、容器的基本概念:https://yeasy.gitbook.io/docker_practice/basic_concept 数据卷的基本概念:https://yeasy.gitbook.io/docker_practice/data_management/volume 网络方面,端口映射、docker compose 容器互联:https://yeasy.gitbook.io/docker_practice/network/port_mapping OK,上面三个基本概念,你就足够使用 docker 了,然后我们来了解 docker 最实用的地方: 环境迁移,在不同的机器上保持一致性,一次创建或配置,可以在任意地方正常运行。。 直接在 docker 内利用 linux 环境和路径挂载来开发。 隔离依赖、统一开发环境、快速启动。 利用 Linux 容器作为开发环境:在不同平台(Windows、Mac、Linux)上保持一致的开发环境。 通过...
(一)Python环境配置指南
管理 Python 版本 推荐使用 https://github.com/pyenv/pyenv 来管理不同版本的 python,但是它不支持 windows,如果你使用 windows,请使用 https://github.com/pyenv-win/pyenv-win 。 如果你需要使用特定版本的 python,先安装它,类似于 1pyenv install 3.9.6 随后在项目的根目录,使用 1pyenv local 3.9.6 它会生成一个配置文件 .python-version ,就会让进入项目根目录,就会自动切换到 3.9.6 的版本。 管理虚拟环境 Poetry 适合现代 Python 项目开发、个人或小型团队开发、需要发布到 PyPI 的项目。 特点: 自动化依赖管理:Poetry 能够自动处理依赖冲突,生成 pyproject.toml 和 poetry.lock 文件,确保依赖一致性。 内置虚拟环境管理:Poetry 会自动为每个项目创建虚拟环境,隔离项目依赖,保证项目间的互不干扰。 简化的发布流程:通过 poetry build 和 poetry...
如何成为优秀的软件工程师
要成为一名优秀的软件工程师,需要掌握广泛的技能和知识,包括基础的数据结构、高级架构设计和良好的编程实践。本文将为你详细介绍如何全面提升自己的编程能力,成为卓越的软件工程师。 深入掌握数据结构与算法 TODO: 我的数据结构和算法的笔记,每一类数据结构怎么用。 数据结构和算法是软件工程的核心基础。深入理解数组、链表、堆栈、队列、树、图等基础数据结构,可以帮助你高效地解决复杂问题。你不仅需要理解它们的工作原理,还要清楚它们的优缺点、本质特性以及适用的应用场景。 数组是一种连续存储的结构,适合需要快速随机访问的场景,访问的时间复杂度为 O(1)。但它在插入和删除操作时需要移动大量数据,时间复杂度为 O(n),因此不适合频繁插入和删除的场景。数组通常用于需要快速访问的应用,例如排行榜和固定大小的数据集合。 链表是一种由节点组成的结构,每个节点包含数据和指向下一个节点的指针。链表在已知位置时,插入和删除操作非常高效,时间复杂度为 O(1),但随机访问的效率较低,为...
Decimal Recurring Cycles and Cyclic Groups
From the Perspective of Cyclic Groups When the Denominator and 10 are Coprime The process of division is actually the calculation of 10kmod n10^k \mod n10kmodn, which is the remainder of the k-th division. When the remainder is 1, i.e., 10kmod n=110^k \mod n=110kmodn=1, it indicates a cycle. However, this may not be the first cycle, as the remainder might have appeared twice at another number, such as 2, hence the cycle would be shorter. First, consider when 10 and n are coprime, forming...
Haskell(六) Project Euler 练习1-26
Haskell(一)入门Haskell(二)函数式编程Haskell(三) MonadHaskell(四)总结和工具链Haskell(五) 总结和展望Haskell(六) Project Euler 练习1-26 本文会选择一些有意思的 Project Euler 的题目,学习怎么用 Haskell 写算法,并且逐渐学习相关语言和数学知识。前 100 题可以直接分享答案,后续的题目就只给暗示和加密的答案,可以发邮件获取解密方式。 代码仓库:https://github.com/learnerLj/projecteuler P1 显然 3 和 5 的倍数,其实是 3 和 5 的倍数,去除重复算的 15 的倍数。而且 3 的倍数的和,还可以化简成求和公式。 1234sumOfMultiples limit = sumDivisible 3 + sumDivisible 5 - sumDivisible 15 where cumulativeSum n = n * (n + 1) `div` 2 sumDivisible n = n *...