Mic*_*umo 1 python sql coldfusion railo
我期待构建一个利用Reddit(开源)算法的Web应用程序.
我计划随着时间推移调整它,但现在我认为使用他们的排名系统将是一个良好的开端.
我读了一篇关于这个算法的博客文章,这个例子是用Python编写的.如何将其转换为在ColdFusion中使用?如果更容易,可以在CFC中使用额外的奖励积分?
代码:
#Rewritten code from /r2/r2/lib/db/_sorts.pyx
from datetime import datetime, timedelta
from math import log
epoch = datetime(1970, 1, 1)
def epoch_seconds(date):
"""Returns the number of seconds from the epoch to date."""
td = date - epoch
return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)
def score(ups, downs):
return ups - downs
def hot(ups, downs, date):
"""The hot formula. Should match the equivalent function in postgres."""
s = score(ups, downs)
order = log(max(abs(s), 1), 10)
sign = 1 if s > 0 else -1 if s < 0 else 0
seconds = epoch_seconds(date) - 1134028003
return round(order + sign * seconds / 45000, 7)
Run Code Online (Sandbox Code Playgroud)
讨论此代码的博文:http: //amix.dk/blog/post/19588
期待听到一些想法和例子.
非常感谢!迈克尔.
另外,作为一个额外的问题; 在收集了数据集之后,是否可以通过SQL查询或ColdFusion中的某种排序更好地执行此代码?我选择的数据库是MySQL.
更新: 刚刚在这里发现了另一个与我问的问题有关的问题......我认为这有帮助. 如何使用Reddit和Hacker News排名算法?
大多数代码只是来自任何编程语言的标准代码
例如,在ColdFusion中获取特定日期以来的秒数非常简单
<cfset seconds = dateDiff('s', now(), createDate(1970, 1, 1)) />
Run Code Online (Sandbox Code Playgroud)
不知道你坚持哪些位,但它的所有prety简单.我看到的每个功能都有一个ColdFusion版本,而且不想让别人为你重写它,我建议你尝试这样做并询问你是否遇到了问题.