饭后去外滩散步

有时事情就是那么意想不到,中午随便吃了个拌面,然后奇哥说随便转一圈,不知不觉就转到外滩去了。

曾经可是当作一个旅游景点,特意的特意,在挤过千万可爱的老百姓之后,才得以一睹芳颜,而且每一次都是往摊边靠,因为那边人多。现在那里因为迎世博,在整修,于是这次终于可以细细的欣赏一下那一排漂亮的怀旧建筑。

好多建筑的窗顶都是半圆式设计,窗格的设计也非常别致,小石米砌的外墙十分有质感,很厚重的感觉,线条轮廓布置也很有意思。街边的电线柱,错综复杂的黑色电线,绿顶路灯组合出一个相当有历史感的画面,不知道是在那个电影里面看见过——路灯下站着一位穿着米白皮草的高贵女士,一辆黑色老式汽车缓缓驶过来,女士轻轻的靠过去,轻语几句……

然后走过几家酒店,穿着典型的黑色制服的服务生在门口伺候着,转出路口就是外滩。

我们在招商局和浦发之间的路口等红灯变绿,面前有两个老外,走出去路中间,迎面过来的车辆被拦住了,他们继续过马路,后面紧跟着一群人也无视红灯过去了,我们也一脸诧异的跟过去了,看见被拦的司机表情很是无奈……我只能用一个我自己都不太相信的理由来说服自己:那两老外没看见这里有红绿灯。

我一边走,一边在说着从朋友那里听来的关于那幢浦发大楼里原石大柱子的故事,然后就进了浦发。门口三扇旋转门,一转进去,简直像是走进宫殿一样,八角形的门厅,圆柱支撑的圆顶分三层,都有壁画装饰,灯光辉映下,金碧辉煌,典雅华贵这些形容词好像都不太够用。穿过门厅就是柜台,黑色的柜台延展整个矩形的大堂,天花是拱形玻璃顶,几个柜员在给客户办理业务,我们在一张非常古典设计的沙发上坐了一会,好好享受那种典雅的感觉。可惜浦发里面是不能拍照的,那两老外一举起相机就被保安阻止了……

这些都已经超出了一个午饭后散步所期待的……

看海

蛇口看海很久没看海了,那天在蛇口穿过半岛城邦来看海,对面并不是完全的一望无际,向往已久的香港就在另一边。

海风就是海风,吹得我需要刻意调动一部分肌肉来维持直立行走的状态,还有那么一丝咸味,这种状态还真是写意。

享受这么自然的舒服感觉,看到后面的半岛城邦,本来可以理解它为何卖得贵,这时却突然不理解了。

半岛城邦

半岛城邦

在海边休憩的人还不少,有放风筝的,有钓鱼的,有遛狗的,更多的是像我们这种在瞎逛的。

那种放松的状态真是可遇不可求,一行人在不着边际地聊天,表情和动作都如此愉快真实自然,我不禁偷拍了好几张,不过,为存厚道,我就不公开了。

往咸鱼港走去,越走感觉越不对劲,空气里面咸鱼味越来越重。那里真实叫什么地名我不清楚,但是咸鱼港的确是叫对了。

绕到内港,一排排渔船,相当的壮观。见此形势,我开始YY了,在设想着这里变成一个军事港口,眼前所有都是战船,大家都在忙忙碌碌着进行整备,似乎为即将要到来的战事做准备,远方港口正面的部署了大量大炮,防御工事还包括了新式电塔,可以释放威力巨大的电子炮,是钳制敌方舰队的利器……

有人很不爽,把我们拉回现实,继续走。
咸鱼港

话太普通

听了很多遍还是觉得 农夫 这首歌很有意思

牛肉
纽郁
六点半
路点伴
我喜欢你
我是honey
你讲乜啊?

我普通话太普通
怪小时候不用功
我喜欢你却不能沟通
情话在我心中却卡在喉咙

我普通话太普通
怪小时候不用功
我说广东话你听不懂 你
识听唔识讲啊

姑娘 爱怎么不走过来
对面的女孩都已经看过来 看过来
让我心花为你朵朵的开
我想 带你去山顶看夜景
我要 带你去中环shopping
你要 (粤)去边我就去边
这些话怎样说才行

你喜欢我不喜欢 为何你一见我就发呆
喜欢我不喜欢 为什么你都不说出来

因为
我普通话太普通
怪小时候不用功
我喜欢你却不能沟通
情话在我心中却卡在喉咙
我普通话太普通
怪小时候不用功
我说广东话你听不懂 你
识听唔识讲啊

姑娘 怎么不走过来
对面的女孩都已经看过来 看过来
看我心花为你朵朵的开
我想 带你去好吃的茶餐厅
我要 带你去兰桂坊honey
你要 (粤)去边我就去边
这些话怎样说才行
好啊 去边系乜野啊

