A new 80/20 rule for open source

I didn’t have a post for yesterday, which means I haven’t managed to follow even the lenient rules I had set out for myself at the beginning.  I could claim that, since yesterday was a holiday in the USA it falls under the weekend exception, but that’s just cheating.  I fell short of my UbBloPoMo goals, I’ll own up to it.  It’s still the longest run of consistent postings this blog has ever seen, so I don’t consider this a failure. I hope you’ve all been enjoying it.

Part of the reason I didn’t post anything was because I spent the end of last week dealing with fallout from a couple of things I was involved in, my own post about Mozilla and the Community Council statement about Mint, and I was quite frankly not in the mood for either a lighthearted or a diplomatic post, so I made the decision not to post something I might later regret[1]. But during the controversy around both, one unifying meme started to emerge to me, which is the subject of this post, what I see as a new 80/20 rule.

Put simply, this rule says that people will tend to appreciate it more when you give them 20% of something, and resent you if you give them 80%.  It seems completely counter-intuitive, I know, but that’s what I was seeing in all of those conversations.  People by and large were saying that the reason Canonical and Mozilla were being judged so harshly was because they already did most of what those people wanted, which made them resented that they didn’t do everything.

When asked why they were so happy when somebody like Valve only gave them free (gratis) games, the response was almost always because they didn’t expect anything at all. But Canonical, because they gave almost everything away for free, is resented for something as minor as a CLA or closed-source Smart Scopes Service.  When I compare Canonical’s licensing approach to Mint with Red Hat’s approach to CentOS and Oracle, I was again told that they appreciated Red Hat requiring those derivatives to strip trademarks and re-build packages, but resented Canonical’s approach of explicitly letting Mint distribute Ubuntu packages with trademarks, because we didn’t go as far as they wanted. With Mozilla people took to closed-source, ad-filled websites or activity-tracking social media networks to berate Mozilla for daring to put commercial content in unused screen space.  Again, they were fine with ads on websites and Google tracking their conversations because it was expected, the fact that they existed at all was seen as a gift.  But because Mozilla has previously been so non-commercial and privacy focused , this small exception was seen as highly offensive to those same people.

To put this into a non-technical analogy, imagine you are hungry and somebody walks by with a sandwich.  If they stop and give you 20% of their sandwich, you will appreciate them sharing with you out of their bounty.  But if the same person gave you 80% of the sandwich, your first thought might be to question why they held back that 20%.  It’s a strange phenomenon, but when they keep 80% you still consider the whole sandwich as belonging to them, and thus your 20% is a gift.  But when they give you 80%, you perceive the whole thing as yours, and their remaining 20% as something taken from you.

This isn’t just a strange phenomenon, it’s a very troubling one.  It means that we are more likely to punish those people and projects that treat us well, and praise those that treat us poorly. That’s what I saw happening last week, and once I recognized what was happening I was able to see that it’s been happening for a very long time now.  And it’s not just Canonical and Mozilla, look at any open source project with a sizable user community and you’ll see the same thing.

I don’t know how to change this for the whole open source community, but the realization is certainly going to change the way I view those projects that I use.  I am going to make it a point to remember that none of the sandwich belongs to me, and to see everything somebody makes and gives me as a gift, and appreciate it even when it’s not everything that I wanted, because having 80% is always better than having 20%. I hope this post changes the way some of you view open source projects too.

[1] I agree with Jono’s On Accountability post, I don’t unpublish what I write or block comments that I don’t like.  But the other side of that coin is that I self-censor posts that are written in the heat of the moment, and have decided against publishing a number of things after letting them sit in draft status overnight and rereading them with a fresh perspective.

Posted in OpenSource, Politics | Tagged , , , | 31 Comments

Everything is Awesome

Since the kids were at my parent’s house for a sleepover, my wife and I got to go out and have a date night.  We saw the Lego Movie.  Without the kids (both of whom love Lego).  I don’t even feel bad about it.

It was, indeed, Awesome.

