Amour GUO's Blog

得之我幸, 失之我命.

Category Archives: 未分类

2010年国庆新疆游开始筹备 http://sinkiang2010.blogbus.com

2010国庆噺彊自驾游计划概要

预计行程为16天,时间大概会在2010年的9月25日–10月10日,
大家提前好好把下半年的工作安排好,做好十月前后请年假的准备。
线路:北京->太原->吕梁->张掖->酒泉/敦煌->哈密->吐鲁蕃->*伊犁
往返里程7千公里左右,每车至少要安排2位司机,
比较理想的车辆数是2-3车,人数为4-12人,
人均费用根据个人的消费情况估计约在3000-5000元,

现有两种方案,两种方案的费用相差应该只在千元以内,在第一次成员碰面会后最终确定:
  1) 直接从北京开车去,一路上一半以上是高速,还有不到一半是国道,不好走的路段很少,小车足矣,当然,如果有越野或SUV更好啦^_^
  2) 北京<->乌市双飞,到乌市后特纳的家人会提前帮着找好车辆,这样会省一些在路上的时间(开车单程北京到新疆要3天),不过相对的也会错失一些沿途看风景的乐趣。

具体计划正在商议之中,欢迎提供宝贵意见!

* P.S.是否考虑找一下车身广告的赞助?嘿嘿~

欢迎登录此次新疆游的官方Blog查看更多更详细的内容:http://sinkiang2010.blogbus.com(内容还在完善中)。

美食↓

美景

美女

总有一样是你所爱~来吧~加入我们!:-)

想加入我们一起畅游新疆的同学可以在BLOG的评论中留下您的联系方式,我们会联系您;或者直接把你的个人情况发送到邮箱:amourguo(at)gmail.com。只有一个小小的前题:你必须是有独自行为能力的靠谱青年! 如果你再有辆SUV或是越野那就更完美啦~

[译]拥抱NoSQL数据库

看了一篇Digg的一个负责技术的VP写的关于NoSQL的文章,顺便翻译了一下。

Saying Yes to NoSQL
[译]拥抱NoSQL数据库

