Category Archives: Work

How to build a true Solidworks Workstation for about $300.

I’ve written before about building the Cheapest Solidworks Workstation.  Things have changed a lot since then.  Firstly, my budget has increased slightly.  Secondly, my knowledge has increased greatly.  In that post I claimed that modern Intel i5 and AMD FX chips could handle Solidworks.  They will, but not in the best way.

In another post, I describe some things I learned about error-checking components and the “big picture” concept behind true workstations.  In short, if you’re serious about using Solidworks (or some other machine-crushing software), you need a true workstation.  The good news is that it can be had for a reasonable amount of money.  We’re talking $300-$600 for something that won’t disappoint.

The bad news is that you’re going to have to shop, and you may have to get your hands dirty.  I’m going to share with you the “Workstation Algorithm”, wherein we try to get the best performing, true Workstation for the least cost (not including the cost of your time).  If you’re like me, you spend a lot of time looking before you leap.  If you’re REALLY like me, you look and look and finally choose not to leap at all.

Let’s leap, though.  I’m serious about building my own rig and doing CAD work freelance.  I’m even serious about helping other people get CAD rigs.  CAD is the future.  3D printing is here, and it’s getting ever better and ever cheaper.  I hope my kids will be designing their own toys.  It’s totally possible.

First off, you’re going to need some shopping music.  Might I recommend this Pandora station, or perhaps this album?  (I just did.)

Second, you’re going to need to understand what we’re looking for:

Shopping List
Processors/Cooling System  (Notice the plurality?  You need more than one.)
Dual Socket Motherboard
ECC Memory
Graphics Card
Power Supply
Case

I’ll leave the monitor/keyboard/mouse situation up to you.  You know what you like, and you can find used monitors for reasonable prices at several places online.

Now, there are multiple approaches to this endeavor.  We’re going to take the hard road first, because we’re math people and math people always do things the hard way first and then learn the shortcuts that make them say to themselves, “WHY DID I JUST SUFFER THROUGH ALL OF THAT HARD WORK WHEN I COULD HAVE JUST _______?”  (Everyone does that, right?)

Approach 1: Build your workstation from piece parts!

Alright, I know that some of you are scrolling right past this section.  You might just want the easy way out, or you might have a fear of tinkering with computers.  No matter how you go about this, to get the best workstation for the lowest price, you’re going to have to open a computer case and replace some things.  Later on, we’ll buy an existing workstation and upgrade it to “modern standards of performance.”  Now, if you can’t handle that, feel free to bail on this whole project.  It’s cool.  Just go.  You don’t want it bad enough.

1. Processors (YES, TWO OR MORE PROCESSORS)

If you read the other posts about this project, you know that you need processors that know what to do with error-checking RAM.  In other words, you know that you need actual workstation/server processors.  Intel makes the Xeon line, and AMD makes the Opteron line.  I’ve already abandoned AMD, because I found it difficult to find Operton processors with the performance I needed at the price I wanted.

So, in this post we’re basically only going to shop for Xeon processors.  First, open up http://www.cpubenchmark.net/multi_cpu.html.  You’re looking at a list of benchmarked systems running multiple processors.  At the top of the list, you’ll see the latest and greatest processors smashing through benchmarks with ratings somewhere around 30,000.  You can’t afford these processors.  On the right side of the list you’ll notice the prices.  The price shown is the total for two processors.

As a starting point, the workstation I use at work ranks around 8,000 on the benchmark list.  It runs Solidworks 2014 while I have tons of other stuff going on.  I max out all of the cores when I render, and rendering takes a while.  So, start your search for a set of processors around the 8,000 range.  You’ll quickly notice that even some of these are expensive as hell.  Don’t worry.  These processors are typically 3-5 years old, and can be found used for reasonable prices.  However, YOU ARE GOING TO HAVE TO DO SOME LEG WORK to find out what can be had for what price.

