Archive for August 2009

Results, (Young) RewiredState, and Revolutionary Webapps

There’ve been quite a few interesting things that have happened me over the last week. Firstly, last Thursday, I finally (after 2 months of waiting), received my A-Level results – AAAA, in Maths, Chemistry, Physics and General Studies – so, I will definitely be going to Cambridge University in about a month’s time. Also, well done to everyone else who got their results, A-Level and GCSE, and good luck with your new colleges/universities.

Secondly, last weekend, I went with the rest of DFEY, to Young Rewired State -  an event to get young (~15-18) coders doing cool stuff with government data. Me, Joe and Richard worked on creating something to give bloggers opinions on the various bills currently going through parliment – Blog-o-tics. This uses Google blog search, and then does a manual count of predefined positive and negative words – as a result, it is heavily inaccurate, as our word lists were limited and language can be used in confusing ways (this is not *good* at all). I do plan on reworking blogotics to use a different, more reliable source of sentiment data at some point, but I’ve not got round to it yet.

The event it self rather good, and accommodation and travel costs were kindly provided. The venue used was Google’s UK offices, which was quite cool. The food was okay, not amazing, but much better than at 2morro (the other event DFEY attended this summer). The whole thing seemed quite well structured, each group had a mentor to help them along. I would very much like to thank Prem (who also blogged the event) for being our mentor. I don’t think our group would have managed to pull it all together without him.

Finally, this week I’ve be coding the innovative new Web2.0 app, pokebook. Which has just as much importance and relevance for the future web as its ad campaign suggests.

Web Apps, Revisited

Over the past few years, Web 2.0 has become all the rage. Closed web apps and social networking services, however have a serious problem – the user’s lack of control over their data, and their inability to interact well with other services. However, it is good to see that the “free software community” (for want of a better term), are increasingly starting to compete offering open Web Apps. Laconica/identi.ca, for micro blogging, libre.fm for music “scrobbling”, and most recently daisychain, which should soon be a facebook competitor.

However, the one thing I have not yet managed to find a good replacement for, is Google Mail (Gmail). To this end I have resurrected my long dormant libreapps project. I’ve got the site back up and running, and my two “Apps” functional – mail and rss.  Anyone interested in testing/evaluating these as they are should ask me for an alpha account (this is only to make sure no-one expects stuff to Just Work, and so I can keep track of resources), or if you’re adventurous, check out the source code (bit of a mess atm). The site is still in a very alpha, or even pre-alpha type state, but any feedback would be appreciated.

The RSS code on libreapps is TT-RSS (GPLv2) but the Mail code I have written myself, and had previously released as AGPLMail. Now, however, I have released it under the MIT license (the most permissive commonly used license there is). Why? Well, firstly, I’m no longer happy with using the governmental force of copyright to affect what people do with my code (see this blog post). Yes, I disagree with people not sharing the source to code they write, but I am not willing to threaten/hurt them to make them change their mind. This is a very contentious and political issue, but, there are other reasons why I think the AGPL is not as great as some claim.

Firstly, compatibility – this is the killer with any copyleft license. Because I am using TT-RSS, my core libreapps code needs to be at least as permissive as GPLv2. Since I plan to add other apps, most likely under other licenses, my core code needs to be permissive so it is compatible with all.

Next, how much “protection” of a Web App does the AGPL actually provide? It is supposed to force the release of the code of a hosted modified version. But, what defines modification? Or, rather, where. Obviously, changing one of the files of the application is modifying, but the (A)GPL is supposed to also cover linked works. But, with webapps, it is possible to make a site that behaves differently with out technically linking (eg. php include). One example I can see is an ajax script added to the main app (and source released)  could pull data from closed app, and the user experience would be the same. Also closed software could read/write to the db of the AGPLed software without technically being linked.

So, whatever the license of a web app, there are ways to change it and not return source. And, it is hard to prove anything, all that is returned to the user is html and js files – they can not be sure how they are generated. Returning source for AGPL apps relies partly on good will, something that also benefits an MIT app.

