* notifications for todo items @ 2012-02-22 23:38 Peter Münster 2012-02-23 1:28 ` Nick Dokos 0 siblings, 1 reply; 12+ messages in thread From: Peter Münster @ 2012-02-22 23:38 UTC (permalink / raw) To: emacs-orgmode Hi, I've written a module, that allows flexible notifications for todo items with deadline: http://pmrb.free.fr/work/OS/org-notify.el Feedback is welcome! -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-22 23:38 notifications for todo items Peter Münster @ 2012-02-23 1:28 ` Nick Dokos 2012-02-23 8:36 ` Peter Münster 0 siblings, 1 reply; 12+ messages in thread From: Nick Dokos @ 2012-02-23 1:28 UTC (permalink / raw) To: =?utf-8?Q?Peter_M=C3=BCnster?=; +Cc: nicholas.dokos, emacs-orgmode Peter Münster <pmlists@free.fr> wrote: > Hi, > > I've written a module, that allows flexible notifications for todo items > with deadline: http://pmrb.free.fr/work/OS/org-notify.el > > Feedback is welcome! > I've only taken a quick glance, but the question that immediately came to my mind was: what does this do that appt.el (and its org interface) does not? Note that I don't know the answer: I just have the question :-) BTW, there are some FAQs that address such appointment things (check the "Appointments/Diary" section of the FAQ). Maybe you can take a look and then come back and tell us how your package stacks up. Thanks, Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-23 1:28 ` Nick Dokos @ 2012-02-23 8:36 ` Peter Münster 2012-02-23 9:06 ` Nick Dokos 2012-02-25 0:08 ` Nick Dokos 0 siblings, 2 replies; 12+ messages in thread From: Peter Münster @ 2012-02-23 8:36 UTC (permalink / raw) To: emacs-orgmode On Thu, Feb 23 2012, Nick Dokos wrote: > what does this do that appt.el (and its org interface) does not? Sorry, I've totally forgotten to write about my motivation, to create such an org-notify module. Here a summary: - different warning periods for different todo-types - fine grained warning periods (smallest unit is second) - continue notifications, when deadline is overdue - easy modification of timestamps (just one click, to say "let's do it tomorrow") - switch from "todo" to "done" by clicking on the notification window - configurable notification types (email, notifications-notify, beep, etc.) - configurable notification period - configurable notification duration - crescendo notifications (be more aggressive, when time gets closer to deadline) There was a little thread about this subject: http://thread.gmane.org/gmane.emacs.orgmode/48832 Example usage: (org-notify-add 'appt '(:time "-1s" :period "20s" :duration 10 :actions (org-notify-action-message org-notify-action-ding)) '(:time "15m" :period "2m" :duration 100 :actions org-notify-action-notify) '(:time "2h" :period "5m" :actions org-notify-action-message) '(:time "1d" :actions org-notify-action-email)) This means for todo-items with `notify' property set to `appt': 1 day before deadline, send a reminder-email, 2 hours before deadline, start to send messages every 5 minutes, then, 15 minutes before deadline, start to pop up notification windows every 2 minutes. The timeout of the window is set to 100 seconds. Finally, when deadline is overdue, send messages and make noise. -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-23 8:36 ` Peter Münster @ 2012-02-23 9:06 ` Nick Dokos 2012-02-25 0:08 ` Nick Dokos 1 sibling, 0 replies; 12+ messages in thread From: Nick Dokos @ 2012-02-23 9:06 UTC (permalink / raw) To: =?utf-8?Q?Peter_M=C3=BCnster?=; +Cc: nicholas.dokos, emacs-orgmode Peter Münster <pmlists@free.fr> wrote: > On Thu, Feb 23 2012, Nick Dokos wrote: > > > what does this do that appt.el (and its org interface) does not? > > Sorry, I've totally forgotten to write about my motivation, to create > such an org-notify module. > > Here a summary: > - different warning periods for different todo-types > - fine grained warning periods (smallest unit is second) > - continue notifications, when deadline is overdue > - easy modification of timestamps (just one click, to say > "let's do it tomorrow") > - switch from "todo" to "done" by clicking on the notification window > - configurable notification types (email, notifications-notify, beep, > etc.) > - configurable notification period > - configurable notification duration > - crescendo notifications (be more aggressive, when time gets closer to > deadline) > > There was a little thread about this subject: > http://thread.gmane.org/gmane.emacs.orgmode/48832 > > > Example usage: > (org-notify-add 'appt > '(:time "-1s" :period "20s" :duration 10 > :actions (org-notify-action-message > org-notify-action-ding)) > '(:time "15m" :period "2m" :duration 100 > :actions org-notify-action-notify) > '(:time "2h" :period "5m" > :actions org-notify-action-message) > '(:time "1d" :actions org-notify-action-email)) > > This means for todo-items with `notify' property set to `appt': 1 day before > deadline, send a reminder-email, 2 hours before deadline, start to send > messages every 5 minutes, then, 15 minutes before deadline, start to pop up > notification windows every 2 minutes. The timeout of the window is set to > 100 seconds. Finally, when deadline is overdue, send messages and make > noise. > Thanks! That's very helpful. I'll take a look in my copious (cough!) spare time. Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-23 8:36 ` Peter Münster 2012-02-23 9:06 ` Nick Dokos @ 2012-02-25 0:08 ` Nick Dokos 2012-02-26 0:09 ` Peter Münster 1 sibling, 1 reply; 12+ messages in thread From: Nick Dokos @ 2012-02-25 0:08 UTC (permalink / raw) To: Peter Münster; +Cc: nicholas.dokos, emacs-orgmode =?utf-8?Q?Peter_M=C3=BCnster?= <pmlists@free.fr> wrote: > On Thu, Feb 23 2012, Nick Dokos wrote: > > > what does this do that appt.el (and its org interface) does not? > > Sorry, I've totally forgotten to write about my motivation, to create > such an org-notify module. > > Here a summary: > - different warning periods for different todo-types > - fine grained warning periods (smallest unit is second) > - continue notifications, when deadline is overdue > - easy modification of timestamps (just one click, to say > "let's do it tomorrow") > - switch from "todo" to "done" by clicking on the notification window > - configurable notification types (email, notifications-notify, beep, > etc.) > - configurable notification period > - configurable notification duration > - crescendo notifications (be more aggressive, when time gets closer to > deadline) > > There was a little thread about this subject: > http://thread.gmane.org/gmane.emacs.orgmode/48832 > > > Example usage: > (org-notify-add 'appt > '(:time "-1s" :period "20s" :duration 10 > :actions (org-notify-action-message > org-notify-action-ding)) > '(:time "15m" :period "2m" :duration 100 > :actions org-notify-action-notify) > '(:time "2h" :period "5m" > :actions org-notify-action-message) > '(:time "1d" :actions org-notify-action-email)) > > This means for todo-items with `notify' property set to `appt': 1 day before > deadline, send a reminder-email, 2 hours before deadline, start to send > messages every 5 minutes, then, 15 minutes before deadline, start to pop up > notification windows every 2 minutes. The timeout of the window is set to > 100 seconds. Finally, when deadline is overdue, send messages and make > noise. > A quick first impression: orgntf-process seems expensive. It seems to take 100% of one core (I've got a quad-core processor) for three or four seconds every fifty seconds. Unfortunately, the core is the same one that's running emacs, so emacs stops responding for those three or four seconds. I have disabled org-notify for now. Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-25 0:08 ` Nick Dokos @ 2012-02-26 0:09 ` Peter Münster 2012-02-26 2:45 ` Nick Dokos ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: Peter Münster @ 2012-02-26 0:09 UTC (permalink / raw) To: emacs-orgmode On Sat, Feb 25 2012, Nick Dokos wrote: > A quick first impression: orgntf-process seems expensive. It seems > to take 100% of one core (I've got a quad-core processor) for three or > four seconds every fifty seconds. Unfortunately, the core is the same one > that's running emacs, so emacs stops responding for those three or four > seconds. I have disabled org-notify for now. How many lines do you have in your org-files? (I've about 200 and execution time is about 100ms.) I call now "(org-element-parse-buffer 'heading)", I hope it's faster for you. Is it faster, when the file is byte-compiled? Other ideas: - I could divide orgntf-process into several tasks, so that things run more smoothly. - You could call (org-notify-start -60), so the process will be called, when idle for one minute. The file has a new home: https://github.com/p-m/org-notify There is now `orgntf-verbose' to see execution time of `orgntf-todo-list'. Thanks for testing! -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-26 0:09 ` Peter Münster @ 2012-02-26 2:45 ` Nick Dokos 2012-02-26 5:04 ` Nick Dokos 2012-02-26 9:33 ` notifications for todo items Nicolas Goaziou 2 siblings, 0 replies; 12+ messages in thread From: Nick Dokos @ 2012-02-26 2:45 UTC (permalink / raw) To: =?utf-8?Q?Peter_M=C3=BCnster?=; +Cc: nicholas.dokos, emacs-orgmode Peter Münster <pmlists@free.fr> wrote: > On Sat, Feb 25 2012, Nick Dokos wrote: > > > A quick first impression: orgntf-process seems expensive. It seems > > to take 100% of one core (I've got a quad-core processor) for three or > > four seconds every fifty seconds. Unfortunately, the core is the same one > > that's running emacs, so emacs stops responding for those three or four > > seconds. I have disabled org-notify for now. > > How many lines do you have in your org-files? > (I've about 200 and execution time is about 100ms.) > Roughly 7000 - I just added a task to clean things up, so it's now 7002 :-) > I call now "(org-element-parse-buffer 'heading)", I hope it's faster for > you. Is it faster, when the file is byte-compiled? > > Other ideas: > - I could divide orgntf-process into several tasks, so that things run > more smoothly. > - You could call (org-notify-start -60), so the process will be called, > when idle for one minute. > This sounds promising - I'll try this out in the next iteration. > The file has a new home: https://github.com/p-m/org-notify > There is now `orgntf-verbose' to see execution time of > `orgntf-todo-list'. > OK - I'll try it out when I get a chance. Thanks, Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-26 0:09 ` Peter Münster 2012-02-26 2:45 ` Nick Dokos @ 2012-02-26 5:04 ` Nick Dokos 2012-02-26 14:06 ` optimisation of org-notify (was: notifications for todo items) Peter Münster 2012-02-26 9:33 ` notifications for todo items Nicolas Goaziou 2 siblings, 1 reply; 12+ messages in thread From: Nick Dokos @ 2012-02-26 5:04 UTC (permalink / raw) To: =?utf-8?Q?Peter_M=C3=BCnster?=; +Cc: nicholas.dokos, emacs-orgmode Peter Münster <pmlists@free.fr> wrote: > On Sat, Feb 25 2012, Nick Dokos wrote: > > > A quick first impression: orgntf-process seems expensive. It seems > > to take 100% of one core (I've got a quad-core processor) for three or > > four seconds every fifty seconds. Unfortunately, the core is the same one > > that's running emacs, so emacs stops responding for those three or four > > seconds. I have disabled org-notify for now. > > How many lines do you have in your org-files? > (I've about 200 and execution time is about 100ms.) > > I call now "(org-element-parse-buffer 'heading)", I hope it's faster for > you. Is it faster, when the file is byte-compiled? > > Other ideas: > - I could divide orgntf-process into several tasks, so that things run > more smoothly. > - You could call (org-notify-start -60), so the process will be called, > when idle for one minute. > > The file has a new home: https://github.com/p-m/org-notify > There is now `orgntf-verbose' to see execution time of > `orgntf-todo-list'. > > Thanks for testing! Profiling results after byte compiling both org-notify.el and org-element.el (the rest of org is uncompiled code): ,---- | org-element-parse-elements 891 3.8462059999 0.0043167295 | orgntf-process 1 1.594772 1.594772 | orgntf-time-measure 1 1.594763 1.594763 | orgntf-todo-list 1 1.59444 1.59444 | org-element-parse-buffer 15 1.5755259999 0.1050350666 | org-element-current-element 876 1.5125120000 0.0017266118 | org-element-headline-parser 876 1.4775100000 0.0016866552 | org-entry-properties 1752 0.7201820000 0.0004110627 | org-element-parse-secondary-string 876 0.4682000000 0.0005344748 | org-element-parse-objects 942 0.4317159999 0.0004582972 | org-element-get-next-object-candidates 1151 0.4044249999 0.0003513683 | org-back-to-heading 3504 0.1251230000 3.570...e-05 | org-element-time-stamp-successor 969 0.1206909999 0.0001245521 | org-heading-components 876 0.0532400000 6.077...e-05 | org-element-latex-or-entity-successor 1884 0.0469810000 2.493...e-05 | org-end-of-subtree 876 0.0365460000 4.171...e-05 | org-match-string-no-properties 4167 0.0302490000 7.259...e-06 | org-element-link-successor 998 0.0220160000 2.206...e-05 | org-get-limited-outline-regexp 1676 0.0199100000 1.187...e-05 | org-element-sub/superscript-successor 953 0.0132220000 1.387...e-05 | org-truely-invisible-p 876 0.0127170000 1.451...e-05 | org-get-property-block 876 0.0118430000 1.351...e-05 | org-element-map 15 0.010387 0.0006924666 | org-element-inline-src-block-successor 942 0.0066240000 7.031...e-06 | org-element-text-markup-successor 942 0.0061229999 6.499...e-06 | org-at-heading-p 1767 0.0058330000 3.301...e-06 | org-element-macro-successor 876 0.0053859999 6.148...e-06 | org-get-category 1752 0.0051480000 2.938...e-06 | org-element-link-parser 63 0.0046710000 7.414...e-05 | org-element-inline-babel-call-successor 942 0.0045489999 4.829...e-06 | org-element-statistics-cookie-successor 922 0.0031339999 3.399...e-06 | org-refresh-category-properties 10 0.0029679999 0.0002967999 | org-element-property 5073 0.0028890000 5.694...e-07 | org-skip-whitespace 891 0.0027629999 3.101...e-06 | org-element-radio-target-successor 876 0.0026729999 3.051...e-06 | org-outline-level 876 0.0018010000 2.055...e-06 | org-element-time-stamp-parser 93 0.0016429999 1.766...e-05 | orgntf-make-todo 876 0.0015790000 1.802...e-06 | org-agenda-files 1 0.001418 0.001418 | org-link-unescape 59 0.001049 1.777...e-05 | org-element-type 1752 0.0009170000 5.234...e-07 | org-reduced-level 876 0.0006700000 7.648...e-07 | org-link-expand-abbrev 59 0.0004410000 7.474...e-06 | org-link-unescape-compound 23 0.0003170000 1.378...e-05 | org-element-contents 891 0.0002970000 3.333...e-07 | org-trim 53 0.000235 4.433...e-06 | org-element-statistics-cookie-parser 46 0.0001809999 3.934...e-06 | org-float-time 2 0.000103 5.15e-05 | org-element-subscript-parser 7 6.3e-05 9e-06 | org-char-to-string 23 1.800...e-05 7.826...e-07 | org-no-properties 11 1.6e-05 1.454...e-06 `---- So orgntf-todo-list takes the lion's share of the time but most of it is the 15 calls to org-element-parse-buffer (I have 15 files in my org-agenda-files list). BTW, I think the first line of the profile must be a remnant from before, although I did do an elp-reset-all. Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* optimisation of org-notify (was: notifications for todo items) 2012-02-26 5:04 ` Nick Dokos @ 2012-02-26 14:06 ` Peter Münster 2012-03-04 23:37 ` optimisation of org-notify Peter Münster 0 siblings, 1 reply; 12+ messages in thread From: Peter Münster @ 2012-02-26 14:06 UTC (permalink / raw) To: emacs-orgmode On Sun, Feb 26 2012, Nick Dokos wrote: > So orgntf-todo-list takes the lion's share of the time but > most of it is the 15 calls to org-element-parse-buffer Ok, then I could process only one file at a time. This would divide the processing time by 15, in your case. But perhaps others would have the 7000 lines in one file only, then it would not work... So, it is worth the effort? Thanks for the profiling! -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: optimisation of org-notify 2012-02-26 14:06 ` optimisation of org-notify (was: notifications for todo items) Peter Münster @ 2012-03-04 23:37 ` Peter Münster 0 siblings, 0 replies; 12+ messages in thread From: Peter Münster @ 2012-03-04 23:37 UTC (permalink / raw) To: emacs-orgmode On Sun, Feb 26 2012, Peter Münster wrote: > On Sun, Feb 26 2012, Nick Dokos wrote: > >> So orgntf-todo-list takes the lion's share of the time but >> most of it is the 15 calls to org-element-parse-buffer > > Ok, then I could process only one file at a time. This would divide the > processing time by 15, in your case. But perhaps others would have the > 7000 lines in one file only, then it would not work... > So, is it worth the effort? The effort was quite small, so I've done it. :) -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-26 0:09 ` Peter Münster 2012-02-26 2:45 ` Nick Dokos 2012-02-26 5:04 ` Nick Dokos @ 2012-02-26 9:33 ` Nicolas Goaziou 2012-02-26 14:07 ` Peter Münster 2 siblings, 1 reply; 12+ messages in thread From: Nicolas Goaziou @ 2012-02-26 9:33 UTC (permalink / raw) To: Peter Münster; +Cc: emacs-orgmode Hello, Peter Münster <pmlists@free.fr> writes: > On Sat, Feb 25 2012, Nick Dokos wrote: > >> A quick first impression: orgntf-process seems expensive. It seems >> to take 100% of one core (I've got a quad-core processor) for three or >> four seconds every fifty seconds. Unfortunately, the core is the same one >> that's running emacs, so emacs stops responding for those three or four >> seconds. I have disabled org-notify for now. > > How many lines do you have in your org-files? > (I've about 200 and execution time is about 100ms.) > > I call now "(org-element-parse-buffer 'heading)", I hope it's faster for > you. Is it faster, when the file is byte-compiled? I didn't look at the code but you probably mean (org-element-parse-buffer 'headline) if you're only interested in headline data. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: notifications for todo items 2012-02-26 9:33 ` notifications for todo items Nicolas Goaziou @ 2012-02-26 14:07 ` Peter Münster 0 siblings, 0 replies; 12+ messages in thread From: Peter Münster @ 2012-02-26 14:07 UTC (permalink / raw) To: emacs-orgmode On Sun, Feb 26 2012, Nicolas Goaziou wrote: > I didn't look at the code but you probably mean > (org-element-parse-buffer 'headline) if you're only interested in > headline data. Yes, it's "headline" in the code... :) -- Peter ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2012-03-04 23:37 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-02-22 23:38 notifications for todo items Peter Münster 2012-02-23 1:28 ` Nick Dokos 2012-02-23 8:36 ` Peter Münster 2012-02-23 9:06 ` Nick Dokos 2012-02-25 0:08 ` Nick Dokos 2012-02-26 0:09 ` Peter Münster 2012-02-26 2:45 ` Nick Dokos 2012-02-26 5:04 ` Nick Dokos 2012-02-26 14:06 ` optimisation of org-notify (was: notifications for todo items) Peter Münster 2012-03-04 23:37 ` optimisation of org-notify Peter Münster 2012-02-26 9:33 ` notifications for todo items Nicolas Goaziou 2012-02-26 14:07 ` Peter Münster
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).