1月 032014
 

NOTE: For Chinese readers, there is a Chinese version of the report here.

Happy new year everyone!

The Fedora 20 Release Party in Beijing was successfully held at Turing Office last Wednesday (Dec 25). It was organized by Fedora Zhongwen User Group with the help of Beijing GNOME User Group. There were 22 registrants on site, which is comparatively fewer than previous due to the time arrangement.

The release party began at 6 pm. (I was late for about 10 minutes.) We conducted the registration on a computer: We opened a LibreOffice Calc spreadsheet filled with pre-registrants’ information so that they can just type 1 to register. As for others we required them to type their names and email addresses. As usual, every attendee can pick a Live DVD and a sticker. We prepared 50 Fedora 20 DVDs. Each of them has a label with Fedora 10th anniversary icon, and is 64bit with either GNOME or KDE. The stickers are from Fedora, GitCafe, and CSDN CODE.

The party entered pizza time at around 6:30 pm. We had ordered seven pizzas, 5 large and 2 small. Along with drinks and snacks sponsored by CSDN, they more or less met the requirement of everyone’s supper. While supper we managed to collect four topics for the talk.

The talk session started from 7:30 pm. In the opening address, I welcomed everyone, and introduced the features (changes) of Fedora 20 and the 10 year history of Fedora project briefly. Then it came to the first talk, which was "systemd Introduction" by Robin Lee, an active Fedora packager, FZUG member, and skilled programmer. He talked about the origin, main concepts, and core implementation of systemd as well as its impact on application development. There were in depth discussions about the implementation details and comparison with other competitors in and after the talk.

systemd Introduction by Robin Lee

systemd Introduction by Robin Lee

Then there were three short talks. The first one was "Open Source Strategies of CSDN" by Orson Zhai. He pointed out that CSDN has set open source as one focus, and CSDN CODE is striving to provide a better collaboration platform for open source projects in China. Then David Liang from SUSE talked about the state and progress of "Automatic Testing for GUI". Currently there is no mature tool for automatic GUI testing to increase the efficiency of desktop testing. Projects such as openQA aim at building such tools and are being developed. The last talk was an introduction to Fedora.next by Robin Lee. Fedora.next is a plan being carried to improve the current release practice of Fedora. Based on the reflections of the existing practice, Fedora.next tries to replace the single repository with four rings of packages. Each ring can has its packaging polices. Besides, multiple working groups with possibly different release strategies are formed to build multiple products. In summary Fedora.next aims at better integration of Fedora and the overall open source ecosystem, and more involvement and contribution from more people.

We prepared several GitCafe cups, and Turing generously provided some Linux books. They were distributed as gifts for questioners. CSDN brought gifts for speakers too. Then after all the talks, at around 9:30 pm, we took a group photo.

Group Photo

Group Photo

It is worth pointing out several issues for the event. The pizzas was sent earlier than the registration, without receipts. The number of attendees is small since it was arranged at weekday night. The discussions were more abroad than expected and led to overtime. So to avoid the issues:

  • When ordering takeout, specify both the earliest and latest time.
  • To attract more people, make the event happen on weekend day (afternoon) at easily findable venue.
  • Prepare for overtime, and put the start time as early as possible.

The slides links is available on the wiki page. The photos can be found on G+. Don’t forget to take the post-event survey before Jan 11! You feedback is appreciated!

10月 152012
 

10月9号(周二)上午,我在大礼堂听了 Cleve Moler 的题为 "Evolution of MATLAB"(MATLAB 进化论) 的讲座。 Cleve Moler 是 MATLAB 第一版的作者,MathWorks 公司的创始人之一。 今年他已经 73 岁了,十年前他来过清华一次。 这次中国之行他会走五个城市做七次报告。 我的总体感觉是他是一位谦逊幽默的老人,他的讲座使大家不时发出笑声。 他本人对数值分析、计算机编程很有兴趣且很在行,对商业营销并不很关心。 (他把商业成功归功于公司的其他人,包括 Jack Little 等,称自己很幸运。)

IMG_20121009_100748

讲座内容

从讲座题目就可以看出,讲座的内容主要是历史。 Moler 在讲座中回顾了他的大学经历以及后来 MATLAB 创始发展的历史。 最初他讲述了几个对他影响很大的导师(mentor)。 他提到了1951年,英国国家物理实验室的 J. H. Wilkinson 建造的计算机 Pilot Ace,这是世界上最早的计算机之一。 Moler 在 Caltech 读的大学(本科),这期间他的导师是 John Todd。 他提到这时在学校计算机上编程写的是机器语言,程序存储使用的是 纸质磁带(paper tape)。 之后 Moler 到 Stanford 读博士(PhD),这时他的导师是 George Forsythe, 此时是 1960 年代。这期间他们的计算机是 DEC 的 PDP-1。 一个字符终端下的游戏“星球大战”(Space War)非常流行,以至于 实验室贴出通知规定几点到几点不准玩这个游戏。(No Space War from xxx to yyy.) Moler 的博士论文中举例中有一个 L 型的细胞膜, MATLAB 标志(logo)就是从它演化过来的。

IMG_20121009_101950

这时候 C 语言还没有出现,大家使用 Algol 语言来编程。 这时候 Forsythe 和 Moler 出版了一本数值计算方面的图书, 书中附带了程序源代码,这可谓一个首倡。 Moler 表示虽然今天已经没有了 Algol 的编译器,书中的程序无法 直接在现在的机器上跑,但书中的算法对于想了解 MATLAB 核心的人 来说是很有参考价值的。

在 1970 年代出现了两个用于数值计算的函数库,Moler 是两个库的作者之一。 其中 1976 年出现了 EISPACK,它是一个 Fortran 语言编写的库。 名称中 E 代表它是用于解决特征值问题的。 1979年出现了 LINPACK,虽然线性问题比特征值问题要简单一些,但 准备阶段花费了更多时间。 LINPACK 的用户指南一书的封面是 LINPACK 几个字母组成的矩阵。 (Moler 说如果在场听众觉得讲座无聊的话,可以试试求出这个矩阵的逆。) 这本书做了一个开创性的工作,它在附录 2 中给出了一张基准测试(benchmark) 的表格,列出了他们在一些机器和编译器组合下 LINPACK 的执行时间。 如今 LINPACK 是评测超级计算机性能的基准测试程序之一。

在 1977 年,Moler 编写出了 MATLAB 的第一个版本。 编写语言主要是 Fortran。 这个版本共有80个命令,其中有一个值得一试的 why 命令。 Moler 表示他最初编写 MATLAB 的目的就是为了方便自己的学生去调用 数值计算的函数库,当时他是新墨西哥大学的教授。

IMG_20121009_103202

在 Stanford 访问授课时,Moler 让他的学生用 MATLAB 做一些作业, 他发现学数学和计算机科学的人对它并不特别感兴趣, 但是控制系统等工程领域的学生很喜欢它。 1980年代初期出现了一些公司,推出了在 MATLAB 基础上做的产品, 以用于特定的工程领域,如 MATRIX X 和 Ctrl C 等。 在PC机出现后 Jack Little 意识到了 MATLAB 的商业价值, 和 Moler 以及 Steve Bangert 共同创办了 MathWorks 公司。 MATLAB 被使用 C 语言重写。 值得一提的是,公司创办后最初的五年里,Moler 并不是 MathWorks 的 全职雇员,而是一个学者顾问(advisor)。 (Moler 还讲 Jack Little 的模样一直没有变,都是那么帅……)

之后 MATLAB 在工程界得到了广泛使用,也取得了商业上的成功。 MathWorks 公司的规模也越来越大,在初期公司人数随年份是 指数级增长的(对数 y 坐标下是线性),不过到一定规模后,增速 就放缓了,现在的员工规模是几万人,年收入是 $700M+。

谈到 MATLAB 的本质(essence),Moler 提到了 MATLAB 实质是基于数组的(Array-based)编程语言。 它并没有设计为一个通用的编程语言,而是为了数值计算提供一个 简单的工具。此外 MATLAB 始终努力给用户提供交互式环境, 使得方便易用。另外还有绘图能力等。

