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
Suppose that you assigned everyone an 19 digit number. What is the probability that two human beings would have the same number? It is an instance of the Birthday...Daniel Lemire From Daniel Lemire's Blog | April 12, 2023 at 11:51 AM
When programming, we often need constant variables that are used within a single function. For example, you may want to look up characters from a table. The following...Daniel Lemire From Daniel Lemire's Blog | April 12, 2023 at 10:10 AM
Robert Metcalfe won the Turing Award (the ‘Computer Science Nobel Prize’) for his work on early networking. According to DBLP, Metcalfe published 11 journal articles...Daniel Lemire From Daniel Lemire's Blog | April 11, 2023 at 10:31 PM
GitHub is probably the most popular software repository in the world. One important feature on GitHub is the ‘pull request’: we often contribute to a piece of software...Daniel Lemire From Daniel Lemire's Blog | April 7, 2023 at 01:04 PM
When optimizing software, we routinely measure the time that takes a given function or task. The typical assumption is that we get a normal distribution, and so...Daniel Lemire From Daniel Lemire's Blog | April 6, 2023 at 04:38 PM
Generative artificial intelligence, and in particular ChatGPT, has taken the world by storm. Some intellectuals are proposing we create a worldwide ban on advanced...Daniel Lemire From Daniel Lemire's Blog | April 3, 2023 at 05:21 PM
Optimizing compilers seek try to push as much of the computation as possible at compile time. In modern C++, you can declare a function as ‘constexpr’, meaningContinue...Daniel Lemire From Daniel Lemire's Blog | March 27, 2023 at 03:30 PM
Professeur Caplan reports that ChatGPT, the new AI that is all the rage, can pass his economics midterm and get an A. What about computer science ? I submittedContinue...Daniel Lemire From Daniel Lemire's Blog | March 22, 2023 at 02:55 PM
In my blog post Counting cycles and instructions on the Apple M1 processor, I showed how we could have access to “performance counters” to count how many cycles...Daniel Lemire From Daniel Lemire's Blog | March 21, 2023 at 05:49 PM
When writing software in C and C++, it is common to add C asserts to check that some conditions are satisfied at runtime. Often, it is a simple comparison between...Daniel Lemire From Daniel Lemire's Blog | March 15, 2023 at 06:26 PM
In 1500, China was the largest economy in the world, followed by India and France. The USA did not exist yet. In 1700, 4% of human beings lived in France. In the...Daniel Lemire From Daniel Lemire's Blog | March 11, 2023 at 05:14 PM
Programmers sometimes need to trim, or remove, characters, such as spaces from strings. It might be a surprising expensive task. In C, the following function is...Daniel Lemire From Daniel Lemire's Blog | March 10, 2023 at 06:33 PM
Windows users have choices when it comes to C++ programming. You may choose to stick with the regular Visual Studio. If you prefer, Microsoft makes available ClangCL...Daniel Lemire From Daniel Lemire's Blog | March 3, 2023 at 10:31 AM
If you are programming in C++ using Microsoft tools, you can use the traditional Visual Studio compiler. Or you can use LLVM as a front-end (ClangCL). Let us compare...Daniel Lemire From Daniel Lemire's Blog | February 26, 2023 at 09:08 PM
Computers represent strings using bytes. Most often, we use the Unicode standard to represent characters in bytes. The universal format to exchange strings online...Daniel Lemire From Daniel Lemire's Blog | February 16, 2023 at 06:38 PM
Kenny finds that the returns due to education are declining. Rich countries are spending more on education, with comparatively weaker test results. It costs more...Daniel Lemire From Daniel Lemire's Blog | February 12, 2023 at 02:09 PM
At a fundamental level, a programmer needs to manipulate bits. Modern processors operate over data by loading in ‘registers’ and not individual bits. Thus a programmer...Daniel Lemire From Daniel Lemire's Blog | February 7, 2023 at 06:34 PM
On the Internet, we often use 32-bit addresses which we serialize as strings such as 192.128.0.1. The string corresponds to the Integer address 0xc0800001 (3229614081...Daniel Lemire From Daniel Lemire's Blog | February 1, 2023 at 03:57 PM
You sometimes want to add a string to an existing data structure. For example, the C++17 template ‘std::optional’ may be used to represent a possible string value...Daniel Lemire From Daniel Lemire's Blog | January 30, 2023 at 12:37 PM
Originally, the domain part of a web address was all ASCII (so no accents, no emojis, no Chinese characters). This was extended a long time ago thanks to something...Daniel Lemire From Daniel Lemire's Blog | January 23, 2023 at 06:22 PM