3D printing: What I’ve learned Part 1 (Hardware)

I bought my first (and so far, only) 3D printer in 2017. I’d read everything I could, watched videos on the subject, and I thought I knew a thing or two. It took about a dozen test cubes to figure out what I needed to get a successful print and it’s been going strong (mostly) ever since. Now, four years later in 2021, I’ve learned a few things along the way that may – if you’re a new printer user – help you out. Part 1 is about hardware.

FLSun 3D Cube

Stock FLSun 3D Cube

In 2017 most 3D printers were going for about $500 on the very low end. This would get you a machine read-to-go out of the box. I bought an FLSun 3D Cube kit for $350: completely unassembled, just a large box of parts from China and several pages of instructions that were sometimes difficult to follow but were mostly okay. I handed the box to my daughter as a science project (we un-schooled both kids) and let her have at it. She did most of the work, I came along after and did all the electronics.

The 3D cube is a beast. 260mm x 260mm x 350mm, about 12″ x 12″ x 18″, or large enough to print a human head (which I have done…well, a skull, anyway. You can read about Herman here on the site). Smallest thing I’ve ever printed was a 1/4″ universal greeblie. I’ve never tried to print a tabletop miniature, but I’m sure if I popped in a .2 nozzle and slowed it down it would do just fine. Mostly what I print are mechanical parts, like gears.

What I’ve Learned

Buy a kit. Seriously. If you need to get up and running in a hurry, there are plenty of options, but a kit printer will teach you not only how a printer works by why it works the way it does. If something goes wrong (and it will) you’ll have a good grasp of how to fix it, or improve on it. It will make you a better maker.

Upgrade everything. I got what I paid for. Every part it came with except the frame and frame components were the cheapest the company could get away with and still have a functioning printer. Ultimately, with the upgrades I’ve made over time, the Cube actually cost about $500. I’ve upgraded the main board, added an external mosfet, upgraded the extruder, the drivers, and the power supply.

Using What I’ve Learned

I’ve got some projects in mind where having a CNC router/engraver would be very useful. A 3D printer and a CNC router are basically the same machine in different configurations. I can use what I know to build one that precisely meets my needs.

I was able to take an old main board (an MKS GEN L V1 with a burned out heated bed connection) and repurpose it for a home made pad dye machine. (The video still shows the mechanical version. There’s another video on the way.)

I’m certain there’s going to come a point where I need another 3D printer. I’ve learned exactly what I need to shop for to get an out-of-the-box machine, but I’ll probably just build another one. BIGGER.

Complete Newbie’s Guide to Web Hosting: Part One

Whether it’s your first or your tenth, I have advice to give you if you’re setting up a website. For the purpose of this series, I’m going to assume you already have a business: hired an accountant; paid your taxes; registered your LLC or INC or whatever with your state. None of that is relevant anyway. There’s plenty of information available on that topic already. It’s not why we’re here.

Setting up a web site may look daunting, but it really isn’t: you can have a website today, in the next hour, with whatever on it you want.

Understand: I don’t want to host your website. In fact, if you ask I’ll say “no.” I could, sure, that’s part of my day job, but frankly I’d rather let someone else handle that. I’m not affiliated with any web hosting companies, and therefore I can be scrupulously honest. I’m not trying to sell you anything except my services – but the hosting part? That’s on you.

My goal is to break it down bite sized, and set you free to confidently take care of your own stuff. If you were to hire me to set up your web site, this is what we’d do, and over the next several posts, I’ll break down the steps in detail:

  • Buy the domain
  • Select the host
  • Set up your web site
  • Set up your email
  • SEO is a process, not a task
  • Pay attention to your site
  • Deal with scams

Step 1: buy the domain

The World Wide Web has been around more than twenty years, so you’re going to have a hard time finding a .com address that isn’t already taken, especially the shorter ones. Where you register doesn’t matter. I’ve used them all at least once, and my only deciding factor was price. Some web hosts offer free domain registration when you sign up, and in the background they’re using the same domain registrar that you might, so if they offer it, take it but all this advice still applies.

Important key: do your brainstorming on paper. Make a list, then order it from best to worst, then go prepared to buy. Here’s why: certain domain registrars have been accused in the past of sharing their domain search data with bad actors who then buy up all the searched domains that weren’t purchased and sit on them. When you go to get your domain, it’s already taken and for sale, usually at a higher price than you would have paid otherwise, a practice called cybersquatting. (This can also happen if you let a domain expire. Took me two years of waiting to get my domain back.)

If your domain name might be easily mistyped, consider purchasing the misspelling (you can just redirect to your correct domain). Also consider buying up some other top level domains: .org, .net, and so on. whitehouse.gov takes you to the official website of the office of the President of the United States. whitehouse.com is a gambling site (it was a porn site for a while, way back when.)

To sum up:

Brainstorm on paper.

The registrar doesn’t matter. Pick one and go.