Posted in Uncategorized | Tagged , | 5 Comments

Apologies to razvi and iloveubuntu.net

Let me just start off by saying that I love iloveubuntu.net, I subscribe to their RSS feed and read if pretty regularly, as regularly as I read any other feed.  I have a great deal of respect for razvi and the writing he does for that site, and I would never mean any disrespect to him.

So what happened?  When I started my UbBloPoMo project, one of the things I said I would do was write a post in the evening, and schedule it to publish the following day.  That is what I’ve done for every post this month, and the last one was no exception.  I had written my article, and scheduled it to publish at 4am my local time (9am UTC), and at that point in time I was unaware of razvi’s editorial on the same subject (which may or may not have been published by the time I wrote mine).

My choice in headline was in no way a reference to his.  In fact, I chose the wording specifically because it wasn’t similar to any other headline for any other article I had read yesterday, so that nobody would feel like I was singling them out in particular. Of all the different ways a headline could have been worded, it was just a matter of random chance (or dump luck on my part) that mine and his were as similar as they were.

I still stand by what I said, about Mozilla and about us as a community.  But I wanted to apologize to razvi for the confusion and hurt feelings caused by my headline.  And to reiterate, I still love iloveubuntu.net, I still have a great deal of respect for razvi, and I will continue making his site part of my regular news reading.

Posted in OpenSource, Politics | Tagged , , | 2 Comments

Mozilla turns evil, sells your eyes to the highest bidder

Seriously?  If you find yourself writing a headline like this, you need to take a break from the internet.  If you clicked on this one because you wanted more blood-sport FOSS drama, you’re out of luck (and you should also take a break from the internet).  Come on guys, what’s happened to us that we keep jumping from one outrage to another?  For a group that loves to make allusions to 1984 when privacy is concerned, you’d think we would put up more resistance to these 2-minutes hate sessions when they are pushed on us.

Mozilla was the first open source project I ever took interest in.  I downloaded the source code for Netscape 5 (remember that?) and was *amazed* that they would just give it away to anybody like that.  I am involved in open source now, all these years later, because of that one experience.  Firefox is still one of the most well known and most used pieces of open software in the world.  They have been consistently open and doing good for us users. You don’t just disregard all of that because of a few ads.

So let’s quit this self-indulgent outrage, Firefox is still a great open source project.  Mozilla aren’t selling out, they aren’t turning evil, and they haven’t suddenly stopped caring about users. They have a nice feature that shows website thumbnails for previously viewed website, it’s very handy once you have previously viewed websites.  For new users, they’re empty, and empty tiles are useless.  So Mozilla wants to pre-populate them, until you’ve used the browser enough to fill that space.  That’s great, it turns something doing nothing, and makes it do something, that’s a good thing.  And they might make some money off it, which for everybody who’s concerned about Google’s dominance and infiltration into our privacy should be a good thing.

Are they ads?  Yes.  Or No, depending on who you ask.  But you’re asking the wrong question. The question should be: do they make Firefox worse for me? or you? or other people?  And the answer is we simply don’t know yet, because as of today those tiles are still empty for new users.  Mozilla thinks they can make Firefox better, both the web browser and the project behind it, and after 15 years of doing exactly that they’ve more than earned the right to try.

But let’s get back to the bigger problem, this constant stream of flamewars and hate fests.  We can’t go on tearing down free and open source projects like this.  No matter how much one of these might benefit your favored project at the moment, sooner or later the outrage machine is going to turn on it too. If we care at all about open source as a philosophy, we need to care about the people and projects that live by it.

As Russ Allbery saidrecently, after the Debian project had just weathered an outrage storm of it’s own:

But people should also get engaged and interested in understanding other *people* and finding ways to work with other people in difficult situations, since at the end of the day our communities are about people, not software.

Posted in OpenSource, Politics, Projects | Tagged , , , , | 13 Comments

Razing the Roof