原作者:John Quinn(Digg: http://digg.com/users/doofdoofsf, Twitter: http://twitter.com/doofdoofsf)
翻译:阿木(http://waymangood.spaces.live.com

    The last six months have been exciting for Digg’s engineering team. We’re working on a soup-to-nuts rewrite. Not only are we rewriting all our application code, but we’re also rolling out a new client and server architecture. And if that doesn’t sound like a big enough challenge, we’re replacing most of our infrastructure components and moving away from LAMP.
    近半年来一直为Digg技术团队中正在进行的事情而兴奋不已,因为我们正着手对Digg进行彻底的重写,不仅仅是重写所有的应用程序,同时也推出了一个全新的C/S架构,如果这些听起来还不够有挑战性的话,那我告诉你,我们还正在替换大部分的基础组件,并且决定不再使用LAMP(译者注:Linux+Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。)

    Perhaps our most significant infrastructure change is abandoning MySQL in favor of a NoSQL alternative. To someone like me who’s been building systems almost exclusively on relational databases for almost 20 years, this feels like a bold move.
    可能我们最重要的基础架构上的变化,就是放弃使用MySQL,转而使用NoSQL数据库。对于像我一样20多年来一直专注于基于关系数据库来构建系统的人来说,这应该算是一个大胆之举。

What’s Wrong with MySQL?
MySQL存在的问题

    Our primary motivation for moving away from MySQL is the increasing difficulty of building a high performance, write intensive, application on a data set that is growing quickly, with no end in sight. This growth has forced us into horizontal and vertical partitioning strategies that have eliminated most of the value of a relational database, while still incurring all the overhead.
    我们放弃MySQL的首要动机是:基于一个无休止高速增长的数据集构建一个高效率、高密集度写入的应用程序的所带来的不断增加的开发难度。这种增长迫使我们不得不同时采用水平分割和垂直分割的策略,而这又使大多数关系数据库的优点都荡然无存,并且也不能完全解决问题。

    Relational database technology can be a blunt instrument and we’re motivated to find a tool that matches our specific needs closely. Our domain area, news, doesn’t exact strict consistency requirements, so (according to Brewer’s theorem) relaxing this allows gains in availability and partition tolerance (i.e. operations completing, even in degraded system states). We’re confident that our engineers can implement application level consistency controls much more efficiently than MySQL does generically.
    这样的话关系数据库就变得很鸡肋了,我们就迫切需要寻找一种更加契合我们的具体需求的工具。我们的行业领域(新闻)对一致性的要求并不是非常严格,所以(根据Brewer的理论)适当放宽对一致性的要求可以获得更高的有效性和分割容忍度。我们也有足够的信心我们的工程师可以实现应用级的一致性,而且将会比MySQL更有效地对其进行控制。

    As our system grows, it’s important for us to span multiple data centers for redundancy and network performance and to add capacity or replace failed nodes with no downtime. We plan to continue using commodity hardware, and to continue assuming that it will fail regularly. All of this is increasingly difficult with MySQL.
    随着系统的不断庞大,我们需要更多地考虑冗余、网络性能、扩容、以及不停机替换坏的节点,所以设备跨多个信息中心(IDC)对我们来说很重要。我们计划继续使用标准硬件,并假定它们可能时常出现故障,如果使用MySQL的话所有的这些都会变得日益麻烦。

Choosing an Alternative
替代方案

    Digg is committed to the use and development of open source software and we’re keen to avoid the cost of proprietary large-scale storage solutions. We were inspired by Google and Amazon’s broad use of their non-relational BigTable and Dynamo systems. We evaluated all the usual open source NoSQL suspects. After considerable debate, we decided to go with Cassandra.
    Digg一直热衷于开源软件的使用和开发,我们也尽量回避因使用商用的大规模的存储方案所带来的成本。Google和Amazon已经在广泛地使用他们的非关系型数据库BigTable和Dynamo,我们此举在一定程序上也是受到他们的启发。我们考量了所有常用的开源的NoSQL方案,经过多次讨论,最终决定使用Cassandra(译者注:http://baike.baidu.com/view/1350234.htm?fr=ala0_1_1)。

    Simplistically, Cassandra is a distributed database with a BigTable data model running on a Dynamo like infrastructure. It is column-oriented and allows for the storage of relatively structured data. It has a fully decentralized model; every node is identical and there is no single point of failure. It’s also extremely fault tolerant; data is replicated to multiple nodes and across data centers. Cassandra is also very elastic; read and write throughput increase linearly as new machines are added.
    简单地说,Cassandra是一个具有BigTable的数据模型并且运行在类似Dynamo的基础架构之上的分布式数据库。他是列导向的并允许相对构化数据存储。他具有完全分散模型;所有的节点都是同一的,没有单点故障。同样他的故障容忍度很高;数据会被复制到跨数据中心的多个节点。Cassandra也很有弹性;当有新设备加入时读写吞吐量会随之呈线性增长。

    We experimented on our live site, replacing a relatively high scale MySQL component with a Cassandra alernative. These tests went well. You can read more about these experiments here.
    我们在自己的网站上做了实验,用Cassandra替换掉了一个相关的大规模的MySQL组件,测试的结果很令人满意。你可以本文在接下来的内容中了解到更多的细节。

Where We Are
进展

    At the time of writing, we’ve reimplemented most of Digg’s functionality using Cassandra as our primary datastore. We’ve supplemented Cassandra-based indexing using full text, relational and graph indexing systems. We’re getting used to dealing with eventual consistency.
    到笔者撰稿日为止,我们已经以Cassandra作为我们的主数据库对Digg的绝大多数功能进行了重新实现。并添加了基于Cassandra的全文索引,关联索引和图形索引系统。我们也已经熟悉了如何处理可能的一致性问题。

    We’ve been working on Cassandra itself too. We’ve made massive performance improvements: increased comparator speed, added better compaction threading, reduced logging overhead, added row-level caching and implemented multi-get capability. We’ve also implemented native atomic counters using Zookeeper (you can probably guess why were motivated to add that feature 🙂
    我们同时也进行Cassandra的开发,为Cassandra做了大量的性能改进:提高了comparator(比较工具)的速度,引入了更优的内存紧缩线程控制,降低了日志对资源的消耗,加入了行一级的缓存并实现了multi-get(多线程下载?)的能力。我们还使用Zookeeper实现了原生的原子级的计数器(你应该能猜到我们为什么会加这个功能吧^_^)。

    We’ve tested and improved the operational capabilities of Cassandra, upgrading its Rackaware capability, added slow query logging, improved the bulk import functionality and implemented Scribe support for improved logging. We’ve also done a ton of operational testing.
    我们测试并改进了Cassandra的运转能力,升级了他的机架感知能力,加入了slow query logging,改进了批量倒入功能并为了改进日志功能而实现了Scribe支持。我们还做了大量的运行测试。

    We’re open sourcing all our work on Cassandra.
    我们对Cassandra所做的所有的改进也都是开源的。

What’s Next?
展望

    Currently our main focus is getting Digg’s latest release into general availability, but we’ll continue to lead the way in championing Cassandra’s development and adoption.
    目前我们主要在集中精力确保Digg的最近的GA版本(注:软件的通用版本)的发布,接下来我们依然会一如既往地继续拥护Cassandra的开发和使用,并在这条道路上争做领头羊(注:-_-|||)

    If you’re interested in joining a world-class team using cutting edge, NoSQL technology at scale, check out jobs.digg.com
    Take it easy,
    你想加入世界顶级的Digg刀锋战队吗?你想掌握国际尖端的NoSQL技术吗?敬请访问:jobs.digg.com,是的!相信我!!你能!!!(译者注:多么华丽的广告植入,春晚都败给他了)

 

原文地址:http://about.digg.com/node/564

About User eXperience(aka UX/UE)

What UX stands for?
    In most domestic companies, we commonly call User Experience as "UE" for short, but for the worldwide scope, its well-accepted abbreviation is "UX";
    So what’s UX Stand for?
    Focus on the target users of the products/services, including who they are, how they behave, what makes them use our products, even their work, life, habits, and all other factors relevant to how will they response to the products or services;
    Focus on our Clients, we learn their business, process, also personas and roles in their products/services/processes;
    Respect users’ habits and guide users to cultivate a good habit of using the products/services;
    It’s not a single functional specification or a single research study, it’s not a fixed process, it’s a process of continually learning about users, responding to thier behaviors, and evolving the product or service.
    UX is everywhere in the processes, including end-user interview, product anlysis, interaction design, UI design and UI implementation;
    Simplicity is the best, make rich featured but simple user interface without distracting user’s mind, we love both efficiency and effectiveness;
    UX engineers are both liaisons and implementer, we know when to litsen, we know how to act, we balance the client bussiness goals and end-user requirements for the client organization;
    Finally, we help our clients to build highly usable and accessible, effecient, consistent, low dev/maintenance cost products, services or processes;
    UX is not only about technology, but good technologies DO help us to fulfill our goals better.

What we do in a project.
    First, we keep listening, asking, analyzing and iterating, to well learn the requirements from our clients and end-users;
    We help clients to get all the functionalities and workflows into shape;
    We help clients to idetify the roles from their workflow and create personas;
    We provide wireframes with Interaction Diagrams& Specifications;
     – We try to use GUI framework and proper functional block design to keep consistency of visual style and user experience on this product,
     – We use Axure/Visio/Photoshop/Illustrator to compose the prototypes, wireframes, and final visual design screens to show to all the related people and get feedbacks from them,
    Clients know their business/process well, what we need to do is helping them to achieve more goals through proper interaction design and implementation solution;
    We just don’t need always to do what is best for the end users, as UX engineers we have to find the sweet spot between the user’s needs and the business goals, while balance business and end users;
    Other than dealing with clients and end-users, UX engineers are also caught in the middle trying to speak the business language, the developer language and the UI designer language to justify why we need to do our job, how to do it, and why it’s important to success.
    So someone also says that UX is kind of an art of leverage and compromise:-)

UX Definition Process.
 

References:
    http://www.blogs.com/topten/10-ux-user-experience-blogs-to-watch-in-2010/

试用Google App Engine

    最近刚好聊起一个有关Google的话题,突然想起Google App Engine的帐号申请下来之后除了一个Hello World就没再用过了,就决定试用一下,也不枉申请一回;
    做试用的这个App没什么难度,只是通过用Cron Job定时每天在新闻网站上抓取数据,用SAX过滤出想要的内容,再提交到一个BBS上,所以主要还是共享一下在做App时遇到的一些问题,希望能给也遇到相同问题的朋友做个参考:
    1) App Engine上的应用有一个限制:应用程序代码仅在响应网络请求或 cron job 时运行,且任何情况下必须在 30 秒钟内返回响应数据。刚开始没看到这个,把所有的逻辑都写到一个servlet里了,在本地环境测试OK,一deploy到Engine上,就不行了,最后只能重写,尽量保证应用的响应时间在10秒以内;
    2) 同样一个本地环境测试通过,一但Deploy就不行的问题:在对一个URL进行Fetch的进候,老是会报IOException,追进去之后是在url.openConnection()老是“Can not fetch this URL”,最终查出来是在目标URL的php中的ob_start(‘ob_gzhandler’)所导致,不知道为什么AppEgine的URL Fetch跟PHP的gzip压缩会有冲突,没时间去研究,先把该PHP页的gzip关掉,OK,通过;(如果有对这方面原因了解的朋友希望能指点一下: amourguo[at]gmail[dot]com)
    3) 还是一个Deploy之后才出现的问题,看来Google应该解决一下保持本地测试环境和AppEngine的一致性问题,呵呵。在我的一个DB Entry里有一个字段叫作“newsLink”,用JDOQL做Query的时候("select from Xxxx where newsLink == linkParam parameters com.google.appengine.api.datastore.Link linkParam")就会老是报错说找不到一个叫做"sLink"的class,显然它是把newsLink中的new当做关键字了,不知为何,即便是中间没有空格,它也会把newsLink当做new sLink(),而且在SQL中应该是可以用[newsLink]来解决的,但在JDOQL试了证明行不通,最后不得不把这个字段改名了,所以,在JDOQL中,不但不能使用关键字作字段名,最好也不要包含关键字,以减少不必要的麻烦;
    Google App Engine还是不错的,使用多少资源就付多少费用,很合理,只是开发的时候会有诸多的限制,让人略有不爽,不过还好也不影整体的良好感觉,而且根据需要增加或减少对资源的消费这一点上,也符合节能减排的大潮流(-_-|||);GAE算是最早的PaaS(Platform as a Service)的大规模实现之一了,后来Sina也搞了一个SAE,不过帐户是邀请制的,我没有搞到邀请,所以没试过:-p

