[HN Gopher] A Syntax for Self-Tracking (2020)
___________________________________________________________________
A Syntax for Self-Tracking (2020)
Author : gkbrk
Score : 66 points
Date : 2023-06-27 12:51 UTC (10 hours ago)
(HTM) web link (www.gibney.org)
(TXT) w3m dump (www.gibney.org)
| norir wrote:
| A vim plugin would be a nice enhancement to the OP.
| kazinator wrote:
| > alias coindecide='if (( RANDOM % 2 == 0 )); then echo Yes; else
| echo No; fi'
|
| I would probably (put intended) not use that. IANAS[tatistician]
| but I'm seeing suspicious runs of 1's or 0's which have a low
| probability: $ for x in $(seq 1 10); do echo
| $((RANDOM % 2)); done 1 1 1 1 1
| 1 0 1 1 0 $ for x in $(seq 1 10);
| do echo $((RANDOM % 2)); done 0 1 1 0
| 0 0 0 0 0 1 $ for x in $(seq
| 1 10); do echo $((RANDOM % 2)); done 1 0 1
| 1 1 1 1 1 1 1 $ echo
| $BASH_VERSION # on Ubuntu 18.04, x86-64 4.4.20(1)-release
|
| If this is just an interactive thing you run manually, you may be
| better off tossing an actual coin.
| mg wrote:
| If there are runs of zeros, this should result in a number
| greater than 25000: for i in {1..100000}; do
| echo $((RANDOM % 2))$((RANDOM % 2)); done | grep 00 | wc
|
| For me, it always comes out very close to 25000.
| kazinator wrote:
| Hmm. I also tried this with four bit codes: $
| for x in $(seq 1 1600000); do \ echo $((RANDOM %
| 2))$((RANDOM % 2))$((RANDOM % 2))$((RANDOM % 2)); \
| done | awk ' { hist[$0]++ } END { for (code in
| hist) print code, hist[code] }' 0100 99668 0101
| 99832 0110 100026 0111 99837 0000 99899
| 0001 100451 0010 99846 0011 99980 1000
| 100246 1001 100182 1010 100116 1011 100383
| 1100 100014 1101 99470 1110 99535 1111
| 100515
|
| Doesn't seem like anything deviates too much. If there were
| excessive runs of 1's and 0's, the 1111 and 0000 codes would
| be excessively frequent.
| teucris wrote:
| Some other posters have noted there are apps for broad personal
| data, but this is a whole other level that I think could be super
| valuable for those who want to build a scheme as they go. The
| blocker for me is that it's not an app - if I'm going to do this
| kind of logging, it needs to be something I can put on my phone.
| mg wrote:
| What works for me is that when I'm on the go, I just write
| events into a text file on my phone.
|
| 2023-06-27 16:00 Drink_Coffee? Yes
|
| And type them into my log when I'm at home. Sounds cumbersome,
| but it's in fact quite easy. I also log the time I spend on the
| self-tracking project and while it's one of my main projects,
| it only takes 10 to 15 minutes per day.
| gochi wrote:
| Apple Shortcuts or similar can handle this efficiently. Can
| even pump it straight into other apps like Apple Health to
| visualize a variety of metrics that you want to log. Multiple
| apps too, one tap can enter a metric into Health, log it into
| another app, and then into a text file.
|
| Takes a bit of upfront work to personalize it, but it's mostly
| just tedious not actually strenuous.
| luplex wrote:
| Previously submitted here:
| https://news.ycombinator.com/item?id=29064409 (2 comments)
|
| Interesting. I wonder whether they have learned anything from
| their observations. I would probably let numbers be part of the
| tracked event, because it might be important for things like.
| "Took 500mg of painkillers" or something.
| yorwba wrote:
| I think that would be formatted as "Painkillers: 500mg" in the
| described syntax.
| mg wrote:
| That syntax would be valid, but I usually let a dice decide,
| so the value is Yes or No.
|
| And since I usually take 400mg ibuprofen, I have introduced a
| string for this in particular: Take_Ibu400. So in my log it
| looks like this:
|
| 2023-03-23 12:44 Take_Ibu400? Yes
|
| If I would not have a specific string, I would track it like
| this:
|
| 2023-03-23 12:44 Take_Ibuprofen? Yes (400mg)
| gchaincl wrote:
| I loved the pragmatism, even if you don't log your life, I think
| this article is very valuable for everyone that need to be
| pragmatic
| mg wrote:
| Holy moly, my 3 year old post on the front page! The power of
| blogging. Cool.
|
| Quick update: Yup, I am still doing this. I enhanced my tooling
| in VIM quite a bit, and logging is super fast now. Earlier today
| I entered log line number 30558.
|
| I also wrote a bunch of software to visualize and analyze cause
| and effect in this type of log. Some of the many potential
| cause/effect relationships look promising.
|
| Since the data in this type of free-form log does not fit into
| the typical statistical tests very well, I have no "significant"
| results yet. That's why I have not posted an update so far. I
| first want to improve my statistical abilities.
|
| If anyone knows of established tools to analyze such a log, or
| has an interest in building new ones, get in touch!
| awinter-py wrote:
| for unstructured message analysis -- it's not a silver bullet,
| but you may want to try BERT or another newish embedding tool
|
| (you can do this on your laptop, you don't need to upload the
| data anywhere)
|
| then use like sklearn OPTICS to cluster (clustering method that
| doesn't require you to know the number of clusters in advance)
|
| If there are obvious clusters, you may be able to label a few
| useful categories. If you get lucky and most entries have a
| cluster, you can potentially manually label the outliers.
| FemmeAndroid wrote:
| I think I saw an example where you said you use it to answer
| questions like 'How many curls did I do with these weights last
| time' [1]. That was from a couple of years ago, and I'm
| assuming you are the commenter there. If that's correct, do you
| have a way to make this system portable? I feel like the place
| I'm most likely to need to answer such questions would
| typically only have my phone available.
|
| I greatly appreciate the data you're collecting and the overall
| method of doing so. However, I'm curious to learn about the
| portability of this information, and how you access it when
| you're away from a computer with vim.
|
| [1]: https://lobste.rs/s/ri5utx/syntax_for_self_tracking
| yjftsjthsd-h wrote:
| > If that's correct, do you have a way to make this system
| portable? I feel like the place I'm most likely to need to
| answer such questions would typically only have my phone
| available.
|
| If your phone runs Android, you can just install Termux and
| then do everything exactly the same. Stick the files in a git
| repo, edit with vim. If the ergonomics bother you, I think
| it's possible to have termux open files in an android native
| text editor app, but I unironically read and edit my files in
| (neo?)vim and it works fine.
| rickcarlino wrote:
| I've been doing a similar thing for over 1,000 days using an app
| called Daylio. It's been both useful and rewarding to have a
| large archive of daily activity to look back on. I try to review
| old entries on an interval, usually at the start of the year.
| https://rickcarlino.com/2020/journal-apps-with-reminders-hel...
| pablo1 wrote:
| Is the complete log a single file? I would be interested in
| seeing an excerpt of the data as an example
| mg wrote:
| Yes, it is a single file. 30558 lines so far.
|
| Some lines from today: 2023-06-27 06:40
| Wakeup 2023-06-27 06:40 Last_night_sleep_time: 07h21
| 2023-06-27 06:40 Last_night_sleep_interruptions: 1
| 2023-06-27 06:40 Yesterdays_Steps: 11898 2023-06-27
| 08:49 Temperature: 24.8 2023-06-27 08:49 Humidity: 40%
| 2023-06-27 09:21 Take_Iron? No 2023-06-27 09:21
| Take_VitaminD3? No
|
| The first 4 lines have the same timestamp because I use a vim
| macro to ask me about these 4 values. The macro then logs those
| 4 values at the wakeup time.
| jonhohle wrote:
| As always, I'd recommend ISO-8601 style timestls so which would
| only require one additional character (space swapped with T and a
| trailing Z) for the same semantic meaning, but could be extended
| to support time one offsets, fractional seconds, etc. without
| changing the parser.
| mtgentry wrote:
| This is cool. Would love a system like home assistant w/ little
| blueprints that you could add. For example maybe you want to
| track your location and have that get defined automatically, i.e.
| anytime I visit the coffee shop, I'm working, so define that as
| work.
| zimpenfish wrote:
| If you're on iOS, Life Cycle[1] can do this kind of thing for
| you. You can assign locations to categories (and it often does
| a good job of guessing them anyway) and it'll tally them up on
| a weekly/monthly/yearly basis.
|
| [1] https://apps.apple.com/us/app/life-cycle-track-your-
| time/id1...
| mg wrote:
| Since it is just a text file, it is easy to merge it with other
| data at any point in the future.
|
| So you could log your position on a different device. And only
| when you want to analyze the data, you write a script which
| converts the positions to lines like:
|
| 2023-06-27 13:50 Work (At_coffee_shop)
|
| And inject those into the self-tracking log.
| dugmartin wrote:
| I started down the path of building a narrower version of this to
| track my personal activity. The syntax was a similar date log
| format (time optional) but it was unit aware and it used commas
| for labels. Example: 2023-27-06 Walked 2 miles,
| cloudy day, felt good
|
| That would parse to the following object:
|
| {date: "2023-27-06", activity: "Walked", measurement: {value: 2,
| unit: "miles"}, labels: ["cloudy day", "felt good"]}
|
| The idea was to eventually generate a static site with automatic
| graphs and tables but I eventually just switched back to a
| spreadsheet. It is hard to beat a spreadsheet for flexibility.
| [deleted]
| bendecoste wrote:
| Makes me think of https://www.conventionalcommits.org/en/v1.0.0/
| for your life. Any recommendations for tracking while away from
| your computer? I love ease of use but I think I would lose large
| parts of my day & weekends when not at my desk.
| hallway_monitor wrote:
| I would just use a cloud product like Google drive or Google
| notes for this. Then at the end of the day paste it into the
| correct location in the log.
|
| I've thought about this type of tracking in the past, but I
| haven't been confident enough that it would actually find
| useful patterns to put in the work to implement it.
| gmane wrote:
| If you're using a phone, you could email yourself with a
| journal specific subject then use an API to automatically add
| those observations to a log. (Might be able to do that with
| Google Drive or notes too, I'm not sure if they have API
| hooks).
|
| If you don't want to keep a phone, a small journal is also a
| possibility.
| relaytheurgency wrote:
| https://jrnl.sh/en/stable/
|
| I feel like this tool is similar in spirit to this idea.
| Xen9 wrote:
| I would pay for a mobile app built to rigorously implement this
| with encrypted backups (Joplin style).
___________________________________________________________________
(page generated 2023-06-27 23:02 UTC)