About Intelligence

“联动”、“自动”与“智能”

智能设备,正在以及将经历三个阶段:“联动”、“自动”、“智能”。

两百多年前人们发明了继电器,利用电磁原理,使用小电压输入量,安全、远程的对高压电设备进行控制。今天大部分的“智能设备”其实和继电器类似 —— 使用手机控制电灯、插座、音乐设备,仅仅是“联动”。更进一步,使用控制中心,将感应-行动设备连结,比如感应到开门就打开电灯,感应到异动就打开监控,也仅仅实现了“自动”。

不管是继电器,还是联动、自动设备,有一个共同点,就是他们都依赖“输入”,只是形式区分为激励量、操作、触发信号而已。

这些设备还是依赖输入,依赖人的智能。所以,目前我们称之为Smart devices,即聪明的设备,而非智能的(Intelligent)设备。

什么是设备真正的“智能”,我的理解,要解决三个问题:

1. 扩展人的感知力

几百万年来,人的感官都没有再产生质的进化,我们的视觉、嗅觉、听觉、触觉,和山顶洞人没什么区别。但人类的智力不断进化,产生更强的思想和控制力,人需要更深入更精确的感知世界和自我。

人类历史上很多重要的发明,并没有直接产生生产力,但是可以帮助我们更好的感知。我们需要精确的感知时间,于是有了手表;望远镜,扩展了我们的视力范围;电话,革命性的扩展了听觉所能及的距离。

人类对感知自然、感知自身的渴望,也一度疯狂:巫师来预测晴雨和吉凶,中医千百年来沉淀的望闻问切,甚至包括几千年来哲学家对人类精神世界的求索。

大脑很容易适应持续的刺激,所以手表可以很快成为我们的一个“感知器官”,融入感知的体系。穿戴设备最早的形态,是运动感应,收集我们身体的数据,通过手机屏幕传递给大脑,扩展对自我的感知,作为大脑决策的依据。所以即使没有直接的“脑机接口”,通过视觉,也可以很容易的把智能设备作为扩展感知的一种方式。

所以我认为智能设备的基本功能,是扩展人类对自然、自身的感知,通过符合大脑感知模式的、有逻辑的整理组合,把信息传递给人。让人变得更敏感、更强大。

视觉是辅助感知传递的重要路径,Google眼睛抢占了视觉入口,我觉得是目前最为系统、深入的模式。此外,手机本身,其实也变成了人的第二视觉器官,变成了人看到更大世界的窗口。所以,不能忽视手机本身作为智能载体的作用。

2. 辅助决策

减少非关键问题的决策成本和执行成本。

就像互联网上严重碎片化的信息,我们的生活也正在被碎片化。

生活中有很多非关键的、重复的问题需要决策、执行。比如开车的时候听什么歌,和老婆去哪里解决晚饭,马桶上看点什么新闻等等。对一个普通人来说,一年中绝大多数的日子,这些事情都是重复的,非关键的,但它们耗费了我们很多的时间去决策。也有一些基本不需要决策的事情,我们也要花时间去执行。

小时候,一块石头也可能让我们消磨半天的时间。但现在,我们一天中有太多的事情要做,慢慢的一些非重要的事情会成为累赘。相比于我能用手机远程打开音响,我更乐意我的音响根据我的生活规律、身体数据、心理状况,自动播放不同风格的音乐——因为大部分时间,我在家里听歌并无目的。当然,也要具备非常便利的终止、人工干预等设定。

人类的控制力不断进步,从控制物质,到控制能量,再到控制信息。控制的未来可能是无需控制。

人机交互的方式,从需要键盘鼠标显示器等中间介质,到移动时代触之可及的交互革命,未来,依托穿戴设备、智能家居,人机交互将越来越趋于没有交互。因为这些将变成人的感知器官一部分、变成人生活的基础环境。

未来的智能,也许是你感受不到设备的存在,但一旦离开,你发现生活又陷入到无聊、重复的碎片中。

3. 情感慰藉

数字世界正变的越来越冰冷。

曾经让人熟悉亲切的拟物的界面,正慢慢变成冰冷的数字符号 —— 代表放大的放大镜,代表下拉的抽屉,代表消息的信封…也许现在的孩子在生活中已经很难见到这些实物原型。不管拟物、扁平、material design、情感化设计,其实都是把人更深的禁锢进数字化的交互中。不管社交、通信软件做的再方便、再漂亮,也是把人与外部的联系箍进小小的屏幕边框内。