Don’t search until you’re ready to buy. If you find your domain is available, buy it. Don’t wait.

Buy variations on the domain

Buy other top-level domains (e.g. .net, .org)

Next time: select your host.

simple, effective, portable: Me vs. .NET

I hate starting with a disclaimer, but I’m starting with a disclaimer. Much of my experience with Visual Studio .NET and its related products – at least until the last year or so – is second hand. Your mileage may vary: I know that a lot of developers absolutely swear by Microsoft products – bless their hearts – and my experience has definitely been colored by over-zealous Microsoft evangelists, but I have come to strongly dislike the Microsoft ecosystem. Since 2002, I’ve never had success in it as soon as I dove past the the most surface functionality: from the earliest releases right up to 3Q 2019 with a disastrous flirtation with Azure.

Visual Basic 6 splash screenJust to be clear: I got my start with Visual Basic 6 and ActiveX controls, then transitioned to web based apps with Active Server Pages. I consulted for Sprint, the National Association of Insurance Commissioners, Yellow Freight, to name three. I started my present career in February 2002 as a mostly one-man shop, writing ASP pages, managing SQL Server databases and IIS web server, partnered with two other people. Let’s call them MoneyGuy and DataGuy. More on them in a minute.

A fantastic article on complexity. Encapsulates a lot of how I think and operate, and why (spoilers) I’m not a fan of .NET.

Skip to the point.

When I got my first computer, the internet as a consumer commodity was still in its toddler stage. We browsed with Lynx over a 2400 baud modem and got kicked off if someone called us on the phone. I wasted a lot of hours in IRC. When I upgraded to a 9600 baud, then 14.4k, the experience was life changing! I started programming for the web in ’98 or so, HTML was new and exciting. Java wasn’t really a thing in the marketplace, and Flash was still a ways off. Access was The Shit.

Maintaining a website was easy. FTP your files down…make your changes…FTP your files back up. It was portable: changing web hosts? Move your files. Need a backup? Copy your files. Files get corrupted? Unzip your backup, copy the files. Websites were “published”, not “deployed” unless you were a pretentious prick. You needed only two, possibly three pieces of (usually free) software: a text editor, an FTP client, and a never-to-be-registered copy of WinZip. If you knew what you were doing, you could get by with Notepad and Windows Explorer.

If there was a problem, you opened the file with the problem and fixed it. It was simple, effective, portable, and, if you were diligent in your backups, worked 100% of the time.

Jesus, I sound old, but you need to understand where I came from to understand where I landed. Onward.

DataGuy started out as SalesGuy, and he was much better at Sales than Data, but we had deadlines and I needed help. I taught him everything I knew about SQL Server and he took over the database side of things leaving me to sling code. He and MoneyGuy as a rule kept their noses out of what I did. There was an almost exclusive focus on the WHAT: the HOW was entirely up to me.

Square peg: Round holeSomewhere around 2010, one of MoneyGuy’s friends started singing the praises of .NET over lunch. (It should be well understood that MoneyGuy and all his friends were/are Middle-Aged White Ayn Rand-conservatives whose collective technical expertise stops at the basic use of Microsoft Office and Quickbooks. Open source? Communism, you mean.) A programmer had written A program for him and it worked great and so, by extension, .NET was The Best Thing Ever. MoneyGuy came back from his lunch and announced that we would re-write our applications and web sites in .NET.

So here’s me: a mostly one-man shop who’s been so busy for the last fifteen years that there hasn’t been time to come up to speed in all the latest and greatest tech. I pushed back, hard. Wrote a use-case document showing that the ROI for the switch would be a horrific waste of time and money. It basically boiled down to:

  • Our software works as is.
  • If something happens to me, you could bring in any programmer and have them up to speed in a couple of days.
  • X, Y, and Z are already in the pipeline and you want them ASAP: you don’t get that AND a paradigm shift.

See, learning a language is easy: high-level languages all operate by the same basic rules (pun acknowledged) and the only thing that varies is the syntax, so once you know one, transitioning isn’t that hard. But .NET is a paradigm shift1. You don’t work with files anymore, you work with projects. You don’t copy your files up, you “deploy the project.” Notepad? Sorry, this project was written using Visual Studio, so you have to use that toolset. With a full schedule and an insufficient paycheck, that was a bridge too far.

In 2015 we needed a module I didn’t have time to write, so, against my strenuous objections, my partners engaged a .NET programmer. The thinking was that he would write the module and train DataGuy in the use of Visual Studio so after NetGuy left, DataGuy could do maintenance and fix bugs. I already knew DataGuy wasn’t capable of following through, but I didn’t have a vote. Best I could do was yell about it.

Server Error 501

DataGuy has long since gone and it’s just me again. NetGuy is off in the wind somewhere and I have a piece of code I can’t maintain, that is so bug-ridden that our client has abandoned the use of it. Doesn’t THAT look awesome on the TOS.

