Still chasing that Workstation…

Update 5/31/15: Go check out How to build a true Solidworks Workstation for about $300.  The following post directly contradicts the title of the latest one by saying that “You will never build a true workstation for under $400.”  Well, it turns out that it may be possible, if you want it bad enough!

I wrote in the very first blog entry that my learning experiences would be shared, such that anyone reading might benefit from my mistakes.  I then wrote a blog about the Cheapest Solidworks Workstation.  I maintain that the build provided in that post will run Solidworks 2013.  I just don’t think that it will do it well.  It especially won’t do it well in when working with complex geometry or larger assemblies.  Why?  Because, despite the AMD’s processor’s 6 cores, or the i5’s stability, Solidworks just requires a whole hell of a lot of overhead.  Furthermore, as I’ve continued to research the issue and discuss it with friends, I’ve come across new information that leads me to believe that you shouldn’t skimp on a true workstation.

The previous post listed some general criteria that your workstation should meet:  High clock speed, tons of RAM, a graphics card, and a somewhat-quick hard disk.  This is fine.  A computer with these things will definitely run Solidworks, but will it run it reliably?

Error Checking

Components used in a business setting are designed to be reliable.  Designing for reliability is expensive, and these components are also expensive.  In the case of processors, some classes are error-checking capable, while others forgo that in favor of cost over reliability.  Now, when I say reliability, I’m referring to the reliability of accurate data.  When working with Solidworks (or other CAD programs), you’re likely to do some finite element analysis, motion studies, etc.  You also want some of your modelling to be highly precise.  To ensure this, workstation-grade components include error checking, which ensures that the calculations being performed are performed correctly, and don’t result in outrageous numbers.

To put it in more technical terms:  Highly precise numbers (ie. very large numbers with lots of positions to the right of the decimal place, such as 123456789.0123456789) require lots of bits to store.  If you don’t know anything about binary numbers, here is a quick intro:  For every “place” in the number, you can only put a 1 or a 0.  Just like decimal numbers, the “place” represents a multiple.  So, the decimal 10 means “one ten and zero ones”, 25 means “two tens and five ones”, etc.  For binary, each place represents the number 2 to some exponent.  So, the 0th place is 2^0 (which equals 1).  The 1st place is 2^1 (which equals 2).  The 2nd place represents 2^2 (which equals 4).  The 3rd place represents 2^3 (which equals 8), and so on.  So, 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 2+1 =3, 0100 = 4 and so on.  So, these are all positive, whole numbers represented in binary.  Furthermore, computers are capable of computing ridiculously large numbers these days.  And, of course, they also work with negative numbers, numbers with a stupid number of places behind the decimal, etc.  So, how do you describe those numbers using binary?

The answer is that some of those bits in the binary number are reserved to help describe the number in more detail.  For instance, how do you write a negative binary number?  You sure as hell don’t stick a minus sign in front of it, because that minus sign doesn’t exist in binary.  Instead, you assume that binary numbers starting with 1 are negative.  So, 0101 is the number 5, while 1101 is “negative 8 plus 5”, or -3.  But wait, 1101 is also 13!  True.  That’s why processors have what is called a condition register, which tells the programmer that the result of the previous operation could be a negative number.  The programmer has to put that number (and the register flag) into context in his program.  In other words, the programmer has total control over whether a binary number is positive or negative, simply by choosing to acknowledge a flag or ignore it.

Great, dude, but, like, what the hell does this have to do with error checking?  Well, there is also this little thing called overflow.  Overflow occurs when a calculation results in a number that has some ambiguous flags, and the program interprets the number as something that it isn’t.  For example, have you ever “glitched” a game?  In many instances, glitches are the result of overflowing, which puts strange numbers in places that the program does not expect those numbers to appear.  Glitches both cause crashes and cause glorious level-skipping, gear-acquiring, or other beneficial cheats.  In most cases, overflow is likely to cause a crash or a problem.  Have you ever had a 3D model in your game do some really crazy things?  Maybe fly across the map, distort grotesquely, or disappear?  Likely the result of some number out of the standard range expected by the engine appearing where it doesn’t belong.

