The History of Package Manager
IntroductionReference: UNIX 平台下软件安装包的演变和现代化
Introduction: 主要阐述 Linux 软件安装, 从源码到软件包管理机制的演变, 以及各种不同安装方式的优缺点.
Source CodeIntroduction开源系统, 用户可以自由下载源码, 根据本地环境以及配置, 自由的安装, C 语言的设计哲学: 一次编写, 到处安装
Process
Download source code
Install Configure Environment accross by README/INSTALL
Configure
make && make install
Merit and DemeritMerit: 定制化, 个性化安装, 编译选项(提高性能), 安装目录
Demerit: 繁琐的命令, 依赖的工具链, 导致很多 Linux 系统的使用者(并非开发者)无法快速的使用.
Package ToolsTheoryLinux 开发商基于”固定的硬件平台”和”固定版本的操作系统”编译准备”安装”/“升级”的软 ...
Python专业术语
mixin介绍Mixin 是一种软件开发中的设计模式,它通过将可重用的功能以独立的模块形式提供,并通过混合(或混入)的方式将这些功能添加到其他类中,以实现代码的复用和组合。
Mixin 提供了一种在不继承的情况下将功能添加到类中的方法,这样可以避免单继承带来的局限性。Mixin 类通常只包含一个或多个相关的方法,这些方法可以在其他类中重复使用。
使用 Mixin 可以在类之间共享和复用代码,同时保持类之间的独立性和灵活性。它可以用于添加各种功能,如日志记录、缓存、权限验证、序列化等,以及其他通用的横切关注点。
在 Python 中,Mixin 通常是一个普通的类,它定义了一组方法或属性。为了将 Mixin 的功能添加到其他类中,可以使用多重继承,并将 Mixin 类放在继承列表的前面。这样,在方法查找时,Python 解释器会首先在 Mixin 类中查找方法,然后才会在后续的父类中查找。
Mixin 的优点包括:
代码复用:Mixin 提供了一种将功能模块化并在多个类中共享和复用的方法。
灵活性:通过混入不同的 Mixin,可以根据需要组合功能,使类具有灵活的行为。
避免继承的限制: ...
数据库:Sql Join
Knowledge笛卡尔积笛卡尔乘积–数学中, 两个集合 X 和 Y 的笛卡尔积(Certersian product), 表示为 X * Y, 所有的有序对集合.
例如, 对于A={a,b}, B={0,1,2}, 则笛卡尔积结果为:
12A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}
注意, 他们是有序的.
Cross Join说明“交叉连接”-无法用”文式图”进行表示, 其结果就是1.1所述的”笛卡尔积”的结果, 一般而言不会做该查询, 性能消耗过于巨大.
例如对于两个表 A(10000条数据), B(100条数据), 则查询时会产生10000 * 100条记录, 这对于仅仅想获取 B 中某一个记录的 SQL 来说过于巨大.
命令12SELECT * FROM TableA CROSS JOIN TableB;SELECT * FROM TableA, Ta ...
内核和系统:缓存,交换缓存,内存
本网站相关文章:
内核和系统(1)-cpu 术语和知识点
内核和系统(2)-cpu 架构体系
内核和系统(3)-IO 相关术语
内核和系统(4)-IO 模型
内核和系统(5)-磁盘分区
内核和系统(6)-缓存
内核和系统(7)-内存相关术语
内核和系统(8)-pstree 命令
Cache and BufferCacheA cache is something that has been “read” from the disk, and stored for later use. 其数据流通方向:disk---<read>---mem(驻留)<--->cpu, 此时对于 cpu 来说内存中的缓存就是 Cache.cache 是 cpu 与内存之间, 用于解决速度不对等问题, 将最频繁,最近使用的数据放在 cache 中, 避免再次从 disk 中读取, 减少了 CPU 的等待, 其中涉及高速缓存, 寄存器相关知识见IO 相关术语说明.
BufferA buffer is something that has yet to be “written” to d ...
数据库:Sql CURD
站内链接:
Table HandleAlteradd a new column at last: alter table table1 add set1 timestamp not null default current_timestamp;
add a new column after spcial column: alter table table1 add str1 varchar(20) not null default ‘’ after set1;
Change type: alter table table1 modify str1 varchar(50) not null default ‘mylove’;
Change name: alter table table1 change oldstr1 newstr1 varchar(50) not null default ‘mylove’;
Delete a column: alter table table1 drop conlumn str1;
Rename Table name: alter table oldt ...
数据库:MySQL优化
优化器查询优化器Optimizer–查询优化器, 获取执行 SQL 查询的最佳方案(并非一定最佳). 大多数的 optimizer 总是或多或少的在所有可能的”查询评估方案”中搜索最佳方案. 一般而言, 优化器所需要 Check 的”查询评估方案”越少, 它编译一个查询所需要发费的时间越少, 但是优化器可能为了中和查询或者预估时(为了避免遍历所有的-查询评估方案)错过最佳方案, 所以尽可能确保”查询评估方案”的数量, 例如联合查询的表数量.
工具
命令explain: 查看 SQL 的执行计划, 用于调试, 在进行数据库设计, 出现慢查询 BUG 时, 使用explain来查看执行计划, 有针对性的解决问题.
Optimizer Trace, 另外可以通过配置, 查看 MYSQL Optimizer的”查询评估方案”选择过程, 从而找出问题, 配置如下:
1234show variables like "%trace%";set optimizer_trace = "enabled=on";# 执行查询语句select * from infor ...
MVC
MVCIntroduction
View: 用户界面
Controller: 业务逻辑, Model 和 View的桥梁
Model: 数据保存, 资料模型
Communicate所有通信都是单向的, view->controller->model–>views:
互动模式, 例如: URL 上的hashchange事件:
缺点问题: 如果处理不好, 造成Massive View Controller(大量的视图控制器存在).
MVC 提出准则: Don’t repeat yourself
Don’t repeat yourself
View: 一个 App的动画效果如果布局合理, 可以简单的一直到其他 App 上, Github上的很多 UI 控件, 方便大家调用.
Model: 数据存储复用, 简单点, 就是解耦之后模块化了, 代码复用.
Controller: 存放不能复用的代码, 监听Model层事件, 监听 View层事件, 初始化view和model. 对Controller再进行分层.
MVP(Model View Presenter)Intro ...
ssh-隧道转发功能以及应用
本网站相关文章:
远程自动化工具
ssh 基本安装和配置
ssh 隧道转发功能以及应用
ssh 代理转发介绍及应用场景
ssh 代理中使用 https 以及二级代理的介绍
ssh 数字证书生成以及 https 原理介绍
ftp 安装,原理,配置
ssh 远程执行命令和 bash 工作模式
Introduction定义: SSH 在提供安全的 HTTP 传输之外, 还有很多额外的附属功能, 这里主要讲述 SSH 的隧道转发功能.
应用场景: 为了安全考虑, 一般 MYSQL 不会允许用户通过 user 和 password 直接连接远程 mysql 服务, 为了开发方便, 在 SSH 已经建立的白名单前提下进行连接.基于 SSH 的隧道进行 MySQL 连接, 利用隧道来实现远程登录和私密传输, 能够在确保远程服务器 MYSQL 连接安全的前提下进行 MYSQL 连接, 这是一个建立在 SSH 连接之上的 Mysql Client 连接.
端口转发配置: 禁止 SSH 进行端口转发工作, 编辑/etc/ssh/sshd_config文件, 配置 AllowTcpForwarding ...
Shell Command: sed
站内链接:
文本处理三剑客之 gawk
文本处理三剑客之 grep
文本处理三剑客之 sed
文件相关:
文件-基本操作集
文件-过滤
文件-find
文件-grep
文件-locate
文件-lsof
文件-redirect
文件-regex
文件-rsync
文件-sed
文件-tar
文件-xargs
介绍功能stream editor(流编辑器), 读取输入文件的行进行命令匹配, 对于匹配到的行进行删除, 替换, 插入, 打印等操作. 其整体的工作模式类似 vim 的文件缓存, sed 会将读取到的行临时缓存到pattern space中, 在处理完缓存区的行之后再进行回写到保持空间, 打印等操作, 重复上述操作直到文件末尾.
模式空间
sed 拥有两种空间概念:
模式空间: 一块活动缓冲区,在 sed 执行命令时会保存每一个操作文本对象。
保持空间: 用于临时保存文本对象,相对于 pattern space,hold space 是一个中间变量
1234567h PS拷贝到HS中H PS附加到HS中g H ...
数据库:mysql库迁移和导入导出
站内链接:
mysql 优化 optimizer
移动目录操作
前置条件
a non-root user with sudo privileges.
a MySQL server
设置步骤moving the MySQL data directory:
12345678910111213# Verify the current location by starting an interactive MYSQL session 或者查看/var/lib/mysql/my.conf配置mysql -u root -p> select @@datadir# Shut down MYSQL to ensure the interity of the data.sudo systemctl stop mysqlsudo systemctl status mysql# Copy the existing database directory to the new location with "rsync"sudo rsync -av /var/lib/mys ...