Archive for the 'Development' Category

Widget Bashing

Last week JISC CETIS put on a WidgetBash event. OSS Watch pitched in since W3C Widgets are an area we are particularly interested in having taken some code from the University of Bolton into the Apache Software Foundations incubator as Apache Wookie (incubating).

This two day event focused on getting people up to speed on building widgets. Our approach was to give some very light touch training and then get our hands dirty on code. Overall the two days were extremely successful.

in the run up to the event I had committed a few new widget templates to Wookie in order to make it easy for people to get started. This turned out to be a great tactic. Some attendees used these templates as a base for their work, looking to enhance them, one attendee even submitted a patch to fix an error in my work (which I have now committed to the project, thanks Sam Rowley). Another attendee reported that one of the tutorials was misleading (another issue I have now addressed, thanks Simon Booth).

A team from the Manchester Metropolitan University enhanced a widget they had already created to tell students which labs had available PCs in them. Now it’s a fully geo-locating widget that sorts the results by proximity to the users position (interestingly using the tutorial Simon helped us improve). Another team from Strathclyde enhanced the Moodle Plugin for Wookie; now widgets are able to get a little more context from Moodle and thus provide more targeted information to the user. We hope to see patches and contributions from both these teams.

Many other participants who had never build widgets before reported that they’d learned a great deal. There were plenty of “almost working” enhancements to our templates as well as completely new widgets. Again, I look forward to applying their patches.

Why not come and join us on the Wookie project and find out what it’s all about.

You can read more about the two days on Sheila’s blog.

UK Government Open Standards Survey

There’s no date on his introductory post, but Francis Maude, Minister for the Cabinet Office and Paymaster General, has provided an opportunity for us to state which open standards for IT we want the UK government to use. This takes the form of an on-line SurveyMonkey survey that is open until 20 May 2011.

Government must be better connected to the people it serves and partners who can work with it – especially small businesses, voluntary and community organisations. Government ICT must play a fundamental role in making life easier and I want to ensure that it does.

One of our first goals is to organise Government data and systems using an agreed set of standards that make our ICT more open, cheaper and better connected.

If you’re a business or community organisation, helping us choose the right standards will make it easier for you to do business with Government.  It will also help us open up data, better informing your decisions, and hopefully prompting innovation.

There’s a lot of detail in the very long list of obtuse standard numbers, but fortunately a mechanism is provided to skip sections you aren’t interested in. Otherwise you can vote on each standard on a scale between mandatory and don’t use. Refreshingly for a survey, there are spaces for you to add your own thoughts (though you can’t add each on a new line as requested).

I spotted couple of typos and more seriously, the Microsoft originated ISO/IEC 29500 Office Open XML is incorrectly called ‘Open Office XML. This is bound to lead to confusion as the alternatively listed ISO/IEC 26300:2006 Open Document Format for Office Applications (OpenDocument) standard was originally implemented in OpenOffice (and is now implemented by LibreOffice).

Open standards play well with open source software developement and we encourage you to take the survey. However do bear in mind the government’s past record in implementing open technology policies. You might also want to look at Glyn Moody’s related post about the Government’s definition of open standards provided in the procurement policy note.

Can’t make it to Open Source Junction? We are live-blogging

Open Source Junction: Cross-platform mobile apps (Trinity College, Oxford, 29-30 March 2011) is almost upon us. There’s still time to register (registration closes on 24 March), but if you can’t make it, keep up with all the action by following us on the #osjmob11 twitter tag. We will also be live-blogging proceedings throughout both days of the event, at:

Live blog day 1

Live blog day 2

All social media activity, including live-blogging, will be available via the Open Source Junction blog.

Open Source Junction: cross-platform mobile apps

