What are software distributions? You may think you know everything there is to know about the term software distribution, but take a moment to think about it, take a step back and try to see the big picture.

We often have in mind the thousands of Linux distributions when we hear it, however, this is far from limited to Linux, BSD, Berkeley Software Distribution, has software distribution right in the name. Android, and iOS are software distributions too.

Not having a cross platform, easy to use, open sourced password manager has always been a pet peeve of mine. I started playing with Keybase and pass a while back, and was wondering whether I could build the password manager I wanted out of these pieces.

Firstly, I wanted a solution that is:

  1. Open Source

  2. Simple

  3. Browser integration

  4. Shareable with other users

  5. Able to store more than website passwords

  6. Per Device keys (details below)

Jamie Zawinski is what I would call a duct-tape programmer. And I say that with a great deal of respect. He is the kind of programmer who is hard at work building the future, and making useful things so that people can do stuff. He is the guy you want on your team building go-carts, because he has two favorite tools: duct tape and WD-40. And he will wield them elegantly even as your go-cart is careening down the hill at a mile a minute. This will happen while other programmers are still at the starting line arguing over whether to use titanium or some kind of space-age composite material that Boeing is using in the 787 Dreamliner.

When you are done, you might have a messy go-cart, but it’ll sure as hell fly.

Read More

I occasionally get emails from people with some amount of programming experience, usually purely academic, asking about how to get started with gaining practical experience. They want to start working on their own side projects, but they don’t really know where to begin.

I find it interesting that people often phrase their question as “what language should I learn?” or “what framework should I learn how to use?”.

The common ground between the responses I give is this: what do you want to build?

Read More

There’s an idea which encounters a bizzare level of resistance from the broader software community: that software can be completed. This resistance manifests in several forms, perhaps the most common being the notion that a git repository which doesn’t receive many commits is abandoned or less worthwhile. For my part, I consider software that aims to be completed to be more worthwhile most of the time.

There are two sources of change which projects are affected by: external and internal. An internal source of change is, for example, a planned feature, or a discovered bug. External sources of change are, say, when a dependency makes a breaking change and your software has to be updated accordingly. Some projects will necessarily have an indefinite source of external change to consider, often as part of their value proposition. youtube-dl will always evolve to add new sites and workarounds, wlroots will continue to grow to take advantage of new graphics and input hardware features, and so on…

Read More

The TIOBE index ranks programming languages. It claims to be based “on the world-wide availability of skilled engineers, courses and third party vendors”. But how can they reliably and automatically mine such infomration using just search engine results?

Actually, not only is their data not very reliable, but it is also prone to “spamming”, because search engines are! And this is why we see a totally obscure experimental Forth-like language such as “Factor” get in the top 50. There is only one explanation: the TIOBE index is simply a combination of the number of results of some search queries at major search engines; as a handful of persons regularly post articles about Factor at social bookmarking sites such as Reddit or at Wikipedia, this artificially inflates their position.

The other explanation is that Factor is legitimately getting a lot of web attention. But that’s absurd, since it doesn’t deserve any serious attention. I mean, it is on the same level as Brainfuck. Brainfuck is interesting to programming language geeks. Factor can be interesting to Forth geeks, or compilation geeks. But that’s not what TIOBE is about.

In the real world, there is no Factor. It is just a virtually unknown obscure experimental language with a small fandom that managed to get into a mostly meaningless index. You want proof?

Read More

Plus, we make it easy to migrate and difficult to leave. If you have a ton of data in your data center and you want to move it to AWS but you don’t want to send it over the internet, we’ll send an eighteen-wheeler to you filled with hard drives, plug it into your data center with a fiber optic cable, and then drive it across the country to us after loading it up with your data.

What? How do you do that?

We have a product called Snowmobile. It’s a gas-guzzling truck. There are no public pictures of the inside, but it’s pretty cool. It’s like a modular datacenter on wheels. And customers rightly expect that if they load a truck with all their data, they want security for that truck. So there’s an armed guard in it at all times.

Read More

Having read the announcement and the reasoning for the fork, I was left puzzled. What went wrong? When I looked at the mailing lists I never noticed any conflicts. In fact there is even strong agreement on the areas which need work. Such as a reworked compositor pipeline, the KWayland situation, etc. Of course we need to be careful when rewriting, reworking central parts of KWin. One of the main areas in the work for preparing KWin for Wayland was to move the code base in ways allowing to rewrite parts without risking the stability of the whole project. Personally I think this served KWin well. And even if the KWin team does not want a quick rewrite of central parts it’s no reason for a fork. This still can be handled upstream, through branches. One could even release an “experimental” KWin release with central parts reworked. Overall I just don’t get it and hope that what matters is a good KWin.

Read More

