What’s Next

So. The 2016 election happened. Many of my friends and I are understandably concerned about the future. But more than anything we want concrete actions we can take to improve things (versus say, writing blog posts about it).

I’d love suggestions. Truly. I want to feel useful. But here is what I have come up with so far:

  • Attend protests. I’m not much of a protests-can-change-the-world person. But I think they are useful for keeping opposition visible and engaged. If anyone knows a good source for tracking protests in the Boston area, let me know.
  • Donate. More on this in a bit.
  • Host fundraisers. Very similar to donating, but you get a multiplier effect for your money.
  • Volunteer for any organization you would otherwise donate to.

Now, three of those four options involve finding an organization to support. The trick is which ones. Here are mine. They’re all political rather than humanitarian, because I’m focusing on long term corrections.

ACLU. Many of the difficulties in the coming years will be around civil liberties. The ACLU has a strong track record here of doing good legal work.

National Popular Vote. This is an organization trying to fix the electoral college in quite a smart way. Basically they want to get enough states (worth 270 electoral votes) to pass a bill they’ve written that says “if enough states have passed this, we’ll all give all of our electoral votes to the winner of the popular vote.” Pretty clever. Eleven states worth 165 votes have already passed the bill (including MA). As a reminder, both the 2000 and 2016 presidential elections were won by candidates that did not win the popular vote.

Climate Hawks Vote. This PAC finds and funds congressional candidates that support strong climate change legislation.

MayDay.us. This PAC finds and funds congressional candidates that support campaign finance reform and anti-corruption measures.

Any other good options?

An Ubuntu Touch Lockscreen Refresh

It’s been a while since I’ve blogged about any unity8 work. Lately I’ve been updating the visual look and feel of the Ubuntu Touch lockscreen. I’m digging the new look, so I wanted to share.

Note that these have not landed or been fully reviewed. Looks may change before hitting devices.

A new lighter default background and snazzier infographic.
A proper passphrase box like on the tablet or desktop.
And use a more consistent look and feel for passcodes too.
With a custom background image, we use white infographic bubbles. (image credit)

In-App Purchases Available in the Ubuntu Store

I haven’t seen anyone else trumpeting this online. So I guess I will. 🙂

Since Ubuntu Touch’s OTA 10 update, apps can offer in-app purchases! Yay!

Besides allowing someone to write the next Candy Crush, this also means that app authors can stop providing separate “donation” versions of their app. Which means less busywork for authors, reviews are all on the same app, and less confusion for users.

Documentation is available from the QtPurchasing module docs. And remember to update your app’s framework to 15.04.4 (OTA 10).

If you want to see it in action, I’ve enabled a donation button in my “Lone Wolf” game app. No need to actually donate, it just might be interesting to see how it looks to the user (hit the “night mode” button in the upper right to see it — donating turns on the night mode feature).

Speaking of which, if you actually do something based on a purchase (like enabling a feature), the QtPurchasing docs recommend saving purchase information in “persistent storage.” I’ve just stuffed a boolean in a Settings object. But that’s easy for a user to modify themselves on disk. I don’t care about donation fraud, but I’m curious how I should better protect against that, in case I do something more interesting with IAP.

FastMail is the Perfect Gmail Alternative

If, for whatever reason, you’re looking to switch from Gmail, I think you’ll love FastMail.

Its workflow, interface, and features will be immediately recognizable to you: it has conversation view, archiving, spam detection, categorization, filtering, keyboard shortcuts, a modern and fast web UI (ditto for mobile), fast search, calendars, contacts, two-factor authentication, and the option to use your own domain name.

I’ve looked around and having even just that first one (a conversation view) is a shocking rarity in either webmail or mail apps. Let alone all those features.

Switching is easy too. You can import email directly from Gmail and can just export/import any calendars and contacts from Google. Plus, for any shared calendars that you still want to host at Google, you can have FastMail show them and sync any changes.

The big catch of course is that it isn’t free. But it’s not expensive either.

I know this post reads like an ad, but I’m just genuinely pleased so far (and I’m intentionally not using a referral code on the link above). Hopefully the next person doesn’t have to do as much comparison shopping as I did.

The Delayed Public License

Say you’re an open source developer and you want to write a mobile app (in my case, for the Ubuntu phone).

You put some effort into it, and you think it would be nice if you could get a little revenue back for your efforts. Mobile stores make it very easy to do this, either from upfront payments, in-app payments (IAP), or ads.

The problem is that if you open source your app, anyone can fork it, strip the payments or ads (or re-code the app to pay themselves instead), and re-upload the stripped app to the store. Which, while it may not seem fair, is something that you explicitly allowed by choosing an open source license.

