acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Resizing arrays can be slow in Swift
From Daniel Lemire's Blog

Resizing arrays can be slow in Swift

Swift a recent high-performance programming language. It is still primarily used develop iOS applications, but it has the potential to be a general-purpose language...

How quickly can you remove spaces from a string?
From Daniel Lemire's Blog

How quickly can you remove spaces from a string?

Sometimes programmers want to prune out characters from a string of characters. For example, maybe you want to remove all line-ending characters from a piece of...

Best programming language for high performance (January 2017)?
From Daniel Lemire's Blog

Best programming language for high performance (January 2017)?

I keep hoping that the field of programming language will evolve. I am a bit tired to program in Java and C… I’d like better languages. I am particularly interested...

Predicting the future job market: the librarians
From Daniel Lemire's Blog

Predicting the future job market: the librarians

People spend a lot of time worrying that robots and computers are going to wipe out all jobs. My belief is that the job market is a lot more complex and simplistic...

Betting against techno-unemployment
From Daniel Lemire's Blog

Betting against techno-unemployment

There are millions of truck drivers in the US today. In particular, there are about 1.7 million tractor-trailer (human) drivers. There are many more professional...

Can your C compiler vectorize a scalar product?
From Daniel Lemire's Blog

Can your C compiler vectorize a scalar product?

If you have spent any time at all on college-level mathematics, you have probably heard of the scalar product: float scalarproduct(float * array1, float * array2...

The threat of technological unemployment
From Daniel Lemire's Blog

The threat of technological unemployment

There is a widely reported threat to our economy: robots are going to replace human workers. It is nothing new… In 1930, Keynes, the famous economist introduced...

Don’t let the experts define science!
From Daniel Lemire's Blog

Don’t let the experts define science!

We know more than we can tell. We all know what a democracy is… We know that France, Canada, the USA, Japan… are democracies… Russia and China are not democracies...

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