acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

A simple trick to get things done even when you are busy
From Daniel Lemire's Blog

A simple trick to get things done even when you are busy

I have been overwhelmed with busy work for the last couple of weeks. Unavoidably, this has meant shorter emails, fewer follow-ups with collaborators and not as...

Why I like the new C++
From Daniel Lemire's Blog

Why I like the new C++

I was reading Vivek Haldar’s post on the new C++ (C++11) and I was reminded that I need to write such a post myself. C++ is a standardized language. And they came...

What I do with my time
From Daniel Lemire's Blog

What I do with my time

I am not a very productive person. I also do not work long hours. However, I sometimes give the impression that I productive. I have been asked to explain how I...

The learning pill
From Daniel Lemire's Blog

The learning pill

Shirky predicts that the bulk of higher education is being disrupted the same way the music industry was disrupted by MP3 files. Should we believe him? Let us run...

Fast Sets of Integers
From Daniel Lemire's Blog

Fast Sets of Integers

Maintaining a set of integers is a common problem in programming. It can also be implemented in many different ways. Maybe the most common implementation uses a...

Should you follow the experts?
From Daniel Lemire's Blog

Should you follow the experts?

It is silly to say that ignorance is strength. However, the contrary statement is not follow the experts. The right knowledge is strength. The tricky part is that...

Is reading memory faster than writing on a PC?
From Daniel Lemire's Blog

Is reading memory faster than writing on a PC?

For human beings, reading is much faster than writing. The same is often true for computers: adding a record to a database may take an order of magnitude longer...

When is a bitmap faster than an integer list?
From Daniel Lemire's Blog

When is a bitmap faster than an integer list?

You can represent a list of distinct integers no larger than N using exactly N bits: if the integer i appears in your list, you set the i th bit to true. Bits for...

You cannot scale creativity
From Daniel Lemire's Blog

You cannot scale creativity

As a teenager, I was genuinely impressed by communism. The way I saw it, the West could never compete. The USSR offered a centralized and efficient system that...

Will I get a job with this degree?
From Daniel Lemire's Blog

Will I get a job with this degree?

In Quebec, we have had massive student protests. Students were asking for free higher education. It seems that things have quieted down as the new government has...

How well does peer review work?
From Daniel Lemire's Blog

How well does peer review work?

Since the second world war, science has relied on what I call traditional peer review. In this form of peer review, researchers send their manuscript to journal...

How to be happier while annoying your wife
From Daniel Lemire's Blog

How to be happier while annoying your wife

About a year ago, I read Made by Hand: Searching for Meaning in a Throwaway World by Mark Frauenfelder. It is a simple book with a simple message. How to be happy...

Fast integer compression: decoding billions of integers per second
From Daniel Lemire's Blog

Fast integer compression: decoding billions of integers per second

Databases and search engines often store arrays of integers. In search engines, we have inverted indexes that map a query term to a list of document identifiers...

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