Created
July 11, 2011 10:42
-
-
Save michielbdejong/1075667 to your computer and use it in GitHub Desktop.
draft text for 10-minute video explaining our project
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Caption: "Exit Installed Software. Enter Hosted Software." | |
Do you remember when we didn't have internet? Fifteen years ago, we each had our computer, but we used them | |
as stand-alone devices. Say you used your computer to invite people to your birthday party. You would use a | |
text editor to write the invite text, a spreadsheet for the guest list addresses, and a drawing program to | |
draw a nice invite. You would save everything on your computer's hard disk, so you have a copy of your art | |
work, and then you would print out the invites using this thing called a printer, and send them in the post. | |
Ten years later, we all had email addresses, and the web existed as a place for information. So to send | |
birthday party invites to your friends, you would do the same, except you would use email instead of postal | |
mail. Email travels over the internet, and uses servers to do so. Servers are computers just like your own | |
one, except that they don't have screens and keyboards, because nobody is sitting directly at them. But they | |
are important in making the internet work. They are usually stacked up in cupboards inside buildings. | |
[photo] | |
[diagram: PC -> my server -> your server -> PC] | |
Nowadays, you would probably not even use software on your computer to create the invite and send it via | |
email. You would create the invite directly on a website. | |
[diagram: PC <-> website-server -> PC] | |
The software programs that used to run on your computer, are now replaced by websites that run on a server. | |
If software lives on a server, then we call it Hosted Software. Hosted software is handy, and we all love it | |
because it makes your computer a lot simpler to use and maintain. You don't have to bother with install disks | |
all the time, like we used to in the past. | |
The account you have on the website is a Hosted Account. Your text, spreadsheet data, and drawing are no | |
longer on your hard disk. They are now on the website, in your account. This is also handy, because it means | |
you can easily find it if you use another computer, and you don't lose it if your hard disk breaks. Whenever | |
you go back to the website, doesn't matter which computer you use, your data is still there, inside the | |
website. | |
[diagram: website [app block] (a) (a) (a) accounts] | |
Caption: Hosted Software is Dangerous | |
But there is a problem with Hosted Software that didn't exist with email. Email has an open architecture. | |
This means anybody can add servers to the email system, and these will work with all other servers. You may | |
have your account hosted on a different server from me, but we can still email with each other, thanks to | |
this open architecture. | |
[diagram: open network, adding a server] | |
Hosted Software often has a closed architecture. For me to read the invite to your birthday party, we need to | |
both use the same website. We cannot both freely choose which server we use, because the server of that | |
website is the server of that website. All our files and data are on the server of this website, simply | |
because that's how this website works. This is a restriction of our freedom as a consumer. It leads to | |
monopoly situations, in which the company who happens to own the more popular websites have control over us. | |
There are several solutions to this situation. They are being worked on, by techies who care. | |
Caption: Idea #1: Open source | |
One is what you | |
could call multi-hosting. WordPress is an example of this: you can host your blog on WordPress.com, but if | |
you want to, you can also rent a server somewhere, registered with your own domain name, and install the | |
WordPress software on there. That way, there are many servers running a particular web application, and you | |
as a user can choose which server to open your account on, or even rent and set up a server especially for | |
yourself. | |
[server of 1 colour, and small servers of same colour splitting off. hosted accounts visible inside each | |
one.] | |
This is a great solution in itself, but it requires the user to maintain their software. This is cumbersome, | |
and a lot of users will simply not do it. It is too much work for the user. So we need to work on something | |
better. It works for WordPress, but quickly becomes too complicated for most other websites. | |
Caption: Idea #2: Open Web | |
A second approach to getting back our consumer freedom is called Open Web. It's the effort to make different | |
websites work together, through standards. By defining common standard formats, agreeing on them, and | |
implementing them, you and I can communicate with each other, even if we don't both use the same website. You | |
have an account hosted on one website, and I have my account hosted on another website, but because these | |
websites have agreed to speak the same language with each other, you and I can still see each other's | |
accounts, and interact. | |
[servers of different colours, users connected across website walls] | |
This is a better solution, because it doesn't require the user to do anything. However, it requires a lot of | |
hard work from the website engineers to align all the different formats and get everyone on the same page. | |
Every bit of functionality of every website would have to be mapped by some technical document, that then has | |
to be agreed upon, and implemented by all the other websites. The open web allows an identica user to follow | |
the status updates of a diaspora user, for instance. But it doesn't (yet) allow that identica user to send a | |
private message to the diaspora user. So it sort of works, but only for some of the features, and progress on | |
this is slow. | |
Caption: Idea #3: Unhosted User Accounts | |
The third approach is what we are working on in the Unhosted project. It is separating the user accounts from | |
the web applications, so that they can move freely. Whereas currently on the web, you can only have hosted | |
accounts (accounts that are on the same server as the website), we want to make websites that you can use | |
with unhosted accounts - accounts that live somewhere else, on some other server. | |
[server is a rectangle/bar/block (app) with circles underneath (accounts). use any app with your account.] | |
The first time you use an unhosted-capable website, you may not notice any difference. Let's see an example. | |
Say you're a student at Landow University, and on the university website (http://www.landow.edu), your create | |
an account. You end up choosing "pam524" as your username, because "pam", your first name, was already taken. | |
Whenever you log into your university website, you can see your exam results on there, submit questions to | |
professors, etcetera. | |
Now say you want to create a birthday invitation, and the website you choose to use supports hosted as well | |
as unhosted accounts. You go to the register screen of the website, and start the annoying process of | |
creating yet another account on yet another website. You put in your email address ([email protected]), and | |
suddenly, the magic happens: before you can continue down the form to put in all those other fields, the | |
register page proposes you to use your existing account from the university website, on this new website. So | |
even though you use the new website, which runs on a certain server, your account is not hosted on that | |
server. You are logging in to the website with an unhosted account. An account that's hosted somewhere else. | |
Why is it good that websites support both hosted and unhosted accounts? Because it allows you to choose where | |
you want your data to be, and the websites you use have no control over that choice. It is also better | |
because it becomes cheaper for small companies to run a nice website. If they don't have a very big server, | |
then they can choose to open up their website only for unhosted accounts, and not offer registration of | |
hosted accounts which would cost them money. That way, people who have an account somewhere else, can use | |
this nice new website, but the website would not need to set up a big server that can contain all the data of | |
hosted accounts. This way, the web becomes an open network again, where small players can easily add | |
websites, and where users can easily choose on which server they want their files and data to be. | |
The advantage of this third option, is that it's not necessary for users to install and maintain lots of | |
different kinds of software on their server, and it's also not necessary for website engineers to agree on | |
detailed formats describing how features in their website could interact with features on other websites. | |
Caption: How does that work? | |
So let me try to explain how this works under the hood. There is the server that hosts the website you visit. | |
And then there's the server that hosts your account. When you put your email address ("[email protected]") | |
into the birthday-invites website, this website can see by looking at your email address that you're pam524 | |
"at" landow.edu, so it finds the server for "landow.edu", and asks that server if it would be OK to store | |
some data on there. The landow.edu server responds with "yes, that's OK, we know pam524, she has an account | |
here, with some disk space". This part of the process is called 'cross-origin webfinger', in case you want to | |
read more about it. | |
Next, you need to put your student password into the landow.edu server. You don't put your password into the | |
website you are visiting, because your password is secret, and stays between you and the landow.edu server. | |
So in your browser, you are redirected briefly from the birthday-invitations website to the landow.edu | |
website. There you put in your password, and you're redirected back to where you were. This part is called | |
'OAuth2'. | |
Finally, there is the language in which the birthday-invites website tells the landow.edu server what it | |
wants to save to and retrieve from the disk space it has assigned on there for your account. In this | |
language, there are 3 important commands: "PUT", for "putting" data onto the account, "GET", for "getting" | |
data back from there, and "DELETE", for deleting data that is no longer needed. This simple store-and- | |
retrieve language is called 'cross-origin WebDAV'. | |
Caption: The Plan | |
So this is our plan. We are gradually coming out of the research phase and moving into the implementation | |
phase. The first websites that accept unhosted as well as hosted accounts are starting to appear on the web. | |
If you're a web developer, then we invite you to download our Software Development Kit, so you can find out | |
how you can also accept unhosted accounts instead of just hosted ones on the website you're developing. | |
If you work at a website and want to respect your users' right to be in control of their own user data while | |
they use your website, then you can point your CTO or lead developer to our project - everything we do in our | |
project is given away for free as public domain knowledge, for others to reuse freely and benefit from. | |
If you are an end-user, then you can ask your favourite website whether they would consider accepting | |
unhosted accounts on there. If enough people ask, they might listen. | |
You can also ask the provider of the email account (for instance, the place where you work, the university | |
where you study, or the association you're a member of, basically any place that you form a part of, and that | |
has its own website), whether they could link some disk space to your email address. One Gigabyte per person | |
is a good measure to ask for. Tell them you want to use it as an "unhosted account". | |
Finally, whoever you are, if you think it's cool what we're doing, then please donate to our project. We are | |
a non-profit project that is funded entirely from donations. If you donate 25 euros or more, we can send you | |
an official Unhosted T-shirt! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment