广西游记

第一站:富川

2号,清晨起来,背着大书包,吃着热腾腾的叉烧包,启程了…

省站、罗冲围、三水…车开得太慢了。9点到12点一直都还在广东游荡。我也特佩服咱们的同胞们的在时间使用方面的“阔达”:

  1. 车子坏了,修了大半个小时。
  2. 修车的时候丢了位乘客,兜了一个小时回去修车的地方。
  3. 中午还整个吃饭时间。才五个小时的车程也有吃饭时间?后来事实证明我们用了9小时。

到了贺州,其实离富川还是有挺长的一段距离的,加上路漫漫其修路也,到达富川已经是下午6点了。

天气比广州冷多了,我和Feng都穿着夏装。于是马上在车站旁找了个小旅馆放下行李,穿上长袖去吃饭了。

这个小镇很冷清,很小,连路灯都没开,街道两边的小楼都是三四层的,统一是白褐两色的复古风格。才六点多,很多店铺还已经关门了。其他店铺也没什么特别的。我们逛了几个弯,没找到旅店老板说的小吃街。只是发现一排水煮牛杂串、豆腐串之类的小吃车,还有几家炒面的摊子。

跟牛杂车的老板聊,知道富川这地方就是传说中的369地带。年轻人都出去打工了。以前他就在福建那边打工。女儿也在那边出生的。老板应该是比较憨厚的,问他为什么不出去闯荡了。他说,挺多老乡在广州开餐馆的,晚上经常遇到吃霸王餐的,虽然能赚点钱,但是不想去。

我们吃了点牛杂、豆腐、小菜,加两碗米线就步行到风雨桥。一座古桥,横跨宁静的小河。河对面有一个广场,有人在跳舞,还有一些小游戏摊子。出来游玩显得放松,我跟Feng玩起了“打地鼠”机。一块钱一次,还能选一件小玩具。

接着,我们还是怀着觅得特色小吃的念头,去到一家田螺店。其实田螺的味道一般般的,也许是我们吃不惯这样的广西风味。而龟苓膏到是比较清凉。

九点多,回到旅店,端起一壶热水,上楼休息,准备明天的行程。

秀水状元村

在富川车站对面的一家小店吃了早餐,回到车站门口就遇见一部朝东小巴。我们赶紧招手,上车。其实,他们还没到时间去朝东的,不过,刚好要到发车的桥头去等待发车。

从富川镇到朝东要差不多一个小时的路程,到朝东镇转乘摩托到状元村。这里还保留着明清时期的传统建筑,民风淳朴。我们走进村里,遇到一位老妇向我们介绍她的旧屋子,还有旁边新建的房子。还请我们到家里去看看,告诉我们往哪边走的风景漂亮。

下午,我们又赶回富川镇,准备前往贺州……

热闹的阳朔

本来预计在贺州逛逛黄姚古镇,就回广州了。虽然秀水的山水让我们感到惊叹,但是,这仅仅吊起我们的胃口。加上,“桂林山水甲天下,阳朔山水甲桂林。”的美誉,让我们果断地踏上阳朔之旅。

大巴一路穿山而行,从下午4点到晚上8点,4小时才到阳朔。

  • 阳朔大桥边上的碧莲峰在灯光照耀下与江水相映生辉。河岸的灯影纷繁像天上的街市。
  • 终于,在西街街口这里不是一般的繁华,人潮涌涌,跟广州的闹市差不多。不过,我是比较讨厌人多的。
  • 街道的小楼都是跟富川镇一致的复古风格的外墙。

随着人流从十字路口到西街车站,本想买了明晚的回程票。但是,这两天我们两个背包客已经完全进入状态。“别着急啦,这里人多车票也紧张。而且买了车票我们还得回来呢!”,我说。因为打算明早从杨堤泛舟漓江到兴坪,然后就什么都不想了。哪里有好玩的就去看看,逛逛可能赶不回啦。而且,今天下午在贺州看了贺州车站人比较少,在阳朔游之后回到贺州先更好啦,即使不能当晚回广州,也可以住一晚然后再逛逛贺州啊。

人多!还是人多。去到一家大排档问问有没有位置。然后,那服务员问,“多少位”。“两位。”“没位置了”。我们两个饿鬼只好走到西街车站大屏幕对面的小吃摊了,有啤酒鱼,烧烤,面条米粉的……。位置还不错,也比较干净,价格还可以接受,我们就坐下来吃了啤酒鱼、烧韭菜、还有两碟炒面。

