Idean在招人,钱多人少速来!

2008-06-25 14:44:36

我目前就职于Idean - 一家来自于芬兰的专业设计咨询公司。我们的服务涵盖手机(目前为主)、软件、网站和其它实物类领域。

我们现在需要经验丰富或者深具潜力的交互设计师加入,一起为了公司的口号“The Next Big Things”而奋斗!

详细的公司介绍和岗位说明可以见:

http://www.idean.com/jobs/iadesigners.html

现在是钱多人少!感兴趣的话千万别犹豫,即刻发简历给我(或者网页上面提到的Mr. Jesse Maula)。有问题请留言。

有效地阻止SPAM

2008-06-17 10:24:30

对于blog作者来说,SPAM一直是个令人比较头疼的问题。如果没有良好的防治机制,一旦被SPAM机器人盯上,那可不是闹着玩的。目前主要的解决方案是使用Captcha,让真正的留言者按照图片所示,输入一串随机生成的字符串,或是解答数学题等等。虽然攻击者仍可以写程序做图像识别,但这个难度很大,而且一旦图案有变化程序就要重写。因此CA..可以说是目前最为有效的SPAM预防方案。

但是Captcha显而易见的缺点就是:它的用户体验不好,有时甚至很糟。我见过的最恐怖的Captcha来自RapidShare,它居然要你识别一只特定形象的猫!我每次做完这步眼睛都花了!

还有一种使用也比较广泛的方法,就是利用贝叶斯等算法做SPAM识别,有些还结合了可定期更新的黑名单机制。Gmail这方面做得非常好-99%的垃圾邮件都被系统识别并自动归类了。问题是,我始终担心会有重要邮件(比如MM的求爱信……)被误判,还要时不时的去“垃圾箱”中看看。

此外也有人借助Javascript来防SPAM,因为机器人抓取网页时肯定不能运行Javascript,所以可以利用这个特点,通过浏览器事件来辨别留言者的身份。这个方法在Javascript被用户禁用时显然会失效,考虑到Firefox用户可以非常方便地禁用Javascript,我对其持保留态度。

说了半天别人的方法,我介绍一下在我的blog程序Lonely Thinker中的做法。经过半年多的检验,这一方法被证明不仅可以有效地阻止SPAM,又几乎不损害用户体验。

步骤如下:

1、在表单中添加一个值为空、名称为antispam的文本域,将其放在一个HTML容器内(比如div),并用CSS这个HTML容器隐藏(如下图):

view中的代码

2、在表单校验的部分加入对这个文本域的校验,如果其值不为空,则说明当前留言是SPAM(以CakePHP框架的model为例,代码如下):

model中的代码

简单地说,这种方法就是利用了机器人会填写所有表单域的特点而起作用的。唯一可能需要担心的,就是如何处理关闭了CSS的情况。我的做法是在表单中添加一段文字说明,你仔细看上图的话不难发现。

要特别说明一下为什么不直接把文本域用CSS设置为隐藏的。我本来是这样做的,可是发现机器人非常聪明,它似乎有一个简单的解析器,可以读取文本域的CSS,如果发现具有隐藏属性则跳过。前一阵子产生的SPAM都是这么来的,我找到原因时也非常惊讶。

当然了,机器人的作者仍然可以进一步完善他的程序,比如写一个比较完整的HTML解析器,用以对付我目前采用的隐藏HTML容器的做法,但这个有一定的难度,并且我只要让我的HTML不合法(比如没有完整闭合,或者制造标签间的嵌套错误),他的解析器很可能就失效了。

如果你的blog访问量非常大,已经到了有人专门针对你的blog写SPAM机器人的程度,上面的方法就需要改进才行了。我目前想到的一个办法是动态地调整文本域的名称,比如在一个名称池中随机的选取一个渲染到表单里,并在model验证规则的部分做动态调整。为了防止误伤那些在名称调整前载入页面、名称调整后递交表单的用户,甚至可以考虑临时记录每个人载入的文本域的名称。

WWDC 2008观感

2008-06-12 15:03:18

前夜一口气看完WWDC 2008的主题演讲视频后,激动的在床上胡思乱想了近2个小时才得以入睡。以下是在床上辗转反侧时的YY纪录:

