Category: Uncategorized


好久不见

现在的我们是如此地浮躁,匆忙地起床,匆忙地上路,匆忙地晚餐,匆忙地睡觉。日复一日的生活没有给我们留下喘息的机会,回首看看自己走过的路。

我的生活就像在下坡上的滑板,越滑越快,路旁的风景已经渐渐模糊,也不知道路的尽头有什么在等待着我。

或许日子就是这样,或许生活就是这样。

Euro Trip Day 3

意大利人腿真长,莫扎特这个小短腿当年也是个杯具

从萨尔斯堡出发前往Innsbruck。早餐依然是嗷嗷牛B。

|靠谱的瓷器

|自己装盘的食物

达到后停在Maria Theresien-Strasse的尽头,开始步行。我觉得这个城市是很典型的奥地利小城。这个城市曾经两次举办冬季奥运会,到现在还能看到远处雪山上面的滑道。

|城门

在街道的尽头是Godenes Dachl(金顶屋)。其实就是一个金顶的阳台。。。原来是公爵的府邸。

|金顶屋,其实就是个金顶的阳台。。。。据说是真金

一不小心错过了Swarovski的总部,因为时间关系没有多看。

收拾好行头就开始一路奔向意大利。这是第一天正儿八经地开车,欧洲人开车很野蛮,大货车换线不会提前给你任何信号。有一次险些被挤到护栏上面去。

穿越阿尔卑斯山脉,来到了意大利北部。一路上风景如画。给我的感觉是欧洲人喜欢在山尖上盖房子。几乎每个像样的山头都有个城堡。路上远处还看到几个很壮观的城堡,可惜没有机会下去。我回到Seattle以后一定要把沿路的城堡都找出来研究研究。

傍晚时刻终于达到了威尼斯。意大利的路各种纠结,到处都是round-about,各种转圈圈,搞得我们头晕脑胀。我上周更新的欧洲地图还有各种看不到的新路,我们要经过的一条重要通路居然封掉了,绕过至少20公里才达到住处。

扔下东西,直奔威尼斯。这时已经将近日落。

众所周知,威尼斯是个水城。本质上是亚得里亚海湾里面的一个小岛。本来是没有通路的。后来因为游客的不断增加,才有了高速公路和铁路。

以前总听说这里的水很臭,本来以为要捏着鼻子逛街的。后来发现远没有想象的糟糕。因为海水的不断侵蚀,城市的建筑都很老旧,但是街道依然赶紧,小城里面人们的生活也是井井有条。

|威尼斯,下午

|水城,小街

|街头的人们

岛上的路非常难走,一天下来总结的经验是,不看到指示牌不转弯。在小巷里绕了20多分钟以后终于到达大运河的边上。沿着运河来到了Rialto桥。在路上已经走过了无数的小桥,到这里才知道什么叫壮观。

桥有三进,全部是大理石修成。这也是大运河上面最老的桥。

|威尼斯最老的桥,也是最高点处最壮观的桥

岛上的Pizaa非常靠谱,这也是我到意大利以后第一次吃Pizza。味道真的不错。4欧元一片,说得过去。

|威尼斯的Pizza

过桥来到岛的另外一边,圣马可广场就在这里。广场比平时照片里看到的大了很多。日落时分的色彩给本来就神秘的广场蒙上了一层美丽的色彩。在这里拍到了St Mark’s Basilica的外景。明天准备再访。

|教堂一角,一抹余晖

经由Accademia桥来到南边的岛上,这个岛同时也是Santa Maria della Salute的所在地,可惜时间已晚,不想在威尼斯走夜路的我们沿着小巷子向车站前进。

|日落威尼斯,摄于Accademia桥上

岛上的巷子很窄, 真的是寸土寸金。威尼斯曾经是世界上玻璃的唯一产地,同时也出产威尼斯面具。街边的小店铺玲珑满目,几乎没有重样的。

|街边小店

|美丽的街道

|画一样的水道

|傍晚一景,岛上的住民已经很少

回到旅馆后第一件事情当然是就地留名。结果在马桶上发现了一个悲剧,意大利人腿真长。我这个181.5(注意,有.5)的个子坐在上面和座吧台椅没什么区别,脚不着地发起功来总有些内力不足。想到莫扎特也曾到意大利演出,他这个小短腿当年也是个杯具。

收拾行头,第二天准备再入威尼斯!

|晚安,威尼斯,明天再见

Euro Trip Day 2

HB就是青岛啤酒的祖师母

欧洲的网络真不发达,满哪儿找不到wifi,搞得我欲哭无泪。于是由每日连载改成哪天有wifi就哪天连载。

到达慕尼黑的时候已经是晚上大概5点多了。扔下东西以后就奔向市中心的Marienplatz

慕尼黑的纬度很高,夏日这个时候天黑得很晚。走在步行街上面的人很多。即便是周一的晚上,每个小酒馆屋外的桌前都坐满了客人。

欧洲人的生活很悠闲,每个人的面前都摆着大大小小的啤酒杯。走在街上,许多住家的窗口都悬着花盆,古老的雕花窗口被五颜六色的花朵陪衬着,无不给这个历史悠久的城市添加的许多的生机。

步行街上四处都是贩卖水果的摊子,不知道为啥大家都在卖白色的芦笋,估计是正好到了季节。

不知不觉之中来到了(两个大绿顶)教堂。教堂的塔顶非常有特色,感觉造型很受东正教教堂的影响,完全不像Marienplatz里面教堂的哥特式屋顶。在德国这样一个宗教单一的国家里,一个城市里面会有两个迥然不同风格的教堂也算是一种奇观了。

从教堂继续前行来到Marienplatz。这里的建筑是很夸张的哥特式风格,让我想起了很多游戏的场景(比如Assassin Creed)。 后面会更详细地介绍。我们一行人沿着广场边的后街来到了HB的总部。

HB(Hofbraeuhaus)是德国最畅销的啤酒品牌。大厅里坐满了世界各地(特别是中国)来的粉丝。一个很胖的中国大叔卖力地指挥着演奏的乐队,看来这啤酒的确不错。。。。

|HB总部

大厅的一角有几排上着锁的柜子,里面存放着的是常客们专用的酒杯。

|上了锁的酒杯柜子

吃了店里推荐的烤猪肉,配菜是土豆丸子。味道非常让我失望。唯一感动的是啤酒。在青岛长大的我,很喜欢青岛啤酒的味道。HB就是青岛啤酒的祖师母。麦子、啤酒花、发酵的味道都比青啤要浓很多,让你从骨子里明白什么叫啤酒。

(当然,喜欢浓一些啤酒的同学们请点黑啤)

|青岛啤酒的祖师母

|烤猪腿和。。。。??0_o

酒足饭饱以后,回到旅馆倒头就睡,睁眼的时候已经是早上8点钟了。

下楼吃饭,早餐还是依然精彩。这天还多了血肠和(软奶酪)可选。但是我也发现了,德国人不喜欢吃冰的东西。所有的橘汁、牛奶等等,只能说是冷,和水龙头的温度差不多。

|慕尼黑的早餐

拿到车子以后,一行人再次踏上征程,奔向这天的第一站——Schlosspark Nymphenburg。虽然不能说让我大失所望,但是本质上也就只能到此一游。这里是路德维希国王的夏宫,比起承德避暑山庄来说,这个行宫真是简陋到了一定程度。

Theatinerkirche ,是个很有特色的地方。虽然并没有什么让人惊艳的感觉,但是街边的狮子雕塑,拱门上精细的浮雕和街边悠闲的人们,无一个不流露着欧洲的气息。

12点钟赶回了Marienplatz,站在钟楼前看着跳舞的人偶,想到这是几百年前的作品。从头看到尾,才发现这里面讲述了一个故事。这里的人民经受着外来的入侵,这时候一个英雄站了出来,带领着骑兵打败了敌人,快乐的人们跳着传统的方块舞庆祝胜利。

驱车来到了萨尔斯堡(Salzburg,直译是盐城堡的意思),这里是音乐大师莫扎特的出生地,指挥大师卡拉扬的故乡和电影音乐之声的拍摄地。

|萨尔斯堡,全景

|萨尔斯堡,全景,上上

萨尔斯堡是个山坳里面的小城。除了满大街挤满了的游人,一切都那么地恬静。

|小城街道

登到山上来到了萨尔斯堡要塞,这个是萨尔斯堡的象征。多年前曾经是一个重要的要塞,占据城里最高点的城堡。整个外墙都刷成了白色,没有辜负盐城堡的大名。

从城堡下山的半路上经过了岩石教堂,这是一个很不起眼的教堂,完全是靠岩壁里的隧道挖掘出来的。里面的空间也很小。

|岩石教堂半路上

下到山脚,走到了著名的Getreidegasse。街边仅是各式各样的小店。当然,看看下面的图片还会发现让你崩溃的麦当劳。

萨尔斯堡城外 遭遇了来德以后的最大悲剧。请看下图:

厕所里,左边门上写着Herren,右边门上写着Daman。我琢磨,Her=她,ren=人,那就是女人咯,Daman,这个就更简单了,Hip-hop里面不就是The man的意思嘛。直接推门进去,一个大妈一脸崩溃地看着我。我泪流满面地退了出来。。。。。

收拾干净以后,继续前进。进入了Salzburg Cathedral。这座教堂门口写着三次建设的年份。里面墙上的浮雕非常让人赞叹。悬空的水果栩栩如生,天使脸上的表情,眼睛的细节一丝不苟。宗教的力量真是伟大。

|精细无比的浮雕

教堂侧面是Residenzplatz,里面有一座著名的喷泉(见下图),其实还蛮失望的。。。。

回到住处吃晚餐。三个人分别要了猪扒,牛排和煎鱼。附送了前菜和炸土豆。

|迷迭香炸土豆

|鱼

这里真的值得细说一下,炸土豆是和迷迭香一起炸的。送来的前菜也非常出彩,嫩煎牛排陪兔肉做的冻肠,配上意大利香醋和冬青叶橄榄油。一切都恰到好处。主菜里面的煎鱼做得非常有追准,食材也是非常新鲜的鱼肉。这里不多介绍,以后有机会复制给大家。其他两样也都是上乘水准。只可惜价格有点贵(一个人大约26美刀)就在这样快乐的一餐里面结束了第二天的旅程。

Euro trip day 1 – Stuttgart

终于有网了,感动!

小时候总是喜欢看飞机起飞的样子,看着地上的房子慢慢变小,汽车渐渐变慢。于是总是专门要窗口的位置。

后来长大了发现两点:

1.窗口的景色不再那么吸引我

2.人老了,要常上厕所,懒得麻烦旁边的人

昨天领取登机牌的时候,柜台姑娘问我要窗口还是过道的座位,我想也没想就要了过道的座位。后来有点后悔,于是又补了一句,要窗口那边的。

飞机是波音767,座位是 2 4 2。也就是说,窗口边只有两个人坐^^。

但是最后还是崩溃了。同座的德国姑娘平均两小时起来一次散步。还没看到景色。我就这样变成了茶几。

—————

在这里不得不先抱怨一下飞机。首先是食物,让我这个很不挑剔的家伙忍无可忍。幸好自己带了点儿零食充饥。其次是干燥。下飞机的时候感觉自己像撒哈拉来得难民,找到水咣咣猛喝。

(哇,难道德国的电不一样?笔记本充得非常快啊。)

飞机落在法兰克福。飞越城市上空的时候瞟(注意,不是看)到外面的景色。河蜿蜒地流过城市中心,深绿色的森林里点缀着红色瓦顶的房子。和16年前的样子完全一样。多少让我想起了一些曾是德国殖民地的青岛。看着看着,飞机穿越了云层,汽车渐渐变快,房子慢慢变大。。。。。

这次旅行的一大目标是斯图加特的奔驰汽车博物馆。很崩溃的是德国的大部分博物馆在周一都不开门。

飞机13:20到达,出关13:40,我们一路直奔火车售票处。一个热情的大叔在一番介绍以后推荐了任意3天有效的特种票给我们。外国游客凭护照可买。

|售票处

|车票

14:47坐上了ICE高速列车,奔斯图加特而去。

|高速列车

ICE最高时速300多公里,车子里安静到让人发指的境界。本质上比我家里的卧室安静。我当时还仍有一些时差,直接就昏死过去了。

—————-

奔驰博物馆的外观很有特色,让我想到了一个扭曲的水煮蛋。

里面陈列着 ——————————汽车

|著名的300SL

好,不要觉得很冷。里面陈列的的确是汽车,从世界上第一辆汽车到2010年最新的SLK系列概念车。下面是一些选出来的经典:

—————-

住在市中心的一个小旅馆,其貌不扬,进去以后才知道什么是欧陆风情。浴室大概有我现在的浴室1/4个大。更加强大的是旅馆的电梯,上面标注可以乘坐5人。我们一家三口勉强可以挤进去。突然又一次觉得减肥的必要。

当晚在一家小餐馆搓了一顿。好歹算是把飞机上饿着的份儿吃回来了。两杯啤酒下肚以后,感觉欧洲之旅就这样正式拉开帷幕了。

|第一天的晚餐,绝对传统。 啤酒相当不错!

第二天一早就下楼吃早饭。又一次感慨欧洲人生活真tmd的好。没什么好说的,直接看图吧。

|餐具+杯具

|家母表示:这只是一般水准

回到了父母大学时的宿舍,十几年过去,楼里连味道都没有变,一开门,回忆扑面而来。

日子是过得如此匆匆。我们都不曾驻足回忆。花儿开了又谢,谢了又开。青春就这样,一去不复返了。

|斯图加特火车站里面的小火车,小时候就爱玩

回到斯图加特市中心,坐下来吃甜点。注意!!冰激凌是用玻璃杯装的!!怪不得欧洲人各种鄙视美国人。