爱丽丝梦游仙境

早就在时光网的一次观影活动上订了一张《爱丽丝梦游仙境》在UME首映的票,爸爸妈妈对凌晨去看电影表示很难理解,说我是疯子,其实偶然做做疯子也提好的,只是晚上回家太晚估计会影响爸妈休息了,有些愧疚。
到了电影院了,突然想起来今天是限行的,老是生活在五环以外,对这个都有点淡忘了,不过后来听说11点之后是不在限行之列的。
时光网在UME的放票处还给每个领票的人都照了相,不知干嘛用。

书归正传,说说电影。
电影开始部分,很多原书的影子,看过书的人再去看电影感觉会更好一些(我只看过Alice’s Adventures In Wonderland, 没看Through the Looking-Glass, 好像电影中有一些角色也有是取自后者的),看书的时候虽然也会有插图,但始终不够丰满,总是会继续去想像各个角的样子,而在电影中,你可以一一去印证你的心中的各个角色与电影中的差别,
说一下对电影的比较具体的一些感觉:
最杯具是红心皇后的那只倒霉的鹰怪,
还有一个比较杯具的是Jabberwocky的名字,被翻成了"炸脖龙",
处理的最传神的是那只偷嘴的青蛙,
最无厘头的就是白心皇后了,
最经典的一句话当然非"Off with his/her/their head(s)!"莫数了,
睡鼠在电影里边一直也没睡觉,
红心武士的马说:"Dogs will believe anything",觉得我就象那只dog,
最喜欢的角色是柴郡猫,呵呵,优哉游哉,不去做坏事,也不去逞英雄,却总是在该出现的时候出现,
看来迪斯尼挺在意中国市场,最后Alice也象Google一样都跑香港去了,估计如果有续集的话会在中国拍也不是没有可能的了。
回到家已经2:00am了,洗洗睡了,天亮还要上工。

我记得的一些人物列表:
爱丽丝(Alice)
疯帽子(The Mad Hatter)
红皇后(The Red Queen)
白皇后(The White Queen)
红心骑士(The Knave of Hearts)
大白兔(The White Rabbit)
渡渡鸟(The Dodo)
蓝毛虫(The Caterpillar)
柴郡猫(The Cheshire Cat)
三月兔 (The March Hare)
睡鼠(The Dormouse)
红心骑士 (The Knave of Hearts)
胖胖兄弟(Tweedledum and Tweedledee)
炸脖龙(Jabberwocky, 有人喜欢他嘛?)
鹰怪(格里芬/Gryphon?)
鱼仆人(The Fish-Footman)
蛙仆人 (The Frog-Footman)
大狗贝亚德(Bayard)
大毛兽(The Bandersnatch)
其他群众演员…

CGI Server Push(CGI Comet) study

Lately we got a requirement about CGI Server Push implementation with plain CGI(aka: CGI Comet) from one of our clients,
I’m not familiar with C, so spent a couple of days making some studies,
And here is what I got so far:

First, CGI Server Push is technically feasible, but  it’s quite a departure from standard HTTP usage, which leads to several problems:
    1) There are unfortunate memory implications, because the message keep accumulating, and the browser retains all of that. All messages pile up in memory and on my POC app, Firefox got crashed after it keep running for 40 minutes. (A periodic refresh is a workaround here to solve this problem, say every 10 minutes, we should restart the long lived connection, that will be not pure PUSH, it becomes PUSH + PULL, but at least it works);
    2) The Two HTTP Connection Limit Issue, I remember this topic has been discussed in our team before, browsers typically only allow 2 concurrent HTTP connections per server. If a browser session has two HTTP connections already, any further connection requests will have to wait until one of these two HTTP connections is finished, but a long lived connection we use to implement PUSH is endless;
    3) The development cycle will be longer if we use CGI Server Push; Since I haven’t found a mature opensource framework for CGI PUSH so far, so we need to do a lot of work by ourselves;

