acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Programming inside in a container
From Daniel Lemire's Blog

Programming inside in a container

I have a small collection of servers, laptops and desktops. My servers were purchased and configured at different times. By design, they have different hardware...

Science and Technology links (May 16th 2020)
From Daniel Lemire's Blog

Science and Technology links (May 16th 2020)

Most of our processors, whether in our PCs or mobile phones, are 64-bit processors. In the case of your PC, it has been so for a couple of decades. Unfortunately...

Encoding binary in ASCII very fast
From Daniel Lemire's Blog

Encoding binary in ASCII very fast

In software, we typically work with binary values. That is, we have arbitrary streams of bytes. To encode these arbitrary stream of bytes in standard formats like...

Science and Technology links (May 2nd 2020)
From Daniel Lemire's Blog

Science and Technology links (May 2nd 2020)

As we age, we tend to produce less of NAD+, an essential chemical compound for our bodies. We can restore youthful levels of NAD+ by using freely available supplements...

For case-insensitive string comparisons, avoid char-by-char functions
From Daniel Lemire's Blog

For case-insensitive string comparisons, avoid char-by-char functions

Sometimes wew need to compare strings in a case-insensitive manner. For example, you might want ‘abc’ and ‘ABC’ to be considered. It is a well-defined problem for...

Sampling efficiently from groups
From Daniel Lemire's Blog

Sampling efficiently from groups

Suppose that you have to sample a student at random in a school. However, you cannot go into a classroom and just pick a student. All you are allowed to do is to...

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

Science and Technology links (April 25th 2020)

People’s muscles tends to become weaker with age, a process called sarcopenia. It appears that eating more fruits and vegetables is associated with far lower risks...

Rounding integers to even, efficiently
From Daniel Lemire's Blog

Rounding integers to even, efficiently

When dividing a numerator n by a divisor d, most programming languages round “down”. It means that 1/2 is 0. Mathematicians will insist that 1/2 and claim thatContinue...

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

Science and Technology links (April 11th 2020)

Greenland sharks reach their sexual maturity when they are 150 years old and they live hundreds of years. Some living sharks today were born in the 16th century...

Multiplying backward for profit
From Daniel Lemire's Blog

Multiplying backward for profit

Most programming languages have integer types with arithmetic operations like multiplications, additions and so forth. Our main processors support 64-bit integers...

Science and Technology links (April 4th 2020)
From Daniel Lemire's Blog

Science and Technology links (April 4th 2020)

Antartica was once a rainforest. Google’s DeepMind built artificial intelligences that can defeat human beings at all of the standard Atari (arcade) games. The...

We released simdjson 0.3: the fastest JSON parser in the world is even better!
From Daniel Lemire's Blog

We released simdjson 0.3: the fastest JSON parser in the world is even better!

Last year (2019), we released the simjson library. It is a C++ library available under a liberal license (Apache) that can parse JSON documents very fast. How fast...

Science and Technology links (March 28th 2020)
From Daniel Lemire's Blog

Science and Technology links (March 28th 2020)

In a laboratory, we know how to turn any of our cells into youthful stem cells using something called the Yamanaka. If you expose cells to such factors for a short...

Avoiding cache line overlap by replacing one 256-bit stores with two 128-bit stores
From Daniel Lemire's Blog

Avoiding cache line overlap by replacing one 256-bit stores with two 128-bit stores

Memory is organized in cache lines, frequently blocks of 64 bytes. On Intel and AMD processors, you can store and load memory in blocks of various sizes, such as...

Number of atoms in the universe versus floating-point values
From Daniel Lemire's Blog

Number of atoms in the universe versus floating-point values

It is estimated that there are about 1080 atoms in the universe. The estimate for the total number of electrons is similar. It is a huge number and it far exceeds...

Science and Technology links (March 14th 2020)
From Daniel Lemire's Blog

Science and Technology links (March 14th 2020)

Mothers, but not fathers, possess gender-related implicit biases about emotion expression in children. Chinese researchers used to be offered cash rewards for publishing...

Fast float parsing in practice
From Daniel Lemire's Blog

Fast float parsing in practice

In our work parsing JSON documents as quickly as possible, we found that one of the most challenging problem is to parse numbers. That is, you want to take theContinue...

Science and Technology links (March 7th 2020)
From Daniel Lemire's Blog

Science and Technology links (March 7th 2020)

The benefits of flu vaccines in healthy adults is modest. They do not reduce neonatal death, hospitalisations, or working day lost. It does not seem more helpful...

Will calling “free” or “delete” in C/C++ release the memory to the system?
From Daniel Lemire's Blog

Will calling “free” or “delete” in C/C++ release the memory to the system?

In the C programming language, we typically manage memory manually. A typical heap allocation is a call to malloc followed by a call to free. In C++, you have more...

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

Science and Technology links (February 29th 2020)

No one really understands how planes fly. This puts a dent in the model whereas inventions follows theory. Physician salaries and diagnostic tests account for 4...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account