Install

Install git
Install nodes
Install Hexo
$ npm install -g hexo-cli

Hexo

Create blog
Mkdir blog
cd blog
Run init: hexo init
 
Generate static blog files: hexo generate
Test and Debug local: hexo server
And then browse: http://localhost:4000

Add a new blog post: hexo new "Hello Hexo”

Or generate through github repository

1
2
3
4
5
6
7
8
9
10
11
cd .. && git clone https://github.com/taylortao/MyBlogRawMarkDownFile.git

cd blog/source
ln -sf ../../MyBlogRawMarkDownFile/about about
rm -rf _posts && ln -sf ../../MyBlogRawMarkDownFile/_posts _posts
ln -sf ../MyBlogRawMarkDownFile/hexoConfig/_config.yml _config.yml

// install jacman theme
git clone https://github.com/wuchong/jacman.git themes/jacman
cd themes/jacman && ln -sf ../../../MyBlogRawMarkDownFile/jacmanConfig/_config.yml _config.yml

 
Support feed and sitemap
$ npm install hexo-generator-feed --save
$ npm install hexo-generator-sitemap --save

Set deploy destination to GitHub

Read More

给定一个有序(不降序)数组arr。

1、求任意一个i使得arr[i]等于val,不存在则返回-1

2、求最小的i使得arr[i]等于val,不存在则返回-1

3、求最大的i使得arr[i]等于val,不存在则返回-1

4、求最大的i使得arr[i]小于val,不存在则返回-1

5、求最小的i使得arr[i]大于val,不存在则返回-1

Read More

前些日子做了个小项目,特别想知道自己编了多少的代码量,我就想弄个小程序统计一下代码行,想起曾经统计代码行用的方法是全部导入到Eclipse项目中,然后用正则表达式匹配。eclipse -> search -> file -> 勾选regular expression后,使用的正则表达式如下:

1
2
3
4
所有行  
\n 或者 .*\n
除去空白行
^.*\S.*$

But~~~我现在重装系统了,没有eclipse了,做的项目也无法导入eclipse的,于是,我呼唤更通用的办法。就是编写一个小程序,而统计代码行涉及的工作确实很多,包括:

文件树遍历
字符串操作(去掉无需统计的第三方库,图片文件等)
文件行数的统计

用C或者C++都比较麻烦,于是我就各种学习,查资料,弄了小菜鸟的第一个python程序。安装步骤省略(各种下一步),然后配置环境变量中的Path值,加入安装Python的根目录,比如:C:\Python32。在cmd中输入python出现版本号信息,则证明安装成功了。

(以下基于Python版本3.2.3)

首先,离不开一个os.walk函数的帮忙,分析一下os.walk函数的用法

Read More

这个简单的Java程序竟然有问题,如果我们输入的是中文,程序不会正常输出。

1
2
3
4
5
6
7
8
import java.util.Scanner;  
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
System.out.println("你输入了 = "+ s);
}
}
1
2
3
4
5
结果:  
run:
// 用户输入
你输入了 = ��
成功生成(总时间:7 秒)

Read More

Cache和Buffer之间的区别

*** Buffer,缓冲 ***。主要是为了提高内存和硬盘(或者其他I/O设备)之间的数据交换速度设计的。主要目的是为了是数据的写入速度更快。Buffer的设计主要是为了更高效的写入磁盘数据。把分散的写入操作先存在缓冲区内,而后集中进行,这样可以减少磁盘碎片和硬盘的反复寻道时间,提高系统的性能,同时保护硬盘。在Linux系统中,有一个守护进程定期清空缓冲内容,也就是写入磁盘。也可以通过sync命令手动清空缓冲区。同时,卸载磁盘设备时会清空缓冲,所以有时候卸载设备时候要等上一小会。

*** Cache,缓存 ***。主要是为了提高CPU和内存之间的数据交换速度设计的。主要是为了数据的读取速度更快。为了进一步提高速度,设计了一级缓存,二级缓存,三级缓存。由于内存的读取速度远远跟不上CPU的处理速度,同时根据程序运行的局部性原理,CPU执行的指令和访问的数据往往集中在内存的某一块,如果把这部分内容放入Cache中,就能提高CPU的访问速度。

Read More