If we really need to do that, here are the 2 options we can choose(actually there are also some other solutions for comet, but do not fit our case, so ignored them):
    1) XmlHttpRequest + Message delimited by a special token;
        The solution here is when XHR status is 3(means there is data comes in), then parse the response string and only look at the last valid value, and then invoke a JS method with the value(in JSON, XML or other data object);
    2) Hidden Iframe + Page Streaming with <script> tag;
        Every time browser engine encounter a </script> tag, the script in the tag pair will be excuted, so we can push script to client in denomination of script tag pair;
    Both of the 2 approaches need to restart the long lived connection in a while(I think 5 to 20 minutes is OK) to avoid the increasing memory consuming issue;

Also attach a snippet of a very simple POC on this subject:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//amourguo(at)gmail.com

int main()
{
  time_t t;
  struct tm *p;
  //printf("Content-Type:multipart/x-mixed-replace;boundary=amourboundary\r\n\r\n");//for non-IE browsers only
  printf("Content-Type:text/plain;");
  printf("Cache-Control:no-cache\r\n\r\n");
  while(1)
  {
    t = time(NULL);
    p = localtime(&t);
printf("–amourboundarystart");
    //printf("Content-Type: text/plain\r\n\r\n");
    printf("%d-%d-%d %d:%d:%d",p->tm_year+1900,p->tm_mon+1,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
printf("–amourboundaryend");
fflush(stdout);
sleep(1000);
  }
  //printf("–amourboundary–\r\n");
  return 0;
}

P.S.
Since DWR already provide the well-tested mature solution, and we are more fimiliar with that way,
So, if there is any chance, We should not give up talking our client into using DWR, it means LOW risk and agile development for us;
If our client persists in using plain CGI, then we will have a long way to go~

西藏第10天(2009年8月09日): 返京+总结

    最后一天,上午又去采购了一些特产就飞回北京了,没有照片;就借这一天的日志简单给这10天的旅程作一个总结吧;

当日费用:
早餐:6.70元
购物:445.50元
午餐(分摊):14.0元
午餐中的青稞酒:3.00元
至民航局打车费(分摊):4.00元
机场大巴:25.00元
当日小计:498.20元

———————————————————————————

10日费用总计:7,700.28元

其中:

    路费:5255.00元,占总费用的69%;
    购物:1099.00元,占总费用的14%;
    门票: 585.00元,占总费用的 8%;
    餐费: 415.08元,占总费用的 5%;
    住宿 : 343.00元,占总费用的 4%;
    其他:      3.20元,占总费用的 0%;

 

    这次出游,因为出行之前一直在忙,一些必要的提前要做的功课都没有做,包括西藏各地的风土人情和藏传佛教的一些典故也没能提前了解一下,这一路下来基本上是瞎玩过来的;假期时间太短,虽然10天时间对于很多上班族来说已经是比较奢侈了,但是对于西藏游来说,只能算是浅浅尝而矣;没能买到火车票,所以也没有体验到青藏线和沿途的风光,希望之后再有机会坐火车去一次西藏;从上图中可以看出,大部分的费用,都是在花在了路上,而食宿的费用所占的比例最小,如果采用最经济的方案,估计2000块就能搞定了,不过那也太自己跟自己过不去了,还是不推荐大家去尝试:-p

西藏第9天(2009年8月08日): 小昭寺+罗布林卡+布宫+购物

    今天是在西藏的最后一个完整的一天了,安排更加满当一些,因为时间关系还不得不放弃了之前曾计划要去的几个地方;最终定下来的就是上午去小昭寺、罗布林卡和布宫,下午则集中购物;

    早餐就在小昭寺路上的一家叫作“姐姐炸土豆”的小店解决的,店主是位藏族大姐,见我们是外地来的,一个劲儿地向我们吹嘘她店里的东西比起八廓街的那些藏餐厅又正宗又便宜,事实上大姐店里的东西也真是相当不错的,因为我们去得比较早,炸土豆和甜茶还都没有做好,我们就点了两份咖喱土豆、两份窝窝头和一壶酥油茶5个人就吃得饱饱的了,一共才花了14块钱,酥油茶也是真的比在滇藏区喝过的要更浓一些,窝头跟汉地的做法不太一样是用茶水煎蒸出来的(下边有照片,可以看到窝头底部有一圈黑黑的,那就是茶水留下的颜色);

    布宫的散客票订起来是比较麻烦的,ZN透过他的人脉联系到了一个旅游团的地接,以每人150元的价格把我们按他们的团员的身份带了进去(办的团体票),布宫对游客是采取限时限量游览的政策的,游客1小时之内就必须出来,而且为数不多的几个对外开发的地方之中又有大多数是不允许照相的,所以布宫里边的照片并没有几张;

    午饭后就是购物时间了,整个一个下午就都耗在了八廓街,虽然大多数情况下也分不清那些物品的成色是好是坏到底值多少钱,但是因为没有什么必需要买的东西也就没有什么心理负担,所以大家都很enjoy侃价的过程,几乎把到处侃价作为一种乐趣了,每每也是侃过几个摊子比较之后觉得价格合适才会入手,往往要价几百块钱的东西最终几十块就成交了,大多都是一些有纪念意义的小玩意儿,好在回去之后也有个念想;

    天色刚刚变黑的时候,突然下起雨来了,商户们都忙活着收摊回家了,我们也赶找了边上一家叫作“新满斋”的餐厅打算边避雨边填饱肚子,坐下后发现里边基本上清一色儿的全是老外,就连服务生说的都是英文;这样的环境,也就不用期待什么性价比了,不过平心而论这里的饭菜味道还是比较不错的,只是量小了些,呵呵,就拿甜茶来说,同样是8块钱的甜茶,在这里一壶就只够倒2杯的,这跟光明港琼甜茶馆的对比太强烈了;


小昭寺。比大昭寺要小很多,真替咱大唐的公主不平呵,谁教人家尼泊尔离得近又有共同的信仰呢。


罗布琳卡,DL的夏宫;


水池中间的佛像,应该是某位渡母吧,水池边上有一条大狗,没敢靠得太近;


这就是传说中的格桑花,很漂亮:-)

 
布宫一角;