你喜欢我不喜欢 为何你一见我就发呆
喜欢我不喜欢 为什么你都不说出来
艾 可能不知道我的名字
其实我在香港很红又在上电视
很多冠军歌 写很多歌词
这一次 特别献给你
我和你语言不通 我普通话与众不同

我想告诉你你的小小威风
怎么说你才懂 我真是没用

我普通话太普通
怪小时候不用功
我喜欢你却不能沟通
情话在我心中却卡在喉咙
我普通话太普通
怪小时候不用功
我说广东话你听不懂 你
唔好意思啊 我唔识听又唔识讲噶

高空

科技发达真是好,有了飞机,让我不用在火车上晃个一晚,在床上感觉再晃一晚,取而代之是安安定定的在家睡好一晚。

躺在床上还在想坐我前面一排的小BB,因为气压变化的关系在竭力大叫,似乎他也只有喊这一招了,连美丽的空姐都只能微笑地看着。

搭乘深航的客机回深圳,摄于深圳宝安机场
搭乘深航的客机回深圳,摄于深圳宝安机场

我看着他做了几个鬼脸,好不容易吸引住他的视线,终于安静下来,开始扯她妈妈座椅顶上的护巾顺势丢给我,我本能地放回原处,他又扯下来丢给我,我又本能了一下,他再扯下来……好几个来回之后,我怎么感觉有点像一个人和他的宠物狗在玩丢骨头 -_-!!! 不过正如方大同的那首歌简单最浪漫,他居然玩得笑起来,似乎已经完全忘记耳膜的疼痛。
对于小BB来说,咬东西是本能,他开始咬那条护巾了,我也出于保护本能用手顶着他的头,结果被他爸爸发现了,眼神好像有点奇怪,我解释,稍稍送了下手,他顺势咬下去了,好可爱。一边咬一边笑,似乎很享受被我顶着咬不着的感觉。

经过几个回合之后,我开始用美丽空姐给我的矿泉水去逗他,奇怪的是他手移动得有点慢,有点像游乐园里那种抓玩具的机器手,抓了几回之后,居然大笑着把我支水拿走了。他妈妈教他把水还给我,但似乎他已经相当喜欢拿我的水这个新玩意了。当其时,空哥(为什么是个男的,不解)来派点心,他对我的点心的关心程度远大于对他自己的,一直趴在那里看,还出手拿走了一包蛋糕。幸好得到他父母出手相助,才得以完蛋归赵。小孩子其实对待事物很公平,甚至不分你我,快乐是如此的本能和随心,但我们社会的分配原则并不简单,教育成为了必要。当他日后形成了与社会大众一直的观念之后,他就必须面对这个矛盾的社会。在得到一些快乐的时候,会引起一些不快乐,在遭遇一些不快乐时,会无视快乐的存在。

想不到长久以来解不开的思绪,在千尺高空上,和小BB玩的过程中无意解开了……

难道那就是天堂,他就是天使?

好,明天五一,虽然没有确切的计划,却依然可以尽情享受这个难得的假期……

4月下旬的势
4月下旬的势

昨日,怀着非常压抑的心情去看了《南京!南京!》,进场时发现观众其少,算我们一共才6个人。

灯光渐暗,黑白屏幕上闪现着一张张明信片,很是怀念这种黑白胶片的感觉,色彩褪去,轮廓和层次感成为主角,引导着焦点的变幻。在这崇尚哗众取宠的世代,川选择了以这样的一种表达方式来宣示电影的真实感觉。

不是开玩笑的,我开始根本不知道该以一种什么样的心态去看,现实的事情已经令我一头扎进了死胡同,这时的唯一可能的就是客观去看。没有任何期待,保持着冷静,即使是在高呼中国万岁时,也是平静得镜面,只反映镜像内容,不愿意去调动任何一条神经来处理。调动情绪是很消耗体力的,但忍耐其实也是一点不省的。

如果用最唯物的话来形容这个电影,那大概就是杀人方式之大杂烩,真是各色其色,个个“精彩”,生命根本一文不值,在那种势态下,根本来不及做些什么调整,多余的抵抗是一种本能,逆势就是不生活,就是不真实。战场上没有无辜者,战场外一样没有。

我为什么还要继续看下去呢?这种事情(不是具体某件事)大家早就知道了,目前的状况就是这样,势是如此,抵抗是多么的多余,多么的费劲,越抵抗只会越把简单的问题复杂化,但即便如此,心里还是相信,抵抗不是多余的,不是愚蠢的,势是会变的,信念就是扭转势的动力,或者说是必须的交换代价。