I don’t like the forced choice between either receiving no renumeration for your time or closing your source code. If I die or lose interest, I’d still like the world at large to be able to build upon my code.

Open source developers have been used to receiving no renumeration for their time for quite a while. 🙂 But it’d be nice to change that, or at least allow those that are interested in doing so to try to earn some revenue by traditional means.

This isn’t an issue that was invented by mobile stores. You always could have had IAP or ads in your open source project and have had to worry about Debian maintainers stripping them out or being forked. It’s just that using IAP or ads before mobile platforms existed was very difficult.

The Delayed Public License

Some Ubuntu app developers were talking about this issue recently, and we came up with the Delayed Public License (DPL) [1]. It’s basically a meta license, that toggles between all-rights-reserved and a FOSS license after a set amount of time. In plain terms, something like:

All rights reserved. Every code commit can be licensed as GPL-3 one year after its publication.

  • You can still host your code in a public repository. Even though the code is public, it wouldn’t be legal for anyone to use it until that year is up. People are still welcome to fork your code, but they have to fork it one year back in the commit history.
  • You would release your app to the store as a closed source app. You can do that despite the DPL, because you own the copyright to the whole project. But people could still get the code from your repository.
  • Unlike a closed source project, you can still accept patches. Though you’d need a CLA of some sort.
  • The FOSS trigger is automatic. So you can’t forget or change your mind. And it’s easy to do; you don’t need some code escrow service.
  • When using the DPL, you obviously aren’t stuck with GPL-3 or a delay of one year. You can choose a different FOSS license and time period to suit your own needs.

While this meta license wouldn’t be be OSI approved [2], it still feels open source.

I’d love to hear more legally-binding ways of phrasing the license. Tying each VCS commit to its own publication timer might not be trivial to express legally.


[1] The idea came from a discussion between Michael Zanetti, Stuart Langridge, Sturm Flut, Ted Gould, and me. Credit for the name goes to Sturm Flut.
[2] Which means you have to be careful about picking a hosting provider. Launchpad for example will only host you for free if you use a FOSS license. GitLab would allow a DPL project. I’m not sure about GitHub: you have to pay for private repositories, but I don’t know about a public, non-open-source repository.

Nonogram Database

I am working on a nonogram (aka griddler, paint by number, picross, hanjie, etc) app for Ubuntu Touch.

Along the way, I’ve discovered that there are very few freely distributable puzzles floating around.

In an attempt to change that (for myself and future app developers), I’m collecting the ones I can find in one place.

If anyone knows of any good caches of freely distributable puzzles, please let me know and I’ll add them.

In the meantime, I’m going to strip files from the few open source apps I know about and see if I can get members of some popular nonogram sites to release their puzzles under a free license.

Snapifying Normal Ubuntu Packages

I’ve been playing with Ubuntu Snappy and wanted a way to bundle up traditional Ubuntu programs into a snap package.

So I wrote a script to do so! Introducing deb2snap. It isn’t perfect, but it can do some neat stuff already.

Full instructions and examples can be found on the homepage, but to whet your appetite:

./deb2snap fortune
./deb2snap --mir mir_demo_client_fingerpaint
./deb2snap --xmir xfreerdp

Tech Board Nomination

So I’ve been nominated for the Ubuntu Technical Board. Modesty and a touch of impostor syndrome prevent me from strongly endorsing myself. Though if voted in, I would certainly work hard at it. Here’s a bit about where I sit in Ubuntuland for those who are voting, but don’t know me well:

I’ve been involved in Ubuntu for about 5 and half years. I’ve worked in Canonical’s OEM team, as well as the Foundation and Desktop teams and now the Unity team. I’m a core dev and a member of the MIR team (main inclusion reviews, not the Mir display server). I maintain the default Ubuntu backup program (Déjà Dup / duplicity) and the default Ubuntu login screen. Sort of a jack of all trades, master of none kinda guy.

But really, let me talk real quick about the other candidates and why they would be awesome choices.

Martin Pitt is ridiculously talented and a super nice guy; he knows a little bit of everything; he even has his own fan club, for goodness sake. Loïc Minier is equally helpful and experienced, and is nowadays doing great things on the Touch side of things. Adam Conrad has a great eye for detail; I work with him often doing MIR work. Steve Langasek does great work on the Foundations team and always knows where the Ubuntu bodies are buried. Marc Deslauriers is super smart, appropriately cautious, and has a pleasingly big picture view. Kees Cook, Clint Byrum, Stéphane Graber, and Benjamin Drung have all been very helpful and nice when I’ve interacted with them, but I don’t happen to know them personally enough to be able to write a little blurb.

Point is, all of those nominees rock and would be great tech board members.