An Experiment In Reviving Dead Open Source Projects

Earlier this week I did a keynote at All Things Open. While the topic covered the opportunity of us building effective community collaboration and speeding up the development of Open Source and innovation, I also touched on some of the challenges.

One of these challenges is sustainability. There are too many great Open Source projects out there that are dead.

My view, although some may consider it rather romantic, is that there is a good maintainer out there for the vast majority of these projects, but the project and the new maintainer just haven’t met yet. So, this got me thinking…I wonder if this theory is actually true, and if it is, how do we connect these people and projects together?

While on the flight home I started thinking of what this could look like. I then had an idea of how this could work and I have written a little code to play with it. This is almost certainly the wrong solution to this problem, but I figured it could be an interesting start to a wider discussion for how we solve the issue of dead projects.

The Idea

The basic crux of my idea is that we provide a simple way for projects to indicate that a project needs a new maintainer. The easiest way to do this is to add a file into the source tree of the project.

This file is an .adopt file which basically includes some details about the project and indicates if it is currently maintained:

For example:

[Project]
maintained = no
name = Jokosher
description = An audio multitracker built for the GNOME desktop.
category = Audio
repo = http://www.github.com/the-project
discussion = http://mymailinglist.com/jokosher
languages = Python

[Contact]
name = Bob Smith
email = foo@bar.com

Now, this is a crude method of specifying the main bits of a project and much of this format will need tuning (e.g. we could pull out languages and frameworks out into a new block). You get the drift though: this is metadata about a project that also indicates (a) whether it is maintained, (b) what the key resources are for someone to get a good feel for the project, and (c) who the contact would be to help a new potential maintainer come in.

With this file available in the source tree, it should be publically available (e.g. the raw file on GitHub). A link to this file would then be pasted into a web service that adds it to a queue.

This queue is essentially a big list of .adopt files from around the web. A script then inspects each of these .adopt files and parses the data out into a database.

This database is then used to make this list of unmaintained projects searchable in some way. For example, you could search by category or programming languages. While maintained continues to be set to no the project will remain on the list.

When a suitable maintainer steps up and the project is alive again, all the maintainer needs to do is set this maintained line to yes. On the next scan of the queue, that particular .adopt file will be identified as now maintained and it will be removed, thus not appearing in the database.

A First Step

To provide a sense of how this could work I threw some Python together at https://github.com/jonobacon/adopt-a-project.

It is built using CherryPy to keep it simple. I wanted to avoid a full-fledged Django-type framework until the core premise of how this works is fleshed out. A caveat here: this is a really quick, thrown-together prototype designed to encourage some discussion and ideation.

It works like this:

  • Run website.py to spin up a local webserver on 127.0.0.1:8080 that will display the empty queue. You can then add some remotely or locally hosted .adopt files by clicking the button at the top of the page. I have included three examples on GitHub 1 2 3. These are added to queue.list.
  • You then run the adopt-queue.py that will scan the queue and create a sqllite3 database with the data.
  • The website then includes a really simple and crude list of projects and the links to the relevant resources (e.g. code, discussion).

Now, as you can tell, I have only spent a few hours knocking this together and there are many things missing. For example:

  • It doesn’t include the ability to search for projects or search by language.
  • The schema is a first cut and needs a lot of care and attention.
  • The UI is very simplistic.
  • There is barely any error-checking.

Topics For Discussion

So, this is a start. I think there are a lot of interesting topics for discussion here though:

  • Is this core concept a good idea? There is a reasonable likelihood it isn’t, but that is the goal of all of this…let’s discuss it. 🙂
  • If it is the core of a good idea, how can the overall approach be improved and refined?
  • What kind of fields should be in an .adopt file? How do we include the most important pieces of information but also keep this a low barrier for entry for projects.
  • What should be the hand-off to encourage someone to explore and ultimately maintain a project? A list of dead projects is one thing but there could be instructions, guides, and other material to help people get a sense of how they maintain a project.
  • Maintaining a project is a great way for students to build strong skills and develop a resume – could this be a carrot and stick for encouraging people to revive dead projects?
  • What kind of metrics would need to be tracked in this work?