如今的 MATLAB 代码中使用到的编程语言有 C, Java, Fortran,还有 MATLAB 本身(常见于各种工具箱)。另外 Simulink 提供了图形化建模工具。 讲座中,Moler 提到 MATLAB 的工具箱都是由 MATLAB 语言编写的, 它们的源码都是可以看到的。 不过 MATLAB 的核心不是开源的。 所以 Moler 说 MATLAB 有一半是开源的。

问答环节

第一个问题涉及 MATLAB 和 Mathematica/Maple 等的对比, Moler 称 Mathematica 他也在用,他发现 Mathematica 是一个 很统一、优美的软件,它的作者 Wolfram 也非常聪明。 接着 Moler 说 MATLAB 强在有众多工具箱,在众多工程应用领域被广泛使用。 而 Mathematica 就没有在工程领域中流行。Moler 没有谈 Maple, 而事后问及提问者 vuryleo,得知他主要想问的事 MATLAB 的符号计算功能。 查阅一些资料可知早先版本的 MATLAB 中的符号计算功能利用的就是 Maple 引擎,不过现在已经更换为 muPAD

第二个问题问到 MATLAB 在处理实际(pratical)复杂系统时比较吃力。 Moler 坦言这的确是个问题。MATLAB 被设计为一门简单的语言, 在面对大型问题时代码容易变得复杂难懂,MathWorks 的他们也在思考问题的答案。

第三个提问者将“数学是被发明的(invented)还是被发现的(discovered)” 的问题抛给了 Moler。他在回答中一开始表示自己也没有思考过这个问题。 之后他结合 MATLAB 中的一些运算符的记法谈了下自己的思考。 他说像反斜线这个左除运算符可以说是发明的,因为之前并没有这个记法, 但它其实很符合直观,使用这个符号很自然,说是被发现的也有道理。

后面的问题问到 MATLAB 的目标以及未来的应用平台,Moler 表示他们在努力让手机等手持设备可以使用 MATLAB。因为这些设备处理器 性能有限,所以 MATLAB 的计算任务会放在云端完成。Moler 指出 目前的实现中交互做的并不理想,结果会以图片方式呈现。 MATLAB 云计算实现中如何更好地和用户交互,还有云计算下的商业模式, 都是有待考虑和解决的问题。Moler 还表示 MATLAB 未来发展的 另一方面是巩固在不同领域的应用程度。

活动结束后,有同学还到台上近距离围观了 Cleve Moler,我也凑了上去。 期间有人拿书求签名,求合照等不去细说了。 有同学趁机问到中国的版权问题 Moler 如何看待,Moler 回答说 这也不只是 MATLAB 面临的问题,微软也有同样的问题。 Moler 说他们会力图使高校和企业购买他们的产品,这是主要的策略和方式。 我在 Moler 离开前还找机会问了他如何看待 Octave、Sage 等开源的数值计算软件。 Moler 表示他没有使用过它们,这些软件更像是一些样例(sample), 它们缺乏像 MATLAB 中众多的工具箱,所以不太可能和 MATLAB 并驾齐驱。

附注

一些讲座相关的照片可以在 这个 flickr 相片集看到。 Moler 个人的更多介绍参见这里MathWorks 上也有 Moler 写过的有关 MATLAB 起源的文章。

1月 232012
 

有一本书叫 "Open Sources: Voices from the Open Source Revolution", 是一些开源界人士写的散文的集合,内容涉及社区精神、GNU 和 FSF、Linux 历史、 商业模式等等。我曾经在图书馆借阅出过一个影印版。 它在清华图书馆的逸夫馆外文图书借阅区,索书号是 TP31 FO61 2003

后来发现,书中文章都可以在 Oreilly 网站上看到,如这里是简介。

借助于 Gooogle,各篇文章也可以通过搜索得到。如想看 Larry Wall 有关 Perl 的 文章,使用如下去搜索即可:

perl site:http://oreilly.com/catalog/opensources/book/

然后你就可以发现,链接是 http://oreilly.com/catalog/opensources/book/larry.html