Hacker News

lallero317
Valanza – my Unix way for weight tracking and anlysis github.com

criticas2 days ago

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

abloba day ago

For the giggles:

nice idea, but "small composable programs" includes perl scripts? That's great if you're already using perl, a bit much to install if you're not.

There shouldn't be any burden of portability for the one writing small tools like these. You're free to rewrite it, of course, but expecting someone to go out of their way to stay within the unix/posix/whatever environment seems a bit much given the context of an unpaid endeavor.

doogliusa day ago

I don't think "small" has ever been meant to include the runtime. Is R much more complex of a runtime than awk perl or bash?

MisterTea2 days ago

A friend did similar using rc on Plan 9: https://shithub.us/rodri/rcfitness/HEAD/info.html

erikgahner2 days ago

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, %>%.

notorandita day ago

Note. In southern Italian lingos, "valanza" means "scale".

renewiltorda day ago

Same root as valence surely

hilti2 days ago

Love your approach: small, composable programs working together through pipes!

hn-front (c) 2024 voximity
source