Author: Xuan Hu

  • 记国庆夜游——第一次参与北大车协活动

    国庆假期之前一直在赶Deadline,这篇日志也拖到了现在。这学期终于如愿以偿的加入了北大车协,希望在这里能认识更多志同道合的朋友。

    之前中秋的凤凰岭宿营因为之前班级秋游的时候恰好顺道骑过去玩了,所以就不想再走一遍重复的路。这次正好是夜晚的活动,白天忙成狗了正好晚上去兜兜风,所以就果断报名去了。感谢队长乱舞,前前后后麻烦了队长很多事情,刚开始是因为白天没时间去检车然后问能不能晚上出发之前补检,后来一路还打扰了很多,最后散伙的时候还把外套落在了别人的扯上,也是队长保管并且联系转交给我的。

    所谓国庆夜游,就是国庆节之前骑车逛逛北京城的主要景观,由于是带新人活动,所以全程速度很慢,加上红绿灯和车流人流的影响,队伍也拖的比较长,很多时间都花费在了收队上。先后经过的主要景点有后海、南锣鼓巷、北大红楼、故宫、长安街、天安门、天坛,有两个比较有趣的活动,一个是在北大红楼门口合唱燕园情,还有一个是最后从成府路回来时顺便夜袭了隔壁的土豪大学,具体行程请见最后的控件或此链接

    很高兴能加入到这个新的团队中,希望以后在这里能结识更多的新朋友,尤其是PPMM神马的!好吧,还是不乱扯了……



  • Report #3 about Porting GTG – Final Report

    Finally comes the end of GSoC 2013. After submitting the final evaluation, I am glad to have a chance to look back to what I have done in this summer.

    During the last period of GSoC, I am working on two major tasks. One is to make current porting code get rid of deprecated objects [1] , the other is to set up coverage to test the porting code as much as possible.

    For deprecated objects, it’s not a hard task as most deprecated objects can be replaced by other alternative ones easily. With the help of tool like grep [2] or ack [3], it’s easy to find them and everything can be done with little modification. The only one needs more attention is `Resource Files` [4]. Different from simply changing `GtkVBox` to `GtkBox` with the “orientation” property set to `GTK_ORIENTATION_VERTICAL`, `Resource Files` do not follow the pattern. We need to check each methods like `gtk_rc_get_style()` [5] whether exists in previous code. Then it will comes to the problem how GTK C documentation [6] “convert” to `PyGObject` [7]. As C doesn’t support objects so each method is named specifically with `gtk_` prefix followed by object name like `rc_` and the rest is the `real` method name. So we need to grep or ack `get_style` and do the same thing for others.

    The `coverage` [8] part is another big harvest I learned in this summer. After discussion with mentor, Izidor Matušov [9], I finally came up the usage of coverage and how to apply it to current codebase to make sure most porting work especially the gtk part works fine. As it is hard to write unit test for interactive GUI applications, we can use coverage to run GTG GUI program and use it just like common user. And then generate the coverage report to see which part has been tested or not. At the same time, we can come up a list of actions for future testing. So I listed the actions for testing in a shared evernote [10] also with the coverage report. It shows that the gtk part of GTG works almost fine with 86% coverage after fixing serveral bugs.

    It’s really amazing to have the porting work almost done, I am going to propose a merge request to make all the code into trunk branch. Though it really comes to the end of GSoC 2013, I will continue to work on the project. This is only a beginning for my open source experience. :-)

    [1] https://developer.gnome.org/gtk3/stable/DeprecatedObjects.html
    [2] http://www.gnu.org/software/grep/
    [3] http://beyondgrep.com/
    [4] https://developer.gnome.org/gtk3/stable/gtk3-Resource-Files.html
    [5] https://developer.gnome.org/gtk3/stable/gtk3-Resource-Files.html#gtk-rc-get-style
    [6] https://developer.gnome.org/gtk3/stable/index.html
    [7] https://wiki.gnome.org/PyGObject
    [8] http://nedbatchelder.com/code/coverage/
    [9] http://izidor.matusov.sk/
    [10] https://www.evernote.com/shard/s43/sh/8e6e0ce8-227e-4c7a-b1e4-1e4e13e2728a/3b9d652d1303c5418292963b9483155c

  • 记京津往返

    乘着中秋的假期,虽然有一堆Deadline追着,尽管之前在BBS上约了一起骑去天津的童鞋爽约了,尽管我一没有备胎二没有打气筒,还是单枪匹马一个人骑着我的小车车就朝着天津的方向触发了。

    19日早上6点半不到出发,下午3点半左右达到南开西校门,修整至晚饭时间然后玩了一晚上加上第二天一上午,次日下午2点返程,夜里11点多返回学校,单程150+km,往返全程300+km,主要走的是G104,具体路线请见最后的两个空间或者此两个链接:链接1链接2

    解锁成就:
    – 单日单程 150+km
    – 总行程 300+km
    – 第一次骑没有路灯的夜路
    – 第一次单飞(去程是单飞,返程是跟遇到的同行者一起返回的)

    除了解锁了很多成就以外,可以说这次骑行某种程度上也刷新了我的一些世界观。首先是骑行归来之后的后怕,不仅是单飞,而且几乎没有带任何意外处理设备如备胎和气筒,如果真的半路出事真的很难想象。当初去程时是一腔热血,虽然也提前准备了额外的护具,但是还是略显不足。另外就是精神意志的重要性,去程由于是单飞,而且一开始自信满满的以为6点出发应该可以赶上午饭,至少下午一点之前可以到,结果可能就是因为这个目标导致了途中精神的紧张,特别是在快到12点,骑行了大约120km,还剩下30多公里路程时,再加上所有补给水全部喝完的打击,精神意志一度处于被击溃的边缘。幸好遇到了一位卖水果的村姑,果断买了一个香瓜补充水分和糖分,当时吃的差点就流泪了。最后还是长途骑行的经验不是很充足,刚开始档位调的略低,想保持较快的踏频,只是将速度保持在25左右的位置,可能还是跟单飞有关系,导致体力消耗的较快。返程的时候遇到了两个同行的人,果断选择了跟队,在天亮的时候速度几乎一直保持在30上下反倒觉得比较轻松。

    路上虽然路况挺不错,但是说实话感觉略脏,遇到了好几个整个弥漫着臭味或者奇怪味道的村庄。遇到了好多个同骑G104国道的人,返程的时候还遇到了一个单飞去杭州旅行的人(真心佩服!)。在天津玩的时间比较短,所以只去了海河坐船顺便看了天津之眼,第二天上午主要就去了意式风情街,也算比较超值的行程了。感谢诗昭同学的全程款待和导游,还破费请我吃了牛排羊排和著名的大饼鸡蛋和狗不理包子,还很辛苦的带着我去买了正宗的十八街麻花。

    仍然很清楚的记得,在返程的时候,走在没有路灯的国道上,只是靠一个手电筒和来往的车灯照明,当看到北京界的标示牌,看到离北京城区的距离越来越小,最后达到南二环永定门、前门、长安街、天安门,看到毛主席的头像,第一次前所未有的激动。真的很难想象,如果没有遇到两位素不相识的同伴,我可能真的就回不来了,半路发生事故和危险的概率也大大增加,真的感谢你们。

    以后可能再也不会单飞了,至少很长一段时间内不会再单飞这么长的距离。另外就是还要再补充一些维修的设备,之前买的手电筒不知道是不给力还是没电了,可能的夜路问题也要解决。这几天得老老实实的赶deadline了,骑行的路才刚刚开始!