2012年10月28日星期日

合并多个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数据结构,一锅杂烩,真难看。

Posted via email from goldengrape's posterous

2012年10月25日星期四

#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掉重启,对整体项目的进展也不会有太大的影响。这个只有在以后的任务设计中注意了。

Posted via email from goldengrape's posterous