|
|
|
Show HN: A shell-native cd-compatible directory jumper using power-law frecency
(github.com)
|
|
26 points
by jghub
113 days ago
|
|
I have used this tool privately since 2011 to manage directory jumping. While it
is conceptually similar to tools like z or zoxide, the underlying ranking model is
different. It uses a power-law convolution with the time series of cd actions to
calculate a history-aware "frecency" metric instead of the standard heuristic
counters and multipliers. This approach moves away from point-estimates for recency. Most tools look only
at the timestamp of the last visit, which can allow a "one-off" burst of activity
to clobber long-term habits. By convolving a configurable history window
(typically the last 1,000+ events), the score balances consistent habits against
recent flukes. On performance: Despite the O(N) complexity of calculating decay for 1,000+
events, query time is ~20-30ms (Real Time) in ksh/bash, which is well below the threshold of perceived lag. I intentionally chose a Logical Path (pwd -L) model. Preserving symlink names
ensures that the "Name" remains the primary searchable key. Resolving to physical
paths often strips away the very keyword the user intends to use for searching. |
|
Although you don't have any problems with lag, it is possible to efficiently compute frecency in O(1) complexity
> But with an additional trick, no recomputation is necessary. The trick is to store in the database something with units of date...
Full details: https://wiki.mozilla.org/User:Jesse/NewFrecency#Efficient_co...