The open source mobile app space is getting increasingly crowded. The recent opportunities for developers to produce and distribute mobile apps through a range of app stores is taking the developer world by storm. If, as the saying goes, all people dream of writing a poem at least once in a lifetime, then perhaps there aren’t many developers out there either who haven’t dreamed of building a great mobile app themselves.
I don’t have any stats on the percent of open source developers producing apps for app stores. However, a number of concerns reported in the past by open source developers contributing to the Mac App Store suggest that alternative solutions, such as the rising Android Market, may stand better chances to attract contributors used to work in an open development fashion.
The popularity of the mobile apps in the developer world is reflected by the significant number of events organized on related topics. A quick search on Eventbrite listed 283 mobile-related UK events within the next few months. As expected, most of these events target business audiences. Some of them, such as OSIM, specifically explore solutions for developing and distributing mobile open source software.
As the education sector tries to keep pace with the recent developments in the mobile world, a number of academic projects have looked at how mobile solutions may help educational institutions fulfil their teaching and research remits. Most of these projects address issues specific to their teams’ teaching or research interests. As mandated by JISC’s software collaboration policy, more than one institutions took part in these projects and the software produced was released under an open source licence. However, as far as I am aware, no long term mobile partnerships between the academic and industry sectors emerged as a result of these initiatives so far.
This is precisely the type of event missing from the crowded mobile software space. There are virtually no events bringing together business and academic developers working on open source mobile apps aimed at building sustainable partnerships using lessons learned from open source development.
OSS Watch has identified this opportunity, and in collaboration with 100% Open has put together a series of two-day workshops in order to fill this gap. Open Source Junction aims to connect industry and academic innovation emerging in open source mobile technologies. The first event in the series focuses on open source cross-platform mobile apps, and will take place on 29-30 March in Oxford. More information about the programme, speakers and sessions is available on the registration page.
If business and academic teams working together on open source mobile apps is something that appeals to you, whether you are a developer, a researcher, a project manager, a mobile open source strategist, or a funder interested in industry-academic partnerships, then you can’t miss this workshop. There are no other UK events where open source and mobile apps join forces and academic and business developers rub shoulders together in one of the most atmospheric historical venues in Oxford.
I hope to see some of you there.

Lower the barriers to entry

Getting new users actively involved in your open source project is one of the most important aspects of community development. A healthy open source project welcomes new contributors of all kinds and makes it easy for them to contribute. Prospective contributors feel welcome and are guided towards their first contribution, whatever their skills are. My OSS Watch colleague Steve Lee pointed out the website of LibreOffice; they managed to do this very well.

Care for your users

It’s very unlikely that any new contributor to the project will not have used the software before starting to contribute. Getting people to contribute therefore starts with helping your users. LibreOffice has a lot of channels to assist users in getting started and getting the most out of the software, ranging from mailing lists to IRC channels, FAQ and documentation. Having a dedicated and clearly marked ‘Get Help’ section on your website will help new users to get going and feel welcome.

It’s not all about code

As we’ve discussed before, contributing to an open source project is about much more than just writing code. Make sure you highlight all the different ways in which your users can get involved in your project. LibreOffice provides a nice example of how to do this. All of their documentation carry a Creative Commons licence, so don’t be afraid to copy from their pages, as long as you make sure you acknowledge them and stick a compatible CC licence on your documentation as well.

Lower the barriers to entry

So let’s say you would like to get more developers on your project (and you should!). It can be quite difficult for developers to know what they can do to help out. Having that clearly marked out is therefore important. A first code contribution is usually an easy hack like removing dead code or adding a unit test. Some people even argue that you should leave some of those easy hacks in, just to tempt potential contributors to fix it! If you can, list the easy hacks on your wiki, like the LibreOffice project has done.

But my project is really small!

Especially when your project is small, it’s important to involve your users and get more contributors. You may not have all the channels (like mailling lists and forums and IRC and FAQs) available from the start, but you can improve this gradually. For example, if your project is hosted on GoogleCode or SourceForge, it is really easy to set up a wiki so you have the framework in place. That is an easy win and will encourage users to contribute. And don’t feel afraid to ask people to contribute. If they are providing a good solution to a common problem on a mailing list, ask them if they’d put it on the wiki.

So check out the LibreOffice website for inspiration, and while you’re there, make sure you download their software. They launched their first release today!

The JCP is Dead to me, Long Live Java

I’m a great believer in community, openness and transparency. I have lived the majority of my life believing in teamwork, collaboration and honesty.

When I was a schoolboy I played Volleyball. My coach taught me the importance of working hard within a team and, as a result, I was lucky enough to be selected for the England Schoolboys Squad. During the final squad selection process I suffered a pretty bad injury that prevented me from participating in the traning sessions. Rather than sit at home sulking I took my coaches advice and helped the remaining players demonstrrate their skills. I worked hard to both hide my frustration and ensure that the team was prepared to play without me.

On the day the final squad was selected I was the first to be called into the Managers office. Naturally I expected to be dropped, I wasn’t fit. Instead of dropping me the Manager explained that a team needed motivators and leaders as well as raw talent. Apparently he had seen two of those three qualities. To my amazement he asked me if I would take the role of Vice-Captain, focussing on team spirit and cohesion.

I was proud and amazed, but more importantly I’d learned a great deal about the importance of teamwork and collaboration.

