Category : howto

Run a WebDAV server on your Mac to sync VoodooPad (for Free)

I’ve recently been using VoodooPad as a note taking and organization tool. I’m enjoying using it and find that the combination of Wiki-like organization, editing and linking of content combined with the responsiveness of a desktop application works very well for me.

As a user of both desktop and laptop computers, I quickly ran into the need to synchronize my two VoodooPad instances. Since VP stores all your notes in a single file (actually an OS X package) my first thought was to drop it in my DropBox folder and be done with it. This could work fine but you’ve got to be extremely careful to not change your document in multiple places—the DropBox mechanism has no idea how to synchronize changes within the documents.

Fortunately VP has built in support for synchronizing with a WebDAV server. VP’s developer directs folks to MobileMe as a readily available WebDAV server, but I don’t have an account there and don’t have much interest in subscribing. That left me with the option of setting up my own WebDAV server. The documentation points users to a great article by Manas Tungare which describes how to set up WebDAV on Mac OS X for use with another program, OmniFocus.

This article gave me everything I needed to quickly get a WebDAV server set up on my system. What follows here is my remix of Manas’ article, with a few tweaks that better accommodate my preferences and VPs capabilities, especially in the security arena.

Setting up WebDAV on Mac OS X for use with VoodooPad

Step 1: Enable Web Sharing in OS X

WebDAV is a protocol for storing documents to a Web server, so we’ll need to get one of those set up. Fortunately Mac OS X has the Apache Web Server built-in. Just go to System Preferences > Sharing and check the box labeled Web Sharing.

Web Sharing Control Panel

Step 2: Enable WebDAV support in Apache

Edit the file /etc/apache2/httpd.conf, (remember to use sudo to edit it) and locate this line:

LoadModule dav_module libexec/apache2/mod_dav.so

Make sure it is not commented out (there should be no “#” at the beginning of the line.)

Next, locate this line (towards the bottom of the file):

Include /private/etc/apache2/extra/httpd-dav.conf

Again, make sure it is not commented out. It is disabled by default, so you need to remove the “#” from this line.

Finally, because we will use digest authentication here, go back up to the LoadModule section of the file and make sure that auth_digest_module is being loaded. You are looking for the following line, and want to make sure it is not commented out.

LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so

The stock Snow Leopard config file has it enabled, so chances are you won’t need to make any changes.

Step 3: Configure WebDAV

Next, edit the file /etc/apache2/extra/httpd-dav.conf. Add a section in it to create your new WebDAV share. Here’s what the new section should look like. As a security precaution, you should also go ahead and delete the /usr/uploads share that is set by default.

Alias /webdav "/Library/WebServer/WebDAV"
Dav On
 
<Directory "/Library/WebServer/WebDAV">
   Order Allow,Deny
   Allow from all
 
   AuthType Digest
   AuthName WebDAV-Realm
   AuthUserFile "/usr/var/webdav.passwd"
</Directory>

With the first line you’re telling Apache what URL to expose your WebDAV directory on. For example, if you are accessing the server via localhost, the above configuration would make your WebDAV URL equal to:

http://localhost/webdav/

With the Directory block you are actually configuring WebDAV access to the particular file location.

Line 9 is where this code block starts to differ from the configuration used by Manas. Unlike OmniFocus, VoodooPad works just fine with the more secure Digest authentication scheme, thus ensuring that your password isn’t sent over the wire in clear text.

Here we also, on line 13, tell Apache to only allow access by authenticated users. (The Manas configuration allowed read access by unauthenticated guest users.)

Step 4: Create the necessary directories.

sudo mkdir -p /Library/WebServer/WebDAV
sudo mkdir -p /usr/var

Step 5: Create user accounts and passwords

Now we use the htdigest tool to create your password file.

sudo htdigest -c /usr/var/webdav.passwd WebDAV-Realm "[username]"
New password:
Re-type new password:
Adding password for user [username]

Note that the “-c” specifies to create a new file. If you want to add additional users, get rid of the “-c” after the first time you issue htdigest.

Step 6: Setup permissions correctly.

sudo chown -R www:www /Library/WebServer/WebDAV
sudo chown -R www:www /usr/var
sudo chgrp www /usr/var/webdav.passwd

Step 7: Restart Apache gracefully.

sudo apachectl graceful

Step 8: Test WebDav

One convenient way to test your configuration is to attempt to mount your new WebDAV resource via Finder. To do this, open Finder and select Go > Connect to Server (⌘ K). Type your WebDAV URL, or http://localhost/webdav/ if you are on the server locally. Note that the trailing slash (“/”) is important, and you will not be able to connect without it.

You will be prompted by Finder to type in your username and password, and you need to be careful to enter these exactly as specified for the htdigest command.

Upon success, you will have mounted your WebDAV folder within Finder, and you should be able to copy a file to the folder.


Setting up VoodooPad using your new WebDAV server

For my needs, I’m planning to do all of my syncing on my local network. If you want to expose your WebDAV folder on the Internet, however, you will likely need additional configuration, such as setting up a dynamic DNS service, like DynDNS, and setting up your router/firewall to pass http traffic to your server.

Once any networking issues are resolved, configuring VoodooPad to use your new WebDAV server is pretty straightforward. On your primary machine, open the VP document that you want to sync, and then pull up the synchronization dialog from File > Synchronization Setup, enter your WebDAV URL, username and password. Your document is now being synchronized with the WebDAV server.

VoodooPad Configuration

Since sync in VP is set up on a document by document basis, on your second machine you will need to create and save a new document. (I gave it the same name on both machines.) Then, when you set up sync for the second document, use the “Pair with document” option on the sync dialog to identify the corresponding document on your WebDAV server.

I was a bit worried that it might cause problems to sync the new document with the sample text to the real document in WebDAV but it all worked out just fine.

how to import gotomeeting wmv recordings into camtasia studio, part 2

Update: Having seen many GoToWebinar users struggle to make their recorded webinars usable, I have started work on a service that will make posting events brain-dead easy.

If you’d like to learn more please visit WebinarFlow. I would love to speak with you about your needs in this area. If you are interested, please fill out the form and I will be in touch.

I’ve received a few comments and emails in response to my previous post, how to import gotomeeting wmv recordings into camtasia studio. In several cases, folks trying to get their GoToMeeting and/or GoToWebinar WMV recordings imported into Camtasia using this method run into an error message stating:

"The requested video codec is not installed on this system"

In my experience, this is caused by trying to work with a WMV file in GoToMeeting format, as opposed to a plain Windows Media Player file. Huh?? Well, as it turns out, GTM/GTW produces two different types of recordings, both of which are saved as WMV files.

gtm

To add to the confusion, Citrix makes a GoToMeeting codec available that any reasonable person would suppose would fix the “codec is not installed” error. Not! The reason they make it available is so that people can play the GTM files without installing the entire GTM software package. I’m not sure of the technical reasons for this, but the only thing I’ve ever seen able to use those files is Windows Media Player itself. I imagine it has something to do with DirectShow Filters or some such.

To maximize compatibility and usability you should select the “Convert to Windows Media Player file” option in the “Recording” section of the GTM Preferences panel. I think the only reason the “Record in GoToMeeting format” option is even presented is because to produce the more compatible file literally does take an extra conversion step that can take a long time depending on the length of your recording and how powerful your PC is.

So what do you do if you’ve got a file in the GoToMeeting format and you want to use it in Camtasia? Good question!

I tried a bunch of the old standby tools (WM Encoder and Stream Editor, VirtualDub, etc.) just for kicks and didn’t have any success with a GTM file. I was able to get the video cleaned up by running the file through WM Encoder and then through Stream Editor, but VirtualDub choked on the WMA V2 audio.

I haven’t tested this, but if I were in this situation and exhausted all other options, I’d try to open up the file in Windows Media Player and use Camtasia to record the screen as if you were making a screen capture. Audio is the main challenge in this scenario, since you don’t want to record from your speakers to your microphone. A physical patch cable from the headphone jack to line-in may be one option, but not perfect since the digital-to-analog and analaog-to-digital processes are both lossy/noisy.

In the days of XP it used to be pretty easy to do an “audio loopback” aka “Stereo Mix” aka “Wave Out Mix” in which you’d tell the computer to record directly from the soundcard, but this option is getting hard to find in Vista because it can be used to circumvent DRM. You may have a soundcard that still supports supports stereo mix, in which case you’d enable it via the control panel. If not, Google around and you may be able to find an XP version of your soundcard driver that will work in compatibility mode. There are also a number of commercial software options that claim to enable audio loopback. Virtual Audio Cable is one that I came across.

(A couple of other thoughts: Citrix support may have a tool be willing to provide a tool to do the conversion after-the-fact, or they may have an idea of what tools can do it. Also, it may be possible to trick GTM into doing it for you by swapping the file you want to convert with a new one just as GTM is about to convert it, but the timing will be tricky :-)

In any case, good luck, and let us know how you fare!

how to import gotomeeting wmv recordings into camtasia studio

Update: Having seen many GoToWebinar users struggle to make their recorded webinars usable, I have started work on a service that will make posting events brain-dead easy.

If you’d like to learn more please visit WebinarFlow. I would love to speak with you about your needs in this area. If you are interested, please fill out the form and I will be in touch.

imageSituation: You record a Web meeting or webinar via GoToMeeting or GoToWebinar. You want to edit the resulting video in Camtasia Studio, and use that program to publish the video out to a variety of formats for the Web, iPods, etc.

Problem: Camtasia studio won’t allow you to import the Windows Media (WMV) file produced by GTM/GTW. It reports “Error: No codec available to render this file.”

Issue: Apparently the WMV files produced by GoToMeeting don’t contain the timing/keyframe information required to be properly rendered by Camtasia.

Solution: Use Microsoft’s Windows Media Stream Editor to repair the WMV file.

Download Windows Media Encoder from the Microsoft Web site. You won’t be using the main Windows Media Encoder application, but rather the Windows Media Stream Editor distributed with it. You can find it in your Start menu under “Windows Media”; it’s located in the Utilities subfolder. (You can also run the executable directly; it’s typically installed to C:\Program Files\Windows Media Components\Encoder\wmstreamedt.exe.

The steps are pretty simple: 1. Choose the WMV file by clicking “Add Source.” 2. Click Add. 3. Click “Choose File” to choose a name and location for your output file. And 4. Click Start.

That’s it. The conversion process in my case was pretty quick and unlike trying to mess with Windows Media Encoder itself, there are no compression or conversion settings to mess with and the resulting video quality is high.