1. Jobs明显老了

把这么八卦的内容放在第一项,感觉既对不住Jobs他老人家,又对我blog的读者有些些许的愧疚,不过这却的的确确是我的第一感受。远的不说,就是相比于年初的Macworld,这次的Jobs也明显让人感觉到了岁月的痕迹:眼窝深陷,脸色略显苍白并带有一丝倦意。虽然Apple后来证实Jobs是带病上阵的,但千万别忘记Jobs已是五十几岁的人了。

2. 谁都不是傻子

话不多说,看下图:

3. 让人叹为观止的Interface Builder

请原谅我使用这么夸张的词来形容Interface Builder(IB),实际上,我想不出更好的词了。短短几分钟的演示,便能让我们充分领略IB无以伦比的强大功能,诸如控件在界面上辅助对齐、自适应大小等功能,都是在其它界面构建工具中难得一见的。此外,作为一款专门构建界面的软件,IB本身不仅有着极佳的可用性,更有超凡脱俗的用户体验:注意到控件在由Library拖出时产生的缩放和半透明效果吗?还有那个让人拍案叫绝的居中对齐设定方式!以及在IB中旋转界面时动感十足的旋转特效(如下图)!至少从这个演示来看,用Xcode配合IB来编写iPhone应用,与其说是工作,倒不如说是一种享受!

4. 老天!iPhone上的游戏太让人期待了!

强大的CPU、视频加速卡和内建的运动感应器,再加上OpenGL和OpenAL等开放API的支持,让iPhone天生就是一个绝佳的游戏平台。尤其是运动感应器的应用,让游戏者可以体会到直接操纵的快感,不难想象,过不了多久地铁上就会有大群人拿着iPhone手舞足蹈!

如果能拉到主流游戏厂商、并且想办法延长电池使用时间的话,其它游戏机先不说,至少PSP就不用混了。

5. 微软的界面真的没救了,相信我

当我看到手机上的Task Manager时(见下图),简直不敢相信自己的眼睛!即使让我不作任何准备,直接站在WWDC的舞台上的话,我也肯定会和主持人Scott一样的表现:无话可说、跺足叹气。微软除了不断地强奸他们的用户、迫使他们学习糟糕透顶的系统外,难道就不能想出一种优雅的方式来解决问题吗!就算不采用与Apple的Push Notification Service类似的技术,也不能把PC上的Task Manager硬板到手机上来,有多少人搞得清楚进程名称和程序名称的关系?

说句题外话,我现在对Windows和Office极其反感,这样的产品设计让我觉得不可理喻-若是举起例子来,便是几天几夜也说不完。工作上也是能不用就不用,能够以开放标准(如HTML、PDF等)发送的文档我绝不采用MS的专属格式。我很庆幸存在Mac这样优雅的电脑和软件系统,能够让我能够尽量专注于任务本身,并时常在完成任务的过程中得到意外的惊喜和乐趣。

6. 前途无量的定位及其相关服务

iPhone 3G终于有了GPS功能,定位+SNS绝对是个金矿。在国内,唯一比较棘手的问题就是GRPS的数据费太贵(这个问题或许可以通过内建地图来解决,随便想的)。

7. 虽然有手写,输入仍然成问题

2.0版的软件系统提供了中文简繁体及其输入解决方案,但iPhone的虚拟键盘仍不够好用,对于Treo用户来说更是如此。英文可以有拼写检查和纠正,但中文就难做了。当然,这是问题也是机会,很期待Glider的QIM和华君的FIT能有更好的表现。

8. 在理想情况下,ME.com的网站体验应该很棒,可这只是“理想情况下”

Apple一向很喜欢在不同的平台上提供完全一致的使用体验,比如原有的.mac服务和现在的Safari,可我觉得有时候它过于理想主义了。比如ME.com中运用的大量Javascript/AJAX技术,在网速不是非常快,或者电脑性能不是非常好的情况下,使用体验可能会很糟。我在超高带宽上使用过.mac(带宽具体数值不得而知,但在50M以上)服务,感觉还有些延迟,国内大部分1-2M的ADSL就更不用说了。不过不过,ME.com的UI设计实在是太棒了,不由不赞叹!