A few years later my fun seeking took a turn towards some of the less healthy pursuits in life. Music became more important to me than sport and, after a series of false starts, I ended up managing a Dub Reggae band based in the crescents of Hulme in Manchester. This area was a horribly run down and deprived area, but it was a place of wonderful community and togetherness (if anyone cares the ExHulme site is devoted to how the area was back then, there’s even a photo of the band in its early days, with a very flattering although not quite true heading).

The band was called Community Charge, a play on a hated Tory policy of the time and a call to arms for the community to rally and charge against such policy. Through my time building the band and crew to a team of 16 people I learned that a handful of individuals with passion, vision and talent could rally huge numbers of individuals for a cause, entertain, have fun and even earn a living.

Fast forward a few more years and I discovered FidoNet and open source software as a means to reducing costs in organising and managing our tours. I immediately felt at home, the whole idea of people coming together to share skills in order to achieve more just felt “right”.

A few more years later endless touring had taken its toll. I went to University as a mature student in order to reinvent my career. I learned more from open source communities than from my lecturers. I became a committer on my first Apache project and I took an unexpected career move into academic research. My open source mentors helped keep me ahead of the curve. I contributed back and was rewarded with recognition and support that would have been far too expensive otherwise. I became an independent contractor and never looked back.

As a Java weenie I rejoiced when the 1998 creation of the Java Community Process (JCP) promised to allow the future of the language to be openly defined. Whilst the language itself wasn’t open source, at least the process for defining the language was open and reasonably inclusive.

More fast forwarding and Sun Microsystems announced that they were going to open source their Java implementation. The licence they chose was not a license I like to use, but OpenJDK is a free and open source implementation of an openly defined language. What’s not to like?

I’ll tell you what’s not to like – there’s a trap.

A trap that many in the community were not recognising. There are hidden restrictions that mean I (and you) can’t modify OpenJDK to suit our needs. If we do modify it we have to choose between either remaining protected from patent litigation or conforming to the GPL, the chosen licence for OpenJDK.

Similarly you can’t create an independant open source implementation of Java and protect users from patent litigation whilst also conforming to the Four Freedoms and/or the Open Source Definition.

This trap was put in place by Sun Microsystems and The Apache Software Foundation (ASF) fought hard to remove it. The ASF has served on the JCP Executive Committee for the past 10 years, winning the JCP “Member of the Year” award 4 times, and recently was ratified for another term with support from 95% of the voting community. The majority of the EC members, including Oracle, have publicly stated that restrictions on distribution such as those found in the Java SE 7 license have no place in the JCP

Sun did not remove the trap (despite a contractual obligation to do so) but they chose not to trigger it either. instead they chose to keep it primed for a day when it might be sprung.

Today Oracle own Sun Microsystems. One of Oracles first actions was to make it clear that they were not going to change the licencing terms for Java (despite a contractual obligation to do so). Even worse, Oracle sent clear signals about their strategy for Java – they were going to trigger the trap.

Since none of my business activities have ever made me rich I’m not about to tell Oracle how to run their business. However, I do claim to know a thing or two about openness, transparency and fairness.

Oracle are free to play the closed game with Java, but I object to being lied to.

The java specification is not open, OpenJDK is not open – Oracle should stop the lies.

I’ll skip over the fact that Oracle objected to the trap when they might be caught in it, but are willing to use it now they own it.

I’ll also skip over the fact that James Gosling, the creator of Java, has quit Oracle over their handling of the Java language team (Gosling told eWeek that “Oracle is an extremely micromanaged company. So myself and my peers in the Java area were not allowed to decide anything. All of our authority to decide anything evaporated.”)

Instead I’ll just add my support to The Apache Software Foundation who have resigned from the JCP EC. I’ll also add my support to the two distinguished individual members, Doug Lea and Tim Peierls who have resigned in protest over the same issue.

I object in the stongest possible terms, to Oracle claiming that Java is open when in fact it is “proprietary technology that must be licensed directly from the spec lead under whatever terms the spec lead chooses.”

The JCP is dead, will Java continue as a proprietary technology or will the community step up?

Disclosure: I'm a member of the Apache Software Foundation. In this post I speak entirely as an individual, 
not as a member of the Apache Software Foundation or as a member of the OSS Watch team.

Use OSS Watch’s resources within your organisation

Open source software projects can form a perfect example of a level playing field in software development. This is especially true for projects that have a meritocratic governance model in place, which by definition recognises all contributions to the project equally regardless of the person or organisation contributing. This is one of the reasons why we believe open source software projects are the prime example of open innovation in software.

It is therefore of no surprise that a lot of the materials that we write at OSS Watch are not just applicable to the Higher Education and Further Education sector in the UK (which form our remit as defined by our main funding body JISC). On the contrary, many of our documents discuss issues related to open source that apply just as well to the public sector at large, or to the commercial sector for that matter. I will highlight a few of the most relevant documents here.

Suppose you are in an organisation that’s developing software either for itself or collaboratively with other departments or other organisations. If you are considering the longer term sustainability of your software you might want to consider releasing your code under an open source licence. To better understand what software development in open source projects actually entails, our document that deals with getting to grips with the open development method could be of interest.

In many cases it is more beneficial to join an existing project community rather than trying to create your own. Joining an existing project means that you can tap into an existing body of knowledge and benefit from the development efforts of other, potentially myriad, developers. To better understand the mechanisms of contributing to an open source project some of more technical documents, like the one that explains what a software patch is, could be helpful. In any case you will have to make sure that all the provisions are in place to be able to contribute your code to the project.

If you are sure there is no existing project where your code will fit, you could consider starting your own open source project. In that is the case, it is important to consider what the right governance model is for your project. Do you want to go with the benevolent dictator model, which leaves all decision to one person or governing body, or do you want to create a level playing field by choosing a meritocratic governance model? Another important aspect in open source projects is ensuring the Intellectual Property is properly managed, which means that you should consider putting a Contributor Licence Agreement in place.

A completely different use case that we come across often is considering open source in a procurement process. Also then many issues are the same irrespective of whether your an academic institution, some other organisation in the public sector, or a commercial company. Our document on decision factors for open source software procurement could be useful in these circumstances. To get a more detailed and substantial view on existing open source projects, we have developed the Software Sustainability Maturity Model that guides you through the most important issues you should consider as an end-user of open source software.

To summarise, there are many aspects of open source software where our resources may be of use. All OSS Watch documents are available under a Creative Commons Attribution-ShareAlike 2.0 England & Wales licence, so you are free to reuse our content as long as you mention where you got it from and make any derivative work available under a similar licence. These are the documents that were mentioned in this post:

Protecting the Open Web

The Mozilla Foundation is a non-profit organization that promotes openness, innovation and participation on the Internet. Just under a year ago the Mozilla Foundation launched Mozilla Drumbeat to keep the web open: “We want to spark a movement. We want to keep the web open for the next 100 years. The first step: inviting you to do and make things that help the web.”

Today I submitted a project to Mozilla Drumbeat. The goal of this project is to take what we have learned about enabling and educating the UK academic sector about open source and applying this to the open web as a whole.

The project aims to adapt the support model we have developed here at OSS Watch and apply it within the Mozilla Drumbeat movement. We will work with existing projects and competency centres relating to the open web, we will share experience and knowledge through a series of practical support activities and we will take these lessons to the open web community, both within and outside the academic sector.

For more information checkout out the Camelia project on Mozilla Drumbeat. There’s a couple of videos introducing the project, the first is less than 90 seconds long. Hopefully you will be motivated enough to vote for the project or even volunteer as a contributor (don’t worry we’re not holding you to any commitments).

By showing your support you are helping to ensure that we can attract infrastructural and financial support from the Mozilla and Shuttleworth foundations, so lets get this thing going.

Why it makes sense to sustain your project beyond its initial funding

Scott Wilson from CETIS, University of Bolton showed in a very compelling way at TransferSummit/UK 2010 how it can be strategically important to sustain your publicly funded software project beyond its initial funding period. The figures in Scott’s slides say it all: by investing a tiny survival budget to sustain their Wookie project after the funding would run out they managed to secure about £700k of new funding from two European (FP7) projects.

How they achieved this? Their overall project, although being a bit specific, implemented the emerging W3C widget standard which is relevant to a wider community. They managed to attract some interest from outside the initial project group. OSS Watch helped them with community development and identifying potential sources of value and funding. A good home for the project was found at the Incubator of the Apache Software Foundation, thereby attracting much more interest and contributions from parties inside and outside the academic sector.

Currently, Apache Wookie (Incubating) is a thriving project and has seen many bugfixes and new features contributed by the community. It resulted in a lot of visibility for the University of Bolton outside the regular channels, leading to new partnerships with the commercial sector and universities inside and outside of the UK. Last but not least they managed to secure a lot of new project funding from European sources.