宫布中的四大天王;


小宏抓拍的,应该是在说话中…

 
“姐姐炸土豆”店中的咖喱土豆;


“姐姐炸土豆”店中的窝窝头;

 
拉萨的公交站牌;从罗布琳卡回来时坐的公交车;


别误会,咱只是在午休;


布宫门票;

 
逛了半天累得不行,看小宏吃得真香;


新满斋餐厅的点菜单,服务生居然说得和写的都是英文…-_-|||汗

费用:

小昭寺门票:20.00元
早餐:2.80元
至罗布琳卡车费(分摊):4.00元
罗布林卡门票:60.00元
布宫门票:150.00元
中午小吃(凉粉,分摊):10.40元
八廓街购物:653.50元
晚餐(新满斋,分摊):21.80元
房费(东措):30.00元
当日小计:952.50元

西藏第8天(2009年8月07日): 再返拉萨

    雨一直持续到早晨也没停,醒来之后全身没有一点暖意,昨晚刚打的暖壶里的开水也冰凉冰凉的了,还好在这片住处的一个算是接待室的房间里有一个火炉,去跟老板要了点热水喝了,又在火炉边上烤了下火,这才缓过劲儿来,要不然估计会很容易感冒,乖乖,在西藏感冒可不是闹着玩儿的;值得一提的是,这里的炉子里烧的并不是木柴或是煤,而是干牦牛粪,以前只在书上或是电视上见过,当时还一直担心烧牛粪屋子里会不会很臭,今天算是亲自见识了,还真没臭味儿,大概因为这边的牛都是纯吃草的,并不吃饲料;

    下着雨,也没办法出去玩,等到司机过来,就提前往回返了,走到山口的时候,处处银装素裹,原来在我们住的地方虽然是下了一夜雨,但在山上则是下了一夜的雪,八月飞雪,这也是我平生第一次遇到了;

    在山上手机一直都没有信号,出了山,就赶紧给风马飞扬打个电话,可是还是晚了,老板娘说因为早上一直联系不到我们,我们预订的房已经给别人了;没办法,为了回拉萨之后有地方住,只能现查了平措和东措的电话打电话过去预订,结果平措也没有房间了,东措则还有2人间和6人间,就随即订下了东措的6人间的5个床位;

    来的时候同车的两个人这次坐别的车回去了,我们的车里就有了空位子,结果司机多杰趁中午在当雄吃饭的空档又找来一位回拉萨的客人,晕,真是不放过一切赚钱的机会;

    刚到了拉萨城里,天就晴了~-_-|||

    从风马飞扬把包取来,又去东措安排妥当,就在拉萨的街道和胡同随意闲逛了一会儿;

    东措的旧址据说本身就是一座文物建筑,我们住的房间,是以前的一个纺织车间改建的,晚饭回来后,这个6人间里又住进来一个台湾仔,是从北京一个人骑摩托过来的,听他说他在西藏待些天后,还要再骑去新疆;

    东措比风马飞扬大得多也要热闹的多,各色人等都有,住宿的标准也从15元/人的上下铺到几百元的房间都有,房子的墙上有很多先前的住客们留下的漫画或是题诗,旅社还提供免费的洗衣服务和Wifi,还有号称的24小时热水,不过洗澡间经常洗到一半就变凉了,汗-_-|||


八月飞雪,这在北京应该是不可能的事吧~


