Sunday, April 21, 2013

Install Oracle Java 7 on Ubuntu

1. install java
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update 
sudo apt-get install oracle-java7-installer

2. switch java
sudo update-java-alternatives -l
sudo update-alternatives --config java
sudo update-alternatives --config javac

4. for Eclipse, in eclipse.ini
/usr/lib/jvm/jdk1.7.0/bin/java

Ignoring DTD in XMLUnit


@BeforeClass
public static void onlyOnce() {

 XMLUnit.setIgnoreWhitespace(true);
 XMLUnit.setIgnoreComments(true);
 XMLUnit.setIgnoreAttributeOrder(true);

 // don't validate dtd
 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 dbf.setValidating(false);
 try {
   dbf.setFeature("http://xml.org/sax/features/namespaces", false);
   dbf.setFeature("http://xml.org/sax/features/validation", false);
   dbf.setFeature(
       "http://apache.org/xml/features/nonvalidating/load-dtd-grammar",
       false);
   dbf.setFeature(
       "http://apache.org/xml/features/nonvalidating/load-external-dtd",
       false);
 } catch (ParserConfigurationException e) {
   e.printStackTrace();
 }

 XMLUnit.setTestDocumentBuilderFactory(dbf);
 XMLUnit.setControlDocumentBuilderFactory(dbf);
}

Saturday, April 13, 2013

[转载]美国仙南渡国家公园 (Shenandoah National Park) 游记






春 夏秋冬四季,每个人的感受是不一样的。比如说秋季于我来说,确实给我以金色的感受,它代表一种收获、成熟和风韵。在老家时爬过好多次岳麓山,在北京五年半 近六年,风光优美的香山也游过两次,那时只知疯玩,不辨菽麦和枫叶红叶,往往是身在其中但是不觉其美;然而一旦这些离我远去,脑海之中剩下的,就只有一片 猩红,似觉不再可及企,无奈只好尘封在记忆深处。然而这尘封了的一片猩红,在我沉醉于 Shenandoah 的秋色后,又被重新唤醒,从我记忆深处走了出来。

去 年刚来这里时还是人生地不熟的,自然错过了赏秋的最佳时节,这份遗憾一直让我耿耿于怀。今年秋季一到,我就时班不时留意附近树叶颜色的变化,绿色的、红色 的、黄色的,总是蠢蠢地担心叶子一晚上会全部枯萎、飘去,化为尘泥。据别人介绍,又上网查询了一些资料,知道 Shenandoah 国家公园 (Shenandoah NP) 是看红叶的最佳地点之一,也是离东部各大城市最近的一个国家公园。看红叶的最佳时节是在十月的中下旬,尽管学业紧张,但还是决定忙里偷闲,释放一下久被压 抑的郁闷心情,于是选择十月下旬的一个周末和几个朋友一起去 Shenandoah NP。



Shenandoah NP 位于阿巴拉契亚山脉东支的顶端,起伏于崇山峻岭之间。阿巴拉契亚山脉是美国东部最主要的山脉,长约一千多公里,宽度一百到两百多公里,在大部分地段是几条 平行的山脉的统称。阿巴拉契亚山脉上开辟有两个国家公园: 大雾山 (Great Misty) 和 Shenandoah 国家公园,这也是美国东部各州中仅有的六个国家公园之中的两个。Shenandoah国家公园位于弗吉尼亚州,和西弗吉尼亚州交接的边界线不远,这一带阿 巴拉契亚山脉最东的一支被称为蓝岭山脉(Blue Ridge Mountains),再往西就是 Shenandoah 山脉,两者相距几十公里,中间有两条很弯曲的小河,各自蜿蜒在蓝岭山脉的东侧和 Shenandoah 山脉的西侧,都称为 Shenandoah 河,向北注入 波多马克河 (Potomac River),经华盛顿市区注入马里兰州的大西洋海湾。已故的著名乡村歌手约翰*丹佛 (John Denver) 的名曲“乡村之路,带我回家” (Country Road, Take me Home) 里这样唱道:

Almost Heaven, West Virginia,
Blue Ridge Mountain, Shenandoah River.
Life is old there, older than the trees,
Younger than the mountains, blowing like a breeze... 