于是,成年人的世界观开始被设备重塑,孩子的世界则开始基于设备被建立。在信息化时代,碎片化的信息洪流中,人,自身以及自身在世界的投影,变得支离破碎、焦躁不安。

科技充分满足了人的生理需求、安全需求、社交需求,但对人更高层的需求:尊重、自我实现,则因信息社会的扁平化而越来越淡漠。

如果照这个趋势看,智能产生的情感,可能将是智能设备未来重要的使命。

有一部叫《Her》的电影,就探讨了数字化情感的问题,但最终数字女友离开的结局,将问题的解读留给了观众。这方面也有很多开始的探索,像个人数字助理siri,各种拟人机器人——软银的Pepper、激萌的Jibo等等。

智能平台

自动设备真的可以帮助人节省一些行动的力气和时间,但这不是大部分人的刚需 —— 是残疾人和老年人的刚需。所以我觉得,相比于费力气把电灯开关做到手机上,不如创造更好的“智能”轮椅、“智能”病床、“智能”义肢、“智能”老人房、“智能”婴儿床更有意义。

“联动”、“自动”与“智能”,必然是不同的进化方向。

人类至今没有掌握如何用计算机创造人工智能。生物的智能,可能是从混乱、偶然中涌现出来的,不可控制。但智能化的设备,在云计算、大数据作为基础设施快速发展的今天,完全可以做的更好。

以我粗浅的思考,智能设备及平台需要具备这样的能力:

信息标准化共享

物联网是智能平台的基础。

最大范围、最大数量的接入数据,是产生商业模式、产生决策依据、产生智能的基础。

所有的设备数据都可被收集,用户的所有行为数据都可被关联,并且通过处理后可以提供给所有设备使用。廉价、简单、专注的设备,也可以和超级计算机具备平等的智能。

智能集中进化,决策分布执行

蜂群中不同分工的成员,每个都很弱小,但集合起来,形成群体之后,就会涌现出神奇的行为。

目前全世界的联网设备,已经接近人类脑细胞的数量,并且还在呈指数型增长。

每个设备都是一个传感器+行动器的组合,全世界大批量的设备收集的信息,在混沌中涌现的智能,再作用于同一环境内的设备组合,才可以呈现更强大的智能。

所以,设备的智能,必须通过大规模的数据积累和计算,在一个中心产生化学反应和持续进化。而到了每个家庭、每个人身上,具备了云端智能的行动器或行动器组合,能决策自身的行为,保证在任何环境、任何网络、任何时间具备快速行动的能力。

回归用户

一切的一切,还是要回归到用户的切身需求。

智能设备,如果只是人们赶时髦、尝鲜的玩物,必定产生不了持久的价值。应该是真正用户需要的、渴望的、梦想的。

在互联网的初级时代,可能靠刀耕火种也能收获满坑满谷,因为人们有需求,且需求够大。在互联网已经充分满足人们基本需求的时候,如何挖掘人心深层的需要,洞察用户真正的感知,才是面向未来的商业模式所需要探求的东西。

智能时代

智能时代,是人机交互彻底变革的时代。从PC时代透过鼠标键盘的交互,到无线时代的触之可及,人机交互变得越来越接近人本能的经验。智能时代,人机将没有交互,因为设备已经变成了我们的感官、融入进了我们生活的基础环境、成为了我们感情元素的一部分。

智能时代已来,人人在谈智能。

智能时代未来,智能正潜伏在设备的海洋中若隐若现,等待爆发。

三年没写博客。

社交的潮流从博客到微博到微信,过山车一般,时空坍缩了,人也被碎片化了。

设计从拟物到扁平又到Material Design,设计开始回归人类认知事物的本心。

从屏幕,鼠标,到手持,穿戴,家居,触之可及,本身是一种回归。

前端技术又将回到HTML的原点。

前后端分离,其实就是融合。

一众前端屌丝欢呼革命。革命向来依靠天才,大部分人只是被卷入浪潮中而浑然不觉。

计算机的发展规律,同样出现在任何领域。

所以Node不是你们救世主。

人人都在谈数据,但最后发现只能是生产力,创造力若隐若现在远远的远方。

哪怕前者,也还只是少数人的家珍。

你不知道你的用户长什么样子,做了什么,像是一种幻相,这很让人不安。

