星期一, 三月 07, 2016

学习C++ 01

目前选择了learncpp.com作为主力学习工具。
IDE不打算折腾eclipse之类的了,Mac上既然花了大空间装好了xcode,那就用就好了。看xcode还挺方便的样子,也不需要什么配置。

learncpp一共17章,一天2-3章的话,大约1周左右可以过一遍。当然各种示例需要手动输入一遍,即使如此可能也会随学随忘。

日后使用上为了光场计算所需,所以应该是有大量的线性代数计算,目前看也就是普通的乘除之类,倒是没有复杂的高级运算,NMF也是还原成了普通的迭代在计算。所以先随手找了一下C++的线性代数库,

有个armadillo http://arma.sourceforge.net 看起来很活跃,不知道是否稳定和好用。另外有BLAS的开源版本:http://www.openblas.net 具体用哪个也看其他合作者的使用了。

LearnCpp上这一章看起来不错,讲如何写注释的。http://www.learncpp.com/cpp-tutorial/12-comments/

总结来说,注释是来讲解代码为什么要这么写。

之前在用matlab写光场计算的时候,我已经发现先写注释后写代码,甚至注释比代码更多、每一句代码都写注释,写代码会最快最少出错。用mathematica写东西的话,更是把文本和代码放在了同等重要的位置上,甚至一个mathematica文件更多的是一篇文章,代码只是其中的公式与运算而已。


学习C++ 00

为了跑光场渲染,需要用CUDA。而为了用CUDA,看起来需要学C++了。

很久没有学习新的语言,多年来一直嚷嚷着学Python,可每次学完基本的就不想继续,大概是我觉得Python太难看了,尤其是python程序员们津津乐道的各种写法,在我看来可读性都很差。

写些漂亮的小东西可以用processing,不过这个学得快,忘得也超快。每次再捡起来都是重新来过。

MatLab已经很熟练了,虽然MatLab有简单的gpuarray命令,就可以部分利用CUDA计算。但是由于其他的合作者都使用C++,我也该跳出舒适区了。

所以,开始学习新的语言吧。

C++的学习资料还是很多的。

在线的教程有:

http://www.tutorialspoint.com/cplusplus/index.htm
这个还提供个online的IDE,省去了在本地配置的麻烦。

http://www.learncpp.com
整个网站就是用来学习C++的。

视频课程有Lynda的C C++ Essential Training,
Youtube上随手一搜视频也很多,例如:
https://www.youtube.com/playlist?list=PLmpc3xvYSk4wDCP5zjt2QQXe8-JGHa4Kt

MOOC里面C++的课程反而显得少,
EdX上有微软开设的C++课程:https://www.edx.org/course/introduction-c-microsoft-dev210x-1
但是看起来评价很差,暂时不打算上。

书籍方面
貌似C++ Primer是很多人推荐的书。我不打算把书当做主要的学习教程,按照以前学语言的经验,好像书籍更多的是用来查询的。所以,传说中的StackOverflow oriented programming,或者Google oriented programming也是不错。

反正,赶紧开始吧

星期一, 三月 04, 2013

还记得十年前的非典

都十年了啊,难怪想起来的时候脑子里总有校园民谣作为背景音乐。

1.
正在普外实习呢,一天晚上夜班,听说急诊有个刀扎伤的,三线是个副高,带着我去看。南方不明原因肺炎的事已经流传了一阵子了,卫生部就在隔壁,还在一个食堂吃饭呢,倒也没听说什么确切消息。不过要去急诊,也还是戴上了厚的棉纱口罩。

急诊病房里躺了几个病人,刀扎伤的那个是青年男性,在一进屋右手边的床上躺着,身上中了六七刀,胸、腹都有,肚子上脂肪厚,没穿透,胸壁上的口子深。三线戴手套用手指探了探,胸壁上的刀也只扎在了肋骨上,没进胸腔。跟电影电视里不同,要一刀扎心上,不但要刀快,进刀的姿势也很重要,手艺加运气才能做到。

一线到三线担心的、实习生盼望的大手术没出现。顿时觉得索然无味,在急诊病房里转了一圈,其他人都也模糊了,左边最里面是个呼吸科的,看起来挺重,过去看了一眼。刀扎伤没什么大碍,三线拉着我乐呵呵地回病房了。

过了一周,查房、病例讨论。那天的三线看见我,很神秘的说,『你记得那天看刀扎伤的时候,里边有个老太太么?那是个SARS』。不确切的印象里,那好像是本院第一个SARS。

2.
还是在普外,一天下手术早,其他医生们都还在手术室里,带我的师兄后面还有个手术,于是我就回了病房。病房里护士一时找不到管床医生,有个病人不舒服,让我先看看。好像没什么大事,于是拉了个心电图。

过了几周,聊天,『你记得那次你给做心电图的那个病人么』『啊』『后来转积水潭,确诊是SARS,三天以后死了』

3.
普外转完了,去泌尿。泌尿科总是很欢乐的地方。刚去第一天,主任看我们正在那儿写大病历,说『写病历能治得了病么,去跟着上手术去』,赞,这句话我一直铭记在心。泌尿科的第一天就是在欢乐的手术中度过的,不记得原因是什么了,院总被尿浇了一脚,还解嘲说尿是无菌的。

第二天早交班,转其他科的同学跑来叫我们,说教办让过去。

教室里全班都回来了,教学院长也在。他说话有种金属的共鸣声,像在唱美声。是一个通知,全班停实习,回宿舍。

高我们一年的师兄师姐们已经是正式的住院医了,所以都坚守在第一线。后来很久,又见到带我普外的师兄,胖了,满月脸了。

4.
宿舍在胡同的一个小院里,两排平房,有个院子,门口有颗大树。就我们一个班,男生住里面那排房子,女生住外面。

当时正赶上卫生部要教学检查,搞一次全国长学制的统考。这是要和其他医学院比拼啊,于是搞得压力山大,比高考还紧张。每周1500道题,每个人的卷子都是那塑料袋装的。

不让实习了,医院也给封了,正好腾出时间做题。上午的时候,老师过来给讲题,没有教室,天气也热起来了,就在树下坐着,男生女生穿着睡衣围坐在老师旁边听题。

天还总是蓝的,老北京的鸽子在头顶盘旋,鸽哨一圈一圈的。房顶上邻居的猫总在上面趴着,看我们,听课。

5.
十年了,好多老师的面貌都模糊了,不过急诊科老师的形象还总是清晰的,因为医院里有她的塑像。

看得泪流满面:http://news.ifeng.com/shendu/zgxwzk/detail_2013_02/28/22596696_0.shtml

星期一, 二月 25, 2013

公开课制作

【从公开课中学习】
根据我上coursera的经验,有一些公开课制作的技巧。
1. 课程长度<=15分钟,超过这个时间,我自己的注意力就已经转移了。刷微博发推或者看网页去了。
以计算金融学导论 https://class.coursera.org/compfinance-002/lecture/index 前三周共37个视频的统计,平均时长是671秒,方差=362秒。但时长的分布不是正态分布的,histogram如下图,我猜测是两个正态分布叠加,一类是比较简单的知识点,一类是复杂的知识点。
Inline image 1
2. 视频中必须有代表老师的身体语言展现

2.1 如果老师太过呆板,这种课程是没法听的:
即使是edX中Berkely这样的顶尖大学,这个印度老师也实在是太搞笑了,https://www.youtube.com/watch?feature=player_embedded&v=6F0pR-ANmXY 在讲课的时候居然可以保持着这么好的稳定姿势,他的头部有光学防抖么。

Inline image 2
过了大约30秒以后,注意背景白板被遮挡的边缘。头部完全光学防抖有没有!
Inline image 3

2.2 老师讲得非常好,但是如果在整个课程中没有现身,只有语音出现,听起来也很困。而且传达的信息量大大减少:
Duke的电生理课程,老教授讲课经验非常丰富,几分钟就一个包袱,但是整个视频中一直是PPT的画面,少量动画和手写痕迹,看起来不舒服。
https://www.coursera.org/course/bioelectricity
 
2.3 相比起来,Model thinking已经是第二轮开课了,老师的经验丰富很多,给自己留下了足够大的身体语言展示空间。其实这个老师的语速是相当快的,但是听起来并不费力,身体语言传达的信息量很大。
Inline image 1
https://www.coursera.org/course/modelthinking

3. 如果动用屏幕手写,一定要足够清晰。
实际上用触控笔在电脑上直接手写一定是达不到要求的。即使是教计算机图像处理的老师https://class.coursera.org/images-2012-001/class/index,在屏幕上写字也没有给予一定的处理。

Inline image 2
在屏幕上写字的过程必须经过贝塞尔曲线的处理。不然可读性很差。

===我的方案===
【iPad处理】
iPad已经越狱,这样才能使用Display Recorder(高达$4.99啊,为什么越狱以后花钱更多了)来进行屏幕录像。iPad上使用的是UPAD做讲解,事先把ppt或者其他讲稿导出成PDF,然后导入到UPAD软件中,这样就可以直接在上面手写了。

