Alternative to Beamer for Math Presentation

Although using blackboard and chalk is the best option for a math talk for various reasons, sometimes due to limit on the time, one has to make slides to save time on writing. The most common tools to create slides nowadays are LaTeX and Beamer.

When I was preparing for my talk at Vancouver for Connections in Discrete Mathematics in honor of the work of Ron Graham, as it is my first ever conference talk, I decided to ditch Beamer due to my lack of experience. Finally, I ended up using html+css+javascript to leverage my knowledge in web design.

The javascript framework I used is reveal.js. Though there are other options such as impress.js, reveal.js fits better for a math talk. One can easily create a text-based presentation with static images / charts. The framework also has incorporated with MathJax as an optional dependency, which can be added with a few lines of code. What I really like about reveal.js as well as impress.js is that they provide a smooth spatial transition between slides. However, one has to use other javascript library to draw and animate diagrams. For that, I chose raphael.js, a javascript library that uses SVG and VML for creating graphics so that users can easily, for example, create their own specific chart. The source code of the examples on the official website is really a good place to start.

To integrate reveal.js and raphael.js to achieve a step-by-step animation of a diagram, I hacked it by adding a dummy fragment element in my html document so that reveal.js can listen to the fragmentshown event and hence trigger raphael.js to animate the diagram. In cases where the diagrams are made of html elements, I used jQuery to control the animation. Here is my favorite animation in the slides generated by jQuery.

How does mathematics progress?

However, one has to make more effort to reverse the animation made by raphael.js or jQuery if one wants to go backwards in slides. I did not implement any reverse animation since I did not plan to go back in slides at all.

In case there is no internet access during the presentation, one has to have copies of all external javascript libraries (sometimes also fonts), which, in my case, are MathJax, raphael.js and jQuery. In order to use MathJax offline, one need to configure reveal.js.

Currently, my slides only work on Chrome correctly. There is another bug that I have not figured out yet. If I start afresh from the first slide, then my second diagram generated by Raphael is not rendered correctly. I got around it by refreshing the slide where the second diagram lives. This is still something annoying that I would like to resolve.

After all, I really like this alternative approach of making slides for math presentation because it enables me to implement whatever I imagine.

十一年

数学领域里关于随机过程有两个容易混淆的概念,一个叫上鞅,一个叫下鞅。大致是说,上鞅随着时间的演化会越来越糟糕,而下鞅则相反,越变越美好。两年前,在读研究生课程的时候,教授课程的老师为了方便大家记忆,就告诉我们说:“人生是一个上鞅。”言下之意,人生是越来越糟糕的。

人生是越来越糟糕的,比如现在每次打球必须要做热身才敢上场,又比如已经记不起上一次《成长的足迹》具体写了什么,又比如不能在我们最尊爱的人的身边当他们一个一个离我们远去,又比如……

生活的大潮把我们不断地改变着,把曾经熟悉的面孔冲散在茫茫人海中,再给我们一个叫微信的东西,让我们在掌中寻找彼此。如果想要了解一个进华人的生活现状和人生轨迹,看看他或她的朋友圈里的更新可能就足够了吧。

既然如此,我想以下的文字不应该是关于现实中的我。既然是继续成长的足迹,那就不妨假设一下我们这伙人从进华毕业,升入同一所高中,进入同一所大学,直到今天所有的同学老师甚至同学的家长都还在我的生活中出现,我的一天会是怎样的呢?

为了让阅读这篇文章更加有乐趣,具体人物的姓名就不提了。如果其中一些桥段能引起你的共鸣,请毫不犹豫对号入座。

故事要开始了。

这是一个美国匹兹堡的初夏,知了还没有开始鸣叫。这已经是我在卡内基梅隆大学开始攻读博士学位以来的第四个夏天了。

我住在一个四室一厅的公寓里,三个室友还是以前在进华的三位室友,其中两位已经在当地找到了工作,另一位在攻读博士学位,不过是在另一所大学。整个公寓约定周五是早餐日,用来提醒大家即便再忙也要记得吃早餐。大家便在约定好的时间围坐在客厅餐桌周围,边吃边商量着周末是不是找一天通宵打八十分,有人开玩笑提醒说,这项古老的运动当年是在阳台上秘密进行,其余人纷纷表示赞同延续这个传统。

