apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName’ directive globally to suppress this message

This can be overcome by two way.

  1. Add ServerName localhost as the last line in /etc/apache2/apache2.conf file.
  2. Create a file named /etc/apache2/conf-available/servername.conf and add the string ServerName localhost inside and save it. Create a soft link under /etc/apache2/conf-enabled as follows
    ln -s /etc/apache2/conf-available/servername.conf .
    # or
    a2enconf servername
    

and restart the server.

The string localhost can be replaced with any valid domain name (ie. example.com).

Sublime Text 2 – Raccourcis utiles (Windows)

come from https://gist.github.com/spyl94/3963465

Sublime Text 2 – Raccourcis utiles (Windows)

Préambule

Voici une fiche mémo pour vous aider à retenir ces fameux raccourcis qui vont vous permettre de gagner enproductivité. Prenez votre temps pour apprendre, il est généralement plus bénéfique de mémoriser un raccourci en lui associant une utilité tout en codant, plutôt que d’essayer de tout retenir d’un seul coup.
La notation Ctrl+KB signifie enfoncer les touches Ctrl et K simultanément puis relâcher K, enfoncer B tout en maintenant la touche Ctrl enfoncée.

Général

Ctrl+KB basculer la barre latérale
Ctrl+Shift+P invite de commande
Ctrl+` console python
F11 plein écran
Shift+F11 mode « sans distraction »

Fichiers et Fenêtres

Ctrl+O ouvrir un fichier
Ctrl+N nouveau fichier
Ctrl+Shift+N nouvelle fenêtre
Ctrl+W fermer un fichier
Ctrl+Shift+W fermer une fenêtre
Ctrl+Shift+T ré-ouvrir le dernier fichier fermé
Ctrl+S sauvegarder
Ctrl+Shift+S sauvegarder sous

Edition

Général

Ctrl+C copier la ligne ou la sélection
Ctrl+X
Shift+Delete
couper la ligne ou la sélection
Ctrl+V coller
Ctrl+Shift+V coller et indenter
Ctrl+Y rétablir ou répéter
Ctrl+Z annuler

Sélection

Ctrl+L sélectionne la ligne (répéter pour sélectionner les suivantes)
Ctrl+D sélectionne le mot (répéter pour sélectionner les occurrences suivantes)
Alt+F3 sélectionne toutes les occurrences
Ctrl+Shift+M sélectionne le contenu entre des crochets ou parenthèses (répéter pour incrémenter la sélection)
Ctrl+Shift+J sélectionne le contenu de l’indentation (répéter pour incrémenter la sélection)
Ctrl+Shift+Space sélectionne le contenu à portée (répéter pour incrémenter la sélection)

Lignes

Ctrl+KK supprimer du curseur à la fin de la ligne
Ctrl+K+Backspace
Ctrl+Shift+Backspace
supprimer du curseur au début de la ligne
Ctrl+Shift+D duplique la ou les lignes
Ctrl+Shift+[haut,bas] inverser les lignes

Divers

Ctrl+ / commenter
Ctrl+Shift+ / bloc de commentaire
Ctrl+KU mettre en majuscule
Ctrl+KL mettre en minuscule
Ctrl+M aller à la parenthèse ou au crochet correspondant
Ctrl+T transposer: inverser 2 lettres ou 2 mots (sans sélectionner)

Navigation

Ctrl+P Aller n’importe où. Cherche parmi les fichiers de votre projet.
Ctrl+R Aller à une fonction ou une classe dans le fichier. Équivalent à Ctrl+P, suivi de @
Ctrl+; Aller à un mot dans le fichier. Équivalent à Ctrl+P, suivi de #
Ctrl+G Aller à une ligne dans le fichier. Équivalent à Ctrl+P, suivi de :

Chercher/Remplacer

Panneau de recherche (Ctrl+F)

Alt+R Basculer en expressions régulières
Alt+C Basculer en sensibilité à la casse
Alt+W Basculer en correspondance exacte
Enter Trouver suivant
Shift+Enter Trouver précédent
Alt+Enter Trouver tout

Panneau de recherche dans les fichiers (Ctrl+Shift+F)

F4 Trouver suivant
Shift+F4 Trouver précédent

Panneau de remplacement (Ctrl+H)

Ctrl+Alt+Enter Remplacer tout

Diviser l’écran et onglets

Alt+Shift+[1,2,3,4] [1,2,3,4] colonnes
Alt+Shift+5 grille 4 groupes
Ctrl+[1,2,3,4] sélectionner un groupe
Ctrl+Shift+[1,2,3,4] déplacer un fichier dans un groupe
Ctrl+[1,2,3…] sélectionne l’onglet
Ctrl+Tab naviguer à l’onglet suivant
Ctrl+Shift+Tab naviguer à l’onglet précédent

Favoris

Ctrl+F2 basculer les favoris
F2 favoris suivant
Shift+F2 favoris précédent
Ctrl+Shift+F2 effacer les favoris

Packages

SideBarEnhancements

Ctrl+T nouveau fichier conflit avec “transposer”
F12 ouvrir dans le navigateur internet par défaut
F2 renommer conflit avec “favoris suivant”

Please sign in to comment on this gist.

毛里求斯游记

2014年初,我们去毛里求斯玩了一圈,回来后总的感觉就是,美丽,惊喜,疲劳以及时间不够。

这次旅游是我们早就预计好的,在201311月的时候,我们计划冬天是回国还是去旅游,因为没法请太长时间的假,所以我们就决定去旅游。

旅游地点选的很快,我们决定去一个好一点的地方,因为我们以前去的旅游都是相对来说便宜的,虽然我们觉得也不错,但是这次我们还是想到那些比较有名的地方看看有什么区别。所以我们就选择了法国人的旅游胜地,毛里求斯。之后在网上订的也很快,我们选了一个价格比较高的,每人要1600欧,填好信息后就准备付钱,虽然我付钱之前也打给了那个网站的业务员,但是他没有给我们什么优惠,其实后来才知道,要是我不那么着急,他会给我们一些优惠的。

第二天我和老婆就分别向单位请了假,由于这周是春节后第一周,她们基本没业务,所以很顺利就请下来的,我的负责人也要在年底就离开公司了,所以看到我请的是2月份的假,二话没说就签了请假条。

在去之前我看了一些资料,对这个岛了解了一些。老婆呢还是像以前一样一切交给我,完全大松心。

由于这个价格比较贵,在出发前的一段时间我还真有点小紧张,担心出了意外无法出行。还好一切顺利。

飞机是21号下午5点的,检录是2点,我们预计12点出发。

我醒的很早,就又随便翻看介绍毛里求斯的帖子,发现有不少人建议带防水相机去,可以照潜水照,我一看时间还早,就和老婆商量了一下,也准备买一个,然后我就立即骑自行车去了boulanger。老婆就在家收拾。

早上居然还下雨,搞的我骑了一身泥点子,我买了一个一次性的水下相机回来,不到20块,可以照27张,然后还要洗。有数码的,要150以上,我嫌贵没有买。

虽然我出去了一趟,但是早上的时间还是很充裕的。

我们13点就到了,以为很早,但是我们前边已经不少人了。差不多排了一个小时,就开始检录了。

在检录的地方老婆一直逼我问一个让我很尴尬的问题,就是飞机上吃的免费不。这次是长途飞行,按理说都是要免费提供的,因为我们以前遇到过飞机上吃喝收费的情况,那次为了省钱,我们在飞机上的5个小时没吃没喝,这次因为有了前车之鉴,就想预先防备一下,但是在检录时问这问题我担心人家把我看成吃货,所以还是有点忸怩。

我一直不好意思,直到全都弄完要走了,我才小声的问那个检录的女孩飞机提供食物吗,她到是很大方,详细给我介绍了一下,什么时间早餐,什么时间午餐,还简单和我说了一下食物内容。一切都是免费的。这下我们就放心了。

检录完,我们就去了麦当劳,因为我们从早上到现在还一直没有吃东西呢。

我们在麦当劳里待了一个多小时,老婆看到有M咖啡,就想要个摩卡,当时餐厅里人不多,M咖啡柜台前更是没人,我走到柜台前,才从边上过来了一个小伙,看上去很年轻,他很有礼貌的问我要什么,当我说我要摩卡时,我发现小伙的眼神有点迷离,然后停顿了2秒左右就开始转过身去准备,但明显有点慌,他先打开了冷藏柜找了一阵,一顿翻找下,不小心搞掉地上了一个长把咖啡勺,他顿了一下,然后他把那个勺就放到了咖啡机边上,然后竟然出我意料的停止了翻找,把冷藏柜关上了。我当时心一下就悬起来了,心想,他不是要用这个勺给我做吧,然后我的眼神就一直没有离开那个勺,准备在他要使用时提醒他换一个,但我还是白担心了,他到最后都没用那个勺。感情这顿翻找除了浪费点时间,就是让我肾上腺素增加了点。之后他打了一个双人咖啡在一个大的咖啡杯里,这和我以前看到的程序基本吻合,可是在这之后,他突然转过身,问了我一个让我有点惊悚的问题,他说:那个,你知道摩卡怎么做吗?。当时就把我定那儿了,然后他又补充了一句,不好意思啊,我是新手,其他人都不在。我当时感觉有点眩晕,因为说实在我也不知道怎么做。然后他很自然的拿出了菜单,摆在了柜台上,用很真诚的语气开始和我探讨摩卡应该怎么做,最后我们确定了一个方案,他就去做了。做出的还不错,但是最后在用那个杯子上我们有了一点小分歧,我记得是一个稍大一点的杯子,他却觉得不是,最后他只好跑到后边去问他的同事,这次是他对了,当然他的同事也跟了出来。付了钱,我就把摩卡端走了,回去才发现,他没给我咖啡勺,这时我才反应过来,那个勺子不是用来做咖啡的,是之后要给我用的。我立即又回去要勺子,心里也一直想,要是他给我那个勺,我一定要让他换一个,还好,他同事从盒子里又给我拿了一个长把勺出来,我接过勺后还瞟了一眼一直躺在咖啡机边上那个,心想不知哪个倒霉蛋儿要用那个勺子了

我们是4点左右去做的安检,可是遇到了一个班机客人集中安检,本来以为可以很快,没想到这里又排了30分钟。

飞机比预计的晚起飞了一个多小时。

我们上了飞机,座位是一个靠走廊,另一个是走廊和靠窗中间那个,我们到的时候,靠窗户的那个人已经坐在那里了,是一个胖老头,感觉有点亚洲血统,但绝对不是亚洲人,穿了一身皮夹克,腰和肚子牢牢的卡在了两侧扶手之间,胳膊搭在扶手上,但是已经占了中间那个椅子的一小部分,为了不让老婆难过,我就做在了中间,我一米八,85公斤。其实那个位置对我来说已经有点小了,在加上老头占了一小部分,我只能往老婆那边偏着,这一偏就是12个小时啊。

乘客都登机后,飞机还在停机坪上等了很久,那个老头从乘客陆续登机的时候就一直打电话,而且很大声,说的是法语,但是有点怪,后来才知道,他就是毛里求斯人,生活在法国,但是每年回毛里求斯待一段时间。他说在毛里求斯还有个房子呢,每年都要在毛里求斯待23个月,怪不得觉得他有点亚洲血统呢。

一路挺顺利就到毛球了。就是有点累。

下了飞机就感觉到温度不低,我们在飞机上已经把外衣脱了,这时就是穿着夏装。但还是感觉有点闷。

毛里求斯对中国人是免签的,所以只需要在边检口盖个章,这里都是说法语的,我们没遇到任何问题,但是那个边检员一看我们是中国人,而且居然说法语,一下子就兴奋起来了,好像看到稀有动物,一直叨咕,哦,中国人说法语,太少见了,然后和我们攀谈了几句,问我们为啥说法语啊,见到我们很高兴什么的,我们也觉得很亲切,所以这里给我们的第一印象就很好。

出了边检口,我们就去取行李,机场里人不多。只有我们这一个班机到达。行李我们着实是等了一小会儿,拿到行李我们出去了,出口也不大,外边有几家旅游公司接待口,然后最外边是几家兑换点,我们立即找到了我们的旅行社的接待人,她说要等等其他人,我正好借这个时间去换钱,老婆在那里等着加看行李,我在来之前看了攻略,说兑换时一定要砍价,要每家都问问,我一看每家打出的牌子都是40.12卢比换1欧,我就挨家砍了一下,最后我是用40.7换的,换了1000块。

换完钱,那边人已经全了,我们就一起去了外边找车,外边有很多小巴士,每个旅店都有一辆,去我们酒店的是一辆小巴士,我拉行李过去的时候,看到两个人正好在往车顶上绑行李,加上他们长相和印度人一样,我突然有了一种到了印度的感觉,而且这种把行李放到车顶的巴士,我已经好久没做过了。

其实车里一共就3家,所以也不算挤。

机场在岛的南部,我们酒店在北部,所以我们几乎是穿了整个岛。但是岛不算大,车一共开了1个多小时我们就到了。

到了酒店,我们就被震撼了,酒店有自己的海滩,那里真是太美了。比我们一起去过的那些海边都好多了,美多了。

这里的服务员一水儿都是印度人长相,身着长白袍,男的有的还带个白色的帽子,我更感觉到自己是到了印度了。

这时大厅里有好多中国人,横躺竖卧的,应该是一个团队,大部分人都说的是上海话,看上去他们是准备走了,正在集合等车来接。

我们到的时候是早上10点多。由于房间要到下午2点才能给我们,这时房间还没有空出来。所以我们只能在大厅里等着。

借这个功夫,我和老婆先把酒店简单转了一转。拍了点照片。对酒店简单了解了一下,

酒店有4个餐厅,一个是自助,另三个分别是中餐厅,印度餐厅以及毛里求斯海鲜餐厅。

自助餐厅不需要预定,但是另三个是要预定的。我们当时就预定了当天晚上的海鲜餐厅。

我们的早餐和晚餐时包的,但是酒水不包,中午餐也不包。但是我们白天因为有时候要出去,所以基本也不会在这里吃中午餐。

这里的桑拿等也都是免费的。

到了1点多,他们说房间已经准备好了,问我们要过去吗,我说好啊。然后他们让人先把我们行李送过去,又有另一个人带我们做着游览车过去的,一边走,一边给我们介绍酒店,带我们一路路过了泳池,沙滩。给我指了那里可以借毛巾,那里可以预定海上项目。

房间很大,我们以前从来没住过这样大的房间,而且海上面海的,十分惬意,就是房间里有点潮。这也正常,海边吗,而且在和阳台的门上写着,保持着门关着,不然蚊子会进来,说实在的,我们在来这里前听说过这里蚊子厉害,但是没想到这么厉害,在一天下午去游览一个公园,我们是真正的了解到了。

在房间里安顿好,我们又回到了大堂,我们屋离大堂确实也不近,我们几乎在酒店的最边缘。在大堂里,旅行社的人已经在了,她正好和同我们一起来的一对夫妻刚谈完,我们就坐下和她谈起来,主要是给我们介绍一下这里,以及每天的旅游项目,当然都是付费的,我们选择了看海豚一日游以及去岛的南边一日游。

接下来由于很累,我们先回屋子休息了一会,然后又去游泳池玩了一会,之后,到了7点,我们就去了餐厅。

餐厅里还没有什么人,只是有一桌中国人,是一家4口。

我们坐在了靠边的一桌,风景美极了。因为餐厅是在沙滩上的一个开放的大亭子里。所以视野是极好的。沙滩,海水,椰树围绕着我们。

很快我们就点了餐,因为我们这种是一个套餐,也没有太多可以选择的。这里的用餐习惯还是和法国人习惯一样,头道,主菜然后甜品。但是食物却是更靠近印度风味。头道和主菜都是有两个选择,我和老婆选的都是不同的,想都尝尝。

点完后,我们就欣赏起风景,这时发现周围的蚊蝇很多,而且我们都是短袖,所以他们都围着我们。旁边桌的中国夫妇这时也拿出个小瓶开始给两个小孩在身上擦摸,然后自己也喷了点,我一看觉得应该是驱蚊药,我就询问他们这个是在哪里买的,他们说是国内带来的,但是这里也有。在大堂的商店里就有。他们人很热情,把他们的药也给我们喷了一些,也多亏了这些药,我们这晚没有被咬。

这里的量不是很大,说实在的吃完了不觉得饱,但是也不觉得饿了。可我们在这样的地方一贯是放纵自己的胃的,因为晚餐是包的。因此在我们叫服务员结账时,暂时放下了面子问题,问了他一个我们常问的问题。我说,我们这里吃完了,还可以去自助餐厅吃吗?因为我看到我们在这里吃是要留下房间号的,同时也要签单的。那个小伙听完楞了一下然后笑容满面的说没问题,那里就是问一下房间号。完全没问题。

我们听完立即签了单,然后直接就杀向了自助餐厅,到了那里我们以为也就是吃点甜点什么的,可是看到菜也不错,然后就完全放开了,抄起盘子,直奔排骨….

我们这次算是真的填平了。带着满意的笑容回房间了。

第二天早上我们还是觉得有点累,因为有时差。今天是周一。

老婆在屋里收拾,我就先去了海边那个安排海上项目的小屋,8点多,那里已经有人了,是一个叫warrene的一个黑人,挺年轻的,当我和他说法语的时候,他高兴的不行。给我介绍了一些这里的海上项目,同时还介绍了一些其他地方的付费的海上项目。我立即预定了一个小时后的出海看珊瑚和鱼,这个是免费的。然后我还预定了一个潜水,还有一个海上降落伞的项目。这两个都是付费的。但是比法国的价格,这个就是太便宜了。

定完,我立即回屋了,这时已经快9点了,老婆还在向一贯一样,磨蹭。

我和她说了,她说她尽快,因为早餐是10点结束,但是船也是9.3010点。所以我借着老婆给自己做装修的时候,跑去充实自己了。当然,也给老婆拿了一些回来。

这是第一次在这里吃早餐,我发现这里食物风格完全是亚洲的,或者说详细点是印度的,好多各种蔬菜酱汁,肉汤汁等,而且肉什么的都是切了的,但是还不是向中餐那样。反正我不是很喜欢。还好,我找到了大米粥,味道还不错。

我随便吃了点就回去了,还给老婆带了点面包。

回去后,老婆已经画好了,我们就出发了,到了那里,正好9.30,那里已经有不少人在等了,大部分都是中国人。他们叫我们快过去,然后我们就最后上船了。

船上算我们有12个人,他们说可以装14个,所以还不是很挤。船的底是玻璃的,下面的东西一目了然,船在离旅店不远的地方转开了,水不深,很清晰,水底下并不是像我想象的那样丰富,但是还是看到了不少好看的珊瑚,以及一些鱼。我们开始不停的拍照片,大家也都相互告诉自己在哪里发现了什么好看的东西,只有两个是老外,其他的都是中国人,所以船上听到的都是中文。看来中国真是强大了啊。跟酒店的人聊的时候知道,在两年前,这个场景绝对是不可想象的啊。

快到10点的时候我们就回去了,下了船正好10点,下一波人已经在那里等了,老婆没有吃东西,我们就立即跑去看看还有没有得吃,还好,他们在收拾,还有好多东西,老婆就马上拿了不少,我也跟着又补了补仓。应为我们是早晚餐包,这次吃完就要等晚上了,周为没有超市,这里的东西也不便宜。能吃就尽量吃了点,正好也给我了一饱口福的借口。

吃完饭,我们没什么事,就决定好好利用那些免费项目,然后我们就去那个海边小屋,去预定划小船的项目,可到了那里他们说,不用预定,随来随玩儿。真不错。我们马上回屋子换了泳衣就出来了。

但这时我犯了一个严重的错误,我太高估我的皮的厚度了,以至于没有摸防晒霜,当然也是经验主义害死人,因为以前我在大连晒了一个月也没怎么样,就觉得这个也没事。但是当天晚上我就遭了罪了。

到了海边,他们给我们穿好救生衣,然后给了我们每人一个桨,他们一般给我挑救生衣,一边说这里很少见中国人说法语,以前他就见过1个,我说那这回算我们就是3个了。在我们身边还有两个亚洲人脸的游客刚取走小船,我听到他们说法语了,我就问说,那两个人不也是中国人吗,warren说他们是本地的中国人,不算,我们哈哈一笑就上了小船了。

我在后边,我们就在离岸也就2,3十米的地方玩。今天海上很平。几乎没什么浪,我们小船就随着微微的浪,沿着海边向前划去。我们也时不时的调转船头,让船正面对着浪,这样就能感觉到船的起伏。我们沿着海边划到了另一个酒店了,但也不是很远,距离我们酒店不到100米。这时天蓝极了,海边别墅式的酒店,在椰树的簇拥下,在加上闪着银光的沙滩,真的感觉我们就是在画中游。

海上虽然很平静,但那一点点微波也足以把海水不停的打进小船里,所以老婆说自己一直在海水里泡着,她也一直没停下用拖鞋往外舀水,笨笨的,显得可爱极了。

我们玩了一会就回去了,这时在小木屋外已经聚集了好几个酒店员工,尤其是有一个年龄大一点的,在树下弹着吉他,真是惬意无限啊。当时我真有种要留在这个岛上的冲动。

我们想回屋冲了一下,在屋子里休息了一下,但是在路过游泳池的时候,正好看到刚才遇到的那两个本地中国人,以及他们的孩子在游泳池里玩,我就提议我们去游泳池玩玩,正好我还想和他们了解一下岛上的情况,希望得到一些在这里玩的建议。我们在泳池里待了一会,也和他们聊了聊。原来这里的中国人都是很久以前被骗来开金矿的,其实是这里需要人,正好那时候是金矿热,好多人去了旧金山开金矿,他们就说这里也有金矿,然后好多广东的客家人就倾家荡产的来到了这里想发财,可是到了这里才发现是到了一个天堂一般美丽的地方,但是他们也发现,在这个天堂里,有吃有喝就是没有金子,最后,他们由于没有钱,同时也是这里很好,他们就决定定居在这里,现在他们已经是第三代,第四代了。所以,他们很多人已经不会说中文了,只有很少的人还会说客家话,尤其是现在年轻一代,都只会说法语,英语和当地语言了。

因为我们下午还预定了去浮潜,要养精蓄锐。我们没待很久就回屋休息了。但后来才知道,我们想简单了。

我们预定的是下午2点出发,老婆还是一贯的在屋里磨蹭,我按耐不住就先去打探了一下,也多亏了先打探了一下。

我到了那里,还是warren在那里,我就和他聊起来。我主要问的还是那个深潜的事情,因为老婆一直很关心。他说那个没有玩过也没关系,我就放心了,然后又扯到了浮潜上,我说这个简单吗,以前没玩过也没关系吗?他很自然的说,这个没玩过可不行,一定要会才可以,我一听心就凉了,然后我就坦诚的和他说,我和我老婆以前就没玩过,他一听,有点小惊愕,然后又向我确定了一下,看到我坦诚的态度他知道我没开玩笑,然后和旁边同事招招手,让他们过来,然后说那今天去不了了,你们要先在旁边的游泳池里练习,不然去了海里就剩喝海水了。我一听心凉了半截,但也庆幸。因为这总比喝了一肚子海水后在问他还是好多了。

我马上跑回去和老婆说了,然后我们就去旁边的游泳池等着了。一会儿,来了两个黑人小伙,其实我觉得其中有一个就是小孩子,最多不过1516。他们每人都带来一个潜水镜,潜水镜上都有一个管子,是呼吸用的。

说实在的,这个看上去简单,但是也却是要先学习和习惯一下,要是贸贸然直接下海,必然被灌个半死。那个大一点的教我,小一点的教我老婆,这时游泳池里还有其他的中国人,我们也不怕丢脸,就练习了起来。

开始我总是想用鼻子口一起喘气,以至于潜水镜里总进水,导致结果就是鼻子呛水,鼻子一难受,嘴就失去了控制,然后一口水自然而然的就进肚里了。开始我着实是喝了不少,想一下,也许那些跳河的,偶尔有几个应该是被撑死的吧。

后来我慢慢习惯了,可以一直不起身游了,然后我就开始练习排除进入管子里的水,这个很好弄,只要用力吹出一口气就行了,即使是在肺里没气时候,如果水进的不多,也可以一点一点吸气,气会突破水的阻碍进到口里,只不过要慢,不然就连水带气一起都进口了。很快,我已经呼吸自如了,我就在边上自己练。老婆也可以带着游了,就是不会处理进了水怎么办,她说是她肺活量小,出不出来进去的水,我让她试了好久,每次都只是像放了个屁一样,扑哧扑哧喷了几个水花或是冒了几个泡,但是水还在里边。真是愁死我啦。旁边的小黑也抓耳挠腮想办法,能看出来,这种情况他还是第一次遇到,估计他心里就一句话,真是太笨啦。又试了好多次,我仔细观察她的处理过程,终于发现了问题,她吐气嘴张的太大,出来的气没有劲儿,我教她把嘴憋成一条缝,使劲吹,这次终于行了,小黑也松了口气,然后让我们沿着边练,他跑去和他的同事和其他的中国人比赛游泳。我一边练,一边会被随时叫起来充当翻译。大家玩的很高兴。

到了快5点,他们说他们要下班了,然后我们把水镜还了。然后我们出了水,商量了一下,最后决定在到处走走,我们就这样走到了大厅那里,正好桑拿按摩中心也在那里,我们决定进去看看。

我们小心翼翼的走了进去,那里很清静,没有客人,只有3个服务员,以及一个工人在那里整修地面,一个服务员问我们需要什么服务,我还是很土的先问了最想知道的问题,这里免费不。她说这里除了按摩,都是免费的。我们很高兴。然后说我们想自己看看。她就给我们简单指了一下那里是按摩室,那里是健身房等。然后就离开了。

我们在走廊里转了转,然后就进了健身房。

我们很高兴,因为那里有免费的水,而且还有免费的水果,虽然我们当时也觉得我们有点显得有点没出息,但是这里毕竟是5星级酒店,我们的合同里还不包括饮料,所以这也是一个不小的惊喜。

老婆做的更鸡贼,立即拿出我们的空矿泉水瓶子灌了一瓶,还一边灌一边向我炫耀说,怎么样,我反应快吧。我却是有点哭笑不得。当然她也是半开玩笑的。其实我们也不差水,我们每天有两瓶免费的,我们每次吃饭时候的点的水也喝不了,我们也都带回屋。以至于在走的那天,我们屋里剩了好多瓶水。不能带走,只好都扔掉了。

我们在这里开始试开了每个健身器,有跑步器,自行车等。我着实的练了一会儿,老婆就子边上看着,在我练的时候,进来了一个服务员。我练累了就和他聊了一会,夸了这里好,我也给他看了我手机里的东北的冰雕,冰城,借机会夸了我的家乡。

练累了,我和老婆就出去了。我们又来到前台,说想看看桑拿室,水疗室在哪里,一个小姑娘带我们过去了。在男女厕所前,她说我从男厕穿过去就是,她带着老婆从女厕穿了过去。在厕所里我又遇到了上午遇到的那个当地人,他们原来是马上要离开酒店了回家了,他们只是来度个周末,因为正好现在是中国年,就来这里放松一下。

穿过厕所,就进入了浴室,这里不大,只有六个床位,一个水疗池,一个淋浴室,有两个桑拿室,但只有一个启用,估计是因为来这里人不多,再有一个就是蒸汽浴室。这时里边没有人,那个带我们来的小姑娘说这里人不多,还说,这里好多中国客人,很可惜他们都不会说法语和英语,不清楚这里还有这个服务,所以几乎没有中国客人。这里的服务也没有起到作用,她说的时候也是一脸惋惜。其实我当时也没好意思说,也许即使他们知道,也不一定会来的,因为这里的设施和国内的洗浴中心来比那真是小巫见大巫。国内的服务是她们想都不会想到有多好的。这里的设施中国国内来到怎会看上眼啊。说实在的,这里连城乡结合部的水平都不到。

但是可能我刚才练的有点猛,再加上时差以及飞机上没怎么休息,致使我在明天,也就是周二的游岛中吃了大苦,也现了大眼,说实在应该是我从小到大少见的丢脸这么厉害的一次。

但是刚练完我感觉还是很好的,尤其是在午后的阳光下,在银白色的沙滩上,那是相当的惬意啊。

我们晚上在中餐吃的饭,但是说实在的,这里的中餐搞的根本不像中餐,很像印度餐。我们又遇到了昨天晚上遇到的那家一起吃饭的中国人,他们来吃中餐了,好巧啊。那个妈妈来问我们每道菜都是什么,因为只有英文和法文的菜单。从这个细节也能看出来,以前这里的中国游客却是不多啊。

吃完后,我们依旧杀向自助餐厅,但是今天我觉得挺饱,就吃了点甜点。但是我老婆真是不客气,抄起盘子,从头道到甜品又搂了个遍。说实在的我也被惊到了。开始觉得她这么用生命去战斗也不是个事儿。这么个吃法会出问题啊。

周二早上我们起的很早,因为要去参观岛的南部。

我们早上到的时候,那个旅行社的地接已经在等了,看我们来了马上招呼我们,车已经在了,是一个面包车,车里已经有一对法国夫妇了,我们打了招呼,就坐在他们后边那排,我们上了车,那个地接也上了副驾驶座,关上门就开车了。原来这次旅游就我们两家。连导游都说我们是VIP待遇啊。

导游很热情,给我们介绍了岛的情况,这个岛主要以旅游业和农业为主,农业主要是茶叶和蔗糖,同时也介绍了这里的人口组成情况。这里有120万人,主要是印度人和非洲人为主,同时也有少量的华人和法国人,这里以前是被法国占领,后来这里法国人被英国人打败,就把岛让出来了,但是在投降之前提出来了要求,第一是这里法国人可以继续留下,第二是这里人要继续说法语,所以造成这里官方语言是英语,但是人们日常说的都是本地语言和法语。这也是法国人高的地方,其实这里说什么语言,可以说是当地人就和那里更近亲一些。尤其是在这里独立后,现在已经成为法国人的度假天堂。

这里有个特有名的已经灭绝的动物,那就是渡渡鸟,导游也说了这个,她说渡渡鸟被荷兰人吃光了,他们的蛋没鸟照顾,也被老鼠都吃了,造成灭绝,现在要是想看鸟是不可能了,但是想尝到鸟的味道还是可以的,然后问我们怎么能尝到,我们说了一堆主意,可惜都不是,最后她公布了答案,那就是吃荷兰人就能尝到鸟的味道。我们都笑了。但说是在的,这个笑话有点冷。

我们还聊了一聊这里的经济水平,这里人的工资差不多是200-300欧元,房子也不是很贵,富有的还是法国人,当然,在这里的中国人,大部分都是经商的,所以生活水平也不差,由于经济实力强,所以每个中国年都办的红红火火的,以至于这里的中国年庆祝活动都成为当地一个著名的旅游观赏项目写进官方旅游指南。

这个岛本身就不大,没多久我们就到了一个火山口,现在已经是休眠了很久了。也是这里一景。但是上边的人不多。我们照了一些相,待了一小会儿。在上边就有一个摆小摊儿的,买的是一种当地的小红果,倒是不贵,都是切成小块儿的,一小所料杯的红果,还不到10卢比,也就是25欧分,我们尝了一小块,真心不咋好吃,然后看着也不是很干净,就没买。没带多久,我们就起程奔下一个景点去了。

接下来她把我们拉到了几家卖纪念品的店,那两个法国人买了不少衣服什么的,其实也都是法国常见的名牌,他们说是买了送给在巴黎接待他们的朋友,他们不住在巴黎,但是飞机要在巴黎做,所以来这里的头天晚上是住在一个巴黎的朋友家。因此要买点东西表示感谢,这里也实在没什么纪念品。所以就买了点这些衣服。我们只买了一点明信片。然后就和那个店的老板娘攀谈起来。虽然我们没买多少东西,但是她倒是很热情。给我们说了这里那里好玩,然后还给我指了她家院子里的一棵树,说这个树是空心的,节的果实很大,可以用来做面包。

然后我们又上车去了一个做船模型的小厂,其实就在这个小店50米远的地方。厂里边人很多,中国人也不少,看了中国人真是要占领全世界啦。首先一个小姑娘把周围的几个人组成一个队,问了都说法语,然后给我们介绍了一下怎么制作船的模型,然后就给我们带到了后边的商店里,这里边全是船的模型,好多有名的船在这里都有模型,比如说泰坦尼克号。

这里就自由参观了,我们队就分散了,到处随便走走看看,那个小姑娘看来是很有经验,一看我们是中国人,在队散了之后就一直跟在我们后边,给我们介绍这个是什么船,那个叫什么,估计认定了我们会买的,可是我和老婆低声嘀咕说,孩子真可怜,这次看走眼了。我们是中国人不假,可惜是从法国来的。

小姑娘跟着我们转了几圈,不停的介绍这个,介绍那个,我们都只拍照不买,说真的,我们老婆都有点不好意思了,后来小姑娘可能也有点着急了,直接说我们这里还有一些价位很合适,样子也漂亮的,你们来看看吧,我和老婆是有点尴尬,但是还是来者不拒,让看那就别客气啦,她有给我们介绍了几款小的,却是也不是很贵,也就几十欧元,但是我们根本就没有买的心,说啥也没用啊。尤其是在我们周围的中国人不停的拿货,而且还都是那些动辄几百欧,有的上千欧的船,小姑娘终于放弃我们,转向其他的人了。

这回我们就更自在了一些,我们看到这里还有地下和二楼,我们就都逛了逛,二楼就是其他的纪念品,没什么可看的,地下让我们又是眼前一亮,因为这里边有好多很大的船,价格也都是上万欧元的。我们还是照了不少相片。

我们出来时,那对法国夫妇已经在外等了,我们马上上了车就出发了。

我们下一站来到了一个佛教景点,这里有一条朝圣的路,在路的尽头,有一个大佛,现在他们也正在准备再建第二个,具体是什么佛我已经记不得了,总之对我们来说就是一个词, 照相。我们又像所有的中国人一样,照了不少相,连那个建造了一半的也照了。Pose也基本就是那几个。我其实还好一点,我照相想突出点景,人就小了点,可是老婆想突出人,所以基本都是人占了相片的大部分,景不多,如果照片里没有什么特殊的东西做提醒,基本分不出是哪里照的。像所有的女生一样。。。

不远处有一小片湖,周围还有一些小的佛教雕像,都是印度风格的,有什么象,猴子等,这里有一些人,说实在的,我想说不少人,但是和国内景点比起来,这里人数就是那些未开发景点的人数,很轻松你就可以照到照片里只有你自己一张脸的照片。这个湖里有很多鱼,这个确实是很多,感觉用手可以很轻松的捞上来几条,国内景点是很少见的,湖的周围还有很多猫,不知道这些猫那里来的,但是都不怕人,同样也是一个奇景,听说在印度的庙里都是有很多耗子的。我居然还看到这里的猫在扑鱼。我见到一只猫,就站在一个凸进水里的一个石头上,小爪子半抬在空中,然后时不时的朝水里掏一下。

在导游的带领下,我们还做了一个祈祷,绕着一个东西走了8圈,然后摸摸那个东西的脚,然后摸摸头。在那个小庙口,还有一个牛,我们也是祈祷了一下,具体怎么搞忘了,但最后还要敲一下头上的鈡,我是重重的敲了一下子。

在那个庙里,一个主持和尚还给我和老婆每人都头上画了一个红印,导游说了代表什么,我没大听懂,但是能看出来那个主持和尚,意在让人捐点钱,这里的捐钱箱是吴堡一小箱,十步一大箱,而且由于在我们之前还有几个人画了,但是都没有投钱,到我和我老婆的时候,他在画完后还特意指了指捐款箱,但是动作很自然,很随意。看来之前那些人的不解风情让他是有点hold不住了。我后来还是投里了50卢比,就相当于1.25欧元吧。

关于web 服务 rest 教程。转帖

当HTTP被发明出来的时候,其实REST就已经存在了。可惜这么多年来,WEB开发模式却越来越背离HTTP的本质,舍本逐末的追求起RPC之类的东西。此时REST重新回到人们的视线里,无疑让大家开始反思过去走过的弯路。

本文并不想从头介绍REST,只是想举例说明一下需要注意的问题:

先来看看人们对REST的困惑:

REST什么样子?

最一般的REST例子,类似下面的样子:

1 POST   /articles     创建
2 DELETE /articles/123 删除
3 PUT    /articles/123 更新或创建
4 GET    /articles/123 查看

顺便说说几个知识点:

GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化。当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的。

PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。

POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。

还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别在于POST是作用在一个集合资源之上的(/articles),而PUT操作是作用在一个具体资源之上的(/articles/123),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。

浏览器不支持PUT/DELETE方法怎么办?

大部分浏览器只支持GET/POST方法,这使得我们无法完美的实现REST。对于这样的情况,大致有几种解决方法,一种是在表单里加入一个_method之类名字的隐藏字段,用于表示真正的方法,另一种是使用X-HTTP-METHOD-OVERRIDE头信息来重载POST。

HTTP方法够用么?

从上面的例子,我们可以看到,通过使用已有的HTTP方法:POST,DELETE,PUT,GET就可以完成资源的增删改查,但在实际情况中,我们需要做的操作往往并不仅仅局限在简单的增删改查操作中,比如说我们要把一篇文章“置顶”,但是HTTP方法里没有一个和“置顶”操作相对应的方法,这时候该怎么办呢?REST对类似问题的解决方案是:创建一个新的资源!在上面的例子里,我们可以这样:

1 PUT /toparticles/123

通过创建出一个新的资源(toparticles),我们就可以使用简单的HTTP方法通吃一切操作了。

REST反对使用Session么?

牢记一点,REST拒绝Session!这是因为REST强调无状态性。这里的状态指的的应用状态,也可以称之为会话状态。一旦在服务端保持了这样的状态,那么架构的可扩展性将大打折扣。在REST看来,任何类似的状态本身都应该是一个独立的资源。

Cookie对REST有害么?

一分为二的看,如果Cookie里保存的是应用状态的话,就没有问题。因为应用状态本来就属于客户端。但如果使用Cookie保存类似PHPSESSIONID之类的东西就不对了,因为这样的数据并不属于客户端状态,它只不过是使用Session的借口而已。

再来看看REST在PHP中的现状:

PHP里的REST实现案例不多,有点影响都就是CakePHP和Zend,下面分别看看他们的实现:

CakePHP:

设定路由:

1 Router::parseExtensions('xml');
2 Router::mapResources('articles');

编写控制器:

1 class ArticlesController extends AppController {
2 var $components = array('RequestHandler');
3 function view($id = null) {
4 $article = $this->Article->findById($id);
5 $this->set(compact('article'));
6 }
7 // ...
8 }

视图:

1 <articles>
2 <?php echo $xml->serialize($article); ?>
3 </articles>

差不多就这样了,相应的,还可以实现其他的功能,于是,如下REST操作便成为可能:

1 POST   /articles
2 DELETE /articles/123.xml
3 PUT    /articles/123.xml
4 GET    /articles/123.xml

总体看,CakePHP的REST实现基本上是按Rails风格来实现的,大体还过得去。

ZendFramework:

ZendFramework通过Zend_Rest组件来实现Rest功能:

服务端:

1 require_once 'Zend/Rest/Server.php';
2 function sayHello($who, $when)
3 {
4 return "Hello $who, Good $when";
5 }
6 $server = new Zend_Rest_Server();
7 $server->addFunction('sayHello');
8 $server->handle();

客户端:

1 require_once 'Zend/Rest/Client.php';
2 $client = new Zend_Rest_Client('http://path/to/server/script');
3 $client->sayHello('Davey', 'Day');
4
5 echo $client->get();

这时候,我们看一下Web服务器的日志,会发现生成了一条如下的记录:

1 GET /path/to/servier/script?method=sayHello&arg0=Davey&arg1=Day&rest=1 HTTP/1.1

我们发现,实际操作方法是由URL中的method=sayHello指定的,而HTTP固有方法(GET/POST等)则成为了摆设,这是典型的RPC风格,如果大家对比Zend_Rest和Zend_XmlRpc文档的话,会明显发现它们根本就是一个东西,所以说,Zend_Rest是一个REST伪实现。

http://www.nowamagic.net/librarys/veda/detail/1247