1. Dan Connolly
  2. palmagent


PalmAgent -- synchronizing data in my palm with the rest of the Web =================================================================== palmagent is a collection of tools for synchronizing data from mobile devices to other parts of the Web. It's something of a skunkworks project, with accomplishments documented in journal/blog entries such as: - July 2015: `Syncing a 5 Year iPhoto Library with flickr <http://www.madmode.com/2015/photo-flickr-explore.html>`__ source: `flickdata <src/tip/flickdata/>`__ - July 2015: `jukekb <src/tip/jukekb/>`__ - Browse iTunes libraries and upload playlists to Google Music June 2011 and older: - `import\_playlist.py <src/tip/import_playlist.py>`__ - `ipodls.py <src/tip/ipodls.py>`__ - `music\_mgr.py <src/tip/music_mgr.py>`__ - `hmedia\_in.py <src/tip/hmedia_in.py>`__ - `m3uin.py <src/tip/m3uin.py>`__ - `itunekb.py <src/tip/itunekb.py>`__ 2009-01 - Aug 2012: `commitcal <src/tip/commitcal.py>`__ formats my hg commits for this week as .ics - Feb 2011: contact\_fix.py -- batch edit google contacts - Jan 2011: drupalbak.py -- backup drupal blog - Jul 2010: dngr\_contact.py: hCard for sidekick/android migration - Feb 2009: hipg.py -- upload hiptop data to gdata services - Jan 2009: aboutfollowers.py -- enumerate twitter followers and get their bios ublog.jsb - bookmarklet to explore followers - Sep 2007: `Soccer schedules, flight itineraries, timezones, and python web frameworks <http://dig.csail.mit.edu/breadcrumbs/node/201>`__ in the `calendar category <http://dig.csail.mit.edu/breadcrumbs/taxonomy/term/28>`__ of Breadcrumbs, my research journal/blog - Nov 2006: `A new Basketball season brings a new episode in the personal information disaster <http://dig.csail.mit.edu/breadcrumbs/node/172>`__ - Mar 2006: `hacking soccer schedules into hCalendar and into my sidekick <http://dig.csail.mit.edu/breadcrumbs/node/107>`__ - Jul 2005: advobak.py -- back up an advogato diary - Jun 2005: `Using hCard, XSLT, and RDF to sync the family cellphones <http://www.advogato.org/person/connolly/diary.html?start=26>`__ in my advogato open source journal Some of the code here was developed back around 2001 when I used a palmpilot. `Notes on Palm OS features, issues, and requirements <palm-notes.html>`__ are kept separate now. Tags: `mobile <http://del.icio.us/connolly/mobile>`__, `travel <http://del.icio.us/connolly/travel>`__, `gtd <http://del.icio.us/connolly/gtd>`__, `calendar <http://del.icio.us/connolly/calendar>`__, `geo <http://del.icio.us/connolly/geo>`__, `music <http://del.icio.us/connolly/music>`__, `python <http://del.icio.us/connolly/python>`__ `microformats <http://del.icio.us/connolly/microformats>`__, `GRDDL <http://del.icio.us/connolly/GRDDL>`__, `RDF <http://del.icio.us/connolly/rdf>`__, `sync <http://del.icio.us/connolly/sync>`__ dangerSync XMLRPC ----------------- - Get data from a `danger <http://developer.danger.com/>`__ sidekick account into a `shelve <http://docs.python.org/lib/module-shelve.html>`__ store via their XMLRPC interface and get incremental updates: :: python dangerSync.py --prod --user=USER --passwd=PASSWD >,session-creds python dangerSync.py --prod --session=`cat ,session-creds` --get contact python dangerSync.py --prod --session=`cat ,session-creds` --get event python dangerSync.py --prod --session=`cat ,session-creds` --get note* - dump XMLRPC data from the shelf to RDF: :: dangerSync.py --xml event >event.rdf dangerSync.py --xml contact >contact.rdf - dump just events that affect the future: :: dangerSync.py --newer 20050515 >plan.rdf \*Known issue: incremental updates to note DB results in: :: XMLRPCxmlrpclib.Fault: <Fault 0: 'org.apache.xmlrpc.XmlRpcException: org.apache.xmlrpc.XmlRpcException: APPX: Can\'t call method "read_only" on an undefined value at //danger/local/lib/perl5/site_perl/5.8.5/Danger/DBP.pm line 982.\n'> work-around: just remove the note DB file and get all the notes again. Microformats ------------ - convert contact data (from Work category) to hCard: :: xsltproc --novalid --stringparam Category Work --output work.html asHCard.xsl contact.rdf RDF Calendar ------------ hipsrv.py uses templates to render data from the shelve db; for example, in RDF calendar format, which can be converted to .ics :: python hipsrv.py --current=2007-01-01 --category=home --todo \ event-rdf.kid home-events.rdf python toIcal.py <home-events.rdf >home-events.ics The template approach is much faster than the earlier N3 rules approach: :: cwm plan.rdf danger.n3 --think=danger2ical.n3 --rdf --with 'http://majo@calendar.sidekick.dngr.com/event?id=' >event-mixed.rdf Mailing Labels -------------- Starting with ``contact.rdf`` as above: :: cwm contact.rdf contactLabels.n3 --filter=contactLabels.n3 --data --rdf >contactLabels.rdf perl jobieLabels.pl contactLabels.rdf >contactLabels.ps Gone fishing upstream --------------------- Some work that started here has moved upstream to...: - X2V in `hg.microformats.org <http://hg.microformats.org/>`__ - `RDF Calendar <http://www.w3.org/2002/12/cal/>`__ - `data4 <http://homer.w3.org/~connolly/projects/data4>`__, e.g. aptdata.py See also: `GRDDL <http://www.w3.org/2003/g/data-view>`__, `microformats <http://www.microformats.org/>`__, and `paper-trail <http://www.w3.org/DesignIssues/PaperTrail>`__ style synchronization. -------------- | `Dan Connolly <http://www.w3.org/People/Connolly/>`__