问起老板这里有没有便宜的住处。老板说帮我们打电话问问,竟然找了个550块的。哇塞,那刚下车的时候那位给我们推家庭旅馆的才250块,是不是太便宜了。老板说,是啊,你们不懂阳朔,这算超实惠的了。唉,我们都准备到车站候车室过夜了呢?

享用了这餐美食,我们就走在西街,准备买件大衣什么的,以度慢慢长夜了。不过,由于半天的劳顿,最后还是被疲惫“出卖”,到当地人的家里投宿了。

在这家人作客了解到

  • 阳朔的房价相对其他县贵多了,四潘多一平方。
  • 房主公司总部(深圳)的同事经常在周末就自驾到阳朔玩的。
  • 繁华的西街卖的都是外地生产的东西,没什么特色商品。跟广州的市集差不多。

不过,我们期待的是明天在传说中的漓江。

JavaScript实现尺寸的渐变

相对与颜色渐变来说,Size的渐变相对比较简单。因为尺寸的变化本质上是一个或几个十进制数的变化。不需要考虑数据类型和属性值的格式(字符串操作)。

今天要用JavaScript实现一个Resize的渐变效果。目标如下:

  1. 可以调节渐变步距、渐变周期、渐变过程
  2. 触发渐变动作中止,渐变回原来的状态。

主要的函数

  1. 渐变的单步动作easeInOut
  2. 渐变函数(doWithChangeMem):实现渐变从开始到结束的过程。结束情况分两种:
    1. 渐变达到预设效果;
    2. 另一个触发渐变的事件发生。

继续阅读

JavaScript的线程模型

JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序。

单线程的JavaScript引擎是怎么配合浏览器内核处理这些定时器和响应浏览器事件的呢?

CPU通过速度和时间片“欺骗”用户。而JavaScript没有将任务分片吧,仅仅简单的将任务排队。


继续阅读

利用!important解决IE6双外边距问题

IE6 下是可以使用 !important 的,但相同选择器内如果 !important 不是写在最后,则 !important 失效。相同元素的不同选择器下,单独定义同一个属性的值,不管选择器的顺序如何,!important 仍然会生效。

via IE6 的 !important – 幸福收藏夹

之前,在处理IE6的双外边距问题时,通常对相邻的两个浮动元素使用display:inline。现在多了一种选择了。

继续阅读

关于定位的:offsetLeft,offsetTop

offsetParent是父结点(element.noteParent),祖父结点……中,最近一个应用了position定位的元素结点,如果没有则返回null。

例如,

<div id="container01" style="position:relative">
    <div id="container02" style="position:relative">
        <div id="container03">
            <div id="offsetRelative"><p>the offset div. position:relative;</p></div>
            <div id="offsetAbsolute"><p>the offset div. position:absolute;</p></div>
        </div>
    </div>
</div>
  • div.offsetRelative和div.offsetAbsolute的offsetParent是div.container02

继续阅读

在IE6中使用max-height

在IE6中实现max-height的方法:可以使用IE-specific CSS expressions(本质上,把JS表达式绑定到CSS属性值中。)。这不是好的解决方法:

  1. expressions会在很多页面时间中重新运算。
  2. 微软也承认expression()是一个错误,并在后续浏览器中都不支持此特性
    For backward compatibility, CSS expressions are still executed in Quirks and IE7 Strict modes. But starting with IE8 Beta 2, they are ignored in IE8 Standards mode.
  3. 远离CSS expressions,使用JavaScript吧。参考:
    1. High Performance Web Sites: Rule 7 – Avoid CSS Expressions · YDN Blog
    2. Stop using poor performance CSS expressions – Use JavaScript instead – Robert’s talk

继续阅读

与图片相关的减少HTTP请求方法

终端用户80%的等待时间花费在前端。大多数时间花费在下载所有的页面文件:图片、样式表、脚本、Flash等。这些文件都是通过HTTP传输的。一个文件对应一次HTTP请求。

因此要减少页面的文件,可以:

  1. 简单化页面的设计
  2. 合并文件

如果各个页面有不同的脚本和CSS,那么合并脚本将是一个大工程。以下是3种跟图片相关的减少HTTP请求的方法。
继续阅读