Summer Space, Summer Mind

open your mind

主页改版

有阵子没有更新博客了。最近学习已经告一段落,再过一阵子就要接着回到深圳去实习。闲来无事,或者说是蓄谋已久,最近忙活着做了些很想做的事情。

各位如果最近有访问我的站点,肯定会发现这里有了很大的变化。

  • 新首页上线啦!
  • 博客被移到了blog.marchtea.com
  • 博客换了新的模板,更适合阅读
  • 博客访问速度嗖嗖的变快了~

新的首页

Continue reading

leveldb接口概览

接下来将介绍leveldb头文件中的接口.leveldb在源文件中提供了文档,只不过文档描述的很简略,而同时,其头文件的注释十分的详细,已经能完成称得上一份很好的文档了.所以就来看一下leveldb为我们提供了什么.

leveldb为开源项目,可以在其主页leveldb下载.

头文件结构

解压下载的代码,可以查看其include中的头文件.

Continue reading

leveldb学习记录

  • 关于leveldb
  • 性能对比
  • 安装
  • 使用
  • 性能调整

关于leveldb

leveldb是google开发的一套用于持久化数据的高性能类库。其特性有:

  • key-value方式存取
  • key-value都是二进制数据流
  • 数据以key排序存储
  • 操作简单: Get,Put,Delete,同时支持原子操作.
  • 支持快照(snapshot),读不受写的影响.
  • 自动压缩
  • 高性能

需要注意的是,不同于redis或者mangodb,LevelDB并不是NoSQL.其不支持sql语句,也不支持索引. 此外,只有单进程能访问数据库.另外,leveldb并不是一种服务,用户需要自行实现server.

根据上面的描述,LevelDB还是有很多限制.但是关键在于相比于sqlite等其他数据库,其具有非常高的写性能的同时,也保持了不错的读性能(参考下面的性能对比表). 在一些需要持久化key-value数据的场景下具有应用价值.这也弥补了memcached不能持久化的劣势.

Continue reading

为程序添加一个优雅的command line interface

为程序编写command line interface总是一件麻烦的事,尤其是程序支持多个参数,参数之间还有关系的时候,就更为棘手了。当我在编写 mdtogh 这个工具时就遇到这个问题。

好在,python的优点之一就是第三方的模块特别多,而今天就要介绍用来解决这个问题的强大模块:

不是python用户?别急,docopt也port到其他语言上了,在文章最后有所介绍。先把介绍看完吧。

Continue reading

Scrapy中文文档翻译计划

前阵子忙着为The Art Of Programming By July编写生成html的工具,最后写出了个半成品,还有些功能欠缺,但是至少生成的结果不错了。各位有兴趣可以赏眼一看:

在完成了生成工具,并且有所效果了以后,这个小项目也算是告一段落。虽然还有不完善的地方,就只能过一阵子再去维护了。 相应地生成效果可以查看

最近在了解python爬虫的时候,偶然得知了scrapy这个很成熟的python爬虫库。在阅读文档时发现其文档之全,着实惊讶。通过阅读文档,真的可以说是从“入门到精通”了。文档的语言写得也很简洁,英语基础较好的朋友阅读起来问题也不是很大。

不过再怎么说,阅读英文文档的速度实在是和中文文档没法比。在阅读了一阵,突然想到:

为什么不把这个文档翻译成中文呢?

于是上网搜索一番,还真的发现没有人来翻译。有些朋友仅仅翻译了入门的一两篇文章就没有下文了,着实可惜。于是,就下定决定,把这个坑开起来了。

Continue reading

YouCompleteMe安装遇到的问题及解决办法

YouCompleteMe是一款很强大的vim补全插件.可以说,这是目前在vim平台上最准确,并且能达到IDE级别补全工具.具体的介绍以及安装过程可以参考我写的另外一篇文章.

不过,不同于大部分vim插件,安装过程仅仅是将代码解压到~/.vim,YouCompleteMe是一款编译型插件,其需要通过编译才能发挥其功能,与此带来的就是各种莫名其妙的编译,运行错误.下面就是我所安装时遇到的问题汇总,希望能帮到正在为此苦恼的朋友们.

Continue reading

« Older posts