Daily Scrum 11.6

我们M2的核心任务就是实现reward system,从而激励更多的人使用这一软件。我们的reward system是基于一种叫lottery tree的算法。根据用户之间的邀请关系建立lottery tree,父节点的所有孩子节点为该父节点对应的用户所邀请的用户。如果一个用户邀请的用户多,该用户理所应当获得更多的奖励。基于这一基本思想,昨天Yingce Xia已经着手开始建立lottery tree。今天,Yingce改进了建树算法。最初的程序是直接根据数据库中的用户信息,搜索某节点的所有孩子节点。但当用户量比较大的时候这种建树算法很慢。所以现在我们使用C#提供的词典类(Dictionary)进行查找,将用户的ID映射为唯一的一个整数,该整数也为该用户在用户列表中的下标。通过下标进行索引能够减少建树过程的时间开销。

昨天的Scrum也提到现在原网页和现有网页的滚动条不能同步,原因是两个滚动条之间会出现互相触发时间的过程。今天我们通过一个巧妙的方法解决了这一问题。有两个滚动条A,B,A的移动会触发B的移动,B的移动也会触发A的移动,我们现在的做法是,当A先移动时,立刻使B对A的触发无效,直到鼠标指针再次回到B所在的页面,重新选中该页面时(这时才有可能对B进行操作),B对A的触发才重新有效。通过这种简单的转换,很好的解决了事件相互触发的死循环问题。细心的读者可能发现昨天也采用了类似的算法,为什么没有取得好的效果呢?原因是昨天的算法重新使B对A触发有效的时间不是在鼠标重新选择B所在页面时,而是在B完成移动的时刻就重置有效。这样当B连续被触发时,就会出B对A的触发一会无效,一会有效,造成不稳定性,可能在某瞬间B对A触发有效,且B真的产生了触发信息,这时就会出现不稳定现象,滚动条将不受控制。重置有效时间的选择是新算法的精髓所在。

今天还遇到一个问题就是皮肤设置。因为我们现在使用的皮肤设置程序来自第三方,与我们的窗体兼容性可能存在问题,一旦加载皮肤,软件原窗体的布局就会稍有改变。我们明天会和老师联系,看能不能获得微软内部的皮肤设置代码,这样我们能够根据自己的框架修改源代码,同时又能避免一些不必要的法律问题。

恶意投票。因为我们软件要根据用户提供的翻译的得票数来决定改用户的贡献,所以就有可能出现用户恶意为自己投票的情况。为此,我们设置一个用户只能为一个词条投一票,在注册用户时需要使用邮箱验证。这样如果用户想为自己刷票的话就必须多注册邮箱,这是一个很麻烦的行为,一般用户可能就会望烦却步。今天我们已经实现了系统自动往邮箱发邮件的功能。

因为服务器更新较慢,有些没有更新。而且因为转队的原因,今天我们的Task才输入到TFS,所以今天的burn down意义不是很大。

Member Today's work Tomorrow's work
Fei Liang

组织总结daily scrum,与Yingce Xia合作建树

组织总结daily scrum,根据expected value概率选择winner

Hongyi Yao

测试换肤功能

继续完善换肤功能,希望能得到微软内部的支持

Rui Lin

解决网页同步问题

开始开发新网页打开功能
Yingce Xia

改进建树算法

与Yue Hu对接数据接口

Yue Hu

实现自动发邮件功能

与Yingce Xia对接数据接口

Shanchi Zhang

请假

 

posted @ 2012-11-06 20:28  coderepublic  阅读(189)  评论(0编辑  收藏  举报