随着二字班的军训接近尾声,我们就要大四了。回首过去的半年,又是另一番不同寻常的经历。
随着二字班的军训接近尾声,我们就要大四了。回首过去的半年,又是另一番不同寻常的经历。
这是我第一次来台湾。小时候对台湾的印象是,台湾是一个宝岛,有秀丽的风景,还有丰富的物产。而随著近年来,两岸的深入交流,我又对台湾的文化有了一些了解,从之前来台湾交流的同学口中,都听说台湾是很值得亲身体会的地方。直到这次来台湾交流,才切身体会到,台湾是一个怎样的地方。
这两天在做高级数据结构(ADS)课程的大作业,内容是做一个推荐系统。我们选取的是C. Wang and D. Blei. Collaborative topic modeling for recommending scientific articles.一文中描述的模型。文章的作者C. Wang在个人主页上发布了论文中使用系统的部分代码,代码使用C++语言完成的。而我们的系统是用Java搭建的,因此我们需要将C++代码移植到Java中。
本以为这是一个简单的工作,只需要简单的改写即可,但没想到第一次移植的版本跑出来的结果的准确率只有作者程序的1/10。于是我意识到程序改错了。经过漫长的人工静态debug,终于把程序改对了。
通过半个多学期的实践,我发现,想用好数据库真的是没那么容易。
之前有两篇文章来叙述千寻的数据库设计,但在实践中,千寻并没有按照之前设计的方式来使用数据库。最主要的原因是,数据在MongoDB和redis中重复出现,这个冗余带来的一致性问题比较难以解决,虽然在写代码的时候已经通过code review来尽量避免数据的不一致,但一致性的bug还是难以避免。