*Originally published in Queue vol. 9, no. 2*—

see this item in the ACM Digital Library

Tweet

Related:

Jez Humble - **Continuous Delivery Sounds Great, but Will It Work Here?**

It's not magic, it just requires continuous, daily improvement at all levels.

Nicole Forsgren, Mik Kersten - **DevOps Metrics**

Your biggest mistake might be collecting the wrong data.

Alvaro Videla - **Metaphors We Compute By**

Code is a story that explains how to solve a particular problem.

Ivar Jacobson, Ian Spence, Pan-Wei Ng - **Is There a Single Method for the Internet of Things?**

Essence can keep software development for the IoT from becoming unwieldy.

(newest first)

Stu: Nice theory, but they are not reimplementations, they are copy & paste.Displaying 10 most recent comments. Read the full list here

Reimplementation of crypto algorithms may be due to paranoia. You write your own because you are unsure whether someone else's has a back door in it. Just sayin' ;-)

At the risk of having rotten tomatoes thrown at me... Why not submit the crypto library to Boost?

@Siderite Nice slam on the financial market and Microsoft, but so-called "Bankers' Rounding" is actually quite common in many disciplines, including IT.

From Wikipedia...

A tie-breaking rule that is even less biased is round half to even, namely If the fraction of y is 0.5, then q is the even integer nearest to y. Thus, for example, +23.5 becomes +24, +22.5 becomes +22, 22.5 becomes 22, and 23.5 becomes 24. This method also treats positive and negative values symmetrically, and therefore is free of overall bias if the original numbers are positive or negative with equal probability. In addition, for most reasonable distributions of y values, the expected (average) value of the rounded numbers is essentially the same as that of the original numbers, even if the latter are all positive (or all negative). However, this rule will still introduce a positive bias for even numbers (including zero), and a negative bias for the odd ones. This variant of the round-to-nearest method is also called unbiased rounding (ambiguously, and a bit abusively), convergent rounding, statistician's rounding, Dutch rounding, Gaussian rounding, or bankers' rounding. This is widely used in bookkeeping. It is the default rounding mode used in IEEE 754 computing functions and operators (and in various computing languages such as ANSI/ISO C, C++, and Java, for their float and double types).

Which begs the question, what is it that you, Bruce, think "begs the question" means.

Well I guess the next generation FOSS will build a better codebase using better data mining... I guess the way C/C++ uses libs is also iin the way so maybe in the future a mono-like approach will make this issue to diminish considerably.

That's why we have .NET & mono ;)

You are assuming that an algorithm (at least) has the same specifications everywhere. I was surprised to see yesterday that in C# Math.Round(4.5) results in 4. Searching the documentation I found that by design the default behavior is based on "banker's rounding". Like the financial bubble wasn't evil enough, now they mess with rounding algorithms. Anyway, silly me for thinking the algorithm should have behaved like any other math.round, including the one in IE's implementation of Javascript.

Andrew: You're welcome to do the experiment, but I doubt you will find any. I did a few comparisons and I only think I found 2 different implementations of SHA256. This really is the most incredible pointless copy&paste in history.

Would be interesting to try to look for bugs in implementations by comparing them

Displaying 10 most recent comments. Read the full list here