From Schneier on Security
Artificial intelligence (AI) has been billed as the next frontier of humanity: the newly available expanse whose exploration
…
B. Schneier| February 29, 2024
A hash function maps values (e.g., strings) into a fixed number of strings, typically smaller than the original. It is useful to compare quickly two long strings...Daniel Lemire From Daniel Lemire's Blog | February 4, 2024 at 03:29 PM
One of the established and most popular programming languages is the C programming language. It is relatively easy to learn, and highly practical. Maybe surprisingly...Daniel Lemire From Daniel Lemire's Blog | January 21, 2024 at 02:20 PM
In my previous post, I described how you can write a C++ program to estimate your read memory bandwidth. It is not very difficult: you allocate a large memory region...Daniel Lemire From Daniel Lemire's Blog | January 18, 2024 at 10:47 AM
One of the limitations of a compute is the memory bandwidth. For the scope of this article, I define “memory bandwidth” as the maximal number of bytes you can bring...Daniel Lemire From Daniel Lemire's Blog | January 13, 2024 at 04:00 PM
Intel and AMD have expanded the x64 instruction sets over time. In particular, the SIMD (Single instruction, multiple data) instructions have become progressively...Daniel Lemire From Daniel Lemire's Blog | January 11, 2024 at 02:53 PM
Parenting does not appear to be able to determine the personality traits of a child. When the last ice age ended, 12,000 years ago, the Sahara was green and full...Daniel Lemire From Daniel Lemire's Blog | December 30, 2023 at 03:18 PM
Our computers do not read or write memory in units of bits or even bytes. Rather memory is accessed in small blocks of memory called “cache line”. For a given system...Daniel Lemire From Daniel Lemire's Blog | December 12, 2023 at 01:17 PM
When programming in a JavaScript environment such as Node.js, you might recover raw data from the network and need to convert the bytes into strings. In a system...Daniel Lemire From Daniel Lemire's Blog | December 8, 2023 at 12:40 AM
When you recover textual content from the disk or from the network, you may expect it to be a Unicode string in UTF-8. It is the most common format. Unfortunately...Daniel Lemire From Daniel Lemire's Blog | December 5, 2023 at 05:23 PM
Suppose that you want to parse quickly 8-bit integers (0, 1, 2, …, 254, 255) from an ASCII/UTF-8 string. The problem comes up in the simdzone project lead by Jeroen...Daniel Lemire From Daniel Lemire's Blog | November 28, 2023 at 03:17 PM
Modern web applications often use the http/https protocols. However, when the server and client needs to talk to each other in a symmetrical fashion, the WebSocket...Daniel Lemire From Daniel Lemire's Blog | November 27, 2023 at 07:16 PM
Conventional web applications use the http protocol (or the https variant). The http protocol is essentially asymmetrical: a client application such as a browser...Daniel Lemire From Daniel Lemire's Blog | November 25, 2023 at 02:04 PM
Vitamin K2 supplements might reduce the risk of myocardial infarction (heart attacks) and of all-cause death (Hasific et al. 2022). You find vitamin K2 in someContinue...Daniel Lemire From Daniel Lemire's Blog | November 12, 2023 at 01:42 PM
Suppose that you want to check whether a character in C++ belongs to a fixed set, such as ‘\0’, ‘\x09’, ‘\x0a’,’\x0d’, ‘ ‘, ‘#’, ‘/’, ‘:’, ‘<‘, ‘>’, ‘?’, ‘@’, ‘...Daniel Lemire From Daniel Lemire's Blog | November 7, 2023 at 03:54 PM
In C++, suppose that you append to a string one character at a time: while(my_string.size() <= 10'000'000) { my_string += "a"; } In theory, it might be possible...Daniel Lemire From Daniel Lemire's Blog | October 23, 2023 at 09:33 AM
The C++ library has long been organized around stream classes, at least when it comes to reading and parsing strings. But streams can be surprisingly slow. ForContinue...Daniel Lemire From Daniel Lemire's Blog | October 18, 2023 at 09:55 PM
In about 10 years, Apple has multiplied by 19 the number of transistors in its mobile processors. It corresponds roughly to a steady rate of improvement of 34%Continue...Daniel Lemire From Daniel Lemire's Blog | October 18, 2023 at 09:51 AM
Computer software is typically deterministic on paper: if you run twice the same program with the same inputs, you should get the same outputs. In practice, the...Daniel Lemire From Daniel Lemire's Blog | October 16, 2023 at 08:15 PM
If I give a programmer a string such as "9223372036854775808" and I ask them to convert it to an integer, they might do the following in C++: std::string s = .....Daniel Lemire From Daniel Lemire's Blog | September 22, 2023 at 05:50 PM
In software, we store strings of text as arrays of bytes in memory using one of the Unicode Transformation Formats (UTF), the most popular being UTF-8 and UTF-16...Daniel Lemire From Daniel Lemire's Blog | September 13, 2023 at 12:00 PM