Show newer

Doing in again this year (this is not a promise that I'll keep it up 😛), and today is the first day that I feel like I've written somewhat idiomatic Rust, by myself. Very satisfying.

Anyway, keep in mind that I'm not a lawyer, and that there are nuances to every licence. That said, I hope that this rough mental model can be helpful to some of you when working with (or hopefully contributing to!) open source in the future.

Show thread

This mental model also helps explain how a project can have multiple licences: since they just confer extra rights, they're strictly additive. Users can benefits from the rights granted to them in both licences.

Show thread

It's not just to enable closed source work though. It can also prevent having to reach out to all contributors if there's a good reason to change the licence in the future.

For example, this is what LLVM is having to do now:

Show thread

Of course, that gets messy when there are multiple copyright holders: a contributor can use their *own* code in a closed source product, but not others'.

That's why some projects require a "Contributor Licence Agreement", giving an org even more rights than the licence does.

Show thread

It's also important to note that open source licences only *give* rights to others; the only limitation it places on the copyright holder is that they cannot revoke those rights.

That's why even under the GPL, the copyright holder can still build a closed product on top of it.

Show thread

This means that a licence violation, in essence, is just a copyright violation.

In other words, if someone e.g. uses GPL'd code in a closed-source product, the offence is the same as if they'd have used non-open source code: a copyright violation.

They were never given permission to use that copyrighted code in a closed-source product in the first place!

Show thread

Some examples:

- The MIT licence says that people can use your code, provided they do not remove the licence from it.

- The GPL says that people can use your code, provided that, for anything they build on top of it, they give the same rights to anyone they give it to.

Show thread

You (or your employer) automatically have copyright over everything you write. That roughly means that you can do pretty much everything with it, and others nothing.

At their core, open source licences simply allow others to use what you wrote as well.

Show thread

Given how open source is everywhere, it's useful to know how open source licences work. Luckily, a rough mental model is not too difficult to form. I'll sketch one out in the replies to this post.

I cracked my phone's screen 😢

However, it's a @Fairphone, so I just replaced the screen with that of a friend's old Fairphone. Took me all of five minutes 😎

The cool thing about working on developer tools is that you get continuous UX research, for free, just by lurking on your issue tracker, forums and/or chat rooms.

Just did my first system upgrade since switching to and... Wow! Not only was it easy (literally: press the "download" button, then the "restart and install" button), but also very fast. Like, I quickly got to 50%, then I went to the bathroom, and as I got back it was done.

And here I'd set aside my Saturday to deal with any potential issues.

Please boost:

A screen reader for Linux (GUI) is being developed in Rust. If anyone knows Rust and would like to help, or to just view the great work taking shape here, see:

#a11y #accessibility #blind #screenreader #coding #rust

Often, the good parts of an approach will be discarded because they are outweighed by the upsides of a newer approach. Then when eventually someone finds a way to get the benefits of the old approach with the new one, some clever cynic will come out of the woodworks lamenting how 'everything old is new again', completely disregarding the advances made in the meantime.

The boy scout rule: leave the code you touch cleaner than you found it.

It sounds attractive, but I'm having second thoughts. What's "clean" isn't usually universally agreed upon, and inconsistently-applied conventions makes those conventions hard to learn for new contributors.

There's two ways to learn abstract tools.

There's rote learning: if I do this, this happens. This'll get you started.

But real understanding happens when you form a mental model of the tool.

Sounds obvious, yet so many engineers use Git every day only knowing `git commit -am`.

(Of course, this is where I should plug my tutorial that helps you form a mental model of Git in ~11 minutes:

Say hello to the Fairphone 4: Sustainable. Long-lasting. Fair. 📱🌿

Our most sustainable smartphone, now with 5G speed, 5-year warranty and electronic waste neutral. Check it out ➡️ :

#fairphone #fairphone4

#introduction Comradery is a new subscription payment platform that is cooperatively owned and democratically controlled by every creator who uses it. Learn more about us and sign up for early access to be a creator at

My perfect employer:

- aligns with my ideals,
- makes products I'm personally excited to use, and
- has competent colleagues.

There's always been one organisation in particular that always seemed to me to tick all those boxes, so I'm very excited that, starting tomorrow, I'll be joining Mozilla!

Show older

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.