就 是描述的这一带。不过 Shenandoah NP 不是按照其名位于 Shenandoah 山脉上,而是在蓝岭山脉上。公园狭长,南北约105英里 (约170公里),东西宽只有数公里不等。有一条约八十年前开辟的公路,纵横南北,称为 Skyline 公路 (意为天际线),海拔大约在900-1200米之间,在山顶曲折蜿蜒。天际线公路沿线有一百多个大小不一的风景观赏点 (称为Lookout),一般都建在欣赏角度比较开阔的山角拐弯处,每个风景观赏点都有十来个或者更多的泊车位置,可以停下来鸟瞰山下的枫叶、红叶、池 塘、小河,以及农牧场和大小城镇;也可以下车去徒步爬山,露营或者野炊,观赏奇山异石和山泉流水小瀑布,或者野生动植物,以及早期印第安人的生活遗迹和独 立战争等时期留下的历史遗迹。据旅游小册子上的介绍,这里有一些名贵的动植物。动物以品种不一的小鹿最常见,温驯可人,其中以弗吉尼亚白尾鹿最常见;其它 较珍贵的动物还包括黑熊、红色背脊的火蜥蜴、公主蝴蝶、盒状乌龟等。共约有四百多种稀有植物,其中以断蕨、货架状蘑菇、甜桦树、毒藤、蝴蝶奶草、血根花、 飞毒草、珍珠花等最有名。蓝岭山脉是世界上最古老的山脉之一,一度甚至高过落基山脉,不过由于地壳相对平静,禁不住雨打风吹,最高处海拔也只有四千多英尺 了。沿着天际线公路由北到南共有七十多座山峰,在“旧抹布山峰” (Old Rag Mountain),有些花岗岩已经存在了十多亿年之久,它们是已经发现的最古老的花岗石之一。正是:

露瑞有奇洞,不分夏与冬。神龙谷底绕,寒水浸石林。
蓝岭生雾气,迢遥似流云。宜诗又宜画,鬼斧无落痕。

我 们计划了两天的行程,早好多天就在位于公园中北部山脚的露瑞 (Luray) 小镇预定了旅馆。阿巴拉契亚山脉虽然不高,远不如西部的落基山脉和喀斯喀特山脉,但是很古老,大多形成于十二亿年或者更早的年代,但是不乏陡峭险峻之地, 这一带也因此有许多著名的溶洞,其中以位于肯塔基州的 Mammoth 溶洞国家公园最为著名。在 Shenandoah NP 的山脚也有两个著名的溶洞,其一位于露瑞,另一位于公园北入口的 Front Royal,两者之间只相距二十多公里,各具特色,门票价格也差不多,约十四美元。 露瑞是个小镇,在两座山脉之间的峡谷处,几十条小马路,估计只有两千人口,是随着露瑞溶洞而发展起来的小城市,也是附近农牧产品的集散地。不过两个溶洞都 没有划入 Shenandoah 国家公园系统。露瑞溶洞实际上是私人拥有,它以钟乳石乐器 (Stalacpipe Organ) 这个景点最为著名,这也是世界上最大的天然乐器。Stalacpipe Organ 是1954年由 Sprinkle 所领导的小组历时三年开发而成的,Sprinkle 本人是在五角大楼国防部工作的数学家和电子学专家。他测量了周围许多钟乳石柱的音阶、音质和音量等,安置了许多琴弦、电缆和包扎有橡皮的鼓槌等,音乐由鼓 槌击打钟乳石发出。当然,由于面积很大,几乎有四英亩,这一切必须由电子设备控制,但是原理和钢琴类似,而且操作演示平台就是一架钢琴的式样。

游 览溶洞也列在我们这次旅行计划之中,但是由于时间紧迫,连同旅途我们也只有两天的时间,所以我们只能择一而游,这次就是冲着这个天然乐器而舍弃了 Front Royal 溶洞。不过除了奇石外,露瑞溶洞也给我些许失望,主要原因是其人工色彩过于浓厚,而我喜欢原汁原味的大自然,偏爱那种静谧流韵之美,不喜欢过多的人工痕 迹。由于溶洞属于私人拥有,商业化了的铜臭就成了其主调,一如现在的冷水江波月洞和湘西的张家界,给装扮得光怪陆离,原先的雅静清幽不见了,首先映入匆忙 的游人眼帘的是一派灯红酒绿。被利益所世俗化了的不只是我等集市上喧嚣的人群,连同这等山清水秀之地也一同俗气化,空负洞里那些山水砌成的邀云乘鹤一般的 仙人。我们草草游了露瑞溶洞包括钟乳石乐器在内的几个景点,然后在镇上草草吃了一顿麦当劳快餐,就沿着 211号公路向东约十公里,缴纳十五美元的门票 (每辆车15美元,有效期一周),进入 Shenandoah NP。露瑞在公园的中北部,离北入口约四分之一的里程,由于时值下午,于是我们计划将车向北开,先游玩以北的一小段,然后转回露瑞小镇的旅馆,第二天再游 览南部的一段,如果时间允许,还计划下车去登山,欣赏更好的流水和岩石。



