Tuesday, April 22, 2014

2014.April. GSOC 2014 Result



I applied TEAMMATES for GSOC 2014 this time. :)

I tried to apply for more projects but due to time constraint, I only managed to apply for TEAMMATES.











Even though I am not selected, I am happy to see my name in the contributors' lists! ^^

It really means a lot to me. Thank you, Teammates! 

I will continue to try to write some apps or websites and contribute to Open Source Project! :D 

Good luck in final! 

pharaoh
22/4/2014
4:32p.m.

Sunday, April 20, 2014

The rise of TaskPad ---- The Software Perfectionist

这个是我CS2101 reflection 的题目,
可是内容不是我想要写的内容。
(因为问题限制)

我个人蛮喜欢这个名字。(当然!自己想的嘛!哈哈哈)













TaskPad,
是我和朋友 Taining, Lynnette 一起亲手制作的project.
它是一个协助你安排好自己的时间的 software... :)

你可以 download TaskPad.

这是  user guide 。


这是我队友 Lynnette制作的 promotional video。




这是我自己制作的 Demo Video,欢迎大家 comment!哈哈。



题目说 The rise of TaskPad,
不是说现在 TaskPad 已经很出名了,
而是说现在至少它已经成形了,可以见世面了。

而The Software Perfectionist 呢,就是我对自己的评语。

~~~~~

2014 年初,
我带着期待又惶恐的心情进入了 CS2101 的课室。
期待那个 group project,却也害怕和不好的组员同组。

结果就这样不小心分了组,和 Lynnette,Taining 一组……

组队后,我们并没有马上制作TaskPad,
而是先制作OP1……


右起:1)Taining , 2) Lynnette, 3)我

这张照片是我们第一次一起合作呈现 OP1,
那时候和他们都不熟,就慌忙地制作了 OP1 ppt,
一起呈现了。

效果当然没有很好,因为大家都是新手,
但是还算ok。 :)

~~~~~

在我们摸透了Tortoise Hg (一个记忆性 program)以后,
我们终于开始制作TaskPad了!

我们花了一段时间制作除了我们的V0.1 产品。
我制作了 GUI,(虽然现在才察觉那个设计没有很好,唉……新手)
Lynnette制作了InputProcessor,
而Taining制作了Storage 和 Executor。

**GUI 就是你看到的TaskPad外形,InputProcessor是负责解析你输入的资料,Executor 负责执行你给TaskPad的任务,而Storage则负责记忆你的所有资料。

这里不详谈那些制作地方法,怕闷着大家啊! :X

~~~~~

这时我们仍然不是很熟,
因为我们各自做自己的工作,
感觉没有多大的交集。

在 V0.1 以后我开始帮 Lynnette做 Flexi了,
因为我的 GUI 工作大体上已经完成。

于是开始和她有比较多的交集。

~~~~~~

我们当然没有把全部时间都投入 TaskPad:

Taining 有不断忙自己 module 的时候……
Lynnette 有忙 BumbleBee 的时候……
我也有在忙Teammates 的时候 (GSOC申请)。

我们互相迁就,互相包容,所以现在大家的感情还是好好的。

~~~~~

我和 Lynnette原本想要很快速地把flexible-commands 解决,
于是 Lynnette 还建议了 Natty 。 
也许是自己太过完美主义了吧。
我觉得 Natty 有很大的限制,而自己写就会突破这些限制,
所以我告诉 Lynnette,我们一起做吧!

我们投入了3~4个星期,就只是为了做这个Flexible commands。
翻看我们两人合在一起的 code:16000 行啊!

开心的是,我说要自己做的时候,Lynnette并没有阻止我,
Taining 也没有不让我做。
Lynnette还和我一起投入了一大堆心血……
说真的,我很幸运,遇见了这样好的队友。

**要做好一个 project,队友真的很重要。如果你遇见了很好的队友,请记得感谢他们。


~~~~~~

于是我们好不容易地把这些东西都做完了,
我们开始了我们的第二个presentation:OP2。


