Seize the Day

Tour of Taihu Lake Day 3


概况

目标: 无锡市区 - 苏州园区 日期: 2013年5月27日 天气: 阴转多云 路线: 清宁大桥 → 运河西路 → S230省道 → 舟山路 → 望湖大道 → X204县道(环太湖大道) → 太湖大桥 → 太湖公园 → X206(胥香路) → X206(孙武路) → X206(中山东路) → 苏福路 → 南环路 → 通园路

行程

晚上和同学聊到一点多,早上醒来已经九点半,他已经去上班了,我便收拾好行李就离开了。去了他昨天介绍的早点店吃早饭,店家比较谦虚,写着一两4只的小笼包,我要了二两,端上来一看,恐怕一只就有一两了。酸辣汤勾芡稠度正好,味道也不错,喝了满满一大碗。可惜没吃到无锡的开洋馄饨,等下次有机会了。

Alt text

Read more ⟶

Tour of Taihu Lake: Day 2


概况

目标: 宜兴丁山 - 无锡市区 日期: 2013年5月26日 天气: 阵雨,大风 路线: 公园东路 → 汤蜀路 → 方溪路 → S230省道 → 分百路 → 环湖线 → 雪马路 → 梅梁路 → 连峰路 → 环山西路 → 龙头渚自然公园 → 七里风光堤 → 环山东路 → 十里明珠堤 → 湖山路(神骏桥) → S230省道(环太湖公路) → 梅园 → 运河西路 → 清宁大桥

行程

因为密切关注天气情况,知道今天要下雨。七点一刻起床时发现还没有下雨,喜出望外,赶紧吃了早饭收拾好行李。结果没骑200米就下起小雨来,好在车包和背包都有防雨罩。但是我没带雨衣,路上也没找到卖的,只好一路冒雨前行。从丁山龙溪公园出发,一路沿着方溪路向东骑行。逆风又淋雨的滋味真是不好受,但是一旦自己决定开始这段旅程,就不能抱怨这路上的苦。相比昨天,至少今天不用担心烈日造成的高温和晒伤了。大约15分钟后上了S230省道,逆风转为侧风,雨也停了,此时窃喜,觉得今天是最佳的骑行时间,真是太幸福了。

补胎大桥

Read more ⟶

Tour of Taihu Lake: Day 1


概况

目标: 苏州园区 - 宜兴丁山 日期: 2013年5月25日 天气:路线: 通园路 → 南环高架 → 友新路 → 吴江太湖大桥 → S230省道 → 庙港大桥 →莘七线(沿湖东路) → 莘七线(沿湖西路)→ 莘七线(国富大道)→ 环太湖路 → 滨湖大桥 → 小梅大桥 → 太湖路 → 湖州太湖度假区(太湖乐园) → 滨湖大道 → 夹浦镇(夹浦派出所) → G104国道(发展大道) → 龙溪公园

装备

  • 衣:骑行衣裤×2(身上穿1套),头盔×1(装上帽檐),手套×2,袜子×3,骑行雨衣(忘带了,夏天问题不大);
  • 食:士力架×2,压缩饼干×2,饮用水×2;
  • 住:旅馆投宿,只需带基本洗漱用品即可,防晒霜;
  • 行:单车一辆(这不是废话么),备胎2条,补胎工具,撬胎棒,六角扳手,打气筒,瑞士军刀,骑行背包/驮包,车前包,车管包,码表;
  • 用:钱包,钥匙,手机,相机,Kindle,备用电池,各种充电器,笔记本,笔,打印好的路书;
  • 药:创可贴,消炎药,感冒药,清凉油,龙虎人丹。

** 默念三遍:遵守交通,出入平安 **

Read more ⟶

Ruby on Rails 入门体验


今年年初时决定学习一下 Web 开发方面的知识,因为对 Ruby 早有耳闻,所以很自然地就选择了 Ruby on Rails 作为目标。在网上看到 Ruby on Rails Tutorial的教程,于是就跟着教程,边学边做地把这本书看完了。对 RoR 有了一个大概的了解,包括框架结构和开发流程,还有一些常用的Gems,确实是一本不错的实践入门书。

关于教程

一开始时看的是英文原版,阅读速度缓慢,而我对实践充满热情,迫切希望早点学完自己动手做。恰好发现 Andor Chen 已经翻译了大部分章节,遇到有疑问的地方,就对照英文检查语句和代码。顺便修正一些译文里的错误,然后发送 pull request 让作者合并。