THUS, ERROR CHECKING IS IMPORTANT.  There, I finally got back to where I started.  Workstations are used in business settings.  And, when it comes to CAD or 3D design, some operations take hours, or longer.  If your hardware does not have its own error checking capability, and you’re in the middle of an hours-long finite element analysis or days-long render, what happens?  Some glitch could crash the whole thing.  You could lose tons of time.  In the business environment, lost time is lost money.  So, you safeguard.  You buy components that avoid these errors by preventing them up-front.  The downside?  These components cost more.  But, if you’re legitimately making money with this workstation, the initial investment is probably worth it.

Well, that’s just, like, your opinion, man!

Workstation Components

So, what kind of components are we looking for, now?  Good question.  I’m still researching this, and trying to find an optimal solution.  At first glance, the components I would like to use are too expensive.  You will never build a true workstation for under $400.  Your best bet at that price range is to purchase a refurbished or off-lease workstation that is likely 3 or more years old.  What good will that do?  Well, if your version of Solidworks is equally old, you might be alright.  The problem then is that your old version of Solidworks will not be able to receive files from newer versions.  So, good luck with collaborating.

At the time of this writing, 5th generation Intel chips are on their way.  I believe that they may use the same socket as the 4th generation.  If it does, then purchasing a used workstation in the near future may give you the opportunity to upgrade it later.  In other words, suffer with really old stuff now, but then suffer with just sort-of old stuff in a couple of years.  Regardless, you’re going to be laying down a bunch of money for these things.  That’s when it becomes important to actually earn money with your Workstation.


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.


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.

Making money like a lower middle class layperson

tony_robbinsTony Robbins is touting “How to make money like a billionaire” all over the interwebs right now.  He’s an eloquent, inspiring speaker, but I’m pretty sure he is no billionaire.  He surely has made millions, though.  Still, I was taught to speak from experience.  Without having the experience of being a billionaire, I dare not tell anyone how to become one.  However, I have been lower middle class for most of my life.  And, I think I may even be an expert on how to be lower middle class.  I’m pretty good at it.

When I say I’m good at being lower middle class, I mean that I’m good at undermining my own financial goals, at not accounting for future cost increases, and at taking on too much responsibility.  I’m also good at convincing myself that the wages I earn are fair.  And, did I mention that I can’t help but find myself NEEDING debt just to get by?

Because I am so good at trying really hard and ultimately just digging myself deeper into mud, I figured I should share with you the reasons for and methods of my success at achieving net zero.

middle_class_0226Firstly, and probably most importantly, be born into a lower-middle class family.  I am the third of three children.  Both of my parents worked.  My father worked the night shift at a truck dealership, while my mother worked various office-support type jobs.  Both had some college, but no degrees.  Understand that my childhood was not unhappy, that I did not go without the necessities.  I was not neglected, and I don’t intend to imply that being a lower middle class child is anything but just fine.

That said, the story told to me by my parents (who are divorced and have not spoken in many years) is that my mother handled the household budget.  She employed a budgeting method — very similar to the U.S. government’s — called deficit spending.  In deficit spending, ones’ hands writes checks that ones’ ass cannot cash.  This was back when you could write a check and date it so that it would not be cashed until that date.  So, you could pay bills when you had no money in the bank, and technically carry a negative balance.  This drove my dad nuts, and was cited to me as one of the issues that lead to divorce.  It is also very telling as to how much money a lower-middle class family makes.

Studies show that lower class children are less likely to escape the income tax bracket into which they were born.  Why?  Because, it’s difficult to achieve more when you have less.  Its easier to achieve more when you have more.  Therefore, the poor folks stay poor and the rich folks stay rich (generally speaking; there are exceptions to every rule).  The doctor’s son has the resources to attend medical school, and doesn’t need to hold a job while attending.  The truck parts salesman’s son does not have the resources to attend medical school.  His parents can only provide so much for him, and the rest must be made up either with debt or work.  This kid is much more likely to achieve about the same income as his parents.  The best thing you can do to succeed at being lower-middle class is to be born into it.

