Sync

Announcing Inputtie

For the last year or so my major personal-project has been under wraps but after a few intense weeks its finally time to talk about it!

First before I explain exactly what Inputtie is I will talk about why I started this project and the problem I was trying to solve.

(If you aren’t interested in all the background fluff and just want to find out what Inputtie is, head over to inputtie.com)

The Problem

About a year ago I was doing a lot of work at home that involved working both on my desktop PC and my MacbookPro. Often I would find myself using my mouse and keyboard on my PC then having to lean accross to use the trackpad and keyboard on my MBP. Now, I hate trackpads so what I started doing was unplugging my keyboard and mouse from my desktop then plugging back into my MBP when I wanted to use it.

This situation was obviously less than ideal, so I started looking around for other solutions. I had heard of hardware you can buy that involves flipping a switch when you want to change which device you want your input to go to. I considered this but thought there must be a more elegant software solution. I had an idea in my head where I wanted you to simply move my mouse pointer off my desktop monitor and it would then magically appear on the laptop screen.

It was at this point I found out about Synergy. I took a good look at it but for the life of me could not get it to work no matter how hard I tried. It also involved lots of fiddley messing around with IP addresses / hostnames and command line parameters (it has improved in a year, but more on that later). So I thought to myself surely there is a better way of doing this, surely its not a tough technical problem to solve!?

The Solution

I had originally intended to talk about the myriad of attempts, blind alleys, different languages and general headaches I endured to get to this point however its a very lengthy topic. So instead in this post im just going to talk about the final solution talk about the previous attempts in later posts.

So without any further ado I present a screenshot of Inputtie, so you can get an idea of whats going on:

It’s an Adobe AIR 2 application so it means it will look and work the same across all supported operating systems (Mac, Windows, Linux). AIR also makes it super easy to install and update so for most users it should be a very simple matter to get it up and running.

The way it works is simple. When opened it automatically detects other devices on your network that have Inputtie running. You then make a connection between your two devices by simply dragging and dropping an arrow from one device to another:

Do the same on the other device and your computers are now connected, its that simple! Now when you move your mouse across to the side of the screen (side dependant on which arrow you picked) it will magically appear on the screen of the other device, splendid!

Now over there you can use your keyboard and mouse as normal and the input will be transferred over.

You can even also copy and paste text from one device to the other. This is great when you just want to blast a URL or some other bit of text to the laptop or back again without having to send emails or use IM or make a text file and send it over a network or anything else.

If you want to fire up a game or something  that inputtie may interfere with you can simply and easily toggle it to disabled:

Website

Early into the project I teamed up with my partner in crime and jack-of-all-trades Oliver Pitceathly. The original idea was to release this as a commercial product so we wanted to have a nice high-quality website as a landing page for potential customers. In the latter stages of the product we decided to drop the commercial aspect and make it donation-ware instead.

Despite my constant badgering and mind-changing Oli has done a fantastic job on the website, it looks simply great!

He even found time to do an awsome video that shows off the best features of Inputtie:

Planned Extensions

There are many potential extensions that you could imagine would be really handy.

Imagine being able to tare a tab from your desktop browser then drag it over to your laptop and having it then appear there.

Even better how about simply dragging a file or folder over then having it transfer quickly, be pausable, restartable, and toggle the bandwith it uses. All possible and planned extensions in Inputtie.

Another idea is using the multi-touch track pad on the macbook to interact in a multi-touch fashion with windows 7 on your desktop.

Beta

“So where can I get my hands on it?” you cry. Well we haven’t actually release it for download just yet, there are some niggley bugs and things to work out with it still. If you are interested in testing it out tho sign up for the beta over at inputtie.com and ill shoot you a mail when its ready to go!

File and Folder Syncing

For a long while I have been worried about my lack of backups for my machine. I detest the fact that i  actually lost some of my older work. Getting the Mac has been the final straw and my instigator for change.

So at first I started looking at backup tools, these seem to fall into two categories, ones that backup locally to other hard drives and networks and ones that backup to ‘the cloud’.

Now the situation is that on the Mac I have to run parallels for WindowsXP as FlashDevelop only runs in windows and the project files must be stored on the ‘local windows disk’ for the project to work properly in FlashDevelop. So the situation is I have three sepparate ‘locations’ where I need my files backed up from:

2009-09-04_1013