这本书和以前看的 Flex 入门书——《Flex 3 权威指南》类似,都是以构建一个应用为主线,由浅入深地介绍 RoR 开发的基本知识,从最开始的静态页面到模型生成,控制器,路由,数据库,Ajax,还有贯彻整个开发过程的测试。教程里开发的是一个微博站点,而 Twitter 以前就是使用 RoR 开发的,做起来也饶有趣味。

花了差不多两个月的业余时间看完了这个教程,并最终完成了那个微博网站,包括大部分练习题的功能。总的来说,还是有点挑战的。由于书中大部分都是编写步骤,注重手把手的教学实践。在原理的介绍上篇幅很少,而 RoR 这样“约定优于配置”的理念让我有点不适应,书中并无约定方面的解释,很多方法像变戏法一般地已经实现好了,而我却想一探究竟,搞清楚其幕后的动作。但毕竟这是一本入门书,或许是我要求太高了。

Read more ⟶

基于AS3.0的图像抖动实现


不知当初自己出于什么目的,OneNote 里留了一条关于 Floyd–Steinberg dithering 的笔记。好奇之余,打开链接看了一下,方才想起这个当初让我觉得新奇的古老算法。

概述

余忆童稚时,能张目对日,明察秋毫……”如果你对过去黑白报纸的图片仔细观察过的话,一定会发现,那些黑白照片由很多圆形或方形的图形组成。是的,那就是半色调(Halftone)和抖动(Dither )技术。

Halftone

半色调(Halftone)是指为了模拟出连续调影像(色阶)的视觉感觉,一般用墨点(半色调网点)的大小或频率的改变,来模拟明暗的变化。半色调广泛应用于报刊出版等领域,当年那些黑白出版物上尤其常见,现在的牛奶包装上也能看出来。

阈值法(Thresholding)

当像素值大于设定阈值时,输出为亮点,否则输出为暗点,从而实现二值化。经过处理的图像往往失去细节,缺乏层次感。下图所示的就是二值化的图像。 lena_binary

Read more ⟶

HSV/HSL转换到RGB色彩空间


处理图像时,有时候会遇到不同色彩空间转换的情况。比较常见的是HSV/HSL到RGB的转换。

HSV(HSB)/HSL简介

不同于RGB/CYMK,HSV和HSL是两种比较常见的基于圆柱坐标系的色彩表示方法。这种方法对颜色的表达,对人来说更直观,更易于感受。因此艺术家有时偏好使用 HSL或HSV 而不选择 三原色光模式(即RGB模型) 或 印刷四分色模式(即CMYK模型),因为它类似于人类感觉颜色的方式,具有较强的感知度。RGB 和 CMYK 分别是加法原色和减法原色模型,以原色组合的方式定义颜色,而 HSV 以人类更熟悉的方式封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”。

色彩定义

  • H :Hue(色相),色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。
  • S :saturation(饱和度),色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。
  • V :value(色调),取0-100%。
  • B :brightness(明度),取0-100%。
  • L :lightness(亮度),取0-100%。

HSL 和 HSV 二者都把颜色描述在圆柱坐标系内的点,这个圆柱的中心轴取值为自底部的黑色到顶部的白色而在它们中间是的灰色,绕这个轴的角度对应于“色相”,到这个轴的距离对应于“饱和度”,而沿着这个轴的高度对应于“亮度”,“色调”或“明度”。

这两种表示在用目的上类似,但在方法上有区别。二者在数学上都是圆柱,但 HSV(色相,饱和度,色调)在概念上可以被认为是颜色的倒圆锥体(黑点在下顶点,白色在上底面圆心),HSL 在概念上表示了一个双圆锥体和圆球体(白色在上顶点,黑色在下顶点,最大横切面的圆心是半程灰色)。注意尽管在 HSL 和 HSV 中“色相”指称相同的性质,它们的“饱和度”的定义是明显不同的。

因为 HSL 和 HSV 是设备依赖的 RGB 的简单变换,(h, s, l) 或 (h, s, v) 三元组定义的颜色依赖于所使用的特定红色、绿色和蓝色“加法原色”。每个独特的 RGB 设备都伴随着一个独特的 HSL 和 HSV 空间。但是 (h, s, l) 或 (h, s, v) 三元组在被约束于特定 RGB 空间比如 sRGB 的时候就变成明确的了。

HSV 模型在 1978 年由计算机图形学先驱 Alvy Ray Smith 创立,它是三原色光模式的一种非线性变换。

Read more ⟶