Hanoi in Emacs Lisp

September 25, 2011

Just for fun.

(defun hanoi (ndisks source dest)
  (cond ((= ndisks 1)
	 (format "%d -> %d, " source dest))
	(t
	 (let ((rest-pole (rest-pole source dest))
	       (top-disks (- ndisks 1)))
	   (concat (hanoi top-disks source rest-pole)
		   (format "%d -> %d, " source dest)
		   (hanoi top-disks rest-pole dest))))))

(defun rest-pole (source dest)
  (- 6 source dest))

(hanoi 5 1 3)

PC-BSD is Great!

September 19, 2011

刚才在 Mac OS X Lion 上的 VirtualBox 里安装了一个 64bit 的 PC-BSD 8.0。(PC-BSD 是 FreeBSD 的一个发行版本。类似 Redhat 是 GNU/Linux 的一个发行版本。)感觉非常好:

  • GUI 很流畅。即时是在 VirtualBox 虚拟机里,也毫无延迟感。不像Ubuntu Linux 11,追求神妙难用慢得要死的GUI。
  • 各种应用软件版本都很新。比如Emacs是24的、GCC是4.5.2的、Firefox是6.0。
  • 桌面操作设计清晰合理。
  • 基本配置很细致。
    • 比如 Ubuntu Linux 的 terminal,如果不做点配置工作,alt-b和alt-f 是不起作用的;而 PC-BSD 的 terminal 已经为你做好这样的配置了。
    • 再比如 terminal 中的 PS 和字体也是配置得很漂亮的。不是一个简单的 # 或者 >。
  • 一完成安装,PC-BSD Software and Update程序就提醒我更新 Adobe Flash、NVidia Driver 等系统程序。
  • Mac OS X上最新潮好用的包管理器 Homebrew 也有 BSD 版本。这个到不奇怪——Mac OS X就是在Mach上跑的FreeBSD。

如果我有一台非 Apple 的机器,我最愿意安装的操作系统就是 PC-BSD 了!

安装方式大致记录如下:

  1. 从 PC-BSD 官方网站(http://www.pcbsd.org/get-it/download-pc-bsd)下载安装媒介。我下载的是 DVD 64bit。选择了一个日本的mirror,速度快。(小日本不是和谐路了吗,服务器竟然跑的比位于中国的服务器还快!)
  2. 放进光盘,启动机器,开始安装
    1. 安装程序容许你安装 PC-BSD 或者 FreeBSD。选择 PC-BSD。(FreeBSD的安装都是文本界面,如同回到了古老的 DOS 、NetWare或者96年以前的 Linux 时代。)
    2. 在分区的时候,选择“Use Whole Disk“,让安装程序替你分区。(BSD系统对分区和磁盘的命名与Windows和Linux都不同。我是懒得学一遍了。)
    3. 选择 PC-BSD 软件包的时候,记得把 port 选上。Port 是 BSD 系统中的 package manager,类似 Debian Linux 下的 apt-get 或者 Redhat Linux 的 rpm。
  3. 安装过程很简单。随后推出DVD,重启机器。
  4. 如果是在VirtualBox上安装的 PC-BSD,需要修改一下X11的配置文件,否则显示器默认800×600的分辨率。
    1. 开启一个Terminal窗口
    2. 用su命令变成管理员
    3. 用vi在/etc/X11/xorg.conf的Monitor section里增加水平和垂直刷新率:
      HorizSync 30.0 - 80.0
      VertRefresh 50.0 - 80.0

      在Screen section里增加一些分辨率:

      Modes "1152x864" "1024x768" "800x600" "640x480"
  5. 用PC-BSD的开始菜单就可以选择安装程序。Emacs是24,Firefox是6.0,GCC是4.5.2。都是崭新崭新的!

安装 Emacs 24 咯!

September 14, 2011

Emacs 24 已经可以开始使用了。它的 Mac OS X 版本支持 fullscreen mode。在 Mac OS X 下可以通过 Homebrew 来安装。方法如下:

brew update
brew install emacs --cocoa --use-git-head --HEAD
mv /usr/local/Cellar/emacs/HEAD/Emacs.app /Applications/Emacs24.app

如果要全屏,可以M-x ns-toggle-fullscreen。其中ns表示 NextSTEP,也就是 Apple Cocoa 的前身。

如果要配置半透明效果(Emacs 23也可以),可以采用 EmacsWiki 上建议的这段代码

 (eval-when-compile (require 'cl))
 (defun toggle-transparency ()
   (interactive)
   (if (/=
        (cadr (frame-parameter nil 'alpha))
        100)
       (set-frame-parameter nil 'alpha '(100 100))
     (set-frame-parameter nil 'alpha '(95 50))))
 (global-set-key (kbd "C-c t") 'toggle-transparency)

如果想用 Emacs 看 Google Maps,可以用 Julien Danjou 写的 google-maps-mode。下载方式如下:

cd ~/.emacs.d
git clone git://git.naquadah.org/google-maps.git

然后配置如下:

(add-to-list 'load-path "~/.emacs.d/google-maps")
(require 'google-maps)

下面附上我的 Mac OS X Lion 上,Emacs 24 在窗口为当前窗口和不是当前窗口时,不同的半透明效果图:


Follow

Get every new post delivered to your Inbox.

Join 28 other followers