之前和庆华一直在讨论为别人的幸福而奋斗的话题,那个幼稚的梦想,不知为何每次遇到障碍时,我都会回去思考这样一个话题。不过每次思考的重点都不一样,这次在于相互理解。也许每个人都在为自己的幸福而奋斗着,我应该怎么做呢?如果不能很好的理解对方,相互之间有怎么很好地合作呢?

就像很早之前我就直言,太和谐了不一定好。特别是和谐到容不进任何一点有有损和谐味道的事情发生,这本身就说明这种平衡太脆弱。就事论事是需要平等的氛围,任何一方的兜圈子,过分的维护感情,过分的优先印象,互相理解的平衡就会被打破。我不擅长于猜测心理,圈子兜多了,自圆其说都勉强,我就更不知道该如何去理解了。大多数人都做不到不计历史的,印象优先使得一些初始印象莫名其妙地根深蒂固,致使我竭力去改变印象时变得异常艰难,现在许多人对我的印象还不知道停留在那个年份。我自己也做不到完全不凭印象去判断,但我会尝试去用新的印象去进行叠加,同时保持最乐观的假设。互相理解,我们就不需要再兜圈子,不必再计较太多过去,平等地面对每个人,虽然各自有各自的利益需要维护,但是有了互信才能合作,合作才能够提升整体实力。

势不是个奇怪的东西,就像化学定律一样,趋向于平衡,平衡被打破又再趋向新的平衡。
互相不理解,各持己见,勉强维持的平衡被打破也是无能为力的;
如果能达致互相理解,那么提升团队竞争力也是顺势而为。

DIV Background Bug in IE

也不是第一次拿 IE 说事了,不过这次 IE 的 bug 还是有点意思的,也看到过有人提及这个 bug,解决的方法就是在CSS里设置它的 width 或者 height,要看具体的应用场景了,好像下面的这个例子。

<div class="composite">
    <div class="item">AAA</div>
    <div class="item">BBB</div>
    <div class="item">CCC</div>
    <div class="item">DDD</div>
</div>
<style type="text/css">
.composite {
    background-color:#CCC;
    padding: 0 0 0 40px;
}
.item {
    background-color: #666;
    padding: 0;
}
</style>

简单得就是两层 div,有深浅不同的灰色背景。当里面那层 div 只包含像 text、input 这类的元素(我暂时还不致于无聊到逐一去尝试)时,它的背景色就不显示的,不过也不是永远不显示。

DIV no background in IE
DIV no background in IE

有趣在这里。当你用另外一个窗口,例如 QQ 聊天窗口,在上面移来移去,哈哈,那个背景色出现了,但只是一部分——被重绘的那部分,当时给一个同事看的时候,他还问:这是怎么实现的啦……
囧!!
DIV 的背景出现在重绘之后
DIV 的背景出现在重绘之后

目前我还没想明白到底是为啥出现这种状况。解决的方法也是相当的离奇,不知道是 IE 的 box model 的问题还是什么,不过通过设置 width 和 height 可以解决 IE 不止一个 bug,大概不会是 IE 计算区域的占地面积而造成的吧!

.exprItem {
    background-color: #666;
    _height: 1px;
    padding: 0;
}

上面通过一个 CSS hack 是其中一个解决方法,这种写法只有 IE 认得出来。因为通常情况下,我都希望元素自己去管理其领地而不要来问我应该拨多少地。

* IE version is 6.0.2900.2180.xpsp_sp2_gdr.080814-1233

绘制弧线

在 canvas 里绘制弧线也是非常简单的。

arc(x, y, radius, startAngle, endAngle, anticlockwise)

x, y 是圆心坐标,radius 是圆弧的半径,startAngle,endAngle分别是弧线起点和终点的弧度,注意,是弧度,而不是度,它们之间可以通过

function radian(degrees) {
	return (Math.PI/180)*degrees
}

来进行转换。最后 anticlockwise 用于指示弧线绘制的方向,true 时表示逆时针方向。

var canvas = document.getElementById('myCanvas');
var size = 220;
canvas.width = canvas.height = size;

if (canvas.getContext) {
	var ctx = canvas.getContext('2d');
	var X = size/2;
	var Y = size/2;
	var N = 12;
	var R = 80;
	for (var i=1; i<=12; i++) {
		var r = 20;
		var startAngle = 0 - Math.PI/2;
		var endAngle   = radian(360*(i/N)) - Math.PI/2;
		var x = X + R*Math.cos(endAngle);
		var y = Y + R*Math.sin(endAngle);
		var anticlockwise = false;
		
		ctx.beginPath();
		ctx.arc(x, y, r, startAngle, endAngle, anticlockwise);
		Math.cos(endAngle + Math.PI/2) > 0 ? ctx.stroke(): ctx.fill();
	}
}

Arc
Arc

这样一个按顺时针变化的大圆就完成了。

完成上面的例子大概需要一点基础数学知识。

