Using Live Mesh to sync TweetDeck groups between Windows or Mac OS X computers

UPDATE: TweetDeck finally added sync support.

livemesh_tweetdeck I use multiple PCs. I have a Windows Vista laptop at work, a desktop Windows XP computer always on at home and a MacBook for work and pleasure. I also love using TweetDeck and it’s groups feature is invaluable when you follow a lot of people. I needed a solution to sync group definitions and settings so that when I add someone to a group, the change follows me on my 3 computers.

Here’s my solution.

Sign up for Live Mesh and add your computers

I find Live Mesh very useful to sync folders between computers and now has support for Mac OS X. It is free and I thought it would be the perfect answer to my problem. To set up your computer with Live Mesh:

  • First visit the Live Mesh Web site and sign up.
  • On each computer, click the “Add Device” button and install the Live Mesh software on your computer

Adding TweetDeck’s data folder to Live Mesh using Windows

Start with the computer that has the TweetDeck data you want to keep.
You first need to find your TweetDeck folder. On Windows Vista it will be located here:

C:Users[Your Username]AppDataRoamingTweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1Local Store

On Windows XP, the path would be something like:

C:Documents and Settings[Your UserName]Application DataTweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1Local Store

The TweetDeck folder name begins with “TweetDeckFast.F” and is followed by a bunch of numbers. Inside this folder is the “Local Store” folder which contains the settings for your TweetDeck installation. It contains two files and a folder:

  • An XML file with your TweetDeck settings (mine is named: preferences_JeromeParadis.xml)
  • A database files that contain your TweetDeckdata (mine is named: td_26_JeromeParadis.db)
  • A folder named “#ApplicationUpdater” which contains information about your latest TweetDeck version

Our strategy is that we don’t want to synchronize the “#ApplicationUpdater” folder. It is used by TweetDeck updating process. When we’ update TweetDeck we don’t want other PCs to think TweetDeck is updated. We cannot simply sync the hole “Local Store” and Live Mesh syncs all the content of a folder, including subfolders. So what do we do? Well, Live Mesh will not sync an hidden Windows folder.
To add the folder to your Live Mesh, here’s what you need to do on Windows:

  1. Right-click the “#ApplicationUpdater” folder inside the “Local Store” folder
  2. Select “Properties” in the menu
  3. In the “Attributes” section, check the “Hidden” option
  4. Right-click the “Local Store” folder
  5. Select the “Add folder to Live Mesh…” menu option
  6. Give it a name you will remember like “TweetDeck Local Store”
  7. After a moment, Live Mesh should begin uploading your xml and db files to Live Mesh

Syncing other TweetDeck instances under Windows

On a Windows computer, here’s what you need to do to sync a second (or more) computer:

  1. Make sure TweekDeck is closed
  2. Locate your “Local Store” folder
  3. Make a backup copy of the db and xml files inside the “Local Store” folder, just in case you mess up
  4. Delete the db and xml files
  5. Mark the exiting “#ApplicationUpdater” folder as “Hidden”
  6. Open the “TweetDeck Local Store” shortcut that Live Mesh will have added to your Desktop
  7. Live Mesh will ask you to enter a destination folder. Be sure that this path points to TweetDeck’s existing “Local Store” folder
  8. Answer Yes when warned that your folder will be merged with the Live Mesh folder
  9. You should see the Live Mesh icon in your task bar flash which means it is active downloading.

How to selectively sync under Mac OS X

Remember that we don’t want to sync the “#ApplicationUpdater” folder. We need a strategy to ignore this folder from the Live Mesh synchronization. Since I don’t know the equivalent of hiding a file from Live Mesh under Mac OS X, here’s a summary of what we should do:

  1. Instead of directly syncing TweetDeck Data Store folder, we will sync with a second folder, say “TweetDeck Data Store”
  2. We will make hard links between the xml and db files in TweetDeck’s actual folder and the “TweetDeck Data Store” folder. Making an alias using the Finder won’t work. We need to open a bash console using the Terminal utility and use the command line. If you have no idea what I’m talking about, I recommend you to stop reading now or that you proceed with care.
  3. Then, we use the “TweedDeck Data Store” folder to sync with Live Mesh. The “#ApplicationUpdater” will therefore not be present in that new folder and not synced with Live Mesh.

Adding TweetDeck’s data folder to Live Mesh using Mac OS X

