Category: Tech

New PC build, finally

I missed updating last weekend due to reasons. Nothing really to update anyway.

This weekend however is a different matter, because after six years, I finally have a new PC.

The last time I built, I had settled on an ITX board and case because I was starting to fall out of love with the idea of having a mammoth PC capable of handling anything and everything. My build in 2011 (which I sadly do not seem to have the pictures for anymore) was in a large case, included multiple video cards in SLI, multiple hard drives, and a DVD burner. It was a nice build, but the case was also extremely heavy and the PC as a whole was capable of things that frankly I did not need it to be capable for. I don’t think I ever even burned any DVDs, for example.

So I went small in 2015 with the intent to focus on just the ability to play the occasional game. It served the purpose just fine, but building inside the Fractal Node 304 case was an absolute pain:

  • The case is deep rather than tall, with the mainboard and power supply essentially sitting right next to each other on the floor inside. The board’s SATA ports were facing out from the board right into the power supply, so I had to right-angle connectors and very carefully jam everything together in order to hook up the drives.
  • There was nowhere to cable manage anything, so I ended up with a rat’s nest of cables just hanging out in the area where you’re supposed to mount drives.
  • The board never quite managed booting off of an M.2 drive on a consistent basis; if I cold booted the machine I’d get a bluescreen, but soft resets afterwards would boot just fine.

Then in the intervening years since that build, what I needed out of a PC shifted again as I focused gaming more on consoles and computing more on Macs. That is to say, I didn’t need a PC at all except in the odd occasions where a Steam game was only available on Windows or I needed to do some development work.

So with all those in mind, after thinking about the Steam Deck for a few minutes and deciding I needed something a bit more general purpose, I settled on the following:

The Define Nano S case seemed to have an answer for everything I didn’t like about the Node 304. It’s still an ITX case, but it’s more of a traditional vertical design, so the mainboard and power supply are stacked vertically instead of sitting right next to each other. I’d say that solves the clearance issues I was having with SATA cables, but now the build doesn’t have SATA drives in it so that’s a moot point. But the case does have space for cable management around the back, so I can run things from the power supply behind the tray.

The higher core/thread count on the CPU vs. the Intel Core i5-6600 I used to have is greatly appreciated for the odd weekends when I need to do some development work or spin up some virtual machines for one reason or another. Turns out four cores/four threads just aren’t enough to go around. The Noctua cooler was easy enough to install, and even though the fan is a weird babyshit brown color, it’s going in a case with no windows so nobody can see it anyway.

And speaking of no windows, I’d just like to point out that PC components are getting awfully gaudy now. I built a PC back in 2002 that had a blue lamp on the inside of it, and the novelty of the thing wore off after a couple weeks. Now everything has RGB lighting on it; case fans, graphics cards, memory, mainboards, everything. Even the stock cooler that came with the CPU this time had RGB lighting. Maybe it’s just me getting old, but I really appreciate a solid black box that draws no attention to itself.

The graphics card is actually a holdover from the old build; GPU prices are still too high for me to stomach at the moment. My immediate plans for the PC involve the Final Fantasy Pixel Remasters and other games that run fine on older graphics cards, so the need there isn’t quite as dire.

Memory is actually a holdover as well; although I couldn’t solve CPU core count right away when I needed to do some dev work last summer, I could at least solve a lack of RAM by throwing as much as the old board would support at it. 32GB is already quite a lot even for what I was doing, so no plans to throw a 64GB kit in anytime soon.

The two M.2 drives are configured in RAID 0 so they present as a single 500GB drive to the OS. This seems somewhat finicky from what I’ve seen so far. If you don’t load the AMD raid drivers when you install Windows, the OS will instead see the drives individually and treat them as two separate drives. Then when you duck back into the BIOS later, instead of having your one RAID 0 array, you now have three RAID arrays – the one you intended to have, and two more that you didn’t intend to have. But once you sort out how to get everything working, it works. I’m still amused that we can have hard drives that are the size of a stick of gum and that we can mount directly onto the mainboard without needing to run cabling to them. That’s very helpful in keeping the build as clean as possible.

To combat the rat’s nest part of the equation, I opted for a fully modular power supply in this build. Now the only cabling in the case is what’s actually required… except for the second PCI-E lead on the cable used to plug in the GPU. That’s been neatly tucked away though.

