• 如何在Less中使用使用calc

    Less的好处不用说大家都知道,确实让写CSS的人不在痛苦了,最近我在Less里加入calc时确发现了有点问题,我在Less中这么写

    div {
      width: calc(100% - 30px);
    }
    

    结果Less把这个当成运算式去执行了,结果给我解析成这样:

    div {
      width: calc(70%);
    }
    

    于是,我把Less改写成这样:

    div {
      width : calc(~"100% - 30px");
    }
    

    解析结果正常:

    div {
      width: calc(100% - 30px);
    }
    

    ...

    READ ALL

  • strongSwan配置惨痛教训

    strongSwan

    因为喜欢Win8 METRO UI的风格,所以买了一个NOKIA手机,搭载WP8.1系统。平时用惯了iPhone的PPTP拨VPN的方式在WP8.1里居然不能使用PPTP的方式拨VPN了,WP8.1里拨VPN只支持IKEv2方式,然而Google后发现搭建IKEv2教程非常少,中文教程更是可怜的狠。

    但Linode大流量不用放着很浪费,于是终于找到一篇像样的教程后开始照着教程安装,教程是5.13版本,而最新的strongSwan已经5.20版本,喜欢新版本的我毫不犹豫就下了5.2版本开始安装。过程都很顺利,安装、生成证书、下到iPhone,Win8,NOKIA上,都能成功使用IKEv2方式拨上VPN,但都有一个问题:都打不开任何网页,Win8的网络标志直接打上一个叹号。但ssh还连接着,证明可能是DNS问题,于是我换了N组DNS,包括Google的8.8.8.8/8.8.4.4都试过了,问题还是一样。又没有任何头绪的情况下,只好暂时放弃改天再弄。往后那几天我一直认为是DNS问题,但一直情况依旧,证书从域名换到IP方式也不行,strongSwan从5.2降到5.13还是不行,真没辙了。

    ...

    READ ALL

  • requestAnimationFrame能替代setInterval吗?

    没有requestAnimationFrame之前

    先来看看传统的动画效果是怎么制作的?大多数都是使用setTimeout或者setInterval加上一个延迟时间以及每一个动作单元的大小实现每一帧的绘制效果,连贯后看起来即成了动画。如下实例:

    var $div = $("#myDiv");
     
    var loop = setInterval(function () {
      if ($div.position().left > 500) {
        clearInterval(loop);
        loop = null;
      } else {
        $div.css("left", $div.posisition().left + 5 + "px");
      }
    }, 20);
    

    ...

    READ ALL

  • NodeJS执行系统命令

    在NodeJS中执行系统命令可以使用child_process的exec函数

    const exec = require('child_process').exec;
    const child = exec('ll /webs | wc -l', (error, stdout, stderr) => {
      console.log(`stdout: ${stdout}`);
      console.log(`stderr: ${stderr}`);
      if (error !== null) {
        console.log(`exec error: ${error}`);
      }
    });
    

    ...

    READ ALL