
The Log That Stopped At Twenty Two
22 records in 5,275 bytes and the split is 10 against 11. The 10 that worked declare every one of the 18,194,412 bytes in the file. The 11 that failed carry one 25-character error string between them, written 11 times. The shortest key in the file is the only row without a status, and it names the same still that the failure pile already names.
Twenty Two Rows In Three Shapes
The file is 5,275 bytes and its sha256 begins e9464138c10d8a33. It holds 22 records and 160 string values, of which 63 are distinct. Nothing in it declares a schema, a version or a column list. The shape of a row is the schema. 10 rows carry 5 fields: status, url, file, bytes and rid. 11 rows carry 2 fields: status and error. 1 row carries 2 different ones: url and file. That is 3 shapes across 22 rows, and the shape alone tells you which half of the run a row came from before you read a single value in it.
The Half That Failed Is The Bigger Half
10 rows read done. 11 rows read still-reupload-failed, and every one of those carries the same 25-character error string, HTTP Error 400: Bad Request. Count the values on the failure side. 11 rows times 2 fields is 22 values, and between them sit 2 distinct strings. The entire failure half of this file is one sentence written 11 times. The failure count is the larger half of the log. 11 of 22 rows failed, all of them the same way, which is the cheapest failure to read and the easiest one to skim past. A log that kept only its successes would be 10 rows long and would describe the same shoot as a clean run.
Eleven Of Twelve And The Number That Is Missing
The 11 failed rows are also the only rows keyed by a filename. Their keys run 42 to 49 characters and each one ends .jpg. The 10 successful rows have keys of 12 to 18 characters. The 1 unlabelled row has the shortest key in the file at 6. The failed keys carry numbers, and they read 01, 02, 03, 04, 05, 06, 07, 08, 09, 11 and 12. Slot 10 is not in the file at all. It is not a failure, it is not a success, and it does not appear. So a 12-slot still list is represented by 11 reporting rows and 1 that the log never mentions once.
The Row With No Status
The first row of the file behaves differently from the other 21. Its key is hair_tuck_still. It is 6 characters, the shortest in the file, and it is the only record that carries no status field at all. It holds 2 fields and 256 characters: a url on the image host and a file path. That file basename is exactly one of the 11 failed keys, the one ending insert_hair_tuck.12V1.0.jpg, which sits at row 9 of the same file. So still 12 is in this log twice. Once as a 400 error at row 9. Once as the only unlabelled record, at row 1, holding a live image url and no verdict. The failure and the fix sit 8 rows apart inside the same 5,275 bytes, and only the row with no status says which of the two is the current one.
5,275 bytes. 22 records. 160 string values, 63 distinct.
Ten Rows Carry The Whole Weight
The 10 successful rows declare 18,194,412 bytes between them. The 11 failed rows declare nothing, because a failed row has no bytes to declare, and the unlabelled row declares nothing either. So every recorded byte in this file sits inside 45 per cent of its rows. The heaviest render is 2,530,080 bytes and the lightest is 1,284,321, a ratio of 1.97. The mean is 1,819,441 and the median is 1,775,598. Divide the 18,194,412 by all 22 records and you get 827,019, a number that describes no render in the file. Each of the 10 carries a 36-character request id and all 10 are distinct. All 10 of the file paths resolve on this disk. The 11 failed rows carry no path to resolve. The file also names 2 image services, 10 references to one and 1 to the other, so the still and the video did not come off the same endpoint.
What A Log Owes The Next Person
An asset log is a promise that the next person can tell what happened without asking. This one keeps that promise 10 times and breaks it 11. The 11 broken rows cost 825 characters of the file, 15.6 per cent of 5,275 bytes, and they are the half that carries the bad news. The probability that a pipeline log which counts only its successes ever catches a repeated failure is low, while the cost of writing the failure in the same shape as the success is 1 extra field. On 210 energy systems deployed across Africa and Asia, a unit was signed off only when the record, the serial and the site all resolved on the same day, and the failures were written into the same ledger, in the same columns, with the same date. That is not sentiment. It is the difference between a ledger and a leaflet. Count the failures in the same column as the successes, or the number you quote is a fraction of the work. Keep more of yourself, for longer.
Nothing declares a schema. The shape of the row is the schema.
The map is dead. Nobody told you.
Bali State of Mind is the survival guide for the collapse of everything you were taught to believe.
Beyond this book
Building the same thing somewhere else.
Julien Uhlig is available for advisory work, board seats and media appearances. Write to media@exventure.co.
The academy that trains the operators, across every company in the group, is EX Epic Academy - 25,000 applications, 25 seats per cohort, 210 alumni across 19 countries. academy.epicsolutiongroup.com
18-20 November. Online, Las Palmas, Bali.
Three days on what happens to work, capital and institutions when the map stops matching the ground. Seats are limited by cohort.
ex-aisummit.com →