For a current project, I need to use a Windows-based IDE that really sucks. So instead of letting the IDE degrade my productivity, I decided to use some combined Windows/Mac wizardry to solve the problem.
The part about it that really sucks is the project management. How come tool vendors still think it’s good style in 2010 to place the projects under Program Files\Samsung TV Apps SDK\Apps? There’s no way to store your project files in a different location. The project open dialog just won’t let you navigate to some other place:
So I wanted to be able to edit my files on the Mac (using TextMate) while still using the good parts of the Samsung TV SDK (i.e., the Emulator).
I’m using VMware Fusion to run Windows 7 and the Samsung SDK (no, there is no version for the Mac). Most virtualization solutions offer a mechanism to share folders between the host and the guest OS. So I quickly set up folder sharing between my Mac and the guest OS, in this case Windows 7.
Now that I can see the project files both on the Mac and on the Windows machine, how can I make sure I can open the project in the Samsung TV SDK IDE? As I mentioned before, there’s no way to tell the IDE to open projects form other locations than Program Files\Samsung TV Apps SDK\Apps!
After playing around with some more or less usable folder synchronization utilities, I came up with something most MacOS / Linux users should be familiar with: symbolic links! While symlinks have been around in Unix-like OSes for ages, they have been rarely known to Windows users for most of the time. However, starting with Windows NT, you can create symbolic links, hard links and junctions using a nifty little tool called mklink. Unfortunately, you’re not allowed to run mklink if you’re not an administrator. Using runas (which is Windows’ equivalent of sudo), didn’t help as the shared folders weren’t visible to the admin user.
To cut a long story short, I found Symlinker, a UI tool that helps in creating symlinks on Windows. As it is a UI tool, you can run it with administrator privileges (by selecting Run as Admin from the context menu). Using a UNC path, you can create a symlink to a VMware shared folder and place this symlink in the location the Samsung IDE expects it to be.
Finally, I can edit my files on the Mac and run the app in Samsung’s Emulator on my hosted Windows machine. And as the files on my Mac are mapped to the hosted Windows machine via a symlink, I do not suffer a synchronization lag - all files are updated instantaneously :-)