all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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 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 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-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-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-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-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-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: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  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

* 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 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

* 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

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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.