强烈推荐 EditorMD for Typecho 插件 作者: Chuwen 时间: 2021-01-08 分类: 唠嗑闲聊 评论 # 强烈推荐 EditorMD for Typecho 插件 是基于 https://pandao.github.io/editor.md/ 做的插件 基本上的 EditorMD 上实现的都能够使用,并且后台的编辑器也更换了 ![](https://cdn.nowtime.cc/2021/01/08/1313693641.png) 项目地址:[https://github.com/DT27/EditorMD](https://github.com/DT27/EditorMD) # 我自己感觉的优点 - 支持粘贴图片上传,再也不用截图然后保存到本地再上传了!!!!
数据库设计三大范式——精辟理解 作者: Chuwen 时间: 2021-01-07 分类: 唠嗑闲聊 评论 # 第一范式: > 1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 通俗的理解是,字段还可以再分吗?如过不能,则是符合1NF的设计。 # 第二范式: > 2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 简单的解释,比如你和一个女生约会建立一张表,不用每条约会记录都记录她的身高、体重,将身高体重单独的存在一张表中供查询即可。 # 第三范式: > 3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。 打个比方,比如评论表,如果你将用户ID,用户头像都放在这留言表中,就是不合适的了。用户头像是依赖于用户ID,而不依赖该评论。 --- 来自评论:`https://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html#3189743`
Windows 查看路由器内网 IPv6 地址以及本机内网 IPv6 地址 作者: Chuwen 时间: 2021-01-05 分类: 神奇技巧 2 条评论 # 使用 ipconfig 查看即可 > `Win` 键的 icon 是由四个小窗户组成的,通常在 `Ctrl` 或 `Alt` 键旁边 首先按下 `Win` + `R`,输入 `cmd`,按回车或者**确定**即可,来打开命令行窗口 ![首先按下 Win + R,输入 cmd,按回车或者确定即可,来打开命令行窗口][1] 然后在弹出的黑色背景窗口输入 `ipconfig` 或者 `ipconfig /all`,然后按回车即会出现以下内容: > ![Snipaste_2021-01-05_14-09-05.jpg][2] ```shell C:\Users\chuwen>ipconfig Windows IP 配置 以太网适配器 以太网: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : lan.iton.pw 无线局域网适配器 WLAN: 连接特定的 DNS 后缀 . . . . . . . : lan.iton.pw IPv6 地址 . . . . . . . . . . . . : 2409:8a38:6823::1 临时 IPv6 地址. . . . . . . . . . : 2409:8a38:6823::2 本地链接 IPv6 地址. . . . . . . . : fe80::3d58:32aa:cbbc:79bc%25 IPv4 地址 . . . . . . . . . . . . : 192.168.3.29 子网掩码 . . . . . . . . . . . . : 255.255.255.0 默认网关. . . . . . . . . . . . . : fe80::9abb:99ff:fe04:7b1b%25 192.168.3.1 ``` ## 路由器内网 IPv6 地址 找到**默认网关**那一行,类似 `fe80::9abb:99ff:fe04:7b1b%25` 这个就是 IPv6 地址 然后你把 `%以及后面的去掉`,就是路由器内网 IPv6 地址,比如我的是:`fe80::9abb:99ff:fe04:7b1b` ## 本机内网 IPv6 地址 找到**本机链接 IPv6 地址**那一行,提取内容比如我的是 `fe80::3d58:32aa:cbbc:79bc%25` 然后你把 `%以及后面的去掉`,就是本机内网 IPv6 地址,比如我的是:`fe80::3d58:32aa:cbbc:79bc` # 测试能否 ping 通 > 请注意 IPv6 需要用 **[]** 包裹,比如 IPv6 地址是 `fe80::3d58:32aa:cbbc:79bc`,包裹后就是 **`[fe80::3d58:32aa:cbbc:79bc]`** ```shell C:\Users\chuwen>ping [fe80::3d58:32aa:cbbc:79bc] 正在 Ping fe80::3d58:32aa:cbbc:79bc 具有 32 字节的数据: 来自 fe80::3d58:32aa:cbbc:79bc 的回复: 时间<1ms 来自 fe80::3d58:32aa:cbbc:79bc 的回复: 时间<1ms 来自 fe80::3d58:32aa:cbbc:79bc 的回复: 时间<1ms 来自 fe80::3d58:32aa:cbbc:79bc 的回复: 时间<1ms fe80::3d58:32aa:cbbc:79bc 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms ``` --- # 其它 Linux、Android 同理,但是命令是 `ifconfig` [1]: https://cdn.nowtime.cc/2021/01/05/2136156390.jpg [2]: https://cdn.nowtime.cc/2021/01/05/1734206205.jpg
关于 PHP 插入数据库如果该接口访问多次可能会插入多次的思考 作者: Chuwen 时间: 2021-01-04 分类: PHP 评论 # 前言 今晚在搞一个用户注册的接口,突然发现如果该**注册接口**在一定的时间内访问多次,有可能注册多次,由此来水一篇文章 > 因为这是为了和同学联合做个(我负责网页端、服务端,他负责 Android 端),不能搞得太复杂比如搞个验证码、Session 验证之类的,不然一个 App 注册页面得做好久,循序渐进,先做好基础功能再做这些高级点的 # 主机配置 - Arm64 开发板(也就是**我家云**啦,2020年1月初,70+元在咸鱼捡的矿渣),1GB 内存,配置很垃圾,搭建一些小网站、测试代码还是勉勉强强的 > 在宝塔面板装了两次不同版本的,总共花费2个多小时,都失败了,太难受了。 但最后得用的 Docker,网上搜了下相关镜像,有人做了 **Arm64** 版本的 `MySQL 5.7` 的镜像,拉取镜像、配置、运行,一气呵成。 > Docker 部署确实太方便了。 > 可惜自己花费大量时间去编译装 MySQL,结果以失败告终... # 相关注册逻辑 ```php //1. 判断用户名和密码是否合规 //2. 判断该用户名是否被注册 //3. 插入数据库 //4. 判断是否注册(插入数据库)成功 ``` 这样看上去似乎没什么问题,但是当我测试的时候,一不小心多按了几次刷新,结果数据表里出现了几个一摸一样的用户名。 然后想了想这可能是因为自己主机太垃圾了,插入数据库都要执行那么久... 当然遇到这个问题,肯定是要解决的了,首先想到了用 Redis 弄一个锁,再怎么的也比主机硬盘速度快吧,然后注册完成后就删除 # 解决思路 > 然后网上搜了下,原来我这样写的方法叫**悲观锁**: > 总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加(悲观)锁。一旦加锁,不同线程同时执行时,只能有一个线程执行,其他的线程在入口处等待,直到锁被释放。 > > 涨知识了,这方面的知识看来还得再补补... ```php //此处省略部分代码 $RDS = new Redis(); $RDS->connect('127.0.0.1'); //1. 判断用户名和密码是否合规 //2. 检查该用户名是否正在注册中,防止一个用户名多次用户注册 if ($RDS->sIsMember("nickname", $username)) { die('对不起,你输入的用户名正由别人注册中,请稍后再试!'); } //3. 判断该用户名是否被注册 //4. 添加“用户名注册锁” $RDS->sAdd("nickname", $username); //5. 插入数据库 //6. 删除该用户名锁 $RDS->sRem("nickname", $username); //7. 判断是否注册(插入数据库)成功 ```
Windows 禁用 DiagTrack 服务(Connected User Experiences and Telemetry) 作者: Chuwen 时间: 2021-01-04 分类: Windows 评论 # 关闭微软搜集隐私服务 - 用以 减少 磁盘100% 1. `Win + R` 输入 `services.msc` 2. 找到名称为“**Connected User Experiences and Telemetry**”的服务,双击,然后按照以下配置即可 ![Snipaste_2021-01-04_20-16-18.jpg][1] [1]: https://cdn.nowtime.cc/2021/01/04/370513648.jpg