藏人的典型早餐:糌粑+酥油茶,他们会把酥油茶先倒一些到糌粑里,然后把糌粑攥成面团来吃;


炉子中烧得并不是煤,而是牛粪;

  
多恩爱的一对鸽子;


东措客房入口;

 
东措青年旅社的大门口,招贴板前总是聚满了来发布信息或是查看信息的旅友(当然,也有很多中介);

费用:
午餐(当雄):5.60元
晚餐:15.80元
房费(东措):30.00元
当日小计:51.40元

西藏第7天(2009年8月06日): 那木措的遗憾

    昨天已经跟一个中介人定了今天1:30pm去那木措的车,150元/人,第二天上午返回拉萨,这些车基本上与景区有些关系,所以车费也都是包含景区的进入费用的,如个人开车上去好像要单独交钱,具体多少就没有打听了,当然,那一晚的住宿费和餐费是要另付的;

    发车的时间是约在中午的,上午的时间当然是不能浪费了,于是乎大伙儿又起了一个大早,直奔大昭寺(对大昭寺不多作介绍了,感兴趣的同学请自行Google或百度一下吧),有些许意外的是大昭寺的门票居然是张长方形的光盘,不过至今我也没去看里边是什么内容;其实买票进来的游人并不多,边上有一个小门是专为给各地来大昭寺朝拜的人们,信徒们进寺都是不用花钱的,其实理论上我们也是可以在那里排队混进去的,但是有个小问题我长得实在太白了,又穿了冲锋衣,一看就是外地人,大家一至认为小宏如果换一身衣服再提一壶酥油,一定能逃票进去,不过说归说,大家还是都买了票进去的,一是我们是一个团队,大家不会因为省点钱而丢下谁分头行事,二是这些天已经领略了西藏好多的美丽风景,买张票为西藏旅游经济做点贡献也是应当的;进去之后就闻到重重的酥油味,里边也像外边一样排满了手持大把的1角零钱和酥油壶的信徒有秩序地膜拜一尊尊的佛像,寺内的喇嘛不停地往外运送在大殿里已经满了的信徒们供奉的零钱和酥油,可见这里的香火多么的旺盛(其实上藏传佛教的寺庙里是不烧香的,而是点长明的酥油灯,信徒来朝拜除了在外边磕长门之处也都是向油灯里加一些酥油或是供奉一些零钱);作为殿内为数不太多的几个游客之一,总有自己做什么都有些格格不入的感觉,估计在那些信徒眼里,也会视我们为异类吧,主殿里还有一尊释迦牟尼12岁等身佛像,当时文成公主带过来的,应该算是这里的镇寺之宝吧,不过我没能进去(要跟着信徒们一起排队进入);小宏好像进去了,据说他刚进去就被里边的喇嘛按那儿磕了三个头;话说回来,我在殿里走动时也被撞(是撞不是磕)了三次头,不知道是不是因为我没给佛祖磕头,佛祖不高兴了?

    从大昭寺出来,随便买了些带到那木措吃的东西,据说那木措那边的饭又贵又不好吃;买完东西之后,时间已经12点了;

    雪域餐厅,好像是在某个家伙的游记上见过这个名字,所以在我的建议之下大家都进了这家餐厅以便解决去那木措之前的这顿午餐,结果,虽然这里布置的算是有一点点味道,但是服务态度实在是不敢恭维,而且上菜巨慢,都到了1点了只上来一半的菜,最后为了赶时间只要把没上的菜取消饿着肚子结账走人了;难怪小宏说这里不是吃饭的地方,是吃调调儿的地方;

    因为今天晚上要住在那木措,而且去那木措也不用带太多东西,所以先退了房,又在风马风扬老板娘那里把大包寄存了起来;就等着车来接我们了;不过好像除了我们以外似乎所有人都不喜欢守时,我们左等右等又打电话催,那车1:50才到,之后又去接了另两个人,这才出发;我们车的司机叫才旦·多杰,是个很喜欢说话的藏族汉子(虽然他的中文有点@#$%^…),他的车是辆长安微面,不过一百多块钱的价格,有这车也已经不错了,聊天过程中了解到车上的另两个人是直接找多杰联系的,所以他们的价格是130,而我们多交的那20无疑是被那个拉客的中介人提走了,不过这也没什么可报怨的,出门在外,如果你不愿意多花时间多花精力去搜集相关的信息的话,就只能多花钱了,呵呵;

    一路上每每见到雪山的时候,大家都忍不住小声惊呼出来,多杰则很不以为然地说像这种小雪山,他们这里数都数不清,大部分连名字都没有;

    中午,在当雄一个小饭馆随便吃了些面条,味道不不错,特别是里边加的卤牛肉,虽然只有很少很少的几丝;他们这里面条要用高压锅煮才能煮熟;吃完饭发现边上有一家本地的小店专门卖牦牛酸奶的(扎西岛牦牛酸奶),正好买几碗请大家尝尝,店主中文很不好,我试图侃了一下价(他要价8块一碗),结果也不知道是他没听懂我说的意思还是怎么的,他试着说了两句我也没听太懂的中文之后,就干脆跟边上的一个人呜啦啦说起藏文来了,得,咱也别费那劲了,8块就8块吧;不过这酸奶还是比北京的真是厚道的多,非常稠,量又大,那浓浓的奶香是你在北京怎么也吃不到的,后来我们跟饭店的老板借了些白糖(他那酸奶绝对是天然无糖的,太酸了),最后只有我一个人把一碗全吃完了;小宏更是因为不喜欢奶味一口也没吃,哎,不喜欢奶香的人来西藏就像不吃水果的人去新疆一样,太可怜了,呵呵:-p

    出发的时候还是大晴天,走到一半,居然开始阴天了;

    中途的时候,由于有个路段在堵车,多杰带着我们走了一截土路绕了过去,在路上的一处孤零零的房子附近遇到一个非常可爱的小男孩,从我们的车还老远的时候就开始冲着我们招手,看起来也很开心的样子(后边也有他的照片),我们也向他回应地挥了挥手,在我的心目中,藏民应该都是像这样单纯和朴实才是;不过继续再往后走了一会儿,则打破了我的这个一厢情愿的想法,穿过一个小村子的时候,居然有一帮藏民在那里拦着过往的车辆收买路钱,还好我们的司机也是藏人,在跟他们呜啦呜啦一阵之后,没付钱直接通过了;

    过了那根拉山口(5190米)之后,这辆小破车跑起来就开始吃力了,给足了油门居然也连50迈都跑不到,只听到发动机的轰鸣声,没想到高海拔对这车会影响如此之大;

    车又向前开了一会,就到了我们此次的目的地那木措了,在订好了晚上住房间之后,趁着天还没黑,大家就先在周围转了转(幸好先转了一下,否则遗憾更大),并且边转边憧憬着明天早上的日出;那木措湖面很宽,有风的时候甚至也会有像海一样的浪花扑打到岸边;不过没多长时间,就下起雨来了,大家也不得不赶快返回房间,虽然大家的冲锋衣都是防雨的,但是到了住的地方之后,还是觉得身上潮潮的;到了晚饭的时间大家凑和着吃了一些带来的炒青稞、牛肉干、面包、饼干之类的,又从老板那里要了些开水来,喝了暖了暖身子;这山上本来温度就底,我们住的又只是没有任何取暖设施的小铁皮房,赶上下雨,就更加阴冷了,一晚上又是风又是雨又是雷的,有时还会有牦牛来拱门,估计它们也是太冷想进到屋子里来避雨吧;还有一个比较实际的问题就是厕所离得太远了,雨又越下越大,谁也不想冒雨过去,最后大家就索性不喝水了-_-|||

    大家随便聊了会天,自我调侃了一番,就直接和衣而睡了,我是外边又加了一套抓绒睡袋和两层被子,还是会觉得有些冷;隔壁的另一车的几位同学似首精力特别旺盛,玩了半宿的杀人,我还好躺下就睡着了,小宏说他被吵的上半夜就没怎睡;

    最后这次那木措之行,非但眼瞅着这看日出是没戏了,还成了名副其实的“自虐游”了,嘿嘿,不过留点遗憾也好,这样下次再来就更有动力了:-)