我们大可和 OP1 一样,很Formal 地present,
但是那实在太闷了,所以我们就以 Pokemon 为主题呈现了:
目的就是要有一个有趣的presentation。

不知道目标有没有达成,但是至少我们尽力了。 :)

不是很满意那时大家面对Q&A的方式:
太乱了。

也不满意自己没有 check 好 code,
呈现的时候有小 bug 也没发现到。 :O 

--> 我把自己说成是 Software Perfectionist 是因为,
我拼命 test,加一点新东西,就是为了确保TaskPad越少 bug~ 
如果不小心发现了一些明显的bug,不免伤心难过。
(尽管内心知道那是好事)
不能原谅自己的这个错误,
所以我暗地里发誓下一次一定要先准备好 tests 才写 code。

~~~~~~

OP2 结束以后,我们就快速地增加tests 的数量以把错误减到最低。

到最后我们还有了77.2%的code 覆盖率,
也就是说我们 test 了77.2%写了的code。

然后,根据collate tool,我们三人总共写了18000++ 行……(包括 tests)
77.2%可以算很多了。

因此,就算还有一些瑕疵,但至少还可以接受。 :D


~~~~~~


左起:
1)Zeng Yong (我们的 tutor)
2)Lynnette
3)TaskPad
4)Taining
5)我

这张照片是我们最后一堂tutorial 的时候拍的,
那时TaskPad也成形了,只是要test 多一点而已。

必须要特别我们的 tutor,Zeng Yong,
因为他真的帮了我们很多。
我们也每次用稀奇古怪地问题去烦他,
真的很不好意思。 >< 哈哈。

~~~~~~

看着 TaskPad 从 0 到 有,
从小到大,
到最后呈交了,
感觉就像爸爸看着儿子长大,
然后送他去追求自己的理想。
虽然他不是最完美的,
却是你最疼爱的。

这张照片就不标示谁是谁啦。哈哈。
这张照片是在 final demo 过后拍的,
标示着这个project 的结束……
(但不是 TaskPad 的结束,因为我和Lynnette会继续做)
今后大家可能都会分道扬镳,
但是真的很感谢他们,
因为他们真的把他们的工作做得很好!
谢谢他们……谢谢……

~~~~~

当中我最满意的 test case 就是和 Lynnette 一起写的 TestGui,
因为那是非常难写的。


这是Lynnette拍的短片,可以放块速度来看。呵呵。
**短片里的"TaskPad" 是自己跑的。
p/s: 那个音乐很好听。

~~~~~

若是真的想要仔细了解我们到底学了什么,
可以看看我队友 Lynnette 写的 post .

~~~~~

说了 The rise of TaskPad,
还没更仔细地说 The Software Perfectionist 呢!

我花了 n 个时间去 test TaskPad 不在话下,
也不说研究了如何试验 GUI 或 花时间 restructure 那个 component,
我在 implement flexi commands 的时候,
任何我想到的细节,我都去实现他们。
有些东西是在真的是太细节了,比如说:
next Sunday, 要怎样转换成 27/04/2014, ?

因为我实在太挑剔了,写到停不了手,
到最后Lynnette还劝我:是时候停了,准备其他 module了。

~~~~~

如果我是 The Software Perfectionist,
那 Taining 和 Lynnette是什么呢?

我称 Taining 为:The Team Lead
Lynnette 是: The Designer。

~~~~~

The Team Lead -- Taining

Taining 是我们一开始所遴选出来的组长,
所以我把她称为 The Team Lead。

我们都很自发都工作,所以 Taining 也不用担心我们,
也没什么催促我们,只是偶尔会提醒我们:
我们的进度应该要到哪里。

Taining 是一个很忙碌的人,
每天都会看到她在忙自己module 的东西,
可是她也愿意花相当多的时间来完成自己的部分。
呵呵。真的很感谢她。

她每次都会提醒大家我们应该往哪个方向走,
要如何做才能满足我们的目标用户的要求,
什么东西应该被 implement,
什么东西可以暂时不 implement。

