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.