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
In the first half of the XXth century, there were relatively few scientists, and these scientists were generally not lavishly funded. Yet it has been convincingly...Daniel Lemire From Daniel Lemire's Blog | July 21, 2022 at 12:10 PM
Many programming languages have two binary floating-point types: float (32-bit) and double (64-bit). It reflects the fact that most general-purpose processors supports...Daniel Lemire From Daniel Lemire's Blog | July 20, 2022 at 12:56 PM
Processors come, roughly, in two large families x64 processors from Intel and AMD, and ARM processors from Apple, Samsung, and many other vendors. For a long time...Daniel Lemire From Daniel Lemire's Blog | July 14, 2022 at 11:04 AM
When programming, we often need to write ‘generic’ functions where the exact data type is not important. For example, you might want to write a simple functionContinue...Daniel Lemire From Daniel Lemire's Blog | July 8, 2022 at 03:54 PM
Most of us write code using higher level languages (Go, C++), but if you want to understand the code that matters to your processor, you need to look at the ‘assembly...Daniel Lemire From Daniel Lemire's Blog | June 28, 2022 at 02:07 PM
I have had access to Amazon’s latest ARM processors (graviton 3) for a few weeks. To my knowledge, these are the first widely available processors supporting Scalable...Daniel Lemire From Daniel Lemire's Blog | June 23, 2022 at 02:02 PM
One of the most expensive operation in a processor and memory system is a random memory access. If you try to read a value in memory, it can take tens of nanosecond...Daniel Lemire From Daniel Lemire's Blog | June 7, 2022 at 05:21 PM
On many systems, memory is accessed in fixed blocks called “cache lines”. On Intel systems, the cache line spans 64 bytes. That is, if you access memory at byte...Daniel Lemire From Daniel Lemire's Blog | June 6, 2022 at 04:19 PM
Many recent Intel processors benefit from a new family of instructions called AVX-512. These instructions operate over wide registers (up to 512 bits) and follow...Daniel Lemire From Daniel Lemire's Blog | May 25, 2022 at 05:27 PM
There are various ways in software to handle error conditions. In C or Go, one returns error code. Other programming languages like C++ or Java prefer to throwContinue...Daniel Lemire From Daniel Lemire's Blog | May 13, 2022 at 11:58 AM
I refer to “bitset decoding” as the action of finding the positions of the 1s in a stream of bits. For example, given the integer value 0b11011 (or 27 in decimal)...Daniel Lemire From Daniel Lemire's Blog | May 10, 2022 at 05:38 PM
In software, we often use ‘bitsets’: you work with arrays of bits to represent sets of small integers. It is a concise and fast data structure. Sometimes you want...Daniel Lemire From Daniel Lemire's Blog | May 6, 2022 at 04:45 PM
In software, it is a common problem to want to remove specific characters from a string. To make the problem precise, let us consider the removal of all ASCII control...Daniel Lemire From Daniel Lemire's Blog | April 28, 2022 at 12:53 PM
In practice, computer code is constantly being transformed. At the beginning of a project, the computer code often takes the form of sketches that are gradually...Daniel Lemire From Daniel Lemire's Blog | April 21, 2022 at 01:55 PM
In programming languages like JavaScript or Python, numbers are typically represented using 64-bit IEEE number types (binary64). For these numbers, we have 15 digits...Daniel Lemire From Daniel Lemire's Blog | April 13, 2022 at 01:31 PM
Most strings in software today are represented using the unicode standard. The unicode standard can represent most human readable strings. Unicode works by representing...Daniel Lemire From Daniel Lemire's Blog | April 5, 2022 at 11:50 AM
In most systems, integers are stored using a fixed binary representation. It is common to store integers using 32-bit or 64-bit words. You sometimes need to convert...Daniel Lemire From Daniel Lemire's Blog | March 28, 2022 at 05:50 PM
Programmers often need to write data structures to disk or to networks. The data structure then needs to be interpreted as a sequence of bytes. Regarding integer...Daniel Lemire From Daniel Lemire's Blog | March 18, 2022 at 06:25 PM
At my university, one of our internal software systems allows a professor to submit a revision to a course. The professor might change the content or the objectives...Daniel Lemire From Daniel Lemire's Blog | February 23, 2022 at 08:54 PM
Most Canadian academics have to write their resumes using a government online tool called the Common CV. When it was first introduced, it was described as a time...Daniel Lemire From Daniel Lemire's Blog | February 18, 2022 at 06:36 PM