技术沙龙准备
三天前王康提议开学前的周末搞个活动,之后敲定由Cheer Xiao、heroxbd、Aron Xu和我做演讲。得到消息很诧异,因为以上几位都有丰富的系统管理经验,我就不知道能干什么了……但毕竟被逼上梁山了,最后Cheer Xiao让我讲Haskell。
我考虑了几种讲法:
- 纯粹讲语法。大家可能不会有什么兴趣。
- 和其他语言做比较,找设计独到的地方。以前做过类似的事,不太想重复。
- 找一个function pearl。思考再三,觉得以前看过的Philip Wadler的pretty printer可能是最合适的了,用不到Haskell很多特性,需要了解的语法很少就能上手。在开头简单地过一下语法中的一个子集就能满足后面讲pretty printer的需求。
幻灯片工具jmpress.js
要是以前我肯定会纠结选择org-mode还是用pandoc风味的markdown,生成.tex
文件后还要折腾xelatex
的各种宏包,特别是得处理beamer
的很多麻烦问题。由于我对LaTeX
不熟,用起来势必捉襟见肘。尽管LaTeX
号称排版功能强大,但我这样的入门用户是用起来就带脚炼跳舞。另外幻灯片缺乏显示以外的其他控制功能。索引、进度条、现代化一点的动画等,我知道LaTeX
当然都能做,但做起来肯定不方便,它使用的语言看着就让人倒胃口了。
现在学了点网页前端领域的皮毛,html
、css
、javascript
,一个个就其本身来说,都是我没法接受的。但引入了一层抽闲:各种现代化的模板引擎和coffeescript
,html
这些东西就不再让人倒胃了。
我选择了jmpress.js作为演示工具。内容用jade
编写,样式用stylus
生成,脚本使用coffeescript
。
构建工具选用grunt-0.4.0
,其grunt-contrib-watch
插件能自动检测源文件是否修改并更新相关目标文件。源文件保存后,在浏览器里刷新就能立刻看到结果。而用beamer
写的幻灯片,内容多了之后就得等上半分钟,很影响体验。
使用了coffeescript
,几行代码就能实现其他幻灯片工具里难以实现的功能:
- 在底部添加进度条,用彩虹色表示时间
- 项目列表(还包括其他元素)的增量式显示
- 操作DOM实现内容的复制
我把这次演讲当成了前端知识的一个极佳锻炼机会。
现场
今天14:00活动开始。来现场的人好多……远远超过预期了,TUNA的潜水会员还真有这么多啊。碰到了好多久仰却从未谋面的人如heroxbd、smilekzs,神秘的curimit,高中+大学学长Gene……还有好多熟人就不讲了啊,不认识的同学还是不认识……以后是不是考虑结束后聚餐什么的。
首先Cheer Xiao和heroxbd给大家介绍了Google Summer of Code的事项,然后Debian Developer Aron Xu介绍了systemd,至于他们讲了什么……很抱歉,我一直在调css,设置字体大小,临到沙场才发现了好多之前没发现的bug,没怎么认真听……抱歉啊。
最后的遗憾是大家没有合影留念。
TUNA
另外还有很多事情懵懵懂懂。在TUNA打了一年酱油却对TUNA的前生今世没有什么了解,包括但不限于活跃成员、目标计划、任务、指导教师、经费、活动场地、管理服务器、校内地位等。
平时在邮件列表里经常能看到“出口 QoS 策略讨论”、“rootkit 事件”等高深问题,可惜都没有找到老会员问清。
先偏一下话题。在一些问答社区里提问时,提问前先要自己搜寻相关资料做尝试,提问时要提供间断、具体、清晰的描述,热心回答者有疑问时要注意补充说明,任务完成后还要注意总结。作为TUNA邮件列表用户,我们是不是也应该注意这些?