TaskPad 的 table view,
就是 Taining 跟我建议的 user friendly GUI。
(原本是zeng yong 的建议,Taining提醒我这个建议)

**我记得我刚把 table view 做出来的时候大家的惊喜:
Lynnette 和 Taining 都说很美。呵呵。

XML,也是Taining 建议的记忆模式。
我们可以都用 txt file 来储存资料,
可是 Taining 建议用 XML 来做得更好。

我们大可以保留一个 undo 和 redo,
但是 Taining 也把 multiple undo 和 redo 最出来了。

**虽然我不是很赞同那个做法,但是必须把这个功劳归于 Taining。 :)

有些时候她不明白我在说什么,会一直问问题来更了解我说的话。
有些时候她的想法和我很不一样,所以我们 “争执”,然后我们一起进步。

我曾经问她,我能不能修改她的 code,
她说可以。
很感谢她信任我,虽然我GUI 的 design 没有很完美。呵呵。

最后,我没有修改过她的 code,
出于尊重,也碍于时间限制。

谢谢你,Taining!

~~~~~

The Designer -- Lynnette


Lynnette 不只是擅长于画画,也擅长于documentation和提供一些创意的 idea。
我把她称为 The Designer 绝对不只是她 design 了 TaskPad的样貌,
她还 design 了所有 documentation 和 presentation 的 框框,
大幅度减低了我们documentation 和 presentation 的难度。

她也不是很得空的人,年头就一直在忙 BumbleBee,
但是她都会把自己的负责的部分做好,
还会要求得更完美。

她是后期和我有更多交集的队友,因为我们一起做 flexible commands。
我们都互相修改对方的 code 使 TaskPad 变得 更好。

一开始认识她从没想过会和她混得那么熟,
只是经过Andrew 的介绍,在 CS2101课室外认识了她。
她给我的第一个印象就是她很静,
大概是因为她在陌生人面前很安静?
结果还阴差阳错地和她同组,
然后又和她一起做flexible commands......

她是我进 NUS 以来第一位找到比较有默契的队友。
很多时候她和我有一样的想法,然后我们一起把它们实现。
有时,我们还会一起写 code,执行所谓的 pair programming ,
感觉真的很不错。

难得有一位有默契的队友啊,要知道要和我有默契是一件蛮困难的事啊。呵呵。

她,总会关注她的队友多于关注project;
她,总会分享自己的东西给我们知道;
她,总是不计较别人怎样讲她,她只会要求自己把事情做得最好。

她,真的像她自我介绍那样:她不会生气的;
她,真的很玩得起,花了好多时间和我一起玩。

她,有时也会对自己失去了信心,需要别人不断鼓励她;
她,有时也会很懒惰,需要别人去提醒她;
她,有时也会很糊涂,需要别人去点醒她。

在我拼命写程式,写到很累的时候,
感谢她:看到她那么努力,我也突然很有冲劲想要继续写下去。

在我努力到忽略其他科的时候,
感谢她:她提醒我,是时候读书了!

在我想要放弃自己想要做的事情来完成 TaskPad的时候,
感谢她:她鼓励我,叫我抽出一点时间给自己做那些事。

在我很紧张 presentation 的时候,
感谢她:她抽出一段时间,陪我练习。

在我为自己的错误自责的时候,
感谢她:她尽量想办法让我感觉比较好过。

在我决定自己写 flexible command 的时候,
感谢她:那么支持我,和我一起写,一起努力。

我觉得我们两个人写的行数加起来应该比任何一组的总行数都多,
因为我们真的花了很多时间和心思在我们的 TaskPad上面。呵呵。

想要继续 TaskPad 的想法是她提出的。
因为我们都花了那么多努力把它产出来了,
我们当然还会继续把它弄得更完美啦!

如果要说这个 project 给到我什么意外收获,
我会说,它让我认识了这样好的一位队友:Lynnette,
一位也总是为别人着想但不为自己着想的好朋友。

谢谢你, Lynnette!

