Imagine how amazing it would be if there was a standard for processor architecture and a standard for operating system software, so that you could write software that runs on any such "P.C." appliance out there. (But if that standard fell into the hands of a corporation, there would certainly be potential for some scary monopoly abuse.)
First of all, people will have to maintain the hardware. Can you imagine your average user doing that? The average CPU would probably catch fire from dust build-up if non-system-administrators were put in charge of them. Each individual "PC" owner would have horribly low purchasing power, too, so any time one of these personal computers broke, they'd have to pay a ridiculous one-off retail-unit price to get a new one. No volume discounts!
Second, these machines wouldn't be near network peering points, like colocated machines are. They'd have horrible network latency and throughput, and a lot of residential ISPs wouldn't even let you talk to them from anywhere else. How would you get your data from your home, of all places, when you're at work? Can you imagine what horrible BitTorrent performance they'd have compared to the standard cloud seedbox?
In fact, there would almost certainly be times when they're either broken, or just switched off. Which means that these "personal computers" wouldn't be highly available like our everyday cloud-agents are, so other services couldn't rely on anything like webhooks to communicate state-changes with them. With enough of these "PCs", services would likely be architected with this "might be broken/off" model in mind, providing only RPC-based protocols, and disallowing pub-sub altogether.
And without push-based data delivery, you'd lose half the point of having a personal machine-agent: keeping data intended for you stored safely on your machine with your encryption, instead of leaving it buffered at the sender.
Why, I bet you'd see companies sprouting up to "serve this need" by acting as intermediaries, where instead of your friends directly pushing data over to your agent, they'd send them to the intermediary's agent, who would then wait for you, later on, to come and actively retrieve them using your "personal computer." And I bet that with such an important place in dataflow, these intermediaries could convince people (these poor people) that it's safe to just encrypt the messages with the intermediary's private key, instead of the receiver's! Automatic agent-to-agent peer-based crypto might never take off at all, and we could see some centralized system based on trusting rich companies to hold your data where anyone from some advertiser to the NSA might snoop on it!
...but I'm being ridiculous. Surely things couldn't get that bad.
You can guard against some of this on a personal cloud by having VPNs as a standard part of the appliance, but I suspect there are other problems that aren't as easily predicted or fixed. For instance, if my personal copy of Google Docs is running on my specific unit, how does it handle a DDoS? That's one big advantage of having a third party hosting and managing the servers instead of say, my grandma.
So if you're in that world, now the attack vector is to get you to download something to your phone which can then use the tunnel to look at other stuff in your cloud. This isn't a whole lot different than now, phishing out your gmail password for example or keylogging it. VPN key stealing might be made more complicated by an authenticator type device (that may be too complex for Grandma though)
On the platform itself the OS isn't exposed. Not fun for computer people but better for Grandma. Jails/containers what not for apps which keep execution domains isolated, and resource consumption managed, Etc.
But to your point it isn't an "easy" solution to the problem of the ephemeralness of the cloud :-) but it does keep your access to stuff around. When I look at things like blu-ray players which run the script code in Blu-ray disks I think about virtual machines as containers might be an option here. Also running win98 in a vmware player. It is entirely concievable that some sort of environment is always virtualized for "long lived" compatibility.
Of course if I had all the answers I'd be hiring to build it rather than just making notes in my notebook :-)
That makes your "cloud" into something more like an encrypted storage container than what we currently think of as a "cloud." How would something like, say, Flickr work on that? How would other people see the pictures you share?
When Picasa loses favor with Larry and gets shut down, his data is still safe he has just lost his ability to point people at Picasa and can switch to Flickr. My assertion (which I agree is yet unproven) is that we didn't start designing things this way because bandwidth to the cloud was always better than bandwidth to your 'home' (which was largely dial-up early on).
But unlike a pure storage container I'd love to be able to use an email service which will 'drop off' my email into this infrastructure, which I can read at my leisure but not have it stored in the 'cloud' where it can get lost (or perhaps spied upon).
In some ways your satellite TV receiver (especially if it has 'sling box' type capabilities) is sort of along the system design models of having a captive bit of compute/storage in your home that offers you service on the road and at home, and the vendor can push content into. Think about that for services other than just TV.
http://en.wikipedia.org/wiki/Freenet#Distributed_storage_and...