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 a previous blog post, I showed how you could define ‘an interface’ in C++ using concepts. For example, I can specify that a type should have the methods has_next...Daniel Lemire From Daniel Lemire's Blog | April 20, 2023 at 02:50 PM
Some university professor include ‘trigger warnings’ in their course material, to warn students that potentially disturbing content may be encountered. According...Daniel Lemire From Daniel Lemire's Blog | April 15, 2023 at 07:48 PM
We are all familiar with the concept even if we are not aware of it: when you learn about arithmetic in school, you use the same mathematical symbols whether you...Daniel Lemire From Daniel Lemire's Blog | April 14, 2023 at 01:13 PM
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