UPAD的优点在于能够将笔画进行平滑的处理,并且可以按照写字的速度调节笔画的粗细。

注意在这里,如果换用paper53是不行的,因为paper53的画笔有个古怪的设定,笔走得越快,笔画越粗,这是反直觉的,于是写出来的字迹会很难看。

【工作台设定】
Inline image 3
1. B,讲课提纲,提醒自己讲到哪里了
2. A,灯光,足够好的照明
3. C,DV,通过一个自制的架子固定在桌面正上方,垂直向下拍摄。如果专业,AC可以合并用翻拍台来代替。
4. F,桌面表面贴了一层静电吸附的『白板贴』,可以直接用白板笔手写
5. D,白板笔和板擦
6. E,iPad+电容笔

【课程录制】
用DV来拍摄手和iPad上的操作。我自己不愿意真相出镜,所以只用自己的手在屏幕上做手势表演就好了。而且我平时说话也习惯手舞足蹈,加上我想讲的课程是手术操作,所以还算比较合适。

DV直接拍摄手的动作还有个好处就是可以随手拿起各种实物来做示意,甚至可以直接调用其他实体教具

Inline image 4
我还有很多课程是直接在桌面(物理的桌面,我在上面贴了白板贴)上用白板笔绘画讲解的。这样省时省力,比做PPT要快捷得多。如果需要图片或者视频的讲解,也可以通过后期的视频编辑,将引用的视频“贴”在桌面上。

Inline image 5
【后期剪辑】
有DV拍摄的手势语言和iPad上录制的屏幕操作。用简单的视频编辑软件就可以将两者做成画中画合并到一起。不过主视频和悬浮视频的对齐并不是很容易,可能需要场记板的帮助。就是电影幕后花絮里常见的那种板,合上的时候会清脆的咔嗒一声响,据说在视频编辑的时候可以明确的看到场记板合上的一帧画面和声音上的一个尖峰,将两者对齐即可。

我现在用的视频编辑软件有点太简单,对音频的波形显示不够清楚,手动对齐两个视频还是比较麻烦。

【平台选择】
1. 视频网站+论坛
一个方案是将视频课程单独放置,然后内嵌到其他的网页中,比如可以用土豆、优酷、youtube之类。如果是打算收费的课程,则可以利用密码来限定访问对象,付费的用户才可以拿到密码。

这个方案教授电子制作的“杜洋工作室”http://www.doyoung.net/ 已经做得非常好。付费是淘宝+支付宝,卖得是硬件+课程服务,密码通过email发送。

这样的优势是可以内嵌到专业论坛里面去,省去了推广和集聚人气的麻烦。但是学生的管理可能略复杂,收作业有些麻烦。

2. P2PU
https://p2pu.org/zh-CN/ 看起来有点混乱,被我淘汰了。

3. Udemy
www.udemy.com
这个是极好的。我已经将大部分制作好的课程放在上面了。目前无需翻墙在中国大陆即可使用,速度好像要看区域,我在家里还可以。课程管理、布置练习、作业之类的都很方便。整体网站设计也很清爽、专业。

不过国外网站,永远要考虑到被墙认证的问题,想起来就头大,其中的付费系统在国内应该也是不够方便的,如果是做免费课程则不必太考虑。

示例推荐看看@ooop 制作的gephi教程:https://www.udemy.com/gephi/

4. 国内公开课平台
还在观望中,目前备选有二:
4.1 网易云课堂:http://study.163.com/ 目前已经正式发布了,注册以后默认身份是学生,要发布课程的话好像还需要人工联系,不容易自助完成。
4.2 Aablesky:http://www.ablesky.com 能力天空。粗略看了看,基本满足要求,但是感觉有点乱。而且看起来公司还不够大,有点怕坚持不了多久倒掉了,自己之前做的课程就丢了。

星期六, 二月 23, 2013

家用谣言粉碎学

这是回答这篇的http://www.guokr.com/post/360393/

【1. 通情】
首先要识别出谣言所指向的情感诉求,比如对死亡的恐惧、宗教情感。。。
然后镜像这种情感,使双方获得共同的情感经历;或者直接阻断之;或者利用之。。。
谣言之所以能够传播,必然是利用了某种心理bug。

【2.达理】
人是不可能意识到自己有错误的。(临床医生千万小心)

一般来说,要劝一个特定的人,需要按照他的逻辑系统来推演,让他自己说服自己。很多观点组成的系统是模棱两可,并且难以逻辑自洽的,比如一个人相信各种『俗话』,那么就有『俗话说得好』vs『俗话又说得好』两个集合可以使用,如果你选择合适的『俗话』是可以控制这个人的推理过程,将他的思路引入到你需要的区域里面。

比如之前我在微博上,有人转发了:
@母婴亲子百科
【预防小儿感冒奇招】用电吹风的热风在宝宝背部大椎穴和肺俞穴吹10分钟,立竿见影治疗打喷嚏流鼻涕轻微咳嗽等各种感冒初起症状,将感冒扼杀在摇篮里!铁蛋前几天的感冒就这样止步了。这是一名优秀的儿科老中医告诉她的法子,果然灵验。在此跟妈妈们分享。(转)

我在转发时写的:
中医讲阳密阴固而无病,小儿感冒无论风热风寒都是表症,需解表。电吹风耗阳损阴,而且用在两个大穴上容易引邪入内,不可不可。(要学会用对方的语言系统,你说感冒是病毒引起跟热风冷风一点关系没有电吹风容易造成烫伤这不科学有人会听吗?)

再比如,一些传说追究到细节就很有意思:
http://www.guokr.com/blog/70473/
http://www.guokr.com/question/438498/

当然,这种方式并不是科普,只是辩术,但常好用。或者说找出系统内矛盾的地方,有助于开悟吧。
前两点,请参考《鬼谷子》

【3. 系统预防】
将谣言视做传染病,有传染源、传播途径和易感者。系统预防是将易感者转变成为非易感者。
我一直敦促各代粉碎娘出一套『粉碎术』,谣言粉碎不应该是看见一个谣言就去粉碎一个。而是应该逐渐帮亲人建立一套基本的方法。形式可以很多。比如我以前写的
http://www.guokr.com/blog/234438/
http://www.guokr.com/article/76404/

【4. 隔离】
同时也要注意对传染源和传播途径的控制。
比如,各种养生节目,如果亲人略有化学常识,可以通过此帖一棍子打死 http://www.guokr.com/question/313830/
电视购物,可以通过淘宝灭掉。(慎用)
总是传播不靠谱言论的外围亲友,拿个小本记录一下。

【技巧】
在一些问题的解释上,可以采取包括但不限于比喻的方式来讲解。人们要『理解』一个事物,是要建立在已经理解的基础之上的。如果两者中间相差太远,是很难讲解使对方明白的。在做医生的时候,手术前的谈话,我都是尽量使用浅显的语言和例子来讲解,争取让病人尽可能明白。

比如关于酸性、碱性体质:

人体要比常识所能理解的复杂得多。比如经常流传的酸性、碱性体质。这些是把人体简化为线性系统。什么叫线性系统,就是1+1=2的系统,严格点表示是f(a)+f(b)=f(a+b)。
比如一个人喝了一口酒,然后大呼好酒,那么如果人体完全是线性系统,这个人喝了10口酒,他必须要连喊10声好酒。
人体中有些系统是线性系统,比如视觉的光学传递部分,一个鸡蛋摆在面前,眼睛里看到一个,再摆一个,看到俩。
但大多数系统不是线性系统。比如体内的酸碱平衡,是由磷酸缓冲液来控制的,半瓶子醋喝下去,血液里的pH值不会低于7.35的。

再比如遇到“因为纯天然、纯中药,所以没有副作用”,只需要淡淡的一句『你看过甄�传么?』

当然,这些比喻、类比也是有风险的,甄�传的类比就可能把对方引入到闻香杀女人的误区中去。

星期二, 二月 19, 2013

计算金融导论笔记

过去的十周,我选修了Coursera上的计算金融导论课。Introduction to Computational Finance and Financial Econometrics。https://class.coursera.org/compfinance-002/class/index 下面简单记录一下学习笔记。

导论哦,我金融知识少,你们表黑我。刚学到五十年前的模型。也得把牛顿学得差不多了才能引入洛伦兹变换是吧。整个课程基本是统计学,除了部分线性代数的,临床医生都能听懂。线代也有计算机可以解决,知道大概用法就可以了。

首先是收益率连续化,叫Continuously Compounded Returns,cc return,如果每时每刻都在复利存钱,那么收益率是价格取自然对数以后相减。比如年初投资1,年末获得2,simple return是100%,cc return是log(2)-log(1),cc return的好处是可以取到正负无穷

收益率的波动就是风险。所以用方差来表示风险。虽然人们通常愿意往正的方向波动。如果是跟销售共事就知道,他们也并不喜欢突然超额完成销售任务的,那意味着下一年很难做。