too-rich-for-financial-aidThat brings me to the second way to succeed at being lower-middle class:  Attend college, with or without loans.  I attend college on (mostly) my own dime, and have been doing so part-time for nearly a decade.  I didn’t take out loans.  Instead, I paid cash for everything.  Unfortunately, life is expensive and it doesn’t care if you have money in the bank or not.  So, there have been a few times when my lower-middle class family has helped me attend.  I have been living paycheck to paycheck for 10 years in order to attend college part time.  Take note: the second most important thing to ensure success at being lower middle class is to have dreams that are just out of reach.  If you read the study, a college education is the key to upward economic mobility.  Unfortunately, it’s also the carrot dangling in front of my nose.  If I reach just a little bit farther, someday I’ll get that carrot and all the glorious middle-middle-class things that come with it.  Or, maybe it’ll just dangle there indefinitely.

As you all are probably aware, my generation is the most educated and least employed.  On top of that, this cohort has also paid more for that education than any in recent history.  Despite that, no matter whose son or daughter you were, you could go to college.  A few extremely smart and hard working poor people have been given a hand up, while an enormous mass of your median not-doing-great-but-still-above-the-poverty-line people have taken on huge loans in an attempt to escape their parents’ tax bracket. Many succeeded in earning those degrees.  Many did not.  Many of those who did were then unable to find the appropriate jobs.  Many of those jobs have quietly sailed away, without much hope of returning.  So, whether you attend college with cash or with loans, you’ve got a great chance of successfully achieving lower-middle class status!  Way to go!

PB9d7The third most important thing to being successful at being lower-middle class is to take on as many responsibilities as you can handle. How many can you handle? You won’t find out until you have too many. By responsibilities, I am referring to things like children, pets, real estate, jobs, classes,vehicles, etc. Anything that requires your time is a responsibility, and most responsibilities also require money. And, as we all know, time IS money.  As a successful lower-middle class layperson, you should have very little time to be void. You should feel guilty about every self-indulgent minute you have. Your time should always belong to someone or something else. And, you should be trading your time for money, so that you can turn around and trade that money to a university for the opportunity to spend your time solving the university’s puzzles.  In this way, you will ensure that you learn to find joy in the work grind, the homework grind, and the housework grind, among other grinds.

Speaking of grinds, take a moment each day to consume a ridiculous amount of coffee. Don’t do it because you enjoy coffee, but because you need to prevent fatigue. Looking fatigued at work is a sure-fire way to get on your boss’s bad side.

If you find yourself with spare time, you risk a moment of lucidity. This could lead to an existential crisis wherein you realize that you may never escape the purgatory that you have built around yourself.  If ever you feel yourself wanting to do more, to be more, to achieve the American dream, then just sit down and turn on television. Let the fictional characters on the bright, shiny screen do the living for you.  It’s far easier to watch someone else try and fail than to try and fail yourself.

Espresso at home.

If you don’t already know, espresso is awesome. It has almost three times the caffeine content per fluid ounce as regular coffee. It was invented by a man who wanted his workers to take shorter breaks and be more productive. That sounds awfully familiar. The only difference in my situation is that I’m both “the man” and “the workers”. Coffee is to Earth as the Spice Melange is to Arrakis.

So, you should be maximizing your coffee intake by both increasing the dosage while simultaneously reducing the volume required to achieve that dosage.  The solution is AN ESPRESSO MACHINE. But, which espresso machine?

I’ll be totally honest with you. I’ve only ever used two espresso machines. With peak confidence, I can tell you that the following recommended machine is the BEST espresso machine I have ever used. Introducing the KRUPS XP601050 SS Mechanical Espresso Machine:81ig5EvwlJL._SL1500_

