Redis使用
General
# 返回给定模式的keys |
String
SET key value |
Hash
HSET key field value |
flowchart LR |
List
LPUSH key value1 value2 |
Set
SADD key mem1 mem2 |
Sorted Set / ZSet
ZADD key score1 mem1 score2 mem2 |
vim基本操作
基本操作
<C-o>, <C-i>
:回到前一个/后一个位置(例如,打开文件默认在第一行,<C-o>
回到上次编辑位置)。注意这个操作是跨文件的。`0
:返回上次位置- 词:
w
(下一个词),b
(词初),e
(词尾) - 行:
0
(行初),^
(第一个非空格字符),$
(行尾) - 文件:
gg
(文件头),G
(文件尾) - 搜索:
/{正则表达式}
,n
/N
用于导航匹配 x
删除字符(等同于dl
)s
(substitute)替换字符(等同于xi
)- 替换命令
:{作用范围}s/{目标文本}/{替换文本}/{替换标志}
:%s/s_content/o_content/g
全局替换
- 替换命令
Sign | Range |
---|---|
% | 整个文件 |
. | 当前行 |
$ | 最后一行 |
,n | 当前行到n行 |
n, | n行到当前行 |
+n | 当前行后n行 |
- 可视化模式 + 操作
- 选中文字,
d
删除(剪切) 或者c
改变
- 选中文字,
u
撤销,<C-r>
重做y
复制 / “yank” (其他一些命令比如d
也会复制)p
粘贴+p
粘贴系统剪贴板
- 更多值得学习的:
:<line>
跳到line行~
改变字符的大小写3w
向前移动三个词A
(大写)可以迅速定位到行尾进行修改:!python prog.py
使用!直接运行shell命令
%
匹配括号
多行操作
<C-v>
选中多行,Shift + i
输入后Esc
,即可多行同步输入
文件操作
:e filename
切换到filename文件:bn/bp
切换到下/上个文件<C-x><C-f>
自动补全路径
Hexo博客教程
笔记
命令
hexo new "postName" # 新建文章 |
按文章更新时间排序
# Home page setting |
背景设置
把你挑选的背景图片命名为:background.jpg,放在blog\themes\next\source\images里,在blog\themes\next\source\css_custom文件的custom.styl首部添加
body { |
符号链接
# Windows,有些文件需要文件名相同才能打开 |
安装主题
- npm安装在modules下
cd hexo-site |
- git clone安装
cd hexo-site |
Hexo
我的配置
# 设置英文字体 |
Quick Start
npm install hexo-cli -g |
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Create a new post
$ hexo new "My New Post" |
More info: Writing
Run server
$ hexo server |
More info: Server
Generate static files
$ hexo generate |
More info: Generating
Deploy to remote sites
$ hexo deploy |
More info: Deployment
mysql使用
使用
启动数据库
# 需要管理员权限 |
登录数据库
mysql -u <username> -p |
导入数据库
-- 设置中文字符集 |
数据库
-- 创建数据库 |
表
-- 建表 |
AI爱外卖
项目心得
24.10.9
将AliOss换成本地存储。可是一直插入不成功,使用Swagger调试,甚至数据库什么都接受不到!非常诡异的BUG
原来,是导入了错误的RequestBody,导致前端提交的表单怎么都接受不到!
// 导入了错误的包 |
Nginx
反向代理
server { |
好处:
- 不会暴露服务器,服务器可以安全放在内网,由nginx转发、缓存。
负载均衡
upstream webservers{ |
Swagger
Knife4j:Java MVC框架集成Swagger
API接口文档生成、测试
OS 操作系统
Chapter3 操作系统结构
复杂度管理方法 M.A.L.H
Modularity: 模块化,分而治之
Abstraction: 抽象,接口与实现分离,遵循宽进严出原则。例如虚拟内存、文件系统
对于大型系统,只有模块化和抽象,可能导致划分模块太多,交互关系复杂,因此还需要引入分层和层次结构控制复杂度。
Layering: 分层,每个层级是一套完整机制。通常一个模块只能与本层和上下层交互,不能跨层。例如OSI、TCP/IP
Hierarchy: 层次结构,大的子系统由多个小的子系统组织成。即同级模块的分层
宽进严出原则:容忍各种输入(包括恶意输入),严格控制模块的对外输出
微内核
宏内核架构:单点bug使整个系统崩溃。
微内核:解耦单个功能/模块(如文件系统、设备驱动)作为独立服务隔离运行,使内核成为一个最小功能集。
微内核架构服务隔离,单点出问题系统不会崩溃
内核态部分,称为μkernel
微内核优势:
- 弹性硬件拓展能力
- 硬件异构实现
- 功能安全
- 信息安全
- 时延确定
现代操作系统特征:1)虚拟内存;2)用户态、内核态隔离。
CS61B sp18
Gradescope Autograder
Spring 2018
44个Assn,偏向数据结构
邀请码:MNXYKX
学校:UC Berkeley
直接输入,不要选择2U-UC Berkeley
,否则将提示COURSE ENTRY CODE IS INVALID
Spring 2021
19个Assn,偏向软件工程
邀请码:MB7ZPY
文章收录
The Law of the Broken Futon 浮沙筑高台法则
“Since I’m fine now, can’t I add that missing piece later, when it’s actually needed?” Sometimes, yes. But it’s much harder.
Adding the missing piece later means waiting until the damage is already underway, and hellishly difficult to undo.
A Response to “Why Most Unit Testing is Waste”
(Unit Tests) They are based on programmers’ fantasies about how the function should work. But programmers break down requirements into smaller components all the time – this is how you program. Sometimes there are misunderstandings, but that is the exception, not the rule, in my opinion.
2.1 Mystery of Java Restore
When instantiate an Object,
obj = new Object()
,obj
stores the address of the Object, not the specific data struction.
(That is why all type of variables create memory boxes of 64 bits. It is just the memory of the address.)
Therefore, When we use obj2 = obj
, Java simply copy the addr of obj
and assign it to obj2
(They are pointing to the same Object), that is why when we change obj2.weight
it effects obj.weight
too.
DNS Over Https
Windows
# 模板 |
查看DoH模板:
$ netsh dns show encryption |
ICS5 PA
PA1-1 24.5.30
又开始了ICS之旅,这次又给自己下了一个难度,找到了汪亮老师讲解的ICS 5!
target
第一课的目标是修正一个register错误声明
insteresting
- 中途网易源Bad Gateway 502了,更换清华源,学会了
:%s/163/tuna/g
非常爽! - 又学了几个终端快捷键
- 想到了用
ccache
加速我的PA
problems
union
和struct
的区别?
unioin
在同一个内存空间中存储不同的数据类型。
struct
则是同时存储不同的数据类型。- 为什么要用
union
?阅读i386手册
2.3.1 General Registers
As Figure 2-5 shows, the low-order word of each of these eight registers has a separate name and can be treated as a unit. This feature is useful for handling 16-bit data items and for compatibility with the 8086 and 80286 processors. The word registers are named AX, BX, CX, DX, BP, SP, SI, and DI.
对于CPU来说,可以把AH AX AL看成单独的单元,拆分成小块。所以它们是共用关系。
PA1-2 ALU 24.6.5
target
实现ALU中的各类运算,包括设置标志位
knowledge
Appendix C
Name | Function |
---|---|
CF | Carry Flag ── Set on high-order bit carry or borrow; cleared otherwise. |
PF | Parity Flag ── Set if low-order eight bits of result contain an even number of 1 bits; cleared otherwise. |
ZF | Zero Flag ── Set if result is zero; cleared otherwise. |
SF | Sign Flag ── Set equal to high-order bit of result (0 is positive, 1 if negative). |
OF |
Overflow Flag ── Set if result is too large a positive number or too small a negative number (excluding sign-bit) to fit in destination operand; cleared otherwise. |