@Lenciel

Blog with Octopress and Github pages

不知不觉,写blog好像从有电脑的人都要干的事情变成很小众的活动了。除了人到了一定年纪都会不愿意开口讲话之外,本座觉得还有个很大的原因就是:要找一个靠谱的blog服务商是非常麻烦的。岂止是是blog服务商,在天朝使用大多数web服务都很吊诡地只有两个选择:

  • 没有被墙但很糟的;
  • 很不错但被墙了的;

所以虽然知道Github可以免费host任何静态页面很久了,眼看着Octopress也日益成熟,但一直都下定决心去试:谁知道哪天Github又被墙了呢?

不过,在最近自己的职业生涯发生了不小的变化,在可预见的未来,肯定要做很多跟code有关的笔记。现在的blog系统是wordpress,虽然非常好用,但是比起markdown来说,写起code来速度就差太多了。所以今天下定决心试了一把Octopress+Github Pages,效果非常满意,特别记录一下过程,像大家做个推荐。

Jekyll&Octopress

Octopress是在Jekyll基础上进行的开发。Jekyll作为Ruby开发的静态页面blog系统,吸引本座的地方在于:

  • 静态页面:由于Jekyll生成的都是静态页面,意味着这些页面可以在任何地方被host,比如Github Pages,Google Drive甚至是Dropbox都可以作为选择(当然它们也基本是被墙的)。
  • Markdown:Jekyll的日志因为是用Markdown写的,相比传统的Blog系统如Wordpress而言,一方面在写的时候可以用你顺手的编辑器,另一方面储存和版本管理也方便得多。
  • 代码插入方便美观:Octopress对日志中嵌入代码提供了各种方便

Mac下的安装设置过程

Xcode

  • 升级Xcode
  • 启动Xcode,在Preferences里面选择下载
  • 安装"Command Line Tools"

Homebrew

1
2
3
4
5
brew update
brew outdated|xargs brew install
brew tap homebrew/dupes
brew install apple-gcc42 git
brew upgrade

rbenv

首先如果你本来是用rvm,需要删除:

1
rvm implode

然后安装rbenv以及Ruby1.9.3-p194:

1
2
3
4
5
brew install rbenv
brew install ruby-build
eval "$(rbenv init -)"
rbenv install 1.9.3-p194
rbenv global 1.9.3-p194

安装完毕之后需要在你的环境变量中做一些设置,比如本座用的是oh-my-zsh,就需要在~/.zshrc里面加上:

1
2
3
4
5
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
# required for https://github.com/imathis/octopress/issues/144
export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8

注意在环境变量设置完毕之后,最好把$PATH打出来看看,确保没有其他版本的Ruby被启用了,特别要注意/Users/***/.gem/ruby/***/bin这样的路径。

安装Octopress

首选在Github上创建一个repo来放blog,命名规则是username.github.com(比如本座的就是lenciel.github.com)。

然后在本地建立一个repo把octopress弄下来:

1
2
3
4
5
git clone git://github.com/imathis/octopress.git lenciel.github.com
cd lenciel.github.com
ruby --version # should read ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.2.0]
gem install bundler
rbenv rehash

然后部署到刚才申请的repo上面去。虽然Github Pages自己有个废柴说明页面,但是看完之后一般你是不知道如何算是部署成功的。好在Octopress已经内建了交互式的配置和部署的命令:

1
2
3
4
rake setup_github_pages
# Example repo url: git@github.com:lenciel/lenciel.github.com
rake install
rake generate && rake deploy

