Hot For Coding
Debian9 UFW防火墙

ufw

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

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

安装

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

sudo apt install ufw -y

...

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

# cmake --version
cmake version 3.10.1
 
CMake suite maintained and supported by Kitware (kitware.com/cmake).
@Nicholas-MBP ➜ WebAssembly 

...

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

Mac提示Insecure world writable

Mac电脑有时候会在某个命令下打印如下警告

Insecure world writable dir /Users/username in PATH, mode 040777 when running Ruby commands

这个提醒大意是你的宿主目录只有你自己能写,但往往很多时候有一些第三方程序需要往宿主目录写文件的,你可以直接改一下宿主目录的写权限就能消除这个问题

chmod go-w /Users/username

当然,这个第三方程序也很有可能是木马

...

READ ALL

ES7大招async await

JavaScript异步编写多了以后会特别不好维护,虽然也有一些第三方库专门解决这个问题,但并没有根本性解决这个问题,ES每一版都在想着怎么解决异步编写,Promise显然未能解决这个问题,于是在ES7推出了async await两个关键字,先来看一下简单的使用

let wait = () => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('wait...')
    }, 1000)
  })
}
 
(async () => {
  console.log('start...')
  console.log(await wait())
  console.log('end...')
})()
 
// Outputs:
//  start...
//  wait...
//  end...

...

READ ALL

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