性能不再是YSlow,不再是ab,人的可感知,才是最终的目标。

沉浸在数字的喜悦中,像个小孩子。

如何探知感知。

请“你”告诉我。

网格没落,一切非面向未来的东西都会死去。众包兴起,人 —— 才是永恒的存在。

这就是未来。

小记JavaScript享元模式

最下面是周五懒懒分享的PPT,不得不承认,强大如斯的keynote,也能让我做出这么丑的PPT。。

09年就买了《JavaScript设计模式》,前后看了几次(是“次”,不是“遍”),刚开始看没什么收获,后来随着编码经验、遇到的问题越来越多,看这本书也越来越觉得好。现在都快当成了工具书,遇到难题就去翻翻,常看常新。

设计模式是编码的最佳实践,它应用在两个层次:解决特定编码问题、设计程序架构

简单记录一下“享元模式”及其在解决特定问题上的应用。

应用场景

阅读全文 »

HTML邮件编码禁忌

今天做了两个HTML邮件模板,记录一下所得:

禁忌

1. 结构尽量简单,最好使用table布局

可以保证在CSS样式失效、或者html被禁用的情况下最大程度的还原布局和样式。

2. 不要使用<head>标签

一般会被过滤掉。

3. 不要使用JavaScript和Flash

正常情况下这个是绝对被过滤的。。

4. 使用内联CSS样式,不要引入外部CSS文件,不要使用<style>标签

Gmail等不支持style标签。

5. CSS禁忌:不要使用绝对定位,不要使用背景图片,不要使用半透明,不要使用IE滤镜和CSS表达式,不要使用CSS3属性……

6. 图片要添加alt属性,保证在禁用图片的情况下传递有效信息

7. 图片添加宽高属性

8. 不要试图使用iframe引入外部页面

9. 尽量精简代码,减少图片数量和体积

10. 一般使用UTF-8编码

邮件客户端/服务商对CSS支持情况

阅读全文 »

使用OpenCV开发iOS图像处理应用(To be continued..)

呃,OpenCV(中文)是Intel主导的开源图像处理函数库,基于C语言编写,是图像处理领域居家旅行必备、男女老少咸宜的开发库。

上学的时候用OpenCV做过图像处理方面的开发,现在刚接触iOS,了解了一下OpenCV在iOS平台的配置和开发方法,配置过程和遇到的问题简单做一下记录。

环境配置

OpenCV src

首先把最新版本的OpenCV代码下载或co到本地,比如我把OpenCV-2.1.0.tar.bz2解压到本地目录/work/src/OpenCV。

Xcode工程配置

阅读全文 »

“最被误解的语言”正焕发全新活力

这些内容最早出自6月份的一次团队内分享,后来圆心推荐发表在了8月的《程序员》杂志上。遗憾的是编辑自行作了很多删改,原文发在这里。

Douglas Crockford曾称JavaScript是“世界上最被误解的语言”。确实,很长一段时间里,JavaScript都曾是泛滥的网页特效和弹窗广告的代名词。近些年来,随着Ajax应用的流行和前端框架的发展,JavaScript已经越来越严格和标准化。同时,在前端领域之外,JavaScript 也正被越来越广泛的使用。下面我们通过几个简单的JavaScript语句,一起来了解这些领域的应用。

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8080, "127.0.0.1");

