Hot For Coding
  • zsh command not found rvm-prompt

    full

    很多人都因为Oh my zsh比较个性的主题而喜欢安装它,但我在安装后只要拖拽改变命令窗口大小它总是不断打出一行错误代码

    zsh: command not found: rvm-prompt

    虽然不影响实际使用,但看着很不舒服,解决这个问题很简单,只需要把以下代码加入.zshrc文件即可

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

    ...

    READ ALL

  • 推荐一个JavaScript编码规范

    full

    Airbnb大家都知道是做家庭旅馆的,但它们家的研发团队推出了自己的编码规范,各种使用场景都几乎都列出来了,花半个小时读一读非常值得的

    • Github: https://github.com/airbnb/javascript
    • Airbnb JavaScript Style Guide: http://airbnb.io/javascript/

    大部分团队其实都会制定了自己的规范,或者使用第三方制定的规范,比如目前就比较常用的Standardjs,最方便快捷的方法就是在一个第三方规范基础上修改出符合自己团队的规范。

    ...

    READ ALL

  • 推荐一个浏览器端打zip包的插件

    full

    官方网址: http://stuk.github.io/jszip/

    这个插件使用特别简单,一个简单的例子

    // 创建一个 JSZip 实例,后续操作都需要此实例
    var zip = new JSZip();
     
    // 往Zip文件里添加文本
    // 参数1是文件名
    // 参数2 是文本内容
    zip.file("Hello.txt", "Hello World\n");
     
    // 往Zip文件里添加一个images目录, 并返回一个句柄
    // 后续如果需要往images目录里添加文件都需要使用这个句柄操作
    var img = zip.folder("images");
     
    // 往images目录添加一个图片文件
    img.file("smile.gif", imgData, {base64: true});
     
    // 导出zip文件
    // 这里导出文件用到 FileSaver.js 插件,你可以换成其它的
    zip.generateAsync({type:"blob"});
    .then(function(content) {
      // see FileSaver.js
      saveAs(content, "example.zip");
    });
    

    ...

    READ ALL

  • JavaScript浮点数bug

    之前就有看过JavaScript浮点数bug的相关文章,但没有特别关注,直到最近做一个项目,正好是涉及到浮点运算,看了好几次确认逻辑没有问题以后断点跟踪发现了传说中的浮点数bbug。

    $ node
    > 0.8 - 0.1
    0.7000000000000001
    

    这跟运行环境还没有关系,比如Chrome console下

    > 0.8 - 0.1
    0.7000000000000001
    

    但不是每个浮点书运算都会有这个bug,比如:

    $ node
    > 0.8 - 0.1
    0.7000000000000001
    > 0.9 - 0.8
    0.09999999999999998
    > 1.0 - 0.1
    0.9
    > 1.0 - 0.4
    0.6
    > 0.4 - 0.3
    0.10000000000000003
    > 0.1 + 0.1
    0.2
    > 0.5 + 0.1
    0.6
    >
    

    ...

    READ ALL

  • zsh环境变量设置

    这两天在使用环境变量的时候突然发现设置以后,只要重启终端后之前设置的环境变量会消失。最开始是在.bash_profile这个文件添加的环境变量,于是在/etc/profile也添加了环境变量但结果还是一样,只要关闭终端重启就会失效。

    这时突然想到会不会是zsh搞的鬼,因为之前安装了zsh

    full

    于是发现宿主目录下有一个.zshrc配置文件

    └─[0] <> ls -a
    .                                      .zcompdump-Jong Pro-5.2
    ..                                     .zsh-update
    .CFUserTextEncoding                    .zsh_history
    .DS_Store
    

    ...

    READ ALL

  • SecurtCRT不能保存密码的解决方法

    前段时间重新换电脑使用以后,SecurtCRT的会话需要全部重建,结果发现一个问题,即使每次勾选了保存密码这个选项

    full

    但会话断开重连还是要求输入密码,开始没有这么在意,后来总是这样有点麻烦,于是卸了N次重装还是不行,好不容易在网上找到了解决方案,在Global Options下把Use Keychain取消即可

    full

    ...

    READ ALL

  • 快速排序法 Quicksort

    Tony Hoare

    快速排序法(Quicksort)是目前排序算法里最常用的算法之一,由Tony Hoare于1959年开发,61年发布

    引用Wiki

    Quicksort (sometimes called partition-exchange sort) is an efficient sorting algorithm, serving as a systematic method for placing the elements of an array in order. Developed by Tony Hoare in 1959,[1] with his work published in 1961,[2] it is still a commonly used algorithm for sorting. When implemented well, it can be about two or three times faster than its main competitors, merge sort and heapsort.[3]

    ...

    READ ALL

  • Golang如何跨平台编译到Linux

    有时候我们在开发时会使用Win或者Mac电脑,但部署上线时可能会涉及到跨平台编译,比如在Mac上编译出Linux执行文件

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app
    

    解释以下参数

    • CGO_ENABLED=0 不需要使用CGO
    • GOOS=linux 我们要编译的目标系统
    • GOARCH=amd64 CPU架构,amd64应该是多数通用的
    • -o app 编译输出的可执行文件名称

    ...

    READ ALL

  • hex与rgb(a)互相转换

    hex与rgb都能代表颜色,使用效果上一样的,但有时需要做一些计算时就需要转化,特别是hex转rgb后做一些计算,比如颜色拾取器等等。

    hex转rgb

    function hexToRgb (hex) {
      var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
      hex = hex.replace(shorthandRegex, function (m, r, g, b) {
        return r + r + g + g + b + b;
      });
    
      var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
      return result ? 'rgb(' + [
        parseInt(result[1], 16),
        parseInt(result[2], 16),
        parseInt(result[3], 16)
      ].join(',') + ')' : hex;
    }
     
    console.log(hexToRgb('#C0F'));    // Output: rgb(204,0,255)
    console.log(hexToRgb('#CC00FF')); // Output: rgb(204,0,255)
    

    ...

    READ ALL

  • lite-server一个轻便的开发程序

    lite-server是使用NodeJS写的一款轻量WebServer程序,用于开发阶段使用

    Github: https://github.com/johnpapa/lite-server

    安装

    1、先安装NodeJS,如果没有安装请到nodejs.org下载安装最新版本 2、然后打开命令行执行

    npm install lite-server -g
    

    苹果电脑需要加sudo

    sudo npm install lite-server -g
    

    执行lite-server命令,如果能启动一个WebServer就表示安装成功

    ...

    READ ALL