diff options
author | EmacsConf <emacsconf-org@gnu.org> | 2024-12-07 10:20:15 -0500 |
---|---|---|
committer | EmacsConf <emacsconf-org@gnu.org> | 2024-12-07 10:20:15 -0500 |
commit | 2874a97179bed110d50307e65bff96ac932ecb9a (patch) | |
tree | a3a40aaf5472eabb517a6b79e44045bbda7f1021 /2024/captions | |
parent | 0756a08ebeea90325ac472d6fc8006b7a1e2c67d (diff) | |
download | emacsconf-wiki-2874a97179bed110d50307e65bff96ac932ecb9a.tar.xz emacsconf-wiki-2874a97179bed110d50307e65bff96ac932ecb9a.zip |
Automated commit
Diffstat (limited to '2024/captions')
2 files changed, 2132 insertions, 0 deletions
diff --git a/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt new file mode 100644 index 00000000..0e543be3 --- /dev/null +++ b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt @@ -0,0 +1,86 @@ +WEBVTT + + +00:00:00.000 --> 00:01:14.279 +Introduction + +00:01:14.280 --> 00:03:15.919 +Message from Bastien Guerry + +00:03:15.920 --> 00:05:09.240 +My step-by-step journey to Org maintenance + +00:05:09.241 --> 00:08:11.766 +Priorities for Org maintenance + +00:08:11.767 --> 00:08:41.589 +Modular Org + +00:08:41.590 --> 00:09:59.999 +Slim down large Org libraries + +00:10:00.000 --> 00:11:25.399 +Upstream generic Org libraries + +00:11:25.400 --> 00:13:13.256 +Use modern Emacs APIs and libraries + +00:13:13.257 --> 00:14:45.730 +Improve Org parser APIs + +00:14:45.731 --> 00:15:57.379 +Improve Org babel APIs + +00:15:57.380 --> 00:16:31.199 +Beyond Org code and Emacs: third-party packages, apps, parsers + +00:16:31.200 --> 00:17:37.819 +org-contrib + +00:17:37.820 --> 00:18:25.839 +Org orphanage + +00:18:25.840 --> 00:20:23.868 +Mobile apps and parsers + +00:20:23.869 --> 00:21:56.239 +Long-standing syntax problems + +00:21:56.240 --> 00:23:30.502 +New syntax features + +00:23:30.503 --> 00:25:54.072 +New features I hope to see in Org + +00:25:54.073 --> 00:26:01.357 +Org community + +00:26:01.358 --> 00:27:17.159 +Org community forums - Org mailing list + +00:27:17.160 --> 00:30:05.579 +Org mailing list - world + +00:30:05.580 --> 00:31:01.519 +Contribute ideas! + +00:31:01.520 --> 00:31:34.999 +How much can a single person do? + +00:31:35.000 --> 00:33:02.079 +Contribute code! + +00:33:02.080 --> 00:35:40.239 +Why contribute? + +00:35:40.240 --> 00:37:41.419 +Benefits for code contributors + +00:37:41.420 --> 00:38:30.439 +Contributing as non-programmer + +00:38:30.440 --> 00:39:12.996 +Got no free time, but still want to help? + +00:39:12.997 --> 00:39:34.440 +Thank you diff --git a/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt new file mode 100644 index 00000000..6b092bd1 --- /dev/null +++ b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt @@ -0,0 +1,2046 @@ +WEBVTT captioned by sachac + +NOTE Introduction + +00:00:00.000 --> 00:00:03.039 +Hello, everyone. My name is Ihor Radchenko, + +00:00:03.040 --> 00:00:07.319 +and I'm the new official Org Mode maintainer. + +00:00:07.320 --> 00:00:09.679 +Today, I'll briefly introduce myself + +00:00:09.680 --> 00:00:12.319 +and then share my ideas about the future of + +00:00:12.320 --> 00:00:16.039 +Org Mode development. I will start by passing + +00:00:16.040 --> 00:00:18.759 +the word from Bastien, the previous maintainer. + +00:00:18.760 --> 00:00:22.239 +Then I will tell you a little bit about my story, + +00:00:22.240 --> 00:00:24.119 +starting from ordinary Org Mode user + +00:00:24.120 --> 00:00:26.039 +all the way to the maintainer. + +00:00:26.040 --> 00:00:30.839 +Then I will detail the new directions of development + +00:00:30.840 --> 00:00:33.599 +and specific features which I want to see + +00:00:33.600 --> 00:00:35.799 +in Org Mode in the coming years. + +00:00:35.800 --> 00:00:39.659 +And I will conclude by asking you, Org Mode users, + +00:00:39.660 --> 00:00:42.399 +to contribute to Org Mode + +00:00:42.400 --> 00:00:46.759 +because all the features which are too many + +00:00:46.760 --> 00:00:49.259 +can only be implemented with the help of the community, + +00:00:49.260 --> 00:00:51.879 +with the help of more contributors. + +00:00:51.880 --> 00:00:53.579 +And for that, of course, I will also talk + +00:00:53.580 --> 00:00:59.479 +about Org community and how I see it evolve + +00:00:59.480 --> 00:01:01.199 +so that we have a good communication + +00:01:01.200 --> 00:01:03.039 +between the development of Org Mode + +00:01:03.040 --> 00:01:07.559 +and the community ideas. + +00:01:07.560 --> 00:01:14.279 +Let me first pass the word to Bastien. + +NOTE Message from Bastien Guerry + +00:01:14.280 --> 00:01:17.599 +Hello, everyone. Ihor Radchenko is the new Org Mode + +00:01:17.600 --> 00:01:18.519 +maintainer. + +00:01:18.520 --> 00:01:21.039 +He's been acting as such for a couple of years now, + +00:01:21.040 --> 00:01:23.479 +and I'm really glad he's finally agreed to take on the + +00:01:23.480 --> 00:01:26.439 +role officially. As a maintainer, I've probably done + +00:01:26.440 --> 00:01:29.439 +a few things right and certainly made many mistakes. + +00:01:29.440 --> 00:01:32.319 +Here are 4 lessons I've learned in 14 years. + +00:01:32.320 --> 00:01:34.319 +The first is that maintaining Org Mode + +00:01:34.320 --> 00:01:36.439 +isn't just about code, it's mostly + +00:01:36.440 --> 00:01:40.679 +about users. Of course, some of them will never learn how to + +00:01:40.680 --> 00:01:43.159 +report a bug, some of them will behave like spoiled + +00:01:43.160 --> 00:01:46.319 +children, and most of them will expect you to work for free + +00:01:46.320 --> 00:01:50.439 +forever. Nevertheless, the time is as valuable as yours. + +00:01:50.440 --> 00:01:53.639 +Whatever they request, there is always something that can + +00:01:53.640 --> 00:01:57.879 +lead to a positive outcome for Org Mode or its community. + +00:01:57.880 --> 00:02:00.719 +The second lesson is that maintenance isn't just about + +00:02:00.720 --> 00:02:04.239 +technical choices. It's also about predictability. + +00:02:04.240 --> 00:02:07.879 +Be very clear and very loud about what users and contributors + +00:02:07.880 --> 00:02:11.159 +can expect of your time, skills, and motivations. + +00:02:11.160 --> 00:02:12.879 +Stick to the robustness principle + +00:02:12.880 --> 00:02:15.719 +by being liberal in what you accept + +00:02:15.720 --> 00:02:19.319 +and strict in what you produce. Thirdly, it's all + +00:02:19.320 --> 00:02:22.319 +about learning. Let's build a culture together where it's + +00:02:22.320 --> 00:02:25.719 +okay to ask stupid questions. No one is born knowing how to + +00:02:25.720 --> 00:02:28.639 +write in English, how to report a bug, or how to maintain a + +00:02:28.640 --> 00:02:32.059 +large piece of code. Remember that old-timers were newbies + +00:02:32.060 --> 00:02:35.199 +and that newbies could become maintainers. We all have a lot + +00:02:35.200 --> 00:02:38.759 +to learn, even if it's just how to respect each other. + +00:02:38.760 --> 00:02:42.239 +Finally, as a maintainer, think about the next one. Who will + +00:02:42.240 --> 00:02:45.519 +be in your shoes next? What kind of maintainer do you want for + +00:02:45.520 --> 00:02:48.839 +a software you will be using for decades? It's also a + +00:02:48.840 --> 00:02:52.159 +responsibility of the Org Mode community. How can we + +00:02:52.160 --> 00:02:55.999 +collectively attract maintainers that want to help us use + +00:02:56.000 --> 00:02:59.359 +and enhance this wonderful little tool? How can we, + +00:02:59.360 --> 00:03:02.199 +as Org Mode users, help Ihor pave the way + +00:03:02.200 --> 00:03:04.399 +for the next maintainers? + +00:03:04.400 --> 00:03:08.279 +Enough said. I'm confident Org Mode is in good hands and I'm a very + +00:03:08.280 --> 00:03:11.559 +happy user. Thanks everyone for all these years of fun and + +00:03:11.560 --> 00:03:15.919 +learning. + +NOTE My step-by-step journey to Org maintenance + +00:03:15.920 --> 00:03:20.279 +Now back to my talk. Let me start by briefly introducing + +00:03:20.280 --> 00:03:23.959 +myself. I'm actually not a programmer. By training, I'm a + +00:03:23.960 --> 00:03:27.519 +material scientist. and I only started using Emacs and + +00:03:27.520 --> 00:03:30.719 +Org Mode and naturally doing programming (because that's + +00:03:30.720 --> 00:03:36.799 +Emacs) when I was doing my PhD and I wanted to use Org Mode to + +00:03:36.800 --> 00:03:40.479 +tame my research work. A couple of years I was just an + +00:03:40.480 --> 00:03:44.599 +ordinary user, until I learned enough and + +00:03:44.600 --> 00:03:48.463 +got enough courage to report my first bug. + +00:03:48.464 --> 00:03:51.639 +Then it all evolved over the years. + +00:03:51.640 --> 00:03:53.959 +I started participating in the mailing list, + +00:03:53.960 --> 00:03:56.559 +I started learning more about Elisp, + +00:03:56.560 --> 00:03:59.839 +I reported more complex bugs, + +00:03:59.840 --> 00:04:08.879 +I eventually got around to go and fix the tricky bugs. + +00:04:08.880 --> 00:04:11.719 +Then I started participating more in Org mailing list + +00:04:11.720 --> 00:04:16.919 +in helping fixing bugs in selected areas of Org + +00:04:16.920 --> 00:04:22.839 +mode and eventually switching to all parts of Org. + +00:04:22.840 --> 00:04:27.639 +At some point I ended up doing the de facto maintenance job + +00:04:27.640 --> 00:04:32.679 +together with Bastien and got an actual maintenance offer + +00:04:32.680 --> 00:04:38.599 +which I accepted recently. The key takeaway I want you to get + +00:04:38.600 --> 00:04:40.999 +from here is that you don't have to be a programmer, you don't + +00:04:41.000 --> 00:04:47.239 +have to know Elisp to contribute, and you don't even have to + +00:04:47.240 --> 00:04:51.439 +be like that to become a maintainer. All it takes is + +00:04:51.440 --> 00:04:55.279 +slow, methodical, persistent learning over the years, + +00:04:55.280 --> 00:04:58.499 +participating in the community, and eventually + +00:04:58.500 --> 00:05:02.399 +submitting your patches upstream. And eventually you can + +00:05:02.400 --> 00:05:07.679 +become a maintainer, or not a maintainer as you wish. + +00:05:07.680 --> 00:05:09.240 +Enough about me. + +NOTE Priorities for Org maintenance + +00:05:09.241 --> 00:05:13.359 +Let's talk about what I think should happen with + +00:05:13.360 --> 00:05:18.859 +Org Mode and what my goals on Org Mode is. The first and top + +00:05:18.860 --> 00:05:25.199 +priority for me is the basics. The basics, the + +00:05:25.200 --> 00:05:26.069 +code-based stability. + +00:05:26.070 --> 00:05:29.719 +Basically, all the foundations, all the APIs in + +00:05:29.720 --> 00:05:34.959 +Org Mode, all the basic libraries, which everything builds + +00:05:34.960 --> 00:05:39.079 +upon so that we have fewer bugs and we have more + +00:05:39.080 --> 00:05:42.599 +understandable code so that others who want to contribute + +00:05:42.600 --> 00:05:44.651 +have easier time understanding + +00:05:44.652 --> 00:05:46.371 +what is going on in the code base and + +00:05:46.372 --> 00:05:52.259 +contribute without much of a problem or confusion. + +00:05:52.260 --> 00:05:56.339 +Second equally important direction is the Org community, + +00:05:56.340 --> 00:06:00.579 +because a single person, even a couple of people, cannot + +00:06:00.580 --> 00:06:05.599 +really develop such a big project as Org Mode. And we always + +00:06:05.600 --> 00:06:08.439 +want new contributors, which are not coming from nowhere. + +00:06:08.440 --> 00:06:10.228 +We need to have the community of users. + +00:06:10.229 --> 00:06:12.199 +We have a community of + +00:06:12.200 --> 00:06:15.679 +people who participate in discussions, who later submit + +00:06:15.680 --> 00:06:19.719 +patches and code, and that's where we get most of the new + +00:06:19.720 --> 00:06:24.919 +features. So I would like to improve the communication + +00:06:24.920 --> 00:06:29.879 +between Org community and the development. The third + +00:06:29.880 --> 00:06:34.259 +direction I want to pursue is making life easier for + +00:06:34.260 --> 00:06:38.639 +third-party packages. Because we don't only have org-mode + +00:06:38.640 --> 00:06:41.319 +as it's distributed with Emacs. We have a lot of + +00:06:41.320 --> 00:06:45.196 +ELPA packages. We have a lot of MELPA packages. + +00:06:45.197 --> 00:06:47.917 +People who want some specific features + +00:06:47.918 --> 00:06:49.839 +on top of org-mode do develop + +00:06:49.840 --> 00:06:54.279 +these packages which are widely used or not so widely used. + +00:06:54.280 --> 00:06:57.639 +It's not only about Emacs. We have a lot of mobile apps + +00:06:57.640 --> 00:07:01.879 +that can work with Org files, have a lot of parsers which + +00:07:01.880 --> 00:07:06.039 +enable this mobile apps, or in general, programs outside + +00:07:06.040 --> 00:07:11.019 +Elisp to understand Org files. + +00:07:11.020 --> 00:07:14.959 +Fourth direction is the Org markup as a foundation of + +00:07:14.960 --> 00:07:18.319 +org-mode as a major mode, because we have a lot of + +00:07:18.320 --> 00:07:20.573 +functionality in org-mode itself inside Emacs, + +00:07:20.574 --> 00:07:23.674 +but it's all based on the underlying markup, + +00:07:23.675 --> 00:07:27.435 +and markup should have enough features + +00:07:27.436 --> 00:07:32.479 +to support the functions we want to see there. + +00:07:32.480 --> 00:07:34.919 +Last direction, which is somewhat less + +00:07:34.920 --> 00:07:37.834 +important, mostly because I don't have + +00:07:37.835 --> 00:07:40.136 +that much time to focus on everything, + +00:07:40.137 --> 00:07:44.159 +is the new features. I do want to see + +00:07:44.160 --> 00:07:46.840 +certain important features in Org mode, + +00:07:46.841 --> 00:07:50.262 +but I usually cannot spend too much time on them + +00:07:50.263 --> 00:07:53.084 +because of the previous more important parts. + +00:07:53.085 --> 00:07:54.999 +I do rely on the org community and + +00:07:55.000 --> 00:07:57.456 +the contributors to implement these new features. + +00:07:57.457 --> 00:08:01.915 +My idea is that I want to direct which features + +00:08:01.916 --> 00:08:03.757 +and how they should be implemented, + +00:08:03.758 --> 00:08:05.299 +but the actual people who implement + +00:08:05.300 --> 00:08:09.463 +them should come from the community. + +00:08:09.464 --> 00:08:11.766 +Now let's go into the details. + +NOTE Modular Org + +00:08:11.767 --> 00:08:15.719 +The code base. As a bit of motivation, I would like + +00:08:15.720 --> 00:08:19.279 +to share this email from Richard Stallman, who a couple of + +00:08:19.280 --> 00:08:27.039 +years ago asked about improving Org mode by making it + +00:08:27.040 --> 00:08:32.839 +more modular. That's directly asking about improving the + +00:08:32.840 --> 00:08:35.639 +foundations of the code. That's what I think is + +00:08:35.640 --> 00:08:41.589 +an important direction as well. Here's an example. + +NOTE Slim down large Org libraries + +00:08:41.590 --> 00:08:45.312 +We have a lot of really, really large org libraries, + +00:08:45.313 --> 00:08:49.376 +like org.el, which is like one megabyte or something large, + +00:08:49.377 --> 00:08:51.558 +org-agenda, org-table, org-list, + +00:08:51.559 --> 00:08:52.879 +a number of files which are really, + +00:08:52.880 --> 00:08:56.599 +really, really large. What is worse is they are hard to + +00:08:56.600 --> 00:09:00.906 +understand sometimes. I even have an example, + +00:09:00.907 --> 00:09:04.505 +alphapapa complained that part of his motivation + +00:09:04.506 --> 00:09:07.867 +to write org-ql and specifically his agenda part, + +00:09:07.868 --> 00:09:08.879 +agenda-like part, was + +00:09:08.880 --> 00:09:13.119 +because org-agenda is so hard to understand that it's + +00:09:13.120 --> 00:09:15.572 +easier to start from scratch. + +00:09:15.573 --> 00:09:17.079 +I don't want such situations + +00:09:17.080 --> 00:09:20.374 +to happen in future, if possible at all. + +00:09:20.375 --> 00:09:21.879 +One of the projects + +00:09:21.880 --> 00:09:23.116 +I'm currently working on, + +00:09:23.117 --> 00:09:25.100 +it's work in progress now, + +00:09:25.101 --> 00:09:28.437 +is splitting Org libraries into smaller parts, + +00:09:28.438 --> 00:09:31.808 +into more documented parts, + +00:09:31.809 --> 00:09:34.239 +into the APIs which are actually + +00:09:34.240 --> 00:09:38.470 +documented and explained in the code at least, + +00:09:38.471 --> 00:09:42.571 +so that people who just open org-mode code + +00:09:42.572 --> 00:09:45.239 +cannot be scared away and go and + +00:09:45.240 --> 00:09:47.999 +read the comments and understand what is happening there + +00:09:48.000 --> 00:09:52.039 +easier. At this point, I have almost doubled the number of + +00:09:52.040 --> 00:09:54.839 +libraries. It's still work in progress, so there's a lot of + +00:09:54.840 --> 00:09:59.999 +room for improvement in this area. + +NOTE Upstream generic Org libraries + +00:10:00.000 --> 00:10:04.599 +Another direction which is + +00:10:04.600 --> 00:10:09.799 +somewhat reasonable in relation to splitting things down + +00:10:09.800 --> 00:10:15.159 +is that some libraries are really generic in Org Mode, + +00:10:15.160 --> 00:10:18.239 +because Org Mode often has a functionality + +00:10:18.240 --> 00:10:20.100 +which is really new, and for that, + +00:10:20.101 --> 00:10:22.239 +it had to implement some very generic + +00:10:22.240 --> 00:10:24.222 +functionality that doesn't have to be used + +00:10:24.223 --> 00:10:24.903 +just for Org Mode. + +00:10:24.904 --> 00:10:27.924 +This can be generalized for Emacs in general. + +00:10:27.925 --> 00:10:29.645 +There is a number of libraries + +00:10:29.646 --> 00:10:32.999 +which we may or may not upstream to + +00:10:33.000 --> 00:10:37.559 +Emacs, depending on what Emacs maintain, I think. As one + +00:10:37.560 --> 00:10:40.719 +example is org-capture, because it's a very obvious + +00:10:40.720 --> 00:10:43.679 +example. org-capture started as support from remember.el, + +00:10:43.680 --> 00:10:46.759 +which is still a part of Emacs. It has more features than + +00:10:46.760 --> 00:10:50.039 +remember.el, which we required for Org. But, you know, + +00:10:50.040 --> 00:10:55.139 +these features can be backported. Why not? And then + +00:10:55.140 --> 00:10:58.679 +not only Org-mode, but other Emacs libraries can benefit + +00:10:58.680 --> 00:11:01.957 +from these features we have in Org-mode only. + +00:11:01.958 --> 00:11:04.739 +Similarly, I have a long list of + +00:11:04.740 --> 00:11:12.039 +different libraries that can be shared. + +00:11:12.040 --> 00:11:14.004 +Yeah, for some I'm not sure, + +00:11:14.005 --> 00:11:18.959 +but in general, there is a lot of + +00:11:18.960 --> 00:11:25.399 +work that may be done and may be discussed in the future. + +NOTE Use modern Emacs APIs and libraries + +00:11:25.400 --> 00:11:31.479 +The third part about the basics is making use of the new Emacs + +00:11:31.480 --> 00:11:36.039 +libraries. Org Mode in general is quite well written in terms + +00:11:36.040 --> 00:11:40.039 +of Emacs integration. We do support many of the Emacs + +00:11:40.040 --> 00:11:44.359 +features and libraries which are generic. However, in more + +00:11:44.360 --> 00:11:47.999 +recent Emacs versions, we started getting some new + +00:11:48.000 --> 00:11:50.799 +features, and we do want to make use of them in Org. + +00:11:50.800 --> 00:11:55.879 +For example, recently we contributed yank-media support for + +00:11:55.880 --> 00:12:00.359 +clipboard pasting and drag and drop. Now it is supported + +00:12:00.360 --> 00:12:04.399 +in Org mode already in the released version. Eventually + +00:12:04.400 --> 00:12:08.359 +we want to support transient.el, because now Org uses ad hoc + +00:12:08.360 --> 00:12:11.999 +system. It's of course much better to use existing and + +00:12:12.000 --> 00:12:14.839 +more powerful menus, which are implemented in + +00:12:14.840 --> 00:12:18.159 +transient. It even has some initial work-in-progress + +00:12:18.160 --> 00:12:20.028 +implementation. I hope it can be eventually + +00:12:20.029 --> 00:12:23.960 +extended to the whole Org Mode + +00:12:23.961 --> 00:12:29.359 +There are other things like compatibility, which there is + +00:12:29.360 --> 00:12:33.519 +an excellent Emacs library, compat.el, that provides + +00:12:33.520 --> 00:12:37.599 +backwards compatibility and Org also has something like this + +00:12:37.600 --> 00:12:39.439 +in org-compat. We don't have to write it ourself again. + +00:12:39.440 --> 00:12:43.741 +We can make use of the existing library. + +00:12:43.742 --> 00:12:46.043 +Similarly, there's a very, very new library + +00:12:46.044 --> 00:12:48.759 +track-changes for tracking changes + +00:12:48.760 --> 00:12:53.159 +in real time. Eventually, if you want to support + +00:12:53.160 --> 00:12:56.359 +context-menu mode, maybe touchscreen, Android + +00:12:56.360 --> 00:13:00.999 +support, I don't know, but I hope it can be done by someone. + +00:13:01.000 --> 00:13:09.319 +And some more generic library: select thingatpt. + +00:13:09.320 --> 00:13:13.256 +That's about using external APIs. + +NOTE Improve Org parser APIs + +00:13:13.257 --> 00:13:18.557 +Now about the internal Org APIs. + +00:13:18.558 --> 00:13:19.439 +One important, probably one of the most important + +00:13:19.440 --> 00:13:23.259 +parts of Org is the parser, how Org itself understands the + +00:13:23.260 --> 00:13:27.159 +Org files. The situation is that we have two parsers in + +00:13:27.160 --> 00:13:30.999 +Org mode. One is the Org element, the proper parser, which we + +00:13:31.000 --> 00:13:34.519 +use as a reference, but many parts of Org still use regular + +00:13:34.520 --> 00:13:38.079 +expressions, which are approximate. These two parsers + +00:13:38.080 --> 00:13:41.839 +are not exactly consistent, which is really bad, and I hope + +00:13:41.840 --> 00:13:47.999 +to solve this. I already started doing some work by + +00:13:48.000 --> 00:13:54.140 +factoring out some part of abstract syntax tree and working + +00:13:54.141 --> 00:13:57.519 +on real-time parser, incremental parser, which is enabled + +00:13:57.520 --> 00:14:00.039 +by default in Org 9.6, but there are still parts which I need + +00:14:00.040 --> 00:14:02.999 +to work on. Eventually I want to get rid of regular + +00:14:03.000 --> 00:14:05.439 +expression-based parser completely, so that we don't have + +00:14:05.440 --> 00:14:10.199 +any inconsistencies inside Org Mode. One of the examples of + +00:14:10.200 --> 00:14:13.159 +these parts that are still using regular expression is + +00:14:13.160 --> 00:14:16.719 +fontification, which is often simply wrong, especially in + +00:14:16.720 --> 00:14:21.639 +some edge cases, and we really want to use the proper parser + +00:14:21.640 --> 00:14:27.559 +in this area. Maybe even editing org files using the parser + +00:14:27.560 --> 00:14:31.799 +syntax tree, but that might be tricky, although there is an + +00:14:31.800 --> 00:14:38.119 +existing library that implements some ideas for this. + +00:14:38.120 --> 00:14:41.519 +The key point is that org-element-api, the parser, should + +00:14:41.520 --> 00:14:42.749 +eventually be used everywhere + +00:14:42.750 --> 00:14:45.730 +so that everything is consistent. + +NOTE Improve Org babel APIs + +00:14:45.731 --> 00:14:50.359 +The second important API is the Org babel. + +00:14:50.360 --> 00:14:54.414 +Currently, Org babel does have some API, + +00:14:54.415 --> 00:14:56.195 +but first, it's not well documented. + +00:14:56.196 --> 00:14:59.039 +Second, it's sometimes awkwardly + +00:14:59.040 --> 00:15:04.819 +designed, especially compared with the exporter. + +00:15:04.820 --> 00:15:11.419 +I do want Org Babel APIs to be more consistent. + +00:15:11.420 --> 00:15:14.879 +Another thing about Org Babel, it's not exactly API, but you + +00:15:14.880 --> 00:15:18.259 +know that documentation for most of the Babel backends are + +00:15:18.260 --> 00:15:20.879 +not even in the Org manual, even though the backends are + +00:15:20.880 --> 00:15:25.559 +built-in. They are on Org Wiki, and we do want to move them to + +00:15:25.560 --> 00:15:29.919 +the manual eventually. That's the important part, and it + +00:15:29.920 --> 00:15:34.519 +should be done. Those are some obstacles, like not all the + +00:15:34.520 --> 00:15:39.399 +features are properly implemented, and that's a bit of an + +00:15:39.400 --> 00:15:43.159 +extra job that should be done. Another small thing which + +00:15:43.160 --> 00:15:48.079 +thanks to Bruno Barbier is being done, in progress: we + +00:15:48.080 --> 00:15:51.599 +should have a more robust asynchronous API for babel. + +00:15:51.600 --> 00:15:53.600 +I hope it can progress further. + +00:15:53.601 --> 00:15:57.379 +For now, it already progressed quite far. + +NOTE Beyond Org code and Emacs: third-party packages, apps, parsers + +00:15:57.380 --> 00:15:59.959 +That's all about the basics, the underlying + +00:15:59.960 --> 00:16:04.799 +backbone of the Org codebase. Let's move to the second + +00:16:04.800 --> 00:16:09.519 +important direction which is + +00:16:09.520 --> 00:16:13.739 +the third-party packages and basically the parsers + +00:16:13.740 --> 00:16:18.279 +for mobile apps. I will postpone the community to the end + +00:16:18.280 --> 00:16:23.919 +because I want to have a call for contribution at the end. + +00:16:23.920 --> 00:16:31.199 +For third-party packages, I would like to remind you that + +NOTE org-contrib + +00:16:31.200 --> 00:16:34.239 +Org mode used to have something called org-contrib as a + +00:16:34.240 --> 00:16:39.799 +part of Org mode, which is a collection of small libraries, + +00:16:39.800 --> 00:16:44.079 +small packages that didn't have a proper + +00:16:44.080 --> 00:16:45.495 +copyright assignment basically, + +00:16:45.496 --> 00:16:49.359 +but more or less a part of Org mode. This is + +00:16:49.360 --> 00:16:52.119 +no longer the case. Now what we did is + +00:16:52.120 --> 00:16:56.641 +we moved a number of very rarely used libraries + +00:16:56.642 --> 00:16:58.759 +from Org core itself to org-contrib, + +00:16:58.760 --> 00:17:03.779 +and now we treat org-contrib as basically the libraries + +00:17:03.780 --> 00:17:08.020 +that we really want someone to take responsibility for. + +00:17:08.021 --> 00:17:10.580 +We want to maintain this for everything that is in + +00:17:10.581 --> 00:17:18.079 +org-contrib, and from me and other Org team, we + +00:17:18.080 --> 00:17:21.162 +do not spend too much time maintaining this package, + +00:17:21.163 --> 00:17:25.286 +just do some most basic bug fixing, and that's all. + +00:17:25.287 --> 00:17:27.359 +If you know, if you see + +00:17:27.360 --> 00:17:30.031 +some libraries from org-contrib and you use them, + +00:17:30.032 --> 00:17:31.991 +and you know Elisp, please volunteer to be + +00:17:31.992 --> 00:17:34.454 +the maintainer, because otherwise + +00:17:34.455 --> 00:17:37.819 +there will be not much progress in these libraries. + +NOTE Org orphanage + +00:17:37.820 --> 00:17:40.719 +As a natural extension of this and inspired by + +00:17:40.720 --> 00:17:46.199 +Tarsius's Emacs Orphanage idea, we also maintain a small + +00:17:46.200 --> 00:17:50.359 +page basically listing the libraries, some others like + +00:17:50.360 --> 00:17:55.439 +packages, Emacs packages that are not really maintained. + +00:17:55.440 --> 00:17:59.239 +If you are a maintainer of a library and you don't have time + +00:17:59.240 --> 00:18:02.507 +to do it, you can write to Org mailing list + +00:18:02.508 --> 00:18:05.209 +and we can add the library to this page + +00:18:05.210 --> 00:18:09.918 +so that we can search for new maintainers + +00:18:09.919 --> 00:18:12.839 +in a more centralized way. If you are an + +00:18:12.840 --> 00:18:18.119 +Elisp hacker and you want to help something for Org Mode, + +00:18:18.120 --> 00:18:25.839 +you can check that page and see where you can help. + +NOTE Mobile apps and parsers + +00:18:25.840 --> 00:18:29.879 +Now away from Emacs, or mobile apps. + +00:18:29.880 --> 00:18:33.948 +We have quite a lot of mobile apps at this point. + +00:18:33.949 --> 00:18:35.759 +Unfortunately, it's very hard + +00:18:35.760 --> 00:18:42.459 +for me and many other Elisp contributors to contribute to + +00:18:42.460 --> 00:18:46.759 +these apps because they are not using Elisp naturally. But + +00:18:46.760 --> 00:18:52.359 +these applications heavily rely on Org markup. I do hope + +00:18:52.360 --> 00:18:55.799 +that we can keep Org markup consistent enough and rich + +00:18:55.800 --> 00:19:00.599 +enough so that people don't have to invent extensions to Org + +00:19:00.600 --> 00:19:06.020 +like what happened to Markdown. + +00:19:06.021 --> 00:19:09.542 +I really want to emphasize that + +00:19:09.543 --> 00:19:12.359 +I want to see more Org parsers in different + +00:19:12.360 --> 00:19:13.739 +languages so that they can be used by developers. + +00:19:13.740 --> 00:19:24.185 +For people who are writing these parsers, + +00:19:24.186 --> 00:19:27.267 +I want to share this link. It is the org-syntax reference. + +00:19:27.268 --> 00:19:29.368 +It is the official Org syntax, + +00:19:29.369 --> 00:19:33.631 +which is what we think it should be. + +00:19:33.632 --> 00:19:36.212 +It's described in plain human language. + +00:19:36.213 --> 00:19:39.855 +It's not a code. All details should be listed there. + +00:19:39.856 --> 00:19:43.557 +Please use it as a reference if you are writing a parser. + +00:19:43.558 --> 00:19:45.118 +Eventually, this document will be + +00:19:45.119 --> 00:19:51.672 +submitted to IETF, I hope. In the future + +00:19:51.673 --> 00:19:56.059 +I hope to write a set of tests which will work as benchmarks. + +00:19:56.060 --> 00:19:58.839 +basically we have some existing tests for our internal + +00:19:58.840 --> 00:20:04.319 +parser and I want to factor out these tests so they can be used + +00:20:04.320 --> 00:20:07.359 +by any parser, so that we can compare the performance and + +00:20:07.360 --> 00:20:14.579 +which parts of Org mode are parsed and which parts are not. + +00:20:14.580 --> 00:20:18.999 +I mentioned that we want to submit to IETF, which means that + +00:20:19.000 --> 00:20:23.868 +Org markup will become the actual registered format. + +NOTE Long-standing syntax problems + +00:20:23.869 --> 00:20:31.279 +But before we do that and thus fix Org markup in stone, + +00:20:31.280 --> 00:20:34.614 +because it's very hard to change things in the IETF, + +00:20:34.615 --> 00:20:38.836 +it's important to address important problems, + +00:20:38.837 --> 00:20:41.217 +existing problems with Org syntax. + +00:20:41.218 --> 00:20:43.639 +There are some problems, like I mentioned the + +00:20:43.640 --> 00:20:46.941 +inconsistencies between the two existing parsers + +00:20:46.942 --> 00:20:51.407 +in Org mode. There are also some parts, + +00:20:51.408 --> 00:20:53.149 +there are some examples, like there are + +00:20:53.150 --> 00:20:54.799 +problems with numeric priorities, for + +00:20:54.800 --> 00:20:58.719 +example, which are not treated consistently. There are + +00:20:58.720 --> 00:21:02.599 +problems, more general problems with syntax when people + +00:21:02.600 --> 00:21:07.239 +request some edge cases which should be addressed. Like, + +00:21:07.240 --> 00:21:10.101 +it's very hard to do interword markup. + +00:21:10.102 --> 00:21:13.701 +We have zero-width space workaround, but many people dislike it, + +00:21:13.702 --> 00:21:16.262 +so maybe we want to do something about it. + +00:21:16.263 --> 00:21:18.079 +We have some edge cases when we + +00:21:18.080 --> 00:21:22.119 +combine emphasis with links. We have some edge cases when we + +00:21:22.120 --> 00:21:24.959 +have double blank lines inside some source blocks, for + +00:21:24.960 --> 00:21:30.079 +example, and combination in the list. I hope we can + +00:21:30.080 --> 00:21:33.399 +somehow address it. It's not impossible to do it, it just + +00:21:33.400 --> 00:21:38.919 +requires time. One annoying part is the inline task syntax. + +00:21:38.920 --> 00:21:41.479 +It's annoying both from the programming perspective, + +00:21:41.480 --> 00:21:43.919 +internally as implementation, and from the UI + +00:21:43.920 --> 00:21:47.519 +perspective, because there are too many stars. We + +00:21:47.520 --> 00:21:50.479 +probably should redesign it eventually, maybe in + +00:21:50.480 --> 00:21:56.239 +backwards-compatible way, but we will see how it goes. + +NOTE New syntax features + +00:21:56.240 --> 00:22:00.639 +Another part is not just fixing the edge cases or problems, + +00:22:00.640 --> 00:22:04.039 +it's the completely new syntax features. That's probably + +00:22:04.040 --> 00:22:07.959 +done after we submit to IETF. But there are important things + +00:22:07.960 --> 00:22:11.119 +that people often request, like time zone support in + +00:22:11.120 --> 00:22:15.919 +timestamps. Better repeaters, like more flexible + +00:22:15.920 --> 00:22:21.799 +repeaters, that's really a frequent request also. + +00:22:21.800 --> 00:22:28.919 +Another idea is some custom markup, which is + +00:22:28.920 --> 00:22:31.939 +coming to various requests, like, for example, people + +00:22:31.940 --> 00:22:37.887 +often ask to highlight some words with a color, + +00:22:37.888 --> 00:22:40.890 +for example, or with some other special way + +00:22:40.891 --> 00:22:43.333 +and then export it in a special way, + +00:22:43.334 --> 00:22:47.239 +just as we do with special blocks, basically. + +00:22:47.240 --> 00:22:51.061 +What I want to introduce is the ability to do it + +00:22:51.062 --> 00:22:54.601 +on a macro level or inline. + +00:22:54.602 --> 00:22:57.879 +Of course, a new syntax feature which I wish we could + +00:22:57.880 --> 00:23:01.064 +have is the multi-line cells in tables. + +00:23:01.065 --> 00:23:02.545 +It's very frequently requested as well, + +00:23:02.546 --> 00:23:07.007 +but I really have no clue how to do it. + +00:23:07.008 --> 00:23:09.239 +We had a discussion about this in previous + +00:23:09.240 --> 00:23:13.359 +discussions, but there was no conclusion. We don't see a + +00:23:13.360 --> 00:23:16.155 +good way how to implement it syntax-wise. + +00:23:16.156 --> 00:23:19.140 +Unlike time zones where we decided exactly the syntax, + +00:23:19.141 --> 00:23:22.665 +how it could be and we just need patches to be submitted, + +00:23:22.666 --> 00:23:25.610 +here even the idea of syntax is not clear. + +00:23:25.611 --> 00:23:26.771 +Please do participate in these discussions + +00:23:26.772 --> 00:23:30.502 +if you have ideas. + +NOTE New features I hope to see in Org + +00:23:30.503 --> 00:23:32.519 +The last direction is the + +00:23:32.520 --> 00:23:36.319 +new features. In general, I welcome all kinds of good + +00:23:36.320 --> 00:23:39.559 +features, but there are certain things which I explicitly + +00:23:39.560 --> 00:23:43.919 +want to see and I hope to see submitted. If you are + +00:23:43.920 --> 00:23:48.559 +interested, please do submit patches. One, and probably + +00:23:48.560 --> 00:23:50.799 +many people are aware about it, is the asynchronous LaTeX + +00:23:50.800 --> 00:23:55.319 +preview, developed by Timothy and Karthik. I hope it can be + +00:23:55.320 --> 00:23:59.279 +finalized eventually and upstreamed. It's pretty much in + +00:23:59.280 --> 00:24:02.319 +ready state, but on the technical level it should be + +00:24:02.320 --> 00:24:09.879 +discussed further and revised. The second is org-ql by Adam. + +00:24:09.880 --> 00:24:17.239 +I hope it can be upstreamed. It's also a work in progress. + +00:24:17.240 --> 00:24:20.519 +It's just a question of free time for Adam mostly, I think, + +00:24:20.520 --> 00:24:26.199 +and me. That's another important part, new feature. The + +00:24:26.200 --> 00:24:30.239 +third is the so-called multi-page export. The idea is the + +00:24:30.240 --> 00:24:34.319 +same as many packages for blog posts, so that you have a + +00:24:34.320 --> 00:24:39.479 +single Org file and then you can export multiple HTML pages, + +00:24:39.480 --> 00:24:42.599 +for example, or PDF pages, anything like that. This work in + +00:24:42.600 --> 00:24:46.687 +progress by Orm, thanks to him, + +00:24:46.688 --> 00:24:49.349 +although it was a little bit stuck because + +00:24:49.350 --> 00:24:52.079 +I am not exactly sure how to best integrate it + +00:24:52.080 --> 00:24:56.879 +into the existing APIs. If you are a developer of one of the + +00:24:56.880 --> 00:25:01.079 +blogging packages, I would appreciate if you can chime in + +00:25:01.080 --> 00:25:06.479 +and probably share some ideas here. Next are just some + +00:25:06.480 --> 00:25:09.839 +wishes I wish we could have, but + +00:25:09.840 --> 00:25:11.949 +it's not very detailed. One is + +00:25:11.950 --> 00:25:14.159 +the multi-language support, so that we can have Org + +00:25:14.160 --> 00:25:16.879 +documents in multiple languages, or maybe even + +00:25:16.880 --> 00:25:21.159 +translations. The collaborative editing that many + +00:25:21.160 --> 00:25:25.359 +people would wish to have, I think. Things like tracking + +00:25:25.360 --> 00:25:28.999 +changes, adding comments, importing from + +00:25:29.000 --> 00:25:30.874 +some other Org formats with + +00:25:30.875 --> 00:25:32.035 +the comments and changes + +00:25:32.036 --> 00:25:34.018 +so that we can actually participate + +00:25:34.019 --> 00:25:36.962 +with all those Microsoft Word users + +00:25:36.963 --> 00:25:39.743 +and stuff like that. + +00:25:39.744 --> 00:25:43.719 +But that's really too much for me alone to handle. + +00:25:43.720 --> 00:25:47.839 +If you want to see one of these features, please consider + +00:25:47.840 --> 00:25:50.039 +contributing. Just write the mailing list about your + +00:25:50.040 --> 00:25:54.072 +interest and we can start from there. + +NOTE Org community + +00:25:54.073 --> 00:25:57.455 +Now, the important part is, you see, + +00:25:57.456 --> 00:25:58.635 +I keep asking people like, + +00:25:58.636 --> 00:25:59.799 +please contribute, please contribute, + +00:25:59.800 --> 00:26:01.357 +but who should contribute? + +NOTE Org community forums - Org mailing list + +00:26:01.358 --> 00:26:03.799 +So I want to improve communication between the + +00:26:03.800 --> 00:26:12.479 +community and the mailing list. Now, people often + +00:26:12.480 --> 00:26:16.799 +discuss new features or ideas on all kinds of places like + +00:26:16.800 --> 00:26:20.239 +Reddit, Mastodon, like all kinds of Matrix/IRC chats, + +00:26:20.240 --> 00:26:25.439 +even on meetups, some non-English language. That's very + +00:26:25.440 --> 00:26:29.479 +nice that we have this community, but not all the ideas are + +00:26:29.480 --> 00:26:34.499 +visible to the developers. I do wish that the most + +00:26:34.500 --> 00:26:38.279 +important things that people want to see should end up on the + +00:26:38.280 --> 00:26:42.331 +mailing list, one way or another. + +00:26:42.332 --> 00:26:43.519 +I'll later talk about some + +00:26:43.520 --> 00:26:48.839 +ideas how I think it can be done. Another part is + +00:26:48.840 --> 00:26:52.554 +we have org-wiki and I hope that + +00:26:52.555 --> 00:26:55.239 +we can make it more centralized + +00:26:55.240 --> 00:26:58.476 +space for interesting Org mode articles, + +00:26:58.477 --> 00:27:00.617 +for tutorials, for blog posts, + +00:27:00.618 --> 00:27:03.679 +at least linked to blog posts. If you have + +00:27:03.680 --> 00:27:08.119 +some idea about good blog posts, it would be nice if you + +00:27:08.120 --> 00:27:13.025 +submit a patch to work or at least email about this link + +00:27:13.026 --> 00:27:17.159 +to the mailing list. + +NOTE Org mailing list - world + +00:27:17.160 --> 00:27:21.054 +Of course, not everyone likes to use mailing lists + +00:27:21.055 --> 00:27:23.809 +or don't have a good setup to do it, + +00:27:23.810 --> 00:27:25.559 +or even don't want to read + +00:27:25.560 --> 00:27:27.599 +everything on Org mailing list, because there are things + +00:27:27.600 --> 00:27:31.359 +like bug reports, people don't really want to see that. So + +00:27:31.360 --> 00:27:35.439 +Bastien actually developed a tool that can help with this. + +00:27:35.440 --> 00:27:39.239 +If you want to monitor Org mailing list, but want to see + +00:27:39.240 --> 00:27:42.799 +only the most important discussions, and maybe + +00:27:42.800 --> 00:27:45.479 +participate if you decide to, you don't have to register. We + +00:27:45.480 --> 00:27:51.919 +have Woof, which is basically a web page that monitors our + +00:27:51.920 --> 00:27:55.639 +main list, but not every email. That's the most important + +00:27:55.640 --> 00:27:58.719 +announcements, some blog-like posts, or feature + +00:27:58.720 --> 00:28:02.799 +requests, or some discussions. Then on this webpage, + +00:28:02.800 --> 00:28:06.119 +you can see it as HTML, or you can subscribe as RSS, or even + +00:28:06.120 --> 00:28:11.119 +download in Org or MD format. + +00:28:11.120 --> 00:28:15.359 +Thanks to Sacha Chua, also weekly news about Emacs in + +00:28:15.360 --> 00:28:23.199 +general, but Org Mode as well. It also includes the + +00:28:23.200 --> 00:28:26.639 +new features in Org Mode on the development branch and the + +00:28:27.100 --> 00:28:30.199 +interesting new blog posts and discussions on various + +00:28:30.200 --> 00:28:35.879 +Reddit forums or mailing lists everywhere. I did this + +00:28:35.880 --> 00:28:39.519 +little bit of experimental integration so that many lists + +00:28:39.520 --> 00:28:45.159 +can also be read, kind of announced on the chats. + +00:28:45.160 --> 00:28:48.319 +For example, in #org-mode Matrix room, we have a bot that + +00:28:48.320 --> 00:28:53.239 +connects to Woof RSS so that all the news and discussions are + +00:28:53.240 --> 00:28:55.923 +notified in the chat so that people + +00:28:55.924 --> 00:28:58.764 +can see if they are interested + +00:28:58.765 --> 00:29:02.519 +and maybe, hopefully, participate. I wish + +00:29:02.520 --> 00:29:05.599 +we could also have similar kind of both for Reddit, Mastodon + +00:29:05.600 --> 00:29:10.879 +and maybe IRC. That way we have mailing list connected to + +00:29:10.880 --> 00:29:17.719 +more active and more modern forums and chats. + +00:29:17.720 --> 00:29:19.959 +More people exposed to what is happening. + +00:29:19.960 --> 00:29:26.719 +Another part is that we actually have a web interface to Org + +00:29:26.720 --> 00:29:29.048 +mailing list and you can even reply from there, + +00:29:29.049 --> 00:29:31.400 +but it's not always obvious, unfortunately. + +00:29:31.401 --> 00:29:37.745 +We have this public inbox software + +00:29:37.746 --> 00:29:39.999 +to transform the mailing list into + +00:29:40.000 --> 00:29:45.719 +HTML pages. That's a decent interface, but it could be + +00:29:45.720 --> 00:29:49.199 +improved to look more forum-like, so that people can easily + +00:29:49.200 --> 00:29:53.079 +find the reply button or basically participate without + +00:29:53.080 --> 00:29:56.119 +too much effort, even if they are not subscribed or they are just + +00:29:56.120 --> 00:29:59.079 +casually reading. That would be nice if someone + +00:29:59.080 --> 00:30:05.579 +knowledgeable of CSS could help with this. + +NOTE Contribute ideas! + +00:30:05.580 --> 00:30:12.199 +Again, I cannot emphasize more that most of the Org ideas of + +00:30:12.200 --> 00:30:16.974 +the new features are coming from people, + +00:30:16.975 --> 00:30:23.221 +but often they are known either by someone + +00:30:23.222 --> 00:30:24.479 +submitting a patch to the mailing list or + +00:30:24.480 --> 00:30:28.239 +submitting an idea to the mailing list. Rarely, it happens when + +00:30:28.240 --> 00:30:31.999 +someone is reading posts from Reddit that don't share to the + +00:30:32.000 --> 00:30:35.639 +mailing list. If you think that there is some important + +00:30:35.640 --> 00:30:38.599 +discussion happening on the forum, + +00:30:38.600 --> 00:30:42.415 +it would be nice that you can go ahead and share it + +00:30:42.416 --> 00:30:46.519 +with Org mailing list. We don't care about + +00:30:46.520 --> 00:30:49.500 +on-topic, off-topic, because unlike + +00:30:49.501 --> 00:30:51.385 +emacs-devel, we don't focus on development. + +00:30:51.386 --> 00:30:54.929 +We can discuss some related to Org mode topics + +00:30:54.930 --> 00:31:01.519 +in open-end list, just like on an ordinary forum. + +NOTE How much can a single person do? + +00:31:01.520 --> 00:31:08.439 +I would like to end my talk with the call for contributions. + +00:31:08.440 --> 00:31:13.639 +Let me explain a little bit, because you saw now I shared many + +00:31:13.640 --> 00:31:19.319 +many ideas and I do spend a lot of time on Org Mode. In fact, + +00:31:19.320 --> 00:31:21.322 +for the last year, I was spending like + +00:31:21.323 --> 00:31:23.437 +30 hours per week or something. + +00:31:23.438 --> 00:31:27.319 +Until recently, I can spend a bit less, but still + +00:31:27.320 --> 00:31:29.900 +even with that much of commitment, + +00:31:29.901 --> 00:31:31.479 +there is no way I can handle + +00:31:31.480 --> 00:31:34.999 +everything by myself. + +NOTE Contribute code! + +00:31:35.000 --> 00:31:38.551 +We really, really need more people to contribute + +00:31:38.552 --> 00:31:43.633 +so that Org mode keeps moving forward. + +00:31:43.634 --> 00:31:45.079 +Again, I just shared ideas, + +00:31:45.080 --> 00:31:46.394 +but I have so many more. + +00:31:46.395 --> 00:31:48.734 +I have more than a thousand ideas noted down. + +00:31:48.735 --> 00:31:52.636 +Yeah, there's no way I can do it myself. + +00:31:52.637 --> 00:31:57.350 +I do need help for new contributions, for new features. + +00:31:57.351 --> 00:31:57.617 +If someone can help fixing bugs, it would be really great. + +00:31:57.618 --> 00:32:04.291 +If someone knows specialized things, + +00:32:04.292 --> 00:32:06.873 +like for example Open Document Format, + +00:32:06.874 --> 00:32:08.759 +which I don't know very well, it would be + +00:32:08.760 --> 00:32:12.999 +really nice, because things like ODT export requires + +00:32:13.000 --> 00:32:14.089 +knowing that, and if someone already has the knowledge, + +00:32:14.090 --> 00:32:18.081 +it would be much easier + +00:32:18.082 --> 00:32:23.480 +if that person can help with such things. + +00:32:23.481 --> 00:32:26.868 +Although in the coming years, + +00:32:26.869 --> 00:32:28.159 +it's very important to have + +00:32:28.160 --> 00:32:28.830 +regular contributors + +00:32:28.831 --> 00:32:31.921 +because my life is my life + +00:32:31.922 --> 00:32:34.363 +and things may happen, + +00:32:34.364 --> 00:32:37.244 +so it would be nice to have some kind of backup + +00:32:37.245 --> 00:32:40.245 +so that bugs keep being fixed + +00:32:40.245 --> 00:32:40.245 +and things like patches being accepted + +00:32:40.246 --> 00:32:44.567 +and stuff like that, + +00:32:44.568 --> 00:32:46.168 +so that some person can at least + +00:32:46.169 --> 00:32:49.879 +temporarily take on my job. + +00:32:49.880 --> 00:32:51.510 +I would like to emphasize + +00:32:51.511 --> 00:32:53.319 +that the code contributors are the most + +00:32:53.320 --> 00:32:56.212 +important contributions for Org Mode. + +00:32:56.213 --> 00:33:02.079 +All other types are less important, really. + +NOTE Why contribute? + +00:33:02.080 --> 00:33:03.959 +I want to spend a couple of slides + +00:33:03.960 --> 00:33:07.719 +trying to motivate you to contribute. + +00:33:07.720 --> 00:33:11.128 +If you ever considered contributing + +00:33:11.129 --> 00:33:13.359 +or if you ever wished to have some + +00:33:13.360 --> 00:33:16.879 +feature in Org Mode, really don't wait, because + +00:33:16.880 --> 00:33:18.239 +most new features are contributed by people. + +00:33:18.240 --> 00:33:23.736 +They are not contributed by me. + +00:33:23.737 --> 00:33:25.199 +I contribute a few things, but I am alone. + +00:33:25.200 --> 00:33:27.038 +I cannot contribute many things. + +00:33:27.039 --> 00:33:30.300 +Most of the things are contributed by users + +00:33:30.301 --> 00:33:33.441 +who go ahead and submit patches. + +00:33:33.442 --> 00:33:37.323 +And even in very commonly requested features, + +00:33:37.324 --> 00:33:40.344 +it's usually someone who steps up. + +00:33:40.345 --> 00:33:42.199 +If you want something, don't wait. + +00:33:42.200 --> 00:33:44.206 +Just go ahead and write to mailing list. + +00:33:44.207 --> 00:33:46.207 +You don't have to submit a patch immediately. + +00:33:46.208 --> 00:33:48.729 +You can just say, I am interested. + +00:33:48.730 --> 00:33:53.819 +We will start from there. + +00:33:53.820 --> 00:33:56.043 +We'll start because that's my job + +00:33:56.044 --> 00:33:57.644 +and I will guide you through. + +00:33:57.645 --> 00:33:58.990 +If you have problems with Org in general, + +00:33:58.991 --> 00:34:02.308 +I'll explain, because that's what I know. + +00:34:02.309 --> 00:34:05.030 +I will explain how to implement things better, + +00:34:05.031 --> 00:34:06.999 +but I need someone to actually do + +00:34:07.000 --> 00:34:10.070 +the job and write the code. + +00:34:10.071 --> 00:34:19.057 +Even if you don't have 10 years experience with Elisp, + +00:34:19.058 --> 00:34:21.178 +it doesn't matter. You can learn on the way. + +00:34:21.179 --> 00:34:22.519 +There are many examples of this in the + +00:34:22.520 --> 00:34:25.642 +mailing list when we start slowly, + +00:34:25.643 --> 00:34:27.759 +fix things one by one, and + +00:34:27.760 --> 00:34:29.225 +eventually arrive to a good quality + +00:34:29.226 --> 00:34:31.707 +when the person is not experienced. + +00:34:31.708 --> 00:34:34.759 +You just need to be ready to learn things, + +00:34:34.760 --> 00:34:37.992 +Spend your free time (that's as usual, right?), + +00:34:37.993 --> 00:34:41.214 +and have the interest in specific thing + +00:34:41.215 --> 00:34:43.499 +you are contributing. + +00:34:43.500 --> 00:34:44.475 +Don't be afraid to be wrong. + +00:34:44.476 --> 00:34:47.578 +I will be there to assist. + +00:34:47.579 --> 00:34:48.937 +If you don't like emails, + +00:34:48.938 --> 00:34:51.239 +if you don't like patches, it doesn't matter. + +00:34:51.240 --> 00:34:55.361 +Again, you can share GitHub link. It's okay. + +00:34:55.362 --> 00:34:57.684 +You can go and modify some workflow directly. + +00:34:57.685 --> 00:34:59.565 +You submit the modified version. It's also okay. + +00:34:59.566 --> 00:35:05.119 +It's easy for me to create patches if I need to. + +00:35:05.120 --> 00:35:07.279 +If you don't like emails at all, you don't want to + +00:35:07.280 --> 00:35:11.879 +participate in the mailing list, it's not ideal, but I can + +00:35:11.880 --> 00:35:16.005 +still work with this. I am on IRC, I am on Matrix, + +00:35:16.006 --> 00:35:19.799 +you can ping me, it's yantar2. + +00:35:19.800 --> 00:35:22.347 +We also have monthly meetup, + +00:35:22.348 --> 00:35:23.987 +so you can go and ask by voice, + +00:35:23.988 --> 00:35:27.088 +we can just talk in person, discuss your ideas, + +00:35:27.089 --> 00:35:29.299 +it's also fine. + +00:35:29.300 --> 00:35:35.159 +The key point is that we always welcome new contributors. + +00:35:35.160 --> 00:35:40.239 +The more contributions to Org Mode is better. + +NOTE Benefits for code contributors + +00:35:40.240 --> 00:35:41.519 +To increase the motivation, + +00:35:41.520 --> 00:35:44.919 +I'll just try to show some benefits + +00:35:44.920 --> 00:35:49.479 +of contributing to Org Mode and free software in general. + +00:35:49.480 --> 00:35:52.079 +It can be actually useful for your CV if you're a programmer. + +00:35:52.080 --> 00:35:54.999 +It doesn't matter if it's Lisp, because you can have a pet + +00:35:55.000 --> 00:35:59.039 +project that demonstrates your skills, that you can finish + +00:35:59.040 --> 00:36:04.359 +something to a usable state. + +00:36:04.360 --> 00:36:06.800 +A pet project usually demonstrates + +00:36:06.801 --> 00:36:08.839 +that you can work alone, but it doesn't + +00:36:08.840 --> 00:36:12.119 +demonstrate anything about you working in a team, in the + +00:36:12.120 --> 00:36:15.519 +production team. When you contribute to + +00:36:15.520 --> 00:36:17.629 +Libre software, look, + +00:36:17.630 --> 00:36:20.759 +you will work with a number of people + +00:36:20.760 --> 00:36:24.352 +who contribute and comment on your work. + +00:36:24.353 --> 00:36:27.073 +You'll have to learn a new code base. + +00:36:27.074 --> 00:36:30.075 +You will have to follow certain standards. + +00:36:30.076 --> 00:36:33.239 +All these things, by having a public record + +00:36:33.240 --> 00:36:37.559 +of contribution, will be a valid point that proves your + +00:36:37.560 --> 00:36:42.087 +knowledge in your CV. I put a small quote + +00:36:42.088 --> 00:36:44.869 +(which I'm not going to read in the interest of time) + +00:36:44.870 --> 00:36:46.279 +from Rudolf Adamkovič, + +00:36:46.280 --> 00:36:50.159 +who is describing these three points in probably a + +00:36:50.160 --> 00:36:56.519 +more expressive way. + +00:36:56.520 --> 00:36:59.939 +Another benefit is you can actually get money from this. + +00:36:59.940 --> 00:37:03.999 +Thanks to a number of Org Mode users who kindly contribute to + +00:37:04.000 --> 00:37:07.199 +Org development, we have some amount of money + +00:37:07.200 --> 00:37:11.009 +coming in, and we don't hold on this money. + +00:37:11.010 --> 00:37:13.550 +If we get another person who contributes + +00:37:13.551 --> 00:37:17.511 +to Org regularly, we are happy to share this money, + +00:37:17.512 --> 00:37:22.539 +because we do know that + +00:37:22.540 --> 00:37:24.599 +getting some extra money, even a little bit, + +00:37:24.600 --> 00:37:27.216 +does improve motivation. + +00:37:27.217 --> 00:37:29.158 +We are really ready to share this. + +00:37:29.159 --> 00:37:33.523 +If you are serious about contributing, + +00:37:33.524 --> 00:37:34.919 +you can just request this + +00:37:34.920 --> 00:37:41.419 +and we can share a part of the donations to you. + +NOTE Contributing as non-programmer + +00:37:41.420 --> 00:37:45.199 +For non-programmers, we also have a lot of work to do. + +00:37:45.200 --> 00:37:47.092 +There's a lot of stuff we can do on the Org wiki, + +00:37:47.093 --> 00:37:48.754 +especially with CSS styles, + +00:37:48.755 --> 00:37:53.178 +with updating articles, + +00:37:53.179 --> 00:37:54.880 +with adding links to tutorials, + +00:37:54.881 --> 00:37:56.222 +or even writing tutorials about Org Mode. + +00:37:56.223 --> 00:38:01.081 +It would be nice to have more screencasts. + +00:38:01.082 --> 00:38:02.702 +It would be nice to improve Org manual, + +00:38:02.703 --> 00:38:05.283 +because that's the most difficult part for me + +00:38:05.284 --> 00:38:07.325 +because I'm too familiar with the code. + +00:38:07.326 --> 00:38:11.226 +Writing the manual when you know things internally + +00:38:11.227 --> 00:38:13.727 +is very hard. I just know too many things. + +00:38:13.728 --> 00:38:16.809 +I can assume that people know too much, + +00:38:16.810 --> 00:38:20.911 +that new users have no idea about certain things. + +00:38:20.912 --> 00:38:30.439 +I can just omit those without being aware. + +NOTE Got no free time, but still want to help? + +00:38:30.440 --> 00:38:33.319 +The final slide I would go to come back is about + +00:38:33.320 --> 00:38:37.919 +donations. Again, most important is contributing code, + +00:38:37.920 --> 00:38:42.879 +but I do hope that donations can + +00:38:42.880 --> 00:38:45.445 +increase the number of contributors. + +00:38:45.446 --> 00:38:47.999 +I don't know. I know for sure because some + +00:38:48.000 --> 00:38:52.439 +people like Timothy, who is participating in this, he did + +00:38:52.440 --> 00:38:55.319 +find the donations helpful, especially for more boring + +00:38:55.320 --> 00:39:00.079 +tasks like bug fixing and to move things + +00:39:00.080 --> 00:39:07.835 +over the long time. If you cannot contribute by other means, + +00:39:07.836 --> 00:39:12.996 +it would be appreciated to contribute money. + +NOTE Thank you + +00:39:12.997 --> 00:39:14.817 +We came to the end of my talk. + +00:39:14.818 --> 00:39:16.277 +Thank you for your attention. + +00:39:16.278 --> 00:39:19.698 +If you have any questions, please feel free to ask. + +00:39:19.699 --> 00:39:22.898 +I think we can even discuss further + +00:39:22.899 --> 00:39:28.180 +during the next Org Meetup in the coming week. + +00:39:28.181 --> 00:39:30.320 +There, if you have more detailed questions, + +00:39:30.321 --> 00:39:31.640 +we can continue discussing + +00:39:31.641 --> 00:39:34.440 +apart from what happens after this presentation. |