But, because I’m a pretty cool guy, who doesn’t afraid of anythin, I’ll do a little bit of the work for you.  The table below shows an ESTIMATED cost for 2ea of the processor described, the benchmark listed at cpubenchmark.net, and the socket.  (All values are as of 5/31/15, and are not guaranteed to be accurate.)  The socket is important because it will determine what motherboard you can use.  Please be aware: You need a workstation motherboard, not a server motherboard.  This is important when you go shopping for motherboards, which is coming up next.  Just to jump ahead some: The X7350 at the top of the list uses Socket 604.  This is an old, old processor, and it supports old, old technology.  The RAM you need will be relatively slow, the motherboard will be hard to find, etc.  It looks like an amazing deal, but it’s likely to be more trouble than its worth.

Cooling

You will need a cooling system for these processors!  Browse your favorite computer retailer’s website for Heatsink/fan combinations that are compatible with the processor’s socket.  Also, keep in mind form-factor.  Just for example, an LGA1366 heatsink with fan costs about $30.

Processor prices are round-about, and do not include heat sinks/cooling systems.

Processor Socket Price (for 2) Benchmark Benchmark/$ Link
X7350 @ 2.93GHz 604 $25.00 9,238 369.5 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=X7350&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5560 @ 2.80GHz LGA1366 $40.00 9515 237.9 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=X5560&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5550 @ 2.67GHz LGA1366 $40.00 9,233 230.8 http://www.amazon.com/s/ref=as_li_ss_tl?_encoding=UTF8&camp=1789&creative=390957&field-keywords=X5550&linkCode=ur2&rh=n%3A172282%2Cn%3A541966%2Cn%3A193870011%2Cn%3A229189%2Ck%3AX5550&tag=wharyolitorin-20&url=node%3D229189&linkId=MVNV5T2CW7D35AP7
E5620 @ 2.40GHz LGA1366 $40.00 8,286 207.2 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=E5620&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
E5540 @ 2.53GHz LGA1366 $40.00 8,079 202.0 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=E5540&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5570 @ 2.93GHz LGA1366 $55.90 9696 173.5 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=X5570&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5460 @ 3.16GHz LGA771 $60.00 8,158 136.0 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=X5460&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
E5640 @ 2.67GHz LGA1366 $80.00 8,897 111.2 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=e5640&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5647 @ 2.93GHz LGA1366 $100.00 10,132 101.3 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=x5647&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
E5630 @ 2.53GHz LGA1366 $90.00 8,666 96.3 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=e5630&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
W5590 @ 3.33GHz LGA1366 $120.00 10,646 88.7 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=w5590&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
E5649 @ 2.53GHz LGA1366 $130.00 10,709 82.4 http://www.amazon.com/s/ref=as_li_ss_tl?_encoding=UTF8&camp=1789&creative=390957&field-keywords=E5649&linkCode=ur2&rh=n%3A172282%2Cn%3A541966%2Cn%3A193870011%2Cn%3A229189%2Ck%3AE5649&tag=wharyolitorin-20&url=node%3D229189&linkId=UQUZZQB5Z7R4UNOM
L5640 @ 2.27GHz LGA1366 $133.98 10341 77.2 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=l5640&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5650 @ 2.67GHz LGA1366 $158.00 11687 74.0 http://www.amazon.com/s/ref=as_li_ss_tl?_encoding=UTF8&bbn=541966&camp=1789&creative=390957&keywords=x5650&linkCode=ur2&qid=1433103905&rh=n%3A172282%2Cn%3A541966%2Ck%3Ax5650%2Cp_n_feature_four_browse-bin%3A1264445011&sort=price-asc-rank&tag=wharyolitorin-20&linkId=GGFO3FSCM76I6AI6
X5482 @ 3.20GHz LGA771 $120.00 8,578 71.5 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=x5482&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
W5580 @ 3.20GHz LGA1366 $140.00 8,845 63.2 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=w5580&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
L5639 @ 2.13GHz LGA1366 $170.00 9,697 57.0 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=l5639&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5667 @ 3.07GHz LGA1366 $160.00 8,809 55.1 http://www.amazon.com/s/ref=sr_st_price-asc-rank?keywords=X5667&rh=n%3A172282%2Cn%3A541966%2Cn%3A193870011%2Cn%3A229189%2Ck%3AX5667&qid=1433107777&sort=price-asc-rank
X5470 @ 3.33GHz LGA771 $160.00 8,651 54.1 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=x5470&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
L5638 @ 2.00GHz LGA1366 $180.00 8,930 49.6 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=l5638&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X5492 @ 3.40GHz LGA771 $200.00 9,099 45.5 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=x5492&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
X7560 @ 2.27GHz LGA1567 $400.00 11,631 29.1 http://www.amazon.com/s/ref=as_li_ss_tl?_encoding=UTF8&camp=1789&creative=390957&keywords=X7560&linkCode=ur2&qid=1433106119&rh=n%3A172282%2Cn%3A541966%2Cn%3A193870011%2Cn%3A229189%2Ck%3AX7560&sort=price-asc-rank&tag=wharyolitorin-20&linkId=HXNRCDNHAXLGFOTS
E5645 @ 2.40GHz LGA1366 $400.00 10,515 26.3 http://www.amazon.com/s/ref=as_li_ss_tl?_encoding=UTF8&camp=1789&creative=390957&keywords=E5645&linkCode=ur2&qid=1433106442&rh=n%3A172282%2Cn%3A541966%2Cn%3A193870011%2Cn%3A229189%2Ck%3AE5645&sort=price-asc-rank&tag=wharyolitorin-20&linkId=DUMKSYWINFAUORF4
E5-2609 v2 @ 2.50GHz LGA2011 $450.00 8,705 19.3 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=e5-2609+v2&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg

2. Motherboard

So, you did some leg work and found a processor that is going to kick Solidworks in the pants.  You’re far from done.  The next step is to find a workstation motherboard that will actually take that processor.  As mentioned before the processor table, you need to take the Socket into account.  The sockets in the table in order of oldest to newest: 604, LGA771, LGA1366, LGA2011 (v1-v3).  Now, you need to make a decision.  It’s a tough one.  This motherboard is going to determine the overall performance of your entire system.

Older technology is just slower.  Moore’s law implies that processing power improves exponentially.  Topping out your budget will help ensure that the system you build is fortified against future performance demands.  The list of processors clearly shows newer technology that is slower than older technology.  Don’t let that fool you.  The newer, slower tech is low-end compared to the older, faster tech.  The main difference is that you could upgrade your Socket 2011 CPU later on to something that will make your top-end LGA1366 feel slow.  You wouldn’t be building a workstation if you weren’t planning on making money.  So, plan ahead.  It may be expensive and “slow” (relative to its benchmark neighbors), but in a year when you need more power, you could drop another $200-$400 and possibly double your power on the same rig.

The motherboard is also going to determine how much RAM you can cram in, how many video cards you can use, and how big those cards can be.  The processor also plays a part in the RAM, as the RAM’s speed will be limited by the processor’s bus speed.  Furthermore, DDR ram has gone through four generations of improvements.  Your processor/motherboard combination is going to determine which generation can you use.

So, let’s get on to shopping for motherboards.  Here’s what to search for: “Dual Socket XXXXXX Workstation Motherboard”.  Fill in “XXXXXX” with whatever socket your processor is.  Oh, hell, I’ll just do it for you:

Socket 604
Socket LGA771
Socket LGA1366
Socket LGA2011 (be careful here, LGA2011 went through 3 versions, and the -0, -1 and v3 processors require -0, -1, and v3 sockets, respectively.  Check your processor before committing!)

You’re going to be shocked by the cost of motherboards.  This is where you step back and say, “Well, maybe older tech is okay, because it’s still pretty fast and relatively cheap!”  And, you’re right to say that.  LGA1366 motherboards can be had for about $90.  If you chose the cheapest LGA1366 processors (with two $30 heat sinks), your total thus far would be about $190 and your benchmark rating could be about 9,000.  For comparison, a brand new AMD FX8350 costs about $165 alone (no motherboard), and has a benchmark rating of 8,982 at the time of this writing.  We’re winning!

