• vim粘贴代码缩进问题

    vim

    原因

    很长时间以来,我以vim做为我的主要编辑器在Linux下写程序,但vim设置了smartindent之后通过终端SecureCRT连接Linux使用vim时每次粘贴代码缩进都会出现下一行代码的起始位置在上一行代码的末尾处,依此类推,你粘贴的行数越多,就越明显,如:

    源片段:

    resources:
      limits:
        memory: 4096Mi
        cpu: 300m
      requests:
        memory: 128Mi
        cpu: 100m
    

    ...

    READ ALL

  • NodeJS请求431 Request Header Fields Too Large 错误

    nodejs

    公司使用verdaccio-gitlab搭建了私有的NPM Registry,并使用Gitlab服务做授权,一直运行稳定。

    直到最近升级了NodeJS版本之后,陆续发现有一些问题:

    • 固定一部分用户在请求packages接口时总是400错误
    • 部分用户不受影响

    从问题上分析,大概判断是跟用户数据相关引发的错误,但verdaccio-gitlab这个包只给出了400错误,很不好确定具体错误。于是直接在测试环境启动了一个Verdaccio然后发现其实有问题的那一部分用户状态码其实是431 Request Header Fields Too Large,意思就是请求头太大。

    ...

    READ ALL

  • 修复Docker错误 no space left on device

    docker

    我使用的是Mac电脑,我习惯在我电脑上Build镜像之后在推送到私有Registry。

    然而,今天我正要构建一个镜像时出现了错误

    no space left on device

    提示空间不够了。Docker使用分层存储技术很大程度上避免了空间浪费,但日积月累的也会有爆满的时候,就像垃圾桶一样,堆满了自然无法容纳更多的垃圾。Mac上安装了Docker程序之后默认占用磁盘空间为64GB,所以要解决空间不够的问题可以从两方面下手

    ...

    READ ALL

  • Debian9 UFW防火墙

    ufw

    之前一直都在使用iptables好多年,因为它是系统基础的一部分,很多Linux发行版本都适用它。可每次需要添加端口删除端口的时候都需要重新查询手册,虽然功能很强大,但太复杂了。

    今天我们要介绍的是一款非常简单容易上手的防火墙UFW,英文名: Uncomplicated Firewall,中文名应该叫简单防火墙。它其实底层还是使用了iptables,它基于iptables封装了一些非常日常易用的命令。

    安装

    使用Debian自带的包管理工具apt就可以安装

    ...

    READ ALL

  • 一切从简 - 新改版

    废了很多精力终于改版结束,上一次Python改版至今已有六年,本次改版有很多想法都是基于这些年的对个人博客系统的逐渐深入认识,最后得出本次改版的目的一切从简

    无数据库

    之前一直使用关系型数据库MySQL做为数据存储引擎,由于个人文章数量不太多所以没有遇到性能瓶颈问题,虽然在设计表的时候做了很多查询优化。使用数据库会有以下几个问题:

    • 在线编辑器: 通常需要搭建一个HTML在线编辑工具编写内容,然后通过程序往数据库读写,但这种在线编辑器经常在贴代码的时候不太好处理,浏览器的性能还是有限的,页面卡死崩溃内容丢失就有发生过
    • 需要部署: 虽然现在部署一个MySQL有很多方式可以非常容易做到,但我认为能不用就不用
    • 更好维护: 不用担心数据库挂了影响使用,也不需要总是关心MySQL日志异常或者慢查询

    ...

    READ ALL

  • WebAssembly简单试用例子

    webassembly

    WebAssembly自从提出,就一直被火热关注,前端性能至少有了一个解决方案,我们试着写一个小例子。

    安装环境

    以Mac系统为例子

    • 安装cmake brew install cmake
    • 安装Python 2.7.X brew install python2
    • 安装GCC (Mac自带)
    • 安装Git (Mac自带)

    校验环境

    确认git, pythoncmake命令可以用

    cmake

    ...

    READ ALL

  • Vue如何直接调用Component里的方法

    有时候,我们需要在另一个A Component里直接调用B Component里的方法,但Vue的Component和我们平常写的JavaScript module不一样,不能简单的通过import后就直接调用,下面是我找到的一种方法,目前测试可用

    AComponent.vue

    <template>
      <div>
        <b-component ref="BComponent"></b-component>
      </div>
    </template>
     
    <script>
    import BComponent from './BComponent'
     
    export default {
      name: 'A',
     
      data () {
      },
     
      components: {
        BComponent
      },
     
      methods: {
        callACompoentFunction () {
          this.$refs.BComponent.sayHi()
        }
      }
    }
    </script>
     
    <style scoped>
    </style>
    

    ...

    READ ALL

  • bz2解压失败

    解压bz2压缩包时提示错误:

    [root@test01 e2e]# tar -jxf test.tar.bz2 
    tar (child): bzip2: Cannot exec: No such file or directory
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    

    看错误就知道bzip2系统不支持,安装所需的处理包,如CentOS下执行

    ...

    READ ALL

  • 快速查看Linux是32位还是64位

    要快速查看Linux操作系统是32还是64位, 可以快速通过几个命令来判断

    使用arch命令

    [root@test01 Home]# arch
    x86_64
    

    使用uname命令

    [root@test01 Home]# uname -a
    Linux test01 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    

    也可以这样

    [root@test01 Home]# uname -m
    x86_64
    

    ...

    READ ALL

  • Cannot connect to the Docker daemon

    运行容器时遇到一个错误

    # docker run -p 127.0.0.1:6379:6379 --name some-redis -d redis
    docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
    See 'docker run --help'.
    

    这是因为Docker后台服务没有运行,我使用的时Mac电脑,所以找到Docker程序启动就好。如果你时Linux上运行提示这个可以这么启动容器服务

    ...

    READ ALL