Link: Citation Needed [on array indexing in programming languages]
Mike Hoye's Citation Needed is ostensibly about the origins of zero-based array indexing in programming languages. But that's not really what it's about once Mike Hoye gets going; it's really about our field's attitude towards history, the consequences of that attitude, and the forces that drive it, including inaccessible papers. Even if you're indifferent to where zero-based array indexing comes from, that portion of the article is well worth reading and thinking about.
(I'm not going to quote any of it. Read the whole thing, as they say; it's not that long.)
PS: This is from 2013, so you might have read it already. If you aren't sure and don't remember it, read it again.
My new Linux machine for fall 2017 (planned)
My current home machine is about six years old now, and for a while I've been slowly planning a new PC. At this point my parts list is basically finalized and all that remains is the hard part, which is ordering things and perhaps assembling them. Who knows if I'll get around to doing that this year (although with the Christmas rush approaching fast, I'd better do that soon if I want to get everything before next year starts).
Because my office workstation is about as old as my home machine (and we have money), I'm probably going to try to update it to something very like this build as well.
After staring at a bunch of specifications of various things and trying to sort through reviews and commentary, this is my current parts list:
- Intel Core i7-8700
- I've decided that this time around I want
to get a relatively high end CPU.
I considered the i7-8700K, but I'm not going to overclock, the
i7-8700 has a 30 W lower TDP, and it's apparently only about .1
GHz slower in most situations, according to sources like the
frequency charts here
Also, the i7-8700's noticeably cheaper and probably more readily
I'm not considering AMD Ryzens at the moment for a number of reasons beyond the scope of this entry. The TDP for the higher end Ryzens is certainly part of it; the Ryzen 7 1700 is the first 65W TDP Ryzen, and its performance seems clearly below the i7-8700 in most respects.
- Asus PRIME Z370-A motherboard
- I know that picking a motherboard
is close to throwing darts, but Asus is my default motherboard
vendor and the Prime Z370-A has almost everything I want and very
little that I don't. Since I want onboard DisplayPort 1.2, my choice of motherboards is
more restricted than it looks, especially in these early days of
Z370-based motherboards. I'd like to get more than six SATA ports
and more than one USB-C USB 3.1 gen 2 port, but I'll take what I can get. I
can always add an expansion card later.
Because I want to be able to use the same build for my work machine, one of the additional constraints is that the motherboard has to be able to drive at least two displays at 1920x1200 @60Hz from onboard connectors. The Prime Z370-A will do this, and I consider it a feature that its specification page explicitly mentions that it supports up to 3 displays at once.
- 2x 16GB DDR4-2666MHz CL15 RAM
- Since I'm not overclocking, there's
not point in going with RAM that's clocked any faster (and it
looks like you can't get 16GB 2666 MHZ CL14 modules). With RAM
prices still depressingly high, I'll save adding yet more memory
for a hypothetical midlife upgrade.
Also, it's not like I'm going to do much with even 32 GB of RAM other
than feed it to ZFS's disk cache.
For a work build, I would like 64 GB but I can live with 32 GB. Sadly adding that extra 32 GB is quite costly, as RAM prices remain stubbornly and annoyingly high.
- A CPU cooler, probably a Cryorig H7
- I know that the i7-8700 comes
with a stock Intel CPU cooler, but I want a better one so that the
machine runs cooler. Possibly this is overkill, but then I've had
long-term CPU cooling issues at work
and I expect this machine to run for five or six years (or more) too.
- Fractal Design Define R5 case
- My case requirements are set by
wanting a not too big mid-tower case with at least two bays that can
take SSDs and four bays that can take 3.5" drives (and I'm fine if the
'SSD' bays are 3.5" bays). The Define R5 gets decent reviews. Much
like the motherboard, I'm sort of throwing darts here.
- EVGA BQ 500W power supply
- Once again I'm basically throwing darts with very little grounds for picking one option over another. 500 watts is overkill for this PC, even if I add a graphics card later, but I like having some headroom and it looks like decently rated lower wattage power supplies aren't that much cheaper. A well regarded alterative is the Corsair CX 450M, which is 50 watts less but has a five year warranty instead of a three year one.
Although it's tempting to shove an optical drive in the machine as well (and they're cheap), I'm going to try to resist the temptation. My excuse for putting an optical drive in the case would be that I wouldn't have six drives most of the time, so I'd usually have a SATA port spare for the optical drive.
I'll be moving all of my existing disks over from my current home machine (both the hard drives and the SSDs). A potential addition of or upgrade to NVME drives is another contemplated midlife upgrade.
This parts list is significantly more expensive than my 2011 machine. Without looking at detailed pricing information from 2011, my impression is that the CPU costs substantially more and the RAM costs a chunk more; it's possible that RAM prices per GB basically haven't moved since 2011 (although the RAM itself has gotten faster). Perhaps 2011 was essentially a minimum in PC costs and things have been going up since.
(To be fair, I'm almost certainly paying a premium for wanting a latest generation CPU and motherboard only a month or two after they've been introduced. And the Z370 chipset is intended to be the high-end chipset for this CPU series, with lower-end ones to be introduced later.)