股票的收益率并非是正态分布,虽然正态比较好处理,于是可用histogram来看看分布,用QQ plot来看看与正态分布的异同。用box图来看看异常。常见股票接近正态,但肥尾、稍偏

以股票收益率可以计算各个之间的协方差、相关之类的。比如可以找出此消彼长的一对股票。好玩的是股票自己也可以跟自己的不同时间计算自相关,于是可以算出每相差x天的股票收益率

多个股票一起买,叫投资组合。也可以买入负数量的股票,叫short,就是先借股票卖掉,然后以后还人家股票。由于可以买些此消彼长的股票,于是可以降低风险。也就是降低组合后的方差。特别的,零风险的是固定收益的国债。

(投资组合的收益率-国债收益率)/风险叫sharp比率,衡量的是单位风险换来的收益。如果把横轴作为风险,纵轴作为收益,那么购买投资组合的不同方案就会在平面上有无数点。形成一个形状。可以算出最左边一点,也就是风险最低一点,也可以找到sharp率最高的一点。

选择股票有个beta值,就是用大盘线性拟合某只股票时候的直线斜率。>1说明它的风险高于大盘。相关系数R方是说明该股票的波动中百分之多少是由大盘或者说市场产生的。

于是把股票的波动也分成两个部分,一部分是于市场有关的信息造成的波动,比如央行又发钱了。另一部分是公司自己的信息与大盘无关的信息,比如job死了这样的信息。

课程中还介绍了几个数学工具,也很帅。

1. 首先是bootstrapping。在抽样估计总体的各种统计参数的时候,如果样本量不是很大,可以从样本中反复抽取。类似于把所有抽样的数据写在乒乓球上,扔到一个黑箱里,取一个记录下来再放回去,取跟抽样数据一样多的乒乓球个数,算一轮,取上成千上万轮。

这样的好处一个是样本量好像很大了,统计的参数可以估计得更精确。还有一个好处是有些统计学上的运算即使不知道总体的分布是怎样的,也可以强行的计算,比如一个偏态分布的量除以一个正态分布的量,得到的结果分布是什么形态,均值方差之类的是多少。这种推导对我来说太难了,但是用bootstrapping可以暴力算。这种简单粗暴的方法我最喜欢了。改天要自己找些东西练习一下,专门写一篇。

2. 求最值时的拉格朗日方法,就是把目标函数,限制条件用几个系数连接在一起,形成一个大的函数,然后再求偏导。这个也很暴力。

3. 画点成形求切线。就是求sharp ratio切线的方法。把所有可能性都标记在二维平面上,形成图形,然后其中的最优解很可能是出现在边界上,而边界上的特殊点更要特殊注意,用过特定点的切线来表示某种最优实在是太漂亮了。

这门课是导论,所以介绍的知识应该是金融学里面最基础的部分,用来讲解的模型也是50年高龄的模型,196x年的先贤们居然是用打卡的计算机在给美国所有的股票做最小二乘法,想想手都要抽筋了。在最后一堂课里,老师用无可辩驳的证据证伪了模型的假设。

这门课里面主要是统计学,各种基本概念、方法和假设检验都有涉及。而且学此课远远比临床统计学有意思得多,脑子里总想象着可以建模、计算然后挣钱。因此把这门课当作统计学入门来上也是不错的。老师还用的是目前如日中天的R语言作为教学。我没怎么做作业,但是我想还是应该借此课程开始学习一下R语言。各种科学计算包好像很全,堪比MatLab。

最后,coursera的神奇之处是你在U of washington上完了基础课之后3天,还可以在Georgia Tech里找到紧随的后续课程:Computational Investing, Part I https://www.coursera.org/course/compinvesting1

星期六, 一月 26, 2013

github与共产主义

其实共产党员应该去了解一下github。这才是共产主义实验田, 与共产主义社会有诸多相似。如开源、免费空间、为兴趣编程…甚至从某种角度而言, 它的存在与流行表明共产主义还是有可能存在和实现的。

以我残存的高中政治课印象。共产主义有几个基本假设在github是部分满足的。比如劳动是出于个人需要而不是谋生手段。通常的生产是不满足此条件的。所以貌似共产主义接近浪漫主义。在github上程序员贡献代码并不会收到直接、明确的劳动报酬, 就是出于兴趣。

共产主义的另一个基本假设是生产力足够发达、生产资料按需分配。对于程序员最重要的生产资料其实是电脑。这个大家都有可以忽略。协作编程时需要服务器存储版本。这也是生产资料。由于存储空间足够便宜了。github免费发放给开源项目存储空间。甚至不够好像还可以索取。

在这两个假设之上, 下一个假设是社会化大生产。github恰恰就是为了在协作编程时作版本管理而产生的。马克思在此假设上推出要公有制。在软件业、私有就是由版权来限定。github上的开源设定其实就是公有制。

从github隐约可以暗示, 如果生产过程是自下而上的。产品与原料的不同仅仅是组合方式的不同, 也就是信息的不同。生产就是产生信息, 那么共产主义也许还是有可能的。那是3D打印、纳米自组装、转基因…

关于开源与共产主义还有很多讨论,其他的观点请参考:

星期四, 十一月 08, 2012

用单词进行的头脑风暴

斯坦福的创意课过半,我自认为有些心得。其中之一就是头脑风暴的方法。

通常而言,头脑风暴需要几个人在一起,面谈。有主持人,大家畅所欲言。互相激发灵感。
通常而言,这是不可能实现的。

就创意课而言,同一个团队中的成员,不一定在一个城市,甚至往往不在同一个时区,面对面的交流甚至实时交流就不可能。

即便是有在一起面谈的机会,也需要非常高技术的主持人才能调动现场气氛,活动各个参与者的心思。主持人要控制气氛,不能让一个人太过激动,也不能让其他人冷场,还要在早期抑制负面评价,在中后期抑制节外生枝。

如果头脑风暴中的人再有利益纠葛,如同小王子所说,『语言是误会的根源』。头脑风暴根本不可能进行。

但是这几次的创意课之中,我却发现如果仅仅使用单词进行讨论,却可能是个不错的方法。
在第一课的作业中。任务是总结出全队的共同点。当时我们队用的方案是每个人用16个单词列出自己的特点,然后看了其他人的之后减到8个,再到4->2->1。
在第三课的作业中。任务是重新看待面包。于是我们队用单词首先定义面包的各个属性,并且扩展这些属性。
这两次讨论均是使用的单词,没有用一句完整的话。

单词就像离散的点,稀疏,留有想象的余地,但却有能够指明方向。在一个单词的表达中,很难表达出完整的含义,于是也不会有利益的归属。在企业内的非利益讨论是有可能的。单词,足够简单,不需要经过深思熟虑,能够快速反应,不需要完整表达,即便害羞的人也可以完成,也不需要占用太长的时间,于是离线的讨论也很方便,甚至用短信就可以进行。

头脑风暴中经常会使用脑图mind map作为记录工具。其实mind map的初衷里,也是要用单词来记录,来联想。

不过这几次课中,我还没有找到好用的在线协作的脑图工具。有一次用了google
docs中的绘图工具,真难用啊。而且,头脑风暴的讨论中,并不是一定从一个节点开始发散的,很可能是一个杂乱无章的网络。

于是我找到了另一种标记做图工具,叫DOT语言。http://zh.wikipedia.org/zh/DOT%E8%AF%AD%E8%A8%80
利用一个开源工具GraphViz http://www.graphviz.org/ 可以将DOT语言写的图转换成图片。

DOT语言的写法很简单,比如无向图:a连到b,就是a -- b; 具体的写法网上有很多教程。

在头脑风暴中,这样的写法就足够了。大家用单词作为每一个节点,然后可以用边来联系它们,或者作为孤立的点也没什么。于是方案可以是一群人一起编辑一个DOT语言的文本,然后用GraphViz将它转换成直观的图,以此互相启发。

不过这样需要安装软件,而且仍然不够协作。我仍然需要的是在线、协作、直观。因此又google了一番。发现Google Chart
API里面居然就有DOT语言的API
https://developers.google.com/chart/image/docs/gallery/graphviz

考虑到我的编程水平太差,要重现一个协作编辑器再从中调用API对我太困难了。于是我用Google Docs的电子表格设计了一个。
https://docs.google.com/spreadsheet/ccc?key=0AvhQHv1EqY4YdHhMX2xyejB2dDdtd3dx...
在data_input这个工作表中,参与者可以协同添加词汇,独立的一个或者是一对以表示关系。在image这个工作表中,你可以看到显示出来的图片。

Enjoy

用单词进行的头脑风暴

斯坦福的创意课过半,我自认为有些心得。其中之一就是头脑风暴的方法。

通常而言,头脑风暴需要几个人在一起,面谈。有主持人,大家畅所欲言。互相激发灵感。
通常而言,这是不可能实现的。

就创意课而言,同一个团队中的成员,不一定在一个城市,甚至往往不在同一个时区,面对面的交流甚至实时交流就不可能。

