自定义博客皮肤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

来自非洲的客人

  • 博客(19)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 摘要算法 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 15

原创 【性能优化】【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 19

原创 【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 16

原创 【CDN】

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

2021-05-21 23:34:28 13

原创 生产环境网站部署

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

2021-05-21 18:34:04 16

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

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

2021-05-20 20:57:16 35

原创 Ubuntu1804 安装 Nginx

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

2021-05-20 20:39:25 12

原创 【Lets encrypt】 证书获取

使用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 11

原创 【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 20

原创 【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 41

原创 任意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 41

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

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

2021-05-03 15:42:17 70

原创 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 95

原创 命名的字符支持

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

2021-05-02 20:59:05 50

原创 【位运算】 >>> 0

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

2021-05-02 18:04:00 16

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

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

2021-05-02 00:28:41 187

原创 【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 113

原创 【npm】基础

1、一个项目如果依赖某些npm package,那么该项目本身就是一个npm package,一个npm package必须有package.json README.md LISCENSE.md index.js文件,不然获取依赖时会提示警告。2、当获取完依赖包时,会产生package-lock.json,该文件记录依赖关系,需要保留和提交。3、npm 源如果指向私有 registry ,那么首先需要登录 npm login...

2021-05-01 15:37:08 21

原创 Let‘s Encrypt 与 360 系列浏览器的矛盾

如果我要为ssl证书付费,我宁愿把这部分费用捐赠给Let's Encrypt这样的组织,然后使用它的免费证书。360浏览器不把它添加进信任列表,有它自己的原因,也是它的自由,哪怕它给你、给互联网带来阻碍你也无权干涉。剩下的问题就是你是要选择继续支持Let's Encrypt,还是付费选择其他的,鱼和熊掌往往不可兼得。我会继续支持Let's Encrypt,并且我也会告诉我的用户它的可靠性,还有360浏览器对它的特殊支持情况。完全也可以在网上宣传这些,普及人们对Let's Encryp

2021-05-01 14:52:46 30

streams.rar

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

2016-06-30

小程序自定义组件 toast.rar

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

2019-09-11

七八个星天怪的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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