If your computer containing your groups and settings to keep is Mac, you will want to first add your TweekDeck folder in Live Mesh from this computer. Here’s how to proceed:

  1. Locate your TweekDeck Local Store directory using the Finder by opening your hard drive icon. It should be something like [Your User Name]/Library/TweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1/Local Store
  2. Make a backup copy of the xml and db files in the “Local Store” folder in case something goes wrong. Note their names.
  3. Add a folder named “TweetDeck Local Store” in your Documents folder
  4. Open the Terminal application (in Applications/Utilities).
  5. In the command prompt, navigate your new “TweetDeck Local Store” folder:
    1. cd /Volumes/Macintosh HD/Users/[Your User Name]/Documents/TweetDeck Local Store
  6. Create hard links from your xml and db files to you “TweetDeck Local Store” folder:
    1. ln “../../Library/Preferences /TweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1/Local Store/preferences_[TwitterName].xml” ./preferences_[TwitterName].xml
    2. ln “../../Library/Preferences /TweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1/Local Store/td_26[YourUserName].db” ./td_26_[TwitterName].db
  7. Then, add the “TweetDeck Local Store” folder to Live Mesh.
  8. It should soon begin syncing your files to Live Mesh.

Syncing other TweetDeck instances under Mac OS X

To sync TweetDeck settings already on Live Mesh from Mac OS X, you follow these steps:

  1. Using the Live Mesh application, add your existing “TweetDeck Local Store” Live Mesh folder to your Mac. Create the Mac folder in “Documents/TweetDeck Local Store”.
  2. Wait that Live Mesh has finished syncronizing the folder.
  3. Locate TweetDeck’s “Local Store” folder.
  4. Make a backup copy of the xml and db files in TweetDeck’s “Local Store” folder in case something goes wrong. Note their names. Delete them.
  5. Open the Terminal applications and make hard links from your Live Mesh xml anbd db files in the “TweetDeck Local Store” folder to TweetDeck’s “Local Store” folder:

cd /Volumes/Macintosh HD/Users/[Your User Name]/Documents/TweetDeck Local Store

ln ./preferences_[TwitterName].xml “../../Library/Preferences/TweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1/ Local Store/preferences_[TwitterName].xml”

ln ./td_26_[TwitterName].db “../../Library/Preferences/TweetDeckFast.FXXXXXXXXXXXXXXXXXXXX.1/ Local Store/td_26_[TwitterName].db”

Caveat

When syncing with Live Mesh, the downside is that files should not be in use for syncing to proceed.
This means that to sync your TweetDeck settings, to other computers, you will need to close TweetDeck for the Live Mesh syncing to proceed. When using another computer, if it was shut down, you will need for the Live Mesh sync to finish before using TweetDeck. In my case, it means that:

  • When using my desktop at home, I leave TweetDeck open. When going to work, I close TweetDeck. My upload connection is slow; this takes about 15 minutes.
  • When arriving at work and boot up my Windows Vista laptop, I wait for the Live Mesh syncing to finish before opening TweetDeck. It takes a few minutes. 15 minutes before leaving work, I close TweetDeck for the syncing to start and finish.
  • It’s the same when using my MacBook: I also wait for the syncing to end before opening TweetDeck and before shutting it down, I close TweetDeck and wait for the syncing to end.

Note that my TweetDeck db file is quite large. It is 45 MB. I’ve looked at its content and it is due to the fact that TweetDeck used to store messages locally. I have a bunch of old tweets stored in it. TweetDeck never cleaned up nor compressed my database. If you started using TweetDeck recently, it shouldn’t be a problem for you.

Compacting the TweetDeck database

If you’ve been a long-time TweetDeck user, your database is big enough that it’s an inconvenient to sync. To compact the database, you need to clean up stored tweets that take too much space and compact the database. Follow these steps:

  • Download the SQLite command-line tool at http://www.sqlite.org/download.html
  • Make a backup copy of your db file.
  • Execute the tool with your database as a parameter:
    • sqlite3.exe “[path to your db file]”
  • In the command-line utility, delete the tweets, compact the database and quit:
    • delete from tweets;
    • vacuum;
    • .quit

That’s it. Doing this my database shrank from 45MB to 1MB. Doing this, my upload syncs went from about 15 minutes to less than a minute!