即便是有在一起面谈的机会,也需要非常高技术的主持人才能调动现场气氛,活动各个参与者的心思。主持人要控制气氛,不能让一个人太过激动,也不能让其他人冷场,还要在早期抑制负面评价,在中后期抑制节外生枝。

如果头脑风暴中的人再有利益纠葛,如同小王子所说,『语言是误会的根源』。头脑风暴根本不可能进行。

但是这几次的创意课之中,我却发现如果仅仅使用单词进行讨论,却可能是个不错的方法。
在第一课的作业中。任务是总结出全队的共同点。当时我们队用的方案是每个人用16个单词列出自己的特点,然后看了其他人的之后减到8个,再到4->2->1。
在第三课的作业中。任务是重新看待面包。于是我们队用单词首先定义面包的各个属性,并且扩展这些属性。
这两次讨论均是使用的单词,没有用一句完整的话。

单词就像离散的点,稀疏,留有想象的余地,但却有能够指明方向。在一个单词的表达中,很难表达出完整的含义,于是也不会有利益的归属。在企业内的非利益讨论是有可能的。单词,足够简单,不需要经过深思熟虑,能够快速反应,不需要完整表达,即便害羞的人也可以完成,也不需要占用太长的时间,于是离线的讨论也很方便,甚至用短信就可以进行。

头脑风暴中经常会使用脑图mind map作为记录工具。其实mind map的初衷里,也是要用单词来记录,来联想。

不过这几次课中,我还没有找到好用的在线协作的脑图工具。有一次用了google
docs中的绘图工具,真难用啊。而且,头脑风暴的讨论中,并不是一定从一个节点开始发散的,很可能是一个杂乱无章的网络。

于是我找到了另一种标记做图工具,叫DOT语言。http://zh.wikipedia.org/zh/DOT%E8%AF%AD%E8%A8%80
利用一个开源工具GraphViz http://www.graphviz.org/ 可以将DOT语言写的图转换成图片。

DOT语言的写法很简单,比如无向图:a连到b,就是a -- b; 具体的写法网上有很多教程。

在头脑风暴中,这样的写法就足够了。大家用单词作为每一个节点,然后可以用边来联系它们,或者作为孤立的点也没什么。于是方案可以是一群人一起编辑一个DOT语言的文本,然后用GraphViz将它转换成直观的图,以此互相启发。

不过这样需要安装软件,而且仍然不够协作。我仍然需要的是在线、协作、直观。因此又google了一番。发现Google Chart
API里面居然就有DOT语言的API
https://developers.google.com/chart/image/docs/gallery/graphviz

考虑到我的编程水平太差,要重现一个协作编辑器再从中调用API对我太困难了。于是我用Google Docs的电子表格设计了一个。
https://docs.google.com/spreadsheet/ccc?key=0AvhQHv1EqY4YdHhMX2xyejB2dDdtd3dx...
在data_input这个工作表中,参与者可以协同添加词汇,独立的一个或者是一对以表示关系。在image这个工作表中,你可以看到显示出来的图片。

Enjoy

星期日, 十月 28, 2012

合并多个excel

我早说过excel是反人类的东西,是个人以及企业的灾难。

问题:要合并数百个excel文件。格式相同,字段相同。
方案:

clear all
% 文件名按照001.xls, 002.xls....这样排布,1000个以内吧,多了自己改程序
maxindex=286;
% 最大文件编号。
index=0;
for i=1:maxindex
num=num2str(i+1000);
num=num(2:4);
% 耍赖犯懒了,001就是1+1000=1001,取第2-4位。
xlsfilename=[num '.xls'];
[ndata, text, alldata]=xlsread(xlsfilename);
[m n]=size(alldata);

for j=2:m
    index=index+1;
    for k=1:n
       mergedata{index,k}=alldata{j,k};
    end
end

end
xlswrite('mergexls.xls',mergedata);

代码放在这,迟早有人会碰上类似的问题。
MatLab跑起来够慢的,不过无所谓,反正就跑一遍。把文件合并就够了。另外,讨厌matlab里面的cell数据结构,一锅杂烩,真难看。

星期五, 十月 26, 2012

#CrashCreativity# 上课笔记(1)

斯坦福大学的公开课:A Crash Course on Creativity
老师:Professor Tina Seelig
教材:inGenius: A Crash Course on Creativity (我花了10个大刀买了kindle版)

第一课 INTRODUCTION
Chapter 1: Ideas Aren't Cheap, They're Free
想法并非廉价,它们是免费的!

1。创造力是可以训练的,也是可以被教导的。
2。一切挑战皆为机会。
3。创意引擎有6部分,三为内生:知识(燃料),想象(催化剂)和心态(点火)。三为外源:resources(资产), habitat(人力资源,规则,奖惩和物理空间), 和culture(团体的信念,价值与行为)


关于创意引擎的详细介绍在:TEDxStanford talk: Introducing the Innovation Engine

组队:
课程作业中有些是个人完成的,有些是需要组队完成的。
首次课程作业是组队完成的,队伍自动生成。所以虽然我诚邀了@简里里  但这周并没能在一个队里。

任务:
了解队友ALL in common,然后以最具创意的形式自曝。

所有的视频都是在youtube上面。不会科学上网的话,连学业都不能自理。

===update 10.23===
happy Mol day
第一词课程作业并不是什么竞争性的作业。所以把我们队的方案开源之:

每个人先用16个单词描述自己,然后email给所有人。
看到别人的描述后,再以8个单词描述自己,再email给所有人。
。。。
直到形成一个共同的单词。
然后用http://timc.idv.tw/wordcloud/zh/# 形成一个个的单词云,最后做成一颗单词树。

晚上10pm,终于团队进行了第一次skype全体会议。

3am
完成作业:
http://zh.scribd.com/doc/110912765/Word-Tree

第一课学到的东西:
每个人从同一个课程可以学到不同的东西。第一堂课就是热身,互相了解一下同伴。知道老师打算讲什么,有一个概貌。第一堂课对我有一个很新鲜的刺激,就是与一群不认识的人进行远程的网络协作。

于是我发现了『团队拖延症』。
其实,我们团队不算拖延厉害的,我们在摩尔日的晚上进行了一次全体会议,在交作业dead line前10多个小时就提交了作业。我觉得第一次作业能够有1/4的团队交了就不错了。老师那里可能有更详细的数据,也许可以分析,比如若团队跨时区,基本上就没戏了。

团队中的个体,每个人还有各自的生活和工作。上公开课不是优先级最高的事件,至少在离dead line很远的时候不是。那么,每个人能够留给团队活动的时间就是分散的零碎的时间,要找到一个统一的时间段非常非常困难。

传统上认为启动一个任务至少要有一次全体的碰头会吧,也可以叫头脑风暴。但对于素不相识的团队貌似不够现实。我们队也是在Deadline前1天才有机会全体(几乎)进行了一次语音讨论。

1. 因此,引入『异步交流』的概念。

异步交流,是说我们团队并不需要一定要同时在线交流,而是每个人可以利用自己的空闲时间将意见发布,然后再讨论。非同步的交流方式都是异步交流,比如email, 微博,google docs协作文档。

这时候要考虑异步交流方式的使用频率,比如个人的email,可能大约每6小时查看一次,微博/twitter留言可能每两小时一次也可能12小时一次,google docs碰上十八大可能要半个月才能访问一次。

异步交流的效率是个问题。异步交流的效率取决于交流的内容。如果是以对话讨论的方法,例如email的一问一答,要把yes/no, what, why, how对话完成一遍,估计要48小时。异步交流不应该是一问一答的,而是直接面向最终结果。协作文档就要像wiki那样不断完善,而不要像bbs那样盖楼。email应该是总结、广播的,而不是在问答讨论。微博在这次任务中,更多的目的是为了回溯,因为是要了解组员,其实如果是重度微博/twitter使用者,看看time line就可以大概形成一个印象了。

顺便抱怨一下,异步交流最牛逼的工具是Google Wave。只可惜广大人类的办公水平还是面向A4纸的。

说道异步交流,还有个严重的问题就是响应时间不确定。即使是在公司办公中,也不能保证所有人在所有时间都是守在电脑旁边,你一个email发过去,对方立刻就能够收到,并且立刻就能够处理。

2. 因此,需要引入『信息push机制』

信息获取的方式两种,一种是pull,我需要的时候才把信息拉过来看看,比如收email的『收』就是一个pull的动作。pull的好处是我有时间的时候才做这件事,没时间的时候就先放在一边不理。另一种是push,信息是推送过去的,你看也得看,不看也得看。

从20世纪开始,虽然信息传播的手段越来越丰富,越来越快,从电报到电话到传真到互联网上的视频。但是办公室一直没有废除,就是因为办公室是一个信息强行push的场所。看过《up in the air》的同学应该记得,女主角开发了一种远程fire人的系统,其中有个最大的问题就是——对方可以离开电脑。但在办公室里面是不一样的,老板就站在你背后,他给你的信息直接送达到你脑中,他要求你做的事情,优先级立刻升级到最高。权限更高的push是:“你到我办公室里来一下!”

