acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Science and Technology links (October 17th 2020)
From Daniel Lemire's Blog

Science and Technology links (October 17th 2020)

Computer vision (i.e., artificial intelligence) and cameras are used in London to monitor citizens with respect to social distancing. A fecal transplant from old...

Why is 0.1 + 0.2 not equal to 0.3?
From Daniel Lemire's Blog

Why is 0.1 + 0.2 not equal to 0.3?

In most programming languages, the value 0.1 + 0.2 differs from 0.3. Let us try it out in Node (JavaScript): > 0.1 + 0.2 == 0.3 false Yet 1 + 2 is equal to 3. Why...

Science and Technology links (October 3rd 2020)
From Daniel Lemire's Blog

Science and Technology links (October 3rd 2020)

The mortality rate for kids under five have fallen by 60% since 1990. Samsung new storage drives are both affordable and really fast (up to 7GB/s). Alzheimer’sContinue...

How expensive is integer-overflow trapping in C++?
From Daniel Lemire's Blog

How expensive is integer-overflow trapping in C++?

Integers in programming languages have a valid range but arithmetic operations can result in values that exceed such ranges. For example, adding two large integers...

Science and Technology links (September 19th 2020)
From Daniel Lemire's Blog

Science and Technology links (September 19th 2020)

A large city dating back 4,300 years has been discovered in China. It predates the Chinese civilization. At its center was a wide pyramid supporting a 20-acre palace...

Parsing floats in C++: benchmarking strtod vs. from_chars
From Daniel Lemire's Blog

Parsing floats in C++: benchmarking strtod vs. from_chars

Programmers often need to convert a string into a floating-point numbers. For example, you might get the string “3.1416” and you would like to get the resulting...

Good students find questions, not answers
From Daniel Lemire's Blog

Good students find questions, not answers

It is often believed that learning is a simple matter of collecting answers and replies.  I suspect that “learn mechanistically how to answer the questions” isContinue...

Science and Technology links (September 5th 2020)
From Daniel Lemire's Blog

Science and Technology links (September 5th 2020)

Single cells are able to navigate complex mazes. E.g., it works with mouse pancreatic cancer cells. Body builders and athletes sometimes take a supplement called...

Sentinels can be faster
From Daniel Lemire's Blog

Sentinels can be faster

A standard trick in programming is to use “sentinel values”. These are special values that represent metadata efficiently. The C language represents strings asContinue...

Science and Technology links (August 29th 2020)
From Daniel Lemire's Blog

Science and Technology links (August 29th 2020)

In children, higher video game time is positively associated with cognition (i.e., kids who play more video games are smarter). Note that it does not follow that...

Science and Technology links (August 9th 2020)
From Daniel Lemire's Blog

Science and Technology links (August 9th 2020)

The BBC reports that diversity and anti-bias training is of little use and may even be counterproductive if the goal is reduce biases: “The effect of bias training...

Performance tip: constructing many non-trivial objects is slow
From Daniel Lemire's Blog

Performance tip: constructing many non-trivial objects is slow

I started programming professionally when Java came out and right about when C++ was the “hot new thing”. Following the then-current fashion, I looked down at C...

Science and Technology links (August 1st 2020)
From Daniel Lemire's Blog

Science and Technology links (August 1st 2020)

In Japan, a large dam is being constructed almost entirely by robots. Naked mole rats are mammals that do not age in the sense that their fitness and mortalityContinue...

Science and Technology links (July 25th 2020)
From Daniel Lemire's Blog

Science and Technology links (July 25th 2020)

I was taught that human beings only arrived to America recently (15,000 years ago). It turns out that it is wrong. There were human beings in America 30,000 years...

Avoid character-by-character processing when performance matters
From Daniel Lemire's Blog

Avoid character-by-character processing when performance matters

When processing strings, it is tempting to view them as arrays of characters (or bytes) and to process them as such. Suppose that you would like to determine whether...

Downloading files faster by tweaking headers
From Daniel Lemire's Blog

Downloading files faster by tweaking headers

I was given a puzzle recently. Someone was parsing JSON files downloaded from the network from a bioinformatics URI. One JSON library was twice as fast at the other...

The cost of runtime dispatch
From Daniel Lemire's Blog

The cost of runtime dispatch

For high-performance software, it is sometimes needed to use different functions, depending on what the hardware supports. You might write different functions,Continue...

Science is the belief in the ignorance of experts
From Daniel Lemire's Blog

Science is the belief in the ignorance of experts

Science is the belief in the ignorance of experts said Richard Feynman. Feynman had a Nobel prize in physics. He was a remarquable educator: his lecture notes are...

Science and Technology links (July 11th 2020)
From Daniel Lemire's Blog

Science and Technology links (July 11th 2020)

Some upcoming Mercedes cars will have augmented reality head-up displays. Intel’s new standard for high-speed cables (thunderbolt) supports 3 GB/s bandwidth. (This...

GNU GCC does not round floating-point divisions to the nearest value
From Daniel Lemire's Blog

GNU GCC does not round floating-point divisions to the nearest value

I know that floating-point arithmetic is a bit crazy on modern computers. For example, floating-point numbers are not associative: 0.1+(0.2+0.3) == 0.599999999999999978...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account