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
It is often puzzling to encounter organizations run by highly capable and ambitious people… appear dysfunctional. An example that I like are colleges that claim...Daniel Lemire From Daniel Lemire's Blog | April 11, 2025 at 02:56 PM
Do large language models (AI) make you 3x faster or only 3% faster? The answer depends on the quality of the work you are producing. If you need something likeContinue...Daniel Lemire From Daniel Lemire's Blog | April 7, 2025 at 03:41 PM
Random integer generation is a fundamental operation in programming, often used in tasks like shuffling arrays. Go’s standard library provides convenient toolsContinue...Daniel Lemire From Daniel Lemire's Blog | April 6, 2025 at 04:26 PM
Most mobile devices use 64-bit ARM processors. A growing number of servers (Amazon, Microsoft) also use 64-bit ARM processors. These processors have special instructions...Daniel Lemire From Daniel Lemire's Blog | March 28, 2025 at 09:44 PM
There are two main types of fixed-precision integers in modern software: unsigned and signed. In C++20 and above, the signed integers must use the two’s complement...Daniel Lemire From Daniel Lemire's Blog | March 24, 2025 at 07:24 PM
Let us consider a simple C++ function which divides all values in a range of integers: void divide(std::span<int> i, int d) { for (auto& value : i) { value /= d...Daniel Lemire From Daniel Lemire's Blog | March 15, 2025 at 01:29 PM
In practice, the software we write runs on several processors. Unfortunately, much of what we take for granted on a single processor becomes false when there are...Daniel Lemire From Daniel Lemire's Blog | March 9, 2025 at 05:35 PM
Jarred Sumner, the main author of the Bun JavaScript engine, commented a few days ago on X that opening many files on macOS could be slow due to thread contention...Daniel Lemire From Daniel Lemire's Blog | March 1, 2025 at 05:41 PM
The recent AMD processors (Zen 4) provide extensive support for the powerful AVX-512 instructions. AVX-512 (Advanced Vector Extensions 512) is an extension to the...Daniel Lemire From Daniel Lemire's Blog | February 14, 2025 at 04:27 PM
A common operation in software is the copy of a block of memory. In C/C++, we often call the function memcpy for this purpose. But what happens if, while you are...Daniel Lemire From Daniel Lemire's Blog | February 7, 2025 at 06:12 PM
Programmer time is precious. This realization should shape our approach to software development, focusing our efforts on tasks that genuinely contribute to theContinue...Daniel Lemire From Daniel Lemire's Blog | January 29, 2025 at 10:02 PM
Regular expressions, often abbreviated as regex, are a powerful tool for pattern matching within text. For example, the expression \d*\.?\d+ would match a positive...Daniel Lemire From Daniel Lemire's Blog | January 24, 2025 at 10:53 PM
Your phone probably runs on 64-bit ARM processors. These processors are ubiquitous: they power the Nintendo Switch, they power cloud servers at both Amazon AWSContinue...Daniel Lemire From Daniel Lemire's Blog | January 19, 2025 at 08:05 PM
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...Daniel Lemire From Daniel Lemire's Blog | January 11, 2025 at 11:21 AM
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...Daniel Lemire From Daniel Lemire's Blog | January 7, 2025 at 04:41 PM
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...Daniel Lemire From Daniel Lemire's Blog | January 2, 2025 at 11:07 AM
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...Daniel Lemire From Daniel Lemire's Blog | December 29, 2024 at 01:24 PM
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...Daniel Lemire From Daniel Lemire's Blog | December 21, 2024 at 04:35 PM
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...Daniel Lemire From Daniel Lemire's Blog | December 15, 2024 at 07:55 PM
A data structure in programming is a specific way of organizing and storing data in a computer so that it can be accessed and used efficiently. In woodworking or...Daniel Lemire From Daniel Lemire's Blog | December 8, 2024 at 04:04 PM