40 years ago the development of the Personal Computer sparked a revolution. It took a decade for PCs to land in the home, and another decade for them to land in a majority of US homes, but it created an entire industry. Having a computer that was yours led to generations of hackers and programmers, it created Microsoft, Apple, and led to the rise of Amazon and Google.
The PC is now in decline. In 2008 the laptop outsold the desktop, and now the tablet is eating the laptop’s lunch. As form factors have shrunk and the Internet has become a more dominant element of most users experience, the computer you own that runs software you own and has explicit privacy is disappearing. We store our spreadsheets and documents in Google Drive, we post our pictures on Flickr, we store our correspondence in Gmail, we chat with our friends on Facebook or Twitter.
No one is learning how to program on Facebook, especially when their only device is a cell phone or tablet. It’s dangerous to store your personal pictures only in Flickr. Your Google Drive documents and Gmail email are a clever hacker away from being in someone else’s hands. On the internet, services die. Devices become orphans and eventually the content on them is lost.
Maybe it’s time for a new paradigm, something that preserves the hackability and ownership of the PC, but takes advantage of all the new technologies we’ve come up with in the last 40 years. Maybe that thing is…
The Personal Cloud Computer: The essentials of single user focus, software and data ownership, but the portability, networkability and burstability of the cloud, the display flexibility of HTML5 interfaces, the hackability of linux and the flexibility of a PaaS.
So what does the Personal Cloud Computer (PC2, maybe? Let’s try it out.) look like, specifically it’s fundamental architecture, organization and software use cases? Well, let’s start from the top…
Architecture
I think we’re looking at something like a PaaS similar to CloudFoundry, but with a UI front end like WordPress, and tuned to run apps for you, not run apps for web consumption. You’ll access it via HTTPS, it’ll be optimized for desktop, tablet and mobile, and it’ll have API access routes for stand-alone applications or hardware devices. By default your distribution may come with a set of plugins (from the desktop metaphor, these are our programs), but no one wants to be limited to one programming language, so something like CloudFoundry makes sense. You’ll be able to run plugins written in Java, Python, Ruby, PHP, etc. Initially each PC2 platform creator will probably have it’s own plugin spec, but developer demand will push them towards a common, unified interface spec.
Logging into the UI should be as secure as possible. Maybe we’ll use two factor authentication with bearer tokens, maybe there will be a super-secure pay-for service that holds the master password for your device. However we do it, login needs to be safe, and lost password needs to be really, really, really difficult to hack. Maybe you need to round up a quorum of your friends and coworkers, and by combining bits of a key you’ve given them, they can re-generate your master reset password.
WordPress has learned that software updates are a big issue, and having the update interface be as integrated and simple as possible is a huge deal. Apple figured out that having devices live their entire lives without being tethered to a PC was an important feature. PC2’s will need something similar. Updates for the core platform and plugins should be easy, as secure as possible and baked in.
For memory consumption’s sake, we’ll probably follow the iOS model. Programs only run when you’re making requests of them. They can schedule tasks to wake themselves up with a central platform scheduler, and can run little chunks of code to check things in the background, but they don’t run continually when you’re not using them. The core platform also provides a notification/alert hub, so if your scheduled task needs to tell you something, it can push it to you.
The interface between the core and the plugins should be network-able. You’ll want the flexibility to run your PC2 in the cloud, but execute a program on your phone, or your house’s thermostat, or your car. Authentication will probably be similar to Oauth, or the two factor unique password setup that Google does. You’ll pair devices with your PC2 by entering a network identifier for your PC2 into the device, then the device will generate a random key, which you’ll punch into a devices section of your PC2 interface. If you lose your cell phone, you can go into the PC2 interface and turn off it’s access without resetting everything.
Sharing should be baked in to the platform. You’ll be able to grand read and write access to files, or between plugins, to other PC2 installs. You may even share back to centralized services, or pull from centralized services like a car sharing service or traffic updates. You could share where your car is with a city-wide traffic nexus that shares back the ability to create a route based on live traffic conditions, for instance.
Your UI would be driven like building a Facebook App. Plugins feed UI markup from back to the PC2’s display layer, and it arranges things so the UI can be optimized for a plane of tiles style desktop UI, a tablet, or a single-tile phone UI. You may even have baked in interface specifications for voice or visual interfaces, so you can control apps with your voice or eyeball movements in your Google Glass.
Microsoft is probably tackling a bunch of these problems with Metro, or whatever it’s called today. I’m not sure if I trust them to succeed. These PC2 solutions would have to grow organically, defining the entire spec at once would be a recipe for disaster. Learn the lessons, but design for simplicity. Nobody’s going to be building Word on this platform in the first year or two.
A bunch of use cases now and over the next few years are going to be built around pay per use or subscription APIs (for facial detection in your lifestream videos, or machine translation, or whatever the next thing is). Having a centralized billing platform for those will be important. You’ll either have accounts with a few external services that plugins can use, or the billing and payment part will be built into the platform. You’d have an internal provider model, so plugins would be able to discover their options without needing to know the authentication or implementation details themselves.
Utilizing cloud services would be similar to subscription APIs. Being able to burst their CPU use or disk usage should be a service provided to plugins by the PC2. Your thermostat should be able to request a hadoop run to churn consumption data, utility billing rates and weather forecasts once a week. The thermostat doesn’t need to know how to spin up the hadoop cluster, but a ‘can run hadoop jobs’ component can be a part of the PC2, and it can know how to use various cloud services and be able to optimize based on price. (I’m looking at you, Amazon EC2 spot market.)
So what do we have? We have a base UI framework with robust integration options, strong login security, a networkable plugin interface, a centralized scheduler, integrated sharing, integrated API billing and a burstable cloud resource provider. We’ve created a blueprint for an Operating System, something designed for the strengths of the cloud, but something very different from what we have now. Something like Salesforce.com, but for people, not businesses.
Organization
I think there will be a bunch of companies and groups creating platforms like this. Some will flourish, some will die. Early adopters will bear the brunt of the pain, but they’ll put up with it for the advantages, just like they always do. I think most of the successful groups will look like Automattic. WordPress is an easy example to point to, they’ve done really well financially and still embrace the open source model. They make money from their hosted solution, but you can install it yourself if you want. I don’t worry that they’re going to hire a new VP really focused on ‘maximizing value’, and make a deal with Microsoft so their mobile UI is only optimized for Windows Phone. I know they have an open source ethos from the top down, so I trust them.
But in the beginning someone’s going to have to start cobbling these things together into a value-providing alpha. Will it be me? Will it be you?
Use Cases
It doesn’t take too much imagination to think of things that a platform like this could provide, but it takes the right combination of experience and imagination to get it off the ground. Most of the people who would get this kind of platform are early adopters who are already involved in the cloud. They may run VMs in a couple different clouds, they may have written integration and maintenance software. The first programs they’re going to build will be things that the PC2 is uniquely suited for, namely tying together your internet of things, and running consuming and consolidating services.
Your PC2 may be a great place to tie all your home automation and quantified self stuff together. You may have zigbee’s and the Nest and your Withings scale and your Expereal app and your food logger and your Fitbit. You may like the services, but wouldn’t it be interesting to know if you walked more on days when it was cold, or what combination of exercise, travel and food intake led to your greatest happiness. That’s data I’d want to keep long term, long after those respective companies bite the dust. That’s a perfect PC2 application. It’s big data for people.
The PC2 could also be a great place to host personal Weavr type bots. It’s an always-on platform that has API access, both free and paid, and the UI options mean you could get a back-channel or tweaking interface to your weavr in your car, or on your cell phone.
With Tropo or Google Voice, your PC2 could be the center of your personal message hub. You could call your PC2 and ask it things, Siri-style, or other people could call it and you could intelligently channel them to what they need to get to. All the audio data would live in your own cloud storage, so if you wanted to run analytics on it 5 years down the road, you could. Hey, voice-driven twitter-style sharing with just your friends, call in, record a clip, and it gets sent to all your buddies.
Someone will eventually build an office suite for the PC2. It will start simple, and then it will get smarter. With easy cloud access you’ll be able to run Wolfram Alpha style processing on your data, on demand. Once the (open source) software’s written once, everyone can use it, they just have to pay for the CPU horsepower.
The PC2 initially wouldn’t have more memory or CPU demand than a low end VM or cell phone, which means that if you didn’t want to pay for a cloud server, or had already used your free Amazon EC2 option, you could run your PC2 on, oh… a Raspberry Pi.
TL;DR
PC2’s are a response to a market opportunity, and a technological tipping point. People need tools to thrive, and their PCs are turning into services they rent. All the pieces are in place for a new approach, nothing new really needs to be invented. The only thing that remains is to start writing code and see if this is something people actually want. Of course, that’s the hardest part.
Good article, Jeff. Good food for thought. We are in midst of a new revolution, and I hope to be a part of it, someway…
Jeff, check out the Respect Network paper on Personal Clouds (http://respectnetwork.com/personal-clouds/). We’re one of those “bunch of companies and groups creating platforms like this”. Great to see you’re thinking the same thing.
Jeff, you’re observation to master password reset using from small bits left with know associates is something I compare to a kind of spontaneous order. Constantly shifting into a new form when a threat presents itself. Kudos not only well written and easy to understand but thought provoking as well.
Good to know your point of view. We are trying to build one based on the premise : personal cloud built on top of existing user’s hardware.
Check Parablu Systems
Adding to your info: A personal cloud-computer should have the ability to add virtually unlimited storage. It should never be bogged down by storage limits like other *clouds.
Jeff, thanks for the great article. Our frustration with current computing solutions is taking us down the PC2 path you describe. While not there yet, we have taken what we believe to be the first logical steps by creating an easy to use cloud hardware service. We provide a la carte hardware and private cloud networking (SDN) for DIY users to build their own VM’s out of our 3 global data centers. From there we offer basic Linux and Windows OS’s but our hope is the developer community will take it further towards PC2. While our service is nothing new, our approach is unlike the others we have seen in that we make it easy and reasonably priced. We hope others find it useful in the pursuit of PC2 realization. Check it out at http://www.cloudcomputerllc.com.