At any rate, with the board out on the table and all components plugged in, we have a successful POST, as indicated by the solid white light in the bottom corner:

Doing everything out in the open first is better than mounting all the parts in the case and then discovering there’s a faulty component, or worse, a faulty board.

And here’s everything installed and cable managed into the new case.

Leave a Comment

Throw away your mask

Just kidding, don’t do that yet. Interesting but also not surprising that masks and staying remote has led to me not getting sick at all this year. Even with CDC guidance pointing in the other direction, I’m not entirely sure I’ll fully ditch masks; at least, not on public transit or around people who have kids.

I picked up one of the new iMacs yesterday. It’s very blue. At least, the back of it is. The front of it is more of a pastel blue with a white bezel, which has a completely different vibe. I don’t hate it, but if there was an option for a darker blue all the way around, I might go with that next time.

I went for the mid-range configuration, as I usually do. Go for the spec boosts from additional GPU, RAM, and IO, but leave the storage upgrades behind. Those tend to be expensive for what you get, and I simply don’t use bulk storage locally anymore.

Early impression is that the system is quite capable at doing what I need it to do. The speakers sound pretty good, considering the entire thing is as thin as it is. Better than what you get on an iPad or on most laptops. The screen’s nice, as they usually are. I don’t frequently use Windows 10 with a display larger than 1080p, but my experience has been that MacOS handles 4K-and-higher displays much more uniformly. (That’s to say nothing of the absolute circus that Windows 10 itself is; why, after six years, are some settings still in the Control Panel and others in the Settings app?)

Included in the box were a keyboard and mouse that matched the color of the computer itself. I can take or leave a Magic Mouse – I don’t particularly get a lot of use out of the touch-sensitive surface, and having the charging port underneath the mouse so you can’t charge it and use it as the same time is a pants-on-head-stupid idea that I wish Apple would fix. But the keyboard is nice; it’s comfortable to type on, and it includes a Touch ID button for faster authentication. One of these years, Apple will ship Macs with FaceID to bring MacOS to parity with Windows Hello, but it doesn’t seem like it’s high on their list of priorities.

The translation layer Apple provides to support x86 applications on the new M1 chip is actually pretty crazy. When you try to run an x86 app for the first time, MacOS downloads Rosetta and then uses that to recompile the x86 app to run on the M1 chip. Considering this was a wholesale CPU architecture change, I expected there to be hiccups among the stuff I use, but there simply haven’t been.

As I mentioned in a previous post, I occasionally play Rocksmith. The Mac build distributed via Steam works perfectly fine on M1, and although I’m usually focusing on other things when I’m playing (like staring at the fretboard of my bass), I’m hard-pressed to notice performance issues with the graphics, stuttering audio, etc. – the game simply runs as if it was targeted for the new platform to begin with.

I haven’t tried any other games yet. I’d expect the Good Old Games distro of SimCity 2000 that I still occasionally play to work fine. Supposedly Final Fantasy 14 is serviceable as well. However, I’m currently struggling to come up with a reason to play that on the Mac when the PS5 is in the same room, giving me much better hardware and a much larger screen to play on.

Long story short, Apple did a good job with building a complete package that serves the purposes they think they need to serve, and it seems clear to me that the tight integration and focused set of use cases are things that will be to their advantage for quite some time.

Windows (and Linux, to be sure) are designed to play to broader sets of hardware configs based on general-purpose components. Fifteen years ago, I would have identified the lack of AAA-level PC gaming as a weakness for the Mac platform; but then again, if I’m doing all my gaming on consoles and not even maintaining a PC for PC gaming, do I care? Probably not, right? Eliminating that checkbox from the list of things I need a computer I buy to support means I can look at other options that can potentially serve other purposes even more effectively.

And the bonus is I don’t have to subject myself to the vagaries of the interplay between an operating system I don’t particularly like and the sheer number of hardware configurations it needs to support.

If only 2003 me could see me today…

Leave a Comment

Development Diaries – Entry 1

A lot has changed in web development in the last twenty years. Prepackaged goodies like jQuery and Bootstrap speed development of the look and feel of your website. The HTML standard has evolved over the years, allowing webpages to serve vastly different kinds of content that years ago would have been impossible without plugins. And then there are content management systems, which do what they say on the tin.

