一个没有技术只会增删改查的后端
Windows系统申请苹果证书(包含推送,AppID申请,profile文件)

下载OpenSSL

访问:http://slproweb.com/products/Win32OpenSSL.html 。并下载Win32 OpenSSL v1.0.2c Light版本(注意:版本可能会升级),如果您运行OpenSSL有问题,还需要下载Visual C++ 2008 Redistributables安装。

下载OpenSSL

生成certSigningRequest文件

安装好OpenSSL后,进入Windows的命令行(WIN+R,进入运行)生成certSigningRequest文件。开始输入各个命令。

基于路由openwrt固件搭建KMS服务器激活WINDOWS

首先,先介绍一下KMS这东西,KMS全称 Key Management Service,是微软官方面对大客户(使用数量多)的用于VOL版系统和OFFICE大批量激活的一个服务器。现在常见的KMS激活工具激活原理使用最小化的虚拟机搭建KMS服务器激活,但是这些工具内置病毒(把你电脑变成肉鸡,号称报毒是正常现象,实际上电脑端KMS激活只是几条批处理命令的事情),偷取个人信息以及偷偷占用你的电脑资源挖矿等。

至于KMS服务器,现在github上已有名为vlmcsd的开源KMS服务器,又经人移植到了openwrt(路由用的linux系统)平台上。

电脑上下载对应架构的vlmcsd预编译ipk

Github链接:https://github.com/cokebar/openwrt-vlmcsd/tree/gh-pages

根据CPU架构下载对应的文件(后续安装如果失败,那就是选错了,需要重新下载)

电脑装两块网卡,如何设置双网卡实现内外网都上

特定情况下,某一台电脑即需要连接外网获取数据,也需要同内网进行数据交互(出于安全性考虑,有时需要用局域网进行场所内设备的沟通和管理),此时,就需要设置双网卡.以下用台式机来进行测试,或者安装网卡,或者使用usb转网口进行.

1.将内网和外网设置ip,自动获取也可以的

外网IP

内网IP

2.cmd中输入”route delete 0.0.0.0”,回车

关于vue-cli3打包时遇到Cannot assign to read only property 'exports' of object '#Object'问题的解决方法

国外有一个大神对此分析的很清楚,他把原因分成以下两类:

2020-03-11-1-1.PNG

简单翻译下,第一种原因就是import和module.exports的混用要知道commonJS和ES6的语法是不太一样的前者是require和module.exports后者则是import和exports,当你混用这两个语法的时候,webpack就会报错,也就是第一种情况。

  为了使编译好的程序能在大多数浏览器下运行。webpack里面有一个编译器叫Babel,负责把ES6的语言转化为commonJS以兼容绝大多数浏览器。当你混用这两个语法的时候你可以使用babel的commonJS模式帮你把import编译成require。

  然而第二种情况就是你要使用@babel/plugin-transform-runtime这个插件的时候,同时你又在某个commonJS写的文件里使用这个插件时,babel会默认你这个文件是ES6的文件,然后就使用import导入了这个插件,从而产生了和第一种情况一样的混用错误。解决方法是在babel.config.js里配置unambiguous设置,让babel和webpack一样严格区分commonJS文件和ES6文件。

nginx配置文件分开配置

在Linux中不同的用户都可能用到Nginx,如果不同的用户无法达成一个对nginx.conf编写标准,势必会导致nginx.conf里的内容变的相当混乱,极难维护。所以这里建议新建一个文件夹,这个文件夹中分放不同用户所需要反向代理的配置文件。

nginx.conf 文件尽量不做修改,只需在最末尾加上 include conf.d/*.conf;

nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#user  nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

# upload file max size
client_max_body_size 300m;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

# 各个域名单独控制
include conf.d/*.conf;

}

在conf.d文件中放入不同用户的conf文件。

解决Springboot AOP切面切在Service无效问题!【巨坑】

前言

如题,最近开发时,遇到一个很坑的问题,配置了切面,切点设置在service的实现类中,但实际测试切面对某个service无效,这个问题断断续续,卡了我好多天。

要是选其他的service做测试还好,但好死不死,我选来做测试的这个service在Shiro realm中 通过@Autowrid 注入的,如下图,其他service都可以用。

image

通过几番查找资料排查问题,网上说是shiro和Aspect互相冲突导致,在shiroRealm注入的service再新增延迟加载注解@Lazy就可以,经过我实际测试,确实可以。

chrome浏览器不支持audio和video标签的autoplay自动播放解决方案

前言

音频audio和视频video无法自动播放这个在IOS上面一直是个惯例。

桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,紧接着在2018年4月份发布的Chrome 66开始也正式关掉了声音自动播放,也就是说在Safari、Chrome、opera浏览器中音频audio和视频video自动播放功能都将失效。

解决方案一

在chrome 浏览器中输入: chrome://flags ,搜索 Autoplay policy ,默认为 Default ,修改为 No user gesture is required 就可以了。

Windows获取System权限

众所周知,Linux操作系统的最高权限是root权限,通过su -等命令即可获取root权限。而Windows系统也具有Administrator管理员权限,常用的操作使用管理员权限即可。但实际上Windows系统最高级别的权限是System用户权限,有一些操作需要System权限才能完成,比如修改注册表核心键值、强制结束恶意应用程序进程等。这些需求对于极客们来说还是比较常见的。笔者先前比较常用的工具有PChunter、PowerTools等等,但是随着Windows系统的不断更新,这些工具因不被Windows官方支持而渐渐失效。

PSTools

下面介绍一款支持在Windows当前最新版(Windows 10 Pro Version 1803)能够使应用程序获得System权限的工具,PSTools。如果链接失效,点此备用链接

用法

以管理员身份启动cmd,使用以下命令即可以System用户启动任务管理器。

Vue项目阻止浏览器返回事件

Prevent Browser Back for Vue2.

模拟阻止(适用于PC,移动端):在需要阻止浏览器返回上一页的页面使用次插件,当点击浏览器返回上一页时使页面不做任何变化。

Install

1
npm install vue-prevent-browser-back --save

Usage

记一次SQLServer服务器CPU占用100%

1. 前置说明

1
2
select *
from test where Udt>=DATEADD(minute,-10,getdate())

数据库大约有七百万数据.

针对Udt字段建立了聚合索引.

由于业务需求,使用游标调用上面SQL.循环约20次.