However, there is a more important point here. I would argue that it is not really the software that is the biggest issue in webapps – it is the data. Writing a twitter, facebook or other webapp clone is perfectly possible, and compared to some tasks, not that difficult. However, what really sets open web apps apart is primarily the availability of source, its the fact you can run your own copy and, crucially, communicate with the original site. The AGPL can do nothing to stop someone creating a large laconica instance with the federation turned off. A federatable twitter is many times better than one with source code released. (Interestingly, facebook actually releases some of their source code, but, for the reasons above, it is useless).

Finally, one of my other personal reasons for choosing MIT it means I get more users of my software I write (people can reuse snippets/functions in whatever they are writing, for example). True, someone could create a non-free fork, but, they would be silly to do so. For those who “hate freedom” there is Goole Mail/Apps. The main thing that makes libreapps mail valuable, is not the code itself, but the fact it is open/free.

So, that’s why I use MIT, even for Web Apps. However, it does really mostly boil down to my dislike for the governmental copyright system – the above are just reasons why I don’t feel like I’m missing much. I know many people don’t come from that angle, so AGPL makes sense to them. That’s fine. I’m happy to support any web app that federates and gives me access to source. I’m an identi.ca user, and am looking forward to trying daisychain. Hopefully though, people will now understand why I personally use MIT, and respect that.

Compromise

I’m a voluntaryist, this means that I believe all human interactions should be voluntary – I don’t think that the initiation of force is an acceptable means to any end. As a result, I don’t support the fundamental basis of current governments – I consider the way they forcefully gather money and forcefully change people’s behaviour to be immoral.

So, the most “purist” thing to do would be to take a moral stance and refuse to participate in this system that I found immoral. This is an idea that does have some legs, if enough people made a clear, peaceful decision to do this, it would have a massive effect. This is why I’m so excited about what the Free State Project is trying to do. However, the truth is, if I tried it as a single individual, it would end up with me most probably in jail, alone, and looking to everyone like a crazy nutcase.

For this reason, and partly because I have little other choice, I am still part of the system. If I want to have the ability and the means to maybe be part of the Free State Project one way, I can not cause too much fuss here.

For example, for my education, I’m going to go through the government managed university system, just as I have gone through the state education system. This is because there is little viable alternative way for me to learn in the area I do best in – pure sciences. Whereas more vocational skills would have ways of recognising achievement with little government involvement, it is near impossible to get a job involving pure science without a degree from a (state managed) university.

However, there are some parts that I feel are less clear. I’ve also applied for a government grant, as I’m from a lower income family. I don’t feel great about this, but if I didn’t get it, it would probably be my parents being strained, and they’ve had much of their money go into the system, so I don’t feel I’m leeching. Its not ideal, but there’s little I can do. I believe that a voluntary system could easily match this government grant, but since the government exists, no-one else feels they need to be there to provide it, or where they do, expect me to be already receiving this grant.

Another, less obvious way I’m still involved in the government system is through the software I release. Since I object to the government force that copyleft relies on, all my software is now permissively licensed. However, a permissive copyright license is still a copyright license. Permissive licenses use the threat of force to make people retain attribution – and, this force has been made real through the legal system, on at least one occasion. However, I am in favour of giving attribution to the source of a work – and a free markets would have systems like ostracism to support this. But, since we don’t have a free market, I use the “magic words” of copyright legalease show my intent in a way other people understand.

Finally, I have a current example. I am currently working as a coder on a project that is funded by a government agency. Although this seems contrary to my ideas, at first, its not that simple. I’m working as a contractor, for a contractor, and both my, and my direct employer’s services are market ones that exist already in the market. Also, my employer are an research/monitoring company, so they at least will help avoid some of the inefficiencies in our current government system. Lastly, the project I work on mostly is about getting certain government information into a more open format so that more people can do to this. Encouraging this openness is a good idea whilst we still have this system. A more open state is still bad, but preferable to a closed one.

In conclusion, although a fully voluntary society is my ideal, we are an awful long way off. Whilst I still live in a country with a largely socialist mindset it makes sense for me to just “go along” some of the time. That way, more people are likely to listen to me, since I won’t be looked at as a lone crazy weirdo. However, the rules change completely once liberty minded people get together in larger numbers, and to this end I hope to one day participate in the Free State Project.