After Keiths question about his backup drive, I took a look
at the prices. The prices are not suggestive "we should tell
the users to buy bigger disks". Don't do that.
I asked CoPilot to draw me a plot. As an example
of a couple of the items, these were a kind of "UnObtainium".
Just to show the advertising style of my computer store. These
are the top end of the graph.
WESTERN DIGITAL Red Pro 26TB Desktop Internal Hard Drives
$1,439.99
ELIGIBLE FOR FREE SHIPPING
Not Available for Order
WESTERN DIGITAL Red Pro 24TB Desktop Internal Hard Drives
$1,699.99
ELIGIBLE FOR FREE SHIPPING
Not Available for Order
So the answer I get from CoPilot, CoPilot does NOT draw me a picture :-)
Instead, it emits Python code to draw the plot.
It must have taken me 45 minutes to debug that code
(because I don't code in Python FFS :-) ). I found
a web page that debugs such code...
https://www.codeconvert.ai/python-code-checker?id=49e7e6e8-dd24-41c3-b9df-c351005c6fc9
I ran the code in WSL2, and that's why it is saving to /mnt/d/temp instead of D:\temp .
[Picture] xy_scatter_plot.png
https://imgur.com/a/bqVlfl3
https://postimg.cc/2qRjMcmm
Not that it's important, this is the code ("plotme.py"). python3 plotme.py
import matplotlib.pyplot as plt
import numpy as np
import os
# Ensure path exists
if not os.path.exists('/mnt/d/temp'):
os.makedirs('/mnt/d/temp')
# Data
x = np.array([2,4,4,6,8,10,12,14,16,18,20,22,24,26])
y = np.array([274.99,301.49,334.99,479.99,519.99,624.99,719.99,844.99,889.99,999.99,1109.99,1224.99,1699.99,1439.99])
plt.style.use('seaborn')
plt.figure(figsize=(10,6))
plt.scatter(x, y, color='blue', s=60)
plt.title('Storage Capacity vs Price')
plt.xlabel('Terabytes')
plt.ylabel('Dollars')
plt.grid(True)
plt.xticks(np.arange(min(x), max(x)+2, 2))
plt.yticks(np.arange(0, max(y)+300, 300))
output_path = '/mnt/d/temp/xy_scatter_plot.png'
plt.savefig(output_path, dpi=300, bbox_inches='tight')
print(f"Generated scatter plot and saved to {output_path}")
Now, in those 45 minutes, I could have booted the machine
with LibreOffice Calc on it, and done the graph there.
But where would be the fun in that.
This is our LLM-AI future. "Bake me a cake". "Um, here you go,
a bag of flour, a cup of water, some baking soda, stick that
in a pan in the oven and there's your cake, sir!".
You can see the graph is relatively linear, and the air breather
drives likely go up to 12TB, the ones bigger than that could be
Helium. But it doesn't seem to make that much difference to
price (except that disk prices have doubled between January
and July of 2026).
My fellow TechBros... you will be learning Python. It is
the language of the Gods, apparently.
Paul
You should plot Terabyte per dollar maybe?
x = np.array([2,4,4,
y = np.array([274.99,301.49,334.99,
On 07/17/2026 12:30 AM, Paul wrote:
x = np.array([2,4,4,
y = np.array([274.99,301.49,334.99,
?
Prices for the 2TB (HDD and SSD) and 4 TB(HDD) are lower than the above array numbers
ÿ2 TB internal HDD $70-130; $150-250 SSD
ÿ4 TB internal HDD $100-180
At the opposite end.
The referenced internal 26 TB is $1144(quite a bit less than $1699)
ÿ- WD Red Pro 26TB 7200 RPM 512MB Cache SATA 6.0Gb/s 3.5" HD OEM - WD260KFGX <https://www.newegg.com/western-digital-red-pro-wd260kfgx-26tb-enterprise-nas-hard-drives-7200-rpm/p/N82E16822234582?>
Given one store was the source of the prices ("consistency of dataset"),
the objective was to see the pricing pattern of the supplier (WD) peeking through.
In the past, supplier prices had an inflection point, and
users would plot up the numbers, to see if an inflection point
existed. For example, years ago, the 4TB drives were the
cheapest per TB.
The line shouldn't be perfectly straight, as air breathers
go up to 12TB now (that's due to the price of Helium and
the need to seal the larger drives), and the Helium ones
are higher capacity than that. Yet, the line still has an
overall straightness to it, which does not hint at the
air versus Helium break point.
Prices are all over the place.
Paul
| Sysop: | Jacob Catayoc |
|---|---|
| Location: | Pasay City, Metro Manila, Philippines |
| Users: | 4 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 496008:15:13 |
| Calls: | 178 |
| Files: | 605 |
| D/L today: |
7 files (18,398K bytes) |
| Messages: | 70,118 |