Jeff Epler's blog

About me

I've been a computer programmer since I first started typing in program
listings on a Commodore Vic 20 when I was about 8. My hobbies include
electronics, CNC manufacturing, photography, beer and winemaking.

I live with my wife, two cats, and lots of left-over parts from unfinished
projects in Lincoln, Nebraska, USA.

the counterpoint to 'use pax' is the awful antipattern (adopted from cpio) of taking lists of filenames as input. The method suggested in the article does NOT give proper handling of arbitrary filenames (those containing whitespace, in particular), you have to use an incantation involving printf(1) instead.

I think Leibnitz already proved that the touch bar is good, just following from the fact that in the past macs did not have touch bars, and now some do. I don't see why people are still arguing over such a basic point.

poc is a tool in the vein of
OpenSCAD for creating 3D models in a high level language with a minimum of
boilerplate. It's now live at github, though I don't know how actively
I'll deveop or maintain it yet.

Here you can see that the input format is fairly terse, and it has
some abilities OpenSCAD doesn't, like selectively filleting certain
edges:

Recently I ran across occmodel.
Its biggest prerequisite, OpenCASCADE, is packaged in Debian Stretch as
"liboce"; the rest are fairly lightweight (though compiled) extensions.

So I gave it a try for a small piece, little extension legs for a dish
drainer. I plan to add two leg extensions to the antisinkward legs
of the dish drainer, to improve its draining behavior. So one key feature
is that the captured leg will end up being at an angle to the counter.

