<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[赵翔鹏的Blog]]></title>
<link>http://blog.edu.cn/user1/2746/index.shtml</link>
<description><![CDATA[赵翔鹏的Blog]]></description>
<item>
<title><![CDATA[搬家了！]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2158119.shtml</link>
<description><![CDATA[<P><SPAN style="FONT-SIZE: 14pt">重要声明！</SPAN></P>
<P><SPAN style="FONT-SIZE: 24pt">本博客已经迁移到</SPAN><A href="http://www.zhaoxiangpeng.com"><SPAN style="http://blog.edu.cn/FONT-SIZE: 24pt">www.zhaoxiangpeng.com</SPAN></A><SPAN style="FONT-SIZE: 24pt">，</SPAN></P>
<P><SPAN style="FONT-SIZE: 24pt">欢迎大家访问新地址，谢谢！</SPAN></P>]]></description>
<author>翔</author>
<pubDate>2008-7-18 14:02:00</pubDate>
</item>
<item>
<title><![CDATA[新的开始]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2156019.shtml</link>
<description><![CDATA[上周五上午毕业典礼，脱下被汗水浸透的学位服，下午就去单位报到了。今天周一，算是上班第一天。<br><br>不过，因为team的人都在美国，明天才回来，所以今天我还是处于没人管的状态；主要的成果是解决了抽屉没钥匙和电话不通的问题，以及在vista上安装了firefox 3。<br><br>虽然没人管，任务还是明确的：看书，Microsoft Windows Internals，4th edition。很厚啊……Vista下面有些调试工具不能用，比如windbg的内核调试模式，郁闷。Anyway，读书总是比读论文容易多了。<br><br>另外，我把博士论文（包括幻灯片）上传到了个人主页<a href="http://www.is.pku.edu.cn/%7Ezxp/">http://www.is.pku.edu.cn/~zxp/</a>上，有需要的朋友可以看看。<br><br>虽然已经花了很多时间修改，但还是不能保证论文中没有bug。<br><br>致谢写得比较仓促。裘老师为这篇论文花了非常多的时间审阅和修改，而且当时还在卧床，真的太辛苦了。我觉得自己很幸运，能遇到这么好的导师。还有软件所的詹老师，提出了很多意见，可惜时间有限，来不及更全面地修订了。<br><br>巨大的问题：工作以后，还有时间做科研吗？<br><br>我打算把科研作为业余爱好来做……不知道这个理想能不能实现，毕竟现在不能随便地在工作时间离开公司去参加讨论班了。在公司，人们总是尽可能地提高工作效率，仔细地做time management，因此一天下来总是会有点累。这份工作本身已经是一件我很喜欢的、又很有价值的事情；不过，每天下班回家之后，我还是希望做点别的。<br>]]></description>
<author>翔</author>
<pubDate>2008-7-7 22:11:00</pubDate>
</item>
<item>
<title><![CDATA[南京归来]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2151328.shtml</link>
<description><![CDATA[<p>去开TASE'08，在南京住了几天。</p>

<p>&nbsp;<span style="font-weight: bold;">学术：</span></p>

<p>&nbsp;去开会的老板不多，几乎都是学生。遇到了好多认识的人，也认识了不少人。</p>

<p>&nbsp;会议的第一个关于probalistic model 
checking的tutorial非常不错。对各个paper的印象都不太深刻，根本的原因是这个会的覆盖面太广，六七个session中，只有两三个我比较熟悉，别的都不懂……Model-checking 
session中，NUS的CSP model checker貌似不错，用C#写的，比FDR的效率高不少。</p>

<p>&nbsp;明年的TASE可能在北航举行。</p>

<p>&nbsp;<span style="font-weight: bold;">旅游：</span></p>

<p>&nbsp;总统府是南京最好玩的地方，比其他任何地方都好玩，而且门票也只要40块，极力推荐一下。</p>

<p>&nbsp;总统府里面的展品大多是民国年间的，比如当年的毕业证、护照，行政院的批文，宋氏三姐妹的照片，孙中山的手迹，引出很多熟悉的故事，让人很有共鸣。走进静悄悄的行政院会议室，身边是老式的沙发、电话，一张作战示意图挂在墙上，一切都定格在1949年，仿佛当年的人只是急匆匆地撤离了，人走茶未凉。</p>

<p>&nbsp;跟北京相比，这里游人很少，很多当年的办公室里除了自己就没有别的游客，实在太难得。</p><p>秦淮河、夫子庙就是一条商业街，河水很脏，很失望。花了60块坐船，两岸竟然建了一大片民宅，而且都是高层的居民楼，寂静无声，极度无聊。除了居民楼，其他所有的建筑都是假的，全是后来重建的。还有若干奥运福娃彩虹灯横跨两岸，哎。<br><br>中山陵还不错。紫金山风水确实很好，建筑也很有大气。蓝瓦石墙，配合紫金山的绿意，很纯净的感觉。如朋友所说，当时的设计很少有意识形态的掺杂，陵寝穹顶上青天白日的图案看起来那么的肃穆、自然。</p><p>唯一让人觉得不那么自然的，就是我们的历史吧。</p>]]></description>
<author>翔</author>
<pubDate>2008-6-20 20:51:00</pubDate>
</item>
<item>
<title><![CDATA[答辩过了]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2145849.shtml</link>
<description><![CDATA[答辩完了！也许是因为这几天准备各种材料比较疲劳，答辩结束后，其实没有什么特别的感觉，晚上睡觉前习惯性的回忆幻灯片哪里还需要修改……然后忽然意识到不需要再想这个了。<br><br>在上班之前，这个月还可以做很多有意义的事。ICWS的文章还要改一下；最近都没有看Windows的书，不能再拖了；也要写一写程序，争取做个小项目；最后，还有几个小idea可以写论文的，再跟大家讨论一下吧。<br><br>btw，今天看到一个很有用的做presentation的技巧：<a href="http://softbbs.pconline.com.cn/topic.jsp?tid=2766949" name="http://blog.edu.cn/?tid=2766949" id="?tid=2766949">如何让播放幻灯片时不显示备注?</a> 这个分屏输出的idea简单有效啊~<br><br>]]></description>
<author>翔</author>
<pubDate>2008-6-5 22:24:00</pubDate>
</item>
<item>
<title><![CDATA[用latex和beamer做幻灯片]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/writingbeamerslides.shtml</link>
<description><![CDATA[做幻灯片是一件头疼的事。而用latex做幻灯片是一件很头疼、很头疼、\cdots、很头疼的事……总结和收集了一些经验如下：<BR>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">beamer教程<BR></SPAN><BR>有很多教程。对于初学者，最好先copy别人（比如师兄师姐的）模板用，或者直接看beamer的例子，C:\CTeX\texmf\doc\latex\beamer\examples。入门后，我觉得最好的提高教程是Ki-Joo Kim的<A href="http://faq.ktug.or.kr/wiki/uploads/beamer_guide.pdf">Beamer v3.0 Guide</A>，本身就是一个幻灯片，写的很清楚，看得也很爽。最后是beamer的用户手册，参考用。<BR></LI></UL>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">中文幻灯片<BR></SPAN><BR>一定要定义\documentclass[cjk]{beamer}，别忘了“cjk”，否则编译不通过<BR></LI></UL>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">pdf书签中文乱码<BR></SPAN><BR>这是做中文幻灯片时必然遇到的问题……<BR><BR>在Adobe Reader中，显示在一旁的书签(Bookmark)是Unicode的。这样一来，如果单纯是使用pdflatex生成pdf将会显示乱码。所以，若要生成中文的Bookmark就需要执行如下命令:<BR><BR>pdflatex slide.tex<BR>pdflatex slide.tex<BR>gbk2uni slide.out<BR>pdflatex slide.tex<BR><BR>注：gbk2uni是cct的一个小工具。<BR></LI></UL>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">改变文字颜色<BR></SPAN><BR>\textcolor{blue!80!white}可以调色，这是xcolor包的一个功能。<BR>在WinEdt中要查看任何一个package的用户手册，可以在菜单中选Help-Latex doc，然后输入包名即可。<BR></LI></UL>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">lyx：可见即所得的Latex编辑器<BR></SPAN><BR>每个frame里几乎都要敲一遍\begin{itemize}\end{itemize；思考若干秒后决定再敲一遍（因为要缩进其中的几个\item）；再思考若干秒后把刚敲的这两行删掉（取消缩进）……用beamer就是这么痛苦。想想powerpoint，只要按Tab和Shift+Tab……于是我装了<A href="http://www.lyx.org">Lyx</A>。虽然它其实还是很难用。下面是Lyx的几个经验：
<UL>
<LI>导入中文latex源文件前，应在latex源文件中写\usepackage[gbk]{inputenc}指定编码，否则导入后是乱码
<LI>Document-preferences-language改为中文，否则查看源码时有很多解码错误
<LI>总的来说，还是不建议用Lyx，没有想像中得那么好。</LI></UL></LI></UL>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">WinEdt宏<BR></SPAN><BR>为了从上面描述的重复劳动中解脱出来，我花了点时间看了看WinEdt的宏语言手册，写了几个简单的宏，发现还是挺好用的。<BR><BR>
<UL>
<LI><SPAN style="FONT-WEIGHT: bold">为当前选中的文本增加一层itemize环境：</SPAN>
<P>BeginGroup;<BR>GetSel(0,1);<BR>CMD("Delete");<BR>Ins("\begin{itemize}");<BR>NewLine;<BR>Ins("%!1");<BR>NewLine;<BR>Ins("\end{itemize}");<BR>NewLine;<BR>EndGroup;<BR><BR>原理很简单，把当前选中文本保存到变量%!1中，删除当前文本，然后插入适当的文本。</P>
<LI>
<P><SPAN style="FONT-WEIGHT: bold">删除当前选中文本最外层的itemize环境：</SPAN><BR><BR>DelLabel("","\begin{itemize}","\end{itemize}");<BR>就这一行。注意，一定要保证当前选中的文本中的头尾刚好是一对\begin{itemize}和\end{itemize}。</P>
<LI>
<P><SPAN style="FONT-WEIGHT: bold">自动插入任意的环境</SPAN><BR><BR>GetString("Input environment name:","Surround By"); // input string is saved in %!?<BR>BeginGroup; <BR>GetSel(0,1); // save current selection in %!1<BR>CMD("Delete");<BR>Ins("\begin{%!?}");<BR>NewLine;<BR>Ins("%!1");<BR>NewLine;<BR>Ins("\end{%!?}");<BR>IfStr('%!1','','=', "CMD('Line Up')", 'Relax'); // move one line up if current selection is empty (i.e. inserting a new environment)<BR>EndGroup;<BR><BR>这个宏首先会提示你输入环境名，然后自动在当前选中的文本前后插入\begin{xxx}和\end{xxx}。<BR></P>
<LI><SPAN style="FONT-WEIGHT: bold">安装宏的方法</SPAN><BR><BR>Help-Macro Manual，第一页就讲了这个，配了图，可能比我说的更清楚。不过这里还是大致说一下：首先把上面几个宏分别保存为.edt类型的文件，复制到WinEdt文件夹下面，例如C:\CTeX\WinEdt\Macros。然后在Options-Menu setup-Popup menus里面，选择左边的“Edit”一项，然后按上面的第二个按钮，出现新的对话框，在这里可以修改右键弹出菜单的内容，再按最上面第二个按钮，选Macro，这样就添加了一个菜单项，给它起个名字”Insert Environment“，然后在Macro编辑框中输入[Exe('%b\Macros\Insert Environment.edt');]，确定后即可在右键弹出菜单里用这个新命令了。安装其他宏的方法类似。</LI></UL></LI></UL><BR>总结：自己动手，丰衣足食。其实早就该学一下WinEdt的这些高级功能，可以节约不少时间……]]></description>
<author>翔</author>
<pubDate>2008-5-19 21:36:00</pubDate>
</item>
<item>
<title><![CDATA[快毕业了]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2112148.shtml</link>
<description><![CDATA[很久没时间写博客了，最近一直在忙，估计等到下个月就好一些了~<br><br>写博士论文是件很花时间的事。中文其实比英文更不好写；英文写的差一点大家可以原谅，不是native speaker嘛。中文就不行了……-_-<br><br>在北京春天强大的风沙攻势下，我的T43终于在今天熄火了，Fanerror。赶快去电脑城换了个风扇，世界终于清净了。之前开会的时候我都不好意思开机。嗯，以后就不用开着音乐写论文了。<br>]]></description>
<author>翔</author>
<pubDate>2008-4-13 15:33:00</pubDate>
</item>
<item>
<title><![CDATA[澳大利亚的PhD机会]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2064933.shtml</link>
<description><![CDATA[我以前的老师、好朋友Paddy Krishnan教授在招PhD学生。对形式化方法有兴趣的同学可以联系他~Paddy人品很好，是非常nice的一个人。<br><br>Sun Microsystems Laboratories and Bond University,<br>Brisbane and Gold Coast, Australia<br>PhD Scholarship<br>Available to start on second semester 2008<br><br>Sun Microsystems Laboratories, Sun Labs, in collaboration<br>with Bond University, will sponsor a 3-year PhD scholarship in<br>the area of program analysis. We are interested in advanced<br>program analysis techniques and algorithms as they relate to<br>bug checking of systems code.<br><br>Requirements<br>Applicants must have completed a Bachelor of Computer Science, Software Engineering, Computer Engineering, Mathematics or affine area of study. The successful candidate needs good design and implementation skills in the C, C++ or Java language, as well as some knowledge of program analysis techniques in one of the following areas: data flow techniques, type analysis, or abstract interpretation. The candidate will interact with the Parfait Sun Labs team and can base his/her work on their layered framework for bug and security vulnerability checking of systems code.<br><br>See <a href="http://research.sun.com/projects/parfait">http://research.sun.com/projects/parfait</a> for a brief description of the<br>project.<br><br>Supervisors<br><br>Professor Paddy Krishnan (pkrishna@bond.edu.au), Bond University, will be the PhD supervisor, and Senior Researcher and Principal Investigator, Cristina Cifuentes, Sun Labs Brisbane, will be the associate supervisor.]]></description>
<author>翔</author>
<pubDate>2008-3-10 11:19:00</pubDate>
</item>
<item>
<title><![CDATA[下个月回北京！]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2050347.shtml</link>
<description><![CDATA[不知不觉就该回来了。还有3个月就毕业，要在这短短的时间内搞定论文，找好工作，压力很大。<br><br>在美国体验了一把资本主义生活，感受挺复杂的。跟国内比起来，算是半斤八两：这边风景很美，但伙食实在太差；房子确实很大，不过也够贵；物质极大丰富，但精神是相当的空虚。说起民主自由之类的，那其实是别人的事情，与华人关系不大。我可以列举无数条美国比中国好的地方，也可以列举无数条美国不如中国的地方。到底哪里更好？真的很难说。<br><br>mitbbs上的讨论有趣的很。中国有好事，很多人高兴；中国有坏事，也有很多人高兴。中国若是强大，那华人的身份有望提高，自然是高兴的；中国若是乱成一团，那身在海外的同胞们正好庆幸自己能置身事外。<br><br>拿J-1签证的我就不花太多时间思考这些问题了。客行虽云乐,不如早旋归。<br>]]></description>
<author>翔</author>
<pubDate>2008-2-20 13:50:00</pubDate>
</item>
<item>
<title><![CDATA[用Python实现一个最简单的LTL解释器]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2030952.shtml</link>
<description><![CDATA[昨天在考虑一个问题：能否用LTL (<a href="http://en.wikipedia.org/wiki/Linear_temporal_logic">Linear Temporal Logic</a>)表示a*b*，(ab)*这两个正则表达式？前者还好写一点，但后者实在很复杂，在纸上写写画画，后来我自己都搞不清我写的公式是什么意思了。如果有个LTL表达式的解释器作测试会方便得多，但除了SPIN，手边找不到一个轻量级的工具，于是就自己写一个，选择Python是因为它支持lambda表达式，而且比较熟悉。<br><br>运行效果：<br>&gt;&gt;&gt; F(Ischar('a'))("baac")<br>True<br>&gt;&gt;&gt; U(Ischar('a'), Ischar('b'))("aaaa")<br>False<br>&gt;&gt;&gt; U(Not(Ischar('b')), Ischar('b'))("aaab")<br>True<br>&gt;&gt;&gt; G(Imply(Ischar('a'), F(Ischar('b'))))("aaab")<br>True<br><br>存在问题：<br>1. 只能处理有限长度的串，跟LTL的语义稍有不符，不过也足够用了。<br>2. 没有做Parse，所以输入必须是前缀表达式。<br><br>代码很简单：<br><br>def Ischar(ch):<br>&nbsp;&nbsp; &nbsp;return lambda s: len(s)&gt;0 and s[0]==ch<br><br>def X(func):<br>&nbsp;&nbsp; &nbsp;return lambda s: func(s[1:])<br><br>def G(func):<br>&nbsp;&nbsp; &nbsp;return lambda s: G_impl(func, s)<br>&nbsp;&nbsp; &nbsp;<br>def G_impl(func, s):<br>&nbsp;&nbsp; &nbsp;for i in range(len(s)):<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if not func(s[i:]): return False<br>&nbsp;&nbsp; &nbsp;return True<br><br>def Not(func):<br>&nbsp;&nbsp; &nbsp;return lambda s: not func(s)<br><br>def And(f1, f2):<br>&nbsp;&nbsp; &nbsp;return lambda s: f1(s) and f2(s)<br><br>def Or(f1, f2):<br>&nbsp;&nbsp; &nbsp;return lambda s: f1(s) or f2(s)<br><br>def Imply(f1, f2):<br>&nbsp;&nbsp; &nbsp;return lambda s: (not f1(s)) or f2(s)<br>&nbsp;&nbsp; &nbsp;<br>def F(func):<br>&nbsp;&nbsp; &nbsp;return lambda s: not G(Not(func))(s)<br><br>def U(f1, f2):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: U_impl(f1, f2, s)<br><br>def U_impl(f1, f2, s):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (i&lt;len(s)):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (f2(s[i:])): break<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i += 1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i&gt;=len(s)): return False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j in range(0, i):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (not f1(s[j:])): return False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return True&nbsp;&nbsp;&nbsp; &nbsp;<br># 到此就定义了LTL的各种算子。<br><br># 判定a* b*：<br>def astar_bstar(a,b):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: G(Imply(Ischar(b), G(Not(Ischar(a)))))(s)<br><br># 下面是为定义(ab)*所写的辅助函数，参考了DecSerFlow的定义（所以才用了奇怪的B_always_between_A，而不是定义A_always_between_B）。<br>def existence(a):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: F(Ischar(a))(s)<br><br>def response(a, b):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: G(Imply(Ischar(a), existence(b)))(s)<br><br>def precedence(a, b):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: Imply(existence(b), U(Not(Ischar(b)), Ischar(a)))(s)<br><br>def B_always_between_A(a,b):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s: G(Imply(Ischar(a), X(precedence(b, a))))(s)<br><br># 判定(ab)*：<br>def ab_star(a,b):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lambda s:&nbsp; And(precedence(a,b), And(response(a,b), And(B_always_between_A(b,a), B_always_between_A(a,b))))(s)<br><br># 测试一下：<br>if __name__ == "__main__":<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("")==True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("a")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("b")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("ba")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("abab")==True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("ababa")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("ababb")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert ab_star('a','b')("abaab")==False<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert astar_bstar('a','b')("aabb")==True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert astar_bstar('a','b')("abab")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert astar_bstar('a','b')("bbaa")==False<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>看起来我的定义似乎是对的，虽然我也无法证明这个正确性。我比较困惑的是LTL和正则表达式的关系，查了一本书说是LTL的表达能力不如正则表达式，LTL的表达能力与star-free regular expression相同？但上面的例子却说明(ab)*, a*b*是可以用LTL表达的？搞不懂。<br><br>Update: 原来是我对star-free的理解不对，参照<a href="http://citeseer.ist.psu.edu/303866.html">Loop-Free Alternating Finite Automata</a>一文的说法，所谓“star-free的regexp语言”虽然不含有*，却包含negation和intersection，因此它可以表达某些无限长的串，究竟是哪些？不是那么容易说清楚。<br><br>如果LTL可以表达(ab)*，那就说明(ab)*一定可以转换为star-free regexp的形式。尝试一下：先定义L=\neg (aa) \intersection \neg (bb)，则L表示ab交错的序列，但不保证a是第一个字母；稍微改进一下，(a L)&nbsp; \intersection&nbsp; L应该就是一个正确的表示吧。 <br><br>]]></description>
<author>翔</author>
<pubDate>2008-1-16 11:38:00</pubDate>
</item>
<item>
<title><![CDATA[什么是科学工作流(scientific workflow)]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2026363.shtml</link>
<description><![CDATA[科学家们，例如天文研究者，要想协作科研的话，就需要共享大规模的数据，相当于做些分布式计算。这个数据的流动过程随着研究机构的增多可能越来越复杂，以至于需要独立出来专门管理，这就是scientific workflow的大概意思。scientific workflow貌似是一个新方向，讨论班上听别人讲了一篇，后来帮人审稿看到一篇，今天发现12月的Computer杂志上还登了一篇文章。<br><br>Computer杂志上这篇介绍scientific workflow的文章全是文字，几乎连个数字都没有，读完之后觉得有点空洞。这scientific workflow跟business workflow的区别说大也大，说小也小。列举几个scientific workflow的特色/需求：<br><br>可重复性：这是科学研究的基本要求，但其实很难做到，因为系统是分布式的，数据也是分布式的，谁也不好说哪个数据能一直存在。说不定过几年系统一升级，以前的程序就不能运行了；谁叫计算机软件的基础架构天天改呢？<br><br>著作权问题：科学家的数据都很珍贵，workflow的流程、以及每个端点运行的程序也是不能随便公开的，不然被人剽窃了怎么行。但是又要把自己的研究结果给别人看，至少要给评审的人看，不然怎么让别人赞同你的工作呢？而分布式的workflow意味着最后的成果是大家共享的，因此更要算清楚每部分工作都是谁的成果。所以，每次运行所得到的数据上要附有元信息以说明这个数据是运行了谁的workflow，都用到了谁提供的数据。最好有一种抽象机制，能自动提取出个大概，让人看了很佩服却无法复制。<br><br>著作权问题也说明scientific workflow的异构性，需要处在不同地理位置的多方共同合作。<br><br>探索性的经常修改：科学家需要不断地调整workflow的参数甚至是修改控制流程来尝试得到新结果，但他们又不像流程设计师那么专业，所以要提供一个易用的接口。<br><br>其他的特性就是一些无聊的buzzword，像“更灵活(flexibility)”、“更好的伸缩性(scaling)”、要考虑security之类的问题。<br><br>总结：虽然没有本质的新东西，但在搞CS的人眼里看来，sci workflow毕竟是计算机研究这个大bbs开的一个新版，正是灌水的好地方，大家快去抢位置吧。把workflow旧版里的帖子稍加处理一下转载过来，又是一篇新文章，说不定还有人给你m一下呢。]]></description>
<author>翔</author>
<pubDate>2008-1-10 15:31:00</pubDate>
</item>
<item>
<title><![CDATA[在美国找房子和搬家]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2008/2021732.shtml</link>
<description><![CDATA[记录一下最近的事情，尽量白描。<br><br>这一周的大部分时间都在找房子，找得直上火，脸上起了好几个包。先看上了350 mathilda的studio，但rental office的老太太说她在“另一个地产公司”还有更好的房子，说什么“要让你住的happy”，叫我等她电话。老太太假公济私虽说于我无关，可没想到等了几日她老人家再无音讯，看来是被忽悠了。<br><br>那就还是订这个studio吧，却被告知需要3k/month的收入证明，否则需要找个月入至少有3k闲钱（注意是闲钱）的担保人做公证。麻烦，麻烦啊……再次骑车环游goleta，在orange ave看了个1250的老房子，古老陈旧、家徒四壁、附近没有洗衣机不说，设计也真奇怪，厨房比客厅还大。此时的心情比较失落，心想实在不行就麻烦苏老师跑一趟公证，去申请那个studio算了。好在我等终于转运，本是抱着随便看看的心态，却碰到了现在租下的超大master bedroom，离旧公寓不太远，$975一月全包。房东是南美人，口音很重但人很好，大讲“我刚来美国时还睡地板”，叫我们有问题尽管跟他说，这才叫阶级弟兄啊。<br><br>接下来是搬家，也就是昨天的事。从学校回来，5点钟见到房东，他乐意帮忙运输前些日子提前买下的床垫。把mattress和boxspring顶在汽车上，细绳一绕，我俩坐在后座，一边一只手探出车窗护住床垫，然后就开车上路。卸下床垫时天色也晚了，也不好意思再麻烦人家，我就跟lgh运着超市的shopping cart，把上周在路边捡来的圆桌子从345 mathilda搬到224 daytona，这一路上轮子轧在马路上咣咣直响，把手震得有点麻。<br><br>补充说明一下，美国有很多超市的小推车散落在路边，大多是没车的穷人在超市购物后就直接把推车推到家所致；这虽然不太道德，却也是无奈之举。用手推车搬家的idea也不是我们创造的，这其实要感谢lhh同学的建议，当初他的床垫就是这么花了1小时搬来的。<br><br>虽然天气预报说从4号开始要一直下雨，可是我们搬完这两趟已经太累了，还没搬的桌子就留到明天吧。晚上吃了三明治，然后我在新房子里上网到半夜才回345 mathilda睡觉。<br><br>为啥回去那么晚？因为从New year Eve开始公寓里就停电。Tyler说是他前女友在捣鬼，但我对此并不关心，我只关心什么时候来电，你Tyler放假回家去了，我可是要天天住在这破公寓里啊。这电一停就是好几天，直到今天中午。没有电，不能做饭，不能洗澡，不能上网……只好每晚去lgh那里吃饭和充电，摸着黑刷牙洗脸，用凉水洗头，把笔记本的电用完就早早睡觉，冰箱里的东西那就完全不管了。总之，回到了原始社会嘛。直到昨天搬了东西，才总算洗了个热水澡，热水啊~<br><br>停电的事暂且不表，继续说搬家。今天早上果然下了雨，好在不很大，于是就把写字桌从公寓二楼搬下来架在手推车上，本想按昨天的路线如法炮制，不料桌子太重，刚一起步就摔在地上，掉下木板一块。待到重新装载妥当，慢慢挪动冒雨前行，一路上小心闪躲树木和电线杆。按lgh的说法，这就跟运南海一号似的。小心再小心，走到一半多路，无奈又是哗啦一声，桌子全部碎掉。<br><br>这一堆木板倒是不怕再散架了。只是后半程路上常听到钉子落地的声音，捡了两个，丢了更多。到了新公寓，把桌子重组起来，因为钉子不够，就卸掉了下面的小柜，取出若干钉子，拿出木工的本领钉呀钉，不牢靠就靠到墙角上——呼，总算有了个桌子了！<br><br>现在外面还下着大雨，我刚才回旧公寓拿了笔记本，就已经把裤子淋个湿透。现在大件已经搞定，但还有一堆细软没搬完，少不了麻烦szn再开一趟车过来搬；只希望到时候这雨能小点。<br><br>还有很多细节就略去不提了。在结束这个搬家的故事前，再讲两个小事：<br><br>之一。lgh的临时住处的德国男前天回来了，告诫lgh不许用他的厕所（lgh从另一个中国女生那里租的客厅作临时住处，估计没跟德国男沟通好）。无奈lgh昨天早晨起来因为实在憋不住而用了他的专用厕所，又不幸被该德国男撞见，该男遂发飙曰：说不能用就是不能用！用了这次厕所，要赔他$150大元。最终解决办法：lgh给他打扫厕所干净，于昨晚迅速搬家。<br><br>之二。Tyler同学堆积如大山的酒瓶（大约占地4-6平米的两层箱子）、堆积如小山的刀叉杯盘（一月未刷，都堆在洗碗池里，大概有半立方米，成锥形）和他难以踏足、散发这怪味的房间将在今天被打扫干净；他妈妈中午跟他一起到公寓来，为的就是这。Tyler很高兴的说他要把屋里剩下的几箱啤酒、若干瓶红酒白酒全带回家给他老爸保管，他要give up drinking了，我连忙说好。趁他妈没看见，Tyler把桌上的烟藏到身上拿出门去了。<br><br>总结：出门在外，吃点苦是少不了的，一切全靠自己啊。]]></description>
<author>翔</author>
<pubDate>2008-1-5 9:12:00</pubDate>
</item>
<item>
<title><![CDATA[圣诞之死亡谷游记]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2007/2017215.shtml</link>
<description><![CDATA[圣诞跟实验室的同学一起去death valley玩。美国的圣诞非常平淡，大家都躲在家里守着圣诞树吃饭，出来玩的几乎都是中国人；但正宗的圣诞就应该是这样子，这个节日是宗教性的而不是娱乐性的。昨天我还见了篇文章讲外国人被中国的狂欢圣诞吓到了。<br><h4>Disney's California Adventure Park</h4>先去了<a href="http://disneyland.disney.go.com/disneyland/en_US/parks/landing?name=DisneysCaliforniaAdventureLandingPage">california adventure park</a>，爽了两遍云霄飞车"<a href="http://disneyland.disney.go.com/disneyland/en_US/parks/attractions/detail?name=CaliforniaScreaminAttractionPage">california screamin'</a>"，中间倒转一圈着实刺激，虽然同去的mm都说太恐怖。soaring的模拟飞行很不错，真的有腾云驾雾的感觉，也坐了两回；其他的项目印象不深，鬼屋的失重把我搞得很晕，sun wheel上面风大太冷，晚上的disney's electronical parade也很冷……里面扮王子的演员貌似也出现在上次去disneyland时看到的parade里面。别的就都一般了，哦，墨西哥玉米卷生产线其实也挺好看，特别是在饿到不行的时候免费得到一块热腾腾的玉米卷，那个心情啊~让我直奔下一个酸面包工房……<br><h4>Buffet Trip in Las Vegas</h4>在LA住了一晚，第二天去了las vegas，$39的room是我这辈子住过的最大的客房！看来上次住的破terrible估计也就值$20。我们下午开车去了Luxor金字塔，发现传说中的倾斜电梯要有房卡才能坐，靠。<br><br>晚上去Rio吃$24的自助，排了1个多小时的队！太可怕了，还好我中午在麦当劳多要了一个sundae……大部分的菜式都不能给我留下印象，除了crab leg！szn说这是阿拉斯加帝王蟹，我在costco里看到要卖$12.99一磅。每条腿都有一尺长，拿小钳子撬开，里面是好大一条雪白的蟹肉，上面缀着诱人的红点，味道超级鲜美，现在想起来还会流口水，反正当时就一直吃蟹腿吃到饱。只是不知道它为啥特别咸，叫人不得不怀疑是厨师搞的鬼。中间吃到的一个韩式牛排也很好，肉质焦焦甜甜的，咬起来也有汁水。吃到快要走不动但还能走得动的状态后，重新逛了一遍strip，路上渴的不行……但如果再给我一条蟹腿我照样要消灭之。<br><br>strip上堵车堵的比中关村还厉害，看了两三遍water dance，又逛了下威尼斯人，大家都累了，绕了个小圈就回来睡觉。<br><h4>Death Valley</h4>最后一天，也就是Xmas eve，我们花了很多时间开到了<a href="http://www.yellowecho.com/travel/deathvalley.htm">death valley</a>。这个national park也太大了点，基本上每开车20-30分钟后能看到一个景点，然后继续开……在路上看到了什么？石头。在景点看什么？还是石头。<br><br>不过这里的石头还是比较多种多样的，各种颜色各种形状的都有。有个景点叫做<a href="http://www.yellowecho.com/travel/artist_palette.htm">artist's palette</a>，就是一片有各种颜色的山脉，我只认得绿色的部分是铜矿，别的矿石就不认识了。这里的一个<a href="http://geology.wr.usgs.gov/parks/deva/ftgol1.html">小峡谷</a>在五百万年前（真的是5 million，可不是胡编）是个湖泊，层层页岩间夹杂着一些白花花的盐晶，看起来很有趣，据说此地是地质学家的必修功课。<br><br>另外比较让我震撼的就是盐湖了，绕了好久的盘山公路之后，忽然现出一片平静的白色湖泊，在阳光下闪着光——再一看，原来是一层白色的盐，真奇怪这平原怎么就那么平整，看起来跟周围的险恶山峰很不相称。这个盐湖（我把它叫做盐湖，其实99.9%都是撒着雪花的平原，只有大概50平米的面积上有一点点盐水）名叫<a href="http://images.google.com/images?q=badwater+death+valley">bad water</a>，说是牛仔们到了这个海平面下几十米干燥无比让人不断想喝水的破地方后，很happy地看到了这片水汪，于是想让骡子饮水，却没想到是盐水不能喝，所以起了这个名字（还好这盐水没有毒）。<br><br>踩在盐地上面真的跟雪一样，软软的一层，抓一把起来几乎可以攥成一个雪球。在雪地里绕了一圈出来，敲掉鞋底沾着的雪，又开了好久的车在山谷间转来转去。沿途看到一些牛人在骑自行车，佩服他们，当然这些人肯定是先开汽车来扎寨，然后才换自行车的。这里的气候真的挺可怕，我坐在车上都觉得鼻孔发干，开始胡思乱想古代的人走在这里的路上万一打翻了水壶岂不就挂了？<br><br>晚饭去这里唯一的一个visitng center，方圆几百里独此一家有东西吃。花$5买了个很难吃的三明治，看看墙上的介绍，原来是因为以前在这里发现了硼砂矿，所以才在这唯一一块小绿洲上建立了这唯一一个小客栈。当时的交通工具是20头骡子拉的超级大车，屋外就陈列着一辆，轮子比一个人高，用来把矿石运输出去。想像一下当初的矿工们在这种恐怖的地方干活……不知道其中有没有华人呢？(后来查了一下，真的都是华人矿工，sigh。)<br><br>Death Valley最后一站，沙丘。<br><br>这时天已经有些晚了，夕阳划过沙丘，在远方的山峰留下温暖的红色。风给沙丘留下了优美的曲线，上面的细小沟壑好像工匠打磨过一样的精致。远远望去，那最大的沙丘体积远超过周围的小丘，在昏暗的光影作用下看似一座金字塔。几蓬半死的树挣扎地从沙子里冒出来。地上散落着些干裂的树枝，学《英雄》的镜头，我也在沙子上划下二个字。但这字迹明天就会被风抚平，连同我们留下的串串足印。想到这里，觉得此地确有死亡的气息。<br><br>很多人跟我们一样跑上跑下，回到车上才发现满脚的沙。要开6个小时的夜车才能到家，我们就一路看着窗外的星星月亮聊天。路上还有些返程的车辆，尾灯的幽幽红光让我们稍微觉得不那么孤独。在GPS的指引下我们上了一条小道，这一段路上狂沙飞舞，风卷着沙子打得车子啪啪响，车灯照不到路，只能照到暴雨一样的沙子。能见度只有5m，有点鬼片的感觉。大概5分钟后我们看到了一个牌子写着“drifting sand”才稍微松了口气，原来这里一直就是这样。GPS指路还是不太让人放心啊……<br><br>平安夜晚餐是在加油站买的subway三明治。后面的路都很顺利，11：30安全到家。回想一下，挺美好的旅程。]]></description>
<author>翔</author>
<pubDate>2007-12-31 15:44:00</pubDate>
</item>
<item>
<title><![CDATA[好莱坞·拉斯维加斯·大峡谷四日游记]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2007/2006785.shtml</link>
<description><![CDATA[最近压力很大，但预定好的旅游总是要去的。给自己放个假（其实本来学校也放假了），四天三夜美西游，还是很美的啊。照片见<a href="http://picasaweb.google.com/zhao.xiangpeng/">http://picasaweb.google.com/zhao.xiangpeng/</a><br><br><span style="http://blog.edu.cn/font-size: 18pt;">好莱坞·星光大道</span><br><br>周六一大早起床，一路乘火车到LA。转了两站地铁，到好莱坞下车。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/Hollywood/photo#5145931155321448866"><img src="http://lh6.google.com/zhao.xiangpeng/R2oFHxeM6aI/AAAAAAAAB9A/OIMrtX0orWc/s144/DSC00865.JPG"></a>  <a href="http://picasaweb.google.com/zhao.xiangpeng/Hollywood/photo#5145931503213800066"><img src="http://lh3.google.com/zhao.xiangpeng/R2oFcBeM6oI/AAAAAAAAB_M/sR8r5Xq3CiI/s144/DSC00910.JPG"></a><br>星光大道果然就像别人的游记里写的那样没什么意思，它是一条铺着光滑而坚硬的大理石地板的商业街，黄铜做的一颗颗星星被无数的鞋子磨得发亮，上面刻着无数我们不认识的名字。常常有超级加长豪华轿车驶过，里面有打着精致领结的司机，也有从窗户里一脸兴奋的女孩向外面的人挥手致意。<br><br>远远的山上，HOLLYWOOD几个大字摄在相片中就显得无比小巧。在Sunset Blvd上有个满精致的教堂，推开厚重的大门，有一场墨西哥婚礼正在举行。白衣的老神父念着西班牙文，端起银色的酒杯，一对新人把紫红的葡萄酒一饮而尽。底下西装革履的亲属们静静坐着，还有支小乐队在演唱西班牙语歌曲；感觉有点肃穆。歇歇脚出来，走回Hollywood/Highland地铁口，夜幕下的好莱坞还是人头攒动。在柯达剧院和中国剧院拍了几张照片，看过剧院门口水泥地上吴宇森、斯皮尔伯格、R2D2们的一块块手脚印，我们就上车投奔位于Rosemead的Knights Inn旅馆了。<br><br><span style="http://blog.edu.cn/font-size: 18pt;">拉斯维加斯·纸醉金迷</span><br><br>周日早上依然早起，旅游团的大巴载着我们前往罪恶都市——Las Vegas。蓝天上挂着几丝云彩，长满了仙人掌的沙漠无边无际地铺展开，把混杂着暗绿的土黄颜色一直涂抹到天边的褐色山谷。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5148745295203201378"><img src="http://lh6.google.com/zhao.xiangpeng/R3QEkReM8WI/AAAAAAAACV4/ZqjxNN5wpGk/s144/DSCF0050.jpg"></a>&nbsp;<a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5145929922665834114"><img src="http://lh3.google.com/zhao.xiangpeng/R2oEABeM5oI/AAAAAAAAB2o/LADu57EwouU/s144/DSC00947.JPG"></a><br>就在这荒无人烟的大地中间，伸出一条笔直的公路，屈指可数的几辆大巴在飞驰；除此就看不到半点活物。昏昏欲睡的几个小时之后，沙漠中的绿洲，无数金钱浇灌出的一座奢华城市，伴着巨大的广告牌子凸现在眼前。<br><br>Vegas的大街有个挑逗性的别名叫strip……我猜这个词形容了这条布满了各种不可思议建筑的宽阔大路像是一条缎带，不要想歪了哦。<br><br>埃及金字塔，纽约自由女神，巴黎埃菲尔铁塔，罗马凯撒宫，威尼斯水城，童话里的金银岛……这无数座豪华casino奇特的外貌构成了Vegas的主要风景。走进赌场，有的天花板黄金一样闪闪发亮，有的绘有精细欧式壁画，有的长出千朵色彩斑斓的莲叶，也有的甚至是蔚蓝的人造天空——真的很像，第二天在大峡谷我再抬头看天时，几乎要怀疑头顶的天空有点像假的了。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5145930373637400482"><img src="http://lh4.google.com/zhao.xiangpeng/R2oEaReM56I/AAAAAAAAB48/XMl9H3gppoU/s144/DSC01006.JPG"></a>&nbsp;<a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5148745346742809042"><img src="http://lh6.google.com/zhao.xiangpeng/R3QEnReM8dI/AAAAAAAACWw/e1cVn224FKE/s144/P1000461.JPG"></a><br>用一家赌场的名字来形容这里的景色：The Mirage。<br><br>很多大赌场里有特色show可以看，有免费的也有收费的。我看了场Jubilee秀，歌声很高雅，舞蹈很艺术，布景和戏装都很美。舞女的雪白皮肤看起来很像大理石，仿佛不是真实的肌肤。嗯，补充一下，这是个topless秀，adult only。没看过的各位很难想像什么是既topless而又艺术？找维纳斯雕像，或者是古典画派笔下的女神像看看，基本上就是那种感觉，总之跟strip dance完全是两码事；虽然无数的路边发卡手和免费小报都在殷勤地传递着此类信息。<br><br>说了这么多，还没提到赌城的核心业务。基本上，我对散发着烟味儿、不停发出噪音和闪着各种刺眼光芒的老虎机群没太大兴趣，也没有在21点牌桌上潇洒地一掷千金的欲望。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5145930292033021810"><img src="http://lh5.google.com/zhao.xiangpeng/R2oEVheM53I/AAAAAAAAB4k/hw3sXvZB4I4/s144/DSC00990.JPG"> </a><a href="http://picasaweb.google.com/zhao.xiangpeng/LasVegas/photo#5148745368217645586"><img src="http://lh3.google.com/zhao.xiangpeng/R3QEoheM8hI/AAAAAAAACXQ/ueyJS1jMmro/s144/P1010045.JPG"></a><br>在最低1 cent每次的老虎机上扔$1进去，还剩$0.17的时候我就已经郁闷的想退钱出来。然而想到为退这几分钱到柜台去排队也太浪费时间，于是一通猛按，输光走人，相比之下还是吃buffet比较happy啊。<br><br><br>buffet是Vegas的另一道风景。我住在一处名叫Terrible的casino（名字够震撼吧），申请会员卡后就可以拿到2 for 1的优惠券以及免费的早餐券，两顿buffet只花了$5。虽然便宜，但也有shrimp、clam之类的美食可以享用。很多菜我都不认得是什么，只记得有一种牛肉片烤得很好吃。<br><br><span style="http://blog.edu.cn/font-size: 18pt;">大峡谷·天地悠悠</span><br><br>我在Vegas度过了两个夜晚，其中第二天的白天随团开赴大峡谷，当天来回。路上经过胡佛水坝，比想像的要小很多，然而这座“小巧”的水坝却发挥了巨大作用，跟我们巨大个头的三峡、三门峡等水坝相比，真是让人感叹。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/GrandCanyon/photo#5145928569751135138"><img src="http://lh4.google.com/zhao.xiangpeng/R2oCxReM46I/AAAAAAAABw0/wQLJEqyWi9M/s144/DSC01073.JPG"></a><br>因为地形险恶，修水坝时共死了近70个工人，故此水坝上特意安放了两个天使雕像纪念他们。显然，这种事在中国不会发生。<br><br>大概从Vegas开车2个多小时就到了大峡谷的西侧，West Rim。这里是Walapai印第安人的属地，买的参观票上有密密麻麻的小字唠叨了半天说是在这里美国政府不会保护我们。在这沙土高原之上，一片巨大无匹的红色岩山占据了前方的一切，又有万丈深渊把这岩块劈开来，令人只能远望另一侧的血红大地而无法到达，仿佛我们走到了大地的尽头，前面就是地狱的分界线。往下看去，峡谷的纵切面上尽是凹凸不平的石头纹理，在阳光下制造出奇特的阴影效果。<br><a href="http://picasaweb.google.com/zhao.xiangpeng/GrandCanyon/photo#5148745557196206706"><img src="http://lh3.google.com/zhao.xiangpeng/R3QEzheM8nI/AAAAAAAACYE/lJtFMymvBBY/s144/DSCF0261.jpg"> </a><a href="http://picasaweb.google.com/zhao.xiangpeng/GrandCanyon/photo#5145929574773482898"><img src="http://lh6.google.com/zhao.xiangpeng/R2oDrxeM5ZI/AAAAAAAAB0w/A1_IaH8jDh0/s144/DSC01126.JPG"> </a><a href="http://picasaweb.google.com/zhao.xiangpeng/GrandCanyon/photo#5145929033607603330"><img src="http://lh4.google.com/zhao.xiangpeng/R2oDMReM5II/AAAAAAAAByk/cojbO7OJReU/s144/DSC01099.JPG"></a><br>几千尺的谷底下是蜿蜒的科罗拉多河，没有参考物，不知混黄的河水究竟有多宽，更不知道什么样的生物能在那里生存。最令人称奇的是，远方这一大块红石原的顶部竟然如镜子一样平整，好像打磨过一样，可惜相机无法拍出震撼心灵的壮丽景色的全景。静静地看着这四周的景色，心里不由得产生一种敬畏，教人不敢走近峡谷旁边，总担心站立不稳，会被这血盆大口所吞没。<br><br>西峡最刺激的景点当属玻璃桥，skywalk，空中漫步~不管叫什么名字，花$27就可以体验在万丈深渊之上的一块透明玻璃行走的感觉。刚上来的人们都恐惧得不敢踏上桥中间透明的部分，所有人都紧紧抓住栏杆，没有哪个敢抬脚走路，只把鞋紧贴在“地”上轻轻地向前挪动。虽然知道这种极度的恐惧完全是心理作用，大多数人还是要花上好几分钟才敢站在玻璃上俯视自己发软的双脚下那要15秒钟才能落到底的谷底。透明的空气让我们可以清晰的看到谷底的草木，用理智战胜身体的本能，尽情体验走在绝壁之上的神奇感觉吧。接下来，不妨试试小跑到刚上桥的人中间，站在玻璃上跳一跳，看看因为你制造的轻微震颤而引发的那些表情！那种感受，就在我写下这些文字之时，还会清楚地浮现出来。<br><br>很遗憾玻璃桥上不让带相机上去，所以没法拍到照片，有个摄影师在桥上拍照，$26一张，真够黑的（估计这也是中国人的点子）。摄影师是个穿着黑色皮夹克的印第安人，跟他聊了半天，原来印第安人已经完全被同化了：“学外语课的时候可以选印第安语”……无语了。酋长跟美国总统一样，每4年选举产生一名——摄影师他爸就是上一任酋长。真是的，这完全失掉了“酋长”一词原本给人带来的想像空间嘛。<br><br>返程平淡无奇，大部分时间在打盹，任凭车子翻山越岭。沙漠的奇异景色逐渐消失在脑后，我们又回到了钢筋水泥的文明生活。到LA时开始下雨，回到santa barbara雨还在下，淋雨骑车回家。]]></description>
<author>翔</author>
<pubDate>2007-12-22 16:25:00</pubDate>
</item>
<item>
<title><![CDATA[貌似Netbeans 6比Eclipse强大很多啊]]></title>
<link>http://blog.edu.cn/user1/2746/archives/2007/1991922.shtml</link>
<description><![CDATA[今天看了一个介绍Netbeans的视频：<a href="http://www.javalobby.org/eps/netbeans55/">http://www.javalobby.org/eps/netbeans55/</a><br>
非常吃惊，原来Netbeans已经这么牛了，可以说绝不比Visual Studio差。<br>
<br>
首先因为它是Sun的IDE，所以支持几乎所有的最新Java技术，比如JAX-WS，Mobility，BPEL，Java
Persistence(类似)，JSF，还有一个很漂亮的visual web design界面；而且用起来非常容易（这主要归功于Java EE
5），极大的减少了代码量，把J2EE的门槛大大降低了。<br>
<br>
其次是各个高级功能之间的互联。Eclipse的缺点是作些基本开发还好，但要开发复杂程序的时候要配一堆东西，像MyEclipse之类的第三方插件质
量虽然好，但毕竟不是“原厂出品”，插件一多就有点头痛，不仅风格不同，而且互相不能通讯。相比之下，Netbeans和Visual
Studio的好处是设计之初就考虑到了种种高级功能之间的互相关联，所以可以做到“从数据库管理窗口里拖一个table到Web设计页面上”这样的效
果。<br>
<br>
Websphere的确提供了很多功能，但Websphere的使用离不开IBM自己的一堆服务端程序，感觉用Websphere做开发的人好像从来不会配合MySQL一起的。JBuilder现在也逐渐没落了，所以还是装个开源的Netbeans吧。<br>
<br>]]></description>
<author>翔</author>
<pubDate>2007-12-13 8:10:00</pubDate>
</item>

</channel>
</rss>