ECC Memory

Alright, now for the kicker.  ECC Memory isn’t cheap.  It can also be kind-of hard to find.  You need to know the maximum bus speed that your chosen processor can handle.  You may have to google and dig for it.  You also need to know the pin count of the slots on your motherboard.  Since you’re support two processors, each one has a set of memory slots.  That implies that you need to supply memory in pairs, not just one big single stick.

You’ll be happy to know that it gets more complicated.  Some memory is buffered, and some is not buffered.  Some motherboards can take either.  You really only need buffered memory if you’re planning to use a ridiculous amount.  For example, some motherboard can handle 24GB of un-buffered memory on its own.  BUT!  If you use buffered memory, the motherboard could handle 96GB OF MEMORY.  Imagine needing that.  You won’t.  Don’t think too hard about it.

When you’re searching, many listings will say “Non-ECC”, which is both helpful and annoying as hell.  It’s annoying, because if you wanted non-ECC memory, you would just search for “memory” instead of “ECC memory”.  Anyway, just include “-Non-ECC” into the search and jog on.  Oh, you’re too lazy?  Argh!  Jeez!  Here, I’ll just do it for you again:

DDR2 ECC (old stuff)
DDR3 ECC (this is where you’re likely to find what you need)
DDR4 ECC (you won’t need this, and the price is ridiculous)

Remember, Solidworks is a memory hog.  You want between 12-16GB as a baseline.  That’s easily $120 worth of DDR3, which is almost as much as you’re spending on the processors and cooling.  But, it’s super important to ensure that everything runs smoothly, and you don’t waste time waiting for Solidworks to …work.  (Keeping tabs?  We’re at roughly $400 for a workstation at this point.  But, I said $300 in the title.  Don’t worry, that comes later.)

So, why do you need ECC memory again?  Because, you’re going to be using Solidworks, and you’re going to have clients.  The clients want the job done fast, and they want it done right.  You want to do some finite element analysis to make sure your parts don’t break and kill someone.  So, you set up a really thorough simulation and set it to run.  It runs… FOR HOURS.  So, you go to sleep.  A typical desktop processor/memory combination might come across some corrupt data and plow through it, crashing Solidworks, the simulation, maybe the entire computer.  You lose everything.  You have to restart the simulation, but will it fail again?  ECC memory helps prevent that.  It’s checking for corrupt data as the data is accessed.  It can even correct corrupt data is some instances.  You want this.  This will ultimately save you time and money, in the long run.  Just trust me.

Graphics Card(s)

You don’t need two graphics cards.  But, you do need a workstation-quality graphics card.  Remember the last paragraph the of the last section on ECC memory?  That’s why.  These cards aren’t meant for gaming, and they won’t do well on typical gaming benchmarks.  They’re meant heaving data around at incredible rates.  So, you’re already buying old technology, and the strategy here is the same.  Recall the very first blog post about cheap workstations:  Solidworks is CPU-heavy and GPU-light.  (I use the word “light” very loosely.)  The GPU will keep you moving through the complex geometry as its being continuously rendered, but the CPU is going to be doing the brunt of the work.  My suggestion:  Go to http://www.videocardbenchmark.net/mid_range_gpus.html and look for the Quadro FX or AMD Firepro series in the 600-800 benchmark range.  What?  Are you kidding me?  You want me to list them for you?  …  Fine:

GPU Price Benchmark Benchmark/$ Link
Quadro FX 4600 $30.00 608 20.3 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=Quadro+FX+4600&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
Quadro 600 $35.00 681 19.5 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=Quadro+600&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
Quadro FX 3700 $35.00 639 18.3 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=Quadro+FX+3700&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg
Quadro FX 5600 $100.00 699 7.0 http://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_ff3=9&pub=5575127758&toolid=10001&campid=5337702912&customid=&icep_uq=Quadro+FX+5600&icep_sellerId=&icep_ex_kw=&icep_sortBy=12&icep_catId=&icep_minPrice=&icep_maxPrice=&ipn=psmain&icep_vectorid=229466&kwid=902099&mtid=824&kw=lg

Surprisingly, they can be had very cheap.  The reason is because lots of companies lease their workstations and servers.  Then, when the lease is up, the stuff gets sold off to the highest bidder.  The market is flooded with these components, so their price is super low.  Honestly, you don’t need to over-think this aspect.  $35 for a graphics card is a steal, no matter which one you choose.

Power Supply

Workstations use a lot of power.  They use server CPUs, heavy-duty GPUs, heavy-duty ECC memory, and require a fair amount of cooling.  You need a power supply that matches.  To be safe, don’t get anything less than 800W.  But, to be safer, dig up the specs on the motherboard you’ve chosen and get the power supply specified by the manufacturer.  You can’t miss it.  This can be made even easier, which we’ll explore a little bit later.

Case

Alright.  The ruse must end.  You’re going to start searching for workstation cases, and you’re going to find that they are rather hard to find (but not impossible).  This doesn’t make a lot of sense, because their innards are all over the place.  So, why not just buy an old, off-lease workstation and use the knowledge gained in the previous sections to perform upgrades?  This will be the easiest path to take.  It’s also probably cheaper, as no one will have to be paid to remove all those components from various systems.  But, what workstation to buy?

Modifying an off-lease Workstation

Well, you have only a few big suppliers of workstations.  HP, Dell, and Lenovo.  I’m biased toward HP, because that’s what I use at work.  HP offered the Z600 and Z800 with dual sockets.  I honestly don’t know what Dell and Lenovo offer, so I’m not going to pretend like I can point you in the right direction there.  However, the strategy here is to find a workstation with lackluster specs, and verify that it can be upgraded to meet your needs.  In the case of the Z600 and Z800, some of them only have one CPU, leaving one socket empty.  In some other cases, the existing CPU is worth keeping, and then you’re only on the hook for one CPU and the ECC memory.  The money saved can be spent upgrading the hard disk to SSD, which Solidworks will LOVE.

For example, I’m looking at an ebay listing for “HP Workstation Z800 1x Quad Core X5550 2.67GHz 8GB RAM 4x 250GB HDD FX1800 768MB”.  Its starting bid is $200.  The Xeon X5550 benchmarks at 5398/ The Quadro FX1800 benchmarks at 595.  Added another X5550 and heat sink for about $50, and you’re now benchmarking at 9,233.  Throw another 8GB of ram at the new processor for $50, and you’ve got your Solidworks rig for about $300, assuming no one bids the base unit up.

So, to get the absolute lowest price workstation that can REALLY handle Solidworks, you need to know some stuff.  The information I’ve provided is really just a road map.  There are lot of details you need to discover on your own in order to make this work.  The people who skipped this paragraph will run off and make some uninformed decisions, and possibly end up with components that don’t work together.  But, you won’t.  You’re diligent, persistent, and determined.  You’re going to take everything I said here with a grain of salt, and assume that I screwed up somewhere and told you something wrong.  (Don’t feel guilty, I’m going to assume that as well.)

Go forth, build a workstation, do CAD.

Advertisements

On Confidence and Experience

I learn by doing.  My family bought a Nintendo Entertainment System when I was maybe 4 or 5 years old.  I didn’t care to read the instructions.  I just plugged it in and started playing, bumping into everything and testing everything until something happened.  I recall Who Framed Roger Rabbit being particularly challenging.  That same methodology has been with me ever since.

NES-Console-Set

This is both good and bad.  I was validated last week by my Microprocessor Apps professor.  A student asked him a “what if” question regarding a program in assembly.  He took it as an opportunity to show a few different approaches.  Of course, we found limitations in the platform this way.  We were bumping into everything.  Then, finally, after re-writing the code several times, we found a method that worked.  He then told us, “this is the process of engineering.”  You cannot be afraid of the many, many failures you will have.  You just have to keep pressing until you figure out what works.  In this way, my methodology is good.

Now, let me finish the rest of my original story.  I never finish a video game, except for a few.  This is because I get bored after I’ve bumped into the things and tested the buttons.  I don’t really care about the story.  I don’t marvel at the graphics.  (Let it be known, my favorite game of all time has 16-bit graphics.)  I just lose interest.  This is the bad part of my methodology.  Whether successful or not, when a project is nearing its logical end, I begin to loathe it.  I want to move on to something new.

Sometimes, though, I enjoy something so much that I’m inspired to improve upon it, or recreate it in my own way.  So, I started learning to program in Visual Basic around the age of 10.  Of course, my interest waned when I bumped into the limitations of my abilities and creativity.  At one point I managed to install Linux.  That forced me to purchase “C++ for Dummies”.  A few years later, Macromedia Flash was blowing up on the internet.  I picked it up and started learning the integrated scripting language ActionScript.  But, I spent most of that time animating instead of programming.  Toward the end of high school, I had the opportunity to take programming classes.  I honestly don’t remember all of the languages I studied.  I know there were at least three, but I only recall Visual Basic and Pascal.  (The reason I remember them is because the classes ended before lunch and most of us stayed in the room and played Quake 1 on the school’s LAN.)  Through all of this, I tried and tried to recreate my favorite video games using various languages.  Very few were successful.

I wasn’t until I was much older and much less busy that I finally programmed and published a full, working game.  Unfortunately, it was a Flash game.  Therefore, it enjoyed very limited success and very limited exposure.  It was also kind-of awful.  Still, I made money from it.  For the first time in my life, I had earned money for programming.  I immediately began working on an improved version.

Unfortunately, life got in the way.  My wife and I moved to a different city.  I started commuting long distances.  She lost her job.  We went into debt.  She regained a job.  We paid off the debt.  We coasted.  Then we both lost jobs.  Then we both got new jobs.  My commuting was greatly reduced.  Then, I picked up the game making again.

Unfortunately, at this time, Flash was going through transition.  Adobe had bought Macromedia and was redesigning ActionScript to be much more like java, in an attempt to make it more powerful.  This was a problem for me, because I didn’t have time to learn a new language.  (ActionScript 3.0 used an entirely new syntax.)  So, I used the older syntax that I was familiar with.  It was slower and less capable, so I had to learn how to optimize my code.  The scope of the new game was ridiculously complex relative to the scope of the first one.  I did it anyway.  I spent a few weeks making my own path-finding algorithm.  It wasn’t great, but it sort-of worked.  Then I spent a day implementing A* path-finding.  Both experiences taught me a great deal.  Then, school began to get tough.  So, the programming slowed to a crawl.

In short, I invested a lot of time and energy into a scripting language that ultimately failed.  (I know that Flash is still widely used, but it is rapidly being replaced by mobile apps and HTML5.)  Still, I learned a lot about programming during this time.  Beside algorithms and optimization, I learned that you can make money even if your product sucks.

Still, none of this gave me the confidence to take a job as a programmer.  Knowing the syntax of several languages doesn’t give you confidence.  Knowing the limitations doesn’t give you confidence.  Tiny “successes” don’t give you confidence.  What gives you confidence is experience.  What gives you experience is work.  There are only two kinds of people who can give you work:  Those willing to take a chance on you, and yourself.

I have been fortunate in life.  Several people have been willing to take a chance on me.  I expressed interest in doing what they do, and they wanted to teach me.  But, they didn’t want to sit me in a lecture hall and profess the why and what-for of what they did.  They just wanted me to do it and learn as I went.  The first big opportunity like this that I snatched was at a defense contractor.  I had been working as an electromechanical assembler for about a year.  I had been put on hot projects that were halfway between development and launch.  Therefore, I had a lot of interaction with the engineers.  This interaction convinced me that I wanted to be an engineer.  I expressed interest to the right person at the right time, and was given an entry-level position.  I had only an Associates degree.

