Clojalk SCM Visualization

最近有一个小工具非常流行(如果我没有火星的话),gource,可以将你的代码历史可视化出来。这里有reddit的代码历史,fogus也把写the joy of clojure做成了这样的视频。

凑个热闹,来看看我的clojalk项目可视化

And the video link on vimeo.

除了一名contributor,只有一个commiter。又是一幕Forever alone。
forever alone

PS:
gource上的wiki里,ffmpeg如果报错File for preset ‘slow’ not found的话,去掉ffmpeg的-vpre slow就OK了。

Visualize Reddit upvotes by subreddit

这是我reddit上所有的upvote在各个subreddit上的分布情况,这个情况还是可以说明我是个普通青年。
Reddit upvotes visualization

排在前几位的分别是

  • Programming
  • Linux
  • Python
  • f7u12
  • Clojure
  • Ubuntu

如果你还不了解什么是Reddit:Reddit是一个巨大的社会书签+论坛网站,他的频道叫做subreddit,每个频道有一个相应的主题,涵盖了从IT技术到新闻到生活的各个角落。

这些数据是通过下面的Clojure程序获得(使用reddit.clj库),并通过jfreechart展现出来的。

普通青年、二逼青年与文艺青年的Java代码缩进

普通青年

while(true) {
    if (something) {
        System.out.println(something);
        break;
    }
}

特点: tab与空格混用,无其他特点。
常见于:各类代码仓库。

二逼青年

while(true)
{


    if (something)
    {
        System.out.println(something);
        break;
    }

}

特点:总担心代码不够长
见于:各类劣质技术书籍

文艺青年

while(true)
  {
  if (something)
    {
      System.out.println(something);
      break;
    }
  }

特点:普通Java青年永远不会理解的缩进,lisp程序员会心一笑
见于:Clojure源码

Substract a vector from a matrix in Octave

假设你有一个矩阵:

A = [1,2;3,4;5,6]

以及一个矢量:

B = [2,5]

你希望对A的每一行元素对元素地减B,例如第一行

[1-2,2-5]

但你不希望用循环完成这个工作,那么你可能想到利用B创建一个和A一样维度的矩阵然后进行.-:

C = [2,5;2,5;2,5]
A .- C

在Octave中可以利用repmat这个函数获得C:

C = repmat(B, length(A), 1)

但是对于大矩阵来说这是一种对内存的浪费。

更好的方法是利用bsxfun:

bsxfun(@minus, A, B)

bsxfun在octave的文档中似乎鲜有提及。

丽水留影

这周去丽水参加大学同学的婚礼,浙江南部又是另一番不同的景色。而且这一带没有过度的旅游开发,也没有工业污染,青山绿水完完全全的原生态。要是度假真是不错的选择,何况这里还有认识的同学。

resized-DSC_0126

resized-DSC_0129

resized-DSC_0245