《Just for fun —— Linus Torvalds自传》

Talk is cheap. Show me the code.

其实这本书大概一周前就读完了,只是一直懒得总结。
技术的书看多了,偶尔看看这种轻松愉快的调剂下,蛮好的。翻译的也不错。

阅读全文 »

hadoop中的lzo和snappy

澄清一些相关概念。

Lempel-Ziv是一种编码方式(类比霍夫曼编码),特点是字典小速度快:http://zh.wikipedia.org/wiki/LZW
在这个理论的基础上实现了很多压缩算法,包括lzo/lzf/lz4/lzw/snappy等等。snappy特殊,不是lz前缀。
http://en.wikibooks.org/wiki/Data_Compression/Dictionary_compression

这里只考虑lzo和snappy,这两个用的比较广泛。
它们的共同特点是压缩比小、压缩/解压快(更注重解压速度)、不耗CPU、会占用一些内存。snappy相对更快。

阅读全文 »

为github pages绑定域名

之前为了给blog绑定域名,折腾了很长时间,记录下。

其实github pages的帮助已经说得很清楚了,有两种方式:

  1. A记录指向github pages的IP,这个IP可能会变;
  2. CNAME记录指向xxx.github.io;

在自己的repo里再加一个CNAME文件即可。注意不要和域名的CNAME记录混淆。

最初我用自己的域名foolbear.me的A记录设置,确实能成功,但要fan| qiang。。。

我以为是github的IP被qiang了,于是换成CNAME方式。
按github的文档,CNAME方式有个问题,只能绑定二级域名,就是只能绑定blog.foolbear.me,而不能直接绑定foolbear.me。我用godaddy和linode的nameserver都测试过,确实无法直接在裸域名上新建CNAME记录。

DNSPod可以。于是把域名的nameserver改成dnspod,直接新建一个@的CNAME记录指向jiangxy.github.io。
绑定确实成功了,但还是要fan| qiang。。。我这才意识到自己的域名被qiang了。。。

只有http的访问被重置,而且是关键字屏蔽。比如http://www.apple.com/foolbear.me都会直接返回链接被重置,接下来几分钟之内都无法访问apple.com。。。

我也很无奈。。。我没干啥啊。。。

好在dns还是正常的,除了http外其他访问方式还正常。

只能重新申请域名并绑定,终于成功了。

这次申请了im的域名。原来的me域名只能绑定到linode上了。

用git同步hexo文章

hexo写作有个问题就是换机器时如何同步。网上有很多文章用dropbox实现的。
相对而言我还是git更熟悉些,所以选择用git在不同机器间同步文章和配置。
而且hexo init后还自动生成了一个.gitignore,说明hexo默认也是偏向于git的。

场景:在一台全新的机器上写blog,步骤尽量简化。

阅读全文 »

只取一瓢

折腾hexo的时候,也想改改主题,自定义些样式之类的。
但是稍微google了下之后,感叹前端技术真是太tm复杂了啊。框架多如牛毛,没几天就有一个xxx.js出来。
而且没有一个统一的标准,没有谁能一统天下,angular/react/backbone/…
还有各种js模板:jade/ejs/swig/…
对我这种java开发,真是太难了。。。只会html,还在用jquery ui做界面,连“业余”都算不上。。。

还有css,真是头疼啊,为啥显示效果总是跟我想的不一样。。。
css还有各种模板语言,也没有个能统一的。

可能最近是前端技术的爆发期吧。

还有Node.js这种颠覆了前端/后端分工的逆天存在。。。

相对而言,后端技术似乎就稳定的多。看看数据库方向,mysql统治了多少年。

但最近大数据方面的框架/产品也不少。
hadoop虽然是事实上的标准,但地位也不是那么稳固。
hadoop每个版本都会加入很多新功能:yarn/HA/cache/…每个新版本都要付出学习成本。
基于yarn也实现了很多计算引擎,tez/spark/storm on yarn/hbase on yarn/…尤其spark发展非常快。
hbase的每个小版本变化都非常大,而且最近发布了1.0版本。

还有很多:sentry/azkaban/hue/hcatalog/ambari/…
还有更多都没听过的东西。

废话这么多,只是想说明,不要妄图搞明白所有的技术
技术太多,很难全部掌握,只会让自己身心俱疲。
更悲剧的是,当你掌握它之后,它可能已经过时了。技术的发展方向是很难预料的。

应该分两个方向:

  • 自底向上:夯实基础。一些基础的理论/语言是比较稳定的。比如算法、数据结构、java。
  • 自顶向下:把握大局,不要拘泥于细节。很多东西我能知道大概的原理,但我没必要深入到源码去求证。

只关注“底”和“顶”,至于中间的东西,可以挑一些重要的深入了解,比如hadoop。其他的,酌情考虑吧。

胡言乱语一番,睡觉去了。

记录下搭建hexo的一些问题

一直想找个地方写些文字,兜兜转转,还是选择了GitHub Pages
试过Jekyll,可惜ruby跟我相性实在不合,折腾了半天也没搞明白。
于是选择了Hexo。使用很简单,js也比ruby亲切些,但搭建过程中还是碰到一些问题,这里记录下。

我的环境是Win7 x64。

阅读全文 »