Javascript作用域及变量提升

October 25th, 2016 Programming No comments

因为javascript没有块级作用域(即if, for包裹的区域)的概念,在函数和变量的定义和使用中,可能会出现令人迷惑的结果。本文就js作用域和变量提升这两个话题,做一番讲解。
PS: ES6标准引入了let关键字,用它声明的变量,具有块级作用域。并且在ES6中,花括号{}内部就是一个块级作用域。

在Javascript中,名称(变量或函数)进入作用域的基本方式有以下4种:
1. 所有作用域内,都存在 thisarguments 这两个变量
2. 给函数指定的参数,参数名会自动包含在函数的作用域内
3. 函数的声明。如 function X() {}
4. 变量的声明[……]

Read more

z-index和event bubbling

October 17th, 2016 Programming No comments

前几天调查一个前端的bug,最终结果是和z-index及event bubbling有关,正好有段时间没写博客了,就此机会将问题的分析和解决过程记录下来,顺便回顾一下这两个知识点吧!
先贴参考资料:
[1] https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context
[2] https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_[……]

Read more

几段黄牛脚本

August 21st, 2016 Programming No comments

剁手族有一个共同特点,就是爱贪便宜,看到性价比高的东西就忍不住买买买。因此最痛苦的莫过于错过了期待已久的促销活动。黄牛也是一样,不搞个自动化脚本抢货,怎么能算是合格的黄牛?前段时间抢Kimsufi独服的时候,使用了第三方的监视网站,尝到了点甜头,加之自己在其他网站也有类似的需求,因此自己写了两段脚本,实现有货时实时推送手机通知,从此站在黄牛第一线!

先给脚本地址:
https://github.com/youran/yellowbull
分别实现了get和post方式的轮询。对应的服务是Kimsufi的独服和BudgetNode的VPS,很容易改造成对应其他服务。
因为使用了ES6[……]

Read more

域名已进入Chrome HSTS Preload List

August 11th, 2016 Security No comments

大概3个月前在hstspreload.appspot.com申请加入Chrome的HSTS Preload List,大概2个月前通过申请。刚刚Chrome自动更新到了52.0.2743.116,访问chrome://net-internals/#hsts发现本域名已经顺利进入Chrome代码。这下只要浏览器够新,即使第一次访问本站,也会直接使用https方式连接,不会从HTTP 301了。

更新:已进入Chrome,Edge,Firefox,IE的preload list。这下主流浏览器都涵盖了。没想到微软的动作还是挺快的,以为要IE/Edge的大版本更新时才会更新HSTS List[……]

Read more

Centos 7下部署kvm (qemu)

August 1st, 2016 Linux No comments

上周抢到了一台Kimsufi的KS-3C特价独服,i3-2130 CPU, 8GB内存, 2TB硬盘,月付8.99欧元。性价比非常高,终于不用和其他人挤在一起啦!唯一的缺点就是无论法国还是加拿大机房,对中国的延迟都太高了,普遍300ms往上。不过实际页面打开速度还不错,加了锐速后速度更上一层楼,而且全国ping超时也不严重,所以准备长期持有做站。

不过这个配置的独服,就建几个博客太浪费,但是只有一个IP,想挂机都不给力。正好手上还有几个小内存vps,于是想到了在独服这里开几个NAT vps,然后通过那几台小内存vps上的代理挂机。这里把我创建虚拟机(vps)的过程记录下来,供大家参考。[……]

Read more

部署Let’s Encrypt证书

May 18th, 2016 Security 9 comments

距离Let’s Encrypt进入正式版已经一月有余,恰巧自己有个域名需要申请SSL证书,因此尝试了一把。网上有很多第三方的自动化工具,但是个人感觉还是官方提供的比较放心,毕竟是安全证书相关。

Let’s Encrypt的逻辑是一次配置,后面全部自动化。他们提供了一个部署工具,certbot,用于申请及更新证书。用法比较简单,去https://certbot.eff.org选择你的web server和linux distribution,就会显示对应的操作步骤。

以本人习惯的Nginx + Centos7为例,先是下载certbot后赋予可执行权限(以下命令皆以root权限运行)[……]

Read more