汽 车在海拔900-1200米左右的蓝岭山脉顶端的天际线公路蜿蜒而行。天际线公路是单行道马路,限速每小时35英里 (约56公里),加上天公作美,上午虽然阴雨绵绵,下午却是阳光明媚,和风习习;打开窗户,习习秋风吹在脸上,竟然毫无萧萧瑟瑟之感,反而给人一种欢畅的 惬意。道路两旁有很多高耸入云的原始乔木,主要为冷杉和北美冷杉,它们又直又高,柔韧异常,树冠直伸到离地一百多英尺的高空中,傲立寒风而无悔无惧,特别 是那些长于荒石之中的,依着峭壁而耸天而立,悠悠千百年,让人直叹生命的顽强和不屈不挠,应和着峭壁的鬼斧神工,让心灵以无以复加的震撼,顿觉自己的渺小 和苍白。此外还有生长茂密的松柏树、红木树和数量很多的冬树,以及品种不一的红叶树、紫叶树和枫树。道路在浓密的森林里沿着山势曲折前行,大部分的地方都 尽力保持自然生态,并没有多少人工痕迹,如披着纱巾的少女,羞答答地,安然恬静,远离尘嚣,与世无争。站在沿途的 Lookout 朝前方俯瞰,远处是一道隐隐青山 (阿巴拉契亚山脉西支),山脚是雾气缭绕着的农庄牧场,偶有成群的牛羊,以及蓝色如同流淌着的梦幻一般的 Shenandoah 小河,山腰处则是一望无际的秋叶风光图画。夕阳晚照下,只见媚绿、金黄、醉紫、丹红,各种各样的颜色尽染层林,任凭雾气缭绕,秋枫流丹。忽然想起了杜牧老 爷子的诗歌:“远上寒山石径斜,白云生处有人家。停车坐爱枫林晚,霜叶红于二月花。”诗意不分古今中外,杜老爷子这首诗也正是 Shenandoah NP 秋色的最好写照。

考古发现这里九千年前就有人类活动的踪迹,虽然不能肯定是印第安人留下的。不过对现在公园景观影响比较大的,还是 早年当地的印第安人和大约250年前在这里定居的欧洲殖民者,以及随后发生的一些战争,其中包括一次涉及数万军队的惨烈战斗。印第安人和欧洲殖民者曾经一 度大规模地伐木用于建房、取暖、造纸,山林地貌遭到很大程度的破坏。联邦政府在上世纪三十年代立法在蓝岭山脉设立 Shenandoah 国家公园时,这一带的森林覆盖率不足 80%。弗吉尼亚州政府历时十年,从当地居民那里征购土地,安置需要迁徙的农牧民,才初步建立起了公园,然后捐赠给联邦政府,给罗斯福政府奉献了一份厚 礼。蓝岭山脉这一带的风光并不是美国最好的,但是它离首都很近,是故还是有很特别的意义。当时世界处于经济大萧条时代,富兰克林*罗斯福总统为了提高民族 的自信心和凝聚力,亲自去 Shenandoah 山谷和天际线公路 (Skyline Drive) 视察露营,极大地鼓舞了当时国民那种萧瑟瑟的情绪。著名的CCC组织 (Civilian Conservation Corps) 在军队和当地居民的协助下先后义务设立了许多营地,为天际线公路的顺利开通奉献了自己辛勤的汗水。现在,即使公园在2000年惨遭一场历时近两周的大火的 屠戮,Shenandoah NP 的森林覆盖率仍然超过了 95%。

第 二天一大早我们就从旅馆出发,不一会儿就来到了 Skyland,这里也是天际线最高点,附近的 Stony Man 山峰也是整个蓝岭山脉的最高点,也以山泉和瀑布著称。就秋色来说,整个公园由北到南其实都差不多,考虑到天色尚早,我们并且决定下车,到附近登山探险。天 际线附近就是著名的阿巴拉契亚探险道,长达一千多公里。踩着林中厚厚的一层落叶和腐殖质,许多老树横倒在林中,上面结满了青苔、墨耳和蘑菇。林下偶能见些 兀自泛绿的本草类植物,山水间原始乔木林梢偶尔传来一两声不知名的鸟鸣,应和着自山峰而下的山泉瀑布声,更增立体感,更显得清脆悦耳,回肠荡气,婉转悠 扬。深秋的飞鸟几声随意鸣唱,竟然源自这山峰最高处,那个我无法及企的高度。在十九世纪八十年代早期,一个十六岁的少年郎,名叫乔治*弗里曼*帕罗克 (George Freeman Pollock),为了采集地质标本而在这一带扎营。后来,经过许多失败和努力,这个少年成功地将这里辟为了一个暑期度假胜地,在1895年时这里已经建 设得远近知名了。他将这个营地命名为“石人之营”(Stony Man Camp),后来石人之营更名为 Skyland (亦即天际之地)。他并没有去效仿当时流行的休闲胜地的经营模式,例如那些位于纽波特的休闲别墅和缅因州的贵族营地,帕罗克将基调定为田园牧歌式,并且开 设了许多营地节目,例如中世纪的马术比赛、篝火晚会、印第安人民族舞蹈等,此举获得空前成功,吸引了大批来自费城、华盛顿、巴尔的摩等地的职业人士和中上 层社会精英来这里消闲度假。帕罗克的 Skyland 历史变迁也记载了美国社会历史的变迁,时尚、口味、道德伦理、女性的社会地位等。美国历史短暂,不足以和博大精深、源远流长的中华历史相提并论,但是它就 发生在眼前,就发生在昨天,细密无间,品味起来自有一份详实和亲切感。