网络合作课程并不需要这么agressive的信息push。但是也要有一定的弱push机制,比如面谈,这是要求对方即时响应,并且还要传达出身体语言信息的;电话,这是要求对方即时响应的;短信,这是确保对方在第一时间内收到信息的;QQ/MSN/Gtalk/SKYPE...这些强度更弱一些,因为对方可以隐身,不一定上线等等。

在要求对方即时响应的时候,不能够给出太大太复杂的任务。俩人面对面坐下,来我们谈谈“我是谁,我从哪里来,要到哪里去”,这样至少一天的时间就没了。即时响应就要求提出的任务要求是可以在几秒或者几分钟之内就可以完成的。

3. 因此,需要引入『微任务』

做手术的时候,师傅教育我们说一个复杂的手术其实不过是由很多基本的操作组合完成的。类比的,复杂的任务也可能可以拆分成许多简单的小任务,降低复杂度。

这次作业的任务是找到all in common,这其实是个很大任务。我想到两个基本策略,一个策略是大家列出所有的子集,然后找交集;另一个策略是预先设定好一个all in common的目标,然后看看大家是否命中,一旦命中就开始进行第二项,有创意的自曝展示的任务。

从获得关注度或者被“赞”次数多的角度考虑,应该是预设目标,然后投入更多的精力进行有创意的自曝展示,确实在课后其他同学的作业中也可以看出这样的被评价更高。

但我的出发点并不一样。我更希望能够借此开发出一个真正能够互相了解的SOP,写作业不过是副产品而已。于是我提出的策略是大家列出自己的特点,然后找交集。我们的自曝展示就是把这个过程展现出来。于是我向各个队员提出了这个提议,获得了大家的赞同。

列出自己的特点,这事也是个大任务。也就是我们先各自自曝,然后再统计找交集。这就需要『表达』,表达的方式有很多很多种,比如视频,每个人录制一段自我介绍;或者写作,写一篇自传。

说到写作,我又想起了以前学语文的各个过程:组词、造句、写作文。这三者的难度是逐渐增加的,恰好互联网正是逆向发展的,写作文=写blog,现在能写blog的人已经很少了,而且还在坚持写的人就更少;造句=微博/twitter,用微博/twitter的人很多,为何,因为造句远远比写作文容易得多;网络下一步会发展成什么?我觉得大概就是组词吧,仅仅用一个或多个单词来表达自己。

于是,每个人自我介绍最简单的方式,其实就是组词,用一连串的单词来表述自己。单词的好处是方便处理。如果有必要,很容易在后台写一串程序来处理整合这些单词,甚至可以计算出单词与单词之间的距离之类,或者借助wolframalpha做语义分析可能都算是相对容易的。

而且,如前所述,组词是个最简单的任务。有必要的话,甚至在几分钟之内就可以列出几十个与自己有关的词汇。这样的任务就可以算是个『微任务』了,打电话拿着听筒就可以做完。不过,我们这次的任务中并没有引入足够的快速响应方案和push信息的过程。交流效率不够高,如果是这4个人面谈,用单词的方法,我觉得5分钟就够了。

4. 『冗余进程』

这是本次作业过程中设计失误的一个部分。我们的任务模式决定了我们无法进行分工,下一步操作都必须等待上一步所有人都做完了以后才能进行。这样的进程完全没有弹性。更理想的情形是,项目中的各个任务是可以同时进行,互相之间有一定的重叠和冗余,各个进程在一定程度上是可以替换的,即使其中的少数进程不能进行甚至需要kill掉重启,对整体项目的进展也不会有太大的影响。这个只有在以后的任务设计中注意了。

星期五, 七月 20, 2012

Prezi详解

# 肩并肩演讲的工具

Prezi是非常炫的一个幻灯演示程序。不仅仅是足够的炫酷,Prezi的意义在于可以非线性的进行演讲,能够根据听众的反应,随时进行幻灯的平滑跳转。这是很适合iPad演讲的。

在ppt / keynote时代,演讲程序是针对投影仪的。演讲者与听众的地位是悬殊的,是“面对面”演讲。一个演讲者面对一群听众。演讲者控制整个演讲流程,即使是听众提问,也只是暂停流程,然后可以继续进行。

而在ipad上,则更适合“肩并肩”演讲,讲者与听者可以肩并肩的坐着,共同面对一块屏幕来讲解。这时候听者的地位大大提高,甚至有直接操作的可能。听者的注意力不再完全受到讲者的控制。于是讲者应该能够根据听者的兴趣随境转移,即时作出反应与变化。作为商业演讲,肩并肩的演讲要比面对面的演讲更有影响力。

在prezi出现之前,我一直没有找到理想的“肩并肩”演讲软件。这是因为power
point和keynote都是在时间维度上展开的,幻灯是按照时间顺序线性排列。虽然在电脑上能够通过超链接进行一些微调,使线性结构变成树状结构,但是在keynote
for ipad上,居然无法引入基于图片的超链接。这种微调的能力大打折扣。

prezi的观念不一样,它是在空间上展开的幻灯片,幻灯一次性呈现在面前,但是可以根据兴趣点的不同进行缩放。它的“播放”过程,只是提供了一条兴趣路径。如果需要,随时可以走其他路径,就好象草坪上有一条路,但是既然草坪已经铺开了,怎么走都是可以的。

# Prezi的简体中文

Prezi对简体中文的支持一直不好。从prezi自己的论坛上看http://community.prezi.com/prezi/topics/there_are_some_problems_about_chinese_input
@maozi 三年前就已经提出了问题,并且还提供了文泉驿这样开源的字体方案,但对方一直不肯接受。不知道是不是因为开发组内有铁杆的简体中文黑。

@xiaolai 在《为Prezi Desktop设置中文字体》
http://www.lixiaolai.com/archives/11264.html
一文中进行了详细的解释,如何设置prezi桌面端的简体中文。prezi的桌面版可以自定义导入字体,但字体必须是swf的。这种怪异的东西貌似可以用sIFR生成来SWF字体,而且还有一个在线的工具
http://www.sifrgenerator.com/wizard.html
可以自动转换出SWF字体。但是,任何一个简单的中文字体都大于这个在线工具所能承受的范围,于是自己动手暂时失败。不过好在有一位不知名的好人已经做好了多个swf字体。原本的下载是这里
http://www.gbcgbc.tk/wiki/%E6%96%87%E4%BB%B6%3APez_GBC_Fonts.7z
但是作者的网站整个失效了,主页也跳转到了网易邮箱。直到最近几天,我才又找到了这个字体包的文件下载,在http://vdisk.weibo.com/s/8L12d
为了以防万一,我还是放了一份到box.net里面,https://www.box.com/s/d35a270947deb0245d0b

转自@xiaolai 的教程:

将解压缩后的文件中所有swf文件拷贝到:

Mac OS X:

~/Library/Preferences/com.prezi.PreziDesktop/Local Store/fonts

Windows 7:

C:\Users\[username]\AppData\Roaming\com.prezi.PreziDesktop\Local Store\fonts

Linux:

~/.appdata/com.prezi.PreziDesktop/Local Store/fonts

注意,要覆盖原有的文件!

创建一个新的Prezi文档。

选择合适的模板。

按下Ctrl+Shift+C打开CSS模板编辑器。

修改@font-face中的src: url(‘xxx.swf’)为GBC Fonts中提供的中文字体,例如:

@font-face
{
src: url(‘STXINWEI.swf’);
fontFamily: body;
}

@font-face
{
src: url(‘STCAIYUN.swf’);
fontFamily: strong;
}

@font-face
{
src: url(‘STXINGKA.swf’);
fontFamily: head;
}

而后点击“Apply”按钮。

不过这个方法只能在prezi desktop上进行简体中文的输入和播放。一旦文件上传的prezi的网站,简体中文还是无法显示的。更麻烦的是,如果通过网站导入或者直接导入到iPad上的prezi
viewer上,文件一开始下载就会引起闪退。因为中文swf文件都是本地文件,prezi的网站上没有,通过网站或者直接导入时,字体也不在文件包之内,于是要从网站索取,无法取得就发生了闪退。

因此对上述简体中文的方案,我做了一点点改进:

选择您喜欢的三个中文swf字体,比如STXINWEI.swf,STCAIYUN.swf,‘STXINGKA.swf,将它们改名成OpenSans-I.swf,OpenSans-B.swf和OpenSans.swf,然后将这三个字体文件copy进
Mac OS X:

~/Library/Preferences/com.prezi.PreziDesktop/Local Store/fonts

Windows 7:

C:\Users\[username]\AppData\Roaming\com.prezi.PreziDesktop\Local Store\fonts

Linux:

~/.appdata/com.prezi.PreziDesktop/Local Store/fonts
覆盖原来的字体。

这样在prezi desktop端,可以顺利的编辑和显示简体中文。之所以选择这三个字体名,是因为OpenSans这是空白模板默认的字体。