A lot of brands tout the high pressure of their machines. A lot of brands add tons of little gadgets that no one really uses. Still, others just make crappy machines. What makes a good machine?

  • Heat
    1. The ridiculously over-caffeinated scientific community has determined that optimum coffee brewing temperature is 195-205 degrees Fahrenheit.  Too cold and you won’t get all the goodness from the coffee.  Too hot and your drink will taste like spicy Taco Bell sewage.  I don’t mean sewage as a metaphor.  I mean straight up spicy sewage.  Fortunately, the KRUPS has a thermoblock heater which essentially heats the water on-demand.  This is quick, efficient, and helps to keep the water temperature constant.
  • Build Quality
    1. I don’t care what anyone else says.  You need a machine that is well designed and well built.  Don’t cheap out on something that is mostly plastic.  Also, don’t let a brand convince you that their over-priced plastic machine is actually well built.  I’m not trying to say that plastic is a primary indicator of poor build quality.  But, it’s a good start.  I say this from a product designer standpoint.  A product designer chooses plastic when he doesn’t really care about precision and he DOES care about cost.  So, beware.  If the designers made a cheap housing, the components that matter are probably pretty cheap as well.  The KRUPS is mostly stainless steel.  The drip tray is plastic with a stainless steel fascia.  That’s actually a good thing, because it makes cleaning much easier.  And, you don’t need precision in a drip tray.
  • Steam Stem
    1. You need an easy-to-use steam nozzle.steam stem  Have you ever steamed milk before?  There’s a trick to it.  A well-designed steam nozzle actually makes learning the trick easier.  The KRUPS’ nozzle is two-piece.  The outer stainless steel shell has holes around the circumference that pull in air and milk.  This is nice, because it’s easy to see where you need to position the stem relative to the milk.  Most baristas are listening for a specific sound.  It’s a distinct “sucking” sound.  If you’re NOT steaming correctly, you’ll hear violent bubbling sounds.  That means you’re just scalding the milk.  Scalding the milk barely froths it and also ruins the flavor.  While using the KRUPS, you’ll see the “trick” as well as hear it.  You’ll learn to froth milk in no-time.

Real talk:  The KRUPS has had some failures in its time with me.  I’ve owned it for nearly 1.5 years at the time of this writing.  The double-shot basket clogged up at about the 1 year mark.  I was using it every day and not caring for it properly.  I even tried taking it apart and soaking it in vinegar.  It’s just dead.  So, now I just use the single-shot basket twice in a row.  And, I make sure to keep it clean.  A little more hassle, but not a deal breaker.  A replacement basket would cost me about $20.  But, I haven’t purchased one, yet.

Furthermore, I removed the spout from the portafilter.  I found that the spout somehow ruined the crema.  After removing it, my shots have a nice thick head.  Again, not a deal breaker.  The spout simply unscrews from the portafilter.

There are a couple other things you’ll need in order to make espresso at home.  First and foremost, you’ll need some coffee.  You can use anything you want, really.  Most people are going to tell you to use a dark “espresso roast” or something along those lines.  If that’s not your style, don’t do it.  Use the same kind of coffee that you already like to drink.  But, please don’t be afraid to branch out and try new coffees.  If you’re a Starbucks addict trying to reduce costs, try some cheaper coffees.  Back in the day I would buy Publix brand vacuum-sealed ground espresso exclusively.  It was incredibly cheap, tasted like charcoal, and did I mention it was cheap?

The very last thing you will need is a coffee grinder.58204925  Some people demand that you purchase a coffee grinder that costs several hundred dollars.  Don’t.  Just buy something affordable that is well built.  You’re not serving hundreds of customers.  You’re not a coffee scientist trying to push the heights of coffee excellence.  You’re just a person trying to make espresso at home.  I can imagine that means you’re probably trying to save a few bucks as well.  You can get by with a $20 coffee and spice grinder.  And, hey, you might even use it as a spice grinder one day.  I use mine to make BBQ rubs, as well as to grind coffee.  You can always skip this step and just buy coffee that is already ground for espresso.  Also, my grocery store has a grinder next to the coffee section that is free to use, with various grind types to choose from.

Conveniently, KRUPS also makes a cheap coffee grinder.  Better yet, it’s currently the #1 selling grinder on Amazon.  I don’t own this grinder.  Mine is a $10 model that I bought from Wal-Mart back at the turn of the Millenium.  I’ve managed to destroy it and rebuild it more than once.

81OJ6qwKxyL._SL1500_Good luck in your endeavor.  Making espresso at home is well worth the investment.  Just think of the cost of a latte` at Starbucks.  If you bought one every day for a year (which we would all love to do), you’d spend over $1200.  If you invest in the KRUPS XP601050 SS and buy a $12 bag of espresso every two weeks (which is probably more often than you actually would), you’d only spend about $450 in your first year.  The machine will more than pay for itself.  If we’re really splitting hairs, you waste both time and money by driving to star bucks.  You also burn gas while sitting in the drive-through.  You’re slowly making your boss hate you every time you show up a little bit late while swilling a paper cup full of bean water.  You need to invest in an espresso machine to save money, to save time, and to try new things.

While I’m at it, I’d just like to give a shout-out to Intelligencia Coffee.818MKqMpHdL._SL1500_  I had it for the first time at a local coffee shop.  It has a beautiful flavor.  It’s a little pricey.  A bag of this stuff is smaller than a typical bag of coffee, and also more expensive.  That’s a double-whammy.  Still, when I have the money and the forethought, I run to this stuff.  It’s just that good.  I’m currently finishing off a bag of Fresh Market brand coffee.  It can’t come soon enough.  Intelligencia will blow your mind.  If all you’ve ever had up to this point is Starbucks, you’ll wonder what the hell your problem was.  For me, Starbucks is where I go when I’m in a rush and I have a caffeine headache.  I hit up the local shops who serve different kinds of coffee when I’m out and have leisure time.  Any other time, I’m pulling shots at home for a fraction of the cost of any of those places, EVEN when I’m using expensive coffee.  Do yourself a favor, branch out and try these things.  You’ll learn something new, taste something new, and more than likely enjoy something new.

The Cheapest Solidworks Workstation

Update 5/31/15: Go check out How to build a true Solidworks Workstation for about $300.  The following post suggests using components that are not true workstation components.  Furthermore, actual workstation components can be had for as little or less than the system builds described here.

For quicker access to the information you want, here’s an index of this post:

1. Backstory

2. What does a Solidworks rig need?

3. Useful websites

4. Buy a used workstation/older components

5. Just tell me what new parts to buy

Over the holidays I received some gifts from my family.  They totaled to $312.50.  In my situation, having $312.50 that was as-yet not earmarked had me reeling over the possibilities.  (If you don’t know my situation, it goes a little something like this:  Homeowner, part time university student, full-time product designer, pet parent, husband, etc.  All of those things require a lot of time, and most of them cost a lot of money.  In other words:  I have no time or money.  My paychecks all come pre-spent.)  I had a couple ideas for how to spend it:

1.  Ninja Blender

I wanted a Ninja Blender because I’ve been frequenting Smoothie King for lunch.  I drink smoothies for lunch because I don’t have time to chew.  I’m only half joking.  I can pick up a smoothie and be back to work in 15 minutes.  I can drink the smoothie on the clock without disrupting my thought process or workflow.  The blender would negate the almost daily trip and reduce the cost of the smoothies.

2.  Electric Razor

I wanted an Electric Razor because I really, really hate shaving.  I also really, really hate having facial hair.  This seems like something every employed guy should have easy access to.  But, I’ve been using my wife’s disposable 24-blade, pumice stone equipped, moisturizer infused women’s razors for as long as I can remember.  It works.  It’s cheap enough.  Whatever.  But, the idea of saving time by shaving while driving to work is something I find enticing.

Then, it hit me.

I have this dream of doing freelance product design work.  I do product design for a home automation company.  They give me flex hours so I can go to school.  I enjoy the work.  I spend about as much time playing in Solidworks as I do actually building the designs and testing them.  I have VPN access to my work computer, and I’ve used it to model in Solidworks from the “comfort” of my dining room table.  However, it’s not ethical to use my company’s assets for my own personal gain.  But, as I’ve told you before, I’m writing to you from hand-me-down laptops and clicking buttons with thrashed mice.  So, what’s a guy to do?

I should build a Solidworks rig.

Now, you’re laughing to yourself.  I can hear it.  “This idiot can’t build a computer that runs Solidworks for $312.50!”  Or, can he?  Can you?  Let’s take a look at the possibilities.  We’ll use Solidworks 2013 as a basis.  It has tons of features, probably too many.  Solidworks is at a point in its development where most new features are “nice to have” and not necessities.  For example, Solidworks 2014 has a new Sheet Metal Gusset feature.  Wonderful.  It saves me some time putting in gussets.  But, I can still model gussets manually in 2013 if I have to.  And, sometimes I have to.

So, by using slightly older (but not less capable) software to start with, we can use system specs that aren’t quite bleeding edge.  Let me also tell you, I’ve seen solidworks run on several low-end and old-as-hell machines without too much trouble.  I ran 2010 on a low-end Athlon X2 Dual-Core processor laptop when I was first learning.  I ran 2013 on an i3-330M (this very Vaio laptop I’m on now) a few years later and had to wait for every edge of the object to re-draw every time I changed the view.  It’s not totally unworkable, but it’s not ideal, either.  The main changes in Solidworks between 2010 and now have mostly been “tweaks” rather than full-on major improvements/reimaginings of functionality.  So, if you already have an older rig, try using an older version of Solidworks first.  HOWEVER, if you’re serious about rendering, building complex models and/or assemblies, or even simulation, you should probably throw more machine at the problem.

Anyway, Solidworks wants these things:

1. Processor Speed

Solidworks runs mostly on a single thread when you’re modelling.  You need the fastest processor you can buy.  If you plan on rendering or simulation, extra cores and processors greatly increase the speed of rendering and simulation.  You can’t render or simulate if you can’t model, though.  So, let’s aim for the fastest processor we can afford.

2.  RAM

Solidworks is a memory hog.  It takes up a full gig of RAM on my workstation just to be open.  (Keep in mind, though, that PDM, Simulation, Toolbox, and various other add-ons are typically enabled when I’m at work.)  When you start building assemblies, it wants to hold tens, maybe even hundreds of parts in RAM.  There are ways to reduce this load (the “Lightweight” feature).  If you have a web browser open at the same time, you’re probably going to be taxing most consumer-oriented systems.  Solidworks’ website recommends at LEAST 8GB of RAM.  And, despite what everyone says, RAM is actually pretty expensive.  Let’s aim for 8GB at least.

3.  Graphics Card

This is third on the list, because it’s really the almost the least important.  It has the least impact on how well Solidworks performs.  So, you really only need something mid-range, and maybe even on the low side of that.  I’m not a graphics card expert by any means.  I’ll try to make some suggestions based on research I’ve done.  Solidworks’ website also has certified cards that are recommended to use.

4.  Hard Disk

Keep in mind, Solidworks does a lot of data access from the hard disk.  Many people are recommending Solid State Drives.  I have no experience using Solidworks with a Solid State Drive.  However, I do have experience with storing assemblies on a remote server, and Solidworks WILL CHOKE trying to pull things from a slow disk.  So, we probably can’t completely skimp in the hard disk area.

These are the issues we face.  The other components are relatively cheap.  I’m going to assume you can skrimp and scrounge a LAN/Wifi card, DVD drive, keyboard, mouse, and monitor from somewhere.  So, let’s go shopping!

In my efforts to build this thing, I’ve stumbled upon a few different websites that saved me a lot of time and effort.  The first, and maybe most important one, is PC Part Picker.  PC Part Picker does a lot of the compatibility checking between components for you.  Although, it sometimes fails at this.  It’s very powerful in the sense that it reduces the time you spend searching for and researching parts.  It also gives you direct links to purchase the parts from various vendors.  HOWEVER, I found this feature to be faulty.  The prices are kept somewhat up-to-date.  The problem is that the price of your build fluctuates almost hourly.  Furthermore, some components disappear from the list completely.  This isn’t the fault of PC Part Picker, but rather of the vendors its pulling information from.  Still, as a design tool, it will save you tons of time.  I recommend using it to find the proper configurations.  Then, use that list to build an order on Amazon or Newegg or whatever you prefer.

The second website that I recommend is CPU Benchmarks.  CPU Benchmarks has managed to benchmark over 600,000 CPUs at the time of this writing.  If you’re on a serious budget, trying to build a rig from used or older components, CPU Benchmark will give you an idea of what to expect.  I’ve used it to assess whether or not I should upgrade my laptops.  For example, my Linux machine has the Athlon X2 QL-64 that I mentioned earlier.  That chip is socket S1g2, which means that only other S1g2 (and S1g1) chips are compatible.  When I go searching for S1g2 chips, there are only a few.  But, CPU Benchmark lets me know that if I buy a $15 Turion ZM-84, I could increase the processor performance by about 20%.  20% isn’t bad.  But, CPU Benchmark also lets me know that that Turion ZM-84 is also still old as hell.  In fact, that processor is 20% as fast as the latest Intel i7’s.  From that frame of reference, that $15 isn’t buying me much.  The other good thing about CPU Benchmarks is that they also benchmark GPUs and RAM.  So, if you’re serious about using older components, CPU Benchmark is where you go to determine how much value you’ll get out of it.

Speaking of older components, I also looked into purchasing used workstations.  You can pick up a used hp Z600 or equivalent workstation for a few hundred dollars.  It won’t necessarily have multiple Xeon processors and 16GB of ram (which is what my Z600 at work has), but it may be a less time-consuming and labor-intensive solution to this problem.  So, if you’re not computer savvy, or just don’t care to be, feel free to explore Amazon for used hp Z600’s, Dell T3500’s, Lenovo P500’s, etc.  It’s probably the most painless (and maybe even the cheapest) way to get a Solidworks rig.  Just keep in mind the issues listed above.

If you’re still with me, you’re serious about building this thing from scratch with brand new components.  So, here is a list of components that will run Solidworks REASONABLY well, for about $350 to $400 (before shipping and taxes).  Below there is an AMD rig and an Intel rig.  At the bottom we’ll compare the rigs to each other as well as to a typical workstation.

AMD Rig:

At the time of this writing, the following components total to $349.80.  Click on any of the images to be taken directly to the Amazon product page to check for the latest prices.  Below the images is a summary of why I chose these components.

AMD FX-6300
AMD FX-6300
ASUS M5A78L-M LX PLUS Motherboard
8GB (2x4GB) 240-pin SDRAM DDR3 1333Mhz
8GB (2x4GB) 240-pin SDRAM DDR3 1333Mhz
Hitachi Deskstar E7K1000 1TB, 7200RPM, 32MB Cache HD
Hitachi Deskstar E7K1000 1TB, 7200RPM, 32MB Cache HD
ASUS R5-230 Graphics Card
ASUS R5-230 Graphics Card
Rosewill MicroATX Tower
Rosewill MicroATX Tower

Intel Rig:

At the time of this writing, the following components total $403.14.  Click on any of the images to be taken directly to the Amazon product page for the latest prices.

Intel i5-4330 Processor
Intel i5-4330 Processor
Gigabyte LGA 1150 Intel H81 MicroATX Motherboard
Gigabyte LGA 1150 Intel H81 MicroATX Motherboard
8GB (2x4GB) 240-pin SDRAM DDR3 1333Mhz
8GB (2x4GB) 240-pin SDRAM DDR3 1333Mhz
Seagate Constellation 2 250GB HD
Seagate Constellation 2 250GB HD
Rosewill MicroATX Tower
Rosewill MicroATX Tower

Let’s compare this two machines:

AMD Rig Specs:
Processor Speed: 3.5Ghz
Processor L2 Cache: 6MB
Graphics: Radeon R5 230

Intel Rig Specs:
Processor Speed: 3.0Ghz
Processor L2 Cache: 6MB
Graphics: Intel HD Graphics (integrated)

So, I’m breaking my own rules here.  The AMD FX-6300 has a ridiculous number of cores.  The Intel i5-4330 is slower than the AMD.  So, which is better?  Well, according to CPU Benchmark:i5-4330 vs FX6300But, that’s not the whole story.  If you dig deeper into benchmarking, you’ll find “single thread ratings” that describe how each core performs on its own.  The FX-6300 has 6 “slow” cores.  The i5-4330 has 4 “less slow” cores.  (Neither of these processors is blazing fast like the i7-4770.)  Solidworks generally uses only one thread when you’re modelling.  So, depending on what you plan to do (rendering, simulation, etc), the i5 may actually be a better choice.

Now, for grins, let’s compare those two processors to the cheapest Z600 workstation on Amazon right now:

i5-4330 vs FX6300 vs E5520Next up, the graphics cards.  This is way far out of my area of expertise.  So, I’m pretty much just going by the numbers here.  The Intel i5 has integrated graphics that are no slouch.  They obviously don’t replace a high-end graphics card, but we don’t need a high-end graphics card.  The Radeon R5 230 is a low-end card that I stumbled upon on Amazon that was within the budget.  Comparing them at CPU Benchmark:

GPU compareAll of the other components are essentially the same, because they can be, and because they’re cheap.  I myself have not built either of these rigs.  Nor have I tested them with Solidworks.  So, what you have here is essentially a “best guest” of how to make a Solidworks-worthy computer for a low, low cost.  I can’t help you put them together.  I can’t guarantee that all of the parts listed are compatible with each other.  But, I hope I’ve at least given you the inspiration to set a seemingly impossible goal and attempt to attain it.  I’m still tempted to try, even though that Christmas money wound up being spent on school books and lab supplies.


I’m enrolled in Microprocessor Applications this term.  The MC68HC11 is what we are using to learn on.  It’s an old chip.  Very old.  Motorola released it in 1985.  That was the year I was born.  As of this publication, I am 29 years old, nearly 30.  Most of the people in my class weren’t even born when this chip hit the market.  Ouch.

20150109_204136The HC11 was originally intended to be used in mobile applications!  When I say ‘mobile’, I mean ‘cars’.  It’s actually pretty feature-packed.  It has 38 GPIOs (16 bi-directional, 11 input-only, and 11 output-only).  Onboard RAM, ROM, and the ability to access external ROM up to 64kb.  You read that right: 64kb.  It’s an 8-bit processor, and the crystal on the dev board is 8Mhz.  For comparison, Intel released the i386 32bit, 12Mhz processor in 1985 as well.  The i386 was top-of-the-line at the time.  Meanwhile, the HC11 was being implemented in engine control units.

In so many words, my professor told us that we should “crawl before we can walk.”  Thus, we begin our journey into microprocessor programming with the HC11.  Meanwhile, as I mentioned in an earlier post, I have an MSP430 that I bought LAST YEAR around this time.  (Winter break has always been a mad rush of ideas and project starts.  And, then all of that goes out the window when school starts again.)  The MSP430 is a Texas Instruments product.  You can get a starter dev board for about $10 here.  It comes with everything you need to begin learning.  But, the $10 version gets you a fairly featureless chip.  Meanwhile, the HC11 dev board costs $112.  And, the book for the class costs about $350 new.

TI has a proprietary IDE that lets you program in C.  They also have an Arduino-style IDE that lets you program in psuedo-C.  If you’ve never done any serious programming before, learn the psuedo-C and plan on transitioning to C later.  But, if you’ve got some experience and/or you want to learn the nitty-gritty of what you’re doing, use C.  For our Microprocessor Applications class, we’re learning to program in Assembly.

I anticipate it will be difficult, but not impossible.  We’ll see.

Problem Solving through Engineering and Design