我们见到雪山都忍不住小声惊呼,多杰很不以为然地说像这种小雪山,他们这里数都数不清,大部分连名字都没有;


经幡,也有人叫做风马旗;

 

 
到那木措的时候也就下午2、3点的样子,天已经阴得很了;


那木措很大,风吹过来,居然也有像海一样的浪;


一大早,天还没全亮,我们就到了大昭寺;

 
画有吉祥八宝的走廊;


朝拜的尼姑;


朝拜的人们;


去那木措的路上遇到的一位非常可爱的小朋友,大老远就跟我们打招呼;


雪域餐厅的东西,中间那盘好像叫做“奶渣饼块”,奶味很重,只有我吃了几块;


楼梯下其实有个牌子写着“禁止攀登”,呵呵,做了回坏孩子;-p

 

 
我也不记得我当时在看什么了;


那根拉山口;


后面就是那木措了;


雨已经开始下了;


我们住的地方(风马飞扬)的小院子,摆满了自行车;

费用:

早餐:6.40元
大昭寺门票:85元
采购去那木措的食品:11.78元
午餐(雪域餐厅,半饱):14元
纳木措(车费+景区费):150元
当雄午餐:7.2元
扎西岛牦牛酸奶:40元
纳木措房费:30元

当日小计:344.38元