So, then I was part of manufacturing engineering.  If you’re unfamiliar with the various engineering fields, manufacturing engineers take design engineers’ drawings and turn them into real things.  Manufacturing engineers are tooling and process developers.  They procure and/or develop the tools for the job, they design manufacturing processes, and they train staff to actually perform the processes.  My entry-level job was essentially a support position for those engineers.  They let me play with all the new equipment.  Sometimes they let me develop tools.  A lot of the time they let me write procedures.  I wasn’t always successful.  Not everything I did was wonderful or exceptional.  Still, all of this experience gave me confidence that I could figure out most of the problems placed in front of me.  I was also fortunate to have a great mentor.  He seemed to know that I learned things the hard way, and wasn’t afraid to let me do it.  Of course, he offered guidance and support when needed.  It was invaluable.

Defense contracting began declining during the Great Recession. (See page 26)  There were massive layoffs.  I was caught in them, because my position was not an essential part of the process.  I wasn’t mad.  In all honesty, I was relieved.  I had been commuting for 2 hours every day.  This was an opportunity to get a job much closer to home and have more time for other things.

The confidence I had gained at that job lead me to the next one.  I actually interviewed for a manufacturing engineering position, but asked for too much money.  They told me that during the interview.  Fortunately for me, my resume was passed around to other departments.  It landed on the Director of R&D’s desk, and he called me in.  He wanted me as an intern, to do CAD and a little bit of design work.  Again, I was fortunate that someone wanted to take a chance on me.  I had no CAD experience, but I had read and interpreted dozens of drawings.  I was computer savvy.  I was studying engineering at a local university.  But, I asked for too much money again.  Maybe my confidence was a little too high?

It worked anyway.  I’ve now been there for nearly three years.  I went from the CAD internship to full-on product design.  Like I said, I’ve been fortunate.  Other than my direct manager, other people at the company have been willing to take a chance on me.  They’ve given me many opportunities to learn and grow.  It has been amazing.  I feel super-confident in my CAD abilities, which I learned entirely at this job under the supervision of several great mentors.

So, what’s the point?  Wasn’t I talking about programming earlier?  Yes.  I was.  Take note:  Both of those jobs required 40 hours per week.  I’ve been employed in these types of positions for a total of 6 years, now.  That’s roughly 12,000 hours of combined manufacturing/design experience.  Meanwhile, I’ve been programming on-and-off in various languages over a much longer period, but with far less consistency.  That self-teaching experience hasn’t given me the same confidence as my work experience.  That is in spite of the fact that I’ve been self-teaching for much longer.  But, in self-teaching, there is no consequence for absolute failure.  There is nothing to deliver.  There are no deadlines.  These are the reasons that self-teaching is bad.  However, self-teaching is also good because it allows you to explore and experiment.  You don’t fear failure, because the only failure in self-teaching is failing to learn something new.  You’re not afraid to take risks when self-teaching.

So, what’s next?  I’m studying Computer Engineering.  I want to design embedded systems.  I want to be an entrepreneur.  I want to know enough about the technical side of things that I can reasonably identify and ally myself with really talented, intelligent people in those fields.  I want to solve a problem that a lot of people need solved.  I want to tell them that I can solve it for them.  And, that brings me to the next big hurdle, after Computer Engineering: Communication.

Communication has always been a struggle for me.  I think it’s a struggle for a lot of people, actually.  By that, I mean that some people are really terrible communicators even though they speak often.  Still, some people are really terrible communicators because they speak so little.  That’s because communication is an art.  It requires practice (experience) to gain confidence.  I’ve had several opportunities in my career to communicate ideas and concepts to small groups of people.  If my programming and design experience is a plate of enchiladas, then my communication experience is a tiny dollop of sour cream.

Since my work doesn’t often require that I speak to groups, I have to self-teach.  This is good, because I can take risks, I set my own deadlines, and I explore a lot of different ideas.  Hence, I’m writing this blog.  This is how I’m building confidence in communicating.  I learn by doing.

On Self-Censorship

The internet is no place to be anonymous.  Your name and face is attached to everything you say.  You cannot guarantee that your sarcasm will translate through your prose.  People will read what you wrote and take it the wrong way.  You may not intend to offend anyone.  Some people are just easily offended.  I am not one of those people.

