acm-header
Sign In

Communications of the ACM

Blogroll


Refine your search:
datePast Month
authorDaniel Lemire
bg-corner

JavaScript hashing speed comparison: MD5 versus SHA-256
From Daniel Lemire's Blog

JavaScript hashing speed comparison: MD5 versus SHA-256

Hashing algorithms convert input data into a fixed-size string of characters, known as a hash value or digest. These algorithms are one-way functions, meaning the...

Counting the digits of 64-bit integers
From Daniel Lemire's Blog

Counting the digits of 64-bit integers

Given an integer in software, you may want to know how many decimal digits it needs. For example, the integer 100 requires 3 digits, the integer 9999 requires 4...

How does your URL parser handle Unicode?
From Daniel Lemire's Blog

How does your URL parser handle Unicode?

Most strings today in software are Unicode strings. It means that you can include mathematical symbols, emojis and so forth. There are many different versions of...

Efficient In-Place UTF-16 Unicode Correction with ARM NEON
From Daniel Lemire's Blog

Efficient In-Place UTF-16 Unicode Correction with ARM NEON

Modern-day text in software can be expected to be Unicode. Unicode is stored in two formats: UTF-8 and UTF-16. UTF-16 is an encoding system used by several platforms...

Simpler and faster parsing code with std::views::split
From Daniel Lemire's Blog

Simpler and faster parsing code with std::views::split

Parsing text files is often confusing irrespective of your programming language. It can also be surprising slow. As an example, let us consider the following problem...

Accessing the attributes of a struct in C++ as array elements?
From Daniel Lemire's Blog

Accessing the attributes of a struct in C++ as array elements?

In C++, it might be reasonable to represent a URL using a class or a struct made of several strings, like so: struct basic { std::string protocol; std::string username...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account