然后你需要调整一下.git/config文件把自己的项目设置成新的origin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  ignorecase = true
[remote "origin"]
  fetch = +refs/heads/*:refs/remotes/origin/*
  url = git@github.com:lenciel/lenciel.github.com
[remote "octopress"]
  url = git://github.com/imathis/octopress.git
  fetch = +refs/heads/*:refs/remotes/octopress/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

这样一来,你就即可以从octopress/master取到更新,又可以往origin/master去push自己最新的日志了。

使用Octopress

新建文章

1
rake new_post\["Blog with Octopress and Github Pages"\]

这里要注意使用zsh的时候,对[]要转义成\[\]不然会报错。

编辑文章

1
subl source/_posts/2013-03-10-blog-with-octopress-and-github-pages.markdown

subl是本座在mac上使用的编辑器Sublime Text 2的命令行命令,它的markdown插件Markdown EditingOmniMarkupPreview非常好用。

Markdown Editing

Markdown Editing对语法高亮,粘贴超链接,样式化,加footnote等都做了很好的支持:

Sublime with Markdown Editing

OmniMarkupPreview

OmniMarkupPreview支持Cmd+Alt+O在你指定的浏览器里面预览并且动态刷新你正在编辑的Markup文档。这样你就可以不用不停的rake preview了。

更多

走进科学

Black and White

最近波音787曝出锂电池起火燃烧的问题。全世界人民,特别是中国人民纷纷摇头叹息:以精密和严谨著称的日本人,现在终归是堕落了。奇怪的是,如果你想稍微深入一点儿去搜索日本制造的锂电池究竟出了什么问题,答案就欠奉了。于是本座花了点儿时间试图去把这事情弄明白。

人类对锂电池最初的开发是在上世纪六十年代。由于在金属中,锂元素有着最小的密度和最大的电负性,故而具有最高的比能量。但由于锂的活性非常强,所以一直都有严重的安全问题没法投产。

80年代开始出现了所谓的“摇椅式锂电池”。其正极为不同类型的含锂化合物,负极则由石墨一类的物质形成层状结构,Li+可填充于其中。在充电时,阴极部分的锂离子离开含锂化合物,透过电解液中的隔膜向阳极移动,并嵌入到阳极的层状结构中;反之在放电时,锂离子在负极脱离,移向正极并结合于正极的化合物之中。与传统锂电池不同的是,被氧化还原的物质不再是Li和Li+,锂离子只是伴随着两极材料本身发生放电而产生的氧化态的变化而反复脱嵌与嵌入,往返于两极之间,故称为“摇椅式”。

这种锂电池要求选用的电解液必须不和锂盐发生反应,并且在相当宽的温度范围内保持液态,所以合适的选择非常少。一开始,普遍使用的是碳酸丙烯酯。不过这种溶剂有很大的缺陷:它会渗透石墨烯,使得电池效率低下,安全性也随之降低。

到了90年代初,Sony的研究人员发现使用碳酸乙烯酯,问题解决了:反应中生成的粘稠的物质正好可以阻碍溶剂本身的分子渗透到石墨烯,同时又不会阻碍锂电子穿透进入石墨烯。于是锂电池正式投入大规模商用。

不过,虽然好死不死的商用了20来年,至今都没人搞明白那粘稠的物质究竟是啥,而从碳酸丙烯酯到碳酸乙烯酯这微小的结构变化为何带来这么巨大的差异。很多论文发表了,很多理论被提出了,有志于此的公司投入了大量人力财力,但似乎,用句四川话来说,“还没有摸到火门”。

本座常常听人说我们处在一个知识大爆炸的年代。但实际上,我们仅仅是处在一个获取知识很容易的时代而已(感谢Google和其他开放的Web service)。在书店里面就可以买到华丽的《时间简史》,打开电脑可以看BBT这种动不动就要来段术语或者方程式的剧,让我们感觉好像过得很”科学“,有时候就会有一种自己很聪明的幻觉。

于是可能我们看到787的新闻时也就会觉得,这帮日本人啊,电池都造不好。写下这篇blog,希望自己记住今天的这份感觉:全世界用来发这条新闻,看这条新闻,尽情评论的人,其实也不知道自己用的笔记本里面锂电池是怎么工作的。这不是什么弦理论,不是地球形成之初的疑问,不需要什么超强的抽象思维能力和高智商。每个人都可以打开电池开始研究,但就是没人知道。

因为科学其实是很枯燥又很寂寞的事情啊。