My python program has a few "configurables" near the top,
inner and outer diameters, heights, and the distance between the legs.
From this, I do some basic operations (difference of two cylinders,
rotation of that intermediate solid to represent the required angle,
then intersection between it and a large cube that represents the half-space
'above the countertop'. Then, just to show I can do something openscad can't
do trivially, I fillet every edge by 1mm.

First, I'm not confident of the robustness of liboce; I saw some segfaults and
since they were dependent on specific numbers in the geometry I am tempted to
assign blame there and not to the occmodel wrapper. (not that OpenSCAD
is beyond reproach here)

Second, it needs an integrated environment like OpenSCAD has. Maybe one
of the python "notebook" interfaces would be suitable for this.

Third, it needs less boilerplate.

Fourth, it needs broad buy-in by users of sites like thingiverse,
because OpenSCAD has massive momentum behind it.

.. and only a handful of days in the last year would have come close to
saturating a T1 at its nominal 1.544Mb/s. Still, that's a total of around
800GB/year downloaded. Something big would have to change before I could
switch to metered cellular data; the upload and download taken together would
cost about $1000 a month with my current cellphone provider.

I estimate I've made between 200 and 300 individual prints, though I stopped
tracking at around 200.

The first hardware failure was in the hotend side quick connect fitting
for the bowden tube—the tubing itself would pop out midway through a printing
job, and that would consistently ruin prints I bought a set of 5 replacements
from the internet, and that fixed that.

The second hardware failure is more severe, because to resolve it I'll have
to work with wiring: the bed has stopped heating in some Y-positions.
I had not made any of the hardware mods that are supposed to improve the
durability of these under-table moving wires.

An inspection turned up that one of the large-gage wires is almost totally cut
through by the cable tie under the bed, which sure explains the failure to
heat.

For now I'll just write off the ability to print in ABS and PETG, and
stick to PLA, and wait to see what fails next. If I get suitably motivated, I
might try to fix the heated bed. I'm not thrilled with the idea of junking
it, because the obvious replacement would be the MPSM v2, but my friend Sam
has already had the bed thermistor fail on his v2 after less than two weeks.

As you'll recall, my primary complaint about the MPSM has been that
it's advertised as printing ABS but never has for me.

I can now credit two easy modifications with making it possible to print ABS:

The first one, which I had done a long time ago, is to insulate the heated build plate.
I did this by simply folding a paper towel and placing it just under the build plate.
This allows bed temperatures of 75-80C to be reached.
(These bed temperatures can't be selected at the preheat screen but can be in the slicer. Weird.)

The second one, which I only recently heard about, is to block the lower exit
of the cooling shroud, the one which cools the print. This can be done
in the first place with more of your masking / painter's tape. Once
you've done that, print an MP Select Mini ABS Flag in ABS. I selected the fully blocked one fwiw.

With it I've printed several things in ABS that I would not have been able
to print otherwise, such as the replacement fan shroud which you see in the
photo.

I'll keep printing primarily in PLA and PETG, but now I can say I successfully
print in ABS as well.

One of my favorite authors is Greg Egan, and that's in great part because
of how in many stories he starts with known physics, adds a twist, and follows
it to its logical conclusion within the story's setting.

A particular idea he's used a few times is the idea that portions of the
universe could potentially contain "time-reversed" regions. From our
point of view, for instance, a time-reversed star absorbs photons, and if
we could observe biological phenomena they would likewise go in reverse.
(See e.g., the short story The Hundred Light-Year Diary)

From our point of view, the universe began billions of years ago with the big
bang, and as far as I know all present observations are compatible with zero
or negative curvature. This apparently gives an infinite amount of time to come
in the future, though only a finite portion of that future can support baryonic
life like ours.

So what does cosmology look like for the time-reversed universe, and what
are their "big problems"? I don't have enough background in basic physics
and cosmology to give a really good answer to this question, but here are
some things that occur to me:

How to reconcile the apparent flatness of the universe with the
observed cosmic blue-shift

If the universe has an infinite past, and the baryonic era has
been going on for at least 1036 years, why are there no
other observable civlizations?

Were natural laws different in the distant past? Why and when did
baryogenesis occur, given that in the present day the creation rate of protons
is so small as to be unmeasurable? Ultra-low energy / density physics will
presumably be an area of great interest in understanding the origins of the universe.

At the same time, high energy physics will be of interest in understanding the fate of the universe. Scientists learn that in the high-energy future, the laws of physics themselves break down ("unify" in our terminology).

Some models will predict a "deflation" process that begins when a certain mass/energy density is reached, rapidly collapsing the observable universe and obviously destroying all intelligent life in the process. Unfortunately, the models will be unable to predict the specific energy density.

I'm not sure what the time-reversed CMB looks like. A white-hot wall that indicates "deflation" is already going on in the distant parts of the universe, an approaching wavefront that clearly dooms all intelligent species?

What, if anything, happens after the great singularity at the end of time?

I reviewed this entry-level 3D printer soon after I got it. Now I've been using it for nearly two months and over 100 prints and I wanted to post some updates. I do continue to feel that this is a good printer for me, and for anyone who would like to start 3D printing without spending much money and without building a machine from parts. (on the other hand, you do have to endure the learning curve that comes with modeling and slicing software on your PC, which I was interested to do)

The printer continues to give me very usable results in PLA, some adequate results (but with lots of stringing) in PETG, and useless results in ABS. bold Update: Check this update for how I have been printing ABS successfully. I've been doing PLA on painter's tape and a cold bed; PETG on painter's tape with gluestick and 75C bed. First layer adhesion is just fine, removal is sometimes finicky.

The original hot end continues to work, though I did have one pretty close call when the old filament broke during a filament change, leaving the old filament stuck in the hot end, unwilling to move forward or back. Ultimately, I disassembled the hot end so that the heat break was not in the heatsink, then heated the heatbreak+nozzle assembly to 250C from the front panel. As soon as it was possible to do so, I pushed the filament through using an allen wrench of the right cross-section. After this, I experienced more minor jams during my next few filament changes; I think there is some remaining filament melted to the inside of the heat break further up than it ought to be. But it does continue working, extruding properly.

(I've tried using the atomic method to clean it up inside, but I just can't find that sweet spot where the PLA is pullable but not too melted)

On the software side, I am getting more comfortable with Cura and OpenSCAD and I've been able to contribute a few designs to thingiverse, a few remixes but mostly original items. The firmware of the machine itself is adequate, though you do have to get used to a few quirks. The main quirk occurs when you want to print again immediately: Cura writes out an ending sequence like: Turn off heaters, wait 5 minutes, turn off fan. After "turn off heaters", the front panel UI acts like the part is done and returns to the main screen. But if you actually try to print something again immediately, the 5 minute wait is still going on and doesn't seem possible to cancel. At this point, it's easiest to just power-cycle the printer. (But it's good enough that I don't care to spend weeks figuring out how to replace the control's firmware with a proper, source-available firmware, or replace the whole control with linuxcnc, despite the superficial feasibility of either option)

As far as modifying the printer itself, I haven't done (or had to do) much. The fan sounds pretty bad, and sometimes the whole machine rattles pretty loudly when moving; I probably could do something about this by either making sure all the screws are well-tightened and/or trying some of the vibration-reducing designs on Thingiverse. I haven't had to change anything about the wiring or electronics; overheating is not a problem in my 20C house (but just wait for summer..). I did print a little "filament guide nut" that goes at the entry to the bowden tube, and a spinner for the extruder just so I can see at a glance that it's working properly, but that's just about it.