Stack Exchange Q&A site proposal: 3D Printers, Laser Cutters, & Personal Manufacturing

The stack exchange sites have a proposed site for all things 3D printing, rapid prototyping, 3D scanning, etc…

If you have a 3D printer, have expertise in this area, or have technical interests/questions, please commit to the site and participate.

StackOverflow — a site I’ve been active on for a few years — has been an unbelievable asset to the software development community and there is even reason to believe it will be an equally as huge asset to the rapidly evolving manufacture-at-home market.

Throughout the anticipation of the delivery of the Ultimaker (4 to 6 weeks — as are pretty much all 3D printers these days!) and the week of assembly (another post), I spent a bunch of time researching software and otherwise attempting to grok the toolchain without a tool to apply the chain to.

In short, 3D printing requires a slew of tools and the tools are… ugh… unrefined, if not downright user abusive. Not that this comes as a surprise. Affordable 3D printing is a very new market and it’ll take a few years for the science to be nailed down enough that an easy UI can be wrapped around it.

And it is moving rapidly. Thus, if you are reading this anywhere after about 3 to 6 months from now, it is likely that the landscape has changed.

As well, this is a decidedly Mac OS X centric / Ultimaker centric view of the world. I’ll likely update again in a month or so after I’ve set up the Printrbot.

To drive a 3D printer, there are quite a few stages of software that are employed. In the maker world, there are generally multiple answers to any given stage in the overall chain. If you are working with a commercial printer, it is likely that the stages closest to the printer — the driver, assuredly, maybe more — are fixed.

While I’m looking to the Ultimaker (see my previous post for thoughts on the Ultimaker) (now received– time to start assembly!) as my primary go-to, general purpose, home manufacturing device, I was both interested in a second printer as a platform for experimentation and as a secondary printer for when I need to turn out a bunch of stuff.

Because I wasn’t going to be afraid to modify it, I wanted something pretty cheap. The RepRap platform seems pretty interesting, but it also seems semi-fragile (and feedback on various sites indicates that it is harder to keep aligned than others, though I don’t know how true that really is).

Along came the Printrbot Kickstarter project. I ended up funding that at the $424 level. I’ll use the Ultimaker to print all the plastic parts. The Printrbot is really pretty extraordinary. It is an elegantly simple design, has decent precision and, through its simplicity, is extremely customizable.

Also, the Printrbot story and the whole Kickstarter concept is pretty cool and this seemed like a perfect opportunity to jump in and fund something.

The retainCount method just isn’t very useful as has been indicated in the answers to about a zillion StackOverflow questions.

The documentation has this to say:

Important: This method is typically of no value in debugging memory management issues. Because any number of framework objects may have retained an object in order to hold references to it, while at the same time autorelease pools may be holding any number of deferred releases on an object, it is very unlikely that you can get useful information from this method.

Makes it pretty clear that you shouldn’t be calling retainCount, but it really doesn’t illuminate exactly how useless the method is outside of a very narrow context.

So, let us count the ways:

  1. The absolute retain count of an object may change at any time once an object has been passed through any system API.
  2. Any subclass of any system provided class counts as “through system API”; the retain count may be impacted by implementation details.
  3. The retain count never reflects whether an object is autoreleased.
  4. Autorelease is a per-thread concept whereas retain counts are global; race condition derived hilarity can easily ensue.
  5. The retainCount method can never return 0.
  6. Some classes are implemented as singletons some of the time.
  7. Some classes may internally manipulate their retain count directly (I.e. no swizzle for you!).
  8. While retain/release are effectively thread safe, there is always a race between calling retainCount and having the actual retain count change in some other execution context.

