9月 272013
 

Note: For the Chinese version of this report, please refer to this page.

On last Saturday (Sep 21), the Software Freedom Day Activity at Tsinghua University was held. It was hosted by Tsinghua University Network Administrators (TUNA) with the assistance of Beijing GNOME User Group (BJGUG). There were more than 60 attendees. The onsite registration began at about 2 pm, and it was done on a laptop computer running LibreOffice Calc. The spreadsheet would be used by the lucky draw in the end. We prepared CDs, stickers, and posters, which were readily available for every registrants.

The formal event started at about 2:30 pm with the welcome speech by me (alick). I introduced what software freedom day (SFD) is and what free software is. I also introduced the event host and sponsors. This event was sponsored by Mozilla, COPU, GitCafe, CodeWeavers, Linux Deepin, and Fedora community. They provided many kinds of swag as gifts. Besides Mozilla also covered the cost of SFD posters and so on. I also introduced the NITE-LPI certificate program supported by COPU.

Alick introduces free software

Alick introduces free software

Following was three speeches. The first one was “GNOME Shell” by Li Bin, the current BJGUG leader. He talked about components of GNOME Shell and its flexible and powerful extension capability, and then demonstrated the development of GNOME Shell extensions. gnome-tweak-tool and https://extensions.gnome.org/ was introduced during the talk. The main programming language used to develop a GNOME Shell extension is Javascript. With the help of gnome-shell-extension-tool, an extension can be created rapidly.

GNOME Shell by Li Bin

GNOME Shell by Li Bin

Next was the talk “Firefox & Firefox OS” by Yuan Xulei, who is an engineer from Mozilla. He introduced the features of Firefox, and explained in details how to use addon to customize Firefox and improve the web browsing experience. Later on he talked about Firefox OS, a new open source mobile operating system by Mozilla based on Linux and Gecko technologies.

Firefox OS by Yuan Xulei

Firefox OS by Yuan Xulei

After a short break, Zhou Jianfeng, a teacher from Center for Astrophysics, Tsinghua University, gave the speech titled “Airelinux”. He first introduced Astrophysical Integrated Research Environment (AIRE), and then talked about the goal and plan of Airelinux project. Airelinux is a new Linux distribution targeted to high performance computing in astrophysics. Please join it if you are an enthusiastic astronomer, or active in the community of free software (esp. Debian), or an artist who can help with the artwork design!

Airelinux by Zhou Jianfeng

Airelinux by Zhou Jianfeng

There was five minutes QA for each talk. Gifts such as Firefox toys, notebooks, cups, and mouse pads were distributed.

After the speeches was the parallel demo, Hackfest and Installfest session. Small groups were formed and there were face to face talks. There were two demonstrations. One is brought by Fedora community, where Gerard, a Fedora ambassador, talked with people and encouraged them to join Fedora project. Three Fedora T-shirts were distributed. Another demo was for LPI certificate program, where Wang Yun, the country manager of LPI, explained it to interested people. The hackfest was an software defined radio experiment conducted by Wang Kang (scateu), where data was transmitted between the audio interface, and gMFSK was used to modulate/demodulate on the PC. It was quite attractive to the audience.

At about five o’clock, we had the lucky draw. It was a cute web interface, implemented in Python by Justin Wong (bigeagle). In the lucky draw 3 T-shirts and 5 CrossOver license codes were distributed. At last we had group photos.

Group photo

Group photo

The links to the slides and videos of speeches are available on the SFD Wiki page. The photos can be found at G+ pages. And as a final note, we encourage every attendees to leave your feedback when you got the email notice for the post event survey!

9月 252013
 

上周六(9 月 21 日)北京天气晴好,由清华大学学生网管会 (TUNA) 主办,并由北京 GNOME 用户组 (BJGUG) 协办的自由软件日清华站活动顺利举行。活动有超过 60 人参加。接近下午两点时开始现场注册,这次活动的注册为电子注册,每个人在注册电脑上的 LibreOffice 表格中填写各自的信息,这个表格会被最后幸运抽奖的程序直接读取。我们准备了光盘、贴纸与宣传海报,注册后每人都可以领取。

活动正式开始于大约两点半。开场时由我(赵涛)致欢迎辞。我在欢迎辞中介绍了什么是自由软件日活动、什么是自由软件,此外介绍了活动的主办方和赞助单位。本次活动得到了谋智网络 (Mozilla)、中国开源软件推进联盟 (COPU)、GitCafe、CodeWeavers、深度 Linux、Fedora 社区等的大力支持,他们为本次活动提供了丰富多样的礼品,其中 Mozilla 还对活动宣传品等的开销提供支持。我还对 COPU 支持的 NITE-LPI 联合认证项目做了介绍。

赵涛介绍自由软件

赵涛介绍自由软件