然后到本机系统的字体库中,找三个简体中文的TTF字体。copy出来备用,也分别改名为OpenSans-I.ttf,OpenSans-B.ttf和OpenSans.ttf

不失一般性,以windows系统为例:

下载安装itools,http://www.itools.hk/index.html

连接iPad,打开itools,找到应用程序prezi viewer,点击文档管理,找到
/Library/Caches/路径,导入改名后的OpenSan.ttf的三个字体,注意后缀是必须是小写的.ttf。然后就可以通过网站或者itunes应用程序或者itools将桌面版制作好的文件导入到prezi
viewer里面了,简体中文是可以正常显示的,如果发现异常,再重新用itools导入伪装成OpenSans的中文字体即可。

对于prezi网站上要显示简体中文,现在实在是没想出办法。

# Prezi的制作技巧

Prezi可以很华丽的来介绍产品,比如您公司的产品,照张照片,然后就可以在每一个部件中,用prezi来进行讲解。prezi并不太需要指示箭头,因为可以“钻”进细节的部分进行讲解。

思维导图软件是prezi最好的伴侣。利用思维导图软件,可以快速的生成一个演讲的二维思路分布图。如果使用常规的ppt,您还需要将这个二维的思路网线性的串接起来。但在prezi中,则可以直接复制这个二维脑图。prezi可以理解成一个华丽的思维导图展示软件。

如果要在prezi中插入视频,文件不要太大。prezi的多媒体文件都是经过转换以后存放在amazon
s3服务器上,即使用本地的桌面端,视频也要经过上传、转码再下载的过程,文件大了很慢很麻烦。视频则转换成m4v文件。从content.xml中获取的媒体文件地址,复制到浏览器地址栏中是可以直接播放的。因此私人的prezi文件其实也不那么安全。


# Prezi的进一步研究

Prezi的普通用户是无法下载prezi
desktop桌面程序的,但是可以在http://mac.softpedia.com/progDownload/Prezi-Desktop-Download-85131.html
找到。有30天的使用时间限制,这里有延期使用教程:http://blog.sina.com.cn/s/blog_6f4609ed0100z97p.html
所需要的cracklock软件在http://william.famille-blum.org/software/cracklock/index.html,prezi的免费版用户只能生成公开文件,不能制作私有的幻灯,但edu用户可以,如果您还有大学的邮箱,就可以注册一个edu账户,中国的.edu.cn的邮箱也是可以的。如果离开大学太久,淘宝上花10块钱不到就可以找到中国大学邮箱注册。

prezi桌面程序制作好的文件是一个.pez文件,用万能的7z可以直接解包,如果没有7z,把后缀改成.zip然后解压缩也是一样的。

解开文件以后,可以看到一个content.xml文件,里面记录了整个prezi的文件内容。研究一下很有意思。

这里插入一个prezi类似物impress.js的介绍。impress.js是一个利用css的特性,直接在浏览器上实现prezi效果的js框架,是github上的开源项目。它制作出来的效果如:http://bartaz.github.com/impress.js/
被炫过之后一定要看看源代码,里面的注释很清楚,您也可以动手自制。

但是impress.js的麻烦在于,所有的元素定位都要手动,缺乏一个所见即所得的编辑器。这就好像,虽然理论上我通过像素点的坐标也可以使用photoshop,但是缺乏鼠标仍然会让人感觉很不方便。

对比prezi的content.xml与impress.js的源代码,会发现这两个其实是说的一种语言,理论上可以互相转换的。

比如我贴出了一个随手测试用的prezi的content.xml代码:http://pastebin.com/M8aEEYG9

prezi xml里面的是指的播放顺序,这个应该可以用impress.js的`api.goto( idx | id |
element, [duration] )`来实现

prezi xml中的x="-53.95" y="623.25" r="0"
s="11.3",与impress.js中的data-x,data-y,data-rotate和data-scale等价,用来标记元素的位置、旋转和缩放

prezi xml中标签之内还有一组坐标的标签-111.15-18.3,也许是说在上一级object标签内的坐标系之下,再平移的坐标。与processing里的pushMatrix()相似

prezi xml中,object是把每一个项目,比如连续的文字都做成了类似div的东西,于是就不太需要html里面


之类的排版标签了吧。但path中提到的ID序号不是连续的,而是间隔的,比如0,3,5,说明0到3之间是在一屏内显示 也就是说prezi xml中path所提到的object ID,对应到impress.js中要赋予class="step"的属性,而path中没有提到的则不需要。object内的textfield中再提到的坐标则是相对与该object的位置 prezi xml中其他的部分貌似不太需要解释。所以应该是可以制作出一个转换器,将prezi xml转换到impress.js的格式,这样prezi desktop就可以成为一个impress.js的WYSIWYG编辑器了 同理,从impress.js,应该也可以解释成prezi,本地化的文件可以存储在repo目录下,然后打包成zip以后改名成.pez文件,这样的好处是能够利用ipad上的prezi viewer做离线播放impress.js。 EOF()

星期日, 七月 15, 2012

常见头戴实景增强显示器的显示方式

最基本的方法就是使用半反射半透射的镜片。显示器在眼镜的侧面,通过一枚半反射半透射的镜片将计算机生成内容显示在眼前,并与真实场景相叠。
优点:光路简单。
缺点:
整个装置的体积较大,半反半射的镜片如果是45度放置,则显示的宽度与装置的厚度一致。如果限制眼前装置的厚度,则显示面积就比较小。

这是最近出现的一种方案,需要由眼镜上的显示器和人眼佩戴的隐形眼镜之间相互配合。
隐形眼镜上有线性偏振片,中央有一个高度数的凸透镜,其上没有偏振片或者有与周边垂直的偏振片。
在眼镜显示器上,近景显示器前面有一层偏振片,其方向与隐形眼镜周边的偏振片方向垂直。近景显示器之外是没有偏振片,或者有偏振片但方向与隐形眼镜中央的垂直。
于是远处实际景物发出的光线可以顺利通过隐形眼镜的大部分区域,聚焦在眼内。(红色光线)
而近处的显示器上的光线,无法通过隐形眼镜周边的部分,只能通过隐形眼镜中央的高度数凸透镜,也可以顺利聚焦在眼内。近景和实际景物之间互不干扰

优点:人眼平时处于看远处的放松状态,近景的计算机生成图像的位置相当于无穷远点。日常视觉比较放松
缺点:
1. 需要再戴一枚隐形眼镜。由于其中有偏振层加入,对隐形眼镜的透氧性有什么影响还不得而知。有可能降低角膜的氧气供应。
2. 相当于眼前一直有一枚偏振镜,环境亮度减半。在早晨和傍晚时,自然光的偏振性明显增加时,可能会看到周围环境反光中有多种彩色条纹
3. 对液晶显示器的观察有影响
4. 计算机显示的近景会遮挡远处实景。无法实现两者的融合。

这是很热门的一项技术,有文献《A single-pixel wireless contact lens display》已经可以制作出单像素的原型机。但是这个装置作为增强实景的显示器,从理论上来说就是错的,不可能实现。
在文献中所述,隐形眼镜表面上是微小的LED作为显示像素,其下有菲涅尔波带片,利用菲涅尔波带片的衍射作用,等价于一个高度数的凸透镜,将LED所发出的光聚焦在视网膜上。在单像素的实验中,这个是可以实现的。
但是如果扩展到多像素,比如至少是320*240的像素,那么会有一大片范围被显示像素所覆盖。注意每一个菲涅尔波带片等价于一个高度数凸透镜,它既可以聚焦LED发出的光,也可以偏折来自远方实际景物的光,相当于在眼前佩戴了一枚高度数的远视眼镜。那么有显示像素的位置,就是看不清远景的,要让显示器可用,就必须阻挡显示器后面的来光。否则就是严重模糊的成像。
这种显示技术与上面“组合分选”的方式一样,都不可能实现计算机生成图像与实际景物的融合。算不上一种AR显示技术。


这是苹果最近申请专利中所披露的技术,估计google glass可能也是利用类似的技术。这个方法本质上与半反射半透射的原理是相同的,但是利用楔形玻璃内部的全内反射,使图像能够在眼镜片内部反射多次后再进入眼睛。最后一次反射然后透射进入眼内的过程我还没有太搞清楚,有可能楔形的边缘并不是平直的,而是在一定范围内有变化,打破全内反射的过程,使图像进入眼内。
优点:眼镜显示装置可以做得很薄,显示面积也可以比较大。
缺点:显示部分可能有一定的棱镜效应,远处实景进入楔形玻璃时可能有同一个方向的偏转,造成轻微的斜视,佩戴时间长了以后,眼肌容易疲劳。

