summaryrefslogtreecommitdiffstats
path: root/2022
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-12-21 12:49:28 -0500
committerSacha Chua <sacha@sachachua.com>2022-12-21 12:49:28 -0500
commit7340684e5d5a34214a10f2ccb18fc7452d9158a2 (patch)
treec25c957f5b4a09db28f74bdf7ee461208b736800 /2022
parent239ffb06b7c80f571b28fa90f53e769f114609a9 (diff)
downloademacsconf-wiki-7340684e5d5a34214a10f2ccb18fc7452d9158a2.tar.xz
emacsconf-wiki-7340684e5d5a34214a10f2ccb18fc7452d9158a2.zip
Automated commit
Diffstat (limited to '2022')
-rw-r--r--2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt4
-rw-r--r--2022/info/health-after.md38
-rw-r--r--2022/info/health-before.md14
3 files changed, 35 insertions, 21 deletions
diff --git a/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt b/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt
index d785b36e..9cfd3030 100644
--- a/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt
+++ b/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.vtt
@@ -949,10 +949,10 @@ all of the details of the code,
but what I am going to show you is that
00:18:06.160 --> 00:18:10.679
-there's a variable called `health-factors'.
+there's a variable called `health-factors`.
00:18:10.680 --> 00:18:15.839
-And what this does, this `health-factors-from-list'
+And what this does, this `health-factors-from-list`
00:18:15.840 --> 00:18:20.919
lets you specify, with a property list
diff --git a/2022/info/health-after.md b/2022/info/health-after.md
index 583a3f22..ec02951c 100644
--- a/2022/info/health-after.md
+++ b/2022/info/health-after.md
@@ -6,8 +6,8 @@
[[!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="""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"]]
@@ -98,11 +98,11 @@
[[!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="""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="""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"]]
@@ -133,7 +133,7 @@
[[!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 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"]]
@@ -145,9 +145,9 @@
[[!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="""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="""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"]]
@@ -156,7 +156,7 @@
[[!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="""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"]]
@@ -224,7 +224,7 @@
[[!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="""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"]]
@@ -238,7 +238,7 @@
[[!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="""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"]]
@@ -298,34 +298,34 @@
[[!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="""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="""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="""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="""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="""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"]]
@@ -339,8 +339,8 @@
[[!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="""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"]]
@@ -356,7 +356,7 @@
[[!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 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"]]
diff --git a/2022/info/health-before.md b/2022/info/health-before.md
index 9e88cfea..e2278d8c 100644
--- a/2022/info/health-before.md
+++ b/2022/info/health-before.md
@@ -1,6 +1,20 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
In this talk, David O'Toole shares how he tracked and graphed his personal data using Org mode and Gnuplot, and how you can use a template generator to do the same. Afterwards, he will handle questions over BigBlueButton.
+
+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/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 (done)
+Etherpad: <https://pad.emacsconf.org/2022-health>
+Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
+Status: TO_INDEX_QA
+<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>
+
+
+
# Talk
<div class="vid"><video controls preload="none" id="health-mainVideo"><source src="https://media.emacsconf.org/2022/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main.webm" />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 />"""<track kind="chapters" label="Chapters" src="/2022/captions/emacsconf-2022-health--health-data-journaling-and-visualization-with-org-mode-and-gnuplot--david-otoole--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="health-mainVideo" data="""