At first I played around with a few locally backing up solutions that required the machines to be on the same network. The issues with most of these was the fact that they either created temporary ‘sync files’ that reside permanently in the folder you are backing up (synctoy).

Other factors caused me to quickly look at the alternative method which is syncing your files with the ‘cloud’ which then means you can sync the cloud with all your devices.

2009-09-04_1025

Now there are several differnt providers out there for doing this. Ill list them in the order I discovered then and then subsequently tested them.

The Alternatives

logo

SpiderOak was the first one I came across and the one that initially peaked my interest. It appears to be the new kid on the block when it comes to file and folder syncing. These are some things I liked and disliked about it:

thumb_up Syncs based on a timer rather than constantly checking your files for updates.
thumb_down Selecting files and folders to backup is hideously slow and results in many frustrated clicking (buggy interface).
thumb_down Buggy uploading and syncing, sometimes you cant tell whats chewing your bandwidth or what is going on behind the scenes.

logo

Ironically I read about Dropbox from the SpiderOak press release, in which they boast themselves superior to their nearest competitor DropBox. DropBox seemed to me like a much more mature solution than SpiderOak.

thumb_up Simple to use interface (intergrates directly into the filesystem)
thumb_up Has a very clever delta-file change system that is system-wide.
thumb_up File version, this is great if you mess-up as you can roll-back to a previous version.
thumb_down Simple to use interface. This is what I like to call the “Apple Effect”, it may be easy to use but sometimes you want more options and settings to control how the app functions.
thumb_down Only one “dropbox” so only one root folder can by synced. This is a BIG issue and the one in the end that turned me off DropBox. I know that you can setup symbolic links so that you can sync external folders but I found this to be error prone and hacky at best.

Live_Mesh_Logo

Live Mesh is Microsofts offering to file and folder syncing problem. I actually heard about this a few years ago and even used it quite abit, but mostly for simple file sharing and using thier unique VNC remote desktop ability (great for accessing the home PC from work). I recently rediscovered it again while on this crusade and decided to give it another go for my new purposes.

thumb_up Includes remote desktop (VLC)
thumb_down Is Microsoft and hence dont get on with other platforms. Although there is now a Beta Mac version of LiveMesh im dubious as to how often this version of the software will be updated, and as I am working across Mac and Windows I need it working on both.
thumb_down No delta-file sync. This is the killer for live mesh for me. All changes to a file, no matter how small, cause the entire file to be re-uploaded.
thumb_down 5GB limit

2009-09-04_1100

SugarSync is the solution I am currently using although it isnt perfect it seems to fit the bill on most counts so far.

thumb_up A good payment system ($5 per month for 30gb)
thumb_up Intergrates nicely with the OS on Windows and Mac
thumb_up Nice interface consistent accross platforms.
thumb_up Can prioritize which uploads get done first.
thumb_down Cannot sync folders to within other folders.
thumb_down Is buggy and sometimes corrupts files. This is my MAJOR gripe with SugarSync right now. There are some very obvious bugs that havent been addressed.

The Perfect Solution

From my adventures I have learnt alot about the state of play in the syncing arena. Each of the solutions have their positives and negatives. Currently SugarSync is winning for me, but DropBox is a close second, if only they would allow you to sync folders that dont reside within the dropbox folder.

My ideal syncing app would have the following features:

add A structured pricing plan where you only pay for the space and/or bandwith used
add More control over when files are synced (simmilar to SpiderOak) where you can set how often files are updated to server. This is important as when coding your published file (be it an EXE or SWF or whatever) will change often and hence may need to be uploaded to the server very often and costing alot of bandwith.
add A method of excluding certain files and folders or file types from syncing. SVN lets you do this, good for excluding those temp files that change alot.
add A good delta-file-change upload system, see DropBox for an excellent example of how to do this right. This method of delta-syncing means that you can potentially sync massive files almost instantly.
add A method of sharing your syncs with other devices that dont belong to you (your friends computers) or potentially with people who arent even using the syncing software (web-based-access).
add A good versioning system, including one click file and folder roll-backs.
add A method for controlling how much bandwith is used when uploading / downloading and the ability to pause syncing.
add When syncing temp files are created and then the data is filled in. This stops occasions when one device is uploading and another reports that a folder is fully synced.
add OS and File-system integration.

This is certainty not an exhaustive list but merely the main points that I can think of right now. I think there is definitely room for improvement in this area and the current solutions havent fully realized their potential.

 Scroll to top