acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Will tablets kill PCs?
From Daniel Lemire's Blog

Will tablets kill PCs?

I have always been a fan of the personal computer. I worked all summer once to buy myself a cloned PC XT. I probably would not be a computer science researcher...

Organizations would not pass the Turing test
From Daniel Lemire's Blog

Organizations would not pass the Turing test

In Computer Science, we often informally judge intelligence by using the Turing test. The Turing test is quite simple: if you can convince an observer that you...

Your programming language does not know about elementary mathematics
From Daniel Lemire's Blog

Your programming language does not know about elementary mathematics

In Mathematics, we typically require equality to form equivalence classes. That is, it should be reflexive: A should be equal to A. Moreover, it should be symmetric...

To improve your intellectual productivity
From Daniel Lemire's Blog

To improve your intellectual productivity

We would all like to be smarter, to produce better software, better research papers or better art. It is not difficult to see that, by just about any metric, productivity...

Does time fix all?
From Daniel Lemire's Blog

Does time fix all?

As an graduate, finding useful references was painful. What the librarians had come up with were terrible time-consuming systems. It took an outsider (Berners-Lee)...

On Feeding Your CPU With Data
From Daniel Lemire's Blog

On Feeding Your CPU With Data

Can you guess the speed difference between these two lines of code? The first line of code does N additions: for (int i=0; i<N;i++) sum+=arr[i]; The second line...

A post-industrial point of view
From Daniel Lemire's Blog

A post-industrial point of view

We can roughly sketch human history as follows: Initially, everything was expensive for human beings. Farming made food cheap. The industrial revolution made goods...

The Internet is a product of the post-industrial age
From Daniel Lemire's Blog

The Internet is a product of the post-industrial age

The Internet is on fire with this question: who invented the Internet? A couple of weeks ago, the president of the USA said: Government research created the Internet...

Is C/C++ worth it?
From Daniel Lemire's Blog

Is C/C++ worth it?

We routinely attribute the long battery life and power of our tablets and tiny laptops to better hardware. However, in many cases, this better hardware runs software...

Why we make up jobs out of thin air
From Daniel Lemire's Blog

Why we make up jobs out of thin air

“We prefer to invent new jobs rather than trying harder and inventing a new system that wouldn’t require everybody to have a job.” (Philippe Beaudoin) In the XXIst...

Facts about global warming that you should keep for yourself
From Daniel Lemire's Blog

Facts about global warming that you should keep for yourself

I don’t get invited to parties very often. That is, in part, because I cultivate aggressively critical thinking. My wife will testify that I am doubter, an annoying...

Bytes or octets?
From Daniel Lemire's Blog

Bytes or octets?

Quick: what is the definition of a byte (as in two kilobytes)? If you said it is a unit of 8 bits, you failed. Correct answer (according to IEEE 1541): A byte is...

Which is fastest: read, fread, ifstream or mmap?
From Daniel Lemire's Blog

Which is fastest: read, fread, ifstream or mmap?

If you program in C/C++, you have many options to read files: The standard C library offers a low-level read function. It is as simple as it gets. The standard...

Do not waste time with STL vectors
From Daniel Lemire's Blog

Do not waste time with STL vectors

I spend a lot of time with the C++ Standard Template Library. It is available on diverse platforms, it is fast and it is (relatively) easy to learn. It has been...

On the quality of academic software
From Daniel Lemire's Blog

On the quality of academic software

Software is eating the world. Despite a poor year, Facebook has a market capitalization of $65 billion. This little company with barely 2000 developers is worth...

Data alignment for speed: myth or reality?
From Daniel Lemire's Blog

Data alignment for speed: myth or reality?

Compilers align data structures so that if you read an object using 4 bytes, its memory address is divisible by 4. There are two reasons for data alignment: Some...

Creating incentives for better science
From Daniel Lemire's Blog

Creating incentives for better science

Popper argued that science should be falsifiable. To determine truth, we simply try to disprove an hypothesis until we are exhausted. It is a nice theory, but actual...

Fast bitmap decoding
From Daniel Lemire's Blog

Fast bitmap decoding

An old programming trick is to represent sets of integers as bitmaps. For example, the sequence of integers 1, 4, 6 becomes the number 0b1010010 in binary (or 82...

Summer reading recommendations
From Daniel Lemire's Blog

Summer reading recommendations

What came after by Sam Winston is an intriguing scifi novel. It describes a near-future dystopia where a handful of large corporations have taken over the USA....

Punk money: how you can print your own currency
From Daniel Lemire's Blog

Punk money: how you can print your own currency

We all want and need money. However, for many services, paying actual dollars is inefficient. The transaction costs are too high. So we need a system whereas perfect...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account