Today was a distracting day for me.  My homeowner’s insurance is requiring that I get my house re-roofed[1], so I’ve had contractors coming and going all day to give me estimates. Beyond just the cost, we’ve been checking on state licensing, insurance, etc.  I’ve been most shocked at the differences in the level of professionalism from them, you can really tell the ones for whom it is a business, and not just a job.

But I still managed to get some work done today.  After a call with Francis Ginther about the API website importers, we should soon be getting regular updates to the current API docs as soon as their source branch is updated.  I will of course make a big announcement when that happens

I didn’t have much time to work on my Debian contributions today, though I did join the DPMT (Debian Python Modules Team) so that I could upload my new python-model-mommy package with the DPMT as the Maintainer, rather than trying to maintain this package on my own.  Big thanks to Paul Tagliamonte for walking me through all of these steps while I learn.

I’m now into my second week of UbBloPoMo posts, with 8 posts so far.  This is the point where the obligation of posting every day starts to overtake the excitement of it, but I’m going to persevere and try to make it to the end of the month.  I would love to hear what you readers, especially those coming from Planet Ubuntu, think of this effort.

[1] Re-roofing, for those who don’t know, involves removing and replacing the shingles and water-proofing paper, but leaving the plywood itself.  In my case, they’re also going to have to re-nail all of the plywood to the rafters and some other things to bring it up to date with new building codes.  Can’t be too safe in hurricane-prone Florida.

Posted in OpenSource, Programming, Upstream | Tagged , , , , , , , , | 1 Comment

Getting into Debian

Quick overview post today, because it’s late and I don’t have anything particular to talk about today.

First of all, the next vUDS was announced today, we’re a bit late in starting it off but we wanted to have another one early enough to still be useful to the Trusty release cycle.  Read the linked mailinglist post for details about where to find the schedule and how to propose sessions.

I pushed another update to the API website today that does a better job balancing the 2-column view of namespaces and fixes the sub-nav text to match the WordPress side of things. This was the first deployment in a while to go off without a problem, thanks to  having a new staging environment created last time.  I’m hoping my deployment problems on this are now far behind me.

I took a task during my weekly Core Apps update call to look more into the Terminal app’s problem with enter and backspace keys, so I may be pinging some of you in the coming week about it to get some help.  You have been warned.

Finally, I decided a few weeks ago to spread out my after-hours community a activity beyond Ubuntu, and I’ve settled on the Debian new maintainers Django website as somewhere I can easily start.  I’ve got a git repo where I’m starting writing the first unit tests for that website, and as part of that I’m also working on Debian packaging for the Python model-mommy library which we use extensively in Ubuntu’s Django website. I’m having to learn (or learn more) Debian packaging, Git workflows and Debian’s processes and community, all of which are going to be good for me, and I’m looking forward to the challenge.

Posted in OpenSource, Programming, Work | Tagged , , , , , , , , , , , , , | 2 Comments

Working hard in Orlando: Last day

We wrapped up the last day of our sprint with a new team photo.  I can honestly say I couldn’t think of a better group of people to be working with.  Even the funny looking guy in the middle.

I mentioned that earlier in the week we decided on naming SDK releases after distro releases, and with that information in hand I spent my last day getting the latest API docs uploaded, so if you’re writing apps for the latest device images, you’ll want to use these: http://developer.ubuntu.com/api/qml/sdk-14.04/

In the coming week I’ll be working to get the documentation publishing scripts added to the automated build and testing process, so those docs will be continuously updated until the release of Ubuntu 14.04, at which point we’ll freeze those doc pages and start publishing daily updates for 14.10.  Being able to publish  all of those docs in a matter of minutes was a particularly thrill for me, after working for so long to get that feature into production.  It certainly proves that it was the right approach.

Posted in OpenSource, Work | Tagged , , , , , , , | Leave a comment

Working hard in Orlando: Day 4

Second to last day of the sprint, and we’ve been shifting gears from presenting ideas and brainstorming to making solid plans and bringing all the disparate pieces together.  The result is looking very, very promising.