一口吃下去,只能喊,我靠!4种梅子都是用朗姆酒煮过的,上面的炸面包球也浸过了白兰地,配上下面四种口味的冰激凌,一口下去吃得我内牛满面。这,揍四省活。

|特别推荐——梅子冰激凌

据说斯图加特是个很没有文化的城市,可是我怎么觉得每一步都是景色呢。。。

现在是下午4:06。我正坐在ICE上面奔向第三站,慕尼黑。

More pictures here: http://www.flickr.com/photos/2bethere/sets/72157624104351085/

试试看integration



2009Fireworks_02, originally uploaded by tsxy.

刚才有一个好搞笑的警察开过去了。。。。

Flickr

This is a test post from flickr, a fancy photo sharing thing.

Euro Trip Day 0 – Departing

还有一个半小时就要登上飞往法兰克福的飞机。在法兰克福当地周日13:20着落。

此刻我的心情很平静,西雅图的机场还是一样的熙熙攘攘。好在有免费的wifi可以用,使得这一个半小时的等待不那么漫长。

已经很久没有这样出游了。还记得小时候非常喜欢坐飞机。因为离开舱门的那一刻眼前总是一个不一样的城市。连空气的味道都不再一样,我很喜欢这样的日子。

工作以后变得经常飞来飞去。各地的朋友,各地的事情,还有远在大陆另一个角落的家。渐渐地背过了每一个机场的代号,记得了每一个机场转机的路线,熟练地通过安检。飞过的里程越来越远,经历的故事也越来越多。还记得在扭腰的JFK卡了20个小时,在芝加哥的ORD过夜,在亚特兰大的ATL座轻轨转圈圈。。。。。

后来看到George Clooney演的Up in the Air才懂得,我害怕寂寞,喜欢孤单。

回头看了一眼窗外,天气很好,是难得一见适合远行的日子。未来10天欧洲的天气也很好。非常期待未来这两周的trip。飞机离起飞不远了,收拾收拾去登机了~~

欧洲见。

Path Finding 101

I was suppose to post an article on Code Project about this, but there is a new project that I need to work on ASAP, the article will have to wait.

This post will serve as a quick intro to the path finding world. Everything is implemented in C#. If you want source code, post in comments and i’ll get back to you.

This article is written by TSXY [at] 12thocean.com. Website: http://blog.12thocean.com
You are welcome to repost or use any part of the article for your own post. Source code are available upon request. Please send me a link if you post this anywhere.

First one is DFS or depth first search. As you can see, it’s not very smart. Due to the fact it’s looking down the road accoding to a predetermined path. In this case, counter clock wise.

Well, this obviously is not a good solution, people then started think more efficient way to find a path. In this case, a 3 line change to our non-recursive DFS made it into BFS or breath first search. The idea is simple, look at all your neighbors before moving on.

Here is the result, impressive, but not efficient enough. Why? just look at the memory comsumption. The little blue squares means that block was part of the search. Not very efficient..

Then there is the ultimate algorithm for correctness. (Note, not efficient, but correct) Dijkstra Algorithm.

This is designed to evaluate all possible routes and find the minimun path. Kinda like dynamic programming, where you keep looking for ALL possible solutions and update the grid with lowest solution.

The result is impressive, since it’s the most efficient path. The cost? LOL. I don’t even want to think about it.

Well, those are obviously not great solutions, what people came up is a combination of DFS and Dijkstra Algorithm. The idea is simple – Instead of looking at all possible routes, try the one closest to the destination first. And the result? Can I say WOW! Look, no square is wasted during the path finding.

This is super smart in terms of path finding. It’ll find a close to optimal result all the time. But as you can see, it’s not THE most efficient path. Why? Because there is a function, let’s call it G(x). G(x) is the estimated cost from cell x to destination. In this implementation, G(x) is the direct distance between x and destination. The cell with lowst G(x) will be evaluated first. This makes sense since this cell will “likely” be closer to the destination.

However, it might not be correct due to blocks on the road etc.

Then here is the ultimate algorithm. I call it A* Plus. Since it’s just a little addition to A*. It finds the optimal path, while uses far less memory than Dijkstra.

How? It’s all about how G(x) is designed. In this case, G(x) is direct distance + Obsticals on the direct path.

It’s very tricky to count obsticals along the path as you may notice. I actually implemented  Bresenham’s line algorithm to calculate the cost.  And the result:

Now let me mark this to be the end of this project. It’s unlikely for me to do the actual post to code project at this point. But who knows!

:)

更新Blog的space provider

Backup backup and more backup.

Apprently goDaddy just lost my entire blog DB unless I pay them another $121.xx to renew. Oh well, at least this is a good place to start again.

Trashed by godaddy

,,,,,,,

Powered by WordPress | Theme: Motion by 85ideas.