acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Converting floating-point numbers to integers while preserving order
From Daniel Lemire's Blog

Converting floating-point numbers to integers while preserving order

Many programming languages have a number type corresponding to the IEEE binary64. In many languages such as Java or C++, it is called a double. A double value uses...

ARM MacBook vs Intel MacBook: a SIMD benchmark
From Daniel Lemire's Blog

ARM MacBook vs Intel MacBook: a SIMD benchmark

In my previous blog post, I compared the performance of my new ARM-based MacBook Pro with my 2017 Intel-based MacBook Pro. I used a number parsing benchmark. In...

ARM MacBook vs Intel MacBook
From Daniel Lemire's Blog

ARM MacBook vs Intel MacBook

Up to yesterday, my laptop was a large 15-inch MacBook Pro. It contains an Intel Kaby Lake processor (3.8 GHz). I just got a brand-new 13-inch 2020 MacBook ProContinue...

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

Science and Technology (December 5th 2020)

Researchers find that older people can lose weight just as easily as younger people. Google DeepMind claims to have solved the protein folding problem, an important...

Interview by Adam Gordon Bell
From Daniel Lemire's Blog

Interview by Adam Gordon Bell

A few weeks ago, Adam Gordon Bell had me on his podcast. You can listen to it. Here is the abstract: Did you ever meet somebody who seemed a little bit different...

Java Buffer types versus native arrays: which is faster?
From Daniel Lemire's Blog

Java Buffer types versus native arrays: which is faster?

When programming in C, one has to allocate and de-allocate memory by hand. It is an error prone process. In contrast, newer languages like Java often manage their...

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

Science and Technology links (November 28th 2020)

Homework favours kids with wealthier and better educated parents. My own kids have access to two parents with a college education, including a father who is publishing...

How fast does interpolation search converge?
From Daniel Lemire's Blog

How fast does interpolation search converge?

When searching in a sorted array, the standard approach is to rely on a binary search. If the input array contains N elements, after log(N) + 1 random queries in...

The disagreeable scientist conjecture
From Daniel Lemire's Blog

The disagreeable scientist conjecture

If you are a nerd, the Internet is a candy store… if only you stay away from mainstream sites. Some of the best scientists have blogs, YouTube channels, they post...

Programming is social
From Daniel Lemire's Blog

Programming is social

Software programming looks at a glance like work done best done in isolation. Nothing could be further from the truth in my experience. Though you may be working...

Double-blind peer review is a bad idea
From Daniel Lemire's Blog

Double-blind peer review is a bad idea

When you submit a manuscript to a journal or to a conference, you do not know who reviews your manuscript. Increasingly, due to concerns with biases and homophily...

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

Science and Technology links (November 14th 2020)

COVID 19 forced enterprises to move to remote work. There has been decades of research showing that allowing workers to work remotely improves job satisfactionContinue...

Xbox Series X and PlayStation 5: early impressions
From Daniel Lemire's Blog

Xbox Series X and PlayStation 5: early impressions

This week, my family got a copy of each new major game console: the Microsoft Xbox Series X and the Sony PlayStation 5. I haven’t yet had time to try them out well...

Benchmarking theorem provers for programming tasks: yices vs. z3
From Daniel Lemire's Blog

Benchmarking theorem provers for programming tasks: yices vs. z3

One neat family of tools that most programmers should know about are “theorem provers”. If you went to college in computer science, you may have been exposed to...

How will the pandemic impact software programming jobs?
From Daniel Lemire's Blog

How will the pandemic impact software programming jobs?

Software programming is not for everyone, but among the careers that are mostly unregulated, and thus mostly free from rents, it has consistently been one of the...

Science and Technology links (October 31st 2020)
From Daniel Lemire's Blog

Science and Technology links (October 31st 2020)

Amazon has 1 million employees. “The iPhone 12 contains a Lidar. The first 3D Lidar was released a decade ago and cost $75,000.” (Calum Chace) There is water on...

What the heck is the value of “-n % n” in programming languages?
From Daniel Lemire's Blog

What the heck is the value of “-n % n” in programming languages?

When coding efficient algorithms having to do with hashing, random number generations or even cryptography, a common construction is the expression “-n%n“. My experience...

Ridiculously fast unicode (UTF-8) validation
From Daniel Lemire's Blog

Ridiculously fast unicode (UTF-8) validation

One of the most common “data type” in programming is the text string. When programmers think of a string, they imagine that they are dealing with a list or an array...

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...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account