I can take criticism, cynicism, and obscenity at face value.  I may not agree with those things in certain contexts.  But, I am willing to let them happen.  To me, it is only speech.  Obscenity quickly loses its meaning and becomes white noise.  Cynicism is just a manifestation of doubt.  Criticism is the acknowledgement of differing opinion.  None of those things are particularly offensive by themselves.

In face-to-face interaction, I find myself carefully choosing my words and constantly gauging my audience’s reaction. I feel more tolerant of opinions and ideas that I oppose when I am speaking to someone in person. I don’t do it to avoid conflict, but rather to avoid hurting someone’s feelings. People are passionate about their ideals and opinions. They are entitled to be so. Just because I disagree, or am indifferent, doesn’t mean that I have to tell them that.

For example, some people incorporate religion into many other parts of their lives. As an atheist, the mention of religion in an otherwise secular conversation makes me extremely uncomfortable. It’s not discomfort with the subject, it’s discomfort with the possibility of my differing opinion offending the other person. My atheism is not intended to be offensive in and of itself. I simply lack belief. But, I am aware that some people associate atheism with visceral, militant opposition to theism. In my case, it is not. So, to avoid the whole situation, I engage a religious person as if I too was religious. And, why not? Their ideas are not invalid just because they differ from my own. However, doing this is disingenuous, and constitutes self-censorship. It is suppressing my true self so as not to impose on others.

In the opposite extreme, I’ve found myself uncomfortable talking to people who are religion intolerant.  My reaction is the same.  I’m not conversing with the intent to offend anyone, present or not.  I try to avoid telling my position on the subject, choosing instead an ambiguous non-commitment.

Furthermore, we should all be aware by now that our social media accounts are monitored not only by acquaintances and family, but also by current and potential employers.  What is a crass, atheist, cynic to do?  The answer is to pretend I’m talking to my grandmother every time I make a post on a public forum.  “Everything is peachy, Grandma.  Life is wonderful.  Nothing bad ever happens.  I’m never angry, upset, or agitated.  I’m never at odds with anyone or anything.  I’m apolitical.”  But, that too is disingenuous and constitutes self-censorship.

I envy artists, because their job is to be themselves.  An artists’ expression is often intended to create discord, discussion, provoke thought and questions, etc.  Some art is just downright offensive.  Some is unintentionally offensive.  Either way, you have the choice to experience the art or not.  Unfortunately, artists also have a tough time making money by just being themselves.  It takes a special kind of person to pull that off.  In that respect, I don’t envy them.

So, with future employment in mind, I keep most of my thoughts to myself.  The fact that I’ve decided to write a blog has me seriously conflicted with that, though.  How can you sincerely write a blog without possibly offending anyone?  You can’t.  So, do you go for broke and let everything in your head pour out unfiltered and unedited?  Do you spend as much time deliberating over what topics to write about as you do actually writing about them?  Do you battle analysis paralysis and wind up never posting anything?

The answer is that you write a blog post about this internal conflict.  Then you choose to straddle the fence between censoring yourself and expressing yourself.  You expose some facts that you know will polarize your audience.  Really, if something I’ve said or done in the past offends you so much that my abilities and aptitude become a moot point, what are you really hiring for?  Certainly not diversity in the workplace.  If my personal beliefs (or lack thereof) are so incompatible with your own, do we really have anything to offer each other as friends?  I think there might be.

So, what’s the moral of the story?  It’s that being crass and cynical and expressing your opinions about lofty subjects has a place.  That place is the internet.  Likewise, being respectful and obedient and avoiding interpersonal conflict also has a place.  That place is the workplace.  Employers need to take the pressure off of employees to incorporate their private life into their work life.  Don’t ask me for my facebook password during an interview.  Don’t send me a friend request if you’re my boss.  Likewise, employees need to avoid associating their companies and schools with their private life.  Don’t put your work history on your profile.  Don’t friend request your boss.  (LinkedIn is the only exception to those rules.)  Draw a line between work and home, and then never cross it.