~~~~~~

后记 -- The Original TaskPad developers


希望我们的友谊能长长久久。

此部分是要记录原本的 TaskPad's developer :
Jun Wei, Lynnette, Taining。

未来大家可能不会再合作了,
感谢认识了你们,
感谢你们的付出……

感恩。


最后送大家比较 hot version 的 Lean On Me。


祝大家 安康 + 考试顺利!

谢谢!

法老
20/4/14
5:54 a.m.

Saturday, April 19, 2014

2014。5月。Main Comm 篇

话说回去,
去年因为想回馈这个在新加坡的独中生组织而参加了 Main Comm (AMvenger),
现在结束了,和这群同伴们一起经历了很多很多。









AMvengers 全员


详细的 Events 叙述,沉沉已从他观点叙述
我不再详谈。

(其实我们还有一个泛马巡回 Event 要处理啦,还没结束)

在 AMvenger 里,每个人都有自己不同的风格,本篇就记下他们不同的风格吧!


~~~~~

小丰子 篇 (会长)


















传哥总是尽量把Events 的 idea 都让我们去想,但偶尔因为其他人实在没有任何意见,
他就建议建议他心里的想法。

事实上传哥真的扮演了一个非常重要的角色,
有很多很多时候,当大家都没任何头绪的时候,
传哥就会一语惊醒梦中人:咦,原来这东西可以这样做!

传哥的兴趣成为了Main Comm 最珍贵的宝物:设计。
有许许多多的设计都从传哥手中诞生的。
传哥的设计总是简易而又漂亮,
所以当我们真的要大量制作的时候,
我们总会投选传哥的设计。

其实,传哥大可以什么都不做:
他只是需要我们做东西就行了。
但是,他总是会援助大家将所有的event 办好。
谢谢你,传哥!

~~~~~

小 K 子 篇 (副会长)



















CK 总是所有 Event 最用心的那个人。
每次的检讨会议,他总会准备最长的一篇演讲稿。
文书总会投诉:CK,怎么你的稿总是那么长!
但,我们都明白CK的用心良苦:
他希望我们进步,他希望我们的event会更好。

CK 总会亲自为Main Comm策划Event,
比如说大家的 Outing。(还记得我们一起吃,一起玩吗?)
他的用心是AMvenger 珍贵的资产之一。

在大家都没有心情要办好一个 Event 的时候,
CK 仍然会催促着大家,鼓励大家,骂大家,
希望大家能放多一点心思在 Event 身上。

没有 CK,大家成长的速度也要跟着减半了!
谢谢你,CK!

~~~~~

小沉子 篇 (总务)



沉沉也是每个 Event 最用心的人。
还记得中秋晚会的时候,我提出自己做月饼的时候,
沉沉第一个赞成,这是可行的。
开会过后,他很快地找好材料、用具和做法给我…

沉沉总是很乐于助人的。
在他能力范围内的事情,他都会尽力去帮。
那时,他睡觉睡到一半,
也愿意花时间拿打火机给我……

沉沉是一位不会计较的人。
他总会花很多钱买礼物送给朋友;
他总会不计较朋友有没有回礼;
他总会为朋友着想,而很少为自己着想。

没有沉沉,我们就少了精彩的华文版Let Us Go,
我们就少了很多精彩的回忆。
谢谢你,沉沉。

~~~~~

小念子 篇 (总务)



正念是一位我中学就认识的朋友。
也许因为太熟悉,一开始大家都常常吵架。

可是,今年因为他实在太忙了,
连吵架的时间也没有! :O

正念是一位沉稳的人,
总是能够给出一些很适当的意见。
不管他多么忙,
他总会抽出时间给 Main Comm,
然后一起努力。

正念总是一位很好的photographer,
拿着一个超级 PRO 的照相机,
帮大家拍照,少了他,
就少了很多精彩照片了。

谢谢你,正念!

~~~~~

小佑子 篇 (节目)



















章佑总是一位很好玩的人,
和他讲什么,他都 OK的,
总感觉他不会生气。

