Calculus

慎独则心安,主敬则身强,求仁则人悦,习劳则神钦

数据可视化 101

| Comments

在公司内做的一个分享,关于数据可视化相关的基础知识,没有涉及具体实现的部分,更多集中在表现形式这一层,感兴趣的可以看看。 接下会准备d3.js的workshop,也就是实现部分啦。

Daily Git Command Tips

| Comments

在使用版本控制系统时(无论是Git还是SVN,或者是HG),经常会遇到的一种情况是,如何撤消刚刚所做的修改,在使用Git进行管理的过程中,文件从最初修改到最终交由版本控制管理,分为三个阶段。

  • Unstaging状态: 仅仅在本地做了修改,未进行任何Git操作,文件处于 Unstaging 状态
  • Staging状态: 在进行 git add . 命令操作后,文件处于 Staging 状态
  • History状态: 在进行 git commit -m 'your comments' 命令操作后,这时文件处于 History 状态

上面的三种状态实际上均在本地发生,在 commit 后,如果确认修改,可以使用 git push ... 命令将修改实际提交到远程版本库。

在提交到远程版本库之前,我们通常会遇到有想撤消修改的情况,针对不同的状态,撤消的方式也有所不同,下面是简要的总结。

CoffeeScript 介绍

| Comments

学了一段时间CoffeeScript,觉得很好用,准备写一个系列文章来介绍它,这是第一篇,粗略的介绍一下为什么学习CoffeeScript以及CoffeeScript开发的环境搭建。

为什么我们需要学习一门“全新”的语言?

简单来说,CoffeeScript是一门不同于JavaScript,甚至“全新”的一门语言,与JavaScript有着完全不同的语法。另外,CoffeeScript与一门真正的全新语言又不同,因为采用CoffeeScript编写的源码需要被编译为JS再被解释执行,所有说本质上来说,编写运行的仍然是JavaScript程序。

如果仅仅是语法上的不同(语法糖衣:Syntax Sugar),而且也需要被编译为JavaScript(简称JS)再去执行,那有JS就够了,为什么还需要CoffeeScript(简称CS ^_^)呢?这还得从JS自身的特点来说起。

学习使用过JS的人都知道,JS是一门非常灵活、强大的语言,目前在基于Web的前端开发中占据着不可或缺的地位 。但同时,它也其不少值得诟病的地方,在业界有不少人拿两本关于JS的经典书籍(如图1所示)来形容JS好的和不好的方面。

图1

针对github的多个ssh Key管理

| Comments

Steps as following :

1. create different public keys

create different ssh keys according the article Mac Set-Up Git

$ ssh-keygen -t rsa -C "your_email@youremail.com"

for example, 2 keys created at:

~/.ssh/id_rsa_activehacker
~/.ssh/id_rsa_jexchan

then, add these two keys as following

$ ssh-add ~/.ssh/id_rsa_activehacker
$ ssh-add ~/.ssh/id_rsa_jexchan

you can delete all cached keys before

$ ssh-add -D

finally, you can check your saved keys

$ ssh-add -l

Start From Here

| Comments

2012,愚人节这天,重新开始博客记录(以前博客内容没有去备份与保留了)。

记录技术心得与体会一直也在做,不过没有以博客的形式发布出来,以前用WordPress搭建博客,一直觉得有些问题,写作的文章不能直接以纯文本保存,因此也不方便放到SVN或Git托管。另外,包括文章排版,不同语言代码高亮等等这些操作也不方便,总的来说,WordPress就不太适合程序员写作,而Octopress确实方便多了,采用Markdown语法来写,内置pygments用作语法高亮显示,而且可以直接放到Git托管,Programmer-Oriented。

Octopress建立在 Jekyll 基础之上,使用Ruby语言,因此个人感觉整个环境搭建在Mac或Linux下比较方便,没在Windows上试过,应该没问题,不过有可能会遇到一些小问题。

Octopress + Github Page 博客搭建非常简单,主要参考了文章[1][2]

基本上是默认配置,有两处小更改,一是自定义一些博客属性,包括名称、作者、默认搜索引擎等; 二是添加标签云支持,由于Octopress原生不支持标签云(Tag Cloud),这里借助了一个Octopress插件 octopress-tagcloud 来完成。

另外,需要注意的是:

为了让Octopress与github page联系起来,需要运行($为Bash命令提示符):

1
$ rake setup_github_pages

根据命令提示输入Repository的地址,例如: git@github.com:jexchan/jexchan.github.com.git

设置完成后,就可以使用如下命令生成博客内容并将其发布到github:

1
2
$ rake generate
$ rake deploy

会帮你自动生成静态站点页面并上传到对应的Github中去(origin master),但上传是仅仅包括生成后的HTML静态页面文件,而不包括文章本身的源文件,如果也想将所有源文件上传到Github,可以使用如下命令将所有源文件上传到Git Repository中的source branch中去。

1
2
3
4
$ cd your_local_octopress_directory
$ git add .
$ git commit -m 'your message'
$ git push origin source

另外,如果在rake deploy时遇到类似下面这类错误

1
ssh: connect to host github.com port 22: Connection refused

可以参考我的同事木易风 这篇帖子

编辑 ~/.ssh/config ,添加下面的内容。

1
2
3
4
Host github.com
User YourEmail
Port 443
Hostname ssh.github.com

参考资源: