acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Sorting already sorted arrays is much faster?
From Daniel Lemire's Blog

Sorting already sorted arrays is much faster?

If you are reading a random textbook on computer science, it is probably going to tell you all about how good sorting algorithms take linearithmic time. To arrive...

Swift versus Java : the bitset performance test
From Daniel Lemire's Blog

Swift versus Java : the bitset performance test

I claimed online that the performance of Apple’s Swift was not yet on par with Java. People asked me to back my claim with numbers. I decided to construct one test...

My thoughts on Swift
From Daniel Lemire's Blog

My thoughts on Swift

Swift is a new programming language produced by Apple for its iOS devices (primarily the iPhone). It first appeared two years ago and it has been gaining popularity...

The rise of dark circuits
From Daniel Lemire's Blog

The rise of dark circuits

The latest iPhone 7 from Apple has more computing peak power than most laptops. Apple pulled this off using a technology called ARM big.LITTLE where half of the...

The memory usage of STL containers can be surprising
From Daniel Lemire's Blog

The memory usage of STL containers can be surprising

C++ remains one of the most popular languages today. One of the benefits of C++ is the built-in STL containers offering the standard data structures like vector...

The new C standards are worth it
From Daniel Lemire's Blog

The new C standards are worth it

The C language is one of the oldest among the popular languages in use today. C is a conservative language. The good news is that the language is aging well and...

Starting high school in 2016
From Daniel Lemire's Blog

Starting high school in 2016

My oldest boy started high school this year. He goes to an accessible private school nearby. We went to a parent’s meeting last night. Personal electronics is banned...

Function signature: how do you order parameters?
From Daniel Lemire's Blog

Function signature: how do you order parameters?

Most programming languages force you to order your function parameters. Getting them wrong might break your code. What is the most natural way to order the parameters...

Are there too many people?
From Daniel Lemire's Blog

Are there too many people?

Without immigration, most developed countries would face massive depopulation. In fact, half the population of the Earth lives in countries with sub-replacement...

The rate-of-living theory is wrong
From Daniel Lemire's Blog

The rate-of-living theory is wrong

The rate-of-living theory is popular on the Internet. The intuition is that all animals are born with some “budget” that they burn out over time according to their...

Innovation as a Fringe Activity
From Daniel Lemire's Blog

Innovation as a Fringe Activity

What do these people have in common: Marconi, Alexander Graham Bell, and the Steves Wozniak and Jobs? At least one commonality is that approximately nobody listened...

Faster dictionary decoding with SIMD instructions
From Daniel Lemire's Blog

Faster dictionary decoding with SIMD instructions

A particularly fast and effective compression technique is dictionary coding. Intuitively, it works as follow. Suppose you are given a long document made of millions...

How many reversible integer operations do you know?
From Daniel Lemire's Blog

How many reversible integer operations do you know?

Most operations on a computer are not reversible… meaning that once done, you can never go back. For example, if you divide integers by 2 to get a new integer,Continue...

Let us talk about the Luddite problem…
From Daniel Lemire's Blog

Let us talk about the Luddite problem…

This morning I woke up to an interview on the radio (yes, I still have a radio somehow) with pharmacists who decided (gulp!) to try to fulfill prescriptions byContinue...

Combine smart people with crazily hard projects
From Daniel Lemire's Blog

Combine smart people with crazily hard projects

Back in college, professors assigned crazily hard problems… and I was forced to talk with my peers to figure out how they fared… and eventually teaming up withContinue...

Common sense in  artificial intelligence… by 2026?
From Daniel Lemire's Blog

Common sense in artificial intelligence… by 2026?

Lots of people want to judge machine intelligence based on human intelligence. It dates back to Turing who proposed his eponymous Turing test: can machines “pass”...

Accelerating PHP hashing by “unoptimizing” it
From Daniel Lemire's Blog

Accelerating PHP hashing by “unoptimizing” it

Hashing is a software trick that can map strings to fixed-length integers, such as 32-bit integers. It is ubiquitous in modern software. Languages like Java and...

Augmented reality becomes mainstream
From Daniel Lemire's Blog

Augmented reality becomes mainstream

My go-to reference lately about the near future has been the 2006 novel Rainbows End by Vernor Vinge. The novel is set in 2025 and the author depicts a world where...

Virtual Reality: First impressions with the HTC Vive
From Daniel Lemire's Blog

Virtual Reality: First impressions with the HTC Vive

I just got my hands on some virtual-reality (VR) goggles. Specifically, we have an “HTC Vive“. We are still in the early days of VR and given that these goggles...

Fast random shuffling
From Daniel Lemire's Blog

Fast random shuffling

In a random shuffle, you want to take the elements of a list and reorder them randomly. In a “fair” random shuffle, all possible permutations must be equally likely...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account