<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3327117711688354050</id><updated>2011-06-06T11:03:51.513+08:00</updated><category term='ruby'/><category term='linux'/><category term='mmm'/><category term='tramp'/><category term='gossip'/><category term='emacs'/><category term='python'/><category term='dev'/><category term='lex'/><category term='music'/><category term='lexical'/><category term='lisp'/><category term='elisp'/><category term='classical'/><category term='google'/><title type='text'>Baroque Pub</title><subtitle type='html'>喜假寐者智</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-3967626075745789355</id><published>2007-06-06T10:18:00.000+08:00</published><updated>2007-06-06T20:07:12.362+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='lexical'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='lex'/><title type='text'>用了一下PLY(Python Lex Yacc)</title><content type='html'>这次是做一个Pascal的词法分析的实验作业，题目要求比较简单，自己做的时候也比较偷懒，保留字都没写全，这个东西写多了其实挺费体力的。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dabeaz.com/ply/"&gt;PLY(python-lex-yacc)&lt;/a&gt;框架还是很好用的。&lt;br /&gt;&lt;br /&gt;一开始打算用ruby写，好不容易弄懂了&lt;a href="http://raa.ruby-lang.org/project/ruby-lex/"&gt;ruby-lex&lt;/a&gt;的使用，可是却由于生成的ruby代码不完全，不能解释通过。&lt;br /&gt;由于ruby-lex的机制是调用了本地lex操作命令，生成中间c代码，所以或许问题出我的本地&lt;br /&gt;flex上，或许也是项目本身的问题吧。&lt;br /&gt;介于ruby-lex项目已经多年没有人维护了，所以就没一直折腾下去了。&lt;br /&gt;&lt;br /&gt;然后想到x8x的&lt;a href="http://rubyforge.org/projects/aurum/"&gt;Aurum&lt;/a&gt;，Aurum is a LALR(n) parser generator written in Ruby.&lt;br /&gt;作为parser当然也包括lexical的分析过程。但下午写的时候x8x不在线，又没有文档，对比example，遇到问题还是甚多，故放弃了。&lt;br /&gt;不过用DSL写出的正规和EBNF着实漂亮。&lt;br /&gt;例如:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;_terminals (string(';') | string("\n")).one_or_more&lt;br /&gt;argument argument, '+', argument {argument.s_exp = [:call, argument1.s_exp, :+,&lt;br /&gt;[:array, argument2.s_exp]]}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;接着想到linux chen以前的建议，说lisp做lexical analyzer挺方便。决定用lisp写，找到cl-lexer框架，可怜没有文档，例子都通过不。&lt;br /&gt;&lt;br /&gt;就如此折腾了很久。&lt;br /&gt;&lt;br /&gt;最后觉得还是用python的lexical analyzer写了，python在complier领域的支持比ruby要丰富很&lt;br /&gt;多，很快找到了全面的文档和例子，于是一小会而就搞定了。&lt;br /&gt;&lt;br /&gt;经过此次后感觉ruby社区里大都是web,DSL的项目，而python的社区覆盖领域相对更丰富些&lt;br /&gt;。&lt;br /&gt;&lt;br /&gt;附源码&lt;br /&gt;&lt;a href="http://four.fsphost.com/gabriel/code/pascal_lexer.html"&gt;pascal_ply.py&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;测试数据data&lt;br /&gt;&lt;code&gt;&lt;br /&gt;VAR x , y : INT ;&lt;br /&gt;BEGIN&lt;br /&gt;PROCEDURE main ( );&lt;br /&gt;BEGIN&lt;br /&gt;             a := 10 ;&lt;br /&gt;             b := a + 20 ;&lt;br /&gt;END&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-3967626075745789355?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/3967626075745789355/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=3967626075745789355' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3967626075745789355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3967626075745789355'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/06/plypython-lex-yacc.html' title='用了一下PLY(Python Lex Yacc)'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-8702661841362155883</id><published>2007-04-27T21:44:00.000+08:00</published><updated>2007-04-28T21:45:23.391+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='elisp'/><category scheme='http://www.blogger.com/atom/ns#' term='mmm'/><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tramp'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs下安装elisp包的常用方法</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;小&lt;/span&gt;&lt;br /&gt;比较小型的elisp文件，一般可以直接下载到.el文件，放到你的elisp文件目录。&lt;br /&gt;然后修改.emacs文件&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;;;把引号内的替换成你的.el文件所在目录就可以了，所有目录下的.el和.elc文件都在require范围之内。&lt;/span&gt;&lt;br /&gt;(add-to-list 'load-path "~/.elisp/enable-lisp/")&lt;/blockquote&gt;&lt;br /&gt;接着&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;;;把'后的替换成你的.el文件&lt;/span&gt;&lt;br /&gt;(require 'php-mode)&lt;/blockquote&gt;&lt;br /&gt;这样就基本设置好了，大部分功能都会加载了。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;大&lt;/span&gt;&lt;br /&gt;对于大型的elisp包，你下载到的一般是一个压缩包，比如.tar.gz或者.zip。&lt;br /&gt;1.先解压&lt;br /&gt;2.编译&lt;br /&gt;&lt;a href="http://java-sun.blogspot.com/2007/04/emacs23tramp219.html"&gt;前几天配过一个tramp&lt;/a&gt;。最近装多了以后，发现方法都大同小异。&lt;br /&gt;&lt;blockquote&gt;$./configure --with-contrib --with-emacs&lt;br /&gt;$make&lt;br /&gt;$make DESTDIR=/tmp install&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;然后把目标被编译到了/tmp，一般有两个文件夹，一个是site-lisp，另一个是texi或者叫info。&lt;br /&gt;3.加载&lt;br /&gt;site-lisp的加载方法还是采用上面提到的&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;;;把引号内的替换成你的.el文件所在目录就可以了，所有目录下的.el和.elc文件都在require范围之内。&lt;/span&gt;&lt;br /&gt;(add-to-list 'load-path "~/.elisp/tramp/lisp")&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;texi的加载方法（其实texi的加载不是必要的，他主要是一些帮助文件)&lt;br /&gt;&lt;blockquote&gt;(add-to-list 'Info-default-directory-list "~/.elisp/tramp/texi/")&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;然后require就好了。&lt;br /&gt;最后推荐&lt;br /&gt;&lt;blockquote&gt;$make clean&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-8702661841362155883?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/8702661841362155883/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=8702661841362155883' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/8702661841362155883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/8702661841362155883'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/emacselisp.html' title='Emacs下安装elisp包的常用方法'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-3230823033264802422</id><published>2007-04-26T16:01:00.001+08:00</published><updated>2007-04-28T17:34:23.139+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tramp'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Emacs23下安装Tramp2.1.9的注意</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;blockquote&gt;TRAMP 代表"Transparent Remote (file) Access, Multiple Protocol"，他是 Emacs 的一个用于远程文件编辑的扩展包。&lt;br /&gt;&lt;/blockquote&gt;网上很多安装使用方法都比较旧了，弄的我折腾了好久。（又是折腾，我这些天都被折腾死了）&lt;br /&gt;&lt;big&gt;&lt;b&gt;1.下载&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;一定要去&lt;a href="http://ftp.gnu.org/gnu/tramp/"&gt;GNU的FTP&lt;/a&gt;下载，sourceforge上也有一个，但是连版本号都没有。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;big&gt;2.编译&lt;/big&gt;&lt;/b&gt;&lt;br /&gt;首先设置选项&lt;br /&gt;&lt;blockquote&gt;./configure --with-contrib --with-emacs&lt;br /&gt;&lt;/blockquote&gt;如果是编译到/usr/share/emacs/site-lisp目录下就用这句&lt;br /&gt;&lt;blockquote&gt;./configure --prefix=/usr&lt;br /&gt;&lt;/blockquote&gt;如果是想放到自己的目就要用其他的参数了，贴我的例子&lt;br /&gt;&lt;blockquote&gt;./configure --with-lispdir=$HOME/.elisp/tramp/lisp --infodir=$HOME/.elisp/tramp/texi&lt;/blockquote&gt;设置好了，编译吧&lt;br /&gt;&lt;blockquote&gt;make install&lt;/blockquote&gt;（其实也可以用&lt;i&gt;make DESTDIR=/tmp install&lt;/i&gt;来安装到临时目录，然后把lisp和info的文件拷贝到自己常用的相应目录）&lt;br /&gt;&lt;big&gt;&lt;b&gt;3.配置&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;直接贴我的配置文件吧，大家看着改吧。&lt;br /&gt;&lt;blockquote&gt;;;Tramp&lt;br /&gt;;;tramp elisp文件的所在目录&lt;br /&gt;(add-to-list 'load-path "~/.elisp/tramp/lisp/")&lt;br /&gt;;;tramp info文件的所在目录&lt;br /&gt;(add-to-list 'Info-default-directory-list "~/.elisp/tramp/texi/")&lt;br /&gt;;;指定默认方法，很多人喜欢用scp，我比较偏爱ssh。&lt;br /&gt;(setq tramp-default-method "ssh")&lt;br /&gt;;;指定默认用户&lt;br /&gt;;;指定默认主机&lt;br /&gt;(setq tramp-default-user "gabriel"      tramp-default-host "202.117.7.222")&lt;br /&gt;(setq tramp-auto-save-directory "~/tmp/emacs/tramp/")&lt;br /&gt;(setq auto-save-file-name-transforms&lt;br /&gt;  '(("\\`/[^/]*:\\(.+/\\)*\\(.*\\)" "~/tmp/emacs/tramp/\\2")))&lt;br /&gt;;;注意最好设置到500以下&lt;br /&gt;(setq tramp-chunksize 328)&lt;br /&gt;;;这里特别写一条ange-ftp的原因是ange-ftp和tramp会有点冲突，但如果使用require先ange-ftp再tramp的方式就可以避免.&lt;br /&gt;(require 'ange-ftp)&lt;br /&gt;(require 'tramp)&lt;br /&gt;&lt;/blockquote&gt;&lt;big&gt;&lt;b&gt;4.使用&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;使用的方法就是&lt;br /&gt;&lt;blockquote&gt;C-x C-f&lt;br /&gt;&lt;/blockquote&gt;然后&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;/username@hostname:/fileaddress&lt;br /&gt;&lt;/blockquote&gt;第一次访问的时候会自动提示你输入密码的。&lt;br /&gt;tramp支持Tab键自动补全，真美。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-3230823033264802422?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/3230823033264802422/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=3230823033264802422' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3230823033264802422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3230823033264802422'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/emacs23tramp219.html' title='Emacs23下安装Tramp2.1.9的注意'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-3864387483693551075</id><published>2007-04-26T12:48:00.001+08:00</published><updated>2007-04-28T15:16:46.725+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Goolge新搜索界面的小毛病</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://www.blogjava.net/vip01/archive/2007/04/25/113624.html"&gt;Google新搜索页面&lt;/a&gt;公开测试了，整体界面的感觉比以前更舒服了,另外工具条确实方便了。&lt;br /&gt;&lt;br /&gt;试用了不到半天，感觉有一个小毛病很影响我的使用。&lt;br /&gt;以前点击搜索结果，会打开一个新的页面显示选定的结果项，一般的搜索网站都是这个习惯。&lt;br /&gt;而现在点击搜索结果，是在显示搜索结果的页面里打开结果项，于是&lt;b&gt;搜索结果的页面就被重定向到选定的结果项&lt;/b&gt;了。&lt;br /&gt;个人觉得这个改变还是相当影响使用的。&lt;br /&gt;看了一下页面的代码，发现果然是a标签里面少了一个&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;code&gt;target="_blank"&lt;/code&gt;&lt;/span&gt;参数。&lt;br /&gt;&lt;br /&gt;不会google是故意如此的吧。。。。&lt;br /&gt;似乎找不到什么理由。&lt;br /&gt;应该是个bug。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-3864387483693551075?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/3864387483693551075/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=3864387483693551075' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3864387483693551075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/3864387483693551075'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/goolge.html' title='Goolge新搜索界面的小毛病'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-4909953062348605517</id><published>2007-04-15T12:42:00.000+08:00</published><updated>2007-04-16T19:50:42.465+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>话说gnome下workspace切换的小缺陷以及gnome的发音</title><content type='html'>众所周知，邪恶的windows桌面系统（请允许我这样称呼）是没有workspace的概念的，而xwindows中是有的。我们可以看到gnome,kde,xfce,&lt;a href="http://www.icewm.org/"&gt;icewm&lt;/a&gt;,&lt;a href="http://sawmill.sourceforge.net/"&gt;sawfish&lt;/a&gt;等等等等，都是有workspace的，而默认的在相邻workspace间切换的快捷键是Ctrl+Alt+Left/Right（方向键），当然Ctrl+Alt+1,2,3,4可以用来直接定位，但是我们这里先撇开直接叮问这个情况。我个人而言是习惯用相邻关系来定位的（比如editor位于console和debuger间），而不是1永远放某一类窗口。&lt;br /&gt;&lt;br /&gt;假如现在你有4个workspace，那么我们可以通过hotkey从1=&gt;2,2=&gt;3,3=&gt;4，&lt;span style="font-weight: bold;"&gt;问题出现了&lt;/span&gt;，我想从4=&gt;1（或者1=&gt;4)怎么办呢，在gnome下路径是这样的，你需要先从4=&gt;3,然后3=&gt;2,最后2=&gt;1，多麻烦阿～～～&lt;br /&gt;我们试着把他做成一个环（1=&gt;2=&gt;3=&gt;4=&gt;1），那么只需要在4 workspace按下Ctrl+Alt+Right就回到1 worksapce了，怎么样，生产率提高了吧？&lt;br /&gt;其实这是个很小的细节，但是个人感觉workspace切换操作的执行频率很高，所以还是挺重要的。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;workspace不应只是一个平铺的画卷，而是一个立体的环。&lt;br /&gt;&lt;/span&gt;当你在使用gnome下使用华丽的beryl时，就不会有这个问题了，因为桌面3D了。但是若仅仅为了这一个点而使用beryl那么性能损失太大了（至少我以前一直是由于这个原因使用beryl）。&lt;br /&gt;其实这个问题只是一个3D的思想而已，在2D桌面下同样可以十分方便的实现的。&lt;br /&gt;后来我试用了&lt;a href="http://www.icewm.org/"&gt;icewm&lt;/a&gt;和&lt;a href="http://sawmill.sourceforge.net/"&gt;sawfish&lt;/a&gt;，发现他们都是支持4=&gt;1的切换的，&lt;span style="font-weight: bold;"&gt;3D思想与性能无关&lt;/span&gt;～&lt;br /&gt;&lt;br /&gt;p.s.&lt;br /&gt;以前一直将gnome念为ge no mu，可许多又这样念ge nu mu，今天查了一下字典，发现这个词并不发g的音，&lt;span style="font-weight: bold;"&gt;正确的发音：&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;--- XDICT英汉辞典 ---&gt;&lt;br /&gt;gnome&lt;br /&gt;[noum]&lt;br /&gt;n. 格言,箴言,侏儒,土地神&lt;br /&gt;&lt;--- 朗道英汉字典5.0 ---&gt;&lt;br /&gt;gnome&lt;br /&gt;*[nәum]&lt;br /&gt;n. 格言, 箴言, 侏儒, 土地神&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;恩，要改习惯了&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-4909953062348605517?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/4909953062348605517/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=4909953062348605517' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/4909953062348605517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/4909953062348605517'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/gnomeworkspacegnome.html' title='话说gnome下workspace切换的小缺陷以及gnome的发音'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-8993208389139221344</id><published>2007-04-15T03:35:00.000+08:00</published><updated>2007-04-19T11:23:28.666+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='gossip'/><category scheme='http://www.blogger.com/atom/ns#' term='classical'/><title type='text'>debian/ubuntu下管理你的启动项</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;span style='font-weight: bold; font-family: courier new;'&gt;update-rc.d            install and remove System-V style init script links&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;/span&gt;每当使用aptitude install命令安装了mysql server,apache等服务器后，apt总是会执行默认的配置部署，而一般情况下，这些服务器的默认配置都是随开机自动启动的，于是久而久之，你的启动项将会越来越多，启动速度也会随之越来越慢。&lt;br&gt;&lt;/br&gt;还没有感觉到缓慢的开机速度，冗长的初始化脚本吗？现在你可以通过&lt;code&gt;ls /etc/init.d/&lt;/code&gt;以及&lt;code&gt;ls /etc/rc?.d&lt;/code&gt;来查看当前的初始化服务。这些便是System V风格的初始化脚本的组织形式（个人感觉比~/.bashrc或者/etc/rc.local的形式更易于维护管理）&lt;br&gt;&lt;/br&gt;无需ln，cp，你只用通过&lt;strong&gt;&lt;code&gt;update-rc.d&lt;/code&gt;&lt;/strong&gt;命令便可以管理init.d，包括link的remove,start,stop等等。（&lt;span style='font-style: italic;'&gt;更多请参考&lt;code&gt;man update-rc.d&lt;/code&gt;）&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: bold;'&gt;实例：&lt;/span&gt;&lt;br&gt;&lt;/br&gt;我通过aptitude isntall命令安装了mysql5.0 server，而每次开机时它都会自动启动，而实际用到的并不多，这样以来既影响启动速度，也增加了日常运行时的任务负荷。&lt;br&gt;&lt;/br&gt;于是saga建议我通过&lt;strong&gt;&lt;code&gt;sudo update-rc.d -f mysqld remove&lt;/code&gt;&lt;/strong&gt;命令将mysqld从启动项里删去了。&lt;br&gt;&lt;/br&gt;以后每次使用时只要通过&lt;code&gt;sudo /etc/init.d/mysql start&lt;/code&gt;来将mysql服务启动即可。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-8993208389139221344?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/8993208389139221344/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=8993208389139221344' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/8993208389139221344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/8993208389139221344'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/debianubuntu.html' title='debian/ubuntu下管理你的启动项'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-7127941553349100109</id><published>2007-04-14T22:35:00.000+08:00</published><updated>2007-04-19T11:05:08.204+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>推荐一些和linux相关的工具和玩具</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;span style='font-size: 100%;'&gt;最近一直在折腾一些各式各样的小工具，开始的时候告诉自己这是“磨刀”，花点时间也是值得。&lt;br&gt;&lt;/br&gt;可慢慢的，我发现这把刀似乎磨了太久太久了，而且这种过于完备的准备方式似乎也是有悖敏捷的？工具这种东西应该是采取on-demand原则，而非一股脑儿全装上。&lt;br&gt;&lt;/br&gt;但再想想许多工具引入的是全新的生活/工作的方式/方法，也许你不接触，就永远都不会有demand的。所以还是有些矛盾的。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;span style='font-size: 100%;'&gt;暂且不想那么多，至少不能白折腾了，所以就此总结一下。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-size: 130%;'&gt;&lt;span style='font-weight: bold;'&gt;提高生产力的工具/软件:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;ol style='font-weight: bold;'&gt;&lt;li&gt;&lt;span style='font-size: 100%;'&gt;convmv&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;基于命令行的文件名编码转换工具，使用方法具体看m&lt;/span&gt;&lt;span style='font-weight: normal;'&gt;an，常用的参数是&lt;code&gt;&lt;br&gt;&lt;/br&gt;-f  源文件名编码&lt;br&gt;&lt;/br&gt;-t 目标文件名编码&lt;br&gt;&lt;/br&gt;--notest 真正的进行了重命名操作，不加此参数的默认情况只显示了将会如何重命名，而不会实际执行&lt;/code&gt;&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;我个人的主要用途是对从windows的ftp下载gbk编码文件进行重命名，因为gnome的默认编码是utf-8，这里需要执行从cp936到utf8的转码操作。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.tiddlywiki.com/'&gt;TiddlyWiki&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style='font-weight: normal;'&gt;TiddlyWiki是一個由「 javascript + CSS 樣式 + HTML 語法」所組成的 html 檔。它可以讓你&lt;/span&gt;&lt;strong style='font-weight: normal;'&gt;在本機編輯&lt;/strong&gt;&lt;span style='font-weight: normal;'&gt;使用 wiki 語法編輯網頁內容，除了不像一般的 wiki 程式可以在網路上供多人共同編輯之外，其它的功能一概不缺。&lt;/span&gt;&lt;/blockquote&gt;&lt;span style='font-weight: normal;'&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;繁体中文版 &lt;a href='http://web.nlhs.tyc.edu.tw/%7Elss/wiki/TiddlyWikiTutorialTW.html'&gt;http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;简体中文版 &lt;/span&gt;&lt;span style='font-weight: normal;'&gt;&lt;a href='http://jiangzhanyong.com/tiddlywiki.html'&gt;http://jiangzhanyong.com/tiddlywiki.html&lt;/a&gt;&lt;br&gt;&lt;/br&gt;这个东西折腾起来挺耗时间的，但是能够将我的生活管理的井井有条。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://scribefire.com/'&gt;ScribeFire&lt;/a&gt;[Firefox add-ons]&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;Blog发布工具，是firefox的插件，很方便，支持tag，tackback等很多功能，编辑器也很好用。&lt;/span&gt;&lt;a href='http://bp2.blogger.com/_kpsLzfhUKhE/RiD_1gfiCAI/AAAAAAAAAH8/2fPf33Rg3mA/s1600-h/scribefire.png' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://tilda.sourceforge.net/'&gt;Tilda&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;&lt;blockquote&gt;一个很有意思的终端程序。与其他大多数终端不同的是，Tilda 支持使用热键激活，在需要时让其呈现在你面前，不需要时可以隐藏它。另外，Tilda 能够嵌入桌面，支持背景透明，仿佛就是桌面的一部分。&lt;/blockquote&gt;&lt;/span&gt;&lt;a href='http://linuxtoy.org/img/2007/03/tilda.png' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' alt='' src='http://linuxtoy.org/img/2007/03/tilda.png' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 396px; height: 316px;'&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;很华丽并能很好的提高生产力，但有些环境使用透明效果回带来显示上的bug（闪的厉害）。&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style='font-size: 130%;'&gt;&lt;span style='font-weight: bold;'&gt;&lt;br&gt;&lt;/br&gt;实用工具/软件：&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;ol style='font-weight: bold;'&gt;&lt;li&gt;&lt;a href='http://www.apachefriends.org/zh_tw/xampp.html'&gt;XAMPP&lt;br&gt;&lt;/br&gt;&lt;/a&gt;&lt;span style='font-weight: normal;'&gt;Apache+MySQL+PHP+Perl集成一体，免去了烦人的无穷无尽的配置问题。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;Htop&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;查看并管理系统进程&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;a href='http://data1.blog.de/blog/u/ubuntu/img/htop.png' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' alt='' src='http://data1.blog.de/blog/u/ubuntu/img/htop.png' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 415px; height: 328px;'&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;Thoggen&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal; font-size: 100%;'&gt;DVD备份工具，可以将iso/文件夹形式DVD Movie转化成Ogg格式。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;HardInfo&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;显示系统，设备，内核模块的信息，并带有一些CPU测试评分功能。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='https://addons.mozilla.org/en-US/firefox/addon/3235'&gt;CHM Reader&lt;/a&gt;[Firefox add-ons]&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;以前一直用xchm，但是编码支持不太好。chm reader作为firefox的插件，在编码问题上是利用firefox本身的编码选择功能来实现的。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;VirtualBox&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;速度快成妖怪了(&lt;/span&gt;&lt;span style='font-weight: normal;'&gt;原因之一:VMWare采用的是逐步分配内存，VirtualBox采用的是一次分配内存&lt;/span&gt;&lt;span style='font-weight: normal;'&gt;)，传言稳定性比vmware差，但经过我一周的使用还没发现不稳定的迹象。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;li&gt;&lt;span class='postbody'&gt;miniie&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: normal;'&gt;迷你IE，主要是方便了web developer在Linux下进行IE的调试，估计不会有谁会去用它做browser吧。。。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class='postbody'&gt;&lt;a href='http://multiget.sourceforge.net/'&gt;MultiGet&lt;br&gt;&lt;/br&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style='font-weight: normal;'&gt;非常易用的多线程下载工具，下载速度十分暴力，核心算法较同类产品出于&lt;/span&gt;&lt;span style='font-weight: normal;'&gt;领先地位，稳定性也不错，使用习惯和FlashGet相似。&lt;br&gt;&lt;/br&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style='font-size: 130%;'&gt;&lt;span style='font-weight: bold;'&gt;玩具:&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;ol&gt;&lt;li&gt;&lt;span style='font-weight: bold;'&gt;supertux&lt;/span&gt;&lt;span class='postbody'&gt;&lt;br&gt;&lt;/br&gt;&lt;blockquote&gt;SuperTux 是一款跨平台横版过关游戏，以GNU/Linux 的吉祥物企鹅Tux 为主角，游戏仿照超级马里奥(Super Mario) 的风格，画面相当精美，是一款不可多得的优秀游戏。&lt;br&gt;&lt;/br&gt;&lt;a href='http://www.marcelgagne.com/images/cwl2005/supertux.jpg' onblur='try {parent.deselectBloggerImageGracefully();} catch(e) {}'&gt;&lt;img border='0' alt='' src='http://www.marcelgagne.com/images/cwl2005/supertux.jpg' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;'&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-7127941553349100109?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/7127941553349100109/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=7127941553349100109' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/7127941553349100109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/7127941553349100109'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/linux.html' title='推荐一些和linux相关的工具和玩具'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3327117711688354050.post-6038962185091531871</id><published>2007-04-11T09:20:00.000+08:00</published><updated>2007-04-26T12:23:03.295+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='gossip'/><category scheme='http://www.blogger.com/atom/ns#' term='classical'/><title type='text'>blog的选择以及bwv565</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;之前&lt;a href='http://blog.matrix.org.cn/spritesun/'&gt;matrix&lt;/a&gt;的blog在细节上存在太多bug，服务器的访问速度又总不太稳定。一番折腾，辗转换到这里，也许是开始全新生活方式的一个必由之路。&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span style='font-weight: bold;'&gt;选blog的一点想法：&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://my.donews.com/spritesun'&gt;donews&lt;/a&gt;基于&lt;a href='http://wordpress.org/'&gt;wordpress&lt;/a&gt;固然好，但是依然存在很多bug，偶尔还在页面层抛出一个wordpress系统内部的错误信息，整体给人的感觉太experimental了。而且访问以及内容管理的速度都慢到了无法接受的程度。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://my.opera.com/spritesun/blog'&gt;myopera&lt;/a&gt;，界面风格清新，速度不错，功能齐全也很贴心，本来都打算扎到那儿了。但是文章的编辑功能特别难用，另外可扩展性也很一般。例如&lt;a href='http://www.douban.com/service/badgemaker'&gt;豆瓣收藏秀&lt;/a&gt;的javascript就无法放到sidebar里去。&lt;/li&gt;&lt;li&gt;msnspace的元素太复杂了，压根就没试。&lt;/li&gt;&lt;li&gt;&lt;a href='http://java-sun.blogspot.com/index.html'&gt;blogspot/blogger&lt;/a&gt;具有很强的页面定制扩展功能，可以自由添加多种元素。但是其致命的弊端就是经常被盾掉。&lt;br&gt;&lt;/br&gt;权衡比较了一下最后还是选到了这里。&lt;/li&gt;&lt;/ul&gt;当看到Blogspot的Theme No.565，刹那间特别亲切。&lt;br&gt;&lt;/br&gt;原来是theme中的数字——565。&lt;a href='http://www.jsbach.org/bwv565.html'&gt;BWV 565&lt;/a&gt; (&lt;span style='font-size:78%;'&gt;Toccata and Fugue&lt;/span&gt; in D Minor)，这是Bach带给我的第一次震撼，比Beethoven的Symphony No.5更加深远的命运叩击声，开篇强有力的下行音以及和弦过后陡然的休止，总能让我肃然。&lt;br&gt;&lt;/br&gt;想起faye的那句，喜悦出于巧合。开心就好。&lt;br&gt;&lt;/br&gt;末了推荐一个关于JSBach作品的wiki，很完备专业，囊括了bach几乎所有的作品数据资料，缺少的是介绍评论之类的文字说明：&lt;br&gt;&lt;/br&gt;&lt;span style='font-size:180%;'&gt;&lt;a href='http://www.jsbach.org/'&gt;http://www.jsbach.org/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3327117711688354050-6038962185091531871?l=java-sun.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://java-sun.blogspot.com/feeds/6038962185091531871/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3327117711688354050&amp;postID=6038962185091531871' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/6038962185091531871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3327117711688354050/posts/default/6038962185091531871'/><link rel='alternate' type='text/html' href='http://java-sun.blogspot.com/2007/04/blogbwv565.html' title='blog的选择以及bwv565'/><author><name>spritesun</name><uri>http://www.blogger.com/profile/08706406452710365307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
