* iPhone ----> org-mode @ 2009-03-22 10:38 Brad Bozarth 2009-03-22 13:52 ` Carsten Dominik ` (3 more replies) 0 siblings, 4 replies; 34+ messages in thread From: Brad Bozarth @ 2009-03-22 10:38 UTC (permalink / raw) To: emacs-orgmode Hi! I'm new to org-mode, but knew I had to use it when I combined a desire to try GTD with my ctrl-s view of the world. I'm ok with processing tethered to a computer, but wanted an easy way to capture on the move, without adding anything to my pocket. A couple days of hacking later (with some real *hacks*, but they work), and I've got something I really like. I can now, using either the iphone keyboard or my voice, quickly capture something, and know that it will shortly be sitting as a TODO under "iPhone inbox" in my gtd.org file that is git synchronized between all my computers. I put it together with a cron'd shell script, two awk scripts, and the free "Reqall" iPhone app. Could be done more elegantly, but then I wouldn't be Getting (other) Things Done :). I can share the hacks if anyone is interested. -brad ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-22 10:38 iPhone ----> org-mode Brad Bozarth @ 2009-03-22 13:52 ` Carsten Dominik 2009-03-23 8:32 ` Brad Bozarth 2009-03-22 21:23 ` John Rakestraw ` (2 subsequent siblings) 3 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-22 13:52 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: > Hi! I'm new to org-mode, but knew I had to use it when I combined a > desire to try GTD with my ctrl-s view of the world. > > I'm ok with processing tethered to a computer, but wanted an easy way > to capture on the move, without adding anything to my pocket. A couple > days of hacking later (with some real *hacks*, but they work), and > I've got something I really like. > > I can now, using either the iphone keyboard or my voice, quickly > capture something, and know that it will shortly be sitting as a TODO > under "iPhone inbox" in my gtd.org file that is git synchronized > between all my computers. I put it together with a cron'd shell > script, two awk scripts, and the free "Reqall" iPhone app. Could be > done more elegantly, but then I wouldn't be Getting (other) Things > Done :). I can share the hacks if anyone is interested. I want to know *everything* about this. - Carsten ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-22 13:52 ` Carsten Dominik @ 2009-03-23 8:32 ` Brad Bozarth 2009-03-23 13:47 ` Ian Barton 2009-03-25 5:56 ` Brad Bozarth 0 siblings, 2 replies; 34+ messages in thread From: Brad Bozarth @ 2009-03-23 8:32 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1547 bytes --] Sure! As I said, it's a hack - it would obviously be better implemented with one elisp batch script or something, but I was in a hurry, and it's been working for me. Reqall is a free app kind of like Jott, if you're familiar with that. You can phone into it (thus this hack would work with a blackberry or your friend's landline or any phone, not just the iphone) or use an iphone or web interface to plop in todos (and various other things, which I don't use). It can publish your items as an RSS feed. Here's how voice -> org-mode happens: I use a cron job every 10 minutes to run get_reqall_tasks.sh This wget's my reqall RSS feed, runs reqallxml.awk on it (updates my .org file), and commits and pushes the .org reqallxml.awk parses the reqall items and saves a flat local DB (currently just to check for newness of items), doing some simple formatting on new items and sticking them in my .org file to be processed later Pretty simple - it could be cleaner, and filenames and such are hardcoded, but it should be easy for anyone to fix it up or simply replace the filenames and formatting to their liking. It's simple ... but still feels like magic when I press one button on my iPhone in the car, and what I spoke is sitting in my gtd.org when I get to the office :) ... tarball of hack attached. Note that my awk is from OS X, should work on linux as well though (I first got it running on linux, but had to escape some / characters in a pattern match to get reqallxml.awk to work on my mac and haven't tested it again on linux). -brad [-- Attachment #2: org-reqall.tar.gz --] [-- Type: application/x-gzip, Size: 4210 bytes --] [-- Attachment #3: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-23 8:32 ` Brad Bozarth @ 2009-03-23 13:47 ` Ian Barton 2009-03-24 0:43 ` Brad Bozarth 2009-03-24 7:03 ` Rob Weir 2009-03-25 5:56 ` Brad Bozarth 1 sibling, 2 replies; 34+ messages in thread From: Ian Barton @ 2009-03-23 13:47 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1025 bytes --] > > Pretty simple - it could be cleaner, and filenames and such are > hardcoded, but it should be easy for anyone to fix it up or simply > replace the filenames and formatting to their liking. It's simple ... > but still feels like magic when I press one button on my iPhone in the > car, and what I spoke is sitting in my gtd.org when I get to the > office :) ... tarball of hack attached. Note that my awk is from OS X, > should work on linux as well though (I first got it running on linux, > but had to escape some / characters in a pattern match to get > reqallxml.awk to work on my mac and haven't tested it again on linux). Appended is a quick hack in Python that appends items from the rss feed to an org file. Tasks are give the guid property, which is used to identify which tasks have already been imported. Requires Mark Pilgrim's feed parser (think this is already part of Python) and Charles Cave's orgnode.py. Note orgnode.py seems to have a bug, where it requires at least one entry in the file. Ian. [-- Attachment #2: requall.py --] [-- Type: text/x-python, Size: 1082 bytes --] #!/usr/bin/python import feedparser # Note the current version of orgnode.py # requires a file with at least one entry. import orgnode REQUALL_URL = 'Requall RSS feed url' ORG_FILE = 'todo.org' def write_task(task): logfile = open(ORG_FILE, 'a') str = "* TODO %s\n:PROPERTIES:\n:guid: %s\n:END:\n%s\n" % (task.title, task.guid, task.description) logfile.write(str) logfile.close() def load_org_file(): """ Create a list of org objects. """ nodelist = orgnode.makelist(ORG_FILE) return nodelist # Open and parse the rss feed. d = feedparser.parse(REQUALL_URL) print d.feed.title for entry in d['entries']: nodelist = load_org_file() guids = [] # build a list of all the guids in the org file. for node in nodelist: guids.append(node.Property('guid')) # Only add entries for guids that are not already in the file. if entry.guid in guids: print "Entry skipped." else: write_task(entry) print entry.title print entry.category print entry.description [-- Attachment #3: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-23 13:47 ` Ian Barton @ 2009-03-24 0:43 ` Brad Bozarth 2009-03-24 7:37 ` Carsten Dominik 2009-03-24 7:03 ` Rob Weir 1 sibling, 1 reply; 34+ messages in thread From: Brad Bozarth @ 2009-03-24 0:43 UTC (permalink / raw) To: Ian Barton; +Cc: emacs-orgmode This is nice, no more superfluous flat file... thanks! -brad On Mon, Mar 23, 2009 at 6:47 AM, Ian Barton <lists@manor-farm.org> wrote: >> >> Pretty simple - it could be cleaner, and filenames and such are >> hardcoded, but it should be easy for anyone to fix it up or simply >> replace the filenames and formatting to their liking. It's simple ... >> but still feels like magic when I press one button on my iPhone in the >> car, and what I spoke is sitting in my gtd.org when I get to the >> office :) ... tarball of hack attached. Note that my awk is from OS X, >> should work on linux as well though (I first got it running on linux, >> but had to escape some / characters in a pattern match to get >> reqallxml.awk to work on my mac and haven't tested it again on linux). > > Appended is a quick hack in Python that appends items from the rss feed to > an org file. Tasks are give the guid property, which is used to identify > which tasks have already been imported. > > Requires Mark Pilgrim's feed parser (think this is already part of Python) > and Charles Cave's orgnode.py. Note orgnode.py seems to have a bug, where it > requires at least one entry in the file. > > Ian. > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 0:43 ` Brad Bozarth @ 2009-03-24 7:37 ` Carsten Dominik 2009-03-24 8:30 ` Ian Barton 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-24 7:37 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 2025 bytes --] On Mar 24, 2009, at 1:43 AM, Brad Bozarth wrote: > This is nice, no more superfluous flat file... thanks! I don't think so! Because if I see this correctly, your own solution will allow new entries to be refiled to other files, removed or archived, without the script adding them again. If you do this in Ians solution, I think they will be added again. - Carsten > -brad > > On Mon, Mar 23, 2009 at 6:47 AM, Ian Barton <lists@manor-farm.org> > wrote: >>> >>> Pretty simple - it could be cleaner, and filenames and such are >>> hardcoded, but it should be easy for anyone to fix it up or simply >>> replace the filenames and formatting to their liking. It's >>> simple ... >>> but still feels like magic when I press one button on my iPhone in >>> the >>> car, and what I spoke is sitting in my gtd.org when I get to the >>> office :) ... tarball of hack attached. Note that my awk is from >>> OS X, >>> should work on linux as well though (I first got it running on >>> linux, >>> but had to escape some / characters in a pattern match to get >>> reqallxml.awk to work on my mac and haven't tested it again on >>> linux). >> >> Appended is a quick hack in Python that appends items from the rss >> feed to >> an org file. Tasks are give the guid property, which is used to >> identify >> which tasks have already been imported. >> >> Requires Mark Pilgrim's feed parser (think this is already part of >> Python) >> and Charles Cave's orgnode.py. Note orgnode.py seems to have a bug, >> where it >> requires at least one entry in the file. >> >> Ian. >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >> >> > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode [-- Attachment #1.2: Type: text/html, Size: 3928 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 7:37 ` Carsten Dominik @ 2009-03-24 8:30 ` Ian Barton 2009-03-24 8:38 ` Carsten Dominik 0 siblings, 1 reply; 34+ messages in thread From: Ian Barton @ 2009-03-24 8:30 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode >> This is nice, no more superfluous flat file... thanks! > > I don't think so! Because if I see this correctly, your own > solution will allow new entries to be refiled to other files, > removed or archived, without the script adding them again. If you > do this in Ians solution, I think they will be added again. > Theoretically my script shouldn't add things twice. It stores the item's guid as a PROPERTY and checks to see if the guid exists in the org file before it adds the item. I am assuming here that guids in reqall are unique. Having investigated reqall a bit further, it seems that messages are assigned various categories e.g. "Note", "Meeting". The latest incarnation of my script will store the item from the rss feed in a file according to its category. When the script is a bit more stable, I'll upload it to github. I have also done some work in adapting the jabberbot that I use with my MythTV set up, so I can get a list of my tasks and post new one via Google Talk. Ian. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 8:30 ` Ian Barton @ 2009-03-24 8:38 ` Carsten Dominik 2009-03-24 10:20 ` Ian Barton 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-24 8:38 UTC (permalink / raw) To: Ian Barton; +Cc: emacs-orgmode On Mar 24, 2009, at 9:30 AM, Ian Barton wrote: >>> This is nice, no more superfluous flat file... thanks! >> I don't think so! Because if I see this correctly, your own >> solution will allow new entries to be refiled to other files, >> removed or archived, without the script adding them again. If you >> do this in Ians solution, I think they will be added again. > Theoretically my script shouldn't add things twice. It stores the > item's guid as a PROPERTY and checks to see if the guid exists in > the org file before it adds the item. I am assuming here that guids > in reqall are unique. Yes, I understand. However, if the user refiles the task to a different file, that information will be gone and the item re-added. - Carsten > > Having investigated reqall a bit further, it seems that messages are > assigned various categories e.g. "Note", "Meeting". The latest > incarnation of my script will store the item from the rss feed in a > file according to its category. When the script is a bit more > stable, I'll upload it to github. > > I have also done some work in adapting the jabberbot that I use with > my MythTV set up, so I can get a list of my tasks and post new one > via Google Talk. > > Ian. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 8:38 ` Carsten Dominik @ 2009-03-24 10:20 ` Ian Barton 0 siblings, 0 replies; 34+ messages in thread From: Ian Barton @ 2009-03-24 10:20 UTC (permalink / raw) To: emacs-orgmode Carsten Dominik wrote: > > On Mar 24, 2009, at 9:30 AM, Ian Barton wrote: > >>>> This is nice, no more superfluous flat file... thanks! >>> I don't think so! Because if I see this correctly, your own >>> solution will allow new entries to be refiled to other files, >>> removed or archived, without the script adding them again. If you >>> do this in Ians solution, I think they will be added again. >> Theoretically my script shouldn't add things twice. It stores the >> item's guid as a PROPERTY and checks to see if the guid exists in the >> org file before it adds the item. I am assuming here that guids in >> reqall are unique. > > Yes, I understand. > > However, if the user refiles the task to a different file, that > information will be gone and the item re-added. > > - Carsten > >> >> Having investigated reqall a bit further, it seems that messages are >> assigned various categories e.g. "Note", "Meeting". The latest >> incarnation of my script will store the item from the rss feed in a >> file according to its category. When the script is a bit more stable, >> I'll upload it to github. >> >> I have also done some work in adapting the jabberbot that I use with >> my MythTV set up, so I can get a list of my tasks and post new one via >> Google Talk. >> Good point. Maybe I need to store the guids in a separate file. Ian. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-23 13:47 ` Ian Barton 2009-03-24 0:43 ` Brad Bozarth @ 2009-03-24 7:03 ` Rob Weir 1 sibling, 0 replies; 34+ messages in thread From: Rob Weir @ 2009-03-24 7:03 UTC (permalink / raw) To: emacs-orgmode On 24 Mar 2009, Ian Barton wrote: > Requires Mark Pilgrim's feed parser (think this is already part of > Python) Unfortunately, it's not, but you can get it from http://feedparser.org/ or in most package repositories. -- -rob ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-23 8:32 ` Brad Bozarth 2009-03-23 13:47 ` Ian Barton @ 2009-03-25 5:56 ` Brad Bozarth 2009-03-25 8:00 ` Brad Bozarth 1 sibling, 1 reply; 34+ messages in thread From: Brad Bozarth @ 2009-03-25 5:56 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 2099 bytes --] I should note that I tried to clean up the files a bit to make them more readable before uploading, and I realized the "clean" version of reqallxml.awk in the attachment has two silly bugs - "/* nothing for now */ ;" on line 368 should be "; # nothing for now" (C-style comments don't work in awk). And the system call string on line 425 can't be split across lines as it is (again, I was thinking in C). -brad On Mon, Mar 23, 2009 at 1:32 AM, Brad Bozarth <prettygood@cs.stanford.edu>wrote: > Sure! As I said, it's a hack - it would obviously be better > implemented with one elisp batch script or something, but I was in a > hurry, and it's been working for me. > > Reqall is a free app kind of like Jott, if you're familiar with that. > You can phone into it (thus this hack would work with a blackberry or > your friend's landline or any phone, not just the iphone) or use an > iphone or web interface to plop in todos (and various other things, > which I don't use). It can publish your items as an RSS feed. Here's > how voice -> org-mode happens: > > I use a cron job every 10 minutes to run get_reqall_tasks.sh > This wget's my reqall RSS feed, runs reqallxml.awk on it (updates my > .org file), and commits and pushes the .org > reqallxml.awk parses the reqall items and saves a flat local DB > (currently just to check for newness of items), doing some simple > formatting on new items and sticking them in my .org file to be > processed later > > Pretty simple - it could be cleaner, and filenames and such are > hardcoded, but it should be easy for anyone to fix it up or simply > replace the filenames and formatting to their liking. It's simple ... > but still feels like magic when I press one button on my iPhone in the > car, and what I spoke is sitting in my gtd.org when I get to the > office :) ... tarball of hack attached. Note that my awk is from OS X, > should work on linux as well though (I first got it running on linux, > but had to escape some / characters in a pattern match to get > reqallxml.awk to work on my mac and haven't tested it again on linux). > > -brad > [-- Attachment #1.2: Type: text/html, Size: 2618 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 5:56 ` Brad Bozarth @ 2009-03-25 8:00 ` Brad Bozarth 0 siblings, 0 replies; 34+ messages in thread From: Brad Bozarth @ 2009-03-25 8:00 UTC (permalink / raw) To: emacs-orgmode Couple more fixes - do a git pull in the shell script to keep my auto-updater's repository up to date and avoid git push failure, and avoid adding new Reqall items until they have been transcribed (at first they show up in RSS as "Reqall is typing what you said") --- a/repo/bin/get_reqall_tasks.sh +++ b/repo/bin/get_reqall_tasks.sh @@ -3,8 +3,9 @@ echo "." >> /tmp/crontest /sw/bin/wget -O /tmp/req http://www.reqall.com/user/feeds/rss/82012e8e26fae644e -/usr/bin/awk -f ~/repo/bin/reqallxml.awk /tmp/req cd /Users/Brad/Dev/reqall/Brad/repo/org/ +/usr/bin/git pull +/usr/bin/awk -f ~/repo/bin/reqallxml.awk /tmp/req /usr/bin/git add gtd.org /usr/bin/git commit -m "Auto-reqall update $(date)" > /dev/null /usr/bin/git push > /dev/null --- a/repo/bin/reqallxml.awk +++ b/repo/bin/reqallxml.awk @@ -414,7 +414,11 @@ END { newItems = 0; for ( guid in guids ) { + where = index(blobs[guid, "DESCRIPTION"], "is typing what you said") + if (where) + continue; ret = system("egrep \"^" guid "\" ~/repo/bin/reqalldb > /dev/null"); if ( ret != 0 ) { On Tue, Mar 24, 2009 at 10:56 PM, Brad Bozarth <prettygood@cs.stanford.edu> wrote: > > I should note that I tried to clean up the files a bit to make them more readable before uploading, and I realized the "clean" version of reqallxml.awk in the attachment has two silly bugs - "/* nothing for now */ ;" on line 368 should be "; # nothing for now" (C-style comments don't work in awk). And the system call string on line 425 can't be split across lines as it is (again, I was thinking in C). > -brad > > On Mon, Mar 23, 2009 at 1:32 AM, Brad Bozarth <prettygood@cs.stanford.edu> wrote: >> >> Sure! As I said, it's a hack - it would obviously be better >> implemented with one elisp batch script or something, but I was in a >> hurry, and it's been working for me. >> >> Reqall is a free app kind of like Jott, if you're familiar with that. >> You can phone into it (thus this hack would work with a blackberry or >> your friend's landline or any phone, not just the iphone) or use an >> iphone or web interface to plop in todos (and various other things, >> which I don't use). It can publish your items as an RSS feed. Here's >> how voice -> org-mode happens: >> >> I use a cron job every 10 minutes to run get_reqall_tasks.sh >> This wget's my reqall RSS feed, runs reqallxml.awk on it (updates my >> .org file), and commits and pushes the .org >> reqallxml.awk parses the reqall items and saves a flat local DB >> (currently just to check for newness of items), doing some simple >> formatting on new items and sticking them in my .org file to be >> processed later >> >> Pretty simple - it could be cleaner, and filenames and such are >> hardcoded, but it should be easy for anyone to fix it up or simply >> replace the filenames and formatting to their liking. It's simple ... >> but still feels like magic when I press one button on my iPhone in the >> car, and what I spoke is sitting in my gtd.org when I get to the >> office :) ... tarball of hack attached. Note that my awk is from OS X, >> should work on linux as well though (I first got it running on linux, >> but had to escape some / characters in a pattern match to get >> reqallxml.awk to work on my mac and haven't tested it again on linux). >> >> -brad > ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-22 10:38 iPhone ----> org-mode Brad Bozarth 2009-03-22 13:52 ` Carsten Dominik @ 2009-03-22 21:23 ` John Rakestraw 2009-03-24 11:32 ` Carsten Dominik 2009-03-25 8:36 ` Carsten Dominik 3 siblings, 0 replies; 34+ messages in thread From: John Rakestraw @ 2009-03-22 21:23 UTC (permalink / raw) To: emacs-orgmode On Sun, 22 Mar 2009 03:38:24 -0700 Brad Bozarth <prettygood@cs.stanford.edu> wrote: > Hi! I'm new to org-mode, but knew I had to use it when I combined a > desire to try GTD with my ctrl-s view of the world. > > I'm ok with processing tethered to a computer, but wanted an easy way > to capture on the move, without adding anything to my pocket. A couple > days of hacking later (with some real *hacks*, but they work), and > I've got something I really like. > > I can now, using either the iphone keyboard or my voice, quickly > capture something, and know that it will shortly be sitting as a TODO > under "iPhone inbox" in my gtd.org file that is git synchronized > between all my computers. I put it together with a cron'd shell > script, two awk scripts, and the free "Reqall" iPhone app. Could be > done more elegantly, but then I wouldn't be Getting (other) Things > Done :). I can share the hacks if anyone is interested. > > -brad Consider me (very!) interested. -- John Rakestraw ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-22 10:38 iPhone ----> org-mode Brad Bozarth 2009-03-22 13:52 ` Carsten Dominik 2009-03-22 21:23 ` John Rakestraw @ 2009-03-24 11:32 ` Carsten Dominik 2009-03-24 18:21 ` Brad Bozarth 2009-03-25 8:36 ` Carsten Dominik 3 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-24 11:32 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode Hi Brad, I am really happy that you showed us how to do this. Like you, when I work I am at my computer, so I don't need a fully mobile side of Org. But a capture path. Using RSS like you demonstrate means that we can use any kind of service that pushes to an RSS feed - even if ReQall goes away at some point, there will be others. This, for me, really was the missing piece. It no longer is missing. Thanks! - Carsten On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: > Hi! I'm new to org-mode, but knew I had to use it when I combined a > desire to try GTD with my ctrl-s view of the world. > > I'm ok with processing tethered to a computer, but wanted an easy way > to capture on the move, without adding anything to my pocket. A couple > days of hacking later (with some real *hacks*, but they work), and > I've got something I really like. > > I can now, using either the iphone keyboard or my voice, quickly > capture something, and know that it will shortly be sitting as a TODO > under "iPhone inbox" in my gtd.org file that is git synchronized > between all my computers. I put it together with a cron'd shell > script, two awk scripts, and the free "Reqall" iPhone app. Could be > done more elegantly, but then I wouldn't be Getting (other) Things > Done :). I can share the hacks if anyone is interested. > > -brad > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 11:32 ` Carsten Dominik @ 2009-03-24 18:21 ` Brad Bozarth 2009-03-25 8:28 ` Carsten Dominik 0 siblings, 1 reply; 34+ messages in thread From: Brad Bozarth @ 2009-03-24 18:21 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode Hi Carsten, I'm glad I could help in a very small way - I really appreciate the years you've put into this. I watched GregKH's, Linus's and your Google tech talks the other day, and enjoyed yours the most. I know I'll love the flexibility of org-mode over time, but it's great to hear your version of the most powerful core features and the theory behind them. And yes, I think the RSS --> org-mode idea has some good possibilities, and reqall happens to be a convenient phone --> RSS tool. I think we have some similar genes - I ended up a software engineer after a childhood love of all things astronomical (and love of adrenaline, my dream was to be an astronaut), and was fascinated by the self-organization of Saturn's rings - I always wanted to code a simulation of such for fun, but never quite got to it. I made a pretty neat 3D space particle "sandbox" in my Stanford graphics class, where you could fly around and place directional points of gravity that would attract all the floating particles on one side of the plane perpendicular to your angle of view when you placed the point. Place two facing different directions, and you could get beautiful, organic looking streams of particles flowing in a ring (well, I thought they were beautiful). Place three, and you could get extremely complex and interesting cycling streams. I loved how all I had to get right were the derivative calculations for gravity fall-off, and the simple "flying" control and open-gl graphics, and something artistic emerged. I've always loved the idea of complex order arising from simple foundations... Anyway, sorry to ramble, but I went down memory lane when I looked up your website and watched the mpeg movies of grain collisions. In the age of Pixar, I don't know that many people would agree, but I found them fascinating :) Thanks again for your generous sharing! -brad On Tue, Mar 24, 2009 at 4:32 AM, Carsten Dominik <dominik@science.uva.nl> wrote: > Hi Brad, > > I am really happy that you showed us how to do this. Like you, > when I work I am at my computer, so I don't need a fully mobile > side of Org. But a capture path. Using RSS like you demonstrate > means that we can use any kind of service that pushes to an RSS > feed - even if ReQall goes away at some point, there will be others. > > This, for me, really was the missing piece. It no longer is missing. > > Thanks! > > - Carsten > > On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: > >> Hi! I'm new to org-mode, but knew I had to use it when I combined a >> desire to try GTD with my ctrl-s view of the world. >> >> I'm ok with processing tethered to a computer, but wanted an easy way >> to capture on the move, without adding anything to my pocket. A couple >> days of hacking later (with some real *hacks*, but they work), and >> I've got something I really like. >> >> I can now, using either the iphone keyboard or my voice, quickly >> capture something, and know that it will shortly be sitting as a TODO >> under "iPhone inbox" in my gtd.org file that is git synchronized >> between all my computers. I put it together with a cron'd shell >> script, two awk scripts, and the free "Reqall" iPhone app. Could be >> done more elegantly, but then I wouldn't be Getting (other) Things >> Done :). I can share the hacks if anyone is interested. >> >> -brad >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-24 18:21 ` Brad Bozarth @ 2009-03-25 8:28 ` Carsten Dominik 0 siblings, 0 replies; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 8:28 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode, Carsten Dominik Hi Brad, thanks for your nice words! Sounds fascinating what you did back then with graphics. About the movies of grain collisions, yes, these are quite dated by now, but they are also 10 years old, made at a time where had little understanding of these things, and where I wrote a Perl program to to glue text into movie frames :-) We have some newer ones here: http://staff.science.uva.nl/~dpaszun/movies.html That reminds me: My webpage is crap, and I need to redo it in Org :-) - Carsten On Mar 24, 2009, at 7:21 PM, Brad Bozarth wrote: > Hi Carsten, > > I'm glad I could help in a very small way - I really appreciate the > years you've put into this. I watched GregKH's, Linus's and your > Google tech talks the other day, and enjoyed yours the most. I know > I'll love the flexibility of org-mode over time, but it's great to > hear your version of the most powerful core features and the theory > behind them. And yes, I think the RSS --> org-mode idea has some good > possibilities, and reqall happens to be a convenient phone --> RSS > tool. > > I think we have some similar genes - I ended up a software engineer > after a childhood love of all things astronomical (and love of > adrenaline, my dream was to be an astronaut), and was fascinated by > the self-organization of Saturn's rings - I always wanted to code a > simulation of such for fun, but never quite got to it. I made a pretty > neat 3D space particle "sandbox" in my Stanford graphics class, where > you could fly around and place directional points of gravity that > would attract all the floating particles on one side of the plane > perpendicular to your angle of view when you placed the point. Place > two facing different directions, and you could get beautiful, organic > looking streams of particles flowing in a ring (well, I thought they > were beautiful). Place three, and you could get extremely complex and > interesting cycling streams. I loved how all I had to get right were > the derivative calculations for gravity fall-off, and the simple > "flying" control and open-gl graphics, and something artistic emerged. > I've always loved the idea of complex order arising from simple > foundations... > > Anyway, sorry to ramble, but I went down memory lane when I looked up > your website and watched the mpeg movies of grain collisions. In the > age of Pixar, I don't know that many people would agree, but I found > them fascinating :) > > Thanks again for your generous sharing! > -brad > > On Tue, Mar 24, 2009 at 4:32 AM, Carsten Dominik <dominik@science.uva.nl > > wrote: >> Hi Brad, >> >> I am really happy that you showed us how to do this. Like you, >> when I work I am at my computer, so I don't need a fully mobile >> side of Org. But a capture path. Using RSS like you demonstrate >> means that we can use any kind of service that pushes to an RSS >> feed - even if ReQall goes away at some point, there will be others. >> >> This, for me, really was the missing piece. It no longer is missing. >> >> Thanks! >> >> - Carsten >> >> On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: >> >>> Hi! I'm new to org-mode, but knew I had to use it when I combined a >>> desire to try GTD with my ctrl-s view of the world. >>> >>> I'm ok with processing tethered to a computer, but wanted an easy >>> way >>> to capture on the move, without adding anything to my pocket. A >>> couple >>> days of hacking later (with some real *hacks*, but they work), and >>> I've got something I really like. >>> >>> I can now, using either the iphone keyboard or my voice, quickly >>> capture something, and know that it will shortly be sitting as a >>> TODO >>> under "iPhone inbox" in my gtd.org file that is git synchronized >>> between all my computers. I put it together with a cron'd shell >>> script, two awk scripts, and the free "Reqall" iPhone app. Could be >>> done more elegantly, but then I wouldn't be Getting (other) Things >>> Done :). I can share the hacks if anyone is interested. >>> >>> -brad >>> >>> >>> _______________________________________________ >>> Emacs-orgmode mailing list >>> Remember: use `Reply All' to send replies to the list. >>> Emacs-orgmode@gnu.org >>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >> >> ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-22 10:38 iPhone ----> org-mode Brad Bozarth ` (2 preceding siblings ...) 2009-03-24 11:32 ` Carsten Dominik @ 2009-03-25 8:36 ` Carsten Dominik 2009-03-25 8:50 ` Brad Bozarth ` (2 more replies) 3 siblings, 3 replies; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 8:36 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode Hi Brad, I hope you don't mind, but I find this *so extremely useful* that I made a pure Emacs lisp version of this which is now in the git repo under the name org-feed.el. It is not made for fancy automatic updating with cron jobs and git etc, but it makes for a stand-alone alternative that will be easy to configure and has no dependencies on external code. For example, to get a reQall feed into file ~/org/feeds.org under heading "ReQall Entries", you would do this. (setq org-feed-alist '(("ReQall" "http://www.reqall.com/user/feeds/rss/a1b2..." "~/org/feeds.org" "ReQall Entries"))) I do hope that this will not stop python hackers from exploring this further, because I thought that the python solution was really good and innovative, and it shows what can be done with modules like the ones Charles has put out. - Carsten On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: > Hi! I'm new to org-mode, but knew I had to use it when I combined a > desire to try GTD with my ctrl-s view of the world. > > I'm ok with processing tethered to a computer, but wanted an easy way > to capture on the move, without adding anything to my pocket. A couple > days of hacking later (with some real *hacks*, but they work), and > I've got something I really like. > > I can now, using either the iphone keyboard or my voice, quickly > capture something, and know that it will shortly be sitting as a TODO > under "iPhone inbox" in my gtd.org file that is git synchronized > between all my computers. I put it together with a cron'd shell > script, two awk scripts, and the free "Reqall" iPhone app. Could be > done more elegantly, but then I wouldn't be Getting (other) Things > Done :). I can share the hacks if anyone is interested. > > -brad > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 8:36 ` Carsten Dominik @ 2009-03-25 8:50 ` Brad Bozarth 2009-03-25 19:52 ` Carsten Dominik 2009-03-25 9:06 ` Brad Bozarth 2009-03-25 9:35 ` Ian Barton 2 siblings, 1 reply; 34+ messages in thread From: Brad Bozarth @ 2009-03-25 8:50 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode On Wed, Mar 25, 2009 at 1:36 AM, Carsten Dominik <dominik@science.uva.nl> wrote: > Hi Brad, > > I hope you don't mind, but I find this *so extremely useful* that > I made a pure Emacs lisp version of this which is now in the git repo > under the name org-feed.el. It is not made for fancy automatic > updating with cron jobs and git etc, but it makes for a stand-alone > alternative that will be easy to configure and has no dependencies > on external code. I don't mind at all! I'm very glad you find it useful, and I will adopt yours soon - it will be much less fragile. I knew it would be better implemented natively in elisp, but I haven't coded in lisp in 10 years :) -brad ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 8:50 ` Brad Bozarth @ 2009-03-25 19:52 ` Carsten Dominik 2009-03-25 20:39 ` John Rakestraw 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 19:52 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode, Carsten Dominik On Mar 25, 2009, at 9:50 AM, Brad Bozarth wrote: > On Wed, Mar 25, 2009 at 1:36 AM, Carsten Dominik <dominik@science.uva.nl > > wrote: >> Hi Brad, >> >> I hope you don't mind, but I find this *so extremely useful* that >> I made a pure Emacs lisp version of this which is now in the git repo >> under the name org-feed.el. It is not made for fancy automatic >> updating with cron jobs and git etc, but it makes for a stand-alone >> alternative that will be easy to configure and has no dependencies >> on external code. > > I don't mind at all! I'm very glad you find it useful, and I will > adopt yours soon - it will be much less fragile. I knew it would be > better implemented natively in elisp, but I haven't coded in lisp in > 10 years :) Just a quick note, org-feed.el is still changing, the interface and settings may still change - I will fix it for the 6.25 release. Until then, please test it, but be prepared for changes. - Carsten > > -brad > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 19:52 ` Carsten Dominik @ 2009-03-25 20:39 ` John Rakestraw 2009-03-25 20:40 ` Carsten Dominik 0 siblings, 1 reply; 34+ messages in thread From: John Rakestraw @ 2009-03-25 20:39 UTC (permalink / raw) To: emacs-orgmode Hi Carsten -- I suspect this is some error in my set-up. > Just a quick note, org-feed.el is still changing, the interface and > settings > may still change - I will fix it for the 6.25 release. Until then, > please > test it, but be prepared for changes. I'm trying to use this, but I can't get it to work. I've added this to my .emacs: <--------> (setq org-feed-alist '(("ReQall" "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc" "~/Dropbox/plans/feeds.org" "ReQall Entries" :filter my-reqall-filter))) (defun my-reqall-filter (e) (when (equal (plist-get e :category) "Task") (setq e (plist-put e :title (concat "TODO " (plist-get e :title))))) e) <---------> I've added FEEDGUIDS as a drawer. If I delete all my tasks from my reQall account and then run "org-feed-update-all" I get the expected response "no new entries from one feed." However, if I add one task to my reQall account, "Try to pull reqall rss feed into org file," and then run "org-feed-update-all" I get this in the messages buffer: Debugger entered: nil (save-current-buffer (set-buffer temp-buffer) (insert template) (debug) (goto-char (point-min)) (while (re-search-forward "%\\([a-zA-Z]+\\)" nil t) (setq name ...) (cond ... ... t)) (setq entry (plist-put entry :formatted-for-org ...))) (with-current-buffer temp-buffer (insert template) (debug) (goto-char (point-min)) (while (re-search-forward "%\\([a-zA-Z]+\\)" nil t) (setq name ...) (cond ... ... t)) (setq entry (plist-put entry :formatted-for-org ...))) (unwind-protect (with-current-buffer temp-buffer (insert template) (debug) (goto-char ...) (while ... ... ...) (setq entry ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ... ... ... ...) (and ... ...))) (with-temp-buffer (insert template) (debug) (goto-char (point-min)) (while (re-search-forward "%\\([a-zA-Z]+\\)" nil t) (setq name ...) (cond ... ... t)) (setq entry (plist-put entry :formatted-for-org ...))) (let (dlines fmt tmp indent) (setq dlines (org-split-string ... "\n") v-h (or ... ... "???") time (or ... ...) v-t (format-time-string ... time) v-T (format-time-string ... time) v-u (format-time-string ... time) v-U (format-time-string ... time) v-a (if ... ... "")) (with-temp-buffer (insert template) (debug) (goto-char ...) (while ... ... ...) (setq entry ...))) (if (or (not entry) (plist-get entry :formatted-for-org)) nil (let (dlines fmt tmp indent) (setq dlines ... v-h ... time ... v-t ... v-T ... v-u ... v-U ... v-a ...) (with-temp-buffer ... ... ... ... ...))) (unless (or (not entry) (plist-get entry :formatted-for-org)) (let (dlines fmt tmp indent) (setq dlines ... v-h ... time ... v-t ... v-T ... v-u ... v-U ... v-a ...) (with-temp-buffer ... ... ... ... ...))) org-feed-format-entry((:guid "2416179132" :item-full-text "\n <title>Try to pull reqall rss into org file</title>\n <link>http://www.reqall.com/web/posts</link>\n <guid isPermaLink=\"false\">2416179132</guid>\n <category>Task</category>\n <description>Task: Try to pull reqall rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss into org file" :link "http://www.reqall.com/web/posts" :category "Task" :description "Task: Try to pull reqall rss into org file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000") "* %h\n %U\n %description\n %a\n") (lambda (e) (org-feed-format-entry e feed-template))((:guid "2416179132" :item-full-text "\n <title>Try to pull reqall rss into org file</title>\n <link>http://www.reqall.com/web/posts</link>\n <guid isPermaLink=\"false\">2416179132</guid>\n <category>Task</category>\n <description>Task: Try to pull reqall rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss into org file" :link "http://www.reqall.com/web/posts" :category "Task" :description "Task: Try to pull reqall rss into org file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000")) mapcar((lambda (e) (org-feed-format-entry e feed-template)) ((:guid "2416179132" :item-full-text "\n <title>Try to pull reqall rss into org file</title>\n <link>http://www.reqall.com/web/posts</link>\n <guid isPermaLink=\"false\">2416179132</guid>\n <category>Task</category>\n <description>Task: Try to pull reqall rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss into org file" :link "http://www.reqall.com/web/posts" :category "Task" :description "Task: Try to pull reqall rss into org file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000"))) (delq nil (mapcar (lambda ... ...) new-selected)) (setq new-selected (delq nil (mapcar ... new-selected))) (if (not new) (progn (message "No new items in feed %s" feed-name) 0) (run-hooks (quote org-feed-before-adding-hook)) (setq new-selected new) (when feed-filter (setq new-selected ...)) (setq new-selected (delq nil ...)) (apply (quote org-feed-add-items) feed-pos new-selected) (if org-feed-assume-stable (apply ... feed-pos ... entries) (apply ... feed-pos nil new)) (goto-char feed-pos) (show-children) (when org-feed-save-after-adding (save-buffer)) (message "Added %d new item%s from feed %s to file %s, heading %s" (length new) (if ... "s" "") feed-name (file-name-nondirectory feed-file) feed-headline) (run-hooks (quote org-feed-after-adding-hook)) (length new)) (save-window-excursion (setq feed-pos (org-feed-goto-inbox-internal feed-file feed-headline)) (setq old-guids (org-feed-get-old-guids feed-pos)) (while (setq e ...) (unless ... ...)) (if (not new) (progn ... 0) (run-hooks ...) (setq new-selected new) (when feed-filter ...) (setq new-selected ...) (apply ... feed-pos new-selected) (if org-feed-assume-stable ... ...) (goto-char feed-pos) (show-children) (when org-feed-save-after-adding ...) (message "Added %d new item%s from feed %s to file %s, heading %s" ... ... feed-name ... feed-headline) (run-hooks ...) (length new))) (save-excursion (save-window-excursion (setq feed-pos ...) (setq old-guids ...) (while ... ...) (if ... ... ... ... ... ... ... ... ... ... ... ... ... ...))) (let ((feed-name ...) (feed-url ...) (feed-file ...) (feed-headline ...) (feed-filter ...) (feed-template ...) feed-buffer feed-pos entries entries2 old-guids current-guids new new-selected e) (setq feed-buffer (org-feed-get-feed feed-url)) (unless (and feed-buffer ...) (error "Cannot get feed %s" feed-name)) (setq entries (org-feed-parse-feed feed-buffer) entries2 entries) (ignore-errors (kill-buffer feed-buffer)) (save-excursion (save-window-excursion ... ... ... ...))) org-feed-update(("ReQall" "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc" "~/Dropbox/plans/feeds.org" "ReQall Entries" :filter my-reqall-filter)) mapcar(org-feed-update (("ReQall" "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc" "~/Dropbox/plans/feeds.org" "ReQall Entries" :filter my-reqall-filter))) (apply (quote +) (mapcar (quote org-feed-update) org-feed-alist)) (let ((nfeeds ...) (nnew ...)) (message "%s from %d %s" (cond ... ... ...) nfeeds (if ... "feed" "feeds"))) org-feed-update-all() call-interactively(org-feed-update-all) execute-extended-command(nil) call-interactively(execute-extended-command) So where did I go wrong? -- John Rakestraw ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 20:39 ` John Rakestraw @ 2009-03-25 20:40 ` Carsten Dominik 0 siblings, 0 replies; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 20:40 UTC (permalink / raw) To: John Rakestraw; +Cc: emacs-orgmode This looks like I forgot a (debug) line somewhere in there.... - Carsten On Mar 25, 2009, at 9:39 PM, John Rakestraw wrote: > Hi Carsten -- > > I suspect this is some error in my set-up. > >> Just a quick note, org-feed.el is still changing, the interface and >> settings >> may still change - I will fix it for the 6.25 release. Until then, >> please >> test it, but be prepared for changes. > > I'm trying to use this, but I can't get it to work. > > I've added this to my .emacs: > > <--------> > (setq org-feed-alist > '(("ReQall" > "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc > " > "~/Dropbox/plans/feeds.org" "ReQall Entries" > :filter my-reqall-filter))) > > (defun my-reqall-filter (e) > (when (equal (plist-get e :category) "Task") > (setq e (plist-put e :title > (concat "TODO " (plist-get e :title))))) > e) > <---------> > > I've added FEEDGUIDS as a drawer. > > If I delete all my tasks from my reQall account and then run > "org-feed-update-all" I get the expected response "no new entries from > one feed." > > However, if I add one task to my reQall account, "Try to pull reqall > rss feed into org file," and then run "org-feed-update-all" I get this > in the messages buffer: > > Debugger entered: nil > (save-current-buffer (set-buffer temp-buffer) (insert template) > (debug) (goto-char (point-min)) (while (re-search-forward > "%\\([a-zA-Z]+\\)" nil t) (setq name ...) (cond ... ... t)) (setq > entry > (plist-put entry :formatted-for-org ...))) (with-current-buffer > temp-buffer (insert template) (debug) (goto-char (point-min)) (while > (re-search-forward "%\\([a-zA-Z]+\\)" nil t) (setq name ...) > (cond ... ... t)) (setq entry (plist-put > entry :formatted-for-org ...))) (unwind-protect (with-current-buffer > temp-buffer (insert template) (debug) (goto-char ...) > (while ... ... ...) (setq entry ...)) (and (buffer-name temp-buffer) > (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect > (with-current-buffer temp-buffer ... ... ... ... ...) (and ... ...))) > (with-temp-buffer (insert template) (debug) (goto-char (point-min)) > (while (re-search-forward "%\\([a-zA-Z]+\\)" nil t) (setq name ...) > (cond ... ... t)) (setq entry (plist-put > entry :formatted-for-org ...))) (let (dlines fmt tmp indent) (setq > dlines (org-split-string ... "\n") v-h (or ... ... "???") time > (or ... ...) v-t (format-time-string ... time) v-T > (format-time-string ... time) v-u (format-time-string ... time) v-U > (format-time-string ... time) v-a (if ... ... "")) (with-temp-buffer > (insert template) (debug) (goto-char ...) (while ... ... ...) (setq > entry ...))) (if (or (not entry) (plist-get entry :formatted-for-org)) > nil (let (dlines fmt tmp indent) (setq dlines ... v-h ... time ... > v-t ... v-T ... v-u ... v-U ... v-a ...) > (with-temp-buffer ... ... ... ... ...))) (unless (or (not entry) > (plist-get entry :formatted-for-org)) (let (dlines fmt tmp indent) > (setq dlines ... v-h ... time ... v-t ... v-T ... v-u ... v-U ... > v-a ...) (with-temp-buffer ... ... ... ... ...))) > org-feed-format-entry((:guid "2416179132" :item-full-text "\n > <title>Try to pull reqall rss into org file</title>\n > <link>http://www.reqall.com/web/posts</link>\n <guid > isPermaLink=\"false\">2416179132</guid>\n > <category>Task</category>\n <description>Task: Try to pull reqall > rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 > 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss > into org file" :link "http://www.reqall.com/web/posts" :category > "Task" :description "Task: Try to pull reqall rss into org > file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000") "* %h\n %U\n > %description\n %a\n") (lambda (e) (org-feed-format-entry e > feed-template))((:guid "2416179132" :item-full-text "\n > <title>Try > to pull reqall rss into org file</title>\n > <link>http://www.reqall.com/web/posts</link>\n <guid > isPermaLink=\"false\">2416179132</guid>\n > <category>Task</category>\n <description>Task: Try to pull reqall > rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 > 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss > into org file" :link "http://www.reqall.com/web/posts" :category > "Task" :description "Task: Try to pull reqall rss into org > file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000")) mapcar((lambda (e) > (org-feed-format-entry e feed-template)) ((:guid > "2416179132" :item-full-text "\n <title>Try to pull reqall rss > into org file</title>\n > <link>http://www.reqall.com/web/posts</link>\n <guid > isPermaLink=\"false\">2416179132</guid>\n > <category>Task</category>\n <description>Task: Try to pull reqall > rss into org file</description>\n <pubDate>Wed, 25 Mar 2009 > 20:25:43 -0000</pubDate>\n " :title "TODO Try to pull reqall rss > into org file" :link "http://www.reqall.com/web/posts" :category > "Task" :description "Task: Try to pull reqall rss into org > file" :pubDate "Wed, 25 Mar 2009 20:25:43 -0000"))) (delq nil (mapcar > (lambda ... ...) new-selected)) (setq new-selected (delq nil > (mapcar ... new-selected))) (if (not new) (progn (message "No new > items > in feed %s" feed-name) 0) (run-hooks (quote > org-feed-before-adding-hook)) (setq new-selected new) (when feed- > filter > (setq new-selected ...)) (setq new-selected (delq nil ...)) (apply > (quote org-feed-add-items) feed-pos new-selected) (if > org-feed-assume-stable (apply ... feed-pos ... entries) (apply ... > feed-pos nil new)) (goto-char feed-pos) (show-children) (when > org-feed-save-after-adding (save-buffer)) (message "Added %d new item > %s > from feed %s to file %s, heading %s" (length new) (if ... "s" "") > feed-name (file-name-nondirectory feed-file) feed-headline) (run-hooks > (quote org-feed-after-adding-hook)) (length new)) > (save-window-excursion (setq feed-pos (org-feed-goto-inbox-internal > feed-file feed-headline)) (setq old-guids (org-feed-get-old-guids > feed-pos)) (while (setq e ...) (unless ... ...)) (if (not new) > (progn ... 0) (run-hooks ...) (setq new-selected new) (when > feed-filter ...) (setq new-selected ...) (apply ... feed-pos > new-selected) (if org-feed-assume-stable ... ...) (goto-char feed-pos) > (show-children) (when org-feed-save-after-adding ...) (message "Added > %d new item%s from feed %s to file %s, heading %s" ... ... > feed-name ... feed-headline) (run-hooks ...) (length new))) > (save-excursion (save-window-excursion (setq feed-pos ...) (setq > old-guids ...) (while ... ...) > (if ... ... ... ... ... ... ... ... ... ... ... ... ... ...))) (let > ((feed-name ...) (feed-url ...) (feed-file ...) (feed-headline ...) > (feed-filter ...) (feed-template ...) feed-buffer feed-pos entries > entries2 old-guids current-guids new new-selected e) (setq feed-buffer > (org-feed-get-feed feed-url)) (unless (and feed-buffer ...) (error > "Cannot get feed %s" feed-name)) (setq entries (org-feed-parse-feed > feed-buffer) entries2 entries) (ignore-errors (kill-buffer > feed-buffer)) (save-excursion (save-window- > excursion ... ... ... ...))) > org-feed-update(("ReQall" > "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc > " > "~/Dropbox/plans/feeds.org" "ReQall Entries" :filter my-reqall- > filter)) > mapcar(org-feed-update (("ReQall" > "http://www.reqall.com/user/feeds/rss/8dc53e3aff648650b9996a61717a75adf27c54dc > " > "~/Dropbox/plans/feeds.org" "ReQall Entries" :filter > my-reqall-filter))) (apply (quote +) (mapcar (quote org-feed-update) > org-feed-alist)) (let ((nfeeds ...) (nnew ...)) (message "%s from %d > %s" (cond ... ... ...) nfeeds (if ... "feed" "feeds"))) > org-feed-update-all() call-interactively(org-feed-update-all) > execute-extended-command(nil) > call-interactively(execute-extended-command) > > So where did I go wrong? > > > -- > John Rakestraw > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 8:36 ` Carsten Dominik 2009-03-25 8:50 ` Brad Bozarth @ 2009-03-25 9:06 ` Brad Bozarth 2009-03-25 9:09 ` Carsten Dominik 2009-03-25 9:35 ` Ian Barton 2 siblings, 1 reply; 34+ messages in thread From: Brad Bozarth @ 2009-03-25 9:06 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode A quick question - if I use a non-nil org-feed-assume-stable, will that handle "updating" a changed reqall entry? This would be both for the case of the entries initially saying "Reqall is typing what you said" before they are transcribed, and for the case of editing an existing entry on the iPhone or web interface. -brad On Wed, Mar 25, 2009 at 1:36 AM, Carsten Dominik <dominik@science.uva.nl> wrote: > Hi Brad, > > I hope you don't mind, but I find this *so extremely useful* that > I made a pure Emacs lisp version of this which is now in the git repo > under the name org-feed.el. It is not made for fancy automatic > updating with cron jobs and git etc, but it makes for a stand-alone > alternative that will be easy to configure and has no dependencies > on external code. > > For example, to get a reQall feed into file ~/org/feeds.org under heading > "ReQall Entries", you would do this. > > (setq org-feed-alist > '(("ReQall" "http://www.reqall.com/user/feeds/rss/a1b2..." > "~/org/feeds.org" "ReQall Entries"))) > > I do hope that this will not stop python hackers from exploring > this further, because I thought that the python solution was really > good and innovative, and it shows what can be done with modules like > the ones Charles has put out. > > - Carsten > > > On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: > >> Hi! I'm new to org-mode, but knew I had to use it when I combined a >> desire to try GTD with my ctrl-s view of the world. >> >> I'm ok with processing tethered to a computer, but wanted an easy way >> to capture on the move, without adding anything to my pocket. A couple >> days of hacking later (with some real *hacks*, but they work), and >> I've got something I really like. >> >> I can now, using either the iphone keyboard or my voice, quickly >> capture something, and know that it will shortly be sitting as a TODO >> under "iPhone inbox" in my gtd.org file that is git synchronized >> between all my computers. I put it together with a cron'd shell >> script, two awk scripts, and the free "Reqall" iPhone app. Could be >> done more elegantly, but then I wouldn't be Getting (other) Things >> Done :). I can share the hacks if anyone is interested. >> >> -brad >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 9:06 ` Brad Bozarth @ 2009-03-25 9:09 ` Carsten Dominik 2009-03-25 9:25 ` Carsten Dominik 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 9:09 UTC (permalink / raw) To: Brad Bozarth; +Cc: emacs-orgmode, Carsten Dominik On Mar 25, 2009, at 10:06 AM, Brad Bozarth wrote: > A quick question - if I use a non-nil org-feed-assume-stable, will > that handle "updating" a changed reqall entry? This would be both for > the case of the entries initially saying "Reqall is typing what you > said" before they are transcribed, and for the case of editing an > existing entry on the iPhone or web interface. No, things like this is handled yet. - Carsten > -brad > > On Wed, Mar 25, 2009 at 1:36 AM, Carsten Dominik <dominik@science.uva.nl > > wrote: >> Hi Brad, >> >> I hope you don't mind, but I find this *so extremely useful* that >> I made a pure Emacs lisp version of this which is now in the git repo >> under the name org-feed.el. It is not made for fancy automatic >> updating with cron jobs and git etc, but it makes for a stand-alone >> alternative that will be easy to configure and has no dependencies >> on external code. >> >> For example, to get a reQall feed into file ~/org/feeds.org under >> heading >> "ReQall Entries", you would do this. >> >> (setq org-feed-alist >> '(("ReQall" "http://www.reqall.com/user/feeds/rss/a1b2..." >> "~/org/feeds.org" "ReQall Entries"))) >> >> I do hope that this will not stop python hackers from exploring >> this further, because I thought that the python solution was really >> good and innovative, and it shows what can be done with modules like >> the ones Charles has put out. >> >> - Carsten >> >> >> On Mar 22, 2009, at 11:38 AM, Brad Bozarth wrote: >> >>> Hi! I'm new to org-mode, but knew I had to use it when I combined a >>> desire to try GTD with my ctrl-s view of the world. >>> >>> I'm ok with processing tethered to a computer, but wanted an easy >>> way >>> to capture on the move, without adding anything to my pocket. A >>> couple >>> days of hacking later (with some real *hacks*, but they work), and >>> I've got something I really like. >>> >>> I can now, using either the iphone keyboard or my voice, quickly >>> capture something, and know that it will shortly be sitting as a >>> TODO >>> under "iPhone inbox" in my gtd.org file that is git synchronized >>> between all my computers. I put it together with a cron'd shell >>> script, two awk scripts, and the free "Reqall" iPhone app. Could be >>> done more elegantly, but then I wouldn't be Getting (other) Things >>> Done :). I can share the hacks if anyone is interested. >>> >>> -brad >>> >>> >>> _______________________________________________ >>> Emacs-orgmode mailing list >>> Remember: use `Reply All' to send replies to the list. >>> Emacs-orgmode@gnu.org >>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >> >> ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 9:09 ` Carsten Dominik @ 2009-03-25 9:25 ` Carsten Dominik 0 siblings, 0 replies; 34+ messages in thread From: Carsten Dominik @ 2009-03-25 9:25 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode On Mar 25, 2009, at 10:09 AM, Carsten Dominik wrote: > > On Mar 25, 2009, at 10:06 AM, Brad Bozarth wrote: > >> A quick question - if I use a non-nil org-feed-assume-stable, will >> that handle "updating" a changed reqall entry? This would be both for >> the case of the entries initially saying "Reqall is typing what you >> said" before they are transcribed, and for the case of editing an >> existing entry on the iPhone or web interface. > > No, things like this is handled yet. I am really becoming incapable to write properly. Sorry about that. What I meant is this: No, things like this are not handled. I view this as a one-way interface, capture to Org. Maybe it would be good to catch things like "reqall is typing" to make sure this entry will be ignored now and picked up again later... With the current implementation, the entry will be captured in whatever state it is, and then not look at it again. - Carsten ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 8:36 ` Carsten Dominik 2009-03-25 8:50 ` Brad Bozarth 2009-03-25 9:06 ` Brad Bozarth @ 2009-03-25 9:35 ` Ian Barton 2009-03-25 10:57 ` William Henney 2009-03-25 14:29 ` Bernt Hansen 2 siblings, 2 replies; 34+ messages in thread From: Ian Barton @ 2009-03-25 9:35 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode > > I do hope that this will not stop python hackers from exploring > this further, because I thought that the python solution was really > good and innovative, and it shows what can be done with modules like > the ones Charles has put out. > > - Carsten Don't worry it wont:) I have set up a repo for my Python version at git://github.com/geekinthesticks/org-reqall.git . It doesn't have anything in it at the moment, because I stupidly put my own reqall rss url in one of the versions for testing purposes, so its in the version history. Once I am happy that I have worked out how to make git rewrite history, I'll push it up there and post another message here. Ian. ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 9:35 ` Ian Barton @ 2009-03-25 10:57 ` William Henney 2009-03-26 15:39 ` Carsten Dominik 2009-03-25 14:29 ` Bernt Hansen 1 sibling, 1 reply; 34+ messages in thread From: William Henney @ 2009-03-25 10:57 UTC (permalink / raw) To: Ian Barton; +Cc: emacs-orgmode, Carsten Dominik [-- Attachment #1: Type: text/plain, Size: 2131 bytes --] On Wed, Mar 25, 2009 at 10:35 AM, Ian Barton <lists@manor-farm.org> wrote: > >> >> I do hope that this will not stop python hackers from exploring >> this further, because I thought that the python solution was really >> good and innovative, and it shows what can be done with modules like >> the ones Charles has put out. >> >> - Carsten > > Don't worry it wont:) I have set up a repo for my Python version at > git://github.com/geekinthesticks/org-reqall.git . It doesn't have anything > in it at the moment, because I stupidly put my own reqall rss url in one of > the versions for testing purposes, so its in the version history. > I also have been hacking on Ian's python script - I hope you don't mind! I changed it to support Ta-da lists (tadalist.com) rather than reqall. In my opinion, ta-da list is a much simpler and has a nice clean interface. It has the disadvantage that it doesn't have an accompanying iPhone/Touch app that works offline, although it does have a beautiful ipod-optimized web interface. And it doesn't support bling such as voice memos, but then reqall doesn't support voice memos on the Touch either, even if you have an external mic :( Anyway, I am attaching it (sync-tadalist.py) in case anyone finds it useful. In particular, it has a few changes that Ian might want to fold back into his version. For instance, it solves the private URL problem by reading it from an external dot file. Also, the original was repeatedly parsing the org file inside the loop over feed entries. This is unnecessary, so I have moved it outside. I guess that ideally we want a webservice that 1. Allows adding tasks etc via a mobile device, preferably with offline capabilities and syncing 2. Exports RSS feeds of tasks so that org-mode can grab them 3. Exports an API that would let org-mode write information back to the service, e.g., marking a task as done Does anyone know of a service that supports all 3? Cheers Will -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia [-- Attachment #2: sync-tadalist.py --] [-- Type: application/octet-stream, Size: 2333 bytes --] #!/usr/bin/python ## ## Original version by Ian Barton <lists@manor-farm.org> ## Inspired by an earlier idea from Brad Bozarth <prettygood@cs.stanford.edu> ## See this thread mailplane://whenney%40gmail.com/#all/12039b935bfa22e8 ## ## 25 Mar 2009 Will Henney - edited to support Ta-da instead of reQall ## # WJH 25 Mar 2009 - note this is not the same as email.feedparser in the standard lib # but is rather from http://code.google.com/p/feedparser import feedparser # Note the current version of orgnode.py # requires a file with at least one entry. # WJH 25 Mar 2009 - this is from http://members.optusnet.com.au/~charles57/GTD/orgnode.html # WJH 25 Mar 2009 - had to change orgnode -> Orgnode import Orgnode # WJH place the desired feed URL in the file .tada-rss-feed REQUALL_URL = open('.tada-rss-feed').read().strip() ORG_FILE = 'tada-tasks.org' def write_task(task): logfile = open(ORG_FILE, 'a') parent_heading = '* %s\n' % (task.parentlist) str = "** TODO %s\n :PROPERTIES:\n :guid: %s\n :END:\n" % (task.title, task.guid) if parent_heading not in listoflists: logfile.write(parent_heading) listoflists.append(parent_heading) if debug > 0: print "Added new top-level list: %s" % (task.parentlist) logfile.write(str) if debug > 0: print "Added %s to %s" % (task.title, task.parentlist) logfile.close() def load_org_file(): """ Create a list of org objects. """ nodelist = Orgnode.makelist(ORG_FILE) return nodelist # Open and parse the rss feed. d = feedparser.parse(REQUALL_URL) print d.feed.title # build a list of all the guids in the org file. # WJH 25 Mar 2009 - I see no need to repeat this part for every entry nodelist = load_org_file() guids = [] for node in nodelist: guids.append(node.Property('guid')) listoflists = [] debug = 1 for entry in d['entries']: # Only add entries for guids that are not already in the file. if entry.guid in guids: print "Entry skipped." else: # WJH 25 Mar 2009 - add new guid to saved list guids.append(entry.guid) if debug > 1: for key in entry.keys(): print "%s :: %s" % (key, entry[key]) # Strip the prefix "On " from description to get parent list if entry.description.startswith("On "): entry.parentlist = entry.description[3:] write_task(entry) [-- Attachment #3: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 10:57 ` William Henney @ 2009-03-26 15:39 ` Carsten Dominik 2009-03-26 17:07 ` William Henney [not found] ` <71454fac0903261121u79e85c3bq2538a294701e4c78@mail.gmail.com> 0 siblings, 2 replies; 34+ messages in thread From: Carsten Dominik @ 2009-03-26 15:39 UTC (permalink / raw) To: William Henney; +Cc: emacs-orgmode, Carsten Dominik On Mar 25, 2009, at 11:57 AM, William Henney wrote: > On Wed, Mar 25, 2009 at 10:35 AM, Ian Barton <lists@manor-farm.org> > wrote: >> >>> >>> I do hope that this will not stop python hackers from exploring >>> this further, because I thought that the python solution was really >>> good and innovative, and it shows what can be done with modules like >>> the ones Charles has put out. >>> >>> - Carsten >> >> Don't worry it wont:) I have set up a repo for my Python version at >> git://github.com/geekinthesticks/org-reqall.git . It doesn't have >> anything >> in it at the moment, because I stupidly put my own reqall rss url >> in one of >> the versions for testing purposes, so its in the version history. >> > > I also have been hacking on Ian's python script - I hope you don't > mind! > > I changed it to support Ta-da lists (tadalist.com) rather than reqall. > In my opinion, ta-da list is a much simpler and has a nice clean > interface. It has the disadvantage that it doesn't have an > accompanying iPhone/Touch app that works offline, although it does > have a beautiful ipod-optimized web interface. And it doesn't support > bling such as voice memos, but then reqall doesn't support voice memos > on the Touch either, even if you have an external mic :( > > Anyway, I am attaching it (sync-tadalist.py) in case anyone finds it > useful. In particular, it has a few changes that Ian might want to > fold back into his version. For instance, it solves the private URL > problem by reading it from an external dot file. Also, the original > was repeatedly parsing the org file inside the loop over feed entries. > This is unnecessary, so I have moved it outside. > > I guess that ideally we want a webservice that > > 1. Allows adding tasks etc via a mobile device, preferably with > offline capabilities and syncing > > 2. Exports RSS feeds of tasks so that org-mode can grab them > > 3. Exports an API that would let org-mode write information back to > the service, e.g., marking a task as done > > Does anyone know of a service that supports all 3? I don't know any, but the number of apps is always growing. I am still looking for a dedicated iPhone developer who will write and Org-mode app :-) Cheers - Carsten ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-26 15:39 ` Carsten Dominik @ 2009-03-26 17:07 ` William Henney 2009-03-26 18:20 ` Richard Riley [not found] ` <71454fac0903261121u79e85c3bq2538a294701e4c78@mail.gmail.com> 1 sibling, 1 reply; 34+ messages in thread From: William Henney @ 2009-03-26 17:07 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs-orgmode On Thu, Mar 26, 2009 at 4:39 PM, Carsten Dominik <carsten.dominik@gmail.com> wrote: > > I am still looking for a dedicated iPhone developer who will write > and Org-mode app :-) > I would love to see that! But I have neither the skills, time, nor funding to help (though I would pay good money for the app). <offtopic> So, I searched for "emacs" at the ITunes store and I found a couple of useless-looking cheat sheets[1] for the iPhone/Touch, plus a track called "Emacs" by a trance/techno band called BandX. And their album (11R6) seems to be named after a release of X windows... </offtopic> Cheers Will [1] If you are in emacs, you have "C-h b", "M-x apropos", etc. If you are not in emacs, why would you need to know the keybindings? -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-26 17:07 ` William Henney @ 2009-03-26 18:20 ` Richard Riley 0 siblings, 0 replies; 34+ messages in thread From: Richard Riley @ 2009-03-26 18:20 UTC (permalink / raw) To: William Henney; +Cc: emacs-orgmode William Henney <whenney@gmail.com> writes: > On Thu, Mar 26, 2009 at 4:39 PM, Carsten Dominik > <carsten.dominik@gmail.com> wrote: >> >> I am still looking for a dedicated iPhone developer who will write >> and Org-mode app :-) >> > > I would love to see that! But I have neither the skills, time, nor > funding to help (though I would pay good money for the app). > > <offtopic> > So, I searched for "emacs" at the ITunes store and I found a couple of > useless-looking cheat sheets[1] for the iPhone/Touch, plus a track > called "Emacs" by a trance/techno band called BandX. And their album > (11R6) seems to be named after a release of X windows... > </offtopic> > > Cheers > > Will > > [1] If you are in emacs, you have "C-h b", "M-x apropos", etc. If you > are not in emacs, why would you need to know the keybindings? because you don't know the name of the elisp command? ^ permalink raw reply [flat|nested] 34+ messages in thread
[parent not found: <71454fac0903261121u79e85c3bq2538a294701e4c78@mail.gmail.com>]
* Re: iPhone ----> org-mode [not found] ` <71454fac0903261121u79e85c3bq2538a294701e4c78@mail.gmail.com> @ 2009-03-27 9:15 ` Carsten Dominik 2009-03-27 15:45 ` Sven Bretfeld 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-27 9:15 UTC (permalink / raw) To: Greg Newman; +Cc: emacs-orgmode Mailinglist On Mar 26, 2009, at 7:21 PM, Greg Newman wrote: > Carsten Dominik wrote: > >> I am still looking for a dedicated iPhone developer who will write >> and Org-mode app :-) > > I'm still looking for a reason to use my iphone developer license. Really? Well, here is my view on how to design such an app, maybe it will inspire you. Table of Contents ================= 1 Basic principles 1.1 Simplicity 1.2 Forget Synchronization 1.3 Offline 2 Main features 2.1 Capture 2.2 Display of current tasks 2.3 Flagging 3 Implementation proposal 3.1 Main screen 3.2 Data Desktop->iPod 3.3 Data iPhone->Desktop 4 The experience on the Emacs side 1 Basic principles ~~~~~~~~~~~~~~~~~~~ 1.1 Simplicity =============== Don't even think about re-creating Org-mode for the iPhone/iPod. If this is what you want, get a mobile device that runs Emacs. Too many companies have tried to duplicate their desktop experience on the iPhone, and most have, in my opinion failed. If you look at the iPhone versions of Things, OmniFocus, Evernote, you name it, all of them are too complicated for the touch interface. Simplicity is the absolute key to make things work on that platform. When I am trying to enter a new note in Evernote, for example, it drives me crazy that I have to tap on the title filed, just to start entering a title, then tap done, then tap a date field, use some unpleasant interface to select a date, then tap done, all of this before I have even started to write my note. Apples Notes app does that right, tap "+" to create a note, and then type away, title automatically extracted from the first line, done. 1.2 Forget Synchronization =========================== I believe that something that does direct, 2-way synchronization between Org and a mobile app will be very hard to get right. Instead, I propose a two data streams, one from the desktop to the app, one back. 1.3 Offline ============ I believe it is essential that this app works offline as well. You could be on a plane, or, more importantly, you could be an iPod Touch user (I am), unwilling to pay $30 or more per month to keep your data service running. I am an offline user. I downloaded most of Wikipedia onto the Touch, and being able to use the app offline I see as an essential feature. 2 Main features ~~~~~~~~~~~~~~~~ 2.1 Capture ============ Create new Org entries like notes in as primitive a way as possible. 2.2 Display of current tasks ============================= List the most recent agenda view from the desktop, including the task list and whatever other views you have configured for this. Just one simple list to rule them all, maybe with toolbar buttons to jump to the agenda section, the task list section, etc. Simplicity! 2.3 Flagging ============= In the list of tasks, have at most two buttons for each task. Actually I would be satisfied only the first one, but might like the second one. Here are the buttons: 1. Flag entry for later attention when I am back at my desktop 2. Done, get it out of my sight without further interaction. Precise action to be defined in Emacs. 3 Implementation proposal ~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.1 Main screen ================ Directly into the task list, with a top level button to create a new task/note, maybe in the tool bar at the bottom of the page. 3.2 Data Desktop->iPod ======================= Make Emacs automatically create a special agenda-like view, containing the agenda for the coming week, and current task. We can configure this in Emacs, and I can push out this list in any desired format. Each entry listed will be forced to have an ID, for unique identification. I don't know how to get this list onto the iPhone, maybe the easiest would be to mount the iPhone via WiFi and to push a single file onto it. Apps like Datacase do this kind of a thing. 3.3 Data iPhone->Desktop ========================= The iPhone app should create a single file like an RSS feed. This feed would contain two kinds of items 1. New entries captured. We could be really clever on the Desktop/Emacs side in parsing these new entries, extracting free form dates from things like +2Fri etc. Now stupid date input forms on the iPhone, just free typing and clever interpretation. 2. IDs of flagged entries. The next time at your Desktop, Emacs will make an agenda view listing all the flagged entries, and then you can archive them, add notes, changes states, from you memory. You will do this in the full environment provided by Emacs, not on a crippled interface. In this way, the lack of synchronization will be a feature, not a bug. 4 The experience on the Emacs side ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. When you start Org-mode, we would check if the iPhone is mounted. If yes, we would periodically (with a timer) create the latest best agenda view and push it onto the device, so that you have a fresh version when you disconnect. 2. If the phone is mounted, Emacs would check if the "feed" file exists. If yes, it would read it and remove it from the iPhone so that new entries will create a new feed file. Emacs would add the new node to an inbox (like org-feed.el does now for RSS feeds). It would mark and archive (or whatever you configure for this) the entries flagged as "get out of my sight". And it would store the list of IDs of entries that require "attention", and will offer agenda views based on this list. This is it. This would make me happy. I would of course be willing to handle the entire Emacs side of this. Comments? ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-27 9:15 ` Carsten Dominik @ 2009-03-27 15:45 ` Sven Bretfeld 2009-03-27 17:29 ` Carsten Dominik 0 siblings, 1 reply; 34+ messages in thread From: Sven Bretfeld @ 2009-03-27 15:45 UTC (permalink / raw) To: emacs-orgmode Mailinglist Carsten Dominik <carsten.dominik@gmail.com> writes: > This is it. This would make me happy. I would of course > be willing to handle the entire Emacs side of this. > > Comments? Brilliant. Just what I was asking for in my Posting last week. As I have argued, solutions like this would be the most important piece of development. However, it would be a pity to have this iPhone-only. Greetings, Sven -- Sven Bretfeld CERES -- CEntrum für REligionswissenschaftliche Studien Ruhr-Universität Bochum Universitätsstraße 150 D-44780 Bochum ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-27 15:45 ` Sven Bretfeld @ 2009-03-27 17:29 ` Carsten Dominik 2009-03-27 18:07 ` David Bremner 0 siblings, 1 reply; 34+ messages in thread From: Carsten Dominik @ 2009-03-27 17:29 UTC (permalink / raw) To: Sven Bretfeld; +Cc: emacs-orgmode Mailinglist On Mar 27, 2009, at 4:45 PM, Sven Bretfeld wrote: > Carsten Dominik <carsten.dominik@gmail.com> writes: > >> This is it. This would make me happy. I would of course >> be willing to handle the entire Emacs side of this. >> >> Comments? > > Brilliant. Just what I was asking for in my Posting last week. As I > have > argued, solutions like this would be the most important piece of > development. However, it would be a pity to have this iPhone-only. The Emacs side will be general, and I guess there is no way to make a general mobile side? - Carsten ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-27 17:29 ` Carsten Dominik @ 2009-03-27 18:07 ` David Bremner 0 siblings, 0 replies; 34+ messages in thread From: David Bremner @ 2009-03-27 18:07 UTC (permalink / raw) To: emacs-orgmode Mailinglist At Fri, 27 Mar 2009 18:29:02 +0100, Carsten Dominik wrote: > > > > Brilliant. Just what I was asking for in my Posting last week. As I > > have > > argued, solutions like this would be the most important piece of > > development. However, it would be a pity to have this iPhone-only. > > The Emacs side will be general, and I guess there is no > way to make a general mobile side? > Conceivably some portability is acheivable using e.g. python on jailbroken iphones. No idea how much of the UI code is portable. Obviously not everyone is comfortable jailbreaking their iphone. d ^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: iPhone ----> org-mode 2009-03-25 9:35 ` Ian Barton 2009-03-25 10:57 ` William Henney @ 2009-03-25 14:29 ` Bernt Hansen 1 sibling, 0 replies; 34+ messages in thread From: Bernt Hansen @ 2009-03-25 14:29 UTC (permalink / raw) To: Ian Barton; +Cc: emacs-orgmode, Carsten Dominik Ian Barton <lists@manor-farm.org> writes: > Don't worry it wont:) I have set up a repo for my Python version at > git://github.com/geekinthesticks/org-reqall.git . It doesn't have > anything in it at the moment, because I stupidly put my own reqall rss > url in one of the versions for testing purposes, so its in the version > history. > > Once I am happy that I have worked out how to make git rewrite > history, I'll push it up there and post another message here. You can use git rebase -i to rewrite the commit with your private URL (maybe to a configuration variable value instead) and then push the result. Something like this: git rebase -i <Commit SHA to fix>^ <edit file to fix it up> git add <file> git rebase --continue HTH, Bernt ^ permalink raw reply [flat|nested] 34+ messages in thread
end of thread, other threads:[~2009-03-27 18:07 UTC | newest] Thread overview: 34+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-03-22 10:38 iPhone ----> org-mode Brad Bozarth 2009-03-22 13:52 ` Carsten Dominik 2009-03-23 8:32 ` Brad Bozarth 2009-03-23 13:47 ` Ian Barton 2009-03-24 0:43 ` Brad Bozarth 2009-03-24 7:37 ` Carsten Dominik 2009-03-24 8:30 ` Ian Barton 2009-03-24 8:38 ` Carsten Dominik 2009-03-24 10:20 ` Ian Barton 2009-03-24 7:03 ` Rob Weir 2009-03-25 5:56 ` Brad Bozarth 2009-03-25 8:00 ` Brad Bozarth 2009-03-22 21:23 ` John Rakestraw 2009-03-24 11:32 ` Carsten Dominik 2009-03-24 18:21 ` Brad Bozarth 2009-03-25 8:28 ` Carsten Dominik 2009-03-25 8:36 ` Carsten Dominik 2009-03-25 8:50 ` Brad Bozarth 2009-03-25 19:52 ` Carsten Dominik 2009-03-25 20:39 ` John Rakestraw 2009-03-25 20:40 ` Carsten Dominik 2009-03-25 9:06 ` Brad Bozarth 2009-03-25 9:09 ` Carsten Dominik 2009-03-25 9:25 ` Carsten Dominik 2009-03-25 9:35 ` Ian Barton 2009-03-25 10:57 ` William Henney 2009-03-26 15:39 ` Carsten Dominik 2009-03-26 17:07 ` William Henney 2009-03-26 18:20 ` Richard Riley [not found] ` <71454fac0903261121u79e85c3bq2538a294701e4c78@mail.gmail.com> 2009-03-27 9:15 ` Carsten Dominik 2009-03-27 15:45 ` Sven Bretfeld 2009-03-27 17:29 ` Carsten Dominik 2009-03-27 18:07 ` David Bremner 2009-03-25 14:29 ` Bernt Hansen
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).