What’s better then Kent’s GDrive?

Kent asked “Where’s my G-Drive?” where he pondered what it would be like to have your computer dropboxed (verbing the noun). He went on to dream of a time when your computer was essentially just a thin client connecting to a remote server run by Google, and a all your data was stored there. He listed off some really cool use cases, and then went on to explain why they weren’t a possibility yet. Bandwidth, privacy, space, etc.

But he’s thinking small. He’s also not ignoring some fundamental human concepts, and also why Dropbox is successful.

First, let’s look at why Dropbox is successful: automatic syncing. I can be on my computer, move to my iPhone, and still have all the files. Move to my laptop, and the files are there as well. You can even log onto their website into your account and access your files.

None of this is data backup. It’s all syncing. Once you realize *why* Dropbox is successful, you realize what you are actually looking for. You are looking for a device that intelligently syncs your data across all your devices without needing to sacrifice bandwidth, eliminating privacy concerns, and not requiring massive amounts of storage.

So, let’s move on, and discover what *the* service will be that takes the throne.

First, it will focus on syncing intelligently. This doesn’t mean syncing everything all the time, but syncing what you use. There are things my iPhone can’t open that I sync via Dropbox. It’s useless to download this. It’s also useless to sync this over the web when my phone and computer are on the same network. So, the idea is to sync, but only when needed. Sync-on-Read. Bandwidth here is an issue, sure. But only in speed, and frankly, when your living in an era when streaming HD movies is a reality and common place, it’s not a big concern. Let’s just say, Sync-on-Read is no more a problem then the current Sync-on-Save model currently in place. Also, once something is synced, it can be stored locally.

Next, since you only sync when you read, that means you need to connect to machine that holds the data. The downside here is that you need to connect to your home machine to access the data, and the machine needs to be powered on. But, I venture to guess that anyone using a system like this would keep their computers on anyways. After all, a computer shut off can’t sync regardless. Of course, you could also ensure that the system will figure out where it can get the file. If I have a file on multiple machines, and the main machine is off, the software can still grab the data.

The benefit to this is you still get to store you data locally. Local storage isn’t going away. People want their data. Sure, they want backups, but if their internet goes down, they don’t want to lose access to the data. And adding more data to the system is easy. Just add another hard drive like you do now. Also, the service provider need not store the data remotely. They just need to keep track of your various machines, and make sure machine A can speak with machine B. This eliminates privacy concerns. Instead of worrying how much disk space to rent, you just handle it yourself.

Essentially, you turn this from a push environment into a pull. You aren’t handed data, you ask for it. The service provider would manage things like figuring out which file is the latest copy, and keep track of local copies in case something changed and you didn’t want.

Kent’s original plan was “Install G-Drive, Tell G-Drive which files to sync, Wait 3 days for the magic to happen, That’s it.” In my plan, the idea can essentially be “Install G-Drive” and that’s it. Take your phone with you, and have access to the file. Technically speaking, it’s not incredibly difficult. It’s making the workflow easy. Dropbox easy.

Who will deliver this? Apple has the best opportunity to do something like this. They have the complete infrastructure, from hardware to software, to handle something like this. Controlling the entire pipeline, it’s really just a willingness on their part that is needed. Consider for a moment that they already have MobileMe which handles a lot of this. Microsoft can do this. Live Mesh and SkyDrive were initial attempts at this field, but still, it’s not a complete end to end solution like what I discussed. Google, if anything, is the one company farthest behind on this. They have various services, like Picasa, that already handle online storage. The problem is syncing everything together across the OS. MS and Apple both have their own operating systems and phone platforms they can use to bring it all together. Google is missing out (and while Android is awesome, it’s missing it’s older cousin, a Google OS that is actively being pushed).

Could Dropbox deliver? Maybe. At the software end, I think they could pivot fast enough and release a product like the one I discussed quickest. Will they? I don’t know. They’d have to charge for the service, and would someone want to pay for this? I would. A couple bucks a month to have all my computers synced like this easily would be nice.

I’d love to leave everything at home, and go, and not worry about forgetting to sync up the pictures this Christmas while I’m at my mother’s. If I want to show her videos, I shouldn’t have to plan that in advance.

Cloud storage is an excellent idea, don’t get me wrong. But I’d much rather have proper syncing first.

It might be your data, but it’s not your API

Normally the commentary is good over on Hacker News. However, a post I read today concerning Google changing it’s terms for API use caused a bunch of concerned posters to chime in with remarks about how it’s their data, and if they want to give that data to Facebook, Google shouldn’t stop them.

They make the assumption that Google is stopping them. This is simply not the case. You are free to share your Google data with your account on Facebook. You’re even allowed to share your Facebook data with any other social network. Neither Facebook or Google prevent this (that I know of). However, you can’t do this with their API without their permission.

Their is an expectation from hackers that data is only free if it can be easily accessed. However, the assumption here is that easy access should be provided by the company hosting the data via an API (Application Programmers Interface, a set of rules programmers can rely on to perform actions and retrieve data). Essentially, the thought is that by Google changing their terms of API use to prevent Facebook from using Google’s API to extract data from Google about a user (with that user’s permission, of course) is like locking the data to Google. This is simply not true.

The API is governed by Google, not the user. The user is free to do what he will with the data, but a business shouldn’t be required to provide tools for others to grab that data if they don’t want.

Users would do well to remember this. This is why efforts encouraging business to be more formal about opening up is important (and why measure like the GPL exist). What Google is saying is that if you want to use our API to retrieve customer data, you need to allow customers to send their data back to us if they want using your API.

If you want to use the tools we created, you have to pony up and offer tools to do the same.

As a user of these services, it’s important you realize the differences and the reasons. It’s your data, and you can choose how to use it, but it’s the companies API, and they have the same right to use it how they see fit.


Preliminary work went into getting DuctDo started. For faster development, I always find it easier to get a bare bones website up and running so that I know what my minimum feature set needs to be. Beta DuctDo is up with a template from OpenSourceTemplates letting me focus on the content and not the design side. From here, I will bash out simple things.

Sign up – I need to let users sign up with just an email address.

Log in – Needs to be fast and easy. Email verification is critical, so I’ll ask for the password after they’ve verified.

Goals – I need goal creation to be fast and easy. After their first log in, they are asked to create a daily task or goal they want to achieve.

Timezone – I need to grab their timezone and setup intelligent defaults. An email sent out at around 6-7 AM in the morning, and a 6-8PM end-of-day email seeking feedback.

Email Reply – Allow for the user to reply to the email response with a written commentary. Maybe a simple link based system where they are taken to a page where they can fill in their response as well.

Published results – Each user should have an easy to view log of the results, published.

Calendar – To show each day they succeeded in doing what they set out to do.

That’s the bare minimum, I think. Allowing for Facebook and Twitter connection is important, but no need for an immediate setup.