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
Recent versions of C++ (C++20) have a new feature: concepts. A concept in C++ is a named set of requirements that a type must satisfy. E.g., ‘act like a string’...Daniel Lemire From Daniel Lemire's Blog | July 22, 2024 at 11:13 AM
Earlier this year, both major Web engines (WebKit/Safari and Chromium/Chrome/Edge/Brave) accelerated HTML parsing using SIMD instructions. These ‘SIMD’ instructions...Daniel Lemire From Daniel Lemire's Blog | July 20, 2024 at 05:30 PM
The world of commodity processor is roughly divided in two: x64 chips for servers and PCs, and ARM processors for mobile devices. However, ARM chips increasingly...Daniel Lemire From Daniel Lemire's Blog | July 10, 2024 at 04:43 PM
Recently, the two major Web engines (WebKit and Chromium) adopted fast SIMD routines to scan HTML content. The key insight is to use vectorized classification (Langdale...Daniel Lemire From Daniel Lemire's Blog | July 5, 2024 at 03:44 PM
Copying data in software is cheap, but it is not at all free. As you start optimizing your code, you might find that copies become a performance bottleneck. Let...Daniel Lemire From Daniel Lemire's Blog | June 22, 2024 at 03:14 PM
We have been working on a fast library to validate and transcode Unicode and other formats such as base64 in C++: simdutf. We wondered: could we achieve the same...Daniel Lemire From Daniel Lemire's Blog | June 20, 2024 at 01:25 PM
If you must multiply matrices, you should use dedicated libraries. However, we sometimes need to roll our own code. In C++, you can quickly write your own Matrix...Daniel Lemire From Daniel Lemire's Blog | June 13, 2024 at 05:11 PM
Modern processors have instructions to process several bytes at once. Effectively all processors have the capability of processing 16 bytes one once. These instructions...Daniel Lemire From Daniel Lemire's Blog | June 8, 2024 at 12:55 AM
In software, we often represent strings by surrounding them with quotes ("). What happens if the string itself contains quotes? We then need to escape the string...Daniel Lemire From Daniel Lemire's Blog | May 30, 2024 at 11:48 PM
In the quest for software optimization, a trusty companion is the sampling profiler, a tool available in most programming languages. These profilers work unobtrusively...Daniel Lemire From Daniel Lemire's Blog | May 30, 2024 at 03:33 PM
Artificial intelligence is far more efficient at producing content than human beings, as far as carbon emissions go. Human brains got larger by over 5% betweenContinue...Daniel Lemire From Daniel Lemire's Blog | May 25, 2024 at 09:09 PM
Back when I started programming professionally, every expert and every software engineering professor would swear by object-oriented programming. Resistance was...Daniel Lemire From Daniel Lemire's Blog | May 14, 2024 at 10:17 AM
In C++, there are different ways to pass a value to a function. Typically, at any given time, an object in C++ ‘belongs’ to a single function. The various waysContinue...Daniel Lemire From Daniel Lemire's Blog | May 13, 2024 at 11:51 AM
Peer review as we know it today was introduced very late, over a century after the scientific revolution. It happened after Einstein’s time… arguably the most productive...Daniel Lemire From Daniel Lemire's Blog | May 11, 2024 at 06:47 PM
Python is probably the most popular programming language in the world right now. Python is easy to extend using C code. You may want to return from Python a small...Daniel Lemire From Daniel Lemire's Blog | May 8, 2024 at 11:55 PM
Under Windows, when using Visual Studio to build C++ code, there are two possible compiler strategies. The Visual Studio compiler (often referred to as MSVC) is...Daniel Lemire From Daniel Lemire's Blog | May 2, 2024 at 03:23 PM
Egor Bogatov is an engineer working on C# compiler technology at Microsoft. He had an intriguing remark about a performance regression on Apple hardware following...Daniel Lemire From Daniel Lemire's Blog | April 28, 2024 at 08:32 PM
Software can beat human beings at most games… from Chess to Go, and even poker. Large language models like GPT-4 offered through services such as ChatGPT allowContinue...Daniel Lemire From Daniel Lemire's Blog | April 26, 2024 at 08:05 PM
Go back to the roots: experience. An expert is someone who has repeatedly solved the concrete problem you are encountering. If your toilet leaks, an experienced...Daniel Lemire From Daniel Lemire's Blog | April 21, 2024 at 01:35 PM
Suppose that you receive a long string and you need to break it down into lines. Consider the simplified problems where you need to break the string into segments...Daniel Lemire From Daniel Lemire's Blog | April 19, 2024 at 05:25 PM