这几句代码大体可以看出,它们的作用为:在本地的8080端口监听请求,返回浏览器响应──没错,这是基于JavaScript的服务器程序 node.js( http://nodejs.org/)的一段控制语句。
node.js基于V8引擎(Chrome浏览器使用的JS解析器),它继承了 JavaScript的诸多特性,具备比Apache等传统服务端程序更好的性能和特性:I/O读写都经由V8引擎来处理,避免不良代码造成的死锁;更节省内存开支;处理并发请求效率更高;等等……

{"id": "036378",  "name": "etai", "job": "F2E" }

这是一句简单的JavaScript专用数据格式——JSON语句,但确切的说,它一种基于JSON的数据库存储格式——BSON,是最近流行的NOSQL(非关系型数据库)的一种存储形式,非关系数据库多采用kay-value形式,具备比关系型数据库更强的扩展性和可操作性,并且在海量存储、高并发读写方面有绝佳的表现。

var t = db.things.findOne( { name : “etai” } );

这句JavaScript语句的作用为:在以BSON存储的数据库中取得一条记录。它是著名的非关系数据库——MongoDB的一条查询语句。MongoDB基于C++开发,使用二进制格式存储BSON数据,可以对BSON中每个字段进行索引,具备极高的处理海量数据的能力。让人惊讶的是,它分别提供了基于十几种语言的查询语句和服务端、客户端,其中就包含对JavaScript的完美支持——MongoDB提供了基于Node.js的数据库服务器、基于SpiderMonkey的数据库客户端,以及JavaScript查询语句,并且提供了全功能的Web Shell。

JavaScript在这些领域的应用,已经不单单是停留在实验和玩票的性质,它们在国内外已经开始了大规模的使用。可以预见,在不久的将来,会出现这样的网站:它的前端使用JavaScript实现网页特效和交互,服务端运行的是基于JavaScript的Web服务器和数据库服务器,数据库使用JSON/BSON存储数据。

作为前端工作者,看到我们最熟悉的语言正在被这么多人、在这么多领域研究和使用,兴奋之余也倍感压力——越来越多的研究和关注,必然会促进这门语言更快的发展,同时也会变得更严格和严谨。这对前端工作者提出了更高的要求和挑战——与时俱进,不断超越!

IE6的position:fixed

手头一个项目中,要实现把一个浮层控制在浏览器窗口右下角,用”position:fixed”来控制最合适不过了。

但万恶的IE6不支持这个属性,之前采用过的方法有:将滚动条转移到body上,使用绝对定位控制浮层位置;使用JS实时判断滚动并设置浮层位置。

第一种方法局限性太大,页面中有其他绝对定位元素会受到影响;第二种方法需要在页面里加定时器,资源开销和时间成本都有点高。

后来在同事小卓的启发下,使用CSS表达式完成了IE6的兼容,代码如下:

_position:absolute;
_top:expression(document.documentElement.clientHeight - 213 + (e=document.documentElement.scrollTop) +'px');
/* 
document.documentElement.clientHeight : 浏览器串口高度
200 : 浮层高度
(e=document.documentElement.scrollTop) : 滚动条高度
 */

CSS表达式虽然方便,但浏览器资源损耗仍然很大,要根据具体应用场合决定,“一切皆权衡”,哈~

Google App Engine、Twitter API Proxy、Mixero搭建Twitter环境

以前用Twitter都是通过代理访问网页或者使用第三方网站,今天安装了一个桌面客户端──Mixero,使用Google App Engine架设了一个Twitter API代理,就可以在桌面上随时看推发推了。网上一些假设教程不大准确或已过期,这里记录一下自己的操作过程。这些操作都是在MacOS下进行的,在Windows和Linux下也都类似。

Mixero

Mixero是一个优秀的Twitter客户端,基于Adobe Air,支持各种操作系统,并且有中文版本。

由于众所周知的原因,Mixero必须通过代理才能与Twitter连线,下面的繁琐的步骤都是拜GFW所赐,Let’s Fuck Them!

阅读全文 »

我的淘宝花名

很早就听说过淘宝的花名传统,阿里的一些牛人也顶着花名扬名立万。今天,我也在释然师兄的帮助下选取了自己的花名,过程有些遗憾,结果更多的是兴奋和期待。

一直以来都没有一个固定的网名,QQ上叫虫子,很多朋友叫我啊花,自己还常用j5726等。

接到淘宝的offer后,就开始考虑花名的事情。最先想到的是鱼同,《书剑恩仇录》中的余鱼同,是一个很纠结的人物,潇洒但专情、任性却正义。同《卧虎藏龙》中的玉娇龙一样,是一个有血有肉,让人又恨又爱的形象。很幸运,这个名字没有被占用,但又很不幸,系统中存在同音字,所以拼音ID冲突,不能使用。。

接下来,又让师兄帮忙试了我熟悉的几个人物,都被占用了。群里的朋友也帮着我出谋划策,结果一个个闪亮的名号都被无情的扼杀。

最后的最后,从系统推荐的名字中选了这个 ── 当当当当,“额台”!

速别额台,又称速不台,是成吉思汗时期蒙古的杰出军事家、战略家,曾攻陷莫斯科,占领匈牙利,戎马一生,直至老死在军营里。

八百年后的今天,在前端行业里也会出现这样一个“额台”,希望能像先人一样,矢志不渝,终生奋斗,在行业中留下自己的一笔。

以上自勉。