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 I give you a set of reference strings (“ftp”, “file”, “http”, “https”, “ws”, “wss”). Given a new string, you want to quickly tell whether it is part...Daniel Lemire From Daniel Lemire's Blog | December 29, 2022 at 10:19 PM
One of Elon Musk’s ventures, OpenAI, made public a new tool called ChatGPT. It is widely regarding as a practical breakthrough in artificial intelligence. Given...Daniel Lemire From Daniel Lemire's Blog | December 25, 2022 at 05:12 PM
Given binary data, we often need to encode it as ASCII text. Email and much of the web effectively works in this manner. A popular format for this purpose is base64...Daniel Lemire From Daniel Lemire's Blog | December 23, 2022 at 02:41 PM
storing 1 GiB/month on the cloud 0.02$US web site of my twitter profile (@lemire), HTML alone 296 KiB web site of my twitter profile (@lemire), all data 3.9 MiB...Daniel Lemire From Daniel Lemire's Blog | December 21, 2022 at 03:10 PM
Suppose you would like to check that a string is not present in a large document. In C, you might do the following using the standard function strstr: bool is_present...Daniel Lemire From Daniel Lemire's Blog | December 15, 2022 at 05:16 PM
In an earlier blog post, I reported that the memory usage of a small byte array in Java (e.g., an array containing 4 bytes) was about 24 bytes. In other words:Continue...Daniel Lemire From Daniel Lemire's Blog | December 12, 2022 at 09:59 AM
As we focus on some types of unfortunate discrimination (race, gender), we may become blind to other types of discrimination. For example, tend to discrimate against...Daniel Lemire From Daniel Lemire's Blog | December 11, 2022 at 02:23 PM
Let us say that I ask you to find the number I am thinking about between -1000 and 1000, by repeatedly guessing a number. With each guess, I tell you whether your...Daniel Lemire From Daniel Lemire's Blog | December 6, 2022 at 06:58 PM
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly...Daniel Lemire From Daniel Lemire's Blog | December 6, 2022 at 11:05 AM
Amazon has some neat ARM-based systems based on Amazon’s own chips (Graviton). You can access them through Amazon’s web services (AWS). These processors have advanced...Daniel Lemire From Daniel Lemire's Blog | November 29, 2022 at 11:47 AM
I have done a lot of work that involves compressing and uncompressing data. Most often, I work on data that has specific characteristics, e.g., sorted integers....Daniel Lemire From Daniel Lemire's Blog | November 28, 2022 at 12:18 PM
Molière’s famous play, Tartuffe, the main characters is outwardly pious but fundamentally deceitful. Are people who insist on broadcasting their high virtue better...Daniel Lemire From Daniel Lemire's Blog | November 26, 2022 at 04:58 PM
You sometimes feel the need to make all of your integers positive, without losing any information. That is, you want to map all of your integers from ‘signed’ integers...Daniel Lemire From Daniel Lemire's Blog | November 25, 2022 at 12:26 PM
Java allows you to create an array just big enough to contain 4 bytes, like so: byte[] array = new byte[4]; How much memory does this array take? If you have answered...Daniel Lemire From Daniel Lemire's Blog | November 22, 2022 at 05:02 PM
A recent C++ standard (C++17) introduced new functions to parse floating-point numbers std::from_chars, from strings (e.g., ASCII text) to binary numbers. How should...Daniel Lemire From Daniel Lemire's Blog | November 17, 2022 at 11:08 AM
For speed, we use finite-precision number types in software. When doing floating-point computations in software, the results are usually not exact. For example,...Daniel Lemire From Daniel Lemire's Blog | November 16, 2022 at 04:21 PM
In C++, we might implement dynamic lists using the vector template. The int-valued constructor of the vector template allocates at least enough memory to storeContinue...Daniel Lemire From Daniel Lemire's Blog | November 10, 2022 at 10:17 AM
When you start a program, it creates a ‘process’ which own its memory. Memory is allocated to a software process in blocks called ‘pages’. These pages might span...Daniel Lemire From Daniel Lemire's Blog | November 8, 2022 at 04:30 PM
I have spent the last few years programming often in C++. The C++ langage is probably one of the hardest to master. I still learn something new every week. Furthermore...Daniel Lemire From Daniel Lemire's Blog | October 26, 2022 at 02:40 PM
Doctors in Israel are toying with polygenic screening: it is a way to make it more likely that your baby will grow up to be healthy. In 2021, 337 million prescriptions...Daniel Lemire From Daniel Lemire's Blog | October 16, 2022 at 02:05 PM