diff options
Diffstat (limited to '')
-rw-r--r-- | 2022/info/health-after.md | 413 | ||||
-rw-r--r-- | 2022/info/health-before.md | 32 |
2 files changed, 443 insertions, 2 deletions
diff --git a/2022/info/health-after.md b/2022/info/health-after.md index 3fed05c8..e0e567dd 100644 --- a/2022/info/health-after.md +++ b/2022/info/health-after.md @@ -1,6 +1,419 @@ <!-- Automatically generated by emacsconf-publish-after-page --> +<a name="health-mainVideo-transcript"></a> +# Transcript + +[[!template new="1" text="Hi, this is Dave O'Toole, and today" start="00:00:00.000" video="mainVideo-health" id="subtitle"]] +[[!template text="I'll be giving a presentation on tracking health data" start="00:00:04.000" video="mainVideo-health" id="subtitle"]] +[[!template text="with Emacs, Org Mode, and gnuplot." start="00:00:07.800" video="mainVideo-health" id="subtitle"]] +[[!template text="So gnuplot is the well-known scientific" start="00:00:12.760" video="mainVideo-health" id="subtitle"]] +[[!template text="and mathematical plotting application." start="00:00:16.080" video="mainVideo-health" id="subtitle"]] +[[!template text="You feed it text files full of names, dates, numbers," start="00:00:19.040" video="mainVideo-health" id="subtitle"]] +[[!template text="data points, and you get out a nice graph." start="00:00:24.640" video="mainVideo-health" id="subtitle"]] +[[!template text="You can spit out SVG. You can spit out PNG graphics." start="00:00:27.200" video="mainVideo-health" id="subtitle"]] +[[!template text="In this case, we're using an SVG." start="00:00:31.120" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="What I'm going to show you today" start="00:00:33.640" video="mainVideo-health" id="subtitle"]] +[[!template text="is how to take daily health journal items:" start="00:00:36.840" video="mainVideo-health" id="subtitle"]] +[[!template text="in other words, things like I exercised" start="00:00:39.840" video="mainVideo-health" id="subtitle"]] +[[!template text="such and such number of minutes today," start="00:00:42.120" video="mainVideo-health" id="subtitle"]] +[[!template text="I got X hours of sleep last night," start="00:00:44.320" video="mainVideo-health" id="subtitle"]] +[[!template text="I used such and such number of pieces of nicotine gum," start="00:00:47.400" video="mainVideo-health" id="subtitle"]] +[[!template text="say five pieces. So let's see," start="00:00:51.480" video="mainVideo-health" id="subtitle"]] +[[!template text="we've got this whole picture here, all right," start="00:00:54.560" video="mainVideo-health" id="subtitle"]] +[[!template text="and I've tracked here..." start="00:00:58.440" video="mainVideo-health" id="subtitle"]] +[[!template text="This is a month of data from my life." start="00:00:59.360" video="mainVideo-health" id="subtitle"]] +[[!template text="This is... I'm not showing all the variables," start="00:01:02.320" video="mainVideo-health" id="subtitle"]] +[[!template text="but this is what I felt comfortable sharing" start="00:01:05.160" video="mainVideo-health" id="subtitle"]] +[[!template text="in order to help people who might have a need to track," start="00:01:08.520" video="mainVideo-health" id="subtitle"]] +[[!template text="either because of a chronic condition," start="00:01:14.240" video="mainVideo-health" id="subtitle"]] +[[!template text="or just because of a health improvement goal" start="00:01:15.920" video="mainVideo-health" id="subtitle"]] +[[!template text="or what have you, people who might need to" start="00:01:18.600" video="mainVideo-health" id="subtitle"]] +[[!template text="track health data in a way" start="00:01:20.960" video="mainVideo-health" id="subtitle"]] +[[!template text="that's a little bit more robust" start="00:01:23.320" video="mainVideo-health" id="subtitle"]] +[[!template text="than just one or two variables" start="00:01:24.960" video="mainVideo-health" id="subtitle"]] +[[!template text="and just weight or just blood pressure." start="00:01:26.600" video="mainVideo-health" id="subtitle"]] +[[!template text="So in this case, I've got exercise," start="00:01:29.840" video="mainVideo-health" id="subtitle"]] +[[!template text="I've got the number of hours of sleep," start="00:01:33.080" video="mainVideo-health" id="subtitle"]] +[[!template text="the number of doses of nicotine," start="00:01:36.400" video="mainVideo-health" id="subtitle"]] +[[!template text="(that's the yellow line here)," start="00:01:38.560" video="mainVideo-health" id="subtitle"]] +[[!template text="and this is referring to nicotine gum." start="00:01:40.800" video="mainVideo-health" id="subtitle"]] +[[!template text="What we're going to be talking about" start="00:01:44.240" video="mainVideo-health" id="subtitle"]] +[[!template text="is looking at connections, the idea" start="00:01:45.560" video="mainVideo-health" id="subtitle"]] +[[!template text="that plotting your data can actually" start="00:01:47.840" video="mainVideo-health" id="subtitle"]] +[[!template text="help you figure out what's going on." start="00:01:49.880" video="mainVideo-health" id="subtitle"]] +[[!template text="This is just one month." start="00:01:52.120" video="mainVideo-health" id="subtitle"]] +[[!template text="I've been doing this for a couple of months now," start="00:01:53.080" video="mainVideo-health" id="subtitle"]] +[[!template text="but I felt comfortable showing one month" start="00:01:55.440" video="mainVideo-health" id="subtitle"]] +[[!template text="with a limited subset of the variables." start="00:01:57.560" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="What I'm going to be doing in this presentation" start="00:01:59.440" video="mainVideo-health" id="subtitle"]] +[[!template text="is showing you how to set up your org templates" start="00:02:02.240" video="mainVideo-health" id="subtitle"]] +[[!template text="so that you can, you know, hit a hotkey" start="00:02:05.280" video="mainVideo-health" id="subtitle"]] +[[!template text="to capture today's data with an org template--" start="00:02:08.800" video="mainVideo-health" id="subtitle"]] +[[!template text="or in this case yesterday's. Usually I'm saying, okay," start="00:02:11.840" video="mainVideo-health" id="subtitle"]] +[[!template text="yesterday this happened," start="00:02:14.200" video="mainVideo-health" id="subtitle"]] +[[!template text="because you don't know until the day's over" start="00:02:15.640" video="mainVideo-health" id="subtitle"]] +[[!template text="how many pieces of nicotine gum you ate" start="00:02:17.480" video="mainVideo-health" id="subtitle"]] +[[!template text="or how many hours you slept." start="00:02:19.720" video="mainVideo-health" id="subtitle"]] +[[!template text="So usually we're recording data for the previous day." start="00:02:21.440" video="mainVideo-health" id="subtitle"]] +[[!template text="We can set up a capture template" start="00:02:25.960" video="mainVideo-health" id="subtitle"]] +[[!template text="so that it fills a little org entry. One for exercise," start="00:02:28.080" video="mainVideo-health" id="subtitle"]] +[[!template text="one for sleep, one for nicotine, one for distress." start="00:02:30.920" video="mainVideo-health" id="subtitle"]] +[[!template text="Here distress is just 1 to 10:" start="00:02:34.280" video="mainVideo-health" id="subtitle"]] +[[!template text="how bad do you feel today?" start="00:02:36.920" video="mainVideo-health" id="subtitle"]] +[[!template text="It's not a scientific measure, but you know," start="00:02:38.560" video="mainVideo-health" id="subtitle"]] +[[!template text="many, many things ask you to rate" start="00:02:41.640" video="mainVideo-health" id="subtitle"]] +[[!template text="on a scale of 1 to 10, how bad is the anxiety," start="00:02:43.360" video="mainVideo-health" id="subtitle"]] +[[!template text="how bad is the general level of stress," start="00:02:47.120" video="mainVideo-health" id="subtitle"]] +[[!template text="and so without a lot of complication," start="00:02:49.640" video="mainVideo-health" id="subtitle"]] +[[!template text="I just rate that one to ten." start="00:02:51.680" video="mainVideo-health" id="subtitle"]] +[[!template text="Pain, okay, we won't have to get into any details," start="00:02:53.160" video="mainVideo-health" id="subtitle"]] +[[!template text="but if there is a level of chronic pain, well," start="00:02:58.800" video="mainVideo-health" id="subtitle"]] +[[!template text="I put that between 1 and 10. As we can see here," start="00:03:00.960" video="mainVideo-health" id="subtitle"]] +[[!template text="during the period that I've shown you, it's pretty low." start="00:03:04.240" video="mainVideo-health" id="subtitle"]] +[[!template text="There's some. If you miss a dose of medication," start="00:03:07.320" video="mainVideo-health" id="subtitle"]] +[[!template text="you can track that, in this case" start="00:03:11.920" video="mainVideo-health" id="subtitle"]] +[[!template text="with a big ugly red triangle, you know." start="00:03:13.600" video="mainVideo-health" id="subtitle"]] +[[!template text="You can see, I can see here that in mid-, in late September," start="00:03:17.640" video="mainVideo-health" id="subtitle"]] +[[!template text="sorry, in early to mid-October," start="00:03:24.280" video="mainVideo-health" id="subtitle"]] +[[!template text="I stopped using the nicotine gum" start="00:03:29.200" video="mainVideo-health" id="subtitle"]] +[[!template text="and probably should have cut down more gradually" start="00:03:31.000" video="mainVideo-health" id="subtitle"]] +[[!template text="because my sleep suffered. Look at this." start="00:03:32.960" video="mainVideo-health" id="subtitle"]] +[[!template text="The sleep line is down here, okay?" start="00:03:34.760" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="What I'm going to do now," start="00:03:38.320" video="mainVideo-health" id="subtitle"]] +[[!template text="now that I've shown you the graph" start="00:03:39.520" video="mainVideo-health" id="subtitle"]] +[[!template text="and some of the things that are useful about it," start="00:03:40.880" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm going to actually take a step back" start="00:03:44.800" video="mainVideo-health" id="subtitle"]] +[[!template text="and show you from start to finish how you can do this" start="00:03:46.640" video="mainVideo-health" id="subtitle"]] +[[!template text="in GNU Emacs, and I have a little template generator" start="00:03:50.320" video="mainVideo-health" id="subtitle"]] +[[!template text="that you can use if you'd like." start="00:03:53.320" video="mainVideo-health" id="subtitle"]] +[[!template text="All right, so let's go back." start="00:03:56.280" video="mainVideo-health" id="subtitle"]] +[[!template text="Let's step back from this file." start="00:03:59.920" video="mainVideo-health" id="subtitle"]] +[[!template text="We're going to split the screen, and on the left side," start="00:04:01.480" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm going to put the underlying Org file" start="00:04:07.600" video="mainVideo-health" id="subtitle"]] +[[!template text="that generates this graph." start="00:04:09.840" video="mainVideo-health" id="subtitle"]] +[[!template text="Let me shrink that a little bit." start="00:04:10.920" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="All right, I'm going to work my way backwards" start="00:04:16.840" video="mainVideo-health" id="subtitle"]] +[[!template text="from the template to the template generator," start="00:04:22.760" video="mainVideo-health" id="subtitle"]] +[[!template text="meaning that you'll be able to spit out," start="00:04:26.520" video="mainVideo-health" id="subtitle"]] +[[!template text="given your own specification of health variables," start="00:04:28.440" video="mainVideo-health" id="subtitle"]] +[[!template text="you'll be able to have it spit out" start="00:04:31.840" video="mainVideo-health" id="subtitle"]] +[[!template text="a custom gnuplot script like this" start="00:04:33.520" video="mainVideo-health" id="subtitle"]] +[[!template text="that's preset up with the definitions" start="00:04:38.160" video="mainVideo-health" id="subtitle"]] +[[!template text="for the column view in Org mode." start="00:04:41.320" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm assuming a little bit of familiarity" start="00:04:43.160" video="mainVideo-health" id="subtitle"]] +[[!template text="with Org mode and gnuplotting," start="00:04:45.400" video="mainVideo-health" id="subtitle"]] +[[!template text="but I'll try to explain as much as I can as I go along." start="00:04:47.200" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="The journal here is where... okay, okay, one moment." start="00:04:51.960" video="mainVideo-health" id="subtitle"]] +[[!template text="So as you can see, there's a sub-entry here" start="00:04:59.040" video="mainVideo-health" id="subtitle"]] +[[!template text="for each day that I've included from my data set" start="00:05:03.520" video="mainVideo-health" id="subtitle"]] +[[!template text="starting on September 13th of this year" start="00:05:06.280" video="mainVideo-health" id="subtitle"]] +[[!template text="and ending on October 17th." start="00:05:08.560" video="mainVideo-health" id="subtitle"]] +[[!template text="And there's an Org property drawer with" start="00:05:10.400" video="mainVideo-health" id="subtitle"]] +[[!template text="the corresponding names of each field and the value." start="00:05:16.960" video="mainVideo-health" id="subtitle"]] +[[!template text="Now the idea here is that the columns specify..." start="00:05:29.800" video="mainVideo-health" id="subtitle"]] +[[!template text="if you know a little bit about Org mode," start="00:05:36.760" video="mainVideo-health" id="subtitle"]] +[[!template text="what happens is that you..." start="00:05:40.640" video="mainVideo-health" id="subtitle"]] +[[!template text="let's say that I hit the key for my journal template," start="00:05:43.480" video="mainVideo-health" id="subtitle"]] +[[!template text="which... Mine is very similar." start="00:05:50.920" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="This is the capture buffer for today's date," start="00:05:52.800" video="mainVideo-health" id="subtitle"]] +[[!template text="and if you're recording yesterday's date," start="00:06:00.880" video="mainVideo-health" id="subtitle"]] +[[!template text="you can just flip it like that if you need to." start="00:06:02.680" video="mainVideo-health" id="subtitle"]] +[[!template text="Then I say, yesterday, I remember" start="00:06:04.520" video="mainVideo-health" id="subtitle"]] +[[!template text="I went for about a one-mile walk," start="00:06:08.640" video="mainVideo-health" id="subtitle"]] +[[!template text="so that's probably about 20 minutes," start="00:06:11.160" video="mainVideo-health" id="subtitle"]] +[[!template text="and that I had such and such," start="00:06:14.120" video="mainVideo-health" id="subtitle"]] +[[!template text="I had eight and a half hours of sleep, let's say." start="00:06:16.520" video="mainVideo-health" id="subtitle"]] +[[!template text="I estimate how many pieces of nicotine gum I have." start="00:06:19.080" video="mainVideo-health" id="subtitle"]] +[[!template text="I try to count as closely as I can, how much distress," start="00:06:22.480" video="mainVideo-health" id="subtitle"]] +[[!template text="you know what I mean," start="00:06:25.800" video="mainVideo-health" id="subtitle"]] +[[!template text="whether or not I missed a dose of medication." start="00:06:26.360" video="mainVideo-health" id="subtitle"]] +[[!template text="Then when you hit C-c C-c," start="00:06:28.280" video="mainVideo-health" id="subtitle"]] +[[!template text="it captures that to the end of your Org file." start="00:06:32.400" video="mainVideo-health" id="subtitle"]] +[[!template text="Now what this shows is that... I cut and paste it in." start="00:06:39.800" video="mainVideo-health" id="subtitle"]] +[[!template text="I've been keeping these entries every day for months," start="00:06:46.680" video="mainVideo-health" id="subtitle"]] +[[!template text="and that I cut and pasted in a month of data." start="00:06:48.160" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="Now I'm going to dig in a little bit to the gnuplot script." start="00:06:51.320" video="mainVideo-health" id="subtitle"]] +[[!template text="This here, all this stuff, is one component of the graph," start="00:07:00.800" video="mainVideo-health" id="subtitle"]] +[[!template text="and I'll go over how it works." start="00:07:07.760" video="mainVideo-health" id="subtitle"]] +[[!template text="First, the items through this column declaration here," start="00:07:11.360" video="mainVideo-health" id="subtitle"]] +[[!template text="and the id:myid, this columnview table here," start="00:07:19.320" video="mainVideo-health" id="subtitle"]] +[[!template text="#+BEGIN: columnview, this whole bit here," start="00:07:30.200" video="mainVideo-health" id="subtitle"]] +[[!template text="is going to get filled in with the corresponding columns," start="00:07:34.920" video="mainVideo-health" id="subtitle"]] +[[!template text="exercise minutes, sleep hours, nicotine doses." start="00:07:39.880" video="mainVideo-health" id="subtitle"]] +[[!template text="And then it gets pumped out by Org mode into a file" start="00:07:43.040" video="mainVideo-health" id="subtitle"]] +[[!template text="that looks like this: tab-separated values" start="00:07:53.560" video="mainVideo-health" id="subtitle"]] +[[!template text="with an ISO-style date at the beginning." start="00:07:59.841" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="So what we're going to do is we're going to go through" start="00:08:03.480" video="mainVideo-health" id="subtitle"]] +[[!template text="the gnuplot portion of this," start="00:08:10.360" video="mainVideo-health" id="subtitle"]] +[[!template text="and I'm going to enlarge the font a little." start="00:08:14.480" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm going to go line by line through the gnuplot portion." start="00:08:21.280" video="mainVideo-health" id="subtitle"]] +[[!template text="Now, my template generator will give you one like this." start="00:08:23.720" video="mainVideo-health" id="subtitle"]] +[[!template text="You don't have to write this from scratch." start="00:08:30.640" video="mainVideo-health" id="subtitle"]] +[[!template text="But I'm going to go through it line by line" start="00:08:33.120" video="mainVideo-health" id="subtitle"]] +[[!template text="because if you do use the template," start="00:08:35.680" video="mainVideo-health" id="subtitle"]] +[[!template text="then it'll help to have gone through it line by line," start="00:08:37.480" video="mainVideo-health" id="subtitle"]] +[[!template text="because you're probably going to have to modify it." start="00:08:42.200" video="mainVideo-health" id="subtitle"]] +[[!template text="So first, we're going to clear the graphics" start="00:08:46.680" video="mainVideo-health" id="subtitle"]] +[[!template text="from any previous runs" start="00:08:49.120" video="mainVideo-health" id="subtitle"]] +[[!template text="so that if we reuse the same gnuplot process," start="00:08:50.200" video="mainVideo-health" id="subtitle"]] +[[!template text="we're not overwriting the old--" start="00:08:53.800" video="mainVideo-health" id="subtitle"]] +[[!template text="that we are completely overwriting the old image." start="00:08:57.760" video="mainVideo-health" id="subtitle"]] +[[!template text="So that's the purpose of this line here." start="00:09:00.720" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="The output parameters: we want to put out an SVG file." start="00:09:03.320" video="mainVideo-health" id="subtitle"]] +[[!template text="Font Arial, that's funny," start="00:09:08.560" video="mainVideo-health" id="subtitle"]] +[[!template text="but I don't know what font it's actually ending up choosing," start="00:09:13.640" video="mainVideo-health" id="subtitle"]] +[[!template text="but it looks fine." start="00:09:16.120" video="mainVideo-health" id="subtitle"]] +[[!template text="Then we want it to be square," start="00:09:16.880" video="mainVideo-health" id="subtitle"]] +[[!template text="so I'm giving it 900 by 900 pixels," start="00:09:19.640" video="mainVideo-health" id="subtitle"]] +[[!template text="even though it is a scalable vector graphic." start="00:09:21.920" video="mainVideo-health" id="subtitle"]] +[[!template text="We're putting it in the same folder as the org file," start="00:09:23.720" video="mainVideo-health" id="subtitle"]] +[[!template text="example.svg." start="00:09:29.160" video="mainVideo-health" id="subtitle"]] +[[!template text="These lines here set it up to use the Org mode format" start="00:09:30.800" video="mainVideo-health" id="subtitle"]] +[[!template text="that we showed in the other file over here." start="00:09:39.520" video="mainVideo-health" id="subtitle"]] +[[!template text="The time format is four-digit year, two-digit month," start="00:09:42.680" video="mainVideo-health" id="subtitle"]] +[[!template text="two-digit day." start="00:09:48.360" video="mainVideo-health" id="subtitle"]] +[[!template text="The time format doesn't specify here the time," start="00:09:50.360" video="mainVideo-health" id="subtitle"]] +[[!template text="but that doesn't seem to mess it up." start="00:09:56.480" video="mainVideo-health" id="subtitle"]] +[[!template text="This line "set datafile separator" means that" start="00:09:59.600" video="mainVideo-health" id="subtitle"]] +[[!template text="the separators between that" start="00:10:02.440" video="mainVideo-health" id="subtitle"]] +[[!template text="and between all the other fields are tabs," start="00:10:04.240" video="mainVideo-health" id="subtitle"]] +[[!template text="which is what Org mode does" start="00:10:06.960" video="mainVideo-health" id="subtitle"]] +[[!template text="when it spits out a table by default." start="00:10:08.920" video="mainVideo-health" id="subtitle"]] +[[!template text="Okay, along to the next lines." start="00:10:11.000" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="We're going to set up for time series data," start="00:10:15.480" video="mainVideo-health" id="subtitle"]] +[[!template text="meaning that the x-axis is going to be time," start="00:10:18.120" video="mainVideo-health" id="subtitle"]] +[[!template text="x2tics 1 format." start="00:10:22.808" video="mainVideo-health" id="subtitle"]] +[[!template text="I believe this means that every day has one tick" start="00:10:26.120" video="mainVideo-health" id="subtitle"]] +[[!template text="and that this tells it that the first--" start="00:10:30.400" video="mainVideo-health" id="subtitle"]] +[[!template text="unfortunately, I forget the exact meaning of this one line." start="00:10:32.880" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm just going to move on. We want one X tick per day," start="00:10:39.360" video="mainVideo-health" id="subtitle"]] +[[!template text="and because X is in seconds," start="00:10:44.960" video="mainVideo-health" id="subtitle"]] +[[!template text="it's 24 hours times 60 minutes times 60 seconds." start="00:10:46.520" video="mainVideo-health" id="subtitle"]] +[[!template text="This line "set grid xtics" gives us" start="00:10:50.320" video="mainVideo-health" id="subtitle"]] +[[!template text="a vertical line on each day of the graph." start="00:10:55.640" video="mainVideo-health" id="subtitle"]] +[[!template text="I'll pull up the graph" start="00:10:57.280" video="mainVideo-health" id="subtitle"]] +[[!template text="just so that it's a little easier to see." start="00:10:58.320" video="mainVideo-health" id="subtitle"]] +[[!template text="All these vertical lines, one on each day," start="00:11:00.040" video="mainVideo-health" id="subtitle"]] +[[!template text="that's given to you by "set grid xtics"." start="00:11:03.920" video="mainVideo-health" id="subtitle"]] +[[!template text="One Y tick every five points." start="00:11:06.200" video="mainVideo-health" id="subtitle"]] +[[!template text="So here at five pieces of nicotine," start="00:11:10.160" video="mainVideo-health" id="subtitle"]] +[[!template text="we've got a five, at ten pieces – well," start="00:11:13.720" video="mainVideo-health" id="subtitle"]] +[[!template text="we don't want to eat ten pieces, but ten, fifteen, twenty." start="00:11:15.960" video="mainVideo-health" id="subtitle"]] +[[!template text="Rotating the labels to make them fit a little bit better," start="00:11:19.680" video="mainVideo-health" id="subtitle"]] +[[!template text="that's this part here where the labels are sideways," start="00:11:25.480" video="mainVideo-health" id="subtitle"]] +[[!template text="and even with just one month of data," start="00:11:28.040" video="mainVideo-health" id="subtitle"]] +[[!template text="they're getting a little crowded." start="00:11:30.640" video="mainVideo-health" id="subtitle"]] +[[!template text="This "set key box lc" just makes the line around the key," start="00:11:35.160" video="mainVideo-health" id="subtitle"]] +[[!template text="the legend here, a little bit less severe." start="00:11:41.400" video="mainVideo-health" id="subtitle"]] +[[!template text="set xtics format: this makes it so that, for example," start="00:11:44.040" video="mainVideo-health" id="subtitle"]] +[[!template text="I've done a United-States-style date here" start="00:11:51.080" video="mainVideo-health" id="subtitle"]] +[[!template text="with the month and then the day." start="00:11:53.480" video="mainVideo-health" id="subtitle"]] +[[!template text="You don't necessarily have to do that." start="00:11:55.280" video="mainVideo-health" id="subtitle"]] +[[!template text="You can have whatever you want." start="00:11:58.840" video="mainVideo-health" id="subtitle"]] +[[!template text="This xtics format," start="00:12:01.960" video="mainVideo-health" id="subtitle"]] +[[!template text="that relates to how the dates are printed." start="00:12:03.080" video="mainVideo-health" id="subtitle"]] +[[!template text="Remember that over here, this set timefmt," start="00:12:06.320" video="mainVideo-health" id="subtitle"]] +[[!template text="that relates to how the dates are formatted" start="00:12:12.520" video="mainVideo-health" id="subtitle"]] +[[!template text="in the Org mode output." start="00:12:15.160" video="mainVideo-health" id="subtitle"]] +[[!template text="So remember, those are two..." start="00:12:17.000" video="mainVideo-health" id="subtitle"]] +[[!template text="You don't want to mix those up." start="00:12:18.320" video="mainVideo-health" id="subtitle"]] +[[!template text="All right, "yrange [0:40]"." start="00:12:19.520" video="mainVideo-health" id="subtitle"]] +[[!template text="Thus far, my exercise sessions have all been" start="00:12:23.800" video="mainVideo-health" id="subtitle"]] +[[!template text="less than 30 minutes, and nothing's gone over 30." start="00:12:28.720" video="mainVideo-health" id="subtitle"]] +[[!template text="If you have a health variable" start="00:12:31.480" video="mainVideo-health" id="subtitle"]] +[[!template text="that is in a significantly different range," start="00:12:35.840" video="mainVideo-health" id="subtitle"]] +[[!template text="you may need to get a slightly more complicated" start="00:12:38.120" video="mainVideo-health" id="subtitle"]] +[[!template text="gnuplot script because it is possible to plot" start="00:12:41.640" video="mainVideo-health" id="subtitle"]] +[[!template text="multiple yranges in one plot" start="00:12:43.720" video="mainVideo-health" id="subtitle"]] +[[!template text="if you have a variable that uses a different range." start="00:12:46.480" video="mainVideo-health" id="subtitle"]] +[[!template text="It's just a little trickier." start="00:12:48.720" video="mainVideo-health" id="subtitle"]] +[[!template text="These parts here, aside from the fact" start="00:12:49.760" video="mainVideo-health" id="subtitle"]] +[[!template text="that you might make some changes that relate to" start="00:12:55.920" video="mainVideo-health" id="subtitle"]] +[[!template text="the date and your country format," start="00:12:59.080" video="mainVideo-health" id="subtitle"]] +[[!template text="are going to be the same." start="00:13:01.320" video="mainVideo-health" id="subtitle"]] +[[!template text="This is like boilerplate for almost anything." start="00:13:03.240" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="Now here are the parts that are going to vary" start="00:13:05.920" video="mainVideo-health" id="subtitle"]] +[[!template text="depending on what health variables you want to store." start="00:13:09.800" video="mainVideo-health" id="subtitle"]] +[[!template text="There are three main sections here." start="00:13:13.400" video="mainVideo-health" id="subtitle"]] +[[!template text="One is setting the different line types that are used." start="00:13:18.040" video="mainVideo-health" id="subtitle"]] +[[!template text="Setting linetype 1 with line width 2, line color RGB." start="00:13:28.720" video="mainVideo-health" id="subtitle"]] +[[!template text="Unfortunately, gnuplot is a little bit cryptic," start="00:13:32.480" video="mainVideo-health" id="subtitle"]] +[[!template text="which is why I've made this template generator" start="00:13:34.960" video="mainVideo-health" id="subtitle"]] +[[!template text="that I'll show you in a moment." start="00:13:36.880" video="mainVideo-health" id="subtitle"]] +[[!template text="I pick a color. So this is exercise, forest green." start="00:13:38.000" video="mainVideo-health" id="subtitle"]] +[[!template text="Point size 1, meaning you get" start="00:13:43.040" video="mainVideo-health" id="subtitle"]] +[[!template text="these little green triangles about that size." start="00:13:49.280" video="mainVideo-health" id="subtitle"]] +[[!template text="But the point type 9 is the pointing up triangle." start="00:13:51.600" video="mainVideo-health" id="subtitle"]] +[[!template text="Line type 2, purple. So that's the sleep line." start="00:13:54.720" video="mainVideo-health" id="subtitle"]] +[[!template text="So we're just establishing these different line types" start="00:13:59.520" video="mainVideo-health" id="subtitle"]] +[[!template text="that we've given arbitrary numbers." start="00:14:03.000" video="mainVideo-health" id="subtitle"]] +[[!template text="Now onto the next section." start="00:14:04.720" video="mainVideo-health" id="subtitle"]] +[[!template text="Oh, before I move on here," start="00:14:08.960" video="mainVideo-health" id="subtitle"]] +[[!template text="you can see point type 11 for line 5, which is red." start="00:14:12.920" video="mainVideo-health" id="subtitle"]] +[[!template text="And that's the missed medications line," start="00:14:16.120" video="mainVideo-health" id="subtitle"]] +[[!template text="so you get a triangle that's upside down" start="00:14:18.080" video="mainVideo-health" id="subtitle"]] +[[!template text="because that's point shape 11." start="00:14:20.640" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="All right. The next section here is the goal lines." start="00:14:22.680" video="mainVideo-health" id="subtitle"]] +[[!template text="There are horizontal dashed lines here" start="00:14:27.880" video="mainVideo-health" id="subtitle"]] +[[!template text="at 8 purple hours of sleep, because 8 hours is the goal." start="00:14:33.441" video="mainVideo-health" id="subtitle"]] +[[!template text="So there's a horizontal line at Y = 8." start="00:14:37.360" video="mainVideo-health" id="subtitle"]] +[[!template text="For pieces of nicotine gum," start="00:14:41.520" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm trying to keep it to around 5 right now." start="00:14:43.880" video="mainVideo-health" id="subtitle"]] +[[!template text="So my goal line is at 5. So these..." start="00:14:46.960" video="mainVideo-health" id="subtitle"]] +[[!template text="Here, a goal of at least 20 minutes of exercise." start="00:14:52.520" video="mainVideo-health" id="subtitle"]] +[[!template text="Sometimes I get more, sometimes I get less." start="00:14:56.760" video="mainVideo-health" id="subtitle"]] +[[!template text="There's a green line and a 20, showing that that's the goal." start="00:14:59.080" video="mainVideo-health" id="subtitle"]] +[[!template text="These lines here are actually the goal lines." start="00:15:02.200" video="mainVideo-health" id="subtitle"]] +[[!template text="You can specify the goal for each one" start="00:15:06.480" video="mainVideo-health" id="subtitle"]] +[[!template text="in the template generator that I'll show you." start="00:15:09.120" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="The last part is the actual plot command." start="00:15:12.000" video="mainVideo-health" id="subtitle"]] +[[!template text="So the dependent... So okay," start="00:15:28.080" video="mainVideo-health" id="subtitle"]] +[[!template text="these all start with 1, "using 1" against this variable." start="00:15:30.200" video="mainVideo-health" id="subtitle"]] +[[!template text="So $2... This is a ternary operator here" start="00:15:34.920" video="mainVideo-health" id="subtitle"]] +[[!template text="that says if the value of the second column is zero," start="00:15:41.600" video="mainVideo-health" id="subtitle"]] +[[!template text="then don't plot a point. In other words," start="00:15:49.200" video="mainVideo-health" id="subtitle"]] +[[!template text="not a number means it won't plot a point." start="00:15:52.360" video="mainVideo-health" id="subtitle"]] +[[!template text="The template generator lets you skip over" start="00:15:56.080" video="mainVideo-health" id="subtitle"]] +[[!template text="the details of that. It sticks this in there." start="00:15:58.920" video="mainVideo-health" id="subtitle"]] +[[!template text="I'll show you." start="00:16:02.120" video="mainVideo-health" id="subtitle"]] +[[!template text="So we only want to plot a point when the value is non-zero." start="00:16:02.760" video="mainVideo-health" id="subtitle"]] +[[!template text="If there was no exercise, we're not plotting a point." start="00:16:09.400" video="mainVideo-health" id="subtitle"]] +[[!template text="The with construct means we'll plot data" start="00:16:12.480" video="mainVideo-health" id="subtitle"]] +[[!template text="using date against exercise with points," start="00:16:15.760" video="mainVideo-health" id="subtitle"]] +[[!template text="the title is "exercise (minutes)", line type 1." start="00:16:21.341" video="mainVideo-health" id="subtitle"]] +[[!template text="Remember, we established line type 1 up here" start="00:16:25.520" video="mainVideo-health" id="subtitle"]] +[[!template text="as being forest green, point style 1," start="00:16:29.840" video="mainVideo-health" id="subtitle"]] +[[!template text="point type 9, green triangles." start="00:16:35.080" video="mainVideo-health" id="subtitle"]] +[[!template text="Now I'm going to show 1 against column 3," start="00:16:37.600" video="mainVideo-health" id="subtitle"]] +[[!template text="which is "hours of sleep"." start="00:16:42.400" video="mainVideo-health" id="subtitle"]] +[[!template text="This one is plotted with lines," start="00:16:43.920" video="mainVideo-health" id="subtitle"]] +[[!template text="so we don't specify a point type or point size," start="00:16:46.040" video="mainVideo-health" id="subtitle"]] +[[!template text="just a line type 2. And remember, you can see" start="00:16:48.600" video="mainVideo-health" id="subtitle"]] +[[!template text="that line type 2 is defined as purple" start="00:16:51.720" video="mainVideo-health" id="subtitle"]] +[[!template text="with point type 1, point size 1." start="00:16:55.241" video="mainVideo-health" id="subtitle"]] +[[!template text="Okay, so I did specify point size and point type," start="00:16:57.360" video="mainVideo-health" id="subtitle"]] +[[!template text="but because I'm not plotting with points," start="00:16:59.960" video="mainVideo-health" id="subtitle"]] +[[!template text="those are ignored." start="00:17:01.480" video="mainVideo-health" id="subtitle"]] +[[!template text="Here we come to the line with nicotine." start="00:17:02.280" video="mainVideo-health" id="subtitle"]] +[[!template text="The fourth column is the nicotine number," start="00:17:08.800" video="mainVideo-health" id="subtitle"]] +[[!template text="the fourth column from the Org mode file." start="00:17:11.560" video="mainVideo-health" id="subtitle"]] +[[!template text="So here you can see how we're telling gnuplot" start="00:17:13.200" video="mainVideo-health" id="subtitle"]] +[[!template text="to take each column of the tab-separated Org mode file" start="00:17:16.008" video="mainVideo-health" id="subtitle"]] +[[!template text="and put it into the graph." start="00:17:19.800" video="mainVideo-health" id="subtitle"]] +[[!template text="The line types are set up here." start="00:17:21.120" video="mainVideo-health" id="subtitle"]] +[[!template text="The goal lines are set up here." start="00:17:25.960" video="mainVideo-health" id="subtitle"]] +[[!template text="And then the actual plot command is set up here." start="00:17:30.800" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="So now we're going to work further backwards" start="00:17:35.560" video="mainVideo-health" id="subtitle"]] +[[!template text="from this gnuplot template" start="00:17:41.320" video="mainVideo-health" id="subtitle"]] +[[!template text="to the template generator that I used to make it." start="00:17:42.960" video="mainVideo-health" id="subtitle"]] +[[!template text="Now I'm not going to go into" start="00:17:46.560" video="mainVideo-health" id="subtitle"]] +[[!template text="all of the details of the code," start="00:18:01.960" video="mainVideo-health" id="subtitle"]] +[[!template text="but what I am going to show you is that" start="00:18:03.760" video="mainVideo-health" id="subtitle"]] +[[!template text="there's a variable called `health-factors'." start="00:18:06.160" video="mainVideo-health" id="subtitle"]] +[[!template text="And what this does, this `health-factors-from-list'" start="00:18:10.680" video="mainVideo-health" id="subtitle"]] +[[!template text="lets you specify, with a property list" start="00:18:15.840" video="mainVideo-health" id="subtitle"]] +[[!template text="of keyword and value pairs" start="00:18:20.920" video="mainVideo-health" id="subtitle"]] +[[!template text="(here's the keyword name and the value is exercise)," start="00:18:22.680" video="mainVideo-health" id="subtitle"]] +[[!template text="the goal that I want 20 minutes of exercise," start="00:18:24.800" video="mainVideo-health" id="subtitle"]] +[[!template text="that the unit is minutes," start="00:18:28.200" video="mainVideo-health" id="subtitle"]] +[[!template text="that the color is forest green, and so on." start="00:18:30.200" video="mainVideo-health" id="subtitle"]] +[[!template text="The aspects of the gnuplot setup" start="00:18:36.160" video="mainVideo-health" id="subtitle"]] +[[!template text="have been abstracted here." start="00:18:39.440" video="mainVideo-health" id="subtitle"]] +[[!template text="Eight hours of sleep is the goal here." start="00:18:43.560" video="mainVideo-health" id="subtitle"]] +[[!template text="The hours are units. What color," start="00:18:49.280" video="mainVideo-health" id="subtitle"]] +[[!template text="what thickness of the line." start="00:18:54.040" video="mainVideo-health" id="subtitle"]] +[[!template text="Here we specify the number of points." start="00:18:55.120" video="mainVideo-health" id="subtitle"]] +[[!template text="There's references online" start="00:19:00.080" video="mainVideo-health" id="subtitle"]] +[[!template text="that show you what point types are what shapes in gnuplot," start="00:19:01.280" video="mainVideo-health" id="subtitle"]] +[[!template text="and so on and so forth." start="00:19:05.200" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="I'll walk through the code a little bit that does this," start="00:19:11.480" video="mainVideo-health" id="subtitle"]] +[[!template text="that actually takes these pieces," start="00:19:17.400" video="mainVideo-health" id="subtitle"]] +[[!template text="that takes this specification of what your variables are" start="00:19:20.440" video="mainVideo-health" id="subtitle"]] +[[!template text="and turns it into a template." start="00:19:24.400" video="mainVideo-health" id="subtitle"]] +[[!template text="First, I'm using EIEIO," start="00:19:30.440" video="mainVideo-health" id="subtitle"]] +[[!template text="the object system that's included with GNU Emacs." start="00:19:37.960" video="mainVideo-health" id="subtitle"]] +[[!template text="It's a reasonable facsimile" start="00:19:41.720" video="mainVideo-health" id="subtitle"]] +[[!template text="of the Common Lisp Object System." start="00:19:45.120" video="mainVideo-health" id="subtitle"]] +[[!template text="What I'm going to be doing here" start="00:19:47.320" video="mainVideo-health" id="subtitle"]] +[[!template text="is defining a class with each of those items," start="00:19:51.240" video="mainVideo-health" id="subtitle"]] +[[!template text="those properties that we talked about in that list" start="00:19:56.200" video="mainVideo-health" id="subtitle"]] +[[!template text="that lets you specify name, what the goal is," start="00:19:58.480" video="mainVideo-health" id="subtitle"]] +[[!template text="what the units are, and the gnuplot things" start="00:20:01.320" video="mainVideo-health" id="subtitle"]] +[[!template text="(the gnuplot parameters like thickness," start="00:20:04.240" video="mainVideo-health" id="subtitle"]] +[[!template text="plot type, and all that) into a class that will then" start="00:20:06.560" video="mainVideo-health" id="subtitle"]] +[[!template text="spit out the template once you feed it" start="00:20:13.240" video="mainVideo-health" id="subtitle"]] +[[!template text="some of these health factor objects. So just a moment." start="00:20:16.520" video="mainVideo-health" id="subtitle"]] +[[!template text="For example, you can see that this template" start="00:20:27.760" video="mainVideo-health" id="subtitle"]] +[[!template text="originally came from being generated by this code here." start="00:20:34.480" video="mainVideo-health" id="subtitle"]] +[[!template text="To use the template," start="00:20:46.320" video="mainVideo-health" id="subtitle"]] +[[!template text="to use this little template generator..." start="00:20:52.960" video="mainVideo-health" id="subtitle"]] +[[!template text="See, here's where it spits out the line type" start="00:20:55.400" video="mainVideo-health" id="subtitle"]] +[[!template text="given the pieces." start="00:21:06.280" video="mainVideo-health" id="subtitle"]] +[[!template text="This is all just text formatting." start="00:21:07.440" video="mainVideo-health" id="subtitle"]] +[[!template text="This is one of the things that Emacs Lisp" start="00:21:09.680" video="mainVideo-health" id="subtitle"]] +[[!template text="just really excels at." start="00:21:11.320" video="mainVideo-health" id="subtitle"]] +[[!template text="I need to take a piece of data" start="00:21:13.160" video="mainVideo-health" id="subtitle"]] +[[!template text="like a list of health information," start="00:21:19.520" video="mainVideo-health" id="subtitle"]] +[[!template text="a list of health variables, what their units are," start="00:21:22.640" video="mainVideo-health" id="subtitle"]] +[[!template text="and how they're supposed to be formatted in gnuplot," start="00:21:25.680" video="mainVideo-health" id="subtitle"]] +[[!template text="and go from that to the nice template." start="00:21:28.120" video="mainVideo-health" id="subtitle"]] +[[!template text="So that's pretty much the whole thing." start="00:21:30.200" video="mainVideo-health" id="subtitle"]] +[[!template text="I want to see if there's anything I missed." start="00:21:31.720" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="Bring up the chart." start="00:21:41.000" video="mainVideo-health" id="subtitle"]] +[[!template text="This has been really useful" start="00:21:51.520" video="mainVideo-health" id="subtitle"]] +[[!template text="for communicating with healthcare professionals" start="00:21:54.280" video="mainVideo-health" id="subtitle"]] +[[!template text="because you are both on the same page" start="00:21:59.600" video="mainVideo-health" id="subtitle"]] +[[!template text="about exactly what is happening," start="00:22:04.400" video="mainVideo-health" id="subtitle"]] +[[!template text="what's been happening because if... Let's say" start="00:22:05.880" video="mainVideo-health" id="subtitle"]] +[[!template text="that you're tired when you talk to your care provider." start="00:22:10.680" video="mainVideo-health" id="subtitle"]] +[[!template text="Well, if you have objective information" start="00:22:15.240" video="mainVideo-health" id="subtitle"]] +[[!template text="that you've been recording every day," start="00:22:17.560" video="mainVideo-health" id="subtitle"]] +[[!template text="that you're ahead of the game, really," start="00:22:18.840" video="mainVideo-health" id="subtitle"]] +[[!template text="because you don't need, necessarily, the presence of mind" start="00:22:22.400" video="mainVideo-health" id="subtitle"]] +[[!template text="to be able to give your care provider" start="00:22:25.120" video="mainVideo-health" id="subtitle"]] +[[!template text="a complete picture of what's going on in your world." start="00:22:27.680" video="mainVideo-health" id="subtitle"]] +[[!template text="If you can find those few minutes a day to enter--" start="00:22:30.040" video="mainVideo-health" id="subtitle"]] +[[!template text="not even a few minutes," start="00:22:33.040" video="mainVideo-health" id="subtitle"]] +[[!template text="really just a minute to enter the data" start="00:22:34.400" video="mainVideo-health" id="subtitle"]] +[[!template text="and say what happened yesterday..." start="00:22:37.760" video="mainVideo-health" id="subtitle"]] +[[!template text="I'm finding over these months" start="00:22:39.840" video="mainVideo-health" id="subtitle"]] +[[!template text="that I've been more in touch with my health when I can--" start="00:22:42.760" video="mainVideo-health" id="subtitle"]] +[[!template text="not forced, but when I have the habit," start="00:22:45.040" video="mainVideo-health" id="subtitle"]] +[[!template text="the consistent habit every single day" start="00:22:49.920" video="mainVideo-health" id="subtitle"]] +[[!template text="of recording that data--I'm accountable to myself." start="00:22:52.160" video="mainVideo-health" id="subtitle"]] +[[!template text="It's interesting." start="00:22:55.840" video="mainVideo-health" id="subtitle"]] +[[!template text="I guess it gets into a little bit of ideas" start="00:22:57.360" video="mainVideo-health" id="subtitle"]] +[[!template text="about the Quantified Self" start="00:23:01.040" video="mainVideo-health" id="subtitle"]] +[[!template text="and how holding yourself accountable" start="00:23:02.440" video="mainVideo-health" id="subtitle"]] +[[!template text="can change what you do and what the outcomes are." start="00:23:05.240" video="mainVideo-health" id="subtitle"]] +[[!template text="Just look at this here." start="00:23:09.920" video="mainVideo-health" id="subtitle"]] +[[!template text="Without getting into too much detail," start="00:23:14.160" video="mainVideo-health" id="subtitle"]] +[[!template text="one of the reasons I track my sleep is because," start="00:23:17.280" video="mainVideo-health" id="subtitle"]] +[[!template text="as you can see, my sleep" start="00:23:19.680" video="mainVideo-health" id="subtitle"]] +[[!template text="is not as well-regulated as most people," start="00:23:22.040" video="mainVideo-health" id="subtitle"]] +[[!template text="and that's why I need to do that." start="00:23:26.760" video="mainVideo-health" id="subtitle"]] +[[!template text="This was a time... 10, 12," start="00:23:31.440" video="mainVideo-health" id="subtitle"]] +[[!template text="here's 14 hours of sleep, that's depression." start="00:23:34.441" video="mainVideo-health" id="subtitle"]] +[[!template text="It oscillates a little bit. But then below the goal line," start="00:23:36.640" video="mainVideo-health" id="subtitle"]] +[[!template text="the things are a little more normal here." start="00:23:43.520" video="mainVideo-health" id="subtitle"]] +[[!template text="This is a little more normal." start="00:23:45.640" video="mainVideo-health" id="subtitle"]] +[[!template text="But then, really, without thinking about it too much," start="00:23:46.920" video="mainVideo-health" id="subtitle"]] +[[!template text="I cut out the nicotine, and my sleep suffered." start="00:23:52.080" video="mainVideo-health" id="subtitle"]] +[[!template text="Just the fact that I'm able to look and see that connection" start="00:23:56.240" video="mainVideo-health" id="subtitle"]] +[[!template text="is really amazing to me." start="00:24:00.200" video="mainVideo-health" id="subtitle"]] +[[!template text="Maybe I would have anyway," start="00:24:01.360" video="mainVideo-health" id="subtitle"]] +[[!template text="but looking at the whole months of data," start="00:24:02.760" video="mainVideo-health" id="subtitle"]] +[[!template text="there have been many things to discuss" start="00:24:05.240" video="mainVideo-health" id="subtitle"]] +[[!template text="and many things to think about." start="00:24:07.400" video="mainVideo-health" id="subtitle"]] +[[!template new="1" text="Because this is a short presentation," start="00:24:09.920" video="mainVideo-health" id="subtitle"]] +[[!template text="I probably should wrap up." start="00:24:12.160" video="mainVideo-health" id="subtitle"]] +[[!template text="I just want to thank the whole Emacs community" start="00:24:13.840" video="mainVideo-health" id="subtitle"]] +[[!template text="for being there and for including me in the conference" start="00:24:18.240" video="mainVideo-health" id="subtitle"]] +[[!template text="and I hope to participate next year as well." start="00:24:23.320" video="mainVideo-health" id="subtitle"]] +[[!template text="Thank you so much." start="00:24:27.080" video="mainVideo-health" id="subtitle"]] + + Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20health%3A%20Health%20data%20journaling%20and%20visualization%20with%20Org%20Mode%20and%20gnuplot) diff --git a/2022/info/health-before.md b/2022/info/health-before.md index d9175835..64edbc86 100644 --- a/2022/info/health-before.md +++ b/2022/info/health-before.md @@ -3,16 +3,44 @@ In this talk, David O'Toole shares how he tracked and graphed his personal data The following image shows where the talk is in the schedule for Sat 2022-12-03. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="health"> -<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect stroke-width="3" x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(601,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 3:50- 3:55 Short hyperlinks to Python docs</title> <rect x="643" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(648,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg> +<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and gnuplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and gnuplot</title> <rect stroke-width="3" x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(601,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.5" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: a smooth-as-butter asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: a smooth-as-butter asynchronous LSP client</title> <rect x="133" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.5" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg> </div> [[!toc ]] Format: 25-min talk followed by live Q&A (<https://emacsconf.org/current/health/room>) Etherpad: <https://pad.emacsconf.org/2022-health> Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen) -Status: Talk captioned +Status: Now playing on the conference livestream <div>Times in different timezones:</div><div class="times" start="2022-12-03T20:00:00Z" end="2022-12-03T20:25:00Z"><div class="conf-time">Saturday, Dec 3 2022, ~3:00 PM - 3:25 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 3 2022, ~2:00 PM - 2:25 PM CST (US/Central)<br />Saturday, Dec 3 2022, ~1:00 PM - 1:25 PM MST (US/Mountain)<br />Saturday, Dec 3 2022, ~12:00 PM - 12:25 PM PST (US/Pacific)<br />Saturday, Dec 3 2022, ~8:00 PM - 8:25 PM UTC <br />Saturday, Dec 3 2022, ~9:00 PM - 9:25 PM CET (Europe/Paris)<br />Saturday, Dec 3 2022, ~10:00 PM - 10:25 PM EET (Europe/Athens)<br />Sunday, Dec 4 2022, ~1:30 AM - 1:55 AM IST (Asia/Kolkata)<br />Sunday, Dec 4 2022, ~4:00 AM - 4:25 AM +08 (Asia/Singapore)<br />Sunday, Dec 4 2022, ~5:00 AM - 5:25 AM JST (Asia/Tokyo)</div></div><div><a href="/2022/watch/gen/">Find out how to watch and participate</a></div> +[[!template id="vid" vidid="health-mainVideo" src="https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.webm" poster="https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.png" captions="""<track label="English" kind="captions" srclang="en" src="/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt" default />""" +size="100M" duration="24:29" other_resources="""[Download --main.webm (95MB)](https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.webm) +[Download --main.vtt](https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt) +[Download --main--chapters.vtt](https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main--chapters.vtt) +[View transcript](https://emacsconf.org/2022/talks/health#health-mainVideo-transcript) +[View on Toobnix](https://toobnix.org/w/j4M57ijUYE4DMVwT9X3CYB) +"""]] +[[!template id="chapters" vidid="health-mainVideo" data=""" +00:00:00.000 Introduction +00:33.640 How to take daily health journal items +01:59.440 How to set up your org templates +03:38.320 How to do it in GNU Emacs +04:16.840 Overview of the presentation +04:51.960 The journal +05:52.800 The capture buffer +06:51.320 The columnview table +08:03.480 Gnuplot +09:03.320 Output parameters +10:15.480 Time series data +13:05.920 Health variables +14:22.680 Goal lines +15:12.000 The Gnuplot command +17:35.560 The template generator +19:11.480 The code that creates a template +21:41.000 The power of the chart +24:09.920 Thanks + +"""]] # Description |