| ▲ | Valanza – my Unix way for weight tracking and anlysis(github.com) | |||||||
| 20 points by lallero317 4 days ago | 5 comments | ||||||||
| ▲ | criticas 2 hours ago | parent | next [-] | |||||||
Nice idea, but "small composable programs" includes R scripts? That's great if you're already using R, a bit much to install if you're not. You could simplify things by cribbing from the Hacker's Diet (https://www.fourmilab.ch/hackdiet/) and using an exponentially weighted moving average as your filter. 10% of today's weight + 90% yesterday's EWMA. That's almost a one-liner in awk or perl, or a simple function in bash. Copilot suggests: awk 'BEGIN{alpha=0.1} NF>=2 { date=$1; w=$2; if (NR==1) ewma=w; else ewma=alpha*w + (1-alpha)*ewma; printf "%s\t%g\t%.6f\n", date, w, ewma }' input.txt | ||||||||
| ||||||||
| ▲ | MisterTea 2 hours ago | parent | prev | next [-] | |||||||
A friend did similar using rc on Plan 9: https://shithub.us/rodri/rcfitness/HEAD/info.html | ||||||||
| ▲ | erikgahner 2 hours ago | parent | prev | next [-] | |||||||
Great stuff! You can make minor adjustments to the R-script so you do not need to rely on {dplyr} and {tidyr}. For example, use merge() instead of left_join() and use the base pipe, |>, instead of the magrittr pipe, %>%. | ||||||||
| ▲ | hilti 3 hours ago | parent | prev [-] | |||||||
Love your approach: small, composable programs working together through pipes! | ||||||||