diff options
Diffstat (limited to '')
| -rw-r--r-- | 2025/captions/emacsconf-2025-weights--weightlifting-tracking-with-emacs-on-android--zachary-romero--main.vtt | 1672 |
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. |
