emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [ANN] Tomorrow at EmacsConf 2024: The Future of Org
@ 2024-12-06 19:25 Ihor Radchenko
  2024-12-09 19:09 ` Ihor Radchenko
  0 siblings, 1 reply; 4+ messages in thread
From: Ihor Radchenko @ 2024-12-06 19:25 UTC (permalink / raw)
  To: emacs-orgmode

Dear all,

Tomorrow, at EmacsConf 2024, I will talk about the future of Org mode.

My talk: https://emacsconf.org/2024/talks/org-update/

Time: Saturday, Dec 7, 2024; 10:20 US/Eastern (16:20 Europe/Paris)

The talk will be 40 minutes long.

Me, Bastien, and (hopefully) Carsten will be around for Q&A after the talk.

If necessary, we may later continue the discussion during OrgMeetup
(https://orgmode.org/worg/orgmeetup.html) next week. Or use this thread.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANN] Tomorrow at EmacsConf 2024: The Future of Org
  2024-12-06 19:25 [ANN] Tomorrow at EmacsConf 2024: The Future of Org Ihor Radchenko
@ 2024-12-09 19:09 ` Ihor Radchenko
  2024-12-09 21:08   ` Leo Butler
  2024-12-09 21:13   ` Ihor Radchenko
  0 siblings, 2 replies; 4+ messages in thread
From: Ihor Radchenko @ 2024-12-09 19:09 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 542 bytes --]

Ihor Radchenko <yantar92@posteo.net> writes:

> Tomorrow, at EmacsConf 2024, I will talk about the future of Org mode.
>
> My talk: https://emacsconf.org/2024/talks/org-update/

Attaching the talk slides, as an Org and pdf files, for your reference.

Also, tomorrow we will have OrgMeetup where you can ask me anything,
including about the talk, without tight time limits.

Announcement: https://list.orgmode.org/8734iwel1o.fsf@localhost/T/#u
URL: https://meet.jit.si/OrgMeetup
Time & Date: <2024-12-11 Wed 19:00-21:00 @+03,Europe/Istanbul>