Some things stay the same though, like the need to timestamp your stuff. Every Facebook post, every Tweet, every article on your favorite news site, they all have the date and time on them so you have an idea of how fresh the content is. And so did every one of my web pages back then. The implementation was certainly different – whereas now everything’s a record or a document in a database that has a timestamp associated with it, back then I was working with static HTML files with no content management. So if I wanted to say when a file had been updated, I had to do it manually. That’s assuming I even remembered to do it at all.

Rather than do it the analog way, I looked at alternatives. Javascript was the first attempt:

document.write(document.lastModified);

But this presented a problem – technically, writing the last modified date to the document is itself a modification of the document, so the result is always the date and time that the browser renders the page. Useful, but not informative.

Then I looked at server-side ideas, specifically CGI scripting. It isn’t terribly complex, and writing a program in C to power a website in 2017 would be a pretty hilarious thing to do:

void getFileCreationTime(char *path) {
    struct stat attr;
    stat(path, &attr);
    printf("Last modified time: %s", ctime(&attr.st_mtime));
}
            

But it’s overkill, and I also don’t know C well enough to go down that path without spending a bunch of time looking for help online.

So, I found another option that gives me the server-side capability without writing and maintaining code: server side includes!

<!--#echo var="LAST_MODIFIED" -->

It’s a single tag, it does exactly what I want it to… but with one hitch: the date is reported in a time zone local to the server, and I’d reeeeeeally rather it report the time in GMT instead. Just a preference of mine. SSI tags don’t give me that option out of the box, but I can go back to my first attempt: Javascript can read the output from the SSI tag, parse the date, and spit it back out the way I want it to!

function lastUpdate(dateTime)
    {
        var updated = new Date(dateTime);
        return "Last updated: " + updated.toUTCString();
    }

document.write(lastUpdate('<!--#echo var="LAST_MODIFIED" -->'));
            

The result is what I want, a timestamp that automatically updates itself when I make a change to an HTML file, and reports the time in the time zone I want it reported in. Not bad!

[Historical note 2021-03-31: Publish date approximated]

Leave a Comment

New Build (Part Deux)

Not “tomorrow” anymore, but here’s more.

The power supply – a beast by yesterday’s standards, but these days 750 watts seems almost ordinary. Nice thing about it is that it’s modular. Power supplies used to have a mess of cables coming out the back, and if you didn’t use them all you’d have to bundle the remainder up or find some place for them to go. Now, you use only what you need and store the rest in the box for later.

Incidentally, here is the bag all the cables came in.

The power supply, mounted in the bottom of the case. Another sign of the times – power supplies used to be mounted on top. The way air flows through a case, by the time it reaches the top-mounted power supply, it’s already fairly well-heated, and power supplies generate a fair amount of heat themselves. Now when warm air rises, it simply exhausts out the back.

Speaking of airflow and temperatures, why did I remove this massive fan from the top of the case? We’ll see in awhile.

ASUS P8Z68-V PRO motherboard. More than adequate for folks who don’t classify as extremely high-end, but not bargain barrel stuff either.

Serial ATA ports. This board supports adding eight hard drives (or seven hard drives and a DVD burner, or some other combination of the two), so it’s good for some of the more exotic configurations such as RAID.

The CPU socket (center) and RAM slots (lower-right).

The input and output ports that will be exposed on the back of the case. With onboard video, audio, networking, USB, and even bluetooth, it’s possible to run the entire setup just through the board without any extras. But where’s the fun in that?

The CPU socket, exposed and ready for installation. The gate folds back down and secures the CPU in place. One interesting thing about this particular socket is the pins. Normally the pins protrude from the bottom of the CPU and meet contacts in the socket, but here the pins come up from out of the socket and meet contacts on the CPU.

The underside of the CPU. This is an Intel Core i5-2500K. Like the motherboard, satisfactory for most folks who don’t need to be on the bleeding edge (and don’t mind cutting $100 here and there off of the price of their new computer).

The heat spreaders on these sticks of memory are entirely too aggressive-looking for a part that will never be seen while it’s in use. This is 16GB of memory. Quite a lot, if you think about it. It wasn’t that long ago that you couldn’t even find hard drives this big.

The CPU and memory are installed and ready to work.

