自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rand Tsui

东方欲晓,莫道君行早。

  • 博客(421)
  • 资源 (2)
  • 收藏
  • 关注

原创 【博客迁移,不再使用CSDN发新博文了】

首先感谢CSDN陪我度过这么多年,但是由于自己对博客的使用体验越来越发烧,CSDN已经不能满足我的需要了,于是自己设计开发了个人博客,新的文章将写在那里,之前在CSDN上的文章不会变动。新博客地址:https://blog.randspace.xyz/...

2021-10-16 21:41:21 297

原创 【本博客所有公开的原创博文皆允许转载,无须再征求作者本人(也就是我)同意】

CSDN转载博文增加了“经过作者本人同意”的选项,无非就是想避免版权的纠纷。个人认为,公开的博文,就是为了方便大家查阅资料和解决问题的,别人完全可以转载备份。因为这个闹版权纠纷的难道不是耍流氓?...

2021-04-10 20:02:46 264

原创 Ubuntu 卸载 gitlab

Remove servicessudo gitlab-ctl uninstallClean any data generated by usage of the packagesudo gitlab-ctl cleanseYou may also want to remove any accounts you configured. To do sosudo gitlab-ctl remove-accountsThen remove the package usingsudo dp.

2022-03-06 20:16:25 2271

原创 Linux 目录下所有文件中查找内容

find ./ -name '*' | xargs grep '9-25'

2021-09-29 23:03:40 2243

原创 【NodeJS】Events 模块