石 人之营 (亦即 Skyland) 附近除了山石和营地外,以六个首尾相顾的山泉瀑布最为著名。六个瀑布起起落落,第一个和最后一个相距有好几公里。择一而赏,向上放眼望去,只见从略显陡峭 的乱石头壁崖之上倾泄下几股清泉,规模不大,或稀疏或浓密,击石之声似声乐,自是泠泠自成天韵,润物细无声。仿佛这诺大的公园之所以山灵水秀,都仗这这些 天泉昼夜不息的陶冶和洗涤。而那些任凭流水洗涤的残石,或圆滑温润、雅韵灵性自如如,或险峻如刀削,纵横纹路,满是绿藓苍苔,沉默寡言,似乎千百年来不曾 移动过身子,生生世世呵护着山泉,生怕失去了她,让她蒙受惊吓。不知这清清的山泉瀑布,几生几世能流进山下蓝蓝的 Shenandoah 河水?山泉之韵于我而言,仿佛一首不绝的少女之歌,情窦初开的那种,悠然我心,不问山外花开花谢,唱得青山千年后悄然老去,唱得日子一天一天地飘去,年复 一年,唱得我的短暂青春也终将逝去,而她却依然不知不觉,悠悠绿水永长流。

Texlive and CJK

  1. suppose texlive and CJK is installed correctly
  2. install fontforge
    sudo apt-get install fontforge
    
  3. download font.tar.bz2
  4. prepare font song.ttc, and generate font files
    fontforge -script subfonts.pe simsun.ttc song Unicode.sfd
    
  5. create bash script makemap.sh, run the script to generate map file
    if [ -f song.map ]; then
        rm song.map
    fi
    for i in *.tfm
    do
        echo "${i%.tfm} ${i%.tfm} <${i%.tfm}.pfb" >> song.map
    done
    
  6. create c70song.fd
    % This is c70song.fd for CJK package.
    % created by Edward G.J. Lee
    % modify by Yue Wang
    \ProvidesFile{c70song.fd}
    \DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne}
    \DeclareFontShape{C70}{song}{m}{n}{<-> CJK * song}{}
    \DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * song}{\CJKbold}
    \endinput
    
  7. check system conf file location
    kpsewhich texmf.cnf
    
  8. change TEXMFHOME to
    TEXMFHOME = $HOME/texmf
    
  9. change TEXMFDBS to
    TEXMFDBS = $TEXMFHOME;$TEXMFLOCAL;$TEXMFMAIN;$VARTEXFONTS;$TEXMFSYSVAR;$TEXMFDIST
    
  10. mimic texmf tree and copy fonts and configs. texmf should match those in TEXMFHOME
    mkdir -p ~/texmf/fonts/map/dvips/CJK
    mkdir -p ~/texmf/fonts/tfm/CJK/song
    mkdir -p ~/texmf/fonts/type1/CJK/song
    mkdir -p ~/texmf/tex/latex/CJK/UTF8
    
    cp song.map   ~/texmf/fonts/map/dvips/CJK
    cp *.tfm      ~/texmf/fonts/tfm/CJK/song
    cp *.pfb      ~/texmf/fonts/type1/CJK/song
    cp c70song.fd ~/texmf/tex/latex/CJK/UTF8
    
  11. update system conf
    sudo texhash
    updmap
    
  12. in $HOME/texmf/fonts/map/pdftex/updmap/pdftex.map, append content in song.map

Wednesday, April 10, 2013

How to adjust height of an old Steelcase chair (454311M)?

The chairs do not have the pneumatic mechanism to adjust the height of the chair. The height is adjusted by turning the chair in circles around the base. The base post contains a screw mechanism that gives 2-3″ of adjustment.

Tuesday, April 9, 2013

Bash IO redirection

> filename
>> filename
1> filename
1>> filename
2> filename
2>> filename
&> filename
2>> &1