This is a Corsair H100 CPU cooler. CPUs generate heat, and liquid cools better than air, which makes this a very interesting idea. The block sits above the CPU, transporting heat to the radiator, which is then blown off – through the top of the case – by a pair of fans. After a few days in service, I can say this thing does a really fantastic job of keeping the CPU cool when I put it through the paces.

The H100, installed.

The video card is installed. In the lower right (almost cut off) you can see the hard drives mounted in the bottom cage. I had three total – a solid state drive for Windows and some bare essentials, and two traditional drives for bulk storage. The SSD’s advantage is that it is much faster and much quieter than its elder siblings, but the drawback is that it’s significantly more expensive. As technology continues to advance, the older drives will probably no longer be needed by regular folks.

Here’s a shot of the computer, finally on its feet, with all the components installed and cabling run. The nice thing about this case is that the cutouts to the right and underneath the motherboard allow you to run cabling in such a way that it only exposes itself right in front of where you need to plug it in. This allows air to move through the case with fewer obstructions.

For reference, this is how the inside of my old computer looked. The case is much smaller and didn’t have many of the same amenities as the newer one does, so cabling kind of had to go wherever you could put it. That’s not to say the computer didn’t work, it was just a real pain to service and clean.

Leave a Comment

New Build (Part 1 of several)

It’s been two and a half years since I last built a new PC. At the time I speculated that, having beefed up quite a bit on the components, I could get three years out of it. Turns out I was half-right – it’s still in service now and would easily make it to the three-year mark, but it’ll probably blow right past that. It handled Deus Ex: Human Revolution and a couple of other newer games this year without too much trouble, and handles the demands I put on it for work just fine as well.

Still, I’m in a position to be able to upgrade and can conceivably play the “graduation/Christmas present to myself” card right now, so here we are. The first shipment showed up in the mail over the weekend, with the remainder on its way in tomorrow. So here are a few pictures of the case to start.

A look at the front and left panel of the case. I picked this one because it’s one of the few cases left in the world that doesn’t look like a UFO just landed. No multicolored lights, no weird designs. Just solid black with straight edges. It’s also lighter than I expected, too – much more so than the Antec Sonata 550 I used in 2009. The Sonata itself was also pretty understated – solid colors, nothing flashy – but it’s also not big enough on the inside for the newer full-sized graphics cards.

The right panel and rear. Not a huge fan of the window in the side of the case, but it’s not that big of a deal. Notice the latches on the top of the panel. The case uses a latching system to keep the panels on, rather than screws. That makes it a lot easier to get in for maintenance. On the rear are a couple holes for water cooling systems, a hole in the top-left for running USB 3.0 cables out of (in case you can’t plug some front-panel USB 3.0 ports directly in on the board), and the power supply is mounted at the bottom for better control over the heat.

Here’s the case with the panel pulled off. There is an insane amount of room in here, so everything will go in comfortably. There is a generous-sized cutout for backplates in case someone plans to install a heftier heatsink-fan over the CPU, along with a number of circular rubber cutouts used for threading cabling out of the way of airflow. (In other words, the cable from the hard drive to the motherboard would disappear behind the panel and pop up in the cutout closest to where it would go on the board.)

A closeup on the cutouts. Some of them will only be available when you use smaller motherboards (notice the posts sticking up in the middle, that’s where the board would be mounted), but there are still plenty to go around for the larger varieties.

A closeup on the 3.5″ drive bays. Each tray is flexible and snaps around the drive, then slides and locks into the bay. Between this and the latches on the outside, Corsair did a really nice job of making most builds with this case a screwless effort. Having said that, for 2.5″ drives, particularly solid state drives, there are a couple of screw holes that you must use to secure them. The top cage can be relocated in case you need the extra clearance for a really long expansion card.

The front and top panels. The front panel flips down to reveal a reset switch, firewire, two USB 2.0 ports, headphone and microphone jacks, and two USB 3.0 ports. The cabling behind the USB 3.0 ports is long enough to go out the back of the case (through that hole in the upper-left) to be plugged into the rear USB 3.0 ports on the motherboards in the event that the board doesn’t have a lead you can plug directly into. The top panel slides back to reveal SATA connectivity. You can either plug a 2.5″ drive in, or the notch on the left side pushes down to support a 3.5″ drive as well. This may come in handy as a dock.

More to come tomorrow.

Leave a Comment