acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

In C, how do you know if the dynamic allocation succeeded?
From Daniel Lemire's Blog

In C, how do you know if the dynamic allocation succeeded?

In the C programming language, we allocate memory dynamically (on the heap) using the malloc function. You pass malloc a size parameter corresponding to the number...

In C++, is empty() faster than comparing the size with zero?
From Daniel Lemire's Blog

In C++, is empty() faster than comparing the size with zero?

Most C++ programmers rely on “STL” for their data structures. The most popular data structure is probably vector, which is just a dynamic array. The set and the...

Science and Technology links (October 23rd 2021)
From Daniel Lemire's Blog

Science and Technology links (October 23rd 2021)

Apple announced new processors for its computers. Here is a table with the transistor count of some recent Apple processors: processor release year transistorsContinue...

Converting binary floating-point numbers to integers
From Daniel Lemire's Blog

Converting binary floating-point numbers to integers

You are given a floating-point number, e.g. a double type in Java or C++. You would like to convert it to an integer type… but only if the conversion is exact.Continue...

Science and Technology links (October 16th 2021)
From Daniel Lemire's Blog

Science and Technology links (October 16th 2021)

The thymus is an important component of our immune system. As we age, the thymus degenerates and our immune system becomes less fit: emotional and physical distress...

Calling a dynamically compiled function from Go
From Daniel Lemire's Blog

Calling a dynamically compiled function from Go

Compiled programming languages are typically much faster than interpreted programming language. Indeed, the compilation step produces “machine code” that is ideally...

Science and Technology links (October 10th 2021)
From Daniel Lemire's Blog

Science and Technology links (October 10th 2021)

Evans and Chu suggest, using data and a theoretical model, that as the number of scientists grow, progress may stagnate. Simply put, in a large field, with many...

For software performance, can you always trust inlining?
From Daniel Lemire's Blog

For software performance, can you always trust inlining?

It is easier for an optimizing compiler to spot and eliminate redundant operations if it can operate over a large block of code. Nevertheless, it is still recommended...

Working in virtual reality
From Daniel Lemire's Blog

Working in virtual reality

Inspired by a post by Paul Tomlinson, I wrote my last blog post entirely in virtual reality (VR). You put on goggles and see a virtual version of your computerContinue...

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

Science and Technology links (October 3rd 2021)

Most people were able to cure their diabetes by losing weight in a clinical trial. Video games improve intelligence over many years, while socializing has no effect...

Word-aligned Bloom filters
From Daniel Lemire's Blog

Word-aligned Bloom filters

Programmers often need to ‘filter out’ data. Suppose that you are given a database of users where only a small percentage are ‘paying customers’ (say 5% or less)...

Science and Technology links (September 26th 2021)
From Daniel Lemire's Blog

Science and Technology links (September 26th 2021)

Radiation-therapy can rejuvenate heart cells. (source: Nature) Within members of the same species, cancer risk increases with body size. Large human beings areContinue...

New release of the simdjson library: version 1.0
From Daniel Lemire's Blog

New release of the simdjson library: version 1.0

The most popular data format on the web is arguably JSON. It is a simple and convenient format. Most web services allow to send and receive data in JSON. Unfortunately...

Science and Technology links (September 18th 2021)
From Daniel Lemire's Blog

Science and Technology links (September 18th 2021)

4.5% of us are psychopaths. U.S. per capita CO2 emissions are lower than they were in 1918. 9/10 of People With Alzheimer’s Lose Some of Their Sense of Smell. Graphene...

Random identifiers are poorly compressible
From Daniel Lemire's Blog

Random identifiers are poorly compressible

It is common in data engineering to find that we have too much data. Thus engineers commonly seek compression routines. At the same time, random identifiers are...

How I debate
From Daniel Lemire's Blog

How I debate

Many of us feel that the current intellectual climate is difficult to bear. When I first noticed the phenomenon, people told me that it was because of Donald Trump...

The big-load anti-pattern
From Daniel Lemire's Blog

The big-load anti-pattern

When doing data engineering, it is common for engineers to want to first load all of the data in memory before processing the data. If you have sufficient memory...

How fast can you pipe a large file to a C++ program?
From Daniel Lemire's Blog

How fast can you pipe a large file to a C++ program?

Under many operating systems, you can send data from from one process to another using ‘pipes’. The term ‘pipe’ is probably used by analogy with plumbing and we...

Science and Technology links (July 31st 2021)
From Daniel Lemire's Blog

Science and Technology links (July 31st 2021)

Researchers built a microscope that might be 10 times better than the best available microscopes. Subsidizing college education can lower earnings due to lowerContinue...

Measuring memory usage: virtual versus real memory
From Daniel Lemire's Blog

Measuring memory usage: virtual versus real memory

Software developers are often concerned with the memory usage of their applications, and rightly so. Software that uses too much memory can fail, or be slow. Memory...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account