在分享网站上面看到开源了一个类似Hacker News程序的框架(Trimidea / inews),就迫不及待的安装了。安装过程并不轻松。首先是composer安装的问题,然后是源代码中的安装流程有笔误,自己对PHP代码也不了解,折腾了比较长的时间。终于还是搞定了:http://news.codefine.site/。
这里把我的安装过程简单发一下:
1、确保PHP 5.39以上的环境;
2、准备好一个MySQL的帐号,有创建库的权限;
在分享网站上面看到开源了一个类似Hacker News程序的框架(Trimidea / inews),就迫不及待的安装了。安装过程并不轻松。首先是composer安装的问题,然后是源代码中的安装流程有笔误,自己对PHP代码也不了解,折腾了比较长的时间。终于还是搞定了:http://news.codefine.site/。
这里把我的安装过程简单发一下:
1、确保PHP 5.39以上的环境;
2、准备好一个MySQL的帐号,有创建库的权限;
从dbanotes.net的startup news知道了hacker news,关注了一段时间,发现排名确实能反映绝大多数用户的喜好,并且也不至于让比较热的文章永远出现在前列,而导致没有新的内容被关注。因此对其算法比较好奇,在网络上搜索了一下,看到实际的算法,有点不敢相信,整个系统只需要依赖这样一个简单的算法,不需要任何人工干预(也许链接是否发布出来需要审核)。hacker news的原理很简单,任何人都可以提交链接到网站首页,然后大家可以阅读其他人提交的链接,当发现该链接对自己有意义或者非常好时可以点击一个类似赞的按钮,给该文章投上一票。最终首页上会按照文章的票数多少和发布时间对文章进行热度排序。
整个算法就是基于下面这个表达式:
r=(P – 1) / (t + 2)^1.8
P是得票数,t是时间,天为单位。因此时间越短得票数越多的文章排名靠前,得票数一定,随着时间的增加,文章的排名也会慢慢降低。
已经有人画出了不同的P值对应的r与t的函数曲线图: