从GNOME网站安装exaile-doubanfm-gnome-shell-extension

最近GNOME发布了期待已久的extension.gnome.org,这个网站允许你直接通过浏览器安装和管理gnome-shell扩展,有点类似app store的感觉,混乱的~/.local/share/gnome-shell/extensions/终于有了一个官方的界面。

网站开通的第一时间,我提交了exaile-doubanfm-gnome-shell-extension,经过review和修改,这个扩展也得到了进一步的完善,适配了gnome-shell 3.2的风格。

你可以从这个地址直接安装启用
https://extensions.gnome.org/extension/24/exaile-doubanfm-control/

它会在exaile douban.fm启动后显示一个菜单在gnome-shell上,你可以通过这个菜单进行基本的操作。

如果喜欢,别忘了在extension.gnome.org上vote一下 :)

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了。

Upgraded to GNOME 3.2

ArchLinux最大的魅力就在于Rolling Release,所有的悲喜剧你都比别人早一步见证。

升级到GNOME 3.2后,我的gnome-settings-daemon不能正常工作,导致gtk+的主题都无效。如果没有经验你可能不太容易注意到它的真实原因。最后找到了同病相怜的人,这个问题被报告在这里。恰好是在我发现这个问题几个小时之前。在gnome解决这个问题之前,有一个简单的workaround:
sudo mv /usr/lib/gnome-settings-daemon-3.0/libcolor.so /usr/lib/gnome-settings-daemon-3.0/libcolor.so~

库加载失败后gnome-settings-daemon会自动禁用这个插件,避免出现Segmentation fault。以上的操作,at your own risk。

此外,gnome-shell升级到3.2以后有些api的变化,我更新了exaile豆瓣电台的gnome-shell插件,你可以顺手git pull一下。
Screenshot at 2011-10-02 17:48:51

Moving to ArchLinux

DSC_0004
这是用新入的Nikon 55-300mm的长焦镜头300端排的远处的塔吊,它与本文没有直接关系。如果实在要计算间接关系,它是我等待fedora无尽的启动时间里消磨时光的手段之一。

这周开始fedora彻底崩溃了,现在在默认的run-level下NetworkManager根本无法启动,次次3分钟超时。还由于不明的原因,以越来越大的概率,gdm会僵死在启动启动之前。如果切换到terminal,输入完用户名居然连password都不会prompt出来。有时甚至在runlevel3里都无法启动。本想忍下去等到下个月f16发布,但是今天晚上已经彻底无法进入系统了,算了,其实也就是挥挥刀的事情。

Ubuntu的回头路是走不得的,索性切换到了Arch,从此享受rolling release,不再在每年的4月10月里蠢蠢欲动惊慌失措。重装的经验和上次一样:看准分区,/home留着/干掉;在创建用户的时候看准原先用户的uid,直接用这个id创建新用户,这样$HOME自动就归属新用户了。Arch仓库里的东西甚至要比fedora还多,没有那么多洁癖,甚至Skype和IDEA的社区版都直接进了仓库。我现在年纪大了,能从仓库安装我是不会自己再去下载了。

其实Arch也是老朋友了,直不过以前一直把它憋在VirtualBox里,现在它从VBox里爬出来了,Ubuntu和Windows这些当年的host们被踹进去乖乖作guest了,翻身农奴这就起来把歌唱。

Beginning Emacs for Clojure

没错我开始用Emacs了!对于一个使用lisp方言的开发的人来说,Emacs无疑是正统,是professional的象征。

Screenshot--home-sun-projects-clojalk-src-clojalk-wal.clj

其实用Emacs,远不需要太多的配置,就可以创建一个高效率的开发环境。我用了两天不到时间,当然还包括过去三年甚至更长时间里多次试图学习Emacs并最终半途而废残存的精力。

一步一步来,fedora系统的用户,比如这位,还有我,都会奇怪,命名有emacs,可是为什么没有GUI呢。因为系统自带的只是一个简单的版本,用yum安装一下emacs这个包才算是真正完整。

接下来要跳关了,大家注意。Emacs-starter-kit是一个帮助初学者预先配置emacs的一套默认配置文件,有了这个配置文件,也算是爬上了巨人的肩膀,省去了很多探路的时间。安装方式,把这个git仓库的master分支打包下载到~/.emacs.d/里即可(展开到这个目录)。启动emacs后,会自动安装。(作者名字很熟悉,对了,就是leiningen的作者)

由于package.el已经配置好了,接下来就可以安装一些必要的mode,两天的时间初探,我安装了:

  • clojure-mode
  • clojurescript-mode
  • auto-complete
  • color-theme-tangotango
  • slime
  • slime-repl

安装方式:
M-x package-install
输入包名即可。

clojure-mode和clojurescript-mode是编辑clojure的mode,不多说。

配色

color-theme我本来是习惯用solarized,不过尝试了几次color-theme-solarized这个包应该是有一些问题。退而选择了tangotango。要默认选择这个颜色,在init.el里加:

(require 'color-theme-tangotango)
(color-theme-tangotango)

代码提示

auto-complete是代码提示和自动补全插件,安装完成后要简单配置一下才能使用:

(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-1.4.20110207/dict/")
(ac-config-default)

当然网上有更多的高级配置,可以搜一下。

REPL

clojure的IDE必须要有repl的支持,在emacs中,repl通过slime这个mode来实现。此外还要额外安装swank:
lein plugin install swank-clojure 1.3.2
在项目目录通过lein swank启动。在emacs中:
M-x slime-connect
选择swank启动的host和port即可。这是一个支持tab提示的强大REPL,并且可以引用lein项目中的代码。

Edit/20110920
其实只需要在clojure-mode中通过M-x clojure-jack-in 即可启动swank和slime。

ParEdit

ParEdit是编辑括号的利器,Emacs-Starter-Kit已经把这个包配置好了。ParEdit不仅会自动打印括号,最强大的是还能阻止用户误删或误输入括号!有了它基本上括号的问题就轻松多了。
(当然,有时候需要强制删掉括号C-u DEL,也可能要强制输入括号C-q (C-q )

TagList

很遗憾ctags不支持clojure,而且emacs似乎也没有一个比较好的TagList。我看到有人提到imenu在一定程度上倒是可以做到类似的功能:
M-x imenu

总得来说,捅破了窗户纸,用emacs编辑clojure还是最好的选择!