acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Performance overhead when calling assembly from Go
From Daniel Lemire's Blog

Performance overhead when calling assembly from Go

The Go language allows you to call C functions and to rewrite entire functions in assembly. As I have previously documented, calling C functions from Go comes with...

What is a useful theory?
From Daniel Lemire's Blog

What is a useful theory?

I was an adept, as a teenager and a young adult, of thinkism. Thinkism is the idea that intelligence alone can solve problems. I thought I was smart so I couldContinue...

Science and technology: what happened in 2016
From Daniel Lemire's Blog

Science and technology: what happened in 2016

This year, you are able to buy CRISPR-based CRISPR gene editing toolkits for $150 on the Internet as well as autonomous drones, and you can ask your Amazon Echo...

How to build robust systems
From Daniel Lemire's Blog

How to build robust systems

Millions of little things go wrong in your body every minute. Your brain processes the data in a noisy manner. Even trained mathematicians can’t think logically...

Don’t assume that safety comes for free: a Swift case study
From Daniel Lemire's Blog

Don’t assume that safety comes for free: a Swift case study

Most modern languages try to be “safer” by checking runtime values in the hope of producing more secure and less buggy software. Sadly, it makes it harder to reason...

Getting a job in the software industry
From Daniel Lemire's Blog

Getting a job in the software industry

I am routinely asked about how to break into the software industry as a programmer. It is true that there is high demand for qualified programmers, but not allContinue...

Software evolves by natural selection
From Daniel Lemire's Blog

Software evolves by natural selection

Software evolves by natural selection, not by intelligent design. It is a massive trial-and-error process. There are many thousands of programmers working every...

On metadata
From Daniel Lemire's Blog

On metadata

I remember a time, before the Web, when you would look for relevant academic papers by reading large books with tiny fonts that would list all relevant work inContinue...

Framed in the past
From Daniel Lemire's Blog

Framed in the past

We can’t predict the future. However, I still read futurologists like Calum Chace, Alvin Toffler, Bruce Sterling, Vernor Vinge, Joël de Rosnay and so forth. A good...

My review of Deus Ex: Mankind Divided (video game)
From Daniel Lemire's Blog

My review of Deus Ex: Mankind Divided (video game)

The Deus Ex series is set in a dystopian futuristic universe. (It reminds me a bit of Japan’s Ghost in the Shell.) The latest game in the series (Deux Ex: Mankind...

Who is keeping an eye on the tech companies?
From Daniel Lemire's Blog

Who is keeping an eye on the tech companies?

A corporation such as Spotify was founded a few years ago by a 23-year-old man, and it now plays a key role in the music industry. YouTube is now the big-boss of...

Update to my VR bet with Greg Linden
From Daniel Lemire's Blog

Update to my VR bet with Greg Linden

I have an ongoing bet with Greg Linden stating that we are going to sell 10 million virtual-reality (VR) units per year by 2019. I have been paying close attention...

Intel will add deep-learning instructions to its processors
From Daniel Lemire's Blog

Intel will add deep-learning instructions to its processors

Some of the latest Intel processors support the AVX-512 family of vector instructions. These instructions operate on blocks of 512 bits (or 64 bytes). The benefit...

A case study in the performance cost of abstraction (C++’s std::shuffle)
From Daniel Lemire's Blog

A case study in the performance cost of abstraction (C++’s std::shuffle)

Statisticians and machine-learning experts sometimes need to shuffle data quickly. There is one standard and simple algorithm to shuffle an array, the so-called...

Variable-length strings can be expensive
From Daniel Lemire's Blog

Variable-length strings can be expensive

Much of our software deals with variable-length strings. For example, my name “Daniel” uses six characters whereas my neighbor’s name (“Philippe”) uses 8 characters...

Can Swift code call C code without overhead?
From Daniel Lemire's Blog

Can Swift code call C code without overhead?

Swift is the latest hot new language from Apple. It is becoming the standard programming language on Apple systems. I complained in a previous post that Swift 3...

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