## Kagi 常態公開他們的訂閱數量

We are currently serving around 2.1M queries a month, costing us around \$26,250 USD/month.

Kagi search is currently serving ~2,600 paid customers.

Between Kagi and Orion, we are currently generating around \$26,500 USD in monthly recurring revenue, which incidentally about exactly covers our current API and infrastructure costs.

## 對每個月一次的「Ask HN: Who is Hiring?」分析

timqian/hacker-job-trends 這個用 Node.js 開發的專案是針對 Hacker News 上的「Ask HN: Who is Hiring?」分析 (每個月一篇，拿來提供各家人馬留 comment 徵才的)，把關鍵字丟進程式，程式就會分析每個月的出現數量，在 terminal 上產生趨勢圖表。而且支援加法或是減法計算，可以用在去掉重複的字 (像是 `java``javascript`)。

## 即將出版的 Xdebug 2.6 能觀察 PHP 的 GC 情況了

Xdebug's built-in garbage collection statistics profiler allows you to find out when the PHP internal garbage collector triggers, how many variables it was able to clean up, how long it took, and how how much memory was actually freed.

## 對於按讚數排名的方法

Score = Lower bound of Wilson score confidence interval for a Bernoulli parameter

```require 'statistics2'

def ci_lower_bound(pos, n, confidence)
if n == 0
return 0
end
z = Statistics2.pnormaldist(1-(1-confidence)/2)
phat = 1.0*pos/n
(phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)
end```

The z-score in this function never changes, so if you don't have a statistics package handy or if performance is an issue you can always hard-code a value here for z. (Use 1.96 for a confidence level of 0.95.)

```SELECT widget_id, ((positive + 1.9208) / (positive + negative) -
1.96 * SQRT((positive * negative) / (positive + negative) + 0.9604) /
(positive + negative)) / (1 + 3.8416 / (positive + negative))
AS ci_lower_bound FROM widgets WHERE positive + negative > 0
ORDER BY ci_lower_bound DESC;```
```=IFERROR((([@[Up Votes]] + 1.9208) / ([@[Up Votes]] + [@[Down Votes]]) - 1.96 *