javascript array的map forEach every filter reduce

map

跑一遍就知道了,上手敲,不要复制粘贴
map接收一个函数,然后新数组的每个元素是这个函数的返回值
这个函数接收三个参数,第一个是当前元素,第二个是当前元素的索引,第三个是当前数组;
这样子,看着好像没有实际用到的,举个例子

在某个资源站,下载电视剧,一个一个复制是不是很烦呐,将上面的代码改一改,控制台里走一走,链接全部出来了,就问你爽不爽😁

forEach
forEach的第一个参数也是个函数,也接收三个参数,这个参数和map一样,不过,它没有返回值,所以也就没有新数组产生
上面找资源链接的代码也可以用forEach去写,因为我们的目的是一致的,
都遍历数组,然后找到链接后加入数组,最后显示所有链接
第二个是可选参数,用作this, 在第一个函数里面可以用this,影响外部的对象,在某些时候还是很有用的,比如
不用再 var that = this;
然后在闭包里面用that了😂….

every
这个方法和上一个一样,参数列表一样,传的函数的参数也一样
不过,返回值是布尔,检验每个元素是否通过了传入的函数的测试,因为遍历了数组,所以我们还是可以用它整理资源😁

filter
这个方法也和上一个一样,检验每个元素,不过不同的是,通过测试的元素,会组成一个新的数组,返回值就是这个数组

reduce
这货也接收一个函数作为参数,官方举的例子很直接,就是从左到右应用那个函数,最后返回函数累计计算的结果
咱们能不能用它来处理电视剧资源链接呢😂,答案是可以的

嗯,如果 $(‘ul’)没有reduce方法,可以.toArray(),再调用reduce
发现了没,这个函数接收四个参数,第一个很特殊,它就是上次调用这个函数的返回值,
reduceRight 和上面那个哥们一样的,不过处理的顺序相反
//课外知识点 递归 迭代

循环数组的方法还有几个,sort,some,find,findIndex…待续

折腾nginx + varnish + apache2 https整站小记

原来的配置是varnish + apache2, varnish直接监听80, http传给88的apache2,或者击中缓存,  https不走缓存直接给apache2. http+https很不爽…所以折腾整站https

现在

nginx:80,443

varnish:8888

apache2:8080

下面贴配置

接下来,就是apache2了… 这个有坑…原先的配置有监听443,然而忘记了.. 搞得nginx半天起不来…

apache2的站点配置只需要把原来的443的全部删掉就行了
varnish 4.1
apache2 2.2.22
nginx 随意…配置文件语法好像没怎么变过, 还有就是为了安全…万一哪天我这个版本被曝漏洞,凑巧我还没打补丁,再凑巧因为这个被肉鸡了可不好?

嗯, wordpress 最好提前装上个

SSL Insecure Content Fixer


因为,改了siteurl homeurl 好像并没有起作用, 主题里的静态文件依然是http, 原来http+https的时候, https好好的… 不知道什么鬼
以为是nginx没有正确的把请求头传给后端, 一顿折腾,有了上面那个配置,依然不行…装上这个, 再好好设置, 然后重启varnish服务,好了…
不知道遇到什么鬼,就重启varnish…缓存太强了….
附一个varnish 4.1 的中文文档
https://jefferywang.gitbooks.io/varnish_4_1_doc_zh/

VPS安装shadowsocks python版客户端

双十一在京东云搞了个主机,闲了在上面练练手…
今天准备搞个pouchdb玩玩, node装了,yarn装了,发现yarn add g pouchdb-server 需要下载aws s3的文件..这就扯了…
必须得上代理了…
首先确保vps系统上有装python,不过一般都是默认有的..
python -V
瞧下版本,没报错那就说明有装python,
然后试下
pip -V
看pip有没有…没有的话
apt install python-pip 装上
然后就可以开心的装shadowsocks了

如果登陆的用户不是root用户需要加上sudo去运行下面这条命令
pip install shadowsocks
跑完之后
sslocal –version
看装上没
配置啥的

注意这种加密方式需要安装openssl包
然后跑个screen 在里面
sslocal -c sslocal.json -v
临时用,所以就这样…
注意,这个python的客户端只支持socks5…折腾了半天http_proxy?

需要安装privoxy做转发…
apt install privoxy
修改配置文件
vim /etc/privoxy/config
找到下面一行
listen-address 127.0.0.1:8118
然后在新的一行添加,注意1080后面的空格和点
forward-socks5 / 127.0.0.1:1080 .
然后重启服务
service privoxy restart

然后就可以愉快的
export http_proxy=”http://127.0.0.1:8118″
export https_proxy=”http://127.0.0.1:8118″

curl google.com -v
瞧下成功了没
接下来就可以愉快的和s3玩耍了

wake on lan 远程唤醒

有这么种数据包叫魔法数据包。
这个魔法数据包中包含:有线网卡的MAC地址,SecureOn密码。
计算机关机之后,网卡还会有轻微电流继续工作。
接收到这个包的网卡会检查这个包里的内容,如果MAC地址与自己的一致,就唤醒计算机。
这个需要bios里启用wake on lan,不过没见到过。。。可能是旧版本的bios有这个设置。。也没见到过网卡不支持的情况。。在设备管理器找到网卡,属性里可以找到wake on lan
如果要发送魔法数据包,你需要一些软件去帮助你实现。维基百科下面列出来一些。
https://zh.wikipedia.org/wiki/WOL
需要指定目标ip,如果内网唤醒,那就有点没折腾的意思了。。内网也是可以的,如其名就是为内网准备的。。
不过公网也是可以的,如果目标主机在内网中,需要在路由器中设置虚拟服务器,端口设置为7或9,ip为内网ip,这样发送到路由器的魔法数据包就会转发给目标主机。
获取公网ip,可以使用动态dns服务,只要路由器登录了动态dns,那么ip就填写动态dns给的域名就行。
我参照下面这个脚本写了个页面。。https://osteam.win/wol.php?ip=1.1.1.1&mac=11:11:11:11:11:11
https://github.com/PHPGangsta/WakeOnLAN
不过,还是不要把ip和mac随便透漏给别人,万一有人闲的唤醒你电脑,多不好?

laravel 任务队列

官方文档写得挺好的,不过还是写下自己的理解,省得翻老代码还骂这啥代码,谁写的?

先不管这个文件长啥样,大概了解下原理
laravel 使用 ./artisan queue:work 来作为守护进程执行分发的任务
因为这条命令是由php来执行的,所以在php.ini中有最大执行时间,到了这个时间,不管执行的如何,它都会挂掉
即使最大执行时间足够大,但也可能因为一些不可控因素挂掉。。。
所以要配置supervisor来让它挂掉后重新起来。
把分发任务放到控制器中,然后写路由,然后编辑crontab
如果是web路由,就定期访问访问那个页面分发任务
如果是console路由,就定期执行那个命令
如果由用户控制,或基于事件,比如下面这个,用户提交链接,然后把任务加入队列
现在来写控制器

来设想一个场景,用户提交一个待抓取页面,然后用户就可以去忙别的,或者继续提交。否则,用户只能等上面这个流程走完之后才能提交下一个。这是多么浪费生命的事情?
再来看看这个任务文件

supervisor的配置安装如果有问题,就去看官方的readthedoc文档,看文档去填坑吧。。