----------------------------------------

谁有兴趣玩iPhone开发?

Cam-Trax

2008-06-05 14:10:21

在国人还在忙着研究SVCD、CVD、EVD、威力棒(Vii)、M8和山寨机的时候,老外搞出了Cam-Trax:

读《天黑以后》和《海边的卡夫卡》有感

2008-06-02 09:53:09

最近一口气连续读了这两本村上的书:《天黑以后》和《海边的卡夫卡》。

《天黑以后》

《天黑以后》和我读过的村上的其它作品有很大的不同,从表面上看起来,它所描述的并不是一个完整的故事,而仿佛只是日常生活中截取出来的一个片断而已,所以在看完最后一章后,我脑海中总是联想起贾樟柯的《世界》(这部电影中也以同样的方式讲述了几个平凡人的平凡生活),在两部作品中,你都很难看到通常意义上的起承转合和跌宕起伏,情节像拥有多个支流的、静静流淌的小溪一样,沿着不同的方向铺展开去。

然而,“我们以为目睹的东西,很可能只不过是我们的错觉”(第八章,第11段),在经过了一整夜的经历后,会讲中国话的女主人公浅井玛丽似乎最终领悟了姐姐浅井爱丽的心理,以独特的方式表现了自己对她的爱,这一被文学评论家称为“再生”的举动,才是整篇小说真正的主线。不过我个人并不十分理解“再生”的含义。

此外,正如译者林少华先生在序言部分所指出的那样,书中白川身上所具有的那种“不再是‘绝对恶’”的恶、“超出善恶标准的、甚至超出了恶的恶”,才是现代社会中最为可怕的恶!在现代社会中,这一“白川式的”恶有很多种表现形式,除了书中所描绘的那样外,至少还包括:1)人性的恶,典型如当面一套背后一套;2)中庸的恶,典型如随着其他人一起闯红灯。

《海边的卡夫卡》

《海边的卡夫卡》的结构和叙事方式同村上早期的《世界尽头与冷酷仙境》非常相像:两个看似毫无关联的故事在小说的奇偶章节间平行展开,然而随着阅读的深入,故事间千丝万缕的关系逐渐显现出来,并在小说的中后部进行了某种程度的重合。

我第一次读到《世界尽头与冷酷仙境》时,被这一独特的写法所强烈吸引,在读完全作并理解了两个故事间的关系后大呼过瘾!在《海边的卡夫卡》中,这种笔法得到进一步扩展,小说开篇的几章甚至让人产生三个故事并行发生的错觉,只是读到后来才发现,其中的两个故事实为不同时空并具有因果关系的一体,让人不由得感叹村上纯属的写作技巧。这可以说《海边的卡夫卡》与《世界尽头与冷酷仙境》的第一个较大不同。

两者之间的另外一个显著不同在于,在《世界尽头与冷酷仙境》中,两个故事之间的关联是隐形的:其中一个故事所发生的世界,位于另一个故事中男主角的内心之中;一个故事中所拥有的种种人物、语言和事件,是另一个故事中世界的投影和映射。简言之,两个世界的这种暗喻式的联系是要靠读者自己去发掘与领悟的。而在《海边的卡夫卡》中,甲村图书馆成为了两个世界交叉的点,原本不相干的种种人物和事件,都于此相互交错和影响。老实说,这样的安排是我在阅读过程中未曾想到过的,非常出乎意料。现在想来,这样的写法却更能紧紧地抓住读者的注意力,使他们对因两个世界交叉所带来的影响和后果,产生某种程度的担心、不安甚至惶恐-尤其对于读过《世界尽头与冷酷仙境》的读者更是如此。

第三个不同,就是相比较于《世界尽头与冷酷仙境》,村上的笔触显得更加内敛,隐喻愈发深沉,论理的部分也增加不少,我相信这是由于年龄的增长而自然而然出现的一种现象。

最后从《世界尽头与冷酷仙境》中引述一句来收尾:“有的东西不过很久是不可能理解的,有的东西等到理解了又为时已晚。大多时候,我们不得不在尚未清楚认识自己的心的情况下选择行动,因而感到迷惘和困惑”。

最新文章