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
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
The year 2022 is over. As with every year that passes, we have made some scientific progress. I found the following achievements interesting: Diluting the blood...Daniel Lemire From Daniel Lemire's Blog | January 15, 2023 at 12:26 PM
For under $600, one can buy a 20-terabyte disk on Amazon. Unless you work professionally in multimedia, it is more storage than you need. However, having much storage...Daniel Lemire From Daniel Lemire's Blog | January 15, 2023 at 12:17 PM
We often have to represent in software a value that might be missing. Different programming languages have abstraction for this purpose. A recent version of C++...Daniel Lemire From Daniel Lemire's Blog | January 12, 2023 at 05:02 PM
Most systems today rely on Unicode strings. However, we have two popular Unicode formats: UTF-8 and UTF-16. We often need to convert from one format to the other...Daniel Lemire From Daniel Lemire's Blog | January 5, 2023 at 04:53 PM
Most domain names are encoded using ASCII (e.g., yahoo.com). However, you can register domain names with almost any character in them. For example, there is a web...Daniel Lemire From Daniel Lemire's Blog | January 3, 2023 at 09:09 PM