To keep things simple and consistent I would like to encourage this discussion over on the project’s issue tracker. Share your comments, thoughts, and methods of improvement there.

Thanks!

All Things Open Keynote, Talks, Book Signing and More

Tomorrow morning at the ungodly hour of 6am I board a slight to Raleigh for the All Things Open conference. The conference starts on Monday, but I am flying out earlier for a bunch of meetings with folks from opensource.com.

This is my first time at All Things Open but it looks like they have a stunning line up of speakers and some great folks attending.

I just wanted to share some of the things I will be doing there:

  • Tues 20th Oct at 9.05am – Keynote – I will be delivering a keynote about the opportunity for Open Source and effective collaboration and community leadership to solve problems and innovate. The presentation will delve into the evolution of technology, where Open Source plays a role, the challenges we need to solve, and the opportunity everyone in the room can participate in.
  • Tues 20th Oct at 12.15pm – Lightning Talk – I will be giving one of the lightning talks. It will an introduction to the fascinating science of behavioral economics and how it can provide a scaffolding for building effective teams and communities.
  • Tues 20th Oct at at 2.15pm – Presentation – I will delivering a presentation called A Crash Course in Bacon Flavored Community Management. In it I will be discussing the key components of building strong and empowered communities, how we execute in those elements, how we manage politics and conflict, and tracking success and growth.
  • Tues 20th Oct at at 3.00pm – Book Signing – I will be signing free copies of The Art of Community at the opensource.com booth (booth #17). Come and say hi, get a free book, and have a natter. Books are limited, so get there early.

As ever, if you would like to have a meeting with me, drop me an email to jono@jonobacon.org and we can coordinate a time.

I hope to see you there!

Goodbye XPRIZE, Hello GitHub

Some time ago I was introduced to Peter Diamandis, co-founder of XPRIZE, Human Longevity Inc, Planetary Resources, and some other organizations. We hit it off and he invited me to come and build community at the XPRIZE Foundation. His vision and mine were aligned: to provide a way in which anyone with passion and talent can play a role in XPRIZE’s ambitious mission to build a brighter future.

The ride at XPRIZE has been thrilling. When I started we really had no community outside of some fans on Twitter and Facebook. Today we have a community website, forum, wiki, documentation, and other infrastructure. We created the XPRIZE Think Tanks programme of community-driven local groups and now have groups across the United States, India, Asia, Europe, South America, Australia, and beyond. We have a passionate collaborative community working together to explore how they can innovate to solve major problems that face humanity.

Some of our earliest community members, at a sprint at the XPRIZE office

I am proud of my work at XPRIZE but even prouder of the tremendous work in the community. I am also proud of my colleagues at the foundation who were open to this new concept of community percolating into everything we do.

Although my experience at XPRIZE has been wonderful, I have missed the technology and Open Source world.

Something Jim Whitehurst, CEO of Red Hat said to me a while back was that coming from Delta to Red Hat, and thus outside of Open Source into Open Source, helped him to realize how special the Open Source culture and mindset is.

Likewise, while I never left Open Source, moving to XPRIZE was stepping back from the flame somewhat, and it helped me to see the kindness, creativity, agility, and energy that so many of us in the Open Source world take for granted.

As such, despite the rewarding nature of my work at XPRIZE, I decided that I wanted to get back closer to technology. There was a caveat though: I still wanted to be able to play a role in furthering the efficacy and impact of how we as human beings collaborate and build communities to do incredible things.

A New Journey

With this in mind, I am delighted to share that on the 14th November 2015 I will be joining GitHub as Director of Community.

GitHub are a remarkable organization. In recent years they have captured the mindshare of developers and provided the go-to place where people can create, share, and collaborate around code and other content. GitHub is doing great today but I think there is huge potential for what it could be in the future for building powerful, effective communities

My role will be to lead GitHub’s community development initiatives, best practice, product development, and engagement.

My work will be an interesting mix of community engagement, policy, awareness, and developer relations, but also product management to enhance GitHub for the needs of existing and future communities.

I am also going to work to continue to ensure that GitHub is a safe, collaborative, and inclusive environment. I want everyone to have the opportunity to enjoy GitHub and be the best they can be, either within the communities they are part of on GitHub, or as part of the wider GitHub userbase.

Over the next few weeks I will be taking care of the handoff of my responsibilities at XPRIZE and my last day will be on Fri 30th Oct 2015. I will then be flying to Bangalore in India to keynote the Joomla World Conference, taking a little time off, and then starting my new position at GitHub on the 17th November 2015.

Thanks, everyone!

What LibreOffice Impress Needs To Rock

Across the course of my career I have given, and continue to give, a lot of presentations at conferences all over the world. In the vast majority of them I have used LibreOffice because I like and support the project and I like my presentations being in an open format that can be used across different Operating Systems.

At times I have also used Keynote and Powerpoint and there are a few small things that LibreOffice is missing to be the perfect presentation tool. I thought I would share these here with a hope that these features will be built and thus turn LibreOffice Impress into the most perfect presentation tool on the planet. Naturally, if these features do get built, I will write a follow up post lavishing praise on the LibreOffice team. If anyone from the LibreOffice team wants to focus on these I am more than happy to provide feedback and input!

Smart Guides

One the most fantastic elements of both Keynote and Powerpoint are the smart guides. These are guidelines that appear when you move an object around to help you to align things (such as centering an object or making sure multiple objects are the same width/height from each other).

This feature is invaluable and the absence of it in Impress is notable and at times frustrating. I think a lot of people would move over to LibreOffice if this was available and switched on by default.

Efficiency

Moving objects is slow and clunky in LibreOffice. Moving an object doesn’t smoothly move pixel by pixel but instead jerkily moves as I drag my mouse. It seems that the object moves in 5/10 pixel increments. This means positioning objects is less precise and feels slow and clunky.

Likewise, selections (e.g. selecting multiple objects) and reordering slides has the same chunkiness.

If this was refined it would make the whole app feel far more pleasurable to use.

Embeddable Windows

There has been times when giving a presentation when I have wanted to embed a window in a presentation to save me breaking out of a presentation to show the audience something. Breaking out of a presentation ruins the magic…we want to stay in full presentation mode where possible!

As an example, I might want to show the audience a web page. I would like to therefore embed Chrome/Firefox into my presentation.

I might also want to show a feature using a command line tool. I would like to embed the terminal into my presentation, potentially on the left side of the slide with some content to the right of it. This would be invaluable for teaching programming for example. I might also want to embed a text editor.

Importantly, embedded windows would preferably have no window borders and an option to remove the menu so it looks fully integrated. This would be a tremendous feature that neither Keynote or Powerpoint have.

Nested Section Slides

Many presentations have multiple sections. If you have a lot of slides like I do it can be handy to be able to break slides in sections (with the appropriate slides nested under a main slide for each section). This is a standard feature in Keynote. This makes it easy to jump to different sections when editing. What would be really ideal is if there is also a hotkey that can jump between the different sections – this provides a great opportunity then to jump between different logical pieces of a presentation.

Media Events

When putting together a deck for Bad Voltage Live I wanted to play a slide with an embedded audio clip in it and configure what happens before or after the audio plays. For example, I would like the audio to play and then automatically transition to the next slide when the audio is finished. Or, I want to load a slide with an embedded audio clip and then require another click to start playing the audio. From what I can tell, these features are missing in LibreOffice.

Those are the main things for me. So, LibreOffice community, think you can get these integrated into the app? Kudos can be yours!

Free Beer, Prizes, and Bad Voltage in Fulda Tonight!

Tonight, Wed 30th September 2015 at 7pm there are five important reasons why you should be in Fulda in Germany:

  1. A live Bad Voltage show that will feature technology discussion, competitions, and plenty of fun.
  2. Free beer.
  3. The chance to win an awesome Samsung Galaxy Tab S2.
  4. Free entry (including the beer!).
  5. A chance to meet some awesome people.

It is going to be a blast and we hope you can make it out here tonight.

Just remember, you might leave with one of these:

Doors open tonight at 7pm, show starts at 7.30pm at:

Hall 8
University of Applied Science Fulda,
Leipziger Str. 123, 36037
Fulda, Germany

We hope to see you there!

Bad Voltage Live in Germany: 30th Sep 2015

Some of you may know that I do a podcast called Bad Voltage with some friends; Stuart Langridge, Bryan Lunduke, and Jeremy Garcia.

The show covers Open Source, technology, politics, and more, and features interviews, reviews, and plenty of loose, fun, and at times argumentative discussion.

On Wed 30th Sep 2015, the Bad Voltage team will be doing a live show as part of the OpenNMS Users Conference. The show will be packed with discussion, surprises, contests, and give-aways.

The show takes place at the University Of Applied Sciences in Fulda, Germany. The address:

University of Applied Science Fulda, Leipziger Str. 123, 36037 Fulda, Germany Tel: +49 661 96400

For travel details of how to get there see this page.

Everyone is welcome to join and you don’t have to be joining the OpenNMS Users Conference to see the live Bad Voltage show. There will be a bunch of Ubuntu folks, SuSE folks, Linux folks, and more joining us. Also, after the show we plan on keeping the party going – it is going to be a huge amount of fun.

To watch the show, we have a small registration fee of €5. You can register here. While this is a nominal fee, we will also have some free beer and giveaways, so you will get your five euros worth.

So, be sure to come on join us. You can watch a fun show and meet some great people.

REGISTER FOR THE SHOW NOW; space is limited, so register ASAP.

Go and back the Mycroft Kickstarter campaign

Disclaimer: I am not a member of the Mycroft team, but I think this is neat and an important example of open innovation that needs support.

Mycroft is an Open Source, Open Hardware, Open APIs product that you talk to and it provides information and services. It is a wonderful example of open innovation at work.

They are running a kickstarter campaign that is pretty close to the goal, but it needs further backers to nail it.

I recorded a short video about why I think this is important. You can watch it here.

I encourage you to go and back the campaign. This kind of open innovation across technology, software, hardware, and APIs is how we make the world a better and more hackable place.

Ubuntu, Canonical, and IP

Recently there has been a flurry of concerns relating to the IP policy at Canonical. I have not wanted to throw my hat into the ring, but I figured I would share a few simple thoughts.

Firstly, the caveat. I am not a lawyer. Far from it. So, take all of this with a pinch of salt.

The core issue here seems to be whether the act of compiling binaries provides copyright over those binaries. Some believe it does, some believe it doesn’t. My opinion: I just don’t know.

The issue here though is with intent.

In Canonical’s defense, and specifically Mark Shuttleworth’s defense, they set out with a promise at the inception of the Ubuntu project that Ubuntu will always be free. The promise was that there would not be a hampered community edition and full-flavor enterprise edition. There will be one Ubuntu, available freely to all.

Canonical, and Mark Shuttleworth as a primary investor, have stuck to their word. They have not gone down the road of the community and enterprise editions, of per-seat licensing, or some other compromise in software freedom. Canonical has entered multiple markets where having separate enterprise and community editions could have made life easier from a business perspective, but they haven’t. I think we sometimes forget this.

Now, from a revenue side, this has caused challenges. Canonical has invested a lot of money in engineering/design/marketing and some companies have used Ubuntu without contributing even nominally to it’s development. Thus, Canonical has at times struggled to find the right balance between a free product for the Open Source community and revenue. We have seen efforts such as training services, Ubuntu One etc, some of which have failed, some have succeeded.

Again though, Canonical has made their own life more complex with this commitment to freedom. When I was at Canonical I saw Mark very specifically reject notions of compromising on these ethics.

Now, I get the notional concept of this IP issue from Canonical’s perspective. Canonical invests in staff and infrastructure to build binaries that are part of a free platform and that other free platforms can use. If someone else takes those binaries and builds a commercial product from them, I can understand Canonical being a bit miffed about that and asking the company to pay it forward and cover some of the costs.

But here is the rub. While I understand this, it goes against the grain of the Free Software movement and the culture of Open Source collaboration.

Putting the legal question of copyrightable binaries aside for one second, the current Canonical IP policy is just culturally awkward. I think most of us expect that Free Software code will result in Free Software binaries and to make claim that those binaries are limited or restricted in some way seems unusual and the antithesis of the wider movement. It feels frankly like an attempt to find a loophole in a collaborative culture where the connective tissue is freedom.

Thus, I see this whole thing from both angles. Firstly, Canonical is trying to find the right balance of revenue and software freedom, but I also sympathize with the critics that this IP approach feels like a pretty weak way to accomplish that balance.

So, I ask my humble readers this question: if Canonical reverts this IP policy and binaries are free to all, what do you feel is the best way for Canonical to derive revenue from their products and services while also committing to software freedom? Thoughts and ideas welcome!

Rebasing Ubuntu on Android?

NOTE: Before you read this, I want to clear up some confusion. This post shares an idea that is designed purely for some intellectual fun and discussion. I am not proposing we actually do this, nor advocating for this. So, don’t read too much into these words…

The Ubuntu phone is evolving step by step. The team has worked their socks off to build a convergent user interface, toolkit, and full SDK. The phone exposes an exciting new concept, scopes, that while intriguing in their current form, after some refinement (which the team are already working on) could redefine how we use devices and access content. It is all the play for.

There is one major stumbling block though: apps.

While scopes offer a way of getting access to content quickly, they don’t completely replace apps. There will always be certain apps that people are going to want. The common examples are Skype, WhatsApp, Uber, Google Maps, Fruit Ninja, and Temple Run.

Now this is a bit of a problem. The way new platforms usually solve this is by spending hundreds of thousands of dollars to pay those companies to create and support a port. This isn’t really an option for the Ubuntu phone (there is much more than just the phone being funded by Canonical).

So, it seems to me that the opportunity of the Ubuntu phone is a sleek and sexy user interface that converges and puts content first, but the stumbling block is the lack of apps, and the lack of apps may well have a dramatic impact on adoption.

So, i have an idea to share based on a discussion last night with a friend.

Why don’t we rebase the phone off Android?

OK, bear with me…

In other words, the Ubuntu phone would be an Android phone but instead of the normal user interface it would be a UI that looks and feels like the Ubuntu phone. It would have the messaging menu, scopes, and other pieces, and select Android API calls could be mapped to the different parts of the Unity UI such as the messaging menu and online account support.

The project could even operate like how we build Ubuntu today. Every six months upstream Android would be synced into Launchpad where a patchset would live on patches.ubuntu.com and applied to the codebase (in much the same way we do with Debian today).

This would mean that Ubuntu would continue to be an Open Source project, based on a codebase easily supported by hardware manufacturers (thus easier to ship), it would run all Android apps without requiring a cludgy porting/translation layer running on Ubuntu, it would look and feel like an Ubuntu phone, it would still expose scopes as a first-class user interface, the Ubuntu SDK would still be the main ecosystem play, Ubuntu apps would still stand out as more elegant and engaging apps, and it would reduce the amount of engineering required (I assume).

Now, the question is how this would impact a single convergent Operating System across desktop, phone, tablet, and TV. If Unity is essentially a UI that runs on top of Android and exposes a set of services, the convergence story should work well too, after all…it is all Linux. It may need different desktop, phone, tablet, and TV kernels, but I think we would need different kernels anyway.

So where does this put Debian and Ubuntu packages? Well, good question. I don’t know. The other unknown of course would be the impact of such a move on our flavors and derivatives, but then again I suspect the march towards snappy is going to put us in a similar situation if flavors/derivatives choose to stick with the Debian packaging system.

Of course, I am saying all this as who really only understands a small part of the picture, but this just strikes me as a logical step forward. I know there has been a reluctance to support Android apps on Ubuntu as it devalues the Ubuntu app ecosystem and people would just use Android apps, but I honestly think some kind of middle-ground is needed to get into the game, otherwise I worry we won’t even make it to the subs bench no matter how awesome our technology is.

Just a thought, would love to hear what everyone thinks, including if what I am suggesting is total nonsense. 🙂

Again, remember, this is just an idea I am throwing out for the fun of the discussion; I am not suggesting we actually do this.

About The Author

Jono Bacon is Director of Community at Github and formerly led community at Canonical and XPRIZE. He wrote The Art of Community, founded the Community Leadership Summit, and writes columns for Forbes and opensource.com.

Learn More