@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###

brew update
brew outdated|xargs brew install
brew tap homebrew/dupes
brew install apple-gcc42 git
brew upgrade

###rbenv###

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

rvm implode

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

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里面加上:

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 弄下来:

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 已经内建了交互式的配置和部署的命令:

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

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

[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

###新建文章###

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

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

###编辑文章###

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 等都做了很好的支持:

Don't touch me

####OmniMarkupPreview####

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

###更多###

走进科学

Don't touch me

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

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

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

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

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

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

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

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

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