summaryrefslogtreecommitdiffstats
path: root/2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary...
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2025-12-18 20:22:40 -0500
committerSacha Chua <sacha@sachachua.com>2025-12-18 20:22:40 -0500
commite9ff894e5be4c25d20a6c9df8b9b399280418293 (patch)
tree2f2f56b6a8a753945bdbbed2064f570c7da99bd3 /2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt
parenteec65463925fc48780f115e32e14f5cceebfeeee (diff)
downloademacsconf-wiki-e9ff894e5be4c25d20a6c9df8b9b399280418293.tar.xz
emacsconf-wiki-e9ff894e5be4c25d20a6c9df8b9b399280418293.zip
updatesHEADmaster
Diffstat (limited to '')
-rw-r--r--2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt1672
1 files changed, 1672 insertions, 0 deletions
diff --git a/2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt b/2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt
new file mode 100644
index 00000000..6d1efa38
--- /dev/null
+++ b/2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt
@@ -0,0 +1,1672 @@
+WEBVTT
+
+00:00.000 --> 00:05.819
+And you're ready to go. All right, perfect.
+
+00:05.820 --> 00:07.875
+Hello, my name is Zachary Romero
+
+00:07.876 --> 00:08.879
+and today I'll be giving a talk
+
+00:08.880 --> 00:12.719
+on how I'm using Emacs for Android
+
+00:12.720 --> 00:15.399
+to replace my fitness app I normally use.
+
+00:15.400 --> 00:17.239
+So it goes without saying
+
+00:17.240 --> 00:21.559
+that a lot of the mobile ecosystem these days
+
+00:21.560 --> 00:25.439
+are pretty hostile to the interest of its users.
+
+00:25.440 --> 00:26.999
+So there's privacy policies
+
+00:27.000 --> 00:32.959
+that are constantly collecting your data and selling it.
+
+00:32.960 --> 00:36.399
+without your consent, bombardment of ads.
+
+00:36.400 --> 00:37.999
+And then there's a lot of features that are locked.
+
+00:38.000 --> 00:40.479
+Sometimes features that the app gives you,
+
+00:40.480 --> 00:42.959
+they're put behind paywalls.
+
+00:42.960 --> 00:45.159
+And so a lot of the ecosystem
+
+00:45.160 --> 00:49.119
+isn't in the best interest of users.
+
+00:49.120 --> 00:51.959
+And obviously there are apps like on F-Droid
+
+00:51.960 --> 00:56.799
+and the Android ecosystem that do try to address this,
+
+00:56.800 --> 00:59.159
+but the solutions overall are lagging
+
+00:59.160 --> 01:05.439
+behind maybe desktop computers.
+
+01:05.440 --> 01:14.479
+One option that has come in the past few years
+
+01:14.480 --> 01:17.239
+is Emacs on Android. It's just a normal Emacs build,
+
+01:17.240 --> 01:21.159
+and so it can do everything, in theory, that Emacs can do.
+
+01:21.160 --> 01:24.399
+And so I got to thinking how could I, how I could use Emacs
+
+01:24.400 --> 01:27.039
+to replace some of the proprietary apps
+
+01:27.040 --> 01:28.479
+that I use on a daily basis.
+
+01:28.480 --> 01:31.279
+So I just went thinking about the apps,
+
+01:31.280 --> 01:33.039
+the apps that Emacs can replace.
+
+01:33.040 --> 01:35.119
+Some of them seem quite easy.
+
+01:35.120 --> 01:39.879
+Some of them... maybe might take a little effort but seem doable
+
+01:39.880 --> 01:41.959
+and then obviously there's a whole class of apps
+
+01:41.960 --> 01:47.199
+that would be pretty impossible to emulate on Emacs.
+
+01:47.200 --> 01:52.679
+So I mean besides like to-do lists, note taking, org mode,
+
+01:52.680 --> 01:55.759
+one thing that came to mind was my fitness tracking app.
+
+01:55.760 --> 01:59.239
+This is an app I use pretty often
+
+01:59.240 --> 02:06.719
+and in theory Emacs should be quite usable for this case.
+
+02:06.720 --> 02:09.759
+So weightlifting tracking is,
+
+02:09.760 --> 02:13.599
+so it's normally used to record
+
+02:13.600 --> 02:17.519
+what exercises you do at what intensity
+
+02:17.520 --> 02:20.719
+in order to progress week by week.
+
+02:20.720 --> 02:25.719
+So you might plan on like slowly increasing
+
+02:25.720 --> 02:27.399
+the amount of effort you put into
+
+02:27.400 --> 02:30.159
+your various workouts from week to week,
+
+02:30.160 --> 02:34.079
+and then maybe you'll have put some rest weeks in there.
+
+02:34.080 --> 02:37.439
+And so you want a detailed plan
+
+02:37.440 --> 02:40.439
+and recording of what you do throughout the week.
+
+02:40.440 --> 02:43.919
+And so I guess way back, normally
+
+02:43.920 --> 02:45.919
+this would have been done on pen and paper.
+
+02:45.920 --> 02:48.079
+So you would take your notebook
+
+02:48.080 --> 02:50.999
+and just write down on paper what you did.
+
+02:51.000 --> 02:56.559
+And this obviously works, and a lot of people do do this.
+
+02:56.560 --> 02:59.799
+But these days, there are quite a few apps
+
+02:59.800 --> 03:02.639
+that make this process quite seamless and effortless.
+
+03:02.640 --> 03:06.279
+So just as an example, really fast.
+
+03:06.280 --> 03:09.039
+So this is one of the popular apps out these days
+
+03:09.040 --> 03:10.399
+that has such a feature.
+
+03:10.400 --> 03:13.479
+So you can save all your workout routines
+
+03:13.480 --> 03:14.319
+and this nice interface.
+
+03:14.320 --> 03:18.719
+And so you click a button and then it starts,
+
+03:18.720 --> 03:20.919
+you have the workout interface and then
+
+03:20.920 --> 03:23.439
+You can kind of, you go through your workout
+
+03:23.440 --> 03:25.079
+and then you can input,
+
+03:25.080 --> 03:27.399
+you can input like what things you do.
+
+03:27.400 --> 03:29.119
+And then it has this like fancy timer at the bottom.
+
+03:29.120 --> 03:30.959
+So like, this is kind of like the,
+
+03:30.960 --> 03:35.839
+kind of like what a lot of people use these days,
+
+03:35.840 --> 03:39.319
+just for, just for, to make it as frictionless as possible.
+
+03:39.320 --> 03:44.359
+So obviously you can do like this bare bone text editing in Emacs.
+
+03:44.360 --> 03:46.959
+You just have to open up an org mode file and just right away.
+
+03:46.960 --> 03:48.879
+So, but there are a number of problems with this.
+
+03:48.880 --> 03:50.559
+So like, especially on mobile,
+
+03:50.560 --> 03:52.719
+character by character editing,
+
+03:52.720 --> 03:55.879
+just like writing all these, this text out manually,
+
+03:55.880 --> 03:58.759
+maybe some formatting, it can be pretty tedious
+
+03:58.760 --> 04:01.839
+and not, maybe not something you want to, you want to have to do,
+
+04:01.840 --> 04:04.559
+especially if you're like exhausted or tired.
+
+04:04.560 --> 04:06.479
+So, I mean, there's also like the problem
+
+04:06.480 --> 04:09.439
+of like remembering which, where in your workout you are,
+
+04:09.440 --> 04:11.839
+like how many of these, these, like which,
+
+04:11.840 --> 04:13.479
+which, like where are you, where you are,
+
+04:13.480 --> 04:17.159
+like, um like which set number set number are you on
+
+04:17.160 --> 04:17.679
+are you on the first second
+
+04:17.680 --> 04:19.919
+and then also like maybe you failed
+
+04:19.920 --> 04:22.239
+maybe you weren't able to like perform this
+
+04:22.240 --> 04:24.279
+and maybe you have to make a note that so like
+
+04:24.280 --> 04:28.279
+so that's even more text editing you would have to do
+
+04:28.280 --> 04:30.959
+um also some things like unit conversions
+
+04:30.960 --> 04:31.799
+like you could use calc
+
+04:31.800 --> 04:35.879
+but then you know you'd have to like open up the calc,
+
+04:35.880 --> 04:39.799
+and then number, unit conversion, switch buffers.
+
+04:39.800 --> 04:41.999
+So it's doable, but it takes a little effort.
+
+04:42.000 --> 04:43.439
+And then also the rest timer.
+
+04:43.440 --> 04:45.399
+So if you want to make sure you're resting
+
+04:45.400 --> 04:46.999
+in between these exercises you do,
+
+04:47.000 --> 04:51.079
+you'd have to maybe open up another app,
+
+04:51.080 --> 04:52.439
+or maybe you'd have to bring your watch.
+
+04:52.440 --> 04:53.719
+So that's another thing that
+
+04:53.720 --> 04:58.399
+these apps normally would do for you.
+
+04:58.400 --> 05:02.559
+So writing some Elisp, I created a package
+
+05:02.560 --> 05:04.479
+to try to emulate that experience
+
+05:04.480 --> 05:06.079
+I showed you on that other app.
+
+05:06.080 --> 05:08.159
+So let me just demo this real fast.
+
+05:08.160 --> 05:13.679
+So here, the package is called org-fit.
+
+05:13.680 --> 05:17.359
+And so here, I'm going to start a new workout.
+
+05:17.360 --> 05:19.559
+And then here, I'm prompted by a list of routines
+
+05:19.560 --> 05:22.159
+that I have pre-written in org mode.
+
+05:22.160 --> 05:25.759
+So the header name is the routine name.
+
+05:25.760 --> 05:29.279
+And so I can, out of all these routines I've written,
+
+05:29.280 --> 05:35.959
+I can select one and then also I can have it populate.
+
+05:35.960 --> 05:41.519
+So here it's populating preset weights I had for it.
+
+05:41.520 --> 05:45.839
+So yeah, so basically this is my current attempt
+
+05:45.840 --> 05:47.599
+to emulate that experience.
+
+05:47.600 --> 05:51.039
+So here we can, so here like the arrows and the tabs,
+
+05:51.040 --> 05:55.239
+they only go through like the, editable fields I can so
+
+05:55.240 --> 05:58.119
+on the notes section you see you see here in the table
+
+05:58.120 --> 06:00.439
+this is like the my plan for the day
+
+06:00.440 --> 06:02.159
+so I can press space to easily
+
+06:02.160 --> 06:03.839
+just fill out the data tab
+
+06:03.840 --> 06:06.879
+go the next the next the next set
+
+06:06.880 --> 06:10.239
+I can press quote to copy from above
+
+06:10.240 --> 06:13.359
+There's also some interesting things with Android,
+
+06:13.360 --> 06:15.719
+like you can bind the volume down key.
+
+06:15.720 --> 06:17.319
+So here I have the volume down key
+
+06:17.320 --> 06:21.439
+just like inputting the data automatically
+
+06:21.440 --> 06:22.399
+and going to the next field.
+
+06:22.400 --> 06:26.639
+So you see there it's quite seamless input of information.
+
+06:26.640 --> 06:30.119
+Notice also when all the sets
+
+06:30.120 --> 06:31.839
+of a single exercise are done,
+
+06:31.840 --> 06:34.759
+it marks that heading as done.
+
+06:34.760 --> 06:37.959
+Also, if you notice at the top, on the left,
+
+06:37.960 --> 06:42.239
+you have the session time for the workout.
+
+06:42.240 --> 06:44.199
+And then on here, we have the rest timer.
+
+06:44.200 --> 06:48.519
+So the rest timer is actually just defined as an org mode property.
+
+06:48.520 --> 06:50.839
+So here it's saying that, okay,
+
+06:50.840 --> 06:52.759
+you should start the auto rest timer
+
+06:52.760 --> 06:54.479
+for three minutes every time you do a set.
+
+06:54.480 --> 06:58.279
+So here, let's fill it in, go to the next one.
+
+06:58.280 --> 07:00.639
+And now the rest timer is set for three minutes.
+
+07:00.640 --> 07:03.079
+And so here I have, I can just rest
+
+07:03.080 --> 07:05.879
+I just have the information right here.
+
+07:05.880 --> 07:08.119
+Also, you'll notice here we have
+
+07:08.120 --> 07:09.439
+some calculations at the bottom.
+
+07:09.440 --> 07:12.159
+This is something also that those apps provide,
+
+07:12.160 --> 07:14.319
+like in order to make sure you're tracking
+
+07:14.320 --> 07:16.719
+on certain levels of intensity.
+
+07:16.720 --> 07:22.599
+Let's see, what else do we have?
+
+07:22.600 --> 07:30.879
+We can add warmups, automatic warmup set inserting, unit conversions,
+
+07:30.880 --> 07:33.439
+and then Something else to know
+
+07:33.440 --> 07:35.439
+is that all of these actions I'm doing,
+
+07:35.440 --> 07:37.079
+they're all bound to a single key
+
+07:37.080 --> 07:40.159
+to make things as effortless as possible.
+
+07:40.160 --> 07:43.679
+So yeah, that's the app in a nutshell.
+
+07:43.680 --> 07:47.079
+And then, so how is this done?
+
+07:47.080 --> 07:51.239
+So the philosophy behind this is to use org mode as a base.
+
+07:51.240 --> 07:55.639
+So all the functionality, the timer for the session,
+
+07:55.640 --> 08:00.319
+that's just clock in or clock in.
+
+08:00.320 --> 08:05.159
+The various, all the data you fill in,
+
+08:05.160 --> 08:09.519
+the exercises, routines, those are just org headings,
+
+08:09.520 --> 08:12.159
+like with nested entries.
+
+08:12.160 --> 08:14.959
+So yeah, and then all the movement,
+
+08:14.960 --> 08:16.759
+like a lot of the editing stuff
+
+08:16.760 --> 08:18.559
+is just going off of the org mode API.
+
+08:18.560 --> 08:22.919
+So like here, my upper field, is actually just using the,
+
+08:22.920 --> 08:26.239
+so it's using like the org table go to line function.
+
+08:26.240 --> 08:28.999
+Adding a no is org table put.
+
+08:29.000 --> 08:31.319
+So like all of my functions I'm using,
+
+08:31.320 --> 08:33.239
+they're just building off of the org mode API.
+
+08:33.240 --> 08:38.199
+And I found that this pattern worked work pretty well.
+
+08:38.200 --> 08:41.959
+So you get the benefits of org mode
+
+08:41.960 --> 08:48.839
+and then the ease of using it on mobile.
+
+08:48.840 --> 08:51.919
+And so I guess in the last few minutes of this talk,
+
+08:51.920 --> 08:53.479
+I'll just go over some quick things
+
+08:53.480 --> 08:56.319
+about working with Android that might come up.
+
+08:56.320 --> 08:58.879
+So the first thing is notifications.
+
+08:58.880 --> 09:01.039
+This is actually an interesting feature.
+
+09:01.040 --> 09:03.679
+So In the Android build for Emacs,
+
+09:03.680 --> 09:05.799
+you have the function android notifications notify.
+
+09:05.800 --> 09:09.039
+And so here, this is how you can send a notification.
+
+09:09.040 --> 09:11.999
+So my rest timer, for example, utilizes this function
+
+09:12.000 --> 09:14.399
+to let you know when your rest is over.
+
+09:14.400 --> 09:22.439
+And the cool thing about this is that the build for Emacs
+
+09:22.440 --> 09:29.039
+lets you, so here in the app settings, under notifications,
+
+09:29.040 --> 09:33.039
+so here you can actually pick a notification group,
+
+09:33.040 --> 09:36.639
+which is here set, which is, yeah, so it's set right here
+
+09:36.640 --> 09:37.999
+and you can just customize it.
+
+09:38.000 --> 09:39.599
+So like what sound do you want it to make?
+
+09:39.600 --> 09:40.439
+Do you want it to vibrate?
+
+09:40.440 --> 09:41.679
+Do you want to show on the screen?
+
+09:41.680 --> 09:43.519
+And so this way, like you can easily,
+
+09:43.520 --> 09:46.839
+so if you are resting, you will get a notification.
+
+09:46.840 --> 09:47.879
+It will vibrate.
+
+09:47.880 --> 09:50.079
+it might make a really loud noise if you want it to.
+
+09:50.080 --> 09:51.919
+And so this is all customizable.
+
+09:51.920 --> 09:54.479
+And the cool thing is that if you have other packages
+
+09:54.480 --> 09:55.639
+that utilize these notifications,
+
+09:55.640 --> 09:57.479
+all of the notification groups,
+
+09:57.480 --> 10:01.079
+they're all customizable separately. So, and there we go.
+
+10:01.080 --> 10:02.359
+So that notification you see on the top
+
+10:02.360 --> 10:04.999
+is actually from the Emacs app.
+
+10:05.000 --> 10:07.399
+So you notice here, we're not even running Emacs
+
+10:07.400 --> 10:09.759
+and yet we got that rest timer is over.
+
+10:09.760 --> 10:13.559
+So that's one thing. Next, keyboard.
+
+10:13.560 --> 10:15.039
+So just when working with Emacs,
+
+10:15.040 --> 10:19.079
+I found using the unexpected keyboard, in particular,
+
+10:19.080 --> 10:22.519
+to be really helpful with all the keybinding.
+
+10:22.520 --> 10:25.879
+So if you just want to try out Emacs
+
+10:25.880 --> 10:27.719
+from F-Droid or something,
+
+10:27.720 --> 10:30.239
+I would recommend using a keyboard like this
+
+10:30.240 --> 10:33.999
+to let you use the meta keys and the control keys.
+
+10:34.000 --> 10:37.039
+And then yeah, using this keyboard,
+
+10:37.040 --> 10:39.159
+I haven't really noticed any problems
+
+10:39.160 --> 10:41.679
+with Emacs key bindings.
+
+10:41.680 --> 10:45.159
+And then lastly, just like my setup.
+
+10:45.160 --> 10:49.679
+So SyncThinkFork is another app I rely on heavily.
+
+10:49.680 --> 10:54.399
+So as I mentioned, all the, this is org-fit files,
+
+10:54.400 --> 10:55.719
+they're all org-mode files.
+
+10:55.720 --> 10:57.439
+So I use SyncThinkFork to synchronize them
+
+10:57.440 --> 10:59.879
+between my laptop and my Android.
+
+10:59.880 --> 11:04.479
+And then also like to get this package,
+
+11:04.480 --> 11:06.559
+just syncing a list folder might be helpful
+
+11:06.560 --> 11:09.999
+if you want to easily edit your init file
+
+11:10.000 --> 11:12.319
+on Android on your machine.
+
+11:12.320 --> 11:15.639
+So yeah, SyncThinkPort is another helpful thing
+
+11:15.640 --> 11:17.959
+that you might wanna look into
+
+11:17.960 --> 11:22.919
+if you're exploring Android, the Emacs build of Android.
+
+11:22.920 --> 11:26.239
+So yeah, Emacs on Android does actually have the potential
+
+11:26.240 --> 11:30.959
+to replace a decent number of common use cases.
+
+11:30.960 --> 11:35.759
+And org mode can be a solid foundation
+
+11:35.760 --> 11:39.959
+for any of these applications that you're thinking of.
+
+11:39.960 --> 11:45.639
+And yeah, I highly recommend giving giving Emacs on Android a shot.
+
+11:45.640 --> 11:49.719
+And that concludes this presentation.
+
+11:49.720 --> 11:56.439
+Thank you so much, Zachary. That was an awesome talk,
+
+11:56.440 --> 11:59.599
+and I appreciate your preparing it for us.
+
+11:59.600 --> 12:03.399
+A couple questions on the pad, if anybody wants to jump in
+
+12:03.400 --> 12:05.119
+and throw in your questions or comments.
+
+12:05.120 --> 12:08.599
+Of course, happy to read them out on screen here.
+
+12:08.600 --> 12:12.039
+I think when we were talking backstage before,
+
+12:12.040 --> 12:14.239
+you had asked me to kind of read them out,
+
+12:14.240 --> 12:17.199
+but feel free to jump in and kind of
+
+12:17.200 --> 12:18.999
+take over at any point.
+
+12:19.000 --> 12:25.279
+This is the You Show. I'm kind of...
+
+12:25.280 --> 12:30.199
+So the first question we had was a comment.
+
+12:30.200 --> 12:31.439
+This is very cool.
+
+12:31.440 --> 12:33.519
+It would be nice to build up some
+
+12:33.520 --> 12:38.439
+org rep max calculation formula into calc.
+
+12:38.440 --> 12:42.119
+Is that something that you've thought about?
+
+12:42.120 --> 12:47.159
+Um, well, I mean, um, one rep max. Yeah.
+
+12:47.160 --> 12:48.799
+I mean, not in honesty,
+
+12:48.800 --> 12:52.359
+I'm not sure about the, like the, like, uh,
+
+12:52.360 --> 12:53.839
+extending calc itself.
+
+12:53.840 --> 12:56.799
+Like if there's, you know, if like,
+
+12:56.800 --> 12:59.199
+what are the ways of extending calc itself,
+
+12:59.200 --> 13:01.999
+but this, this package, um, or fit,
+
+13:02.000 --> 13:04.159
+I mean, it does have the one rep max.
+
+13:04.160 --> 13:11.199
+Like I kind of had to dig into that, like, um, uh,
+
+13:11.200 --> 13:20.079
+I can find the code, but yeah, I mean, it does,
+
+13:20.080 --> 13:25.079
+I mean, you know, so this is specifically this package,
+
+13:25.080 --> 13:33.039
+but yeah, you can use the various one rep max formulas for this.
+
+13:33.040 --> 13:37.159
+Extend this clock report. Yes, yeah, exactly.
+
+13:37.160 --> 13:39.199
+Graphical reports. These are all something that,
+
+13:39.200 --> 13:43.439
+It currently doesn't have, and these nice apps do have.
+
+13:43.440 --> 13:45.399
+They have charts of all kinds.
+
+13:45.400 --> 13:48.799
+You can see your progress from week to week
+
+13:48.800 --> 13:49.959
+on various exercise.
+
+13:49.960 --> 13:54.359
+They have like charts galore, all these like fancy apps.
+
+13:54.360 --> 14:00.319
+And in theory, it wouldn't be hard at all to like,
+
+14:00.320 --> 14:03.719
+cause like, you know, there's a GNU plot.
+
+14:03.720 --> 14:07.119
+There's those, and then they have like
+
+14:07.120 --> 14:10.479
+very good packages on any of them.
+
+14:10.480 --> 14:13.919
+So, I mean, I assume integration would be pretty seamless.
+
+14:13.920 --> 14:16.199
+So yes, that is definitely on the list
+
+14:16.200 --> 14:17.759
+of things I want to do.
+
+14:17.760 --> 14:21.599
+Have you ever wanted to modify
+
+14:21.600 --> 14:23.679
+the functionality of your mobile device
+
+14:23.680 --> 14:26.119
+while working out any good
+
+14:26.120 --> 14:28.439
+or challenging experiences or tips with that?
+
+14:28.440 --> 14:30.759
+Yeah, that's actually funny.
+
+14:30.760 --> 14:37.439
+There was a time where, yeah, I mean, like debugging,
+
+14:37.440 --> 14:40.999
+there was like some bug I was having with my code.
+
+14:41.000 --> 14:44.799
+And so I have, in the middle of a workout,
+
+14:44.800 --> 14:48.439
+yeah, start, like, open up the debugger and kind of,
+
+14:48.440 --> 14:50.959
+and the cool thing is that, I mean,
+
+14:50.960 --> 14:53.079
+the biggest thing, like, the biggest thing by far
+
+14:53.080 --> 14:54.599
+is unexpected keyboard.
+
+14:54.600 --> 14:56.359
+Like, I can't state how,
+
+14:56.360 --> 14:58.439
+I don't know how much unexpected keyboard is,
+
+14:58.440 --> 15:01.279
+because, like, with unexpected, with the unexpected,
+
+15:01.280 --> 15:03.599
+with that keyboard, you can literally just, like,
+
+15:03.600 --> 15:06.159
+it's, it's not hard at all to, like,
+
+15:06.160 --> 15:11.159
+you can do meta x or uh control meta x
+
+15:11.160 --> 15:13.639
+or you know control u control meta x
+
+15:13.640 --> 15:15.959
+to like you know debug like you can do all the key bindings
+
+15:15.960 --> 15:18.519
+with unexpected keyboard there's so there's no problem
+
+15:18.520 --> 15:20.279
+whatsoever whatsoever
+
+15:20.280 --> 15:23.599
+with that part the only part is muscle memory like like
+
+15:23.600 --> 15:25.599
+it's because you get the muscle memory
+
+15:25.600 --> 15:26.839
+of like the emacs key binding
+
+15:26.840 --> 15:28.279
+and so you have to kind of like yeah
+
+15:28.280 --> 15:31.639
+i mean that translation is actually kind of
+
+15:31.640 --> 15:35.039
+you have to think about it like, like, okay,
+
+15:35.040 --> 15:36.559
+what was that key binding again?
+
+15:36.560 --> 15:39.559
+And you have to kind of like do it with your fingers.
+
+15:39.560 --> 15:41.359
+And it was like doing it on the, on Android is,
+
+15:41.360 --> 15:44.199
+I mean, it takes a little longer
+
+15:44.200 --> 15:45.439
+and it's just a different, yeah,
+
+15:45.440 --> 15:47.079
+different set of different muscle memory.
+
+15:47.080 --> 15:51.559
+Gotcha. Sorry, if you've covered this,
+
+15:51.560 --> 15:55.439
+does the rest timer end with an audible notification?
+
+15:55.440 --> 15:58.199
+That's the cool thing.
+
+15:58.200 --> 16:02.519
+So with the Emacs, with the Android notification settings,
+
+16:02.520 --> 16:06.159
+you can, I can show that again in more detail.
+
+16:06.160 --> 16:17.079
+So bonus settings, apps, pick the app, notifications.
+
+16:17.080 --> 16:21.159
+And then here we get that Org Fit Restover.
+
+16:21.160 --> 16:22.919
+And so here you can set, for example,
+
+16:22.920 --> 16:24.879
+whether it's a silent notification.
+
+16:24.880 --> 16:27.959
+And so this won't, this won't make it make noise you can do
+
+16:27.960 --> 16:29.559
+or like make it have a noise
+
+16:29.560 --> 16:31.679
+and so you can have it make sure
+
+16:31.680 --> 16:33.119
+it's pop on this way the screen
+
+16:33.120 --> 16:37.039
+and then yeah you can just pick you can just pick whatever ringtone you want
+
+16:37.040 --> 16:38.679
+and you can make it look like yeah
+
+16:38.680 --> 16:42.559
+and then obviously you have like the whole uh volume setting
+
+16:42.560 --> 16:44.559
+so you can like when you're when you're uh when you're working
+
+16:44.560 --> 16:50.519
+you know you can just set the volume pretty high
+
+16:50.520 --> 16:51.679
+so if you set if you do happen
+
+16:51.680 --> 16:55.719
+to set your phone kind of away You set the volume high,
+
+16:55.720 --> 16:57.239
+maybe make a really annoying sound,
+
+16:57.240 --> 17:00.759
+a loud sound you won't miss. And then, yeah, you'll be set.
+
+17:00.760 --> 17:02.159
+So that works.
+
+17:02.160 --> 17:04.639
+That was actually one of the biggest surprises.
+
+17:04.640 --> 17:08.599
+I wasn't expecting that to work so nice.
+
+17:08.600 --> 17:17.279
+One of the next question relates to the unexpected keyboard.
+
+17:17.280 --> 17:19.399
+Question is, have you tried other keyboards,
+
+17:19.400 --> 17:20.399
+such as Hacker's Keyboard?
+
+17:20.400 --> 17:27.119
+Not recently. I haven't, so I couldn't compare them.
+
+17:27.120 --> 17:31.359
+Fair enough. Another keyboard question.
+
+17:31.360 --> 17:34.399
+Have you tried Flickboard on F-Droid?
+
+17:34.400 --> 17:37.959
+The commenter says, this is the craziest keyboard.
+
+17:37.960 --> 17:44.559
+You use one thumb. Oh, that is interesting. Let me see.
+
+17:44.560 --> 17:48.879
+Flickboard. Flickboard. Yeah, I'll have to try that.
+
+17:48.880 --> 17:53.119
+I'm curious to get the key bindings done.
+
+17:53.120 --> 17:57.359
+I wonder if the key bindings and all that work.
+
+17:57.360 --> 18:01.279
+I hope that's interesting. I'll definitely look into that.
+
+18:01.280 --> 18:02.359
+So I'll hold on just a moment
+
+18:02.360 --> 18:04.239
+as people are typing in more questions.
+
+18:04.240 --> 18:06.759
+A good moment to just thank you for the talk.
+
+18:06.760 --> 18:09.719
+It's personally, it's one of my favorite things
+
+18:09.720 --> 18:14.559
+to see at EmacsConf is, you know, a glimpse into a world
+
+18:14.560 --> 18:17.679
+that kind of isn't mine, right?
+
+18:17.680 --> 18:22.799
+but it shows how, you know, Emacs is sort of
+
+18:22.800 --> 18:25.999
+the bazaar in the cathedral
+
+18:26.000 --> 18:28.439
+and bazaar sense of we're all just here
+
+18:28.440 --> 18:31.839
+sort of hauling our bags of toys
+
+18:31.840 --> 18:35.679
+into the center square and, you know, making a,
+
+18:35.680 --> 18:38.439
+you know, I don't know if it's a house of cards
+
+18:38.440 --> 18:40.319
+or what exactly it is,
+
+18:40.320 --> 18:43.559
+but it, you know, it's managing to keep me afloat personally.
+
+18:43.560 --> 18:47.239
+And I just appreciate your, you know,
+
+18:47.240 --> 18:48.519
+kind of expanding my world.
+
+18:48.520 --> 18:53.759
+It's pretty cool. Yeah, definitely. Yeah, I mean, I agree.
+
+18:53.760 --> 19:01.079
+There's a lot of different, yeah. So, next commenter.
+
+19:01.080 --> 19:05.359
+I'm curious, oh, sorry, I skipped one here.
+
+19:05.360 --> 19:07.399
+This user interface is simplified,
+
+19:07.400 --> 19:09.639
+but still keyboard based.
+
+19:09.640 --> 19:11.959
+Have you thought about ways to make it more touch-based?
+
+19:11.960 --> 19:16.039
+Good question. Yeah, yeah, yeah.
+
+19:16.040 --> 19:19.599
+So the only thing currently, I think,
+
+19:19.600 --> 19:22.119
+of specific touch-based functionality I have,
+
+19:22.120 --> 19:25.399
+which, so this is like, so let's see,
+
+19:25.400 --> 19:37.679
+it's Control X, Control Plus,
+
+19:37.680 --> 19:40.159
+I think that's the, okay, that wrong,
+
+19:40.160 --> 19:42.959
+that key binding wrong, what was it? Okay, whatever.
+
+19:42.960 --> 19:45.559
+Yeah, so in terms of touch command,
+
+19:45.560 --> 19:47.839
+so pressing on a headline will actually unfold it
+
+19:47.840 --> 19:50.799
+and move your cursor to the next field that you,
+
+19:50.800 --> 19:54.639
+yeah, so like, yeah, at the beginning of the table.
+
+19:54.640 --> 19:56.959
+So like, there's that, yeah, and so.
+
+19:56.960 --> 20:02.399
+It sounds like that is something you're thinking about.
+
+20:02.400 --> 20:03.639
+Yeah, exactly.
+
+20:03.640 --> 20:05.999
+Like, you know, maybe like a little thing at the bottom,
+
+20:06.000 --> 20:09.559
+like, so this thing has the, this app has this,
+
+20:09.560 --> 20:10.839
+if you notice, like, if you do something,
+
+20:10.840 --> 20:12.479
+it has this rest timer at the bottom.
+
+20:12.480 --> 20:14.639
+So I mean, it wouldn't be,
+
+20:14.640 --> 20:16.599
+it wouldn't be pretty, it wouldn't be,
+
+20:16.600 --> 20:18.799
+it seems quite doable to just have like,
+
+20:18.800 --> 20:19.839
+maybe something at the bottom,
+
+20:19.840 --> 20:21.319
+like for a timer,
+
+20:21.320 --> 20:24.159
+and then you can just like plus 15 seconds or cancel it
+
+20:24.160 --> 20:25.239
+or, you know, just,
+
+20:25.240 --> 20:27.279
+and then those could all be just like touch based.
+
+20:27.280 --> 20:30.559
+And so, yeah. And then obviously just like,
+
+20:30.560 --> 20:36.119
+just like classic Emacs, the Emacs,
+
+20:36.120 --> 20:43.359
+like clicking actions, they just, yeah,
+
+20:43.360 --> 20:44.159
+they work just fine.
+
+20:44.160 --> 20:47.439
+Like, so there's no like weird Android touch thing
+
+20:47.440 --> 20:48.359
+you have to worry about.
+
+20:48.360 --> 20:52.559
+So let me ask a question of my own here.
+
+20:52.560 --> 20:57.199
+Just thinking about that myself, how would you, you know,
+
+20:57.200 --> 21:00.119
+ideally approach that as that you'd most prefer
+
+21:00.120 --> 21:02.879
+to sort of dive into yourself?
+
+21:02.880 --> 21:07.919
+Or would you think about factoring that out into
+
+21:07.920 --> 21:12.159
+like some kind of org touch higher level API or?
+
+21:12.160 --> 21:19.679
+Oh, I mean, personally, personally, I mean, I mean,
+
+21:19.680 --> 21:21.279
+I think just like the clicking
+
+21:21.280 --> 21:28.279
+and just like adding a lambda to it. That works.
+
+21:28.280 --> 21:35.759
+I mean, that feels like it works just fine.
+
+21:35.760 --> 21:41.639
+And you can add the code, like the command right there.
+
+21:41.640 --> 21:45.439
+So it's all like, yeah, it's all, I mean,
+
+21:45.440 --> 21:49.159
+and that's kind of a nice thing is like having everything like close,
+
+21:49.160 --> 21:54.159
+just like not having those, a lot of layers of abstraction.
+
+21:54.160 --> 22:03.279
+It's just like, you have a Lambda to the click and then just do.
+
+22:03.280 --> 22:06.439
+Yeah, just do. That was my experience too.
+
+22:06.440 --> 22:09.599
+This is a few years several years ago at ENAC's conference,
+
+22:09.600 --> 22:13.079
+we were shocked to learn just how usable,
+
+22:13.080 --> 22:18.559
+this is echoing a comment I see from Elip Energo on IRC,
+
+22:18.560 --> 22:21.479
+who says, touch seems so wildly usable nowadays,
+
+22:21.480 --> 22:22.399
+that's so awesome.
+
+22:22.400 --> 22:25.159
+And that was really my experience too with Dungeon.
+
+22:25.160 --> 22:28.719
+We were just working on it, we got the fog of war going,
+
+22:28.720 --> 22:32.439
+and then just took it onto a touchscreen laptop at the time,
+
+22:32.440 --> 22:33.959
+and we're just shocked to learn,
+
+22:33.960 --> 22:37.479
+you know, everything just worked. Yeah.
+
+22:37.480 --> 22:38.639
+Maybe like the hardest thing
+
+22:38.640 --> 22:40.559
+is actually just the default font size.
+
+22:40.560 --> 22:42.559
+You know, you have to like, you can't,
+
+22:42.560 --> 22:44.279
+you can't have your font too small or you'll,
+
+22:44.280 --> 22:46.319
+you'll like, you'll touch, you'll,
+
+22:46.320 --> 22:48.279
+you'll miss touch things a lot. Yeah.
+
+22:48.280 --> 22:50.159
+Well, there's no font size
+
+22:50.160 --> 22:52.999
+large enough to make me, you know,
+
+22:53.000 --> 22:58.159
+to make me comfortable on a smart device, unfortunately.
+
+22:58.160 --> 23:00.599
+But, but that, I think it may be a me problem.
+
+23:00.600 --> 23:04.439
+I think this question we might've missed. So the file sync.
+
+23:04.440 --> 23:12.679
+Yeah, so the file sync in terms of what's worked for me,
+
+23:12.680 --> 23:14.039
+I did have to play around with this a lot.
+
+23:14.040 --> 23:15.999
+Let me go ahead and read it out.
+
+23:16.000 --> 23:18.519
+You mentioned file sync, what have you found works well for you?
+
+23:18.520 --> 23:21.319
+Sorry. Yeah, yeah, yeah.
+
+23:21.320 --> 23:25.319
+So in terms of what, yeah, I did have to play around with this a lot,
+
+23:25.320 --> 23:28.639
+but sync thing fork is what I eventually settled on.
+
+23:28.640 --> 23:34.959
+I mean, this is another thing that, I mean, I don't,
+
+23:34.960 --> 23:36.319
+it wouldn't nearly be as usable,
+
+23:36.320 --> 23:39.679
+like Emacs wouldn't be nearly usable without it.
+
+23:39.680 --> 23:41.319
+So syncing fork essentially, okay.
+
+23:41.320 --> 23:44.559
+And then I also have like a droplet on DigitalOcean,
+
+23:44.560 --> 23:47.399
+just like, so that's kind of like the whole,
+
+23:47.400 --> 23:49.879
+that's kind of like what bridges it together.
+
+23:49.880 --> 23:52.519
+So like, so my Emacs can sync to that,
+
+23:52.520 --> 23:56.559
+and then my machine also syncs to that.
+
+23:56.560 --> 24:00.719
+And so like, I don't have to have them
+
+24:00.720 --> 24:06.359
+both on the same time. It's just there, that copy.
+
+24:06.360 --> 24:09.599
+And so that works pretty well.
+
+24:09.600 --> 24:13.559
+I also found that editing code in general,
+
+24:13.560 --> 24:15.359
+I think this also goes
+
+24:15.360 --> 24:19.919
+with the development experience question.
+
+24:19.920 --> 24:22.639
+So I'm curious about the development experience.
+
+24:22.640 --> 24:24.639
+Do you do everything on the phone? And that's the thing.
+
+24:24.640 --> 24:27.119
+None of my development in general is done on the phone.
+
+24:27.120 --> 24:32.439
+just because, for one, my muscle memory isn't there,
+
+24:32.440 --> 24:38.399
+and two, just in general, typing on a virtual keyboard on the phone,
+
+24:38.400 --> 24:40.119
+it's just really slow.
+
+24:40.120 --> 24:47.159
+So yeah, all the development is done on my machine,
+
+24:47.160 --> 24:52.119
+but then there's the problem of you have to have an init.l in your Android,
+
+24:52.120 --> 24:55.159
+and so you're going to have to write, you know,
+
+24:55.160 --> 24:56.919
+I found like you'd have to like,
+
+24:56.920 --> 24:58.279
+when you first get Emacs set up,
+
+24:58.280 --> 25:01.239
+you might have to like write some, I don't know,
+
+25:01.240 --> 25:03.959
+like you'll kind of have to like get into your init file
+
+25:03.960 --> 25:04.479
+and then just like,
+
+25:04.480 --> 25:06.999
+maybe just like start to put things together.
+
+25:07.000 --> 25:09.759
+But the cool thing is with SyncThinkFork,
+
+25:09.760 --> 25:15.519
+I'm syncing my, I'm setting it to load off of a sync directory.
+
+25:15.520 --> 25:18.559
+Like this, this init file,
+
+25:18.560 --> 25:21.159
+my Android file is synced with my machine.
+
+25:21.160 --> 25:24.319
+So if I wanted to, I could just edit it on my machine
+
+25:24.320 --> 25:25.879
+and just have that synced automatically.
+
+25:25.880 --> 25:28.839
+So that makes like the whole, like in it,
+
+25:28.840 --> 25:31.879
+cause like it's, it's such a, like, that is one of the,
+
+25:31.880 --> 25:33.079
+it's just like getting,
+
+25:33.080 --> 25:36.879
+sit writing your init L and M in Emacs on Android
+
+25:36.880 --> 25:37.839
+is just kind of a.
+
+25:37.840 --> 25:39.359
+We do have one more question.
+
+25:39.360 --> 25:41.479
+I can't help but throw in a comment there.
+
+25:41.480 --> 25:43.759
+I think that's like.
+
+25:43.760 --> 25:47.519
+That's an extremely good tip, right?
+
+25:47.520 --> 25:49.959
+That if we're, as we're exploring Android,
+
+25:49.960 --> 25:52.839
+we want to think about that as
+
+25:52.840 --> 25:55.759
+adding support for another port of Emacs.
+
+25:55.760 --> 25:58.959
+So the whole dance of, oh, I took, you know,
+
+25:58.960 --> 26:01.239
+I took, you know, I took my init
+
+26:01.240 --> 26:04.479
+and I wanted to use it on BSD
+
+26:04.480 --> 26:06.439
+after mostly using GNU Linux.
+
+26:06.440 --> 26:09.119
+Now we're going in and we're looking at our Emacs.
+
+26:09.120 --> 26:11.279
+all of our Emacs and it stuff
+
+26:11.280 --> 26:13.839
+and thinking about compatibility,
+
+26:13.840 --> 26:15.199
+turning features on and off
+
+26:15.200 --> 26:19.959
+based on the OS that we're running underneath and so on.
+
+26:19.960 --> 26:22.119
+I think that's pretty heads up advice.
+
+26:22.120 --> 26:24.759
+Let me read out this other question.
+
+26:24.760 --> 26:28.199
+Have you thought about integrating cardio tracking
+
+26:28.200 --> 26:30.559
+like time runs, bike rides, and so on?
+
+26:30.560 --> 26:34.319
+Yes, I definitely thought about that.
+
+26:34.320 --> 26:36.599
+And that might be another thing
+
+26:36.600 --> 26:38.479
+where a touch interface might be helpful.
+
+26:38.480 --> 26:41.559
+I don't know if I can easily pull it up,
+
+26:41.560 --> 26:47.199
+but the app itself, oh yeah, here it is.
+
+26:47.200 --> 26:50.199
+So you can see kind of how they have,
+
+26:50.200 --> 26:53.279
+and you can kind of see how this fits.
+
+26:53.280 --> 26:55.119
+This is like an org, you can see
+
+26:55.120 --> 26:57.399
+that these are just tables, right?
+
+26:57.400 --> 26:59.239
+This is just like this whole interface in general,
+
+26:59.240 --> 27:02.279
+just like kind of screams like an org mode,
+
+27:02.280 --> 27:05.119
+file with you have you have your different headings
+
+27:05.120 --> 27:06.559
+like here's a warm-up heading
+
+27:06.560 --> 27:07.839
+and then you have the tables
+
+27:07.840 --> 27:09.879
+and you know you could just like envision
+
+27:09.880 --> 27:12.839
+how you could have a org table
+
+27:12.840 --> 27:15.039
+with one of the columns called time
+
+27:15.040 --> 27:18.439
+and then you could just imagine like there'd be a button there
+
+27:18.440 --> 27:21.159
+and you can just just have it click,
+
+27:21.160 --> 27:24.279
+and then you'd have a timer in the background
+
+27:24.280 --> 27:25.799
+that would update this timer.
+
+27:25.800 --> 27:32.599
+It's so, I mean, conceptually, there's nothing really,
+
+27:32.600 --> 27:35.799
+it conceptually maps really well to this.
+
+27:35.800 --> 27:41.559
+So yeah, I mean, that's definitely something.
+
+27:41.560 --> 27:44.439
+That's awesome. Great answer.
+
+27:44.440 --> 27:47.759
+So I think we're just at about 90 seconds left.
+
+27:47.760 --> 27:50.119
+Perfect amount of time, I think, to just wrap up.
+
+27:50.120 --> 27:52.199
+Closing thoughts. I'll share mine first.
+
+27:52.200 --> 27:53.759
+Really appreciate you, Zach.
+
+27:53.760 --> 27:56.639
+Thank you for putting this talk together.
+
+27:56.640 --> 27:59.359
+I think this is the type of talk
+
+27:59.360 --> 28:01.239
+that's really going to tie the room together
+
+28:01.240 --> 28:07.559
+for people that may be, you know, not sure how they can take
+
+28:07.560 --> 28:12.719
+although they've been interested in that,
+
+28:12.720 --> 28:16.399
+this can be a really good way to kind of open up the world.
+
+28:16.400 --> 28:20.319
+Thank you. Thank you for putting it together.
+
+28:20.320 --> 28:22.439
+Yeah, yeah, yeah, yeah, I would just say
+
+28:22.440 --> 28:24.159
+like definitely just try things out.
+
+28:24.160 --> 28:25.359
+Like if you think, you know,
+
+28:25.360 --> 28:26.439
+they're just like random ideas,
+
+28:26.440 --> 28:30.319
+like a book tracking app or like a recipe app,
+
+28:30.320 --> 28:33.479
+like, you know, there's a lot of things
+
+28:33.480 --> 28:35.599
+that you do on your mobile device
+
+28:35.600 --> 28:37.719
+that aren't like banking apps that you could easily,
+
+28:37.720 --> 28:39.759
+that seem like they could be done in Emacs.
+
+28:39.760 --> 28:42.479
+So yeah, just try different things out
+
+28:42.480 --> 28:47.239
+and I would love to hear what other people do. Bravo.
+
+28:47.240 --> 28:52.519
+I appreciate it once again, you're coming together
+
+28:52.520 --> 28:56.639
+and especially you're doing it live.
+
+28:56.640 --> 29:00.079
+I know that as a conference, we have a lot of preference
+
+29:00.080 --> 29:01.479
+for those recorded talks
+
+29:01.480 --> 29:02.759
+and getting the captioning together,
+
+29:02.760 --> 29:05.319
+but I just have a special place in my heart
+
+29:05.320 --> 29:07.679
+for the energy that comes with a live talk
+
+29:07.680 --> 29:12.560
+and I appreciate you doing it. Thanks for putting this on.