const EventEmitter = require('events');const ee = new EventEmitter();ee.on('eventname', (a, b) => { console.log(a, b); // 1 r ee.removeAllListeners(['eventname']);});ee.emit('eventname', 1, 'r');

2021-09-26 10:30:06 127

原创 【systemctl】Systemd Unit 相关

参考:Systemd 定时器教程 - 阮一峰的网络日志

2021-09-19 15:33:29 143

原创 【CDN】https 证书通过 NodeJS SDK 接口上传

const fs = require('fs');const Core = require('@alicloud/pop-core');let client = new Core({ accessKeyId: 'xxxx', accessKeySecret: 'xxxx', endpoint: 'https://cdn.aliyuncs.com', apiVersion: '2018-05-10'});//获取所有加速的域名,然后批量设置同一个证书client..

2021-09-19 15:27:54 475

原创 【LetsEncrypt】ssl证书完全自动化续签

ssl证书如果用到很多个,手动更新将会比较烦,并且免费的LetsEncrypt 90天就要更新一次,总不能今天更新完了,明天或下周又要更新,如果能让它自动更新岂不美哉?实践证明,这是行得通的。首先,ssl证书我目前有2个用途,一个是自己服务器的nginx需要,nginx配置文件写好证书路径即可,每次获取到新的证书,nginx 需要重新加载配置文件,nginx -s reload。另一个用途是获取到证书之后上传给阿里云CDN使用,因为CDN开了https,上传证书通过CDN SDK的接口上传而不是手动。.

2021-09-19 15:16:26 4183

原创 【crontab】Ubuntu 设置定时任务

crontab 只有一个配置文件crontab-e 用vim编辑配置文件,退出之后,会自动运行crontab-l 查看有哪些任务#例子:*  *  *  *  *  command分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令例子:*/30 * * * * /home/mysql_back.sh ...

2021-09-17 23:28:01 145

原创 【canvas】最小模板

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>canvas base</title> <style> *{ margin: 0; padding: 0; } body{ } #c.

2021-09-16 17:25:46 102

原创 【NodeJS】读文件 readFileSync

注:如果要读的文件是一个符号链接,那么它会将符号链接指向的文件内容读出来,符号链接也照读不误。const fs = require('fs');let cert = fs.readFileSync('./fullchain1.pem', 'base64');let key = fs.readFileSync('./privkey1.pem', 'utf8');// let b64 = cert.toString('base64');let res = encodeURIComponent(

2021-09-16 14:10:09 2405

原创 需要使用ssl证书的地方

1、nginx做域名转发可能需要配置多个,可以使用 Certbot 自动申请。2、阿里云CDN如果要开https,需要上传证书或者使用免费证书

2021-09-14 18:16:32 111

原创 锚点平滑滚动之scrollIntoView

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>锚点平滑滚动</title> <style> #d1{ background-color: #FFFCF0; height: 400px; } #d2{ .

2021-09-14 16:07:31 325

原创 example.com

What’s the example.com domain?Example.com on Wikipedia

2021-09-13 11:22:51 545

原创 【LetsEncrypt】 简介

Let’s Encrypt 是一个证书颁发机构,提供免费的ssl证书,有很多大公司赞助支持。要从Let’s Encrypt 获取你网站域名的证书,你必须展示对该域名的控制。要操作使用Let’s Encrypt,你需要在你的web服务器上安装ACME协议的软件。Let’s Encrypt 推荐使用 Certbot ACME 客户端,它可以在不停机的情况下自动化证书颁发和安装。...

2021-09-13 10:42:47 500

原创 【MongoDB】Convert a Standalone to a Replica Set

默认安装好的数据库都是Standalone,要使用事务需要转换为 Replica Set,不然无法使用1、MongoDB停止服务2、修改配置文件,如下:replication: replSetName: rs03、重新启动服务,需要携带配置文件参数4、初始化Replica Set,如下:rs.initiate()5、设置完成,查看状态:rs.status()...

2021-09-12 20:26:04 303

原创 【MongoDB】win10下安装注意事项

1、数据和日志不要使用默认路径,在其他盘新建目录存放2、事务transactions的执行需要副本集Replica Set,而安装好之后默认是Standalone,所以需要将运行方式替换为Replica Set,怎么替换见其他文章

2021-09-12 18:37:20 108

原创 async 与 await

const doSometing = t => { return new Promise(resolve => { setTimeout(() => { resolve(t); }, t); });};const doSometing2 = t => { return t;};const fun = async () => { let d3 = await doSometing2.

2021-09-11 21:52:11 90

原创 【MongoDB】索引

Slider hljs.initHighlightingOnLoad();

2021-09-08 16:43:50 137

原创 【Robo3T】启动后崩溃问题

创建私有npm包1、npm官网可以创建私有npm包,但是要收费,每人每月7$,先找免费的2、在线的免费的有GitHub,可以看文章:https://andreybleme.com/2020-05-31/hosting-private-npm-packages-for-free/3、自己本地搭建仓库,可以使用开源项目verdaccio,这个项目的前身是sinopia,前身已经不维护了,verdaccio 地址:https://github.com/verdaccio/verdaccio4、..

2021-09-07 19:26:33 1094 2

原创 【MongoDB】Update Operators

Update OperatorsFields Name Description $currentDate Sets the value of a field to current date, either as a Date or a Timestamp. $inc Increments the value of the field by the specified amount.

2021-06-13 19:56:07 167 1

原创 【JavaScript】String转Uint8Array

浏览器端:new TextEncoder().encode('zifuc');NodeJS:Buffer.from('你好')

2021-06-13 16:02:01 4330 3

原创 【Win10】磁盘重新分区,保留数据

本来我只有c盘和d盘,现在我要把d盘拆分,d盘里已经有很多文件不方便迁移,在不影响d盘已经存在文件的情况下,弄个e盘出来,可行吗?实践证明,可行。原理:在Win10下,

2021-06-08 11:28:10 2314

原创 校验和算法 rd16

randdigest 16bitconst modulus16 = 256 * 256;const rd16 = t => { let buf = Buffer.isBuffer(t) ? t : Buffer.from(t); let p = Math.floor(buf.length / 2); let r = buf.length % 2; let checksum = 0; for (let i = 0; i < p; i += 2) {.

2021-05-28 22:00:01 318

原创 【性能优化】【Brotli】使用Brotli压缩算法来压缩静态文件

Brotli 比 gzip 更强,压缩后体积更小,gzip可以淘汰了。静态文件可以使用Brotli 进行预压缩,会占用cpu资源,返回头需要指定:'Content-Encoding': 'br'不然浏览器无法识别Brotli 基本可以压缩任何静态文件或者直接压缩返回的字节流,使用也非常简单,代码如下:const zlib = require('zlib');let jquery = fs.readFileSync('./jquery-3.6.0.min.js', 'u...

2021-05-23 14:03:38 1503

原创 【NodeJS】【pm2】加参数运行

node index.js arg1 arg2pm2 start index.js -- arg1 arg2上面两个等价获取参数process.argv返回一个数组如下:[ '/usr/bin/node', '/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js', 'arg1', 'arg2']

2021-05-22 19:49:28 1564

原创 【CDN】

1、添加域名首先想好两个域名,一个引用域名,也就是加速域名,另一个回源域名。添加域名之后,会对加速域名生成一个cdn域名,需要给这个cdn域名设置别名也就是添加CNAME记录,别名就是加速域名。以后请求加速域名,实际请求的是cdn域名。如果cdn节点没资源,它会去源站,也就是回源域名获取信息。2、刷新和预热刷新的作用是清空cdn上的缓存,下次请求cdn就会回源。刷新可以根据url单个资源刷新,也可以根据目录刷新预热的作用就不用解释了。3、源站可以使用https 443端口..

2021-05-21 23:34:28 249

原创 生产环境网站部署

需求:1、需要做域名端口映射功能2、考虑使用cdn减轻服务器压力3、cdn只能设置一个缓存时间,不知道是文件在cdn服务器的缓存时间还是在用户浏览器的缓存时间模板文件,静态文件,需要去空格混淆压缩,然后brotli压缩,压缩之后...

2021-05-21 18:34:04 156

原创 nginx 启动 停止 重载配置文件

当安装好之后,默认都是开机自启动的,可以查看nginx状态:systemctl status nginx如果nginx已经启动并且没有使用systemctl的方式启动,可以先杀死nginx进程,再用systemctl启动启动:systemctl start nginx停止:systemctl stopnginxreload配置文件:nginx -s reload...

2021-05-20 20:57:16 146

原创 Ubuntu1804 安装 Nginx

http://nginx.org/en/linux_packages.html#Ubuntu

2021-05-20 20:39:25 162

原创 【LetsEncrypt】 证书获取

使用certbot 工具,网站:https://certbot.eff.org/lets-encrypt/ubuntubionic-other单域名证书申请:1、安装 snapdapt install snapdsnap install coresnap refreshcore2、使用snap安装certbotsnap install --classiccertbot3、准备certbot命令行ln -s /snap/bin/certbot /usr/bin/ce...

2021-05-19 23:03:12 137

原创 【MongoDB】连接池理解及测试 NodeJS

更新于2021-05-15最近对MongoDB连接池如何正确使用不是特别清楚,于是做了一些测试也查找了相关资料,终于知道了MongoDB的连接池是怎么工作的了。首先,在 nodejs web 应用中正确使用MongoDB,应该先 MongoClient.connect ,回调中会得到 client,然后 let db = client.db() ,将这个db作为全局对象使用即可,任何请求都可以使用db去执行语句。这是正确的,Stack Overflow上的答案也是一致的。连接池是怎么工作的.

2021-05-15 19:36:09 1776

原创 【MongoDB】版本选择

2021-05-12MongoDB官网版本有:4.4.6、4.2.14、4.0.24、3.6.23、3.4.24、3.2.22、3.0.15Robo 3T 最新版本:Robo 3T 1.4 brings support for MongoDB 4.2, and a mongo shell upgrade from 4.0 to 4.2, with the ability to manually specify visible databases.MongoDB各版本对操作系统的兼容情况:http

2021-05-12 15:07:24 6916 1

原创 任意Base编码的实现NodeJS

本程序参考开源项目:https://github.com/cryptocoinjs/base-x本程序还没有完全写完BaseN:let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';let len = chars.length;let charCodeMap = Buffer.alloc(256);for (let i = 0; i < len; i++) { charC

2021-05-08 11:20:32 247

原创 多项式的转换,多项式变基

多项式的概念:a b ^ n + a2 * b ^ (n-1)

2021-05-03 15:42:17 2138

原创 256进制的转换

这个有什么意义,编码用的,把一串二进制,用一个字符表编码,比如base64就是一种常见的编码方案,那么编码有什么意义,可以参考:https://randtsui.blog.csdn.net/article/details/116064124。本文探讨的问题是,把一串二进制,用任意多个字符组成的字符表编码,这个字符表为BaseN,base64,N就是64个字符,比特币的base58,N就是58个字符,base32,N就是32个字符可以写一个函数,传入一个任意的字符串作为字符表,然后就可以用该表对一串二

2021-05-03 00:29:49 6199

原创 命名的字符支持

文件名不适合用:/\|:;*?"<>-=$.#&()[]{}!`~文件名可以用:_+,@%nodejs 对象 key value 支持utf-8,base64肯定支持nodejs 变量命名字符有限url 虚拟路径path可以自定义使用安全字符cookie有些字符不能使用,但是base64字符传输是安全的,querystring会把+号变成空格encodeURIComponent 会让utf-8字符串长度增加很多倍随机buffer转...

2021-05-02 20:59:05 231

原创 【位运算】 >>> 0

无符号右移,右移0位表示,把小数变为32位无符号整数

2021-05-02 18:04:00 207

原创 计算机存储的最小单位是字节byte,不是位bit

51单片机是8位的寄存器,汇编指令一次最小处理8位,也就是一个字节,不管是内存还是外存。内存、磁盘容量都是以多少字节为单位,没听说过多少个位的磁盘。磁盘的读写以字节为单位,磁盘驱动不会给你存入几个位。磁盘分区以字节为单位,不可能按多少位给你分。文件大小以字节为单位,操作系统不可能显示一个文件占多少位。ASCII码表,每个字符都是一个字节,没有低于8位的字符。所以计算机存储的最小单位是字节byte,1byte=8bit,单位是什么,单位就是1后面的byte。如果说计算机存储的...

2021-05-02 00:28:41 6860

原创 【systemctl】让程序以守护进程的方式在后台运行

首先需要创建一个systemdunit 配置文件,比如:verdaccio.service,一般放在 /lib/systemd/system/ 下添加配置如下:[Unit]Description=Verdaccio lightweight npm proxy registry[Service]Type=simpleRestart=on-failureUser=verdaccioExecStart=/usr/bin/verdaccio --config /etc/verdaccio/.

2021-05-01 17:22:56 2848

小程序自定义组件 toast.rar

小程序自定义组件---------toast 源码。

2019-09-11

streams.rar

一次性解除被锁定的多个文件,工具

2016-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除