以上四种显示方案,都有共同的缺陷。就是计算机生成图像的相对位置是固定的。显示器并不知道人眼在看什么位置,通常情况应该是将图像显示的位置通过透镜组透射到远处,使之与远景实景相匹配。但是人眼的调节状态是在不断变化的,因此,当人眼在看近处时,计算机生成图像并没有跟随着改变图像的聚散度,于是发生看近处时,计算机生成图像是模糊的情形,但其在眼镜上的位置有在真实物体之前。于是可能在看报纸时,直面上有一块计算机生成的图像,但需要人眼用看远的方式才能看清,而报纸上的文字又需要调节到近处才能看清,人眼在远近快速调节的过程中会产生疲劳与不适。

磁力耳机绕线器的制作

磁力耳机绕线器的制作。山寨自sinch耳机绕线器(139.00元),自己制作(0.40元)。当然材料品质不同,不够耐用,因此自己可以上300个,坏了就扔。


@王春水Charles :价格高的原因往往是因为想法和设计,而不是因为成本,比如说家具。不知道这个是不是这个原因 

回复@王春水Charles : 王老师批评的对啊,如果不分析想法和设计,就相当于浪费了138.6呢。此设计的过人之处在于:1.物体与耳机线相连,2.合扣与解扣不费力不损线,3.利用手机自身作为缠绕体。之所以前人想不到,是因为手机作为缠绕体时要将绑扎带先行植入。由此受启发稍后上全新设计图

所以以后我会按照之前提出的发明三问来分析这些设计:
1. 不要重新发明轮子
2. 知道轮子是如何发明的
3. 为什么轮子被发明之前,轮子没有被发明

对于此绕线器:
1. 不要重新发明轮子:
绑扎带在线上,有锁扣设计的,均属于同类,可用于所有线材的固定。
2. 轮子是如何发明的:
此设计的过人之处在于:1.物体与耳机线相连,2.合扣与解扣不费力不损线,3.利用手机自身作为缠绕体。
3. 为什么轮子被发明之前,轮子没有被发明
之所以前人想不到,是因为手机作为缠绕体时要将绑扎带先行植入。

附全新设计:

此设计一侧卡住主线,也就是靠近插头的部分,然后以sinch的方式缠绕,最后末尾的时候,将两个细耳机线分别卡住即可

星期五, 六月 15, 2012

关于如何演讲 /讲课的听课笔记

整理一下今天(2012年4月)听课的笔记,3万一下午的课哦
沟通:『事情』=事+情,通情->达理,先处理对方情感,再处理事,情为先,事为后。处理情感时,先跟后带,表达感同身受,复制对方表情。复述对方的语言,先复述事,再复述情,表达出理解对方的『事+情』

演讲的准备:1)内容,讲100%,听众只能接纳10%,这10%是核心。希望是什么。2)结合讲者的目的和听众的需求。3)用脑图软件找到『罗马柱』。4)确定逻辑关系


开场:开场要围绕10%的核心内容。方法:开场三问;讲故事,但不能离题;事实或数据,要有冲击力的对比;展示,连续展示大量视觉冲击;引述,显示专业,诱导兴趣。

主干:人类的注意力最长7分钟。(人类啊人类)。每7分钟就要穿插吸引注意力的东西,问答、表决、游戏、故事、更换主题等等。数字要转换成感性认知,eg角膜屈光力43D相当于7副六百度的眼镜。『利益扳机』,eg『这之所以对您重要,是因为…』。

听众喜欢:1)喜欢互动。2)喜欢与自己有关的内容。3)喜欢喜欢自己的讲者。建立与听众的情感联系:幻灯使用听众单位的图片、logo;引述当时当地的话题,与听众职业相关的流行话题;寻找与听众中的KOL(关键意见领袖),事先调查听众背景,引述听众中KOL的观点。

结尾:总结,并适当煽情。演讲好坏关键在于听众带走了多少。

关于光场成像的听课笔记:Envisioning a light filed ecosystem

今天在北影听了Lytro的CTO Kurt Akeley的讲座:Envisioning a light filed
ecosystem。接下来是一组笔记。其中不全是Kurt
Akeley所讲,有部分是我融合自己以前学习的信息。错误之处请指出。感谢@王春水Charles 老师组织此讲座

目前的3D显示技术有两个大问题,一个是离轴观察,一个是调节集合反射分离。

离轴观察,off axis viewing。虽然是立体电影,但是你偏头看一下东西,发现整个景物随着一起旋转,并未看见物体的侧面。

调节集合反射是说,你对焦清楚时看到的物体面和双眼视线相交的面应该是同一个面。在真实空间是默认的,你看一个物体,是用双眼去看这个物体。但在3D电影是不一定的。你的焦点定在银幕上,而电影中表现的景物位置是在银幕前或者后。

用光场成像理论进行采集图像。该理论基础是Intergral imaging,在1908年由Gabriel
Lippman提出。不过即使到了现在技术发展仍然还没有达到实时采集视频的能力。受限制于图像处理的数据量。

光场的理论是去采集物体发射出的每一个光线的方向。要在空间中标记一个射线方向,(三维矢量)需要4个变量,通过第一个观察平面的xy坐标,和第二个观察平面的xy坐标,(观察平面位置确定)即所谓4D光场,如果考虑强度是5D数据。

如果能够记录物体发出的所有光的光场数据,就可以重建出物体发光的所有信息。这应该和记录波前的全息是等价的,只不过是用法线方向表示wavefront而已。

如同阿贝成像定理所限制,有限光瞳只能采集到有限范围内的wavefront。光场相机也是如此。光场采集后,可以通过运算生成一个虚拟相机,或者虚拟观察点。这个观察点可以是在入瞳以后的任意一个位置。比如24mm直径的光场相机,可以产生瞳距最大24mm的景深感。

光场相机使用微镜头阵列来成像。微镜头阵列相当于4D数据中的第一个观察面,其后的CCD/CMOS相当于第二观察面。(貌似是)两个成像面的间距=微透镜的焦距。数值孔径F#=f/a,a为镜头直径。

除了微透镜阵列之外,光场相机在其前面还加入了一组成像透镜,可等效于一个主透镜。主透镜的F#与微透镜相同,这样保证在微透镜对应的CCD上没有图像采集的重叠。

主透镜的意义在于,一是通过F#避免图像采集的重叠,二是可以调整光场相机所采集的baseline,我认为就是入瞳的wavefront的位置。比如要两倍直径,只需要更换主透镜的部分(F#不能改变),微透镜阵列不变。(换镜头的单反?)

通过在主透镜上的zoom或者变焦,可以改变光场采集的“物体空间”。从前相机是二维成像,所以只要考虑物平面,但光场相机是三维成像,所以要考虑前后的范围。

相机的分辨率目前由微透镜阵列的分辨率决定,比如微透镜阵列是1080*1080的,那么像素就是1080*1080,每个微透镜阵列对应一组N*N的CCD像素,N的数值决定重聚焦的能力,或者说在景深内采集的物平面数量。注意物平面的分布对于屈光度是线性的,但对于距离是非线性的。

Kurt Akeley提到现在已经可以超越微透镜的分辨率,也就是说虽然微透镜阵列仍然可能是1080*1080,但是像素可以比这个高。我猜算法相当于通过对应的CCD数据重建通过微透镜的每个分量wavefront,然后再拼接出整个面的wavefront。

增大分辨率也可以减小微透镜。随着微透镜的减小,并不会增强衍射效应,因为衍射是由数值孔径F#决定的。(解决我之前一大疑惑,我学问不扎实啊,Airy斑的直径不就是跟f/a有关么)

Kurt Akeley讲到光场渲染,就是将光场采集到的数据,重新在2D平面上显示出来,不过这时要追踪观察者的视点。这里有个有趣之处,他是在北影讲,但是如果摄影机都采用光场成像了,意味着不会再有电影院。因为坐在中间的观众和周边的观众看到的是完全不同的。跟话剧差不多了。他建议是头戴显示器。

关于相机:

* 主透镜的可以选择成像“物体空间”的范围,比如1m-无穷远,或是3m-8m之类。也可以改变角放大率。
* Kurt Akeley现场演示时用的是win系统。印象中他们网站上说只有Mac版本的,看来win下的也可用了。
* 目前软件只能做到重聚焦,也就是拍摄完成以后,选择哪里,哪里清楚。理论上可以变换视角(只要在baseline的光瞳范围之内)。但这一版本还不行。买东西果然要买偶数代啊。不知是否能帮众geek拔草。
* 目前还不能实时采集图像。看每次照相,图形处理要好几秒。目前图像完全是RAW的,一张要十几兆,进入电脑的数据未经压缩。瓶颈在于CPU/GPU和数据带宽限制。(这就是1908年搞不出来的原因吧)

询问了光场相机MTF的计算。他表示商业公司对此不甚关心。有paper,唉,自己查吧。

星期五, 六月 08, 2012

举手之劳

凑个热闹

有个船主,让漆工给船涂漆。漆工涂好船后,顺便将船上的漏洞补好了。过了不久,船主给漆工送了一大笔钱.漆工说:“工钱已经给过了”。船主说:“这是感谢补船漏洞的钱。”漆工说:“那是顺便补的。”船主说:“当得知我的孩子们驾船出海,我就知道他们回不来了。因为船上有漏洞,现在他们却平安归来,所以我感谢你!"