Sustaining your software project beyond funding is not just morally right or something that should be done so your money is not spent wastefully. Scott’s example shows that it is very much in the interest of the institutions and the project team to sustain the project. So think about how your software development project can be sustained after the funding has run out or which part of it is most potential to generate a viable community. And get in touch with OSS Watch; we are here to help.

Machine, transformation or cop-out?

After a long, long wait, the Supreme Court of the United States has finally delivered its opinion (pdf) in the so-called ‘Bilski’ appeal. The judgement was eagerly awaited by those who opposed software patents, as it held the potential to change the rules on patentability of software in the US.

Thirteen years ago Bernard L. Bilski and Rand Warsaw applied (pdf) for a patent on a process that sought to allow commodities traders to reduce their risk exposure. The key components of their invention were a list of steps traders could take, and an expression of those steps as a mathematical formula. The patent application was rejected on the basis that it did not describe a specific apparatus, that it manipulated only abstract ideas and that the problem it solves is an exclusively mathematical one.  Bilski et al kept appealing the decision at progressively higher courts, and kept getting knocked back. Finally the en banc court (a kind of grand moot of all the Court of Appeal judges reserved for issues where uniformity of opinion is particularly important) knocked it back while also tearing down one of its previous ‘tests’ for patentability which might otherwise have been interpreted as supporting Bilski et al’s arguments. This test, established in the case of State Street Bank & Trust Co v. Signature Financial Group, Inc. in 1998, held that a process could be patented if it produced a “useful, concrete, and tangible result”. The State Street decision was taken at the time as a green light for patent applications on abstract concepts like business and software processes.

In the light of the Bilski patent claim, the en banc court decided that this was too low a hurdle, and that they needed a new test for patentable processes. Instead they insisted that a process must meet the following two criteria: “(1) it is tied to a particular machine or apparatus, or (2) it transforms a particular article into a different state or thing.” This has become known as the ‘machine or transformation test’. Bilski responded by taking the final throw of the dice and asking the US Supreme Court to review the en banc court’s decision. The Supreme Court agreed.

So what does this have to do with software? Well business processes are frequently embodied in software, and the discussions of where the borderline between invention and abstraction lies is an extremely relevant one in the world of software development. The ‘machine or transformation test’, if affirmed by the Supreme Court, would very likely have made many pure software inventions unpatentable (as general purpose computers are not ‘particular machine[s]‘, and their own internal processes and data unlikely to qualify as ‘particular article[s]‘). After the en banc decision hopes were high in the anti-software-patent community that the Supreme Court would affirm the ‘machine or transformation test’ and make widespread software patenting a thing of the past. On the other side of the argument, groups like the Business Software Alliance and Dolby Labs submitted amicus briefs to the Supreme Court arguing that the machine or transformation test would kill off a large proportion of their livelihoods.

Perhaps inevitably the Supreme Court has chosen a middle path that brings little certainty to anyone except Bilski et al – who now definitely know they’re not getting their patent. The decision finds that the specific Bilski patent is indeed an attempt to own an entirely abstract concept, and so should be disallowed. It does not, however, go as far as to agree with the en banc court that the ‘machine or transformation test’ is the new gold standard for patentability in these worryingly abstract domains:

The Court’s precedents establish that although that test may be a useful and important clue or investigative tool, it is not the sole test for deciding whether an invention is a patent-eligible “process”

A little further on, the decision gives the effect on software patentability as a good reason for not adopting the ‘machine or transformation test’, and in doing so cites a group of software problem domains that – it seems to imply – are very firmly the proper subject matter for patents:

But there are reasons to doubt whether the test should be the sole criterion for determining the patentability of inventions in the Information Age. As numerous amicus briefs argue, the machine-or-transformation test would create uncertainty as to the patentability of software, advanced diagnostic medicine techniques, and inventions based on linear programming, data compression, and the manipulation of digital signals.

Yet a little further on, we get the qualification:

It is important to emphasize that the Court today is not commenting on the patentability of any particular invention, let alone holding that any of the above-mentioned technologies from the Information Age should or should not receive patent protection.

Clearly there is confusion here. There seems to be an anxiety on the part of the Supreme Court that they will ‘break’ innovation whichever way they lean. This is perhaps best expressed in this elegantly-phrased linguistic shrug:

This Age puts the possibility of innovation in the hands of more people and raises new difficulties for the patent law. With ever more people trying to innovate and thus seeking patent protections for their inventions, the patent law faces a great challenge in striking the balance between protecting inventors and not granting monopolies over procedures that others would discover by independent, creative application of general principles. Nothing in this opinion should be read to take a position on where that balance ought to be struck.

True, that.