Over the last few articles, we've discussed whether software engineers have ethical responsibilities over the code that they write. We've talked about how badly written code can lead to harm, how failures — even lethal ones — don't necessarily lead us to write better software. Let's say, for the moment, that you believe that we do have a moral obligation to the public around the…
After my last article , I had a lot of interesting conversations with different people on whether software development is a form of engineering, as well fascinating conversations on ethics in general. Not long after my last post, in fact, The Atlantic did an interesting piece covering some of the same material called Why Computer Programmers Should Stop Calling Themselves Engineers (I have no…
There is an apocryphal tale I've heard many times about how, in Ancient Rome (or, in some tellings, Greece), the engineers responsible for the construction of an arch were required to stand underneath it as the final wooden supports were taken out. In some version of the story, not only was the engineer required to stand underneath it, but so was the engineer's family. In the case of the Veresk…
Let me say this right off of the bat: I'm not weighing in on the business model or the controversies of MEGA when I say that its model is genius. What I am specifically talking about is only its security model. MEGA uses an often misunderstood scheme of encryption as part of its threat model and mitigation that is nothing short of brilliant. This isn't, of course, a new scheme - plenty of others…
When we left off last article , we examined the two most common security models used today and found them both lacking. But fear not, brave readers - there are yet more key distribution solutions out there. Surely one of them isn't total shit! TOFU, or "eh, it's probably alright" There is one other method of key distribution that is commonly used. Made popular by OpenSSH, TOFU, or "trust on first…
The last article walked through the key generation process and all of the traps that will end in an insecure key. Even after that, though, a new key pair doesn't do you any good whatsoever if you can't get it to the people you want to communicate with. As the saying goes, "encryption is easy; key distribution is hard." There are two main approaches to key distribution: the Certificate Authority…
When you read about GPG (aka GnuPG) these days, you will find a bunch of very intelligent people saying two completely opposite things. On the one hand, we hear that GPG is an extremely effective tool against surveillance; it was one of the primary tools used by Edward Snowden in his efforts to release information about illegal activities by the NSA [1] . On the other hand, we hear that using GPG…
Looking back on the months that I spent working on AdvertiSin, I am struck by how inaccurate my estimates of what my problems would be were. Before I started working on AdvertiSin at all, I spent a long time looking at the feasibility of the business. The classic MBA outlook: identify the market, identify the competition, identify the differentiating factor, the value proposition, and so on and so…
This week, while helping out the DebConf 15 team with some proofreading, I encountered a kind of diff I've never worked with before. A wdiff, or word diff, is intended for displaying word differences between text files. In the context where you are editing free-form text, rather than something like code, it makes a lot more sense than a more traditional unified or copied diff. So far, so good!…
Once more, back in the air, just a bit beneath the route that I took on my way out to Portland. The last nine days have been hectic and, in many ways, very different than I was expecting. In other ways, though, it was exactly what I expected. To-do lists definitely breed, that's for sure. I've been to many other tech conferences before, but this didn't have nearly the same feel to it. It was more…