2016年3月6日星期日

Markdown

Markdown作为流行的标记语言,已经火的一塌糊涂了,你只顾写你的,反正标记就那些,然后剩下的交给转化软件和CSS去格式化吧……
GitHub上的READMD.md足以证明它火的程度。

The key design goal is readability 
Markdown理念:

  1. 简单写、容易读
  2. 字符化
  3. 极简主义

Markdown原理:

  1. 标记语言——by Author(人)
  2. 转换程序——by Markdown Program(各种Markdown程序)
  3. 最终呈现——by Viewer Program for Humers(HTML/pdf/txt/RTF)

Markdown展示:(by Ulysses)



不同的Markdown系统Markdown标记也有所区别,不过都大同小异,找一个适合自己的即可。

Markdown收益:

其实HTML也是标记语言有木有,不过因为它被掺杂了太多的样式、脚本,显得不太纯粹了,而且是基于xml的语言,天生冗余就会比较多,如果你打算在写文章的时候自行html,那你不仅要学习html还要花时间在每一次敲击标记这件事上。
Markdown则简单地多,它尽量只表达最简洁的那些样式,剩下的事情,交给程序去做吧。
所以当你开始写它的时候,请不要回忆那些生成的效果,标题就是一个#,段落就是两个##,请不要像我一样,把两个星号表达为**粗体**,而应该叫它为强调,至于你用粗体来表达还是用斜体来表达强调这件事,都是后面的事情了。

Markdown与可视化编辑:

有了上一节的铺垫这一节就容易多了,Markdown强调的是事情本身,作者认为重要的内容,就打上**标记,中国的读者,喜欢用粗体表达重要,美国的读者可能喜欢用斜体表达重要,没关系,作者不用为不同的用户写两遍。
而可视化编辑器,不论是在线编辑器还是Microsoft Word在你看到它的杰作之时它就已经定型了。

但是,就单纯从方便的角度,则是仁者见仁的,毕竟我们还是喜欢直观的东西,但这丝毫不影响Markdown成为一种选择。

Markdown延伸玩法:



在此引入两篇文章:

  1. 一篇导引文章,简要讲述了一些简单的标记:http://markdowntutorial.com
  2. 一篇非常好的文章,不仅讲了Markdown的来龙去脉,还说清楚了它的工作原理:http://lifehacker.com/5943320/what-is-markdown-and-why-is-it-better-for-my-to-do-lists-and-notes
引用文章里面的一个Web Markdown系统,供大家练习:http://hashify.me/




2016年3月4日星期五

如何编译MongoDB?

本文将在Linux环境下编译Mongodb。
您可以选择已经编译好的版本直接使用,也可以尝试自己编译。https://www.mongodb.org/downloads#production


动手开始:

1、Linux,本文选择Ubuntu 14.04 LTS 64bit,下载地址:

2、包依赖:编译器 gcc g++ clang 安装方式:

# sudo apt-get install gcc (4.8.2以上版本)
# sudo apt-get install g++ (4.8.2以上版本)
# sudo apt-get install clang(3.4以上版本)

3、包依赖:python (2.7以上版本) 安装方式:

# sudo apt-get install python

4、包依赖:scons (2.3以上版本) 安装方式:

# sudo apt-get install scons
5、包依赖

# sudo apt-get install aptitude
# aptitude install scons build-essential
# aptitude install libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev

6、源代码:从GitHub上面下载:https://github.com/mongodb/mongo 直接选择一个分支,右侧Download Zip,解压缩到目录:

# mkdir mongodb-master-src
# unzip mongodb-master.zip mongodb-master-src/
# cd mongodb-master-src/

7、新建一个 version.json 文件在 mongodb-master-src/ 目录下:在大部分能搜索到的文档中,大家都是直接下载好后就编译,但是会报一个scons错误,原因就是因为缺少这个文件。

# gedit version.json
然后输入以下内容后保存: 
{
    "version": "0.0.1-fake-"
}

8、编译源代码:
# sudo scons all -j 4
这里-j 4 是指你所使用的CPU核数。也可以直接:
# sudo scons all  
或者仅
# sudo scons mongod
# sudo scons mongo
# sudo scons mongos

9、编译后验证,执行下面语句,你将看到版本提示信息。

# ./mongod --version

10、编译后配置,新建相关目录及配置文件
# mkdir mongodb_sample
# cd  mongodb_sample/
# mkdir bin
# mkdir data
# mkdir log
# mkdir conf
# cd conf
# gedit mongod.conf
在打开的端口内输入:
port = 12345
dbpath = data
logpath = log/mongod.log
fork = true  
其中:port代表访问该数据库的端口号,fork表示是一个后台进程。

11、复制编译好的文件到bin目录
# cp ../mongod mongodb_sample/bin/

12、启动mongod:
# cd mongodb_sample/bin/
# ./mongod -f conf/mongod.conf
13、检查log和data目录将看到文件夹内有新的文件。
14、停止mongod,这里因为没有连接到mongod服务器,所以直接使用kill的方式进行关闭,关闭的时候,不使用kill -9,可以使用kill -15:

先查找进程ID:
# ps -A | grep mongod
然后
# kill 32759
关于kill命令后面的参数,详见:https://en.wikipedia.org/wiki/Unix_signal#SIGTERM