修复postgres安装错误 Problem running post-install step. Installation may not complete correctly The database cluster initialisation failed.

查了下资料大部分说是重建用户 或者管理员运行

正确做法用一条命令初始化数据 另一条注册后台服务就可以了

初始化数据库文件

D:\Program Files\PostgreSQL\13\bin\initdb -D D:\DBdata\PostgreSQL\13\data
D:\Program Files\PostgreSQL\13\bin\pg_ctl" register -N postgresql-13 -D D:\DBdata\PostgreSQL\13\data

默认本地连接没有验证

electron-builder 打包时遇到 cannot move downloaded into final location

这个问题查了好久,有说要在管理员权限下运行的,有让直接自己下载文件复制到缓存目录的.都不是根本解决方法

查资料发现有些人说是杀毒软件的问题,关掉即可.试了下确实可以.但这并不是杀毒的锅.

我这边只装了火绒,跟工作人员反应了一下,那边反应还是很快的,这里赞一个,想想微信这边支付有问题,连个活人客服都找不到.

远程给他们看了一下现象,并协助抓取日志.贴一下他们的报告吧.

您好,通过Procmon的监控记录分析,是AlibabaProtect.exe导致的该问题,成因如下:

1.nodejs打包时,会创建 \cakeGUI\build\win-unpacked\electron.exe

2.火绒实时监控在检测到文件生成后,会对改文件做扫描

3.火绒实时监控的逻辑会保证在火绒扫描时,后续进程对该文件的同步操作被阻塞,以保证文件操作的原子性和完整性

4.火绒查毒结束后,AlibabaProtect进程也会对该文件做内容分析(可能是病毒扫描,具体不清楚)

5.AlibabaProtect没有同步后续的文件操作,导致nodejs后续对\cakeGUI\build\win-unpacked\electron.exe尝试做删除操作时,由于AlibabaProtect正占用该文件而失败。


之所以火绒文件监控调成“执行、修改时扫描”才会触发此问题,猜测可能是火绒查毒触发了AlibabaProtect进程对相应文件的内容分析(可能是查毒,具体不清楚),进而导致此问题。

知道问题所在就好解决了,两个选择.

1.杀毒软件安全级别降低,或退出.

2.删了阿里系的软件,我这边是千牛.

解决webpack下node.js导致CPU占用过高的问题

最近总是遇到node.js将CPU占用率顶到100%,导致系统卡顿.查了很多资料,大致确定是webpack调用 fsevents 出错,然后频繁查找modules目录导致,mac下可重新安装此模块,或npm rebuild解决.win下因为没有这个模块,可直接在webpack的配置文件中添加

watchOptions: {
      ignored: /node_modules/
    }

解决CPU占用过高.

http://webpack.docschina.org/configuration/watch/#watchoptions-ignored

将权重值映射到RGB 热力图

最近做公司项目的时候遇到一个问题,怎样将1-20的权重值,用类似热力图的色值表示出来.起初直接rgb套用权重,出来的全都是灰度图.后来查了下资料,发现rgb三个色值不是简单的按比例增加减少的问题.而是一个类似互补的关系.

具体映射方法如下,假设权重为h(webGl RGB值的范围为0-1,一般常用值为0-255,以下按0-1的范围计算)

r = 0.4*h
g = h
b = 1-0.5*h
r = h
g = 0.4 * h
b = 1-0.5 * h
r = 1 - 0.4 * h
g = 0.4 * h
b = h

linode Debian 9 开启BBR支持

实际上linode已经支持了BBR.运行

sysctl net.ipv4.tcp_available_congestion_control

返回里面没BBR是因为启动方式不对.在linode后台中Dashboard选项下点击edit启动参数.

Boot Settings-Kernel 中的具体内核版本改为 GRUB2 -重启

接下来就是网上普遍的教程

//写入配置
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
//保存生效
sysctl -p
//重启
reboot
查看是否启用
sysctl net.ipv4.tcp_available_congestion_control
//返回中包含bbr
net.ipv4.tcp_available_congestion_control = bbr cubic reno
//是否启用
lsmod | grep bbr
//返回
tcp_bbr                20480  14


JavaScript 精确计算函数

/**
 ** 加法函数,用来得到精确的加法结果
 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
 ** 调用:accAdd(arg1,arg2)
 ** 返回值:arg1加上arg2的精确结果
 **/