Bottom line: the only time the absolute retainCount can be conclusively used for analytic purposes is if you have the backtrace of every retain and release that contributed to the current retain count’s value (there is another use case, documented at the end). If you have that, then you don’t need the retain count and, fortunately, Instruments is already generally quite adept at producing a per-object inventory of retains and releases for you (see Analyzing Data with the Allocations Instrument“.

In general, you should consider the retain count as a delta. Your code causes the retain count to increase and decrease. You don’t +alloc an object with a retain count of 1. Instead, you +alloc an object with a retain count of +1. If you want that object to go away, you need to do something — release, always and eventually — that causes the retain count to be decremented by 1.

It really is that simple.


Concurrency — whether through threading or GCD — throws a bit of a wrench in the works (as it always does). Namely, the retain count should really be considered as a per concurrency context delta. If thread or queue A wants to do something with object X, it should hold a +1 retainCount on X for the duration of said operation. One subtle detail that will bear repeating later; an autorelease‘d object does not contribute to thread safety. That is, if thread or queue A wants to pass X to thread or queue B, there must be an explicit retain in A that is balanced by a release (or synchronization event back to A) in B.

Now, some of the enumerated claims may either seem specious at best or, certainly, not obvious as to exactly how it undermines the validity of the retain count.


This is our AeroGarden after a couple of months of growth. It is currently growing savory, mint, basil, thyme, parsley, amaranth, and oregano. The Aero works really really well. Within the water reservoir (the big black thing under the plants), it has a pump that pumps water with nutrients over the roots of the little growing pods that stick through the holes in the deck around the plants. Surprisingly, the thing makes virtually no noise.

Once every week to 14 days (not sure how often), it reminds you to add nutrients and it has a water-low indicator. While the seed kits from Aero include nutrients, I’ve been using the worm tea from my son’s worm farm.

Quite nice to have a nearly non-stop supply of fresh herbs next to the kitchen!

I would never have otherwise bought such a device, but we ran across one at a garage sale for $5. Quite a hefty discount off of the $150 new price. It did need some new lights.

I picked up one of the Aero branded seed packets so I could go through one grow cycle by the book, as it were.

$150 seems a bit steep and seed kits are another $20, typically. However, if you truly will use all the herbs, then I would think the thing would pay for itself long before it wears out. Annoyingly, the light sockets are of an esoteric standard and ordering new lamps from Aero is ridiculously pricy. Razor meet blades, assuredly. However, it isn’t hard to rewire it for standard CFL grow lamps (you want CFL to avoid burning the plants at such close proximity).

Ornament On Tree
In Action

Every year, our neighborhood has an annual ornament exchange.

This year, we hosted the party at our house.

For our ornament, I picked up a bunch of matte finished shatterproof (i.e. plastic) ornaments from and shoved ’em in EMSL’s Egg-Bot.

For the artwork, I found an elevation illustration of the front of a typical Eichler and used Inkscape to trace a relatively minimal line drawing of the elevation (attached below).

Worked great! The person that received their ornament loved it and, of course, then everyone else wanted one, too. No problem! I printed ’em up in whatever color combinations folks wanted.

When loaded in Inkscape, the lettering and wreath on the door are in a different layer than the house line art. The Egg-Bot Inkscape driver makes it easy to print a layer at a time and, because the stepper motors stay powered unless you explicitly turn them off, you can easily swap pens after a layer is printed without knocking things out of alignment.

If you have an Egg-Bot, those particular ornaments + Sharpie ultra-fine markers are pretty much an optimal combination. You don’t even need to take the little hanger top off when printing. As can be seen in the photo on the left, the ornament part fits well into the cup of the egg holder and the plastic eye is held quite firmly by the spring loaded part of the Egg-Bot’s egg holder.

Eichler SVG

Update: This article will be updated occasionally with new information as I run across it….

Gonna be a long 4 to 6 weeks…

I just ordered an Ultimaker 3D printer after a few weeks of on and off research into the subject of 3D printing. It has a 4 to 6 week lead time.

I chose the Ultimaker over the RepRap Mendel/Prusa, MakerBot, and UP! Personal Portable 3D Printer for a few reasons:

– Larger build envelope than the Makerbot and faster, too.

- Extremely precise print capabilities.

- Less finicky than the Mendel, so it seems from the various forums, etc.

- The Netfabb software seems to be well regarded.

- Elegant print head design.

- Highly customizable, open source hardware / software / platform.

- PLA preferred (PLA is Polylactic Acid and is a biodegradable, non-toxic, material)

Any of the 3D printers would have been a good choice and each of the ones not chosen have advantages; the makerbot has an automatic object ejector for continuous duty printing, the UP! is a really nice design (easy to use), and the RepRap has an awesome community supporting it that has built a very versatile/customizable platform.

There are, of course, a large number of commercial printers. The UP! is about the cheapest of the lot and pricing ranges right on up to $unobtanium. Extrusion based printing is not the only solution, either, by any means, but it is currently the most accessible, as far as I can tell.

In the end, the elegant extruder design, overall machine design, speed and — most importantly — accuracy of the Ultimaker won out. I suspect I’ll eventually build a 3D printer of some sort, possibly a RepRap, or, at the least, print parts for someone else and help them put it together. Seems like a fun project and, overall, 3D printing is likely to be a huge industry in the coming years.

I have about a zillion little projects around the house that I can knock off with a 3D printer:

- new shower bar end cap so the shower door doesn’t bump into it

– proper clips to hold the art glass in the cabinet doors throughout the kitchen (the glass is a nonstandard thickness)

– seal for my bike light

Lens hoods for my various lenses

- seed baskets for an AeroGarden (found a 7 hole one for $5 at a garage sale)

- seed/grow baskets for a homebrew aeroponics/aquaponics system I’m contemplating (I want fresh salad all winter long, thanks!)

– iPad stand

- various cable keepers

– deflector for the front of a meat grinder to keep it from squirting blood everywhere

– fully customized project boxes

- custom Legos

– custom LED/CFL lighting fixtures

- Fractals

whatever the hell Roger wants to print

That last one is the most important. I can only imagine how awesome it would have been to have a 3D printer when I was 11 years old. Should be a great educational tool for him. It’ll also be fun to put it together with him. He is both a talented solderer and totally enjoyed putting together the Egg-Bot (speaking of — I wonder if I can print the mechanics for a new, larger, Egg-Bot).


If you like the occasional cocktail, get yourself some really big ice cubes. They tend to melt slower and, thus, water your drink down less while also providing a nice big chunk of cold.


Better yet, a very large cube of ice will not act as a dam against the side of the glass like a typical ice maker “cube”.

An upgrade over 2″ cubes would be to create 2″+ spheres. Currently, there seem to be two products on the market to do this. Instead of rehashing information, I’ll just post a link to this fantastic weblog with an article that focuses on spherical ice making.

As @dnanian reminded me, there is this absolutely fantastic spherical ice cube mold out of Japan.   Beautiful piece of work, but both a bit spend and not exactly convenient.

Still… that mechanical engineering is quite drool worthy.

Photo taken about 30 seconds after the camera had been under water for ~5 seconds.

An unremarkable, though rather pleasant, picture of the creek near my parent’s house in Missouri.

What is remarkable or, at least, exceptional about this photo is that it was taken about 30 seconds after I fell in the creek (slick rock) and dunked both my iPhone and my Canon DSLR (t1i) underwater for a good 5 to 10 seconds. While bummed that it happened, I wasn’t really angry — it was inevitable and, given how much joy the various photos have brought the family and how much educational value they have had for Roger, the risk has been worth it.

This was the last photo the camera took for quite some time and, at the time, the last photo I expected it to ever take. My iPhone was in similar dire straits. Upon removal from my pocket, it had flipped out; cycling between screens, waking sleeping, etc.. Water drained out of the headphone port.


Same with the camera; had to dump water out through the lens mount, through the battery compartment and out the SD card slot.

Leaving them in a sunny spot in an air conditioned, and thus relatively dry, house, the iPhone started working just fine, though the camera lens had a bunch of moisture on the inside. That dissipated within a few days and, save for the occasional mysterious “GPS on all the time” mode, the iPhone seems completely normal now.

The camera took longer to return to normalcy. For the first few days, it would power on to a “set the time” screen and I would then turn it off, remove the battery, open every door/compartment/etc, and let it dry some more. After the first week, it mostly just worked, but the flash stopped popping up for a while. Now even that seems to work.

It seems I got lucky. This time.

Quick notes;  I’m sorely behind on photography and weblogging.  Instead of letting things entirely rot, I’m going to jot down some notes for future reference (my own and, hopefully, others).

I’ve also been behind on cooking, making stuff, etc…

After letting my Sous Vide Supreme gather dust for a couple of months, I thought through why and what to do about fixing this.   The quality of food that is possible with SV cooking was clearly a motivator.  What I concluded was that the size and pain of storing the SVS was ultimately the reason why I didn’t use it;  finding a place to store was a pain and the SVS always takes the same rather large volume of water, even if you only want to cook a few eggs or a couple of steaks.

Thus, after some rather extensive research, I decided to go with a PolyScience Sous Vide Professional.   Effectively, it is a PolyScience lab circulator refactored into a form convenient for use in a kitchen.   It is easy to use, very accurate, and — most critically for me — can handle both a much much smaller and, on those occasions where I need it, a significantly larger (30L) volume of water vs. the SVS.

Once obtaining said device, a bit of a food adventure has been had over the past few weeks.

Ribs & Pork Shoulder (24 hours @ 56ºC)

Ribs were basted with an apricot / rice vinegar / EVOO / brown sugar / ginger sauce prior to bagging.   Pork shoulder was rubbed down with brown sugar, light salt, and scotch bonnet pepper flakes.

End result was quite good;  both the ribs and the shoulder had “chew” in that they didn’t entirely fall apart, but were still completely fork tender.   Flavor profile was excellent;  intensely pork flavored without being overbearing.   The belly was slightly salty and, in fact, salting in sous vide is very different than salting in regular bbq.

Lesson Learned: What is likely obvious to anyone who can actually cook;  any liquid in the sous vide bag should be drained into a pan and used to make a sauce, some sauce, any sauce.   Use it to deglaze a pan.  Add it to some sauce you are making, even if you have to cook it down a bit.   There is simply too much deliciousness in the liquid in the bag to let it go down the drain!

Fillet of Salmon (30 minutes @ 54ºC)

Just hot enough to pasteurize, no more.  Sadly, this sucked.  But it was an important lesson.  The Salmon fillet was absolutely perfect in texture and color, but the flavor was off.  Namely, it was fishy because I had abused the fillet between freezer and consumption.  Not “I’m going to die” fishy, but just unpleasant.   Frankly, if I had cooked it in a stew or grilled it, it would have been fine.

Lesson Learned: When cooking SV, there is nowhere that any off flavors can escape to, be burned off, or otherwise be covered.  While you don’t have to start with the most amazing quality ingredients, they must be absolutely fresh and/or have been stored properly every step of the way between harvest and table.


Brisket — French Laundry Style (48 hours @ 64ºC)

Picked up a big chunk of relatively cheap brisket and cut it into three pieces.  All three were oiled, salted and peppered prior to bagging.  One then had a hot indian curry added and one had a bunch of Worcestershire + Maple Syrup.

End result was very interesting.  It was a lot less tender than I expected, but was still fork tender after being sliced across the grain.

All of the juices were drained into a small cast iron pot and were cooked down with powdered mustard, ketchup, and siracha until it thickened into what turned into a delicious BBQ sauce.

Lesson Learned: Following Keller’s temperature and time recommendations seems to “just work”.  This comes as know surprise.  However, if you read many of Keller’s SV recipes, they generally require a proper vacuum sealer to be able to achieve the “under pressure” part of SV cooking.

Cheap Steaks (48 hours @ 56ºC)

Picked up some cheap sirloin steaks.  Not terribly tender, but not too tough.  Decided to do them 48 hours to see what would happen;  one plain, one curry, and one maple syrup + Worcestershire.

Browned meat over high flame on cast iron after.

Made sauce out of the juice, of course.

Was quite delicious, but the meat texture was too tender.  Beyond fork tender.

Lesson Learned: No, really, you can make a meat too tender.  At least, if you expect to serve it in a steak-like format.  However, I’m betting that taking the same cut of meat, dropping a bunch of stew like veggies and spices into the bag, and cooking that for 48 hours in a similar way would result in an amazing stew.

Peaches (3 hours @ 80ºC)

Peaches + brown sugar + bourbon, actually.   Just an experiment.

Delicious over ice cream, but the bourbon flavor was surprisingly strong.  In hindsight, this should have been obvious.   Did this a second time and used the result in a BBQ sauce described below.

Lesson learned: The Sous Vide pouches are a closed systems.  Any flavors that go in will stay there.  They may change from being exposed to said temperature, but they can’t escape!  Duh!  So, like salt, if you have something that is an intense flavor that would otherwise be somewhat lost during cooking, vastly reduce the amount you put in!

Brisket — Baldwin Style (24 hours @ 80ºC)

Didn’t have 48 hours and wanted to try something a little different.  Did the three flavors again as described above.

Browned the meat in skillet before, on grill after.

The end result was much much more tender than the French Laundry Style described above. But that may also have been because the meat, itself, was significantly fattier.

Served with a BBQ sauce made from the SV peaches described above + brisket SV juices + ketchup + maple syrup + mustard + hot peppers.

Lesson Learned: Beyond the exceptionally well understood pasteurization tables and exactly what temperature to cook a piece of meat to consider it “rare, medium-rare, etc..”, the relationship between time/temperature vs. resulting texture is not entirely understood by anyone. Certainly, a truly competent chef will find a particular time/temperature

Leg of Lamb (24 hours @ 54ºC)

Took a leg of lamb, shoved it in a bag without anything else, and SV’d it for 24 hours.

Once done, salted, peppered, EVOO, and then grilled for a minute per side on a very high heat gas grill.

Using the leftover BBQ sauce from the previous night as a base, I added the juice from the lamb SV bag and cooked it down a bit more.

The meat was perfectly tender and medium-rare from edge to edge.  Not a bit of it was left at the end of the meal.

Lesson Learned: 54ºC is a magic number.  At 54ºC, you can mostly cook something for up to 72 hours with no worries of poisoning anyone and still result in a piece of medium rare meat.  Mostly (as there is some subtlety to the whole pasteurization thing).  Just start with a fresh and competently handled piece of meat — it can be cheap, but it must be fresh.

Pork Ribs (24 hours @ 57ºC)

Dry rub with brown sugar, salt, hot pepper, ginger, and garlic.  Into the bag for 24 hours.  Cooked down a BBQ sauce (carry over from the one above), glazed and then seared over a high heat gas fired grill.

The texture of the meat was perfect.   The flavor was too damned salty.  Not inedibly so; just much more so than desired.

Lesson re-learned: No matter how little salt you use in a Sous Vide bag, it can easily be too much.  I didn’t even think I’d used that much salt, but the end result was still saltier than expected and saltier than desired.

More notes as I figure this out….