之后便开始了主题演讲环节。第一个演讲由 BJGUG 主席李彬带来,题为“GNOME Shell”。李彬在演讲中介绍了 GNOME Shell 的组成,灵活强大的扩展 (extension) 机制,还现场演示了扩展开发。演讲中推荐了 gnome-tweak-tool 和 https://extensions.gnome.org/ 网站。GNOME Shell 扩展开发主要使用 Javascript,借助于已有的扩展框架生成工具 gnome-shell-extension-tool,扩展可以很快捷地被开发出来。

李彬介绍 GNOME Shell

李彬介绍 GNOME Shell

紧接着是来自 Mozilla 的工程师袁徐磊带来的“Firefox & Firefox OS”。他介绍了流行的开源浏览器火狐 (Firefox) 的特性。使用附加组件 (addon) 定制 Firefox,改善网页浏览体验是 Firefox 的一大特点,袁徐磊对此做了详细讲解。他还对 Mozilla 新推出的基于 Linux 和 Gecko 技术的开源移动操作系统 Firefox OS 的发展和开发平台做了介绍。

袁徐磊介绍 Firefox OS

袁徐磊介绍 Firefox OS

短暂的中场休息后,来自清华大学天体物理中心的周建锋老师做了题为“Airelinux”的演讲。他首先介绍了天体物理集成研究环境 (Astrophysical Integrated Research Environment) 即 AIRE,继而介绍了 Airelinux 项目的目标和计划。Airelinux 是一个新的面向天文学计算的 Linux 发行版项目,欢迎广大天文爱好者、自由软件社区贡献者(特别是 Debian 贡献者)、以及设计人员的加入。

周建锋介绍 Airelinux

周建锋介绍 Airelinux

每个演讲最后都留有大约五分钟时间进行问答,问答互动环节的奖励有火狐玩偶、笔记本、塑料杯、鼠标垫等。

主题演讲环节之后,是并行的展台展示、Hackfest、Installfest 环节,这个环节大家分成若干小组,进行面对面的交流。展台有两个,其一是 Fedora 社区的展示,Fedora 大使吉拉德 (gbraad) 在现场和大家做了深入交流,鼓励大家加入 Fedora 项目,并送出了 3 件 Fedora T 恤。另外一个展台是对 LPI 认证项目的介绍,LPI 中国区经理王雲老师为大家做了答疑解惑,她表示今后会在高校做更多的活动介绍 LPI 项目。Hackfest 则是有王康带来的软件无线电实验。这个实验用声卡进行信息传输,在电脑上用 gMFSK 做调制解调,使现场同学领略到了软件无线电的魅力。

五点左右时,活动来到了最后的幸运抽奖环节,抽奖程序是一个卖萌的网页界面,主体逻辑由 Python 语言实现,作者是 Justin Wong (bigeagle)。我们抽奖送出了 3 件 T 恤衫和 5 个 CrossOver 正版序列号,其中序列号在活动后邮件送出。活动最后大家合影留念。

欢乐的集体照

欢乐的集体照

整个活动过程中也遇到了一些问题。一是筹备期间教室借下来的时间较晚,海报宣传时间不足一周,又恰逢中秋放假,使得线下宣传力度不够。微博大屏幕、人人活动墙的想法没有及时提出,未能实现。二是在开场前注册所用电脑到的较晚,加上电子注册、输入法的问题等,使得注册缓慢,活动比预计推迟了约半个小时正式开始。第三是礼品发放有些混乱,部分礼品被热情的在场同学一抢而空,大概是因为没有明确说明中场休息时只有提问的同学可以上台领取礼品。给今后活动的启示是:早借教室早宣传,注册工作要做好准备尽早到位,礼品发放必须说明规则避免混乱。

活动演讲的讲稿链接、演讲视频的优酷链接可以在维基页面上找到。活动照片请看 G+ 页面。最后,感谢所有到场人员的热情参与,请参加活动的朋友收到活动调查问卷的邮件通知后留下您的宝贵意见。

2月 162012
 

JavaScript 中数组与对象定义时最后一个元素后如果跟了一个逗号,那么可能引起问题。一个简单的例子是 [2, 3].length 等于 2,而 [2, 3,].length 在 Firefox/Chrome 中仍为 2,但在 IE (旧版)中等于 3 (它会认为最后有一个元素值为 undefined)。有关这个问题,还可以参考 Dan Lee 这篇有趣的博文,以及 Drupal 的一个 Bug 报告。而我最初是在看 GitHub 上 Hotot 的一个 Pull Request 时开始注意到这个情况。

末尾逗号的写法 C/C++ 程序员应该很习惯。末尾逗号能在改变对象中元素顺序、使用代码生成数组、拷贝代码时带来方便。然而在旧的 JavaScript 实现中,这是不允许的。根据这篇博文,IE8 里已经修复了这个 "bug"。另外,ECMAScript 5 规范里已经容许了末尾逗号,目前新版本的 Firefox/Chrome 对这个标准有良好的支持。(参见这里

值得注意的是,JSON 规范中要求不能有末尾逗号的,否则就是格式错误。JSON 不等于 JS 对象。因此,使用代码生成 JSON 格式的字符串时,采用前置逗号是更好的实践。(参考 stackoverflow 上的这个问题