function accAdd(arg1, arg2) {
    var r1,
        r2,
        m,
        c;
    try {
        r1 = arg1.toString().split('.')[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split('.')[1].length;
    } catch (e) {
        r2 = 0;
    }
    c = Math.abs(r1 - r2);
    m = Math.pow(10, Math.max(r1, r2));
    if (c > 0) {
        var cm = Math.pow(10, c);
        if (r1 > r2) {
            arg1 = Number(arg1.toString().replace('.', ''));
            arg2 = Number(arg2.toString().replace('.', '')) * cm;
        } else {
            arg1 = Number(arg1.toString().replace('.', '')) * cm;
            arg2 = Number(arg2.toString().replace('.', ''));
        }
    } else {
        arg1 = Number(arg1.toString().replace('.', ''));
        arg2 = Number(arg2.toString().replace('.', ''));
    }
    return (arg1 + arg2) / m;
}
/**
 ** 减法函数,用来得到精确的减法结果
 ** 说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
 ** 调用:accSub(arg1,arg2)
 ** 返回值:arg1加上arg2的精确结果
 **/
function accSub(arg1, arg2) {
    var r1, r2, m, n;
    try {
        r1 = arg1.toString().split(".")[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;
    } catch (e) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
    n = (r1 >= r2) ? r1 : r2;
    return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
/**
 ** 乘法函数,用来得到精确的乘法结果
 ** 说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
 ** 调用:accMul(arg1,arg2)
 ** 返回值:arg1乘以 arg2的精确结果
 **/
function accMul(arg1, arg2) {
    var m = 0,
        s1 = arg1.toString(),
        s2 = arg2.toString();
    try {
        m += s1.split(".")[1].length;
    } catch (e) {}
    try {
        m += s2.split(".")[1].length;
    } catch (e) {}
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}
/**
 ** 除法函数,用来得到精确的除法结果
 ** 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
 ** 调用:accDiv(arg1,arg2)
 ** 返回值:arg1除以arg2的精确结果
 **/
function accDiv(arg1, arg2) {
    var t1 = 0,
        t2 = 0,
        r1, r2;
    try {
        t1 = arg1.toString().split(".")[1].length;
    } catch (e) {}
    try {
        t2 = arg2.toString().split(".")[1].length;
    } catch (e) {}
    r1 = Number(arg1.toString().replace(".", ""));
    r2 = Number(arg2.toString().replace(".", ""));
    return (r1 / r2) * Math.pow(10, t2 - t1);
}

将footer固定在底部

看完这篇文章后决定用第三个方法,其实很想用jq的,方便灵活,咨询了好多老前辈后,得知Js控制DOM在性能上影响比较大,能用css和html解决就不要用js了。

HTML

<div id="container">
<div>.........</div>
</div>
<div class="push"><!-- not put anything here --></div>
<div id="footer">Footer Section</div>

CSS

html,
body{
    height: 100%;
    margin:0;
    padding:0;
}
#container {
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -330px;/*margin-bottom的负值等于footer高度*/
}
.push,
#footer {
    height: 330px;
    clear:both;
}
  1. html和body标签:html,body标签和前两种方法一样,需要设置“height:100%”并重置“margin”和“padding”为0;
  2. div#container:方法三关键部分就在于div#container的设置,首先需要设置其最小高度(min-height)为100%,为了能兼容好IE6,需要对min-height进行兼容处理(具体处理方法看前面或代码)另外这里还有一个关键点在div#container容器上需要设置一个margin-bottom,并且给其取负值,而且值的大小等于div#footer和div.push的高度,如果div#footer和div.push设置了padding和border值,那么div#container的margin-bottom负值需要加上div#footer和div.push的padding和border值。也就是说“div#container{margin-bottom:-[div#footer的height+padding+border]或者-[div.push的height+padding+border]}”。一句话说:div#container的margin-bottom负值需要和div#footer以及div.push的高度一致(如果有padding或border时,高度值需要加上他们);
  3. div.push:在div.push中我们不应该放置任何内容,而且这个div必须放置在div#container容器中,而且是最底部,并且需要设置其高度值等于div#footer的值,最好加上clear:both来清除浮动。div.push容器在此处所起的作用就是将footer往下推。
  4. div#footer容器:div#footer容器和方法二一样,不能放到div#container内部,而和div#container容器同级,如果需要设置元素和footer之间的间距,最好使用padding来代替margin值。

Firefox 打开链接就卡死的解决办法

我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
我会告诉你是迅雷插的原因么……
………………
关闭什么硬件加速跟Flansh沙盒根本没效果有没有。
点击谷歌搜索结果秒卡啊有没有
赶紧打开插件管理器卸载了迅雷插件吧
据说是那个插件一直在检测鼠标点击的链接是否可以下载的原因
不管你信不信,反正我卸载了之后立马流畅了
渣雷啊。。。