一开始章佑给大家的感觉就是很难联络,
call 他,他总是听不到电话……

可是,章佑改善了许多。

还记得上一个Event : Senior Farewell,
他和我一起partner做节策,
有什么变化,他总会马上联络我,
跟我商量商量。

虽然章佑在那段时间也很忙碌(因为考试),
但他也尽力去帮忙Main Comm 去办好一个 Event。

他的用心也是天地共鉴的,
还记得他一个人在厨房善后也没有埋怨……

谢谢你,章佑。

~~~~~

小玲子 篇 (节目)



Celine 是一位很有音乐底的人,
所以有关于音乐的问题,
我们都会咨询Celine 的宝贵意见。

她总是会尽力贡献一些比较特别的意见,
比如说:MSL 的 Cohesion Event, 这个 idea 就是她想出来的。

她接手节目这职位时,真的可以看出她很用心去办活动。
有时候,她的一些想法比较现实,可是也不能说她不好:
至少她会尽力去做好自己的份内事。

就算她做错了一些事情,
她也会尽量地去弥补,
这一点值得赞赏。

如果没有她,有很多的活动就会少了一点创意。
谢谢你,Celine。

~~~~~

小頵子 篇 (编辑)



















芷頵也是一位很负责任的人,
只要我们不要撞到她的睡觉时间,
她就不会缺席了。 xD

结果前天Senior Farewell的时候,故意刺激她,
结果她真的出现了。
所以以后要 HTHT 的时候,AMvengers 知道要怎样做啦?

其实她通常都是很准时的,
叫她做的东西也会尽量去做好。

有时候也很好欺负,只是现在很少跑去欺负她了。

她也是个很有心思的人,
为那些歌词提供了很多宝贵的意见。

FOC认识她,她给到大家的印象就是:很会跳舞。
所以我们如果需要跳舞就一定会找她啦!

谢谢你,芷頵!

~~~~~

小彬子 篇 (编辑)


















俊彬 是一个传奇,
我们每个人考试前都会拜他哦!

不只是成绩好,
还会下厨,
还会吉他,
是不是太好了呢?

人品又好,
说要去BP mentoring 就去了! 哈!

叫他处理的东西,他都会处理好,
而且每次都会给很多适当的意见,
简直是AMvenger的智多星啊!

没有他,main comm 就会少了很多欢乐了……
谢谢你,俊彬!

~~~~~

小安子 篇 (财政)


















说起凯安就一定和食物有关系。

凯安,
每次都会对食物有很多良好的意见,
所以有好几次Event 被人家称赞说食物很好吃,
凯安绝对有一些功劳!

从中秋开始,Main Comm 就一直保持着制作食物的传统,
而每次,凯安都会参与制作,而且也会参与善后,
非常感谢他啊!

另外,凯安其实也一直在关注财政状况,(典型的财政)
有一次忘记 claim 钱,也幸好有他提醒。

哈哈。总结,没有凯安,就少了一些美味的食物!
谢谢你,凯安!

~~~~~

小德子 篇 (文书)


















话说Tuc Yee,其实又会下厨,又会设计。
感谢他对卡片制作啊下了一定程度的功夫。

虽然他有时候会不小心放飞机,
但至少我找他帮忙的时候,他都有尽力去做。

而且话说他也跟了我去了好几次 BP Mentoring~ 呵!

总结来说,
感谢 Tuc Yee,对设计卡片上面的贡献,
感谢他,用心地做出了几份会议记录!
谢谢你, Tuc Yee!

~~~~~

自己 篇
我自己呢?没什么好啦,
只是开了一个 Facebook page,
然后维持 官网而已。
谢谢各位同侪的包涵呢! 呵呵~

~~~~~

目前为止Main Comm 没有一个全到的 outing,也没有全到的HTHT!
希望接下来会有吧!

**我记得大家一起吃的时光,虽然有点花钱。哈哈。

祝愿考试顺利!

法老
19/4/14
5:42p.m.