Recently I have been spending time on improving the performance of bupstash (my encrypted backup tool), and wanted to compare it to some existing tools to try and find it’s relative performance in the backup tool landscape.

This post compares bupstash, restic, borg backup and plain old tar + gzip + GPG across a series of simple benchmarks.

What do all these tools have in common?

  • They encrypt data at rest.

  • They compress data.

  • They have some form of incremental and/or deduplicated snapshotting.

  • They are all pretty great backup systems.

Feel free to checkout the project websites to learn more, let’s get to the benchmarks.

Read More

When looking to ensure that our computers are running free software, we usually turn our attention to the operating system and programs we install. Increasingly, we also need to look at the Web sites we visit. Simply visiting many sites loads software onto your computer, primarily JavaScript, that carry proprietary licenses. If we want to be able to browse the Web without running nonfree software, we need to work together to call for change.

The Free JavaScript campaign persuades companies, governments, and NGOs to make their Web sites work without requiring that users run any proprietary software. We pick one site at a time and focus energy on it, working as a team to send many polite but firm messages to the site maintainers.

The JavaScript programs in question create menus, buttons, text editors, music players, and many other features of Web sites, so browsers generally come configured to download and run them without ever making users aware of it. Contrary to popular perception, almost no JavaScript runs “on the Web site” – even though these JavaScript programs are hidden from view, they are still nonfree code being executed on your computer, and they can abuse your trust.

Read More

Dear #Mozilla, I fully agree with your message and this is why I am not giving you my money anymore. Because you are not the #Internet and I really don’t like how you started speaking of yourself as such.

You make a browser. This is great. Diversity among browsers is essential and indeed keeps the Internet alive and humane. However instead of concentrating on this very important mission you are uniquely positioned to perform you changed your focus to populism while your top management pay figures go into seven digits. This I don’t like as well. #Firefox needs love and attention but instead you cut developers and engage into distracting nonsense no one asked you for. You even managed to break Firefox Mobile. After your redesign it is just shadow or what it used to be.

Read More

Initially, I had planned this post to start with a brief history of the decline of email clients for Linux. That quickly got out of hand, and was therefore spun out into a post of its own (TBD). To keep things brief. Thanks to the incredible ineptitude of the Thunderbird steering committee, I ended up requiring a new mail client. Having despaired of the GUI based bloat heavy approaches of most clients, I decided to go the old fashioned route and build one up in a modular manner.

Dec 29, 2020

We’re very excited to be making a Flow preview available for public download for the first time. Flow has a fast, modern, architecture that doesn’t share its layout engine with any other browser. While able to render most websites well, many perfectly, Flow still has some way to go. Each month more pages work, as more JavaScript APIs are added or additional CSS functionality created.

We have chosen to release on just one platform initially, and there are a couple of reasons why. The Raspberry Pi’s hardware is largely fixed – you can’t swap the CPU or GPU. Variations in hardware could cause us to get distracted by issues that really shouldn’t be a priority right now.

Read More
Dec 27, 2020

I started thinking more clearly about systems design when I worked at a big tech company and would help people refine their self-promotion employee review packets. Most of it was pretty straightforward, helping people map their accomplishments onto the next step up on the engineering ladder. So if you were a Novice going for Junior, you had to prove you could fix bugs without too much supervision; going for Senior, you had to prove you could implement a whole design without too much supervision; going for Staff, you had to show you could produce designs based on business problems with basically no management; going for Senior Staff, you had to solve bigger and bigger business problems; and so on.

Read More
Dec 26, 2020

Hi Rachel,

I’m writing this to you, but am CC’ing the WireGuard mailing list, as I think there’s relevant technical discussion to be had.

I woke up this morning with my inbox lit up by netizens outraged at me for having allowed the WireGuard Project to produce such terribly subpar and dysfunctional software for the Mac. That was a weird way to wake up on Christmas, considering how much I really do care about delivering polished software. I squinted at my telephone a bit trying to figure out what was going on, when I finally wound up on a Hacker News “top story” linking to your blog post [1]…

Read More

The Reproducible Builds project seeks to integrate a set of development practices into software which emphasize build reproducibility, or the ability to ensure that a given build process will lead to verifiably integrous binaries which correspond to their source code. Reproducibility is especially important in software that is used for sensitive applications or even by users living in repressive regimes under mortal danger – repressive governments, for example, may choose to introduce vulnerabilities into software used by dissidents to connect to the Internet by targeting pre-compiled binaries and build processes rather than source code. The project is working towards making many widely used pieces of free software reproducible, from its aims towards making (at the very least the packages of) several widely used distributions of GNU/Linux reproducible to achieving reproducibility for individual pieces of critical software like Tor and Tails.

Read More

This community is for general discussion about building software, not necessarily just programming.

Created on Oct 17, 2020
By @root