[-- Attachment #2: org-update.pdf --]
[-- Type: application/pdf, Size: 715047 bytes --]

[-- Attachment #3: presentation.org --]
[-- Type: application/vnd.lotus-organizer, Size: 30532 bytes --]

:PROPERTIES:
:DIR:      ~/.data/73/7e5c8f-1f73-417b-894a-9aceea5e4a69/
:END:
#+TITLE: The Future of Org
#+AUTHOR: Ihor Radchenko (yantar92)
#+OPTIONS: H:2 toc:t num:t
#+date: EmacsConf 2024
#+BEAMER_THEME: Madrid
#+beamer_header: \definecolor{OrgUnicornBody}{HTML}{77AA99}
#+beamer_header: \definecolor{OrgUnicornHair}{HTML}{50362B}
#+beamer_header: \setbeamercolor*{structure}{fg=OrgUnicornBody}
#+latex_header: \usepackage{svg}
#+beamer_header: \title[org-update]{The Future of Org}
#+beamer_header: \author[Ihor Radchenko (yantar92)]
#+beamer_header: {
#+beamer_header:  \textbf{Ihor Radchenko}, Bastien Guerry \\ \footnotesize \vspace{1em}
#+beamer_header:  Email: \texttt{yantar92@posteo.net} \\
#+beamer_header:  Matrix: \texttt{@yantar92:matrix.org} \\
#+beamer_header:  Mastodon: \texttt{fosstodon.org/@yantar92} \\
#+beamer_header:  \vspace{1.5em}\includesvg[height=5em]{org-mode-unicorn.svg}\\\vspace{-1.5em}
#+beamer_header: }
#+beamer_header: \date[EmacsConf 2024]{Dec 7, 2024 \\ EmacsConf 2024}
#+beamer_header: \setbeamertemplate{navigation symbols}{} %remove navigation symbols
#+beamer_header: \AtBeginSection[]{
#+beamer_header:   \begin{frame}[noframenumbering]{Outline}
#+beamer_header:   \small \tableofcontents[currentsection]
#+beamer_header:   \end{frame} 
#+beamer_header: }

#+macro: contd @@beamer:{\scriptsize@@(contd.)@@beamer:}@@
#+macro: tiny @@beamer:{\tiny{}@@$1 @@beamer:}@@
#+macro: script @@beamer:{\scriptsize{}@@$1 @@beamer:}@@

* A word from Bastien Guerry
** A word from Bastien Guerry :ATTACH:
#+beamer: \centering
[[attachment:org-bye-bzg.ogg][file:clipboard-20241203T193207.png]]
* The new maintainer
** My step-by-step journey to Org maintenance

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- Background :: Material scientist
- 2015 :: Use Org to tame my PhD and research work (no idea about Elisp)
- 2017 :: Joined the mailing list to report a bug\\
  @@beamer:{\tiny@@https://lists.gnu.org/archive/html/emacs-orgmode/2017-12/msg00502.html
  @@beamer:}@@
- 2018 :: Actively participating (and learning Elisp)
- 2019 :: My Org files grew enough to lag (first Emacs bug report)\\
  @@beamer:{\tiny@@https://debbugs.gnu.org/35453
  @@beamer:}@@

#+beamer: \vfill
*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
I had no prior experience with Elisp, but\\
using Emacs and reading forums gave enough training

** My step-by-step journey to Org maintenance {{{contd}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- 2020 :: Annoyed enough by lags (and COVID lockdown) to contribute a fix myself\\
  @@beamer:{\tiny@@https://list.orgmode.org/87h7x9e5jo.fsf@localhost/
  @@beamer:}@@
- \approx{}2021 :: Got write access to savannah; decided to help with bug fixes in some areas
- Sep 2021 :: Offer from Bastien to become a maintainer
- 2022 :: Helping with all the bug reports and list discussions
- end of 2022 :: Second offer from Bastien (and unstable job situation)
- 2023 - Aug 2024 :: Working on Org full time
- Sep 2024 :: Third maintenance offer (accepted)

#+beamer: \vfill
*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Helping to fix bugs made me learn various parts of Org\\
 *Anyone interested in Org may repeat my journey regardless of experience*

** Priorities for Org maintenance

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

1. Codebase stability: fewer bugs, better APIs, long-term stability
2. Growing the Org community: new contributors, Org forums and chats
3. Support Org-related third-party packages, mobile apps, parsers
4. Org markup development
5. Strategically important new features

#+beamer: \vfill
*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Active Org community and contributors are the key to get new features\\
A sole maintainer cannot do all the above even working full time

* Codebase: towards better APIs and Emacs integration
** Modular Org :ATTACH:

#+attr_latex: :height 0.8\textheight
[[attachment:clipboard-20241111T181313.png]]

#+beamer: \centering
#+beamer: \vspace{-1em}
{{{tiny(https://list.orgmode.org/orgmode/E1kIPh1-0001Lu-Rg@fencepost.gnu.org/)}}}

** Slim down large Org libraries

*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Too large and complex libraries often discourage contributions\\
{{{script(example: alphapapa's alternative to org-agenda (part of org-ql))}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

#+beamer: \vfill
- Way too many Org libs are way too large
  - I plan to split large libs into smaller
  - The monsters like =org.el=, =org-agenda.el=, =org-table.el=,
    =org-list.el=, =ob-core.el=, =org-clock.el=, and =org-compat.el=
    should slim down
  - The existing 127 Org libraries will be turned into 263 (WIP!)
    smaller libraries


#+beamer: \vfill
*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
{{{script(WIP: https://git.sr.ht/~yantar92/org-mode/log/feature/refactor-deeps-v2 )}}}

** Upstream generic Org libraries [tentative list]

*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Upstreamed libs will benefit from Emacs dev's oversight

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- =org-capture=: \dots is originally forked from remember.el\\
  {{{script(https://lists.gnu.org/archive/html/emacs-orgmode/2023-12/msg00412.html)}}}
- =org-protocol=: Processing external input into Emacs\\
  from command line, from clicked URLs as URL handler, etc.\\
  Unlike running commands directly (which is unsafe), =org-protocol=
  can be used for safe interaction with external processes
- =org-persist=: generic cache API
- =org-fold-core=: Generic folding API
- =org-read-date=: Interactive date/time selection

** Upstream generic Org libraries [tentative list] {{{contd}}}

- =org-preview-image= and =org-preview-latex=: Image preview\\
  Does not have to be limited to Org mode buffers\\
  {{{script(https://youtu.be/u44X_th6_oY?t=199 (credit: Karthik Chikmagalur))}}}\\
  {{{script(https://list.orgmode.org/orgmode/87edbhljr7.fsf@hyperspace/)}}}
- =org-diary-lib=: Org extensions for diary-lib.el
- =org-clock-notify=: System notifications
- =org-idle=: Advanced idle time tracking\\
  not just for Emacs idleness, but for system idle time as well
- =org-duration=: Manipulate durations like 1d 3h 5min

** Upstream generic Org libraries [tentative list] {{{contd}}}

- =org-agenda-undo=: undoing changes in multiple buffers at once\\
  This is the way undo works in agenda buffers, undoing changes in
  multiple headlines changed from agenda, even when they live in
  different Org files.
- =org-time=: Extra functions to work with Emacs time data\\
- =org-timer=: (almost) generic timer for Emacs
- =org-track-markers=: Keeping relative positions of markers
  when cutting/pasting text in buffers\\
  This is the way agenda does not get broken by
  cutting/pasting/refiling the underlying headings around.

** Upstream generic Org libraries [tentative list] {{{contd}}}

- =org-macs=: many small helper functions
- (maybe) =ox=, =org-element-ast=: Org exporter can be generalized\\
  The core idea of Org export does not rely upon the details of Org
  syntax.  It might use arbitrary parse trees (say, from tree-sitter)
  as input\\
  {{{tiny(https://yhetil.org/emacs-devel/87frngx4fx.fsf@localhost/)}}}
- (maybe) =ol=: Org links can already be used outside Org mode\\
  Can we do better?
- (maybe) =org-table-formula=: Org spreadsheets\\
  Org spreadsheets are not inherently tied to Org markup and might be
  used more generally

** Use modern Emacs APIs and libraries

*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Org covers many built-in Emacs features, but not always the newer ones

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

Recently added:
- =yank-media=, =dnd=: Drag and drop + pasting from system clipboard
  Credit: Visuwesh\\
  {{{tiny(https://list.orgmode.org/orgmode/87jzsintv0.fsf@gmail.com/)}}}

To be added:
- =transient.el=: better replacement for Org menus (export, agenda, tempo, etc.)\\
  Org has an old, ad-hoc, limited, self-written menu system.  And it
  has nothing to do with Org itself.\\
  Initial WIP: Tor-björn Claesson\\
  {{{tiny(https://list.orgmode.org/orgmode/8734m28l9a.fsf@gmail.com/)}}}

** Use modern Emacs APIs and libraries {{{contd}}}

To be added {{{contd}}}:
- =compat.el=: Backwards compatibility library for Emacs\\
  Org has self-written =org-compat.el=.  =compat.el= is strictly
  better when we need compatibility wrappers for older Emacs versions.\\
  {{{tiny(https://list.orgmode.org/orgmode/87v8ks6rhf.fsf@localhost/)}}}
- =track-changes.el=: New library to track edits in buffer\\
  Now, Org uses a self-written implementation

Wish list:
- =context-menu-mode=: Context menu support\\
  This is a relatively new addition to Emacs.  Should be supported by
  all the major modes.
- =touch-screen=: Touch screen support\\
  This is very important feature for Android.
- =thingatpt=: Generic parser/syntax queries


** Improve Org parser APIs

Org uses two approaches to parsing simultaneously:
1. Proper parser (=org-element=)
2. Ad-hoc approximate regexp-based parser

#+beamer: \vfill
We need to modify the parser to support all the internal use cases:

1. Generalize Org AST to be used in =ox.el= and =org-element.el= consistently\\
   {{{script(done in =org-element-ast.el=)}}}
2. The parser should work in real time (fast)\\
   - =org-element-cache= is enabled by default since Org 9.6
   - =org-element-cache= is yet to support caching objects\\
     (markup vs. paragraphs and above)

** Improve Org parser APIs {{{contd}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

We need to modify the parser to support all the internal use cases {{{contd}}}:

3. [@3] Fontification should use the parser\\
   {{{tiny(https://list.orgmode.org/orgmode/87ee7c9quk.fsf@localhost/)}}}
4. Wish: Editing Org files should use parser\\
   We may need something akin =org-ml=\\
   {{{tiny(https://github.com/ndwarshuis/org-ml)}}}

*** :B_hblock
:PROPERTIES:
:BEAMER_env: hblock
:ID:       1e0ed6ca-79b1-49ba-870a-dafe9c089752
:END:

#+beamer: \centering
 =org-element= APIs should eventually be used everywhere

** Improve Org babel APIs

- Org babel backends currently use ad-hoc, sometimes undocumented API
  - Backends have to use specific function names
  - Header arg conventions are often undocumented
  - Some APIs are not always reliable (async evaluation)
  - Babel backend documentation lives on WORG (Org wiki)\\
    {{{tiny(https://orgmode.org/worg/org-contrib/babel/languages/index.html)}}}


- =ob-core= should use more =ox.el=-like backend definition style
- WORG documentation must eventually move to the manual
- Async API should be generalized and fixed\\
  Credit: Bruno Barbier\\
  {{{tiny(https://list.orgmode.org/orgmode/65df0895.df0a0220.a68c8.0966@mx.google.com/)}}}

* Beyond Org code and Emacs: third-party packages, apps, parsers

** =org-contrib=

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:
#+beamer: \centering
Org mode is large. Some specialized parts are hard to maintain and
require knowing very specialized specs/languages.

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- Since Org 9.5, =org-contrib= is no longer a part of Org mode\\
  {{{tiny(https://list.orgmode.org/orgmode/87a6qnixnr.fsf@gnu.org/)}}}
- We moved a number of specialized Org libraries to =org-contrib=\\
  {{{tiny(https://list.orgmode.org/orgmode/87bl9rq29m.fsf@gnu.org/)}}}
  - =ob-vala=, =ob-shen=, =ob-ledger=, =ob-picolisp=, =ob-mscgen=,
    =ob-[h]ledger=, =ob-io=, =ob-ebnf=, =ob-coq=, =ob-asymptote=,
    =ob-abc=, =ob-J=
- Org itself has a fair bit of specialized libs:
  =org-feed=, =org-mobile=, various =ob-*= languages, various =ox-*=
  exporters

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 If you know and use specialized libs\\
 from =org-contrib= or Org itself, *please do volunteer*

** Org orphanage

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- =org-contrib=, as for now, is a collection of mostly abandoned libraries
- *Org core team is still maintaining them, but on the minimal level*
- In addition, we are open to provide help to third-party packages
  that can no longer be maintained
  - https://orgmode.org/worg/org-orphanage.html has a list of
    libraries in a search for new maintainers
  - We are also a part of Jonas Bernoulli's (tarsuis) Emacs orphanage
    https://github.com/emacsorphanage/

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
If you are an author/maintainer of an Org-related library and unable
to provide continuous maintenance, feel free to write to Org mailing
list.

** Mobile apps and parsers

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

Org markup is understood by a number of mobile and web apps (https://orgmode.org/tools.html):
- Orgzly revived (Android): https://www.orgzlyrevived.com/
- MobileOrg (iOS): https://mobileorg.github.io/features/
- Orgro (Android, iOS): https://orgro.org/
- Organice (Web): https://organice.200ok.ch/
- Org Note (Android, Web): https://github.com/Artawower/orgnote
- Logseq (Android, Web, Desktop): https://logseq.com/

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
We cannot directly contribute to non-Elisp development,\\
but we do want to unify the Org markup and avoid Markdown fate with
multiple syntax flavors

** Mobile apps and parsers {{{contd}}}

- There are existing Org parsers for Pico Lisp, Common Lisp, NodeJS,
  Python, Perl, Rust, JavaScript, Dart, Go, Julia, Clojure,
  Tree-sitter, OCaml, Haskell, and Typescript\\
  {{{tiny(https://orgmode.org/tools.html)}}}
- They often implement a subset of Org syntax
- *We provide reference Org syntax spec in https://orgmode.org/worg/org-syntax.html*
- Eventually, our spec will be submitted as IETF RFC\\
  {{{tiny(https://list.orgmode.org/orgmode/871rjhha8t.fsf@gmail.com/)}}}
- I also hope to implement a reference set of tests as a benchmark and parser development aid\\
  {{{tiny(https://list.orgmode.org/orgmode/87fsqzi4tw.fsf@localhost/)}}}

* Org syntax development
** Long-standing syntax problems
*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Before we fix Org syntax blueprint (IETF), we should resolve the major
inconsistencies and problems.

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

1. Org mode does not always parse Org syntax consistently
   - Some parts of Org use a slightly different parser (regexp-based)
   - For example, numeric priorities in headings are not treated consistently\\
     {{{tiny(https://list.orgmode.org/orgmode/CANDZv_N394TYMy30-KuEQV+eZ0FEkm4GSjTrkUtDViK_-DkX-Q@mail.gmail.com/)}}}
2. Org syntax has a number of edge cases that should better be addressed
   - Intra-word markup is awkward in Org\\
     {{{tiny(https://list.orgmode.org/orgmode/4897bc60-b74f-ccfd-e13e-9b89a1194fdf@mailbox.org/)}}}\\
     {{{tiny(https://list.orgmode.org/orgmode/87fw46rwd6.fsf@selune.samsung.net/)}}}
   - We often recommend zero-width space as a kind of escape character, but many people dislike it\\
     {{{tiny(https://list.orgmode.org/orgmode/87ilw5yhv3.fsf@posteo.net/)}}}
     
** Long-standing syntax problems {{{contd}}}

2. [@2] Org syntax a number of edge cases that should better be addressed {{{contd}}}
   - ==/+_= are tricky when used inside verbatim markup beside spaces\\
     {{{tiny(https://list.orgmode.org/orgmode/87v8vng70x.fsf@web.de/)}}}
   - Edge cases with double blank lines inside verbatim blocks\\
     {{{tiny(https://list.orgmode.org/orgmode/87mtbilzhm.fsf@localhost/)}}}
3. Inlinetask syntax is not great both from human and technical point
   of view. It should be re-designed\\
   {{{tiny(https://list.orgmode.org/orgmode/87fs47h2x4.fsf@localhost/)}}}


** New syntax features

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Some features have been requested many times\\
or can solve the existing problems

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:


- Time zone support in timestamps\\
  *the syntax has been decided; we need patches*\\
  {{{tiny(https://list.orgmode.org/87tu063ox2.fsf@localhost/)}}}
- Better repeater specifications in timestamps\\
  {{{tiny(https://list.orgmode.org/877cxp1fbx.fsf@localhost/)}}}
- Custom syntax elements (aka inline special blocks)\\
  Credit: Juan Manuel Macías\\
  {{{tiny(https://list.orgmode.org/875xwqj4tl.fsf@localhost/)}}}
- Multi-line cells in tables (we have no good ideas here; *please help*)\\
  {{{tiny(https://list.orgmode.org/orgmode/877d0ia7vd.fsf@mat.ucm.es/)}}}

* Strategic new features
** New features I hope to see in Org

1. Asynchronous LaTeX (and non-LaTeX) previews (WIP)\\
   Credit: Timothy Chapman (tecosaur/TEC), Karthik Chikmagalur (karthink)\\
   {{{tiny(https://list.orgmode.org/orgmode/87lek2up0w.fsf@tec.tecosaur.net)}}}
2. Make =org-ql= part of Org core (WIP)\\
   Credit: Adam Porter (alphapapa)\\
   {{{tiny(https://github.com/alphapapa/org-ql/issues/409)}}}
3. Multipage export (WIP)\\
   Credit: Orm Finnendahl\\
   {{{tiny(https://list.orgmode.org/orgmode/ZoUdiTfbYqzPwTiX@orm-t14s/)}}}

** New features I hope to see in Org {{{contd}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

4. [@4] Wish: Multi-language support
   - exporting multi-language documents
   - translation workflows
5. Wish: Collaborative editing
   - tracking changes
   - foreign comments
   - import from non-Org formats (with comments)

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 *If you also want to see these features, please consider contributing*

* Org community
** Org community forums \rightarrow Org mailing list
*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- *All the new features and ideas are not coming from nowhere*
- Most of the ideas are first proposed and discussed on various forums/chats
  - Mailing list: https://list.orgmode.org/
  - Reddit: https://reddit.com/r/orgmode/
  - Mastodon: https://fosstodon.org/tags/orgmode
  - IRC/Matrix: https://web.libera.chat/#org-mode, https://matrix.to/#/%23org-mode:matrix.org
  - Meetups: https://emacslife.com/calendar/
  - ... and non-English, like
    - https://emacs-china.org/
    - https://t.me/emacs_ru

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 *Eventually, we want all the serious discussions to happen on the mailing list*

see https://orgmode.org/worg/org-mailing-list.html

 *... and all the non-trivial write-ups to end up in WORG (Org wiki)*

see https://orgmode.org/worg/

** Org mailing list \rightarrow world

- *Not everyone is interested reading the _whole_ Org mailing list*
- There are news feeds exposing important topics discussed on the list
  - via Woof! (news feeds in HTML, RSS, ORG, JSON, and MD)
    - https://tracker.orgmode.org/news\\
      announcements, blog-like posts
    - https://tracker.orgmode.org/requests\\
      feature requests, important discussions
  - weekly https://sachachua.com/blog/category/emacs-news/\\
    {{{script(Credit: Sacha Chua)}}}
  - Woof! RSS \rightarrow chatbots
    - there is experimental bot posting news and discussions in #org-mode Matrix room
    - wish: similar bots for reddit, mastodon, maybe IRC

- *We are also looking for ideas to improve CSS styles* in
  https://list.orgmode.org/ and https://orgmode.org/worg/
  - wish: mailing list archives could have forum-like look&feel

** Contribute ideas!

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
Unlike emacs-devel, Org mailing list is not restricted\\
to Org development. It is more like forum.

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- Anyone can post on the mailing list, without registration
- *If you have any ideas, questions, or just rant about Org mode, feel free to post*
- We'd also love to add new interesting blog posts to WORG topic collections

* The call for contributions

** How much can a single person do?

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

#+begin_src gnuplot :var data=clock-data :file clocked.png
  @PNG
  set title 'Hours spent weekly working on Org mode'
  set xdata time
  set timefmt "%Y/%m/%d"
  set format x "%U"
  set xrange ['2024/02/25':'2024/12/07']
  set grid
  set xlabel "Week#, in 2024"
  set ylabel "Clocked hours"
  set arrow from '2024/08/30', 31.89 to '2024/08/30', 8 lw 2 lc rgb 'red'
  set label "job to pay bills" at '2024/08/30', 31.89 offset character 1.5, character -7 rotate 90
  plot data u 1:2 with impulses lw 5 not, [:'2024/08/30'] 31.89 w l lw 2 lc rgb 'red' t'recorded \~32 hours/week', ['2024/08/30':] 8 w l lw 2 lc rgb 'red' t'target 8 hours/week (w job)'
#+end_src

#+attr_latex: :width 0.7\linewidth
#+RESULTS:
[[attachment:clocked.png]]

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 There is no way I can handle everything myself,\\
  even if I work full time on Org

** Contribute code!

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 We *badly* need regular contributors

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- In addition to all the listed plans&ideas, I myself now have 422 bug-related
  tasks, 859 feature ideas, and 894 ideas about Org improvements
  - Too many ideas, too little man-hours
- We need help fixing bugs and maintaining specialized libraries
- We need help implementing new features
- If anything, I need people who can help me if life makes unexpected
  turns (who knows what happens in 1, 2, 5 years from now)
- Among all types of contributions we prefer code

** Why contribute?

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- The absolute majority of new features are added by people who need
  them
- Even the commonly requested features!

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 *Got a feature you wish existed? Do not wait for others to contribute it!*\\
 Write to mailing list, and we can help to get started.

** Why contribute? {{{contd}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- My job as a maintainer is guiding people through the Org code, if
  needed
- I will also check the code, point out mistakes, and suggest
  improvements
- Even Elisp beginners can contribute simple things under guidance\\
  All we need is:
  1. Your interest in specific new feature or area of Org
  2. Your free time spent contributing
  3. Readiness to learn

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 *You should not be afraid to be wrong*

** Why contribute? {{{contd}}}

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:
- Not comfortable with patches?
  - git repos with changes are ok
  - even modified versions of files are ok
  - We will help as needed
- Not comfortable with emails?
  - there is #org-mode IRC and Matrix chats where you can first
    discuss rough ideas. You can ping me (yantar92) there\\
    {{{tiny(https://web.libera.chat/#org-mode)}}}\\
    {{{tiny(https://matrix.to/#/%23org-mode:matrix.org)}}}
  - We have monthly meetup where you can ask by voice\\
    {{{tiny(https://orgmode.org/worg/orgmeetup.html)}}}

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:

#+beamer: \centering
 *If you have any doubts, just ask. We always welcome new contributors*

** Benefits for code contributors

- *Contributing to Libre software can help with CV*
  - Personally written pet projects are a known good proof of skills
  - Contributing to community package can add more
    1. It is a proof of an ability to work in a team
    2. It is a proof of an ability to understand large codebases
    3. It is a proof of an ability to follow project standards

#+beamer: \vfill
#+beamer: \scriptsize
#+begin_quote
Imagine you are the main programmer on the team, and you are hiring a
colleague.  You have a bunch of resumes on your desk.  Most of them
contain puffy words and perhaps basic portfolios, half-finished simple
programs that nobody uses, if anything.  The last resume, unlike the
others, shows contributions to well-established, real-world production
code-bases.  What is more, you can readily check both the patches and
the discussions, in one click, to see how the person talks, to machines
and to people.  Which CV would you, as the expert, prefer?

People are struggling to differentiate their offering, and this is how
they can do it.  The fact it is not seen much in the wild is a plus!
And it is understandable why, as it is not easy to contribute to, say, a
complex C++ code base.  Emacs is unique in this regard, and Org inherits
the advantage.

\tiny
\hfill by Rudolf Adamkovič,\\
\hfill the author of MathJax 3+ support in HTML export
#+end_quote


** Benefits for code contributors {{{contd}}} :ATTACH:

- Thanks to many kind users, Org mode receives a noticeable amount of donations\\
  {{{tiny(https://liberapay.com/org-mode/)}}}
- We share these donations among the interested regular contributors\\
  {{{tiny(https://liberapay.com/org-mode/income/)}}}
- *If you become a regular Org contributor, you can also claim the share*

[[attachment:income-history.png]]

** Contributing as non-programmer

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:
- WORG needs more love
  - a number of articles is outdated
  - CSS styles can be improved
    - table of contents popup is not ideal on small screens
    - it would be nice to have dark/light themes and ability to switch
    - it would be nice to have some kind of "modern" theme as an option
  - more tutorials or links to good tutorials will be welcome\\
    {{{tiny(https://orgmode.org/worg/org-tutorials/index.html)}}}
- Would be nice to have more screencasts like in
  https://orgmode.org/features.html
- Org manual is sometimes too technical (it is written by devs who are
  a bit too familiar with the code)
  - This is where input from ordinary users is invaluable

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:
#+beamer: \centering
{{{script(https://list.orgmode.org/orgmode/87y1rat98w.fsf@localhost/)}}}

** Got no free time, but still want to help?

*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:

- If you cannot help by code, text, or ideas, consider donating
- *Donations do help a lot*
  1. It increases motivation to do mundane tasks, like fixing bugs and
     writing tests
  2. It affects the amount of free time spent working on Org
  3. For a while, it was even the only source of income for me
     personally

#+begin_quote
\scriptsize
Donations (both the group setup, and what people donate to me
individually) have increased my motivation to work on Org, even as my
time is split in more directions. It's a clear signal that the hours
that are put in are valued, and ultimately that makes me feel more
upbeat about the work, particularly when it's in the "bug squashing
slog" phase as the LaTeX preview revamp is.

Aside from the direct impact, there are a bunch of indirect/secondary
but positive aspects to it too: it also makes me feel that the
community really values the work put into open-source projects like
this.

\tiny
\hfill by Timothy Chapman (tecosaur/TEC),\\
\hfill co-author of async LaTeX preview feature,\\
\hfill the maintainer of ox-html and org-plot
#+end_quote

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:
#+beamer: \centering
We use libre website to get donations:
https://liberapay.com/org-mode/
** Thank you! :B_fullframe:
:PROPERTIES:
:ID:       3129cc25-159b-4fa0-8cf4-d2474e6afd34
:BEAMER_env: fullframe
:END:

#+attr_latex: :height 5em
<attachment:org-mode-unicorn.svg>

*** :B_hblock:
:PROPERTIES:
:BEAMER_env: hblock
:END:
#+beamer: \centering
@@beamer:\Huge@@ Thank you!@@beamer:\small@@
*** :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:
#+beamer: \vfill
- EmacsConf page of this talk: https://emacsconf.org/2024/talks/org-update/
- How to contribute: https://orgmode.org/worg/org-contribute.html 
- Support Org mode: <https://liberapay.com/org-mode/>

* Clocking data for me working on Org :NOEXPORT:
#+name: clock-data
| 2024/03/08 | 13:58 | 13.966666666666667 |
| 2024/03/15 | 14:00 |               14.0 |
| 2024/03/22 | 26:26 | 26.433333333333334 |
| 2024/03/29 | 32:40 | 32.666666666666664 |
| 2024/04/05 | 34:17 |  34.28333333333333 |
| 2024/04/12 | 36:48 |               36.8 |
| 2024/04/19 | 21:27 |              21.45 |
| 2024/04/26 | 36:08 |  36.13333333333333 |
| 2024/05/03 | 46:32 |  46.53333333333333 |
| 2024/05/10 | 25:36 |               25.6 |
| 2024/05/17 | 23:06 |               23.1 |
| 2024/05/24 | 23:34 | 23.566666666666666 |
| 2024/05/31 | 22:39 |              22.65 |
| 2024/06/07 | 40:24 |               40.4 |
| 2024/06/14 | 42:37 |  42.61666666666667 |
| 2024/06/22 | 40:00 |               40.0 |
| 2024/06/28 | 33:21 |              33.35 |
| 2024/07/05 | 36:36 |               36.6 |
| 2024/07/12 | 34:41 |  34.68333333333333 |
| 2024/07/19 | 25:49 | 25.816666666666666 |
| 2024/07/26 | 18:35 | 18.583333333333332 |
| 2024/08/02 | 48:32 |  48.53333333333333 |
| 2024/08/09 | 53:02 |  53.03333333333333 |
| 2024/08/16 | 40:15 |              40.25 |
| 2024/08/23 | 26:13 | 26.216666666666665 |
| 2024/08/30 |  1:07 | 1.1166666666666667 |
| 2024/09/06 |  6:53 |  6.883333333333334 |
| 2024/09/13 |  3:29 | 3.4833333333333334 |
| 2024/09/20 |  0:06 |                0.1 |
| 2024/09/27 |  1:08 | 1.1333333333333333 |
| 2024/10/04 |  4:27 |               4.45 |
| 2024/10/11 |  8:46 |  8.766666666666667 |
| 2024/10/18 | 13:00 |               13.0 |
| 2024/10/25 |  8:47 |  8.783333333333333 |
| 2024/11/01 |  8:17 |  8.283333333333333 |
| 2024/11/08 |  2:46 | 2.7666666666666666 |
| 2024/11/15 | 10:50 | 10.833333333333334 |
| 2024/11/22 |  4:34 |  4.566666666666666 |
| 2024/12/01 |  5:24 |                5.4 |
#+tblfm: $3='(/ (org-duration-to-minutes $2) 60)
#+begin_src python :var data=clock-data :results output
import pandas as pd
pd_data = pd.DataFrame(data)
print(pd_data[[2]].describe())
#+end_src

#+RESULTS:
:                2
: count  25.000000
: mean   31.890667
: std    10.487820
: min    13.966667
: 25%    23.566667
: 50%    33.350000
: 75%    40.000000
: max    53.033333

[-- Attachment #4: Type: text/plain, Size: 223 bytes --]


-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANN] Tomorrow at EmacsConf 2024: The Future of Org
  2024-12-09 19:09 ` Ihor Radchenko
@ 2024-12-09 21:08   ` Leo Butler
  2024-12-09 21:13   ` Ihor Radchenko
  1 sibling, 0 replies; 4+ messages in thread
From: Leo Butler @ 2024-12-09 21:08 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode@gnu.org

On Mon, Dec 09 2024, Ihor Radchenko <yantar92@posteo.net> wrote:

> Ihor Radchenko <yantar92@posteo.net> writes:
>
>> Tomorrow, at EmacsConf 2024, I will talk about the future of Org mode.
>>
>> My talk: https://emacsconf.org/2024/talks/org-update/
>
> Attaching the talk slides, as an Org and pdf files, for your reference.
>
> Also, tomorrow we will have OrgMeetup where you can ask me anything,
> including about the talk, without tight time limits.
>
> Announcement: https://list.orgmode.org/8734iwel1o.fsf@localhost/T/#u
> URL: https://meet.jit.si/OrgMeetup
> Time & Date: <2024-12-11 Wed 19:00-21:00 @+03,Europe/Istanbul>

Ihor,

Thanks for sharing those slides, your Org file and your work on Org.

Best regards,
Leo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ANN] Tomorrow at EmacsConf 2024: The Future of Org
  2024-12-09 19:09 ` Ihor Radchenko
  2024-12-09 21:08   ` Leo Butler
@ 2024-12-09 21:13   ` Ihor Radchenko
  1 sibling, 0 replies; 4+ messages in thread
From: Ihor Radchenko @ 2024-12-09 21:13 UTC (permalink / raw)
  To: emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

> Also, tomorrow we will have OrgMeetup where you can ask me anything,
        ^the day after tomorrow, Wed
> including about the talk, without tight time limits.
> ...
> Time & Date: <2024-12-11 Wed 19:00-21:00 @+03,Europe/Istanbul>

Oops. Not tomorrow, but on Wednesday, as in the timestamp.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-12-09 21:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-06 19:25 [ANN] Tomorrow at EmacsConf 2024: The Future of Org Ihor Radchenko
2024-12-09 19:09 ` Ihor Radchenko
2024-12-09 21:08   ` Leo Butler
2024-12-09 21:13   ` Ihor Radchenko

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).