Wednesday, October 20, 2010

How to prevent a desktopcouch DB from syncing to UbuntuOne

I just had a Skype call with Stuart Langridge where he kindly answered a bunch of questions I had about desktopcouch and UbuntuOne.

I learned two important things:

  1. If you're paired with UbuntuOne, all desktopcouch databases will by default be bi-directionally synced with UbuntuOne
  2. There's a way to prevent specific databases from syncing
I've been working on dmedia lately and frequently delete its CouchDB database and re-run an import of all my media files.  I noticed that strangle old documents present in a previously deleted database would show up again, which made me suspect that they were getting synced back from UbuntuOne (which Stuart confirmed). And he shared a currently undocumented way of preventing specific databases from being synced.  Here's how:

First, open a terminal and point Firefox at Futon:

firefox .local/share/desktop-couch/couchdb.html

Then click on the management database. If you're paired with UbuntuOne, you'll have a document with a "service_name" of "ubuntuone", and a "record_type" of "http://www.freedesktop.org/wiki/Specifications/desktopcouch/paired_server". All you need to do is add an "excluded_names" attribute with a list of database names, like this:

"excluded_names": ["dmedia", "dmedia_test"]

Thanks, Stuart!

Saturday, October 9, 2010

dmedia update

I've been hacking on dmedia the past few days. I made changes to the FileStore API so that there can be a shared dmedia store in '/home/.dmedia/' in addition to the per-user store in '~/.dmedia/'. Plus I switched to using a base32-encoded sha1 hash as a stop-gap until the (hopefully) final constant change in Skein is complete.

I also setup the Novacut Daily Builds PPA which should start getting daily dmedia builds via a Source Package Recipe. I'm trying to scope all the dmedia design issues before UDS starts so that I know exactly where I need help from the CouchDB experts. Speaking of which, the Novacut team still needs some help crowdfunding our UDS trip.

Lastly, dmedia will now extract EXIF meta data from the .THM files that accompany .MOV video files from a Canon HDSLR. If you want to try this feature, you can scan .MOV files from your card reader like this:

dmedia /media/EOS_DIGITAL/ mov cr2

That would recursively scan for .MOV (H264 video files) and .CR2 (Canon RAW image files). To see the results in CouchDB, just fire up Futon like this:

firefox ~/.local/share/desktop-couch/couchdb.html

And check out the "dmedia" database. Here's an example document:

{
   "_id": "YGSRD5OLI6KDWZOQAHCBZM2LCTCQEK2U",
   "_rev": "1-526217d25eba74c9b3a8fdaae0842e79",
   "shutter": "1/60",
   "lens": "Canon EF 100mm f/2.8L Macro IS USM",
   "name": "MVI_5010.MOV",
   "record_type": "http://example.com/dmedia",
   "bytes": 226584025,
   "height": 1080,
   "channels": "Stereo",
   "width": 1920,
   "ext": "mov",
   "camera": "Canon EOS 5D Mark II",
   "sample_rate": 48000,
   "focal_length": "100.0 mm",
   "fps": 30,
   "mtime": 1285045740,
   "duration": 39,
   "iso": 100,
   "codec_audio": "Raw 16-bit PCM audio",
   "aperture": 4,
   "codec_video": "H.264 / AVC"
}

Monday, October 4, 2010

Trying again with smaller, incremental steps

We learned a great deal from our crowdfunding attempt on Kickstarter. Once we got the word out to the right people, enthusiastic backers came running. We just got the word out too late. (Lesson to others: better spend a month building community around your project before launching on Kickstarter!)

As it will give us face-to-face time with many CouchDB experts, we feel it's extremely important that the Novacut team be at the Ubuntu Developer Summit, which starts October 25. As this is coming up soon, we don't really have the time to do another Kickstarter campaign (although we will consider another in the future). So we're taking PayPal donations directly through our website to crowdfund this next step.

So if any of those who backed us on Kickstarter would like to help us take this more modest step, head on over to our website for details.

Again, the four of us are deeply thankful for all the support we received during our Kickstarter campaign. It was a learning experience. And we're so thankful to have connected with this many amazing people!