Déjà  Dup Moves to GNOME’s GitLab

Déjà Dup has happily hosted its main project page on Launchpad for the past ten years.

But in the interest of growing closer to GNOME and for the more modern UI & features that GitLab sports, I’m moving the project’s code hosting and downloads to GNOME’s GitLab.

Bugs and translations will remain at Launchpad for now. No change there. Though folks are welcome to also file issues on the GitLab page.

This does not mean Déjà Dup is part of the GNOME project! GNOME is just letting us live on their infrastructure as a “World” module — a project that orbits GNOME but is not part of it.

I Gotta

I made a dumb web site that lets you find nearby seats if you’re tired or nearby bathrooms if you need to pee.

It’ll show nearby benches/tables/cafes or nearby public/customer bathrooms depending on which you need.

It was mostly designed to encourage that level of detail when tagging OpenStreetMap. To show that the data has some fun uses.

Anyway, it’s just a fun toy so it only supports New England, and I will rarely update its data cache. But enjoy if you happen to be in New England!

The Ethical Case for Open Source

Tech friends of mine! In light of recent political events (both domestic and abroad), here’s a quick ethical pitch for why you should be advocates for open source (like Linux, Apache, and Firefox) and open data (like Wikipedia and OpenStreetMap).

  • It’s anti-autocratic. There are no single points of failure. Fewer centralized hubs where the state can force corporate cooperation. Harder for a UK-style forced backdoor when the code is open. Dissidents and the persecuted need the security and privacy guarantees that only open source can give.
  • It’s egalitarian. There are no barriers to use. Anyone can translate it. Developing countries can bootstrap their own tech industries off open source. There are countless stories about rural schools using old hardware and open source software on the cheap to provide for their students. An entrepreneur anywhere in the world can start a business without needing to ask permission from a tech giant or buy a single license.
  • It pushes forward Human progress. We will always be able to climb atop the shoulders of past open source giants. Open source and open data cannot quietly get shuttered when a company buys it. And it allows innovation from any quarter. You think Android could have been developed so quickly if they had to also write their own kernel? When we emerge from our current Dark Age, let’s hand the next generation a bunch of solved technology problems. I guarantee to you that the Enterprise will run on Linux.

Here’s the thing though, my tech friends. You need to also be using open source and open data.

Maybe you do not need the above advantages. You do not fear your government’s attention. You can afford the entrance fee for the walled garden and don’t need to worry about who the gatekeeper is.

But you know that there are those that do need the above guarantees. More vulnerable people than you.

There are network effects and normalization at play here. You can vote with your feet and choose which ecosystems and technologies you support with your time, attention, and money. You can make such choices political as well as practical.

And lastly, if you have the time, I obviously also recommend contributing to open source and open data sets.

The above benefits should not be limited to the technically inclined. Let’s keep fixing the warts in these systems and fleshing out these data sets to be more complete and more useful.

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