Archive for the ‘Free Software’ Category
Raspberry Pi is a project to spark exploration, innovation and to create a new generation of programmers by putting a computer into the hands of every British child. That was the passionate vision presented by David Braben of Frontier Development at Develop in a talked labelled “Giving something back”. There are some interesting parallels with the vision One Laptop Per Child (OLPC) had. The radical difference is that with the effects of Moores Law since the OLPC project the Raspberry Pi vision is for a device that costs 15 GBP – that makes it realistic to put one into the hands of every child in the UK!
They showed an alpha last year which got lots of attention – watch it and then we’ll continue:
The starting point for this endeavour is that children aren’t excited by Computer Science in the UK any more and that this has meant a radical drop in the number of University applications. There’s a shortage of precise figures, said David, but it could be as much as a 51% drop since the mid-90’s. He cites a lot of reasons for this, from changes in life-style, curriculum and the mass-media. His conclusion is that a key shortage is a computing environment for kids that encourages programming – a BBC B for a newer generation. The team aims to create a small (phone sized) computer, powered by an ARM chip, which you can plug a TV/keyboard into and a software load with educational software on it. The long-term mission being to provide these free to groups of children with appropriate content, along with management capabilities for teachers.
The bottom line for me is that encouraging experimentation, exploration and creation is a good thing in and of itself. If you want to create programmers they have to start along the journey of realising that you can create as well as consume in the digital world. When I was in school computers were all the rage from an educational perspective and certainly while we mostly played games we also created small programs. Like many others I spent long hours typing out program listings that came in magazines, and learnt rudimentary concepts in BASIC. While I personally took an indirect path into computers I do think these experiences were formative in accepting what was possible and sparking an inherent interest.
Creating a complete computing environment for children and teachers is a hugely ambitious goal. You have to solve hardware, software, content and distribution problems along the way. At the moment the Raspberry Pi team is focusing on the hardware, with an initial developer version due this year. I see the software stack as being a critical portion – you’ll be glad to know that Ubuntu is the OS! It has to be said that although I got into computing with BASIC and a manual I don’t think that’s going to cut it for kids these days: it certainly wouldn’t have cut it for me if there’d been anything like the Net! Moreover, I think we have to accept that the Web is the platform and that the elements of sharing, socialising and interacting are all part of what makes up computing now. So any software stack has to look forward and encompass new elements even when trying to be simple. That said I think the software and languages we have today are a lot stronger and more compelling: whether that’s languages like Python or some of the OLPC environment! Of course, it’s easy for a technical audience to focus on the technology stack but this changes all the time, what’s more important is the content and education contacts.
Clearly, the content will need to address childrens needs at different ages, and working with the education sector so that it fits their needs and understanding is going to be very important. David noted that managing groups of machines was a key need for educators who aren’t technicians. I was struck by the passion and willingness to get involved throughout the room – if that passion can be harnessed it will hold the project in good stead. I’ve love to see Raspberry Pi develop into a full charity with funding from the industry and efforts to work with the education sector.
If you’re like to find out more about Raspberry Pi, and perhaps sign-up for one of their dev boards, then see their site. What do you think about this initiative and on a more general level how can we help get kids involved in experimenting with technology?
Apple finally announced iCloud, reinforcing that the Cloud is ready for consumers. It validates some of the things we’ve been doing in Ubuntu and encourages us to think about how the trend will impact free software in the future.Cringley focuses on Apple targeting Microsoft by making the desktop category just like a device and moving everyone onto the Internet. Steve Jobs is quoted as saying:
“We’re going to demote the PC and the Mac to just be a device – just like an iPad, an iPhone or an iPod Touch. We’re going to move the hub of your digital life to the cloud.”
I don’t know if this targets Microsoft, I do know that Apple has done as much as anyone to make the network a central part of our digital life.
It’s clear that we all spend more time online – if you stand-back you can see see our increased dependence on the Web (we spend more time on-line than watching TV), along with how central some web apps are becoming to our lives (from Facebook to Google calendar). You might question how quickly this is happening or how widely spread: there’s not much bandwidth in Africa, and I often find it surprising how poor connectivity is in rural areas. But, that’s just a question of timing – large numbers of users already think of their computers and the Web as being synonymous.
The Web itself is rapidly becoming the standard development platform and storage medium for applications. With HTML5 and its’ extended technologies we will see increasingly complex and capable web apps: this Financial Times HTML5 app is a nice example and tweaks Apple’s tail! Even if the interface of everything can’t be a Web front-end, then data storage is also moving in that direction: increasingly users think of their content as being ‘available’ everywhere – meaning online.
From a user perspective this means we all expect to access our favourite applications and our personal data at any point from a myriad of devices. The impact on Windows is that the field is being reset, both at a software and a hardware level. Microsoft is not a cherished consumer brand that everyone loves so they will have to start over. But, it equally impacts anyone that wants to create a general operating system – Ubuntu being my concern.
If everything is on the network, and the network provides many of the applications then there’s going to be a fundamental set of shifts in how the system stack supports the user. Among the many areas, two things stand out for me.
The first theme is that we need to provide ways for users to store and access their content online. We’ve seen Apple’s system, we’re bound to see systems from all the titans of the industry as well at a lot of start-ups. This could be fantastic for users, but there’s also potential for drawbacks if there’s no standardisation – we don’t want to go back to a world of locked in data.
But it’s deeper than data, users don’t think “I need my data” they think “I want my photos of Nancy the dog” which means we need to attach storage and applications together. That’s why in Ubuntu One we talk about the personal cloud and we’re providing both applications and API’s to build on top of basic data storage and sync. Any data storage (including Ubuntu One) also needs to be available across multiple platforms so that our users can access their content whenever they want or need it. Importantly, to make the Cloud the central storage location it needs to be fully integrated and seamlessly part of the users experience – going to the ‘Web folder’ is a fail!
The second theme is that the operating system will be a window onto the Web, and this changes what it needs to present to the user and the services it provides to applications. From a user perspective we need to integrate the Web so that there’s no difference between local and network applications. Moreover, some of the metaphors of the Web are impacting how users think about interacting with their computers, take search as an example.
For applications to be truly integrated it will mean that the system stack will need to provide services that web application developers can use. For example, rather than signing into a myriad of different web applications how can the system stack authenticate me to them seamlessly. Perhaps even the idea of local and web apps will need to disappear, if we can provide technologies that help web application developers create applications that work both locally and through the network.
A final thought, I said at the start that Apple has done as much as anyone to make the vision of a connected world real. But Unix and Linux has done even more – network computing is central to our technology, and distributed community is central to our ethos. For me this means Ubuntu has great strengths it can draw on as we create this future – Ubuntu can be the operating system for the rest of us in a connected world!
Why wasn’t Google invented in the UK? Where are all the great British software start-ups? Why isn’t there more Open Source in the UK?
That last question may not have come up in the Chancellors budget speech, but it should have. This was my central argument to The Register this week – to move from an economy whose value is “the loan was created in Britain”, to one where it’s “invented, designed and built in Britain” then we need to unleash innovation through Open Source.
You might think it a bit self-serving for me to be pushing Open Source as the answer to the UK’s ills. In fact, as I far too passionately made my points to Lucy Sherriff, it crossed my mind that I could fully conform to my own stereotype of “special pleading corporate PR” by next asking for special tax breaks and complaining about unspecified (but nonetheless burdensome) “red-tape”! Nonetheless, I believe that technology and Open Source have to be key elements in the rebalancing of the UK’s economy.
First, lets put back into the box the idea that the UK cannot do technology, and that we should just leave it to Silicon Valley. The funny thing is that when you pull up the covers on successful valley technology companies you’ll find plenty of Brits. That shouldn’t be a surprise, the education system in the UK is strong, we have a fantastic tradition in science and engineering, and the language/culture compatibility helps. Finally, it completely ignores the evidence of the technology companies we do have, from successful start-ups such as Last.fm through to majors like ARM.
Perhaps it’s that cultural contrarianism that makes us unable to dwell on the positive or accentuate the good. A national character of, you say “tomato”, I say “no, it’s a squashed, bruised, fruit that tastes anaemic and who knows the long-term effects of the pesticides”. So, lets not waste any more bits on this – the UK has great technology capabilities and we should celebrate them!
So why is Open Source an important element in creating an environment that can create success for our technologists and economy? Because, it’s a leveller and a remover of locked-in de-facto networks. Open source releases innovation and provides ways for companies of all sizes to compete, bringing greater competition and delivering more value to everyone.
First, government wants to encourage start-ups and small business. There’s lots of policy options, but a big (perhaps the biggest) lever is government procurement. Our tax money should be used to buy great value technology, provided by local companies if at all possible. Governments know this, but they’re often concerned that small suppliers will fail – it’s a real concern because it happens. Mandating that the technology be Open Source removes that concern. That way if the supplier fails it can be supported and maintained by an alternative supplier. And, in the long-run you create a competitive national set of technology companies that will be employing locally and providing services far more efficiently than a small number of multi-national conglomerates (yes, looking at you Oracle).
Second, Open Source enables a local (ie national) supplier ecosystem to be created. Fundamentally, if our technology companies just resell proprietary software that’s developed by the large multinationals they will lack the skills to innovate and create on their own. Open Source is customisable and enables the suppliers to develop the same skills that will be needed to create products. There’s no black-boxes in Open Source, so if someone spots an opportunity or a gap they can understand it and innovate from there.
Third, Open Source provides more flexible and capable systems for end-users. My biggest fear about proprietary software is that it destroys enquiry in our children and students – it’s a curiosity trap. How many of the stories about great inventors (whether software or not) start with them taking apart everything they could get their hands on, from clocks to cars. They had a spirit of enquiry, a curiosity to understand and then improve.
In this era Open Source is the biggest library of software on the planet. In any domain, sphere or software idea there’s an Open Source project and some of the most skilled developers on the planet out there working on it. And everyone can read, understand and enquire – how short a step is it for the imagination to be fed and the idea of improving to occur? It’s terrible to anaesthetise our children and students with the idea that they shouldn’t look under the hood or understand what’s happening. That’s exactly what proprietary software does. And we risk missing the next Steve Jobs or Bill Gates because of it.
So really George (Osbourne in this case), stop throwing tax dollars at bribing multi-national banks to keep taking space in Canary Wharf. Unleash the UK into the forefront of the global technology revolution by adopting an industrial policy that develops technology as a key area, and for goodness sake make Open Source part of that mix. You know I’m right!
To go with the Software Business Development role we also opened up an Ubuntu Developer Relations Advocate job as the two areas are closely related. Business Development is focused on working with developers at a business level, fundamentally creating a revenue-generating relationship. Developer relations is focused on working with developers at a technical level, providing resources, assistance and community. Both roles could be speaking to the same people in a small developer shop, but the focus of the conversation is different and we need both to help developers be successful.
Fundamentally, the objective of developer relations is to provide a focus for evangelising the platform and assisting developers as they develop software for Ubuntu. One thing to clarify is that the type of development we mean here is ‘developing applications that run on Ubuntu‘, with the desired outcome being that we increase the range of applications available to Ubuntu users. So this is different to a lot of our other community relations work which is aimed at contributors to Ubuntu. Another point is that our focus is on commercial software developers since we believe that it’s important to create a sustainable ecosystem around the platform: that doesn’t exclude FOSS since Open Source can be commercial – although being realistic I expect that most of the commercial software will be proprietary.
Developer relations is a mixed role, it’s partially to evangelise the platform and attract developers, and partially assisting developers by giving them resources and a community. I group the responsibilities into three areas – attracting, enabling and enthusing. By attracting we mean communicating and showing how great the Ubuntu platform is for developers. This covers the Ubuntu distribution but also developer enabled technologies such as Unity, UbuntuOne and distribution through the Software Center. To enable developers we need to provide resources they can use to develop on Ubuntu explaining the tools and technologies that are part of the platform and how to use them. A key difference between Ubuntu and other platforms is that we aim to be participatory and transparent. So the most important element of ‘enabling’ is that we want to create a Developer Community: we’re focusing our attentions on developer.ubuntu.com which you can think of as the equivalent to IBM’s Developer Works or Apple’s Developer Center. This is a real connector role so a key part will be working with the wider world, and coordinating internal Canonical teams and exciting everyone so that we’re all working together to the common goal.
Finally, there’s lots of discussion whether Developer Relations should sit within an engineering department or within a marketing organisation, which depends on your objectives. In our case the focus is increasing the range of software that is available on Ubuntu which is a long-range business development strategy aimed at strengthening the platform, so we’ve chosen to put Developer Relations within that team so we can have the best connections. Either way at heart it’s a technical role that is all about communications by helping developers get the most from the platform – being their advocate.
We know the objective and the strategy, how to drive it forward is open territory that will need leadership, energy and tenacity. If you have experience in Developer Relations and some of the thoughts above chime with your own ideas then hop across to the Ubuntu site where you can read the job description and apply!
Wavesat is using the Bazaar version control system for commercial development making it simpler and easier for their teams to collaborate around the world. It’s a great example of Open Source delivering cost savings and innovation to business users. We’ve recently put up a case study that gives more details.
Bazaar (Bzr) is a distributed version control system. It’s an essential tool for developers: there’s a great guide to revision control on betterexplained.com. When people state that there’s no innovation in Open Source, distributed revision control is one of the examples that counters this.
Bazaar is particularly well suited to distributed development because the concept is built-in right from the start. Perhaps it’s testament to the open source development process which is by its nature distributed. For a business like Wavesat that has developers based in different locations this means they can be more efficient.
Canonical sponsors the development of Bazaar because distributed revision control is critical in Open Source development. But, it’s also something that companies can benefit from so we provide commercial services for Bazaar. This consists of helping organisations migrate, along with providing support and training. For organisations with an existing version control system such as CVS or Perforce we help with the migration to a new work-flow using Bazaar on Linux (Ubuntu, RHEL, SLES) or a legacy operating system such as Microsoft Windows or Apple Mac. Check out the case study for more information.
Irving Wladawsky-Berger is an interesting technologist and strategist, whose blog is worth reading if you have spare cycles for good quality input. He’s known for having been deeply involved in many of IBM’s technical strategy decisions, for example he was a key actor in their Linux strategy. He officially retired this year and Eweek did a wide-ranging interview that finally made it to the top of my reading list. A key quote that struck me as true is when he’s asked where he got his vision from:
“The answer is easy: Find where the smart people are and hang out with them. I’m serious. The smart people have a lot of ideas …”
IBM has resources both money and brain-power that are far beyond those of most organisations. But it strikes me as true that if you find smart people with a range of views and get into an exchange of ideas then you’ve got a much better chance of doing something amazing. That’s definitely true of Open Source, but it applies generally. He continues,
“But the way I looked at it a new idea was whether it was something we should do, and then how we should do it in IBM. Because just because it’s something we should do, doesn’t mean we have to do it like everybody else is doing.”
This second point is really important to me, although it’s often difficult to practise. Sometimes, the accepted way of meeting a need is the right way to do it. Sometimes people want a better mousetrap, not an entirely new mouse removal system. Perhaps the problem is well understood, and there are no better approaches, or at least none worth the effort for the benefit.
But generally, if something is worth doing, it’s worth examining it from the underlying principles and wondering whether it can be done with a different approach. It’s really the only way to develop something really innovative and different.
The rub seems to be when do you do the former, and when the latter, perhaps there are ways to combine the two.
OpenOffice has been gaining momentum in the wider world, but document management is an important piece of the jigsaw that's missing. Every office produces a mountain of documents that need to be managed, and commercial systems are often far too expensive. A Free Software alternative would be a great opportunity to make headway amongst small businesses.
There are lots of great revision control systems in the free software world, in fact there seems to be an overload of options. All the same problems that something like Subversion solves exist for knowledge workers who use Word and Excel. Just one example is that often the largest part of project co-ordination is document management. It's a constant stream of boring administration ensuring that team members can:
- Access the documents they need
- Have added all their project documents to the repository
- Are using the latest version of a document
- Integrate all their changes into the documentation
If you can't afford a proper document management system there aren't that many options. Wiki systems such as Writely and Jotspot can be useful but aren't a complete solution. It's difficult for users to learn a completely new program and they often resist. Wiki syntax is fine for straightforward document but can't fully replicate the capabilities of an office suite. And the users have to be on-line to edit the documents.
Searching today turned up lots of ways to publish office documents through a Content Management System (CMS). But I couldn't find anything that was designed for keeping documents synchronised and doing real revision control. There are some references in the OpenDocument applications wiki page, but none were very promising.
Ideally the user would use a document management system from within their office suite. So in OpenOffice when you checked in a new version of a document it would tell you if there was a later version and show you any conflicts. The downside to this sort of integration is that it limits the content types you're managing, and means that each office suites would have to implement a different system. Perhaps a system could be based on something like iFolder, and then plugins could be written for each individual application – potentially any application could provide a form of revision management.
I'm really surprised that there isn't anything out there for doing this. What do you think, would document management be a good free software application? Are there any that I missed? And why do you think there aren't any well known options?