“What it means to be a school is now up for grabs.”

September 20, 2011 | Leave a comment

Learner

Education, for me, is still the most exciting field that open source is opening up. It’s a vital part of any civilized society, and so it seems right that the software that helps participants teach and learn should be open. I have no qualms about charging private institutions like Stanford, say, the six figure license fees that some educational software platforms demand – but for tax-funded institutions, these costs and restrictions are unethical. Even for moneyed institutions like Stanford, open source software has built-in feature advantages that commercial or SaaS packages can’t match.

The Tyee, a site covering British Columbia, discovers the movement:

It comes down to how we define public education. Open source advocates might say that all of the educational materials paid for by the public should be available to the public. Some, such as Stephen Downes might go as far as to say that all users of public education, including teachers, students and their parents, should be the ones in control of the entire network.

Well, quite. Education isn’t just another enterprise market. It’s one that all of our economies, livelihoods and lifestyles depend on. Far too important for a significant aspect of the process to be handed over to any one company and locked away in a proprietary system (particularly one that actively sues other vendors, doesn’t fix its own bugs in a timely fashion and charges dramatically over-the-odds fees for its services).

There’s still some work to be done on open source business models for education. People who write software need it to pay their bills for it to be a sustainable endeavor, and most teachers are too overworked to be building software themselves on the side. I think some upcoming server-side products will go some way towards fixing that, and make life easier for educators in the process.

Open source politics?

September 8, 2011 | Leave a comment

Rick Perry

Today’s debate between Republican Presidential hopefuls underlined how broken the current accepted political systems are. Real change, real hope, is very hard to find. I shared the following thought in a few places:

Party politics has to be the next major model to be disrupted by the Internet. If you want to change the world, that’s the big fish.

What might an Internet-informed political framework look like? How would it interact with legacy parties like the Republicans and the Democrats?

The term open source politics was bandied around in the 2004 US election, but at no point did anyone really mean open (policy decisions were always closed to deep participation from the outside world) or source (the underlying decision-making processes were fixed).

But what if we had a political party that really did work like an open source project? Software developed under an open source methodology is typically written in the open, with each changeset published to the world. The code is secure; it can’t be edited by just anyone. Instead, users can fix problems or suggest new features by submitting issues – text descriptions of bugs or new feature requests – or patches – actual code that implements these changes. A user can easily submit a patch that fixes another user’s issue. It’s then up to the project team to merge in the patches and accept or reject issues.

The same processes could work in politics. We already have organizations like mySociety and the Sunlight Foundation that effectively maintain issue lists for localities (see FixMyStreet) and shine light on the legislative process. If those things were formalized and not just endorsed but embraced by government, I believe the result would be a significantly fairer system.

For example, imagine if lobbyists were forced to propose changes to legislation in public, as a patch. Imagine if the Startup Visa campaign could have submitted their legislation as a patch in a centralized place. Imagine if local issues could be linked across a centralized platform to show patterns in public, and if people could submit legislative solutions.

A lot of things would need to be done before this could even begin to be viable. Open source projects suffer a reasonable amount of trolling; imagine what a government would have to endure. There would need to be a good way to filter submissions while ensuring that everyone had a fair chance to be heard. It’s probably a naïve idea; certainly one that isn’t likely to be implemented any time soon. But I can dream.

Photo credit: Rick Perry (who I’m pretty sure compared himself to Galileo today) by Gage Skidmore, released under a Creative Commons license.

Bonita: a PHP template manager with lofty ambitions

August 23, 2011 | Leave a comment

I’m fed up of using the same PHP template pattern over and over in my web apps, so I decided to write it from scratch and iterate on some core ideas. And then open source it under an Apache 2.0 license.

The result is Bonita: a simple PHP templating engine. It’s definitely version 0.1, but I thought I’d put it out there now in the spirit of release early, release often. Future enhancements will include a static cache, simple functions to handle action tokens for XSS, and some stubs to do things like semi-automatically generate RSS and Activity Streams.

Isn’t PHP already a template language? Yes and no. Its origins are definitely as a template language, but these days it’s a perfectly good way to write fully-fledged web applications. After all, Drupal, WordPress, StatusNet and Elgg are all PHP-based. (Yes, the language is much-maligned, and certainly has its flaws, but it’s also much-used.)

