Fellowship Interview with Bjarni Runar Einarsson
Bjarni Runar Einarsson is the founder and lead developer of PageKite, an application which allows the publication of websites stored on personal computers and mobiles. He won the Nordic Free Software Award for his work in 2010.
Chris Woolfrey: How did PageKite begin?
Bjarni Runar Einarsson: Well, PageKite started off as a project designed to help decentralised social networks. This was two years ago. I noticed that there was a lot of interest in decentralised social networking, as a backlash against some of the problems implied by the centralised models of Facebook and others like them. I felt it was an important problem to work on, and that for a new, “Free as in Freedom” decentralised network to take off, it would have to be a web-based network, and people would need to be able to run their own personal nodes. Diaspora started soon after, with a similar idea; they called a personal node a pod.
But as I dove into the problem, I realised that in the end, one of the main obstacles to a project like that truly succeeding was that most people cannot run a web server – which is a prerequisite for being able to host your own piece of a decentralised social network.
And that’s how PageKite was born – it’s a project that aims to solve that specific underlying problem and make it feasible for anyone to run a web server on a personal computer. We’ve ended up rather far from our starting point – PageKite today is not a social network on its own. But it can be combined with other Free Software to realise the goal of decentralisation in the social sphere.
As the project developed, we soon realised that this problem affected many other users as well. And the clearest example is the technical folks who are themselves developing websites. These developers generally have a fancy new web site built on a laptop or personal computer, but they can’t show it to anyone without copying it to some remote server. So people developing web sites spend a lot of time copying files around, from their work machines to staging servers or deployment servers, where the results can be shared and viewed and tested. PageKite can save them time, because they don’t need to go through the deployment step every time they want to show progress or test how their server interacts with the wider Internet, because PageKite makes the local server publicly visible.
“PageKite can be combined with other Free Software to realise decentralisation”
Examples of projects that have used PageKite in this way – Free Software projects – include OwnCloud, Mediagoblin and Unhosted. The developers on these projects are building new technology for the web, and PageKite has simply become one of the tools they use on a day to day basis.
Today, that’s sort of our niche – providing tools to web developers. We haven’t abandoned our original mission, but making software simple enough and mature enough for end users takes more time.
CW: How does it work?
BRE: Well, web servers are just software. Most modern operating systems these days may have one or even many web servers built in – on Linux, people often have Apache, and there is also a web server built into the Python programming language, for example. Mac also ships with Apache and Python, and Ruby – multiple web servers under the hood which people simply aren’t aware of.
But this software is not terribly useful most of the time, because the way the web works is that your web server, and the sites it hosts, are not reachable by the wider Internet unless you have a public IP address. And most of the time, most of us are using private IPs, connecting to the Internet using NAT or via a strict firewall which “protects” us from incoming requests. So even if you discover your operating system’s built-in web server and switch it on, nobody can see it or reach it, and it is useless. The traditional solution to this has been to reconfigure routers and firewalls and learn about DNS – lots of very technical work, which is still only possible some of the time.
So in practice running a web server is out of reach for the average computer user, even if the software is widely available and Free. PageKite solves this problem by giving your local server a public name (or multiple names) and then creating a “tunnel” from the Internet to that server. In effect PageKite reaches out to the Internet and says “this tunnel leads to the site named whatever.pagekite.me, please send all the requests for that site over this tunnel”. In technical terms: a “dynamic, tunneled reverse proxy”.
Which is quite a mouthful. But the key point is that this is all handled by a relatively simple piece of software, and does not require that you reconfigure your local network at all. So if the software is packaged nicely, PageKite could be combined with interesting web servers to provide a nice experience to end users. Or it can simply be used to make life a bit easier for a web developer who understands all the technology, but can’t be bothered to go through all the steps himself.
“It’s really important for people to become more computer literate”
CW: Is PageKite a step towards achieving decentralised Free Software social networking?
BRE: PageKite is a step along the way, not an endpoint. But there are multiple ways to reach the end-goal of helping the average user. We don’t have to do everything ourselves. If someone else builds an awesome decentralised social network, and it they just happens to use PageKite to make it easy for end-users to take part, then I would consider that a success.
So the odds are, PageKite will stay in the background as a technical tool, part of the platform that enables other things. Much like dynamic DNS, or the protocols of the web itself.
CW: Is the computer literacy of end-users important in your view?
BRE: I think in the long term, it’s really important for people to become more computer literate. We need kids learning to program in schools, starting at a young age. Just like it’s important to learn to read, and important to learn to cook, and important to learn to drive – everyone should have a basic understanding of how computers work, because they are such an important part of our lives. Not everyone should have to dedicate themselves to it full time of course, but I think everyone should be exposed.
That is my long term perspective. In the short term, I think technical folks have a great responsibility to build socially responsible software. Free Software is a big part of that, but I think people often get lost in the technicalities and forget – or just don’t care – about the bigger picture. The computing landscape has changed really fast in the past decade. There is now this massive push towards “cloud computing” and “<something> as a service” – and that ‘something’ could be most things. If we aren’t careful these could lead to people giving up all control over their computing environment.
The whole question of Software Freedom becomes a moot point if people aren’t even running the software themselves any more – if your computer becomes nothing more than a dumb terminal and all your data lives on someone else’s device, then you are really at their mercy. And due to the economies of scale, it’s very likely that you are just one of millions, and your individual problems don’t matter to whoever is providing you with a service.
We’ve seen this play out repeatedly with Google and Facebook. People lose their accounts, for whatever reason, and there is no way to get it back. No appeal process; because it’s not economically viable for a company like Facebook – with 3000 employees – to provide any level of individual service to 800 million users. Even if they wanted to, they couldn’t.
So, if we really do care about controlling our computing environment, and want to be able to build systems that actually care about the needs of an individual user, we need to push for something less centralised. And that’s not even getting into the massive questions around privacy, regulation and issues like that. We need to build alternatives, and that is a technical problem which needs technical people to work on.
But we also need to educate the non-technical folks as to why these things matter. So us techies have lots of responsibilities, in my opinion.
“You aren’t independent if you rely on some centralised solution”
CW: Do you see decentralisation as being fundamental?
BRE:Independence is fundamental. If you are, or have the ability, to be independent in your computing, everything else can follow from that. Decentralisation is one way of looking at it; you aren’t independent if you rely on some centralised solution.
Unless, of course, you yourself are the one providing the central solution – and then nobody else is independent.
But yes, these are the core ideas that drove me towards working on PageKite. It’s a tool which can help people become more independent in how they use and interact with the web.
CW: The idea of open hardware has become particularly popular recently. Why do you think that is?
BRE:I’m not sure they’ve become more important – but recent improvements in manufacturing technology and new developments like 3D printers are making the idea of “open source” physical devices seem more within reach. They’ve probably always been important, but we just didn’t have the ability to realise them.
That may be changing, which is very exciting. At the same time I guess we are also seeing more and more locked-down end user devices. Mobile phones have traditionally been a horribly closed platform and they’ve only begun to open up a bit with Android and to a lesser degree the iPhone. I think having some closed devices is probably tolerable, as long as we still have access to general-purpose computers as well.
But in the end, these are physical things which we own and have control over. Maybe not complete control, but I can take the battery out or stick my phone in a lead safe if I want to. Or just smash it with a hammer…
“In the cloud, we have no control at all”
You know, I’m far more worried about the trend towards putting things in the cloud, where we have no control at all.
CW: Yet cloud services are marketed as providing great convenience
BRE:Yes, which is really quite deceptive. The cloud is easy and convenient… until it isn’t. And when it stops fulfilling your needs, for whatever reason, you may have no recourse except to start from scratch somewhere else. I find it mind boggling how much people have invested in things like Facebook. Thousands of photos, annotations, conversations. Some of which you can copy, but not all. And you can lose access to it in an instant if some automated software routine decides you are an “abusive user” for whatever reason and closes your account. Or even if someone just steals your password.
CW: People are more worried by the idea of having to store all that information themselves, than they are about giving it to a company, don’t you think?
BRE:Yes, and that is rational up to a point – Facebook is run by professionals and they are probably better at making backups than most people. But not all cloud companies are super reliable, and for a non-technical user it is pretty much impossible to tell the difference. The LinkedIn security debacle last week is a great example of that, actually.
LinkedIn is a huge social network, with lots of money and some very skilled engineers. And yet their internal security practices were obsolete by 1970s standards. I was amazed at how bad a job they were doing on that front.
From the outside, it’s impossible to tell whether internal practices are good or bad. At least if you have your data on a computer at home, you know whether your door is locked and you know whether you made backups. You may do a good or a bad job – but you at least know what the score is.
When you put your data in the cloud, you really have no idea. This probably relates to what we were saying about technical literacy earlier. As long as computers and technology seem like black magic to people, they can’t really make educated choices and they don’t understand the limitations of what computers – or what networks can or can not do. So they’re at risk of being conned by people who say “trust me, I’ll take care of it”.
“If you have your data on a computer at home, you know whether your door is locked”
CW: Whose role is it to educate the public about these kinds of issues?
BRE:I think it’s unrealistic to expect corporations to always educate their users about the limitations of the products and services they provide. It’s hard enough to get a customer to buy your product in the first place, without frightening him about all the ways it can break.
So there is definitely a need for organisations like FSFE, and there is probably a role for government and schools here as well.
CW: Have you done educational work in this arena yourself?
BRE:A little bit, yes. I’ve been active in advocacy groups here in Iceland, on and off, for the past 15 years or so. Currently the most active organisation in Iceland on this front is called FSFÍ – the abbreviation stands for “Society for Digital Freedoms in Iceland”. So, not Free Software as might be assumed, but Free Software is part of what the group is interested in. Iceland is so small that we have to wear many hats and can’t afford the luxury of just focusing on software!
But generally the organisation tries to look out for any opportunity to discuss or influence policy on issues to do with technology and the Internet. Sometimes people even listen…
CW: Why do you think, that certain places in Europe have more Free Software activism than others? Iceland, Germany, Sweden, Norway – they’re appear to be doing better than, say, the UK.
BRE:That’s an interesting question. I’m afraid I lack insight and can’t really speculate about the U.K. or anywhere outside Iceland, really. But I can maybe venture a guess as to why things in Iceland may be doing OK.
Our situation is a bit special, because we are so few. The population is only about 320,000. So we’re tiny. And we don’t have much bureaucracy – it’s a very open society. I can give the president or prime minister a call, if I want to. They might even pick up the phone themselves.
When our banks collapsed in 2008, a lot of things were shaken up. People had assumed everything was fine, and discovered it really wasn’t. This made them interested in listening to people who might have constructive suggestions on what could be done better.That made things like IMMI, the International Modern Media Initiative, possible.
IMMI is at least in part an offspring of FSFÍ – it’s an attempt to modernise and liberalise our media laws; provide protection for sources, prevent libel tourism, protect freedom of speech. Things like that.
“Iceland – it’s a very open society”
It has relatively solid support in parliament and has made some real progress, which is kind of amazing and I think is a direct result of our small size combined with our economic troubles. I’m sorry if that’s not a repeatable pattern for organisations in other countries though. Waiting for an economic meltdown isn’t a great way to make plans…
But I guess there is still a lesson there – when things are turbulent, small groups can influence things. So if people get in the habit of reaching out and having conversations, that can lead to good things when the time is right. So just go do it. And who knows, maybe your prime minister would pick up the phone if you called him.
CW: Are you working on anything besides Free Software?
BRE:PageKite actually somehow manages to take up all of my time! We’re trying to build a sustainable business around it, which is pretty tricky. My somewhat idealistic stance is that PageKite should have a sustainable life of its own, so people can rely on it.
That means it has to pay its own way, and we avoid business models which require us to fall into the traps of lock-in or spying on our users, advertising, things like that. We have to innovate on the business side, as well as working on the code to make it more reliable and easier to use. We’re trying to develop partnerships with other start-ups that are creating software for the web. So we need to develop technology for those partners, and think about how the business works.
For example we are working on a version of PageKite which is optimised for use on embedded devices. So you might end up with a smart electricity meter or a windmill or something like that, which uses PageKite to expose a web server that can be used for maintanence or monitoring. Some folks are also keen on seeing PageKite on mobile phones, so we are looking into Android and iOS…and then there’s our original end-user focus; we want to build simple tools on top of PageKite that help non technical users become more independent on the web.
We really have far more tasks than we have time. But at least it’s good fun.