acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

A fast alternative to the modulo reduction
From Daniel Lemire's Blog

A fast alternative to the modulo reduction

Suppose you want to pick an integer at random in a set of N elements. Your computer has functions to generate random 32-bit integers, how do you transform suchContinue...

I do not use a debugger
From Daniel Lemire's Blog

I do not use a debugger

I learned to program with BASIC back when I was twelve. I would write elaborate programs and run them. Invariably, they would surprise me by failing to do whatContinue...

How fast is tabulation-based hashing? The downsides of  Zobrist…
From Daniel Lemire's Blog

How fast is tabulation-based hashing? The downsides of Zobrist…

In practice, hashing is the process of taking an input, such as a string, and turning it into an integer value. It is a fundamental tool in programming, as most...

The strange case of the copyright of open-source software
From Daniel Lemire's Blog

The strange case of the copyright of open-source software

Economists make a grave mistake when they fail to mention open-source software as one of the critical innovation of our era. Open-source software offers a great...

To be smart, work on problems you care about
From Daniel Lemire's Blog

To be smart, work on problems you care about

Never do anything that bores you. My experience in science is that someone is always telling to do something that leaves you flat. Bad idea. I’m not good enough...

Enough with the bogus medical studies!
From Daniel Lemire's Blog

Enough with the bogus medical studies!

Every week, we hear about how eating such and such food gives cancer, or how working out can save you from a heart attack. If you have been reading these studies...

The surprising cleverness of modern compilers
From Daniel Lemire's Blog

The surprising cleverness of modern compilers

I wanted to know how a modern C compiler like clang would process the following C code: #include <stdint.h> int count(uint64_t x) { int v = 0; while(x != 0) { x...

We are passing the Turing test right on schedule
From Daniel Lemire's Blog

We are passing the Turing test right on schedule

In 1950, the brilliant computing pioneer Alan Turing made the following prediction in his paper Computing Machinery and Intelligence: I believe that in about fifty...

Professors intentionally slow down science to make themselves look better
From Daniel Lemire's Blog

Professors intentionally slow down science to make themselves look better

Recently, the president of the United States announced a big anti-cancer initiative, to be headed by his vice-president Joe Biden. Will it be fruitful? Maybe. But...

Email: how to be polite and efficient
From Daniel Lemire's Blog

Email: how to be polite and efficient

Email is an old platform, but it still represents the cornerstone of most of our work online. Surprisingly, many people seem to be using email poorly. Here areContinue...

Is software a neutral agent?
From Daniel Lemire's Blog

Is software a neutral agent?

We face an embarrassing amount of information but when we feel overwhelmed, as Clay Shirky said, “It’s not information overload. It’s filter failure.” Unavoidably...

We know a lot less than we think, especially about the future.
From Daniel Lemire's Blog

We know a lot less than we think, especially about the future.

The inventors of the airplane, the Wright brothers, had little formal education (3 and 4 years of high school respectively). They were not engineers. They wereContinue...

How will you die? Cancer, Alzheimer’s, Stroke?
From Daniel Lemire's Blog

How will you die? Cancer, Alzheimer’s, Stroke?

Before the 1950s, many of us suffered from poliomyelitis and too many ended up crippled. Then we developed a vaccine and eradicated the disease. Before the second...

The powerful hacker culture
From Daniel Lemire's Blog

The powerful hacker culture

In my post the hacker culture is winning, I observed that the subculture developed in the software industry is infecting the wider world. One such visible culture...

No more leaks with sanitize flags in gcc and clang
From Daniel Lemire's Blog

No more leaks with sanitize flags in gcc and clang

If you are programming in C and C++, you are probably wasting at least some of your time hunting down memory problems. Maybe you allocated memory and forgot toContinue...

How close are AI systems to human-level intelligence? The Allen AI challenge.
From Daniel Lemire's Blog

How close are AI systems to human-level intelligence? The Allen AI challenge.

With respect to artificial intelligence, some people are squarely in the “optimist” camp, believing that we are “nearly there” as far as producing human-level intelligence...

Narrative illusions
From Daniel Lemire's Blog

Narrative illusions

Our brain contains lots of neurons and can do great things. I can read, write and speak fluently in two languages made of tens of thousands of words. Millions of...

Being shallow is rational
From Daniel Lemire's Blog

Being shallow is rational

Pundits often lament who people have become shallow. They no longer sit down to read books cover from cover. Instead of writing thoughtful 2-page emails, they write...

Could virtual-reality make us smarter?
From Daniel Lemire's Blog

Could virtual-reality make us smarter?

When the web initially took off, there were major concerns that it was “dumbing us down”. There are similar concerns with e-books making us dumber. I am quite sure...

Setting up a “robust” Minecraft server on a Raspberry Pi
From Daniel Lemire's Blog

Setting up a “robust” Minecraft server on a Raspberry Pi

My kids are gamers, and they love Minecraft. Minecraft sells its client software, but the server software is freely available. Since it is written in Java, it can...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account