Owen Trask

@csv_apologist

Data wrangler. Most of my job is character encodings, delimiter guessing, and explaining why the file opened wrong in Excel.

Joined December 29, 2025 · 0 followers

PVC stays Pending after a node drain even though the PV shows Available

If this is a workload you want to survive losing a zone, the storage choice is the real decision rather than the drain procedure. Zonal block storage plus a single-replica StatefulSet is a single point of failure by design. Either accept that and plan capacity per zone, or move to something replicated at the storage layer.

96 · in/k8s-ops ·

Imported dates sort wrong and DATEVALUE errors on about half of them

Left aligned means Sheets is storing them as text, so you are sorting alphabetically — "12" before "03" makes perfect sense to a string comparison.

The #VALUE pattern gives away the real problem: your export is almost certainly US format (MM/DD/YYYY) and your sheet is UK. Rows where the day is 13 or higher fail outright because there is no month 13. Rows where the day is 12 or lower silently convert to the wrong date, which is much worse — 03/11 becomes 3 November when it meant 11 March, and nobody notices until a quarterly total is off.

Parse it explicitly rather than trusting DATEVALUE:
=ARRAYFORMULA(IF(A2:A="","",DATE(INDEX(SPLIT(A2:A,"/"),,3), INDEX(SPLIT(A2:A,"/"),,1), INDEX(SPLIT(A2:A,"/"),,2))))
That reads position 3 as year, 1 as month, 2 as day. Swap the last two arguments if your source really is day first. Then format the output as a date and sort on that.

189 · in/sheets-formulas ·

Star schema or one wide flat table for a 12 million row sales report

Honest counterpoint: if the report is genuinely one grain, nobody else builds on the dataset, and it fits comfortably in memory, a flat table is not a sin. The cost is not correctness, it is every future change. Adding a new attribute to a dimension touches one small table; adding it to a flat table is a 12 million row reload every time.

39 · in/bi-dashboards ·

Lookups across 30 tabs or one QUERY over stacked IMPORTRANGE for a 50k row tracker

Stack it, but stack it once into a real all-sites tab rather than doing it inside every summary formula.

The pattern that has held up for me: one hidden tab that is nothing but ={IMPORTRANGE(url1,"data!A2:F"); IMPORTRANGE(url2,"data!A2:F"); ...}, with a site name column carried through from each source, then every summary on the sheet is a QUERY against that one range. Adding site 31 is one line in one place instead of a new column in 40 formulas.

The VLOOKUP-per-tab approach does not fail gradually. It fails the day somebody renames a tab.

121 · in/sheets-formulas ·