While all of that was going on, in the background I started migrating to PHP2. Even then, (ver 5.2, I think) it had a rich feature set, lots of libraries, wide community support, and was generally better at everything than Classic ASP. The cost of converting was almost zero. I played around with Prototype/Scriptaculous, eventually settled on jQuery, and just like that, I could do everything that Visual Studio could do, working within the paradigm of

simple, effective, and portable.

The Point

Microsoft MigraineAnd here we come to the crux of my issue: Microsoft makes everything far harder than it has to be. If you’re a .NET programmer doing good work, I’m happy for you, that’s fantastic! That hasn’t been my experience.

Early on, I was told by a friend (who was/is a Microsoft evangelist) that to start the switch to .NET, all I had to do was rename all my .asp files to .aspx. Everything, absolutely everything, stopped working, throwing error after error. I tried for an entire weekend to make the changes necessary to allow even the simplest of modules to work, but with a client expecting their working system on Monday morning, I was obliged to abandon the attempt.

In 2018 we figured out we were getting fleeced by our co-lo host and started shopping around. On the advice of the aforementioned friend, I tried Azure. It seemed to have all the necessary stuff, and could host all of our Classic ASP legacy code AND the PHP code and the SQL Server databases (though I couldn’t get a solid confirmation because the trial space they give is too small to be useful.) It wasn’t until I was two months in (and a thousand dollars in the hole) that I discovered that Azure didn’t support linking tables across databases3, used in most queries and views in our applications, and something I would take as so fucking basic I didn’t believe it at first. I checked with my friend and he contacted his people and we worked on it for a few days, but it was true. That was a deal breaker. I had to go back to MoneyGuy and explain that he’d just set fire to a thousand dollars and had nothing to show for it. Thankfully we hadn’t canceled our existing co-lo contract.

I kept searching. I found a co-lo host with more than fair pricing, a great TOS. We’d get web and db servers all to ourselves and all it needed was a text editor and an FTP client. I made the transition single-handedly over a weekend: I started Saturday morning and we were ready to flip the DNS by Sunday afternoon. Sixteen hours, most of it spent waiting for uploads, recreating virtual folders and rewrite rules in IIS that I’d forgotten about, and testing.

Done, done, and done.

So, yeah, you can call me old, set in my ways. A dinosaur. That’s just fine. I can hand off my programs to just about anyone with a computer science 101 class under their belt and be confident everything will be fine.

My stuff just works.


1. Yes, I know that you can write .NET programs with Notepad. That’s not the universe we were in at the time, however.
2. There are arguments for and against PHP. That’s not why we’re here.
3. Something Access and SQL Server have supported since their inception. Why it’s left out of Azure is beyond me. That may have changed in the last couple of years; I don’t know, and I don’t care.

Meet Herman

I usually spend my autumn weekends at the Kansas City Renaissance Festival, working for a friend in her booth selling incense and fragrance oils. In 2020, with a covid quarantine in effect pretty much everywhere and the festival canceled, I had some extra time on my hands come Halloween. That meant I was able to devote myself to a yard display I usually wouldn’t have time for.

The concept for the display was to have a gentleman in Victorian-era clothing holding a lantern and looking surprised or frightened, being menaced by a giant pumpkin scarecrow. (The lantern and scarecrow are for another post.) 

It started with eyeballs: 15mm wooden balls, 11mm doll irises, wooly nylon thread for the veins, and epoxy for the shine. Pretty standard stuff but they look disconcertingly real. (Consulting an anatomy text, I learned that eyeballs aren’t as big as they seem.)

For the head, I began with a 3D printed skull. It started as an STL file created from a man’s CT scan done for a sinus surgery. That skull was too anatomically correct – there were structures that would have taken a good deal of clay to fill in (like the cheekbones), so I loaded the file into sculpting software where I filled those voids in and softened some of the edges. I also lengthened and narrowed the skull just a little: I wanted “Herman” to be tall and thin.

After cutting the lower jaw free and hot-gluing it back into place in the correct position, I mounted the skull onto a pole, applied tissue depth markers and started laying on an oil-based modeling clay (the same technique used by forensic reconstruction artists.) Building the basic structures was easy, getting the final sculpt was not: the ears were problematic and, let’s face it, I’ve never been that good at ears to begin with. Because I wasn’t sure about the mold material, I went with the safe assumption that the mold would be rigid, so there could be no undercuts that would lock the piece into the mold. 

The head was molded in silicone, and a rigid front/back shell of plaster bandages kept the shape when the head model was removed. The neck and shoulders were created with a much denser (and cheaper) spray foam, and put in place inside the mold after pouring 3# A/B polyurethane foam for the head. 

Herman was meant to be viewed from a distance so the features, details and makeup are exaggerated. Herman was painted using acrylics mixed with liquid latex for the base color, and detailed using standard theatrical creme makeup.  Mutton chop sideburns and eyebrows were glued into place (I ran out of time to hand-punch the hair) and a felt top hat completed the look.

Next up: The Body