可以随意改变里面的圆的半径和起始、结束弧度又或者最后的控制填充与描边的算式来感受一下那种变化。

WALL-E 越看越可爱

这是一部爱情片,一部无性别的爱情片。它的剧情比较简单,局部剧情比较好玩,只是细节做得不够(又或者是我的思想被太多条条框框禁锢太久了,一点点问题都足以触发一次审批),铺垫来得相当的直接,很容易让人猜到下面剧情会如何走位。

Eve and Walle
Eve and Walle

看过之后,我有很多疑问。WALL-E 初见 EVE 的时候,EVE 除了洁白的躯体和动人的飞天舞姿之外,恐怕最让人记忆的就是它的炮轰,威力相当的强大,难道WALL-E 就没有一点危险品意识?一味就本着真心去慢慢接近 EVE。爱情的力量真是强大。

它们之间除了叫过名字之外,貌似也没怎么说过话,只是一起玩灯泡之类的,他们怎么能达致那种互相理解的呢?哦,我忘了哑巴之间的恋爱了,原谅我的无知。它们可以互相呼唤对方的名字,这样就已经足够表达了。

Walle on AXIOM - See the fat guy?
Walle on AXIOM - See the fat guy?

而至于为什么只剩下一个WALL-E?它如何进化出爱的意识?!是因为看了几百年那些录像带吗?

Axiom 上面的人为什么都那么肥,有些人像我是怎么也吃不胖的嘛!

那棵植物暴露在太空中居然可以存活?那么它能在地球上发芽也十分合理了!

最后,WALL-E的名字很有趣——Waste Allocation Load Lifters – Earth 地球废品分装员。当人类灭亡到只剩下你一个的时候,你就可以用人类来命名你,或者用你的名字的命名人类了。

09 地球一小时

转好桃花源之后,本来想在外滩见证地球一小时的,只是时间上安排有点问题,而且吹了一天冷风,不想继续吹了,于是赶快回来参与熄灯行动,虽然我提早好几天就“擅自”开始了——房里灯的线路有问题了。

这几天,我是切实感受到这一活动已经影响甚广了,特别是在看到满街跑的公车身上的地球 60 的“纹身”,在许多不经意的位置都看到这一宣传标志,亲朋好友茶余饭后会提起这件事,甚至计划好晚上去见证熄灯和亮灯的时刻(虽然未能最终实现)…… 所有这些都在不断累积一种印象,大家的环保意识开始被慢慢唤醒了……

这样一种缓和行进,但力量强大的意识流,是真实存在的。希望这种力量能够被好好的为人世间的爱所用,来创造出更加好的生活环境……

一小时的行动,虽然不能解决什么问题,但至少是一种强而有力的声明,是一个有助冲破意识障碍的突破点。

就如活动的主题短片说的,我只是一个人,但我可以尝试尽量去……

马上加入地球一小时! - 参与:  Gowing Lee

   WWF地球一小时 2009 – 马上加入地球一小时!

绘制直线

在了解 如何绘制 canvas 里唯一的基本形状——矩形 之后,现在可以转入使用路径了。路径不仅仅是线条,只是习惯性的会从线条开始,而直线可算是最简单的线条了。

使用路径,是有套路的。

创建、绘制、关闭和填充或者勾勒形状。

beginPath()
// actual drawing
closePath()
stroke()
fill()

两点确定一条直线,在 canvas 里也不例外的。

lineTo(x, y)

x, y 只是终点的坐标,起点坐标是隐含的,并且取决于前一操作。简单来说,上一操作的终点就是当前直线的起点。新建 canvas 时起点就是原点。另外还可以通过这个方法:

moveTo(x, y)

来移动起始坐标。moveTo 顾名思义就是移动坐标用的,它一般用于重设起始坐标,大多数情况下路径都不是起于原点的,而且在绘制一些不连续的路径时非常有用。

var x = 60;
var y = 20;
var r = 40;
var dy = Math.sqrt((r*2)*(r*2)-r*r);

ctx.beginPath();
ctx.moveTo(x, y);
ctx.lineTo(x-r, y+dy);
ctx.lineTo(x+r, y+dy);
ctx.fill();

var y = y + 2*(Math.sqrt(4/3)*r);

ctx.beginPath();
ctx.moveTo(x, y);
ctx.lineTo(x-r, y-dy);
ctx.lineTo(x+r, y-dy);
ctx.closePath();
ctx.stroke(); 

2-triangles
2-triangles

上面的代码绘制出六角星,moveTo 这里是移动起始坐标又用于创建两条不连续的三角路径。

三角几何的内容就不解析了,重点是使用填充和描边的区别。填充是会触发路径的自动闭合的,而描边则不会。

这里可以看出在这个套路里 closePath 不是必须的。如果描边之前不闭合路径,所勾画出来的将会是开放的路径,在这个案例里就是只画两边。