fengzifz.com

水则资车,旱则资舟

0%

使用过 redux 的朋友,对 dispatchbindActionCreators 都不会陌生。但两者究竟有什么区别,相信很多新手是不知道的。

先来回顾一下 redux,简单来说,redux 是用来管理 state 的一个组件,它包含三个重要的基本概念:Action,Reducer 和 Store。

Read more »

最近无意看见 NodeBB 这个论坛挺漂亮的,于是就折腾一下,自己搭建 NodeBB 玩一下。


环境

  1. 服务器环境:Ubuntu 14.04 x64

  2. NodeBB 需要的环境:

    • Node.js:v4+
    • Redis:v2.8.9+
    • MongoDB:v2.6+
    • Nginx:v1.3.13+(如果需要做反向代理才需要)

安装 Node.js

我们安装 Node.js v7 版本:

1
2
3
4
5
# Install Node.js 7.x repository
curl -sL https://deb.nodesource.com/setup_7.x | bash -

# Install Node.js and npm
apt-get install -y nodejs

期间遇到报错的话,直接 google 错误的提示即可,还是比较好解决的。

Read more »

之前新安装了一台 Ubuntu 服务器,因公司所有的上网设备都需要绑定 IP + MAC 地址,而在路由器绑定了之后,发现 Ubuntu 无法上网。于是 Google 了一番,终于搞掂,记录一下。

在路由器上面,把 Ubuntu 设定成为固定 IP 后,而 Ubuntu 还是使用 DHCP 来获取 IP,而检查后,发现其 DNS 失效了。

1
cat /etc/resolv.conf

发现里面空空如也,问题出在这里,但具体为什么,我没有细究,下面来一步步操作,如何把 Ubuntu 设置成静态 IP。

Read more »

今天在 ESXi 里面装了一台 Ubuntu,用来做邮箱服务器,安装 Ubuntu 时,添加的系统盘只有 20G,所以还需要额外添加一个硬盘专门用来装邮箱的数据。

相关环境:

  • VMware ESXi 5.5
  • 操作系统:Ubuntu 12.04.2 LTS
  • vSphere Client 5.5

1. 通过 vSphere Client 添加硬盘

注意:因我已经操作完成,所以以下截图仅作为步骤参考。

1.1 关闭虚拟机,然后编辑虚拟机设置

Read more »

Docker 在前两年的时候就已经火得很,因为它极大地简化了部署项目的流程,并且可以保证生产环境和开发环境的一致性,很多人也走上了 docker 的这条不归路。

我并不是一个 docker 的忠实粉丝,我更加主张按照企业的实际情况,来选择合适的方式来部署、维护、管理项目。

很多历史原因,公司仍在在使用 Docker,它的确好用,新建、重启 container 等都很方便。就算 container 出了问题,我们可以直接把它删掉,用对应的 image 重新建一个 container。

而在最近,发现了 docker 的一个问题,就是它的某些文件,在不知不觉间占用了硬盘,这些文件是什么呢?它可能是没用的 container、image 或者 volumn 等。

就算你很熟悉 docker,但你查看它的 container、image 或者 volumn 目录时,你看到的是:

所以,我们并不知道哪些文件是没用的。既然像我这种低端用户都遇到的问题,那么高级玩家肯定早就遇到了。那么,究竟如何删除 docker 没用的 container、image 或者 volumn 呢?

重点提醒:下面有几条命令可以删除 docker 没用的文件。拿 container 来说,它会删除状态是『exited』的 container,在使用命令之前,请确保你的『exited』的 container 是没有用的。

Read more »

今天在浏览网页时,无意看到『火影忍者动画』即将迎来终结,虽然自己很早之前就已经把漫画看完,但心里面似乎还是觉得有一点点失落,动画的终结,意味着火影忍者真的要结束了,感觉有一个陪伴了自己很久的东西不见了。

Read more »

在 Mac 下使用 tar 命令来压缩文件,当在其他平台解压后,会发现每一个文件都多了一份 ._ 开头的文件副本,例如,我们的正常文件里面是这样的:

1
2
3
html
| style.css
| test.js

在 Mac 下使用如下命令对其进行压缩:

1
tar -cvf html.tar.gz html
Read more »

这是一个奇葩的需求。

假设我们已经从 github 那里克隆了一个仓库到本机,然后我们进入这个仓库。

再假设我们在 coding.net 上面有另外一个空的仓库,我们现在要把本机这个从 github 克隆下来的仓库,也备份到 coding.net 的这个空仓库上面,具体操作是:

1
2
3
4
5
6
7
8
// 1. 进入本地仓库
cd rep_from_github

// 2. 使用 remote add 命令来添加一个远程仓库
git remote add coding git@git.coding.net:xxx/xxx.git

// 3. 直接推送
git push coding master

Enjoy it.

为什么要使用 href=”JavaScript:void(0);”?

也许你写了 5 年 JavaScript,但你从未思考过为什么要使用 JavaScript:void(0); ;也许你是在作为一个前端新人时,看见前辈都在 href= 中加入 JavaScript:void(0); ,来阻止浏览器的默认行为,然后你也跟着这样写,久而久之,成为一种习惯,但你从未思考过,为什么要这样。

其实我在写这篇文章之前,我也不知道。也许我写完这篇文章之后,我还是不知道。

下面直接 入主题…

关于 javascript:void(0);

void 的定义:

void is a prefix keyword that takes one argument and always returns undefined.

void 是 JavaScript 的一个关键字。它只接受一个参数,并总是返回 undefined

Read more »

近两三年来,一直在寻找一款自己十分满意的 markdown 编辑器。

试过很多 markdown 编辑器,但很多因为长得太丑,没来得及记得它的名字,就匆匆而去了。

两年前用过 Mou,但觉得 Mou 太过简单(刚刚看了一下,还没上稳定版…),而且那时,在 Mac 下使用发热严重,最重要的是,我需要有侧边栏来显示我写过的文档;

后来发现马克飞象,那时它只有 chrome 插件,但它漂亮的界面,能够和 Evernote 同步,使我马上就爱上它了,而且还毅然买了一年授权。但随着文档越来越多,只有侧边栏也不够了。我需要带有分类管理的 markdown 编辑器。以至于后来马克飞象的一年授权到期后,我没有续费了。然后继续苦苦寻觅其他 markdown 编辑器。

再后来遇到了 Mweb,有分类管理,当时就冲着它有分类管理,而且界面也算 ok,就直接从 App Store 上面买了。那时还没有实时 preview,每次查看都要按 command + r 来预览。但 Mweb 在后来的版本里完善了很多,所以我至今仍然在使用它。

Read more »