I started out this morning by updating my Nexus 4 to build 166, which brings some improvements to the Unity 8 and system apps.  I’m still poking around to discover what’s new.

I had a handful of great conversations with the Jamie (security) and Ken (content-hub) about how to deliver creative content via click packages in the new store.  It looks like wallpapers will be relatively easy to support, and Ken and I (mostly Ken) will be working on adding that to the Click installer and System Settings.  Theme support is unfortunately going to be more difficult, since our QML themes are full QML themselves, and can run their own code, which makes them a security concern. We’re going to try and support a safe subset of styling to be delivered via Click packages, but that’s not likely to happen this cycle.

After lunch we had another set of presentations, this time from Florian Boucault on the SDK team about app performance.  After briefly covering performance goals we need to meet to make our UI as smooth and responsive an iOS, he stunned us all by showing off live performance graphs overlaid on top of one of the Core Apps (sadly I didn’t get a picture of that) so you can see the CPU and GPU usages while interacting with the app.  This wonderful little piece of magic should be landing in device images in the next couple of weeks, and I for one can not wait to try it out. In the mean time, he was nice enough to sit down with me and walk me through using QtCreator’s Analyse tab to see what parts of my own app might be using more resources than then should.

Among the sessions I wasn’t able to attend today: More HTML5 device APIs are coming online, contacts syncing via the Online Accounts provider for Google got it’s first cut, the SDK’s StateSaver component got some finishing work done, and AppArmor optimizations that will speed up boot times.

Posted in OpenSource, Work | Tagged , , , , , , | Leave a comment

Working hard in Orlando: Day 3

Today we had a lot of good discussions around app development, starting off with an update on the state of GoLang support and what was needed to get the Go/QML bridge packaged and available for people to start using.

From there we moved on to the future of Content Hub, which is really set to reach it’s full potential now and we will hopefully see a wide range of system, core and 3rd party apps providing it with content.

After lunch Nick gave us all a quick lesson in how to properly use Autopilot, something I think we’re all going to become more familiar with in the coming months.  The key takeaway: Don’t Sleep.

Then we discussed QtCreator itself, and our various plugins for it.  We identified some easy fixes, and did a lot of brainstorming on how to attack the harder ones.  We saw the new packaging and cross-compilation support that’s being added to it now. Zoltan topped it all off by giving us a very short demonstration, going from the creation of a new project all the way, through creating a package, running package verification tests on it, copying it onto a phone and installing it, all in about 30 seconds!

We also discovered that the current SDK packages in the PPA were broken for Saucy and older releases (Trust was okay).  Daniel, Zoltan and David Barth spent much of the day intensely debugging the problem, providing a fix, shepherding those fixes though Launchpad and into the PPAs so that we could get it all working by the end of the day.  We then set aside time for a new session where we discussed what happened and what we can do to prevent it from happening again.  I’m pleased to say that some of those steps have already been implemented, and the rest will soon follow.

Finally we wrapped up the evening with chicken wings and beer, plus another fantastically entertaining card game courtesy of Alan Pope’s deranged humor.

Posted in OpenSource, Work | Tagged , , , , , , | Leave a comment

Working hard in Orlando: Day 2

Another day packed with meetings and discussions today.  Here’s some of the highlights:

We decided that SDK version numbering should mirror distro numbering, so instead of Ubuntu SDK 2.0 we will have Ubuntu SDK 14.04.

We worked out more details on the next App Developer Showdown, including what additions and changes to the SDK and store will be ready for the contest, and what prizes we will try to get for it.

After reviewing the current documentation on developer.ubuntu.com, we identified some areas where we need to improve it before the App Showdown.

Alan Pope and I guest starred in Jono’s weekly Q&A session, from the hotel bar, which was loads of fun.  Watch the full video to hear more about what we’ve been discussing here and maybe find answers to some of your own questions.

Posted in OpenSource, Work | Tagged , , , , | Leave a comment