这是一篇继《Hacker News 排名算法工作原理》之后的又一篇关于排名算法的文章。这次我将跟大家探讨一下Reddit的文章排名算法和评论排名算法的工作原理。Reddit使用的算法也是很简单,容易理解和实现。这篇文章里我将会对其进行深入分析。
鸭子类型是我目前在Ruby语言里最喜欢的一个“功能特征”,主要是因为它能让我们轻松的写出漂亮的代码——毕竟,你无需再担心类型:你可以把精力全部集中到你想发送的消息上,以及你需要打交道的对象能发挥的功能上。
这篇文章我要向大家介绍Hacker News网站的文章排名算法工作原理,以及如何在自己的应用里使用这种算法。这个算法非常的简单,但却在突出热门文章和遴选新文章上表现的异常优秀。
每次跟我那些阿根廷的朋友说起我在和一个俄罗斯人合作开发Listboard.it时,他们都会问“你是怎么做到的?”很显然为什么他们会这样问。丹尼斯和我相距8300英里(大约1.3万公里),
因为人需要和其他人共同生活,所以道歉的这种事情在所难免。我们偶尔的会遇到这种时候(希望不是经常),我们搞砸了事情,或大或小,我们需要给某人一些交代。
如果你已经读了我的前几篇关于面向对象范式因为受到Rust and Go等语言的影响而发生变化的文章,看到了我正在研究的Rust设计模式,你会发现我对Rust语言十分的偏爱。
通常人们有个误解,认为我们有计算机,它们应该解决我们的所有问题,甚至一些极端情况。极端情况——根据定义——只会发生在极端条件下,缺少一定的投入,用常规的方式很难处理。
我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。如果看到一个函数的括弧在同一行上没有闭合,我的眼睛会喷血。如果看到有人没有恰好的在两个函数间留一空行,我的小腿会抽筋。
先统一一下概念,我们有两种编程方式:命令式和声明式。我们可以像下面这样定义它们之间的不同:命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。
人变聪明的一个关键方法就是多读书。但只读还不够。读只是要素之一。我们要借用一下《影响力》这本书的作者Robert Cialdini的一个技巧,这个技巧能让我们的阅读更深刻,让书里的知识留在我们脑子里更久。
昨天,我看到一个非常有趣的删除一个目录下的海量文件的方法。他没有使用find 或 xargs,他很有创意的利用了rsync的强大功能,使用rsync –delete将目标文件夹以一个空文件夹来替换。之后,我做了一个实验来比较各种方法。让我吃惊的是,Lee的方法要比其它的快的多。下面就是我的测评。
这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作。下面的这些内容是Quora网站上Joshua Levy网友的总结:
让我们先看看编程大师Robert C. Martin的杰作《Clean Code》里的一句话:“注释的目的是为了弥补代码自身在表达上的不足。”这句话可以简单的理解为如果你的代码需要注释,最有可能是你的代码写的很烂。同样,如果在没有注释的情况下你无法用代码完整的表达你对一个问题或一个算法的思路,那这就是一个失败的信号。
邻居偷用我的无线网,我可以设置访问密码,但我决定捉弄他们。我先把网络分成两部分——一部分受信,一部分不受信。受信的部分使用一个网段,不受信的是其它网段。我使用DHCP服务器限制MAC地址,过滤无关地址。