星期一, 三月 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 能力天空。粗略看了看,基本满足要求,但是感觉有点乱。而且看起来公司还不够大,有点怕坚持不了多久倒掉了,自己之前做的课程就丢了。