淹神的铁民是不会让自己的船上有漏洞的,所有的漏洞都应该在第一时间被修补上。臭佬就是这样一个漏洞。席恩・葛雷乔伊已经分不清楚到底谁是臭佬,是拉姆斯・波顿还是自己。他终于从史坦尼斯手里逃了出来。隐姓埋名并没有太大的意义,因为已经没有人能够认出他来了。他只是一个给船涂油漆的漆工,由于缺少几根手指,他每次涂漆的动作相当缓慢。不过涂漆这件事,本来就是个细活。慢一点到也没什么坏处。

席恩掂了掂手里的钱袋,笑了。不过他的豁牙吓了船主一跳。船主意识到自己的失态,他黝黑肥硕的脑袋上很快又恢复了优雅的微笑。席恩知道他是谁――札罗・赞旺・达梭斯,十三巨子之一,也知道他的船上为什么有个漏洞――他这么黑乎乎的家伙居然把拥有银色长发紫色眼睛的丹妮莉丝称为自己的孩子。

“铁民拿到报酬必须是铁钱”。突然,一片刀锋从札罗胖胖的前胸中穿出。阿莎从札罗的身后闪了出来,擦擦她的刀。“札罗,你已经在另一处里被风暴丹妮关在自己的金库里饿死了。再死一次也没什么了不起的。”

席恩和阿莎紧紧的拥抱在一起。一次取得十三条战船,这是一个开端。不仅仅是从札罗那里获得的,更是从乔治那里获得的。席恩向淹神祈祷,他们能避开马丁的思绪足够长的时间。

参考:

  1. 淹神
  2. 席恩・葛雷乔伊
  3. 拉姆斯・波顿
  4. 札罗・赞旺・达梭斯
  5. 阿莎・葛雷乔伊
  6. 乔治・R・R・马丁

如何使用dropbox催稿

step 0. 安装dropbox 到https://www.dropbox.com/下载并安装,至少要1.4版本以上的,这样可以支持实时更新。碰上IT水平稍低的作者,请编辑帮忙下载并安装。不过话说连科学上网都做不到,还怎么做科研,怎么写科普呢。 step 1. 请作者将写作的文稿存储在dropbox的特定目录中。 step 2. 右键点击该目录。dropbox》share this folder [image]http://img1.guokr.com/gkimage/ct/zf/l5/ctzfl5.jpg[/image] 填入编辑的dropbox账户。 step 3. 完成 作者的每一次存盘,都会在编辑的dropbox中同步更新,并且还有提醒。如果不满意一个版本,还可以回溯到上一个版本中去。万一不慎删除,短时间内也是可以恢复的。 下面补充一下写作工具: 写作什么的,最好不要使用word。要知道word是个排版工具,是面向打印机的,而不是面向写作过程的。纯文本才是最好的写作文件格式。如果要增加插图、超链接、标注什么的,推荐使用[Markdown](http://daringfireball.net/projects/markdown/dingus)。 写作软件在小众软件中介绍了许多[无干扰编辑器](www.appinn.com/tag/文本编辑器/) ,Evernote也在可选之列。更喜欢折腾的推荐使用号称[手稿级的编辑器](http://etherpad.org/)能够记录每一个字符的键入和修改过程。对于不折腾不死星人,可以考虑使用Vim或者Emacs,不过我认为那更多的是为... 我认为,最佳的写作工具其实是笔和纸。逃到远离一切显示器的地方去,只用笔在纸上写字,这才是效率最高的。笔推荐使用钢笔,摩擦阻力最小,一口气写个几千字你就知道圆珠笔的痛苦了。纸张切不可选择什么小清新的牛皮笔记本。死重不说,还要腾出一只手压着。用过的A4纸背面最佳,其次是活页本。这些可以“非线性编辑”,但要记着标记页码。 同时应该搭配一台二手扫描仪,200元以下足以。手写过的手稿统统扫描下来,然后把原件保存好。万一日后成名了可以一张一张拍卖。

星期五, 五月 25, 2012

贡献评价函数

贡献评价函数.xlsx Download this file

现在遇到一个假想问题,如果一群人一起做一件事情,挣了钱,那么如何分呢?事先股份制确认,然后按照股权分账,显然是一种标准的商业方式。但是这种方式也不一定是好的,尤其是在创业早期,比如一次创意头脑风暴,产生了一个惊人的发明,有的人提出最初的内核,有的人进行了大幅度的扩展和提升,还有的人只做了少量修补,这个头脑风暴会议可以录制下来,大家可以播放、讨论,但是如何判定各自的贡献呢?而且如果会议之前事先确定专利的股权,头脑风暴的时候,可能就有人偷懒,没那么积极了。

于是我希望设计出一种评价方法,使每个人尽可能诚实的对自己和他人的贡献作出评价。这样组织头脑风暴会议讨论发明的时候,也可以清晰的分割知识产权了。

==问题描述==
现有若干人完成了一项任务,假定每个人都能够清楚的了解其他人所作出的贡献事件。这个条件其实大企业并不满足,员工通常并不知道老板在做什么。员工做错事顶多扣掉三个月工资,再找一份工作。老板做错事可能30年的积蓄就没了。但是微型企业应该是满足的。

每个人(i)对完成任务作出了若干贡献C(i),但C(i)不可测,只能是估计了。

现在每个人(i)对自己和其他人评价贡献。X(i,j),j=1:N。对自己贡献的评价就是X(i,i)了。
那么对C(j)的估计E(i)=E(X),比如Average(X(i,j),i=1:N)

为了要求使每个人的评价务必客观准确,所以引入罚分
P(i)=P(X,E)
比如P(i)=sqrt(sum((X(i,j)-E(j))^2,j=1:N)),相当于均方根

如何设计每个人的收益R(E(i),P(i))?
使Sum(R)=100%,
并且每个人(i)给出的X(i,j)=E(j),j=1:N,ji是纳什均衡点?

也就是说,
如果(i)对自己的评价过高,X(i,i)>>E(i)的时候,应该是R(i)去很小的值,
而X(i,i)=E(i)的时候,R(i)应该=E(i)/sum(E)

==一个方案==
现在每个人(i)对自己和其他人评价贡献。X(i,j),j=1:N
那么对C(j)的估计E0(i)=(Sum(X(i,j),i=1:N)-X(i,i))/N
修正E(i)=E0(i)/sum(E0)

为了要求使每个人的评价务必客观准确,所以引入罚分
P0(i)=sqrt(sum((X(i,j)-C(j))^2,j=1:N))
修正P1(i)=exp(-P0(i))
修正P(i)=P1(i)/sum(P1)

R0(i)=E(i)*P(i)
修正R(i)=R0(i)/sum(R)

==举个栗子==

A的评价:X(A,A)=0.30 X(A,B)=0.10 X(A,C)=0.60
B的评价:X(B,A)=0.30 X(B,B)=0.20 X(B,C)=0.50
C的评价:X(C,A)=0.10 X(C,B)=0.40 X(C,C)=0.50

对每个人的贡献估计E(i)
E(A)=0.20 E(B)=0.25 E(C)=0.55
大家评价误差产生的惩罚P(i),注意P(i)越小,惩罚越大
P(A)=0.33 P(B)=0.35 P(C)=0.33
最后结果:
R(i) R(A)=0.20 R(B)=0.26 R(C)=0.54

===再举个栗子===
如果B同学极度自恋,
A 0.30 0.10 0.60
B 0.05 0.90 0.05
C 0.30 0.10 0.60
那么
R(A)=0.32 R(B)=0.08 R(C)=0.60

星期三, 五月 09, 2012

新五毛入推指南

1)到糊涂佛的页面https://twitter.com/#!/whotofo/following找些有趣的人交谈发些日常生活推;
2)加关注@mranti @xiaomi2020 @aiww了解时局动态;
3)加关注@baozuitun @sanwolfy学习如何攻击『反动言论』;
4)贴个头像
5)有些言论在推上使你的五毛身份非常容易被识别,典型的,包括但不限于称赞GFW;
6)请珍惜政府给予的翻墙机会,抓紧时间通过youtube以及其他不易获得的资源学习英语、学习公开课等等;
7)与推上的程序员多交流,学习一技之长,早日换个工作

拿工资做老板要求的工作是天经地义的,但工作也是学习和提高的珍贵机会。一个人从工作中获得如果不仅仅是工资,还有其他的更多的收获,就好像在进行利滚利的存钱。
做事呐,没有必要要求做到最好,那样是不现实的,但是应该每一次比上一次有所进步,或者有所优化,让收益与付出的比值不断增大。
开始的工作可以是为了养家糊口,慢慢的能力积累到一定,就要考虑自己的擅长和喜好。做自己最擅长的事情,可以在单位时间内拿到最多的钱。做自己最喜欢的事情,可以获得除了工资以外的幸福感。幸运的是,往往我们最喜欢做的事情也恰恰是最擅长做的事情。