早餐完毕,我下楼和楼管打招呼,虽然现在大家都有手机和互联网了,但不知为何传达室里还是有一台投币电话。虽然已经好久没有人使用了,但据说投入硬币之后就能听到最思念的人的声音。对了,每次一元。公寓大厅入口放着一叠当地的报纸,一位初中同班在该报社工作,时不时还会找当年的同学采访,报道民生。

我走路来到学校,一路上,随身听里放着周杰伦的龙卷风。这首歌是初中时候第一次接触流行音乐时听的,从此一盘盘磁带,一张张 CD,陪伴着青春。我跟着哼唱,爱情来得太快就像龙卷风……

突然,走廊里出现了系主任,他是从历史系调过来的。我们互相打招呼,系主任不常询问大家的学业情况,但却密切关注每个学生的感情状况。不知道他是不是听到我刚才哼的曲子了,他和最后一次见面一样,质问我道:“你怎么回事?怎么还没有找女朋友?赶紧列一个单子把喜欢女孩的名字写出来!要主动点!”我勉强一笑,心里知道他迫不及待地希望能看到每个人都能早日成家立业。我边告退,边笑着并敷衍着:“马上列,马上列!”

走着走着,我经过一间教室。往里一瞥,班中原来那位少年大学生已经开始了他的教学生涯。他的学生中有几个知道他们的老师当年可是班中最调皮的学生之一呢?现在为人师表,会不会在看到班中调皮的学生时,看到那些年的自己呢?偶然间,想到他也还没有成家,心里暗暗松了一口气。

上午一晃而过,中午去学校食堂的路上,遇到一群在把网球当足球踢的本科生。我心想还是踢瓶盖更环保一些。又走不远,另外一群孩子拿着 iPhone 和 iPad 正在玩部落战争。这简直太逊了,初中班级里发明的拍手游戏变化多端、风靡全年级,游戏平衡性和竞技性岂是这些触屏上的游戏能比拟的。我边走边骄傲地想,这些都应该进入世界文化遗产名录。

饭后回到办公室,我打开电脑开始刷微博,人生百态在眼前展开。可惜今天的头条又不是汪峰,而是班中两位青梅竹马的一对结婚了。系主任要是知道了,肯定得拿这事情当正面典型。

关上微博,在办公室工作了几个小时后,学院里的研究生和教授开始纷纷回家,预备享受周末。英语里 TGIF 的意思是 Thank God It’s Friday (感谢上帝今天是周五),当地人一般都会去酒吧消遣,但我还是同几位当年的球友约定在学校的篮球场感谢上帝。我们今天约了和另外一组美籍华人打全场对抗,虽然没有什么人围观,但我们还是非常认真地对待。对方有几个球员的个人能力非常厉害,但我方毕竟一起磨练多年,不用看就知道队友的位置。突破,分球,倒到圈顶,三分球进了。这是我们常用的战术,而且变化很多。包夹,盗球,抢篮板,盖帽,后仰跳投,每个人都有自己的擅长。汗水挥洒在篮球场上,没有人记得比分。

打完球,大家一起吃晚餐,有另外几位同学也加入了进来。那些在金融或咨询行业工作的几个人总是姗姗来迟。有时会有急事接到电话:“喂?啊,上次那三百万美金的跨国合约……”剩下的人嘴上羡慕嫉妒着,但心里却为这些人在各个行业的成功由衷高兴着。一些在高科技行业工作的同学分享着新的创业机会和股市消息,一些人聚精会神地听着,就好像是考前在听老师圈考点。晚餐临近结束,那位家里有孩子的奶爸扭扭捏捏地说不能久留,要回家给孩子喂奶了。酒足饭饱后,大家各自回家。

我回到自己的公寓,仰面躺在床上,想起了当年初中住宿夜聊室友彻夜讲述《神雕侠侣》,想起上课吃橙子听 CD 纷纷被老师发现没收,想起笑容依旧挂在那一张张天真无邪的脸上,想起……

我注视着房顶的电风扇一圈一圈地摇着头,眼前开始渐渐朦胧,从窗户进入的夏日晚风像一张蚊帐开始笼罩着我……

虽然这一切的一切都是基于一个很大的不可能——如果那些人还依然陪伴着我们,但这些可能性或者说这些梦却似乎在另一个平行宇宙里影响着毕业之后的我们,成为我们这代人的基音之一。这些进华的人和进华的事常以回忆的方式回来提醒我、温暖我、鼓励我。

我为此感恩。

注:本文是为上海市民办进华中学建校二十周年校庆而作,将收录在《继续成长的足迹》一书中。