diff options
Diffstat (limited to '2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt')
| -rw-r--r-- | 2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt | 289 |
1 files changed, 171 insertions, 118 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 index 6d1efa38..a2bf20a4 100644 --- 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 @@ -1,5 +1,7 @@ WEBVTT +NOTE Introduction + 00:00.000 --> 00:05.819 And you're ready to go. All right, perfect. @@ -15,6 +17,8 @@ on how I'm using Emacs for Android 00:12.720 --> 00:15.399 to replace my fitness app I normally use. +NOTE Current state of mobile ecosystem + 00:15.400 --> 00:17.239 So it goes without saying @@ -27,13 +31,13 @@ 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 +00:27.000 --> 00:00:29.632 that are constantly collecting your data and selling it. -00:32.960 --> 00:36.399 +00:00:29.633 --> 00:00:33.840 without your consent, bombardment of ads. -00:36.400 --> 00:37.999 +00:00:33.841 --> 00:37.999 And then there's a lot of features that are locked. 00:38.000 --> 00:40.479 @@ -60,6 +64,8 @@ but the solutions overall are lagging 00:59.160 --> 01:05.439 behind maybe desktop computers. +NOTE Emacs replaceability + 01:05.440 --> 01:14.479 One option that has come in the past few years @@ -76,7 +82,7 @@ And so I got to thinking how could I, how I could use Emacs to replace some of the proprietary apps 01:27.040 --> 01:28.479 -that I use on a daily basis. +that I use on a daily basis? 01:28.480 --> 01:31.279 So I just went thinking about the apps, @@ -88,16 +94,16 @@ the apps that Emacs can replace. Some of them seem quite easy. 01:35.120 --> 01:39.879 -Some of them... maybe might take a little effort but seem doable +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 +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, +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. @@ -106,7 +112,9 @@ one thing that came to mind was my fitness tracking app. 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. +and in theory, Emacs should be quite usable for this case. + +NOTE Weightlifting tracking 02:06.720 --> 02:09.759 So weightlifting tracking is, @@ -205,7 +213,9 @@ just for, just for, to make it as frictionless as possible. 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. +You just have to open up an Org mode file and just right away... + +NOTE Difficulties 03:46.960 --> 03:48.879 So, but there are a number of problems with this. @@ -241,31 +251,31 @@ like how many of these, these, like which, 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 +like, um like which set number are you on, 04:17.160 --> 04:17.679 -are you on the first second +are you on the first, second, 04:17.680 --> 04:19.919 -and then also like maybe you failed +and then also, like, maybe you failed, 04:19.920 --> 04:22.239 -maybe you weren't able to like perform this +maybe you weren't able to perform this, 04:22.240 --> 04:24.279 -and maybe you have to make a note that so like +and maybe you have to make a note that... 04:24.280 --> 04:28.279 -so that's even more text editing you would have to do +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 +Also some things like unit conversions, 04:30.960 --> 04:31.799 -like you could use calc +like you could use calc, 04:31.800 --> 04:35.879 -but then you know you'd have to like open up the calc, +but then you'd have to open up the calc, 04:35.880 --> 04:39.799 and then number, unit conversion, switch buffers. @@ -294,6 +304,8 @@ So that's another thing that 04:53.720 --> 04:58.399 these apps normally would do for you. +NOTE Demo + 04:58.400 --> 05:02.559 So writing some Elisp, I created a package @@ -316,7 +328,7 @@ And so here, I'm going to start a new workout. 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. +that I have pre-written in Org mode. 05:22.160 --> 05:25.759 So the header name is the routine name. @@ -453,14 +465,16 @@ 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 +07:40.160 --> 00:07:45.459 So yeah, that's the app in a nutshell. -07:43.680 --> 07:47.079 +NOTE Org-mode based + +00:07:45.460 --> 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. +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, @@ -484,16 +498,16 @@ So yeah, and then all the movement, like a lot of the editing stuff 08:16.760 --> 08:18.559 -is just going off of the org mode API. +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. +so it's using like the org-table-goto-line function. 08:26.240 --> 08:28.999 -Adding a no is org table put. +Adding a note is org-table-put. 08:29.000 --> 08:31.319 So like all of my functions I'm using, @@ -505,7 +519,7 @@ they're just building off of the org mode API. And I found that this pattern worked work pretty well. 08:38.200 --> 08:41.959 -So you get the benefits of org mode +So you get the benefits of Org mode 08:41.960 --> 08:48.839 and then the ease of using it on mobile. @@ -519,6 +533,8 @@ I'll just go over some quick things 08:53.480 --> 08:56.319 about working with Android that might come up. +NOTE Notifications (demo) + 08:56.320 --> 08:58.879 So the first thing is notifications. @@ -529,7 +545,7 @@ This is actually an interesting feature. So In the Android build for Emacs, 09:03.680 --> 09:05.799 -you have the function android notifications notify. +you have the function android-notifications-notify. 09:05.800 --> 09:09.039 And so here, this is how you can send a notification. @@ -603,6 +619,8 @@ 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. +NOTE Unexpected Keyboard + 10:09.760 --> 10:13.559 So that's one thing. Next, keyboard. @@ -637,10 +655,12 @@ I haven't really noticed any problems with Emacs key bindings. 10:41.680 --> 10:45.159 -And then lastly, just like my setup. +And then lastly, just like my setup... + +NOTE Syncthing Fork 10:45.160 --> 10:49.679 -So SyncThinkFork is another app I rely on heavily. +So Syncthing Fork is another app I rely on heavily. 10:49.680 --> 10:54.399 So as I mentioned, all the, this is org-fit files, @@ -649,7 +669,7 @@ So as I mentioned, all the, this is org-fit files, they're all org-mode files. 10:55.720 --> 10:57.439 -So I use SyncThinkFork to synchronize them +So I use Syncthing Fork to synchronize them 10:57.440 --> 10:59.879 between my laptop and my Android. @@ -667,7 +687,7 @@ if you want to easily edit your init file on Android on your machine. 11:12.320 --> 11:15.639 -So yeah, SyncThinkPort is another helpful thing +So yeah, Syncthing Fork is another helpful thing 11:15.640 --> 11:17.959 that you might wanna look into @@ -729,6 +749,8 @@ So the first question we had was a comment. 12:30.200 --> 12:31.439 This is very cool. +NOTE Q: Very cool! It would be nice to build some One-rep max calculation formulae into calc + 12:31.440 --> 12:33.519 It would be nice to build up some @@ -745,25 +767,25 @@ Um, well, I mean, um, one rep max. Yeah. I mean, not in honesty, 12:48.800 --> 12:52.359 -I'm not sure about the, like the, like, uh, +I'm not sure about 12:52.360 --> 12:53.839 extending calc itself. 12:53.840 --> 12:56.799 -Like if there's, you know, if like, +Like if there's... 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, +but this package org-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, +I had to dig into that... 13:11.200 --> 13:20.079 I can find the code, but yeah, I mean, it does, @@ -774,6 +796,8 @@ 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. +NOTE Q: Do you have plans to extend this to clock-report kind of reporting? graphical reports, etc? + 13:33.040 --> 13:37.159 Extend this clock report. Yes, yeah, exactly. @@ -793,13 +817,13 @@ You can see your progress from week to week on various exercise. 13:49.960 --> 13:54.359 -They have like charts galore, all these like fancy apps. +They have charts galore, all these 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. +'cause like, you know, there's gnuplot. 14:03.720 --> 14:07.119 There's those, and then they have like @@ -810,12 +834,14 @@ 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 +14:13.920 --> 00:14:17.424 So yes, that is definitely on the list -14:16.200 --> 14:17.759 +00:14:17.425 --> 14:17.759 of things I want to do. +NOTE Q: Have you ever wanted to modify the functionality on your mobile device while working out? Any good or challenging experiences or tips with that? + 14:17.760 --> 14:21.599 Have you ever wanted to modify @@ -856,10 +882,10 @@ is unexpected keyboard. Like, I can't state how, 14:56.360 --> 14:58.439 -I don't know how much unexpected keyboard is, +I don't know how much Unexpected Keyboard is, 14:58.440 --> 15:01.279 -because, like, with unexpected, with the unexpected, +because, like, with Unexpected, with the Unexpected, 15:01.280 --> 15:03.599 with that keyboard, you can literally just, like, @@ -868,34 +894,34 @@ with that keyboard, you can literally just, like, 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 +you can do M-x or C-M-x 15:11.160 --> 15:13.639 -or you know control u control meta x +or you know C-u C-M-x 15:13.640 --> 15:15.959 -to like you know debug like you can do all the key bindings +to 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 +with unexpected keyboard. There's no problem -15:18.520 --> 15:20.279 -whatsoever whatsoever +15:18.520 --> 00:15:20.303 +whatsoever with that part. -15:20.280 --> 15:23.599 -with that part the only part is muscle memory like like +00:15:20.304 --> 00:15:23.599 +The only part is muscle memory. 15:23.600 --> 15:25.599 -it's because you get the muscle memory +It's because you get the muscle memory -15:25.600 --> 15:26.839 -of like the emacs key binding +15:25.600 --> 00:15:27.424 +of the emacs key binding -15:26.840 --> 15:28.279 -and so you have to kind of like yeah +00:15:27.425 --> 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 +I mean that translation is actually kind of 15:31.640 --> 15:35.039 you have to think about it like, like, okay, @@ -921,6 +947,8 @@ different set of different muscle memory. 15:47.080 --> 15:51.559 Gotcha. Sorry, if you've covered this, +NOTE Q: Does the rest timer end with an audible notification at the end of the time? + 15:51.560 --> 15:55.439 does the rest timer end with an audible notification? @@ -937,7 +965,7 @@ you can, I can show that again in more detail. So bonus settings, apps, pick the app, notifications. 16:17.080 --> 16:21.159 -And then here we get that Org Fit Restover. +And then here we get that org-fit-rest-over. 16:21.160 --> 16:22.919 And so here you can set, for example, @@ -946,37 +974,37 @@ And so here you can set, for example, 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 +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 +or like make it have a noise, -16:29.560 --> 16:31.679 +16:29.560 --> 00:16:31.399 and so you can have it make sure -16:31.680 --> 16:33.119 -it's pop on this way the screen +00:16:31.400 --> 16:33.119 +it's popped on the screen 16:33.120 --> 16:37.039 -and then yeah you can just pick you can just pick whatever ringtone you want +and then you can just pick whatever ringtone you want, 16:37.040 --> 16:38.679 -and you can make it look like yeah +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:38.680 --> 00:16:44.299 +Then obviously you have the whole volume setting, -16:42.560 --> 16:44.559 -so you can like when you're when you're uh when you're working +00:16:44.300 --> 00:16:49.132 +so you can, when you're working -16:44.560 --> 16:50.519 -you know you can just set the volume pretty high +00:16:49.133 --> 16:50.519 +you can just set the volume pretty high, 16:50.520 --> 16:51.679 -so if you set if you do happen +so if you do happen 16:51.680 --> 16:55.719 -to set your phone kind of away You set the volume high, +to set your phone kind of away, you set the volume high, 16:55.720 --> 16:57.239 maybe make a really annoying sound, @@ -993,8 +1021,10 @@ That was actually one of the biggest surprises. 17:04.640 --> 17:08.599 I wasn't expecting that to work so nice. +NOTE Q: Have you tried other keyboards such as Hacker's keyboard? + 17:08.600 --> 17:17.279 -One of the next question relates to the unexpected keyboard. +One of the next question relates to the Unexpected Keyboard. 17:17.280 --> 17:19.399 Question is, have you tried other keyboards, @@ -1008,6 +1038,8 @@ Not recently. I haven't, so I couldn't compare them. 17:27.120 --> 17:31.359 Fair enough. Another keyboard question. +NOTE Q: Another keyboard question - have you tried the "flickboard" on f-droid? It's the craziest keyboard, you use one thumb. + 17:31.360 --> 17:34.399 Have you tried Flickboard on F-Droid? @@ -1050,11 +1082,11 @@ 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:22.800 --> 00:18:27.037 +the bazaar in the cathedral and bazaar sense of -18:26.000 --> 18:28.439 -and bazaar sense of we're all just here +00:18:27.038 --> 00:18:28.439 +we're all just here 18:28.440 --> 18:31.839 sort of hauling our bags of toys @@ -1086,6 +1118,8 @@ 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. +NOTE Q: This user interface is simplified but still keyboard based, can you think of ways to make it more touch based? + 19:05.360 --> 19:07.399 This user interface is simplified, @@ -1107,25 +1141,22 @@ 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:25.400 --> 00:19:33.159 +it's C-x C-+, -19:40.160 --> 19:42.959 -that key binding wrong, what was it? Okay, whatever. +00:19:33.160 --> 00:19:38.159 +That key binding wrong, what was it? Okay, whatever. -19:42.960 --> 19:45.559 -Yeah, so in terms of touch command, +00:19:38.160 --> 00:19:41.319 +Yeah, so in terms of touch commands, -19:45.560 --> 19:47.839 +00:19:41.320 --> 00:19:46.079 so pressing on a headline will actually unfold it -19:47.840 --> 19:50.799 +00:19:46.080 --> 00:19:51.199 and move your cursor to the next field that you, -19:50.800 --> 19:54.639 +00:19:51.200 --> 00:19:54.600 yeah, so like, yeah, at the beginning of the table. 19:54.640 --> 19:56.959 @@ -1194,6 +1225,8 @@ you have to worry about. 20:48.360 --> 20:52.559 So let me ask a question of my own here. +NOTE Q: Is a touch interface something you'd prefer to dive into yourself or factor out into a higher-level API? + 20:52.560 --> 20:57.199 Just thinking about that myself, how would you, you know, @@ -1233,20 +1266,32 @@ 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. +21:54.160 --> 00:21:58.007 +It's just like, you have a lambda to the click and then just do... + +00:21:58.008 --> 00:21:59.504 +Yeah, just do. + +00:21:59.505 --> 00:22:01.757 +[Corwin]: That was my experience too. -22:03.280 --> 22:06.439 -Yeah, just do. That was my experience too. +00:22:01.758 --> 00:22:04.590 +This is a few years ago now, but when I was starting on -22:06.440 --> 22:09.599 -This is a few years several years ago at ENAC's conference, +00:22:04.591 --> 00:22:05.799 +the Dungeon Mode project + +00:22:05.800 --> 00:22:07.738 +that a friend and I presented several years ago + +00:22:07.739 --> 00:22:09.599 +at Emacs 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, +this is echoing a comment I see from ElephantErgo on IRC, 22:18.560 --> 22:21.479 who says, touch seems so wildly usable nowadays, @@ -1270,7 +1315,7 @@ and we're just shocked to learn, you know, everything just worked. Yeah. 22:37.480 --> 22:38.639 -Maybe like the hardest thing +[Zachary]: Maybe like the hardest thing 22:38.640 --> 22:40.559 is actually just the default font size. @@ -1288,7 +1333,7 @@ you'll like, you'll touch, you'll, you'll miss touch things a lot. Yeah. 22:48.280 --> 22:50.159 -Well, there's no font size +[Corwin]: Well, there's no font size 22:50.160 --> 22:52.999 large enough to make me, you know, @@ -1311,6 +1356,8 @@ I did have to play around with this a lot. 23:14.040 --> 23:15.999 Let me go ahead and read it out. +NOTE Q: You mentioned file sync, what have you found works well for you? + 23:16.000 --> 23:18.519 You mentioned file sync, what have you found works well for you? @@ -1321,7 +1368,7 @@ Sorry. Yeah, yeah, yeah. 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. +but Syncthing 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, @@ -1333,7 +1380,7 @@ it wouldn't nearly be as usable, like Emacs wouldn't be nearly usable without it. 23:39.680 --> 23:41.319 -So syncing fork essentially, okay. +So Syncthing Fork essentially, okay. 23:41.320 --> 23:44.559 And then I also have like a droplet on DigitalOcean, @@ -1351,7 +1398,7 @@ So like, so my Emacs can sync to that, and then my machine also syncs to that. 23:56.560 --> 24:00.719 -And so like, I don't have to have them +And so I don't have to have them 24:00.720 --> 24:06.359 both on the same time. It's just there, that copy. @@ -1368,6 +1415,8 @@ I think this also goes 24:15.360 --> 24:19.919 with the development experience question. +NOTE Q: I'm curious about the development experience. Do you do everything on the phone? + 24:19.920 --> 24:22.639 So I'm curious about the development experience. @@ -1414,7 +1463,7 @@ and then just like, maybe just like start to put things together. 25:07.000 --> 25:09.759 -But the cool thing is with SyncThinkFork, +But the cool thing is with Syncthing Fork, 25:09.760 --> 25:15.519 I'm syncing my, I'm setting it to load off of a sync directory. @@ -1438,16 +1487,16 @@ So that makes like the whole, like in it, 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, +it's just like get in, 25:33.080 --> 25:36.879 -sit writing your init L and M in Emacs on Android +sit writing your init.el in Emacs on Android 25:36.880 --> 25:37.839 -is just kind of a. +is just kind of a... 25:37.840 --> 25:39.359 -We do have one more question. +[Corwin]: We do have one more question. 25:39.360 --> 25:41.479 I can't help but throw in a comment there. @@ -1500,6 +1549,8 @@ I think that's pretty heads up advice. 26:22.120 --> 26:24.759 Let me read out this other question. +NOTE Q: Have you thought about integrating cardio tracking like timed runs, bike rides, etc? + 26:24.760 --> 26:28.199 Have you thought about integrating cardio tracking @@ -1507,21 +1558,21 @@ Have you thought about integrating cardio tracking like time runs, bike rides, and so on? 26:30.560 --> 26:34.319 -Yes, I definitely thought about that. +[Zachary]: Yes, I definitely thought about that. 26:34.320 --> 26:36.599 And that might be another thing -26:36.600 --> 26:38.479 +26:36.600 --> 00:26:40.257 where a touch interface might be helpful. -26:38.480 --> 26:41.559 +00:26:40.258 --> 00:26:47.840 I don't know if I can easily pull it up, -26:41.560 --> 26:47.199 +00:26:47.841 --> 00:26:49.465 but the app itself, oh yeah, here it is. -26:47.200 --> 26:50.199 +00:26:49.466 --> 26:50.199 So you can see kind of how they have, 26:50.200 --> 26:53.279 @@ -1561,25 +1612,25 @@ with one of the columns called time 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, +and you can just have it click, -27:21.160 --> 27:24.279 +27:21.160 --> 00:27:23.619 and then you'd have a timer in the background -27:24.280 --> 27:25.799 +00:27:23.620 --> 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 +27:32.600 --> 00:27:40.424 it conceptually maps really well to this. -27:35.800 --> 27:41.559 +00:27:40.425 --> 27:41.559 So yeah, I mean, that's definitely something. 27:41.560 --> 27:44.439 -That's awesome. Great answer. +[Corwin]: That's awesome. Great answer. 27:44.440 --> 27:47.759 So I think we're just at about 90 seconds left. @@ -1614,8 +1665,10 @@ 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. +NOTE Closing + 28:20.320 --> 28:22.439 -Yeah, yeah, yeah, yeah, I would just say +[Zachary]: Yeah, I would just say 28:22.440 --> 28:24.159 like definitely just try things out. @@ -1648,7 +1701,7 @@ So yeah, just try different things out 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 +[Corwin]: I appreciate it once again, you're coming together 28:52.520 --> 28:56.639 and especially you're doing it live. |