Aren’t there already templating systems for PHP? Yes, but they’re typically designed for sites rather than apps. Bonita includes support for creating streams and automatically drawing PHP objects out of the box, as well as content post-processing and template plugins. Support for anti-XSS form action tokens is another example of a feature that really mostly makes sense for web app developers.

Why are you releasing this? By releasing this under an Apache 2.0 license, I get to continue using the ideas, but I also get to share it, and let the wider community help me build out the system. That seems like a more efficient model for development to me; it also sits better with me. (And, hey, if nobody uses it, the worst that’s happened is that I have a great backup of my code on GitHub.)

Are you releasing Bonita on behalf of anyone? No. This is my own code, and it’s not being released or endorsed by any other organization or entity.

For advanced themes and HD photographers to design you website check it out on Mangomatter.

Interested? Bonita’s GitHub project is over here.

Open source needs designers

June 27, 2011 | 20 comments

Design is Not My Job 1It’s been a slow progression. First, I moved from Eclipse, for years my Integrated Development Environment of choice, to NetBeans, which I’ve been using for the last year or so. It’s faster, leaner, and less prone to bringing down my computer for no readily apparent reason. But now, slowly, I’m making my way to Coda. And it’s like a breath of fresh air. It just works.

It surely helps that Coda is a native code web development IDE, while the other two are optimized for (and built on) Java. For large applications, Java is a dog. But there’s something more to it: while NetBeans and Eclipse feel engineered, Coda feels designed. As well as checking that everything works, someone went through the trouble of checking how it feels to use. The emotional experience was an important part of the design.

Beyond programming languages and development methodologies, the most important skill a developer can have is empathy. To be useful, software needs to be built with a deep understanding of my needs as a user, which may be different to another user’s needs. I write both software and short stories, and I use the same approach for both: I’m writing for an audience. Open source often feels like it’s scratching an itch; rather than users, the software is often written for the developer. We know that over 80% of Linux kernel contributions are made by corporations, so it’s reasonable to infer that most open source software is built to feel an internal corporate need.

Consequently, interaction design is underrepresented in open source. Versions 0.1 through 0.9 of Elgg featured interfaces built by Dave Tosh and myself, reacting to reports of what users found difficult or confusing. They were usable, but although I’m proud of them, they were undeniably clunky. From version 1.0, we had Pete Harris on board, an actual UX designer, who made a world of difference to the project. I don’t think Elgg would be as popular as it is without him. (Now that he’s moved on – alongside the rest of the 1.0 core team – I’m interested to see how the interface develops.)

Open source is an important, valid methodology with many applications. I still completely stand behind it, but I’m not willing to use inferior software for ideology’s sake. So how can we improve the design ethic in open source?

Part of the problem is market. To be blunt, commercial software needs to sell, and usable interfaces are an integral part of that; open source projects don’t, and often sell support as a funding strategy. Making the software easier isn’t, therefore, always part of the dynamic. (You’ll notice that the best-designed open source projects - WordPress, StatusNet et al – all have a commercial version.) It’s also not necessarily part of the engineer’s agenda: I’ve too often heard software developers discuss design as a kind of fluffy afterthought that they don’t view as being as important. I try not to hire developers with this mindset; anyone who thinks they’re more important than anyone else in the development process is destructive.

Another problem, though, is designer attitude. Who wants to give away their hard work for free, after all? Designers already complain about their work being undervalued on marketplaces like 99designs. (Oddly, very few developers complain about their profession being undervalued on sites like oDesk, although I think it is.) While developers see having a Github repository as a kind of portfolio, and participation in an open source project as career-building, designers don’t have the same incentives. Although there are individual examples – Chris Messina’s involvement in Firefox undoubtedly boosted his career, for example – a designer’s participation in an open source community is not generally seen as being awesome. Yet.

Open source companies have an incentive here, and a responsibility to the community to promote this ethos. They should understand the importance of hiring designers, and they should give preference to designers who have contributed to open source projects. Most importantly, developers should understand that designers are engineers too: they just work with a different set of tools.

Illustration: Design Is Not My Job 1, by Andy Mangold, released under a Creative Commons license.

« Previous PageNext Page »