Oh, look, a new posting.

Yes!  Just in time for New Year’s Eve … a new posting in the blog-thing.  Well, not much of a posting if truth be told.  But something.

Anyways, I’ve been tweaking some of the pages to make them easier to read.  Got rid of the table-based display that put images on one side and text on the other.  It was what the old web page had, and I simply did a quick copy-and-paste, with the expectation to properly fix them for the blog ‘real soon’.  Turned out to be later than sooner, but such is life and laziness.   So far I’ve done the Halloween and some of the scrollsaw stuff.

Oh, in November I successfully completed the NaNoWriMo challenge to write a 50,000 word novel in 30 days.

2013-Winner-Twitter-Header

It’s actually a complete novel with a beginning, middle, and end!  I’ve very pleased with myself, truth be told.  Am currently working on turning it into a finished piece, and self-publishing it as an e-book.  Been reading up on that sort of stuff, and it is rather more involved than I’d initially thought.  Fascinating to discover all the details involved in completing a book … writing it is only about 25% of the effort!

Anyways, Happy New Year to all!  I’ll try to update the blog more frequently.

Using correspondence analysis to analyze Canadian federal budget speeches, 1966-2013

I’ve recently successfully completed at coursera.org in data analysis, and several courses that make use of the R language.  Feeling flush with my new-found powers, I looked around for something to analyze, and the recent federal budget speech caught my attention.  I created (and tweeted) a quick&dirty word cloud picture of the budget … that’s a diagram created from the most popular words in a text document, with the size of the words proportional to how often that word is used.  Real pretty, but pretty empty of quantitative usefulness.  So I did a bit of research and discovered a rather nifty technique for analyzing textual documents, correspondence analysis.  And thus began my decent into figuring out how to use this to analyze budget speeches, then a search for as many budget speeches as I could find (that took a while!).  After tinkering with data and algorithms and code (oh, my!) I came up with some rather intriguing (to me, at least) results.  Here’s the rather formal

Using Correspondence Analysis to Analyze Cdn Federal Budget Speeches 1966-2013

 

Here’s the data and code for the analysis :

CorrespondenceAnalysisPrograms

Federal

As a teaser (or for those of you who just want a pretty picture) here’s a diagram that summarizes the results.  It’s amazing how much work goes on behind the scenes to produce a single pretty picture!  To summarize, I analyzed each budget speech and reduced it to a set of numerical values (“dimensions”).  This plot shows each budget speech plotted on a X-Y plot, showing how each varies in relation to all the others.  Curiously, it shows how the budget speeches evolve over time (as opposed to random changes), and how the budgets tend to get tweaked for elections (surprise, surprise).

Federal_CA_partycolours

Anyways, I had a LOT of fun playing around with this, and plan to do some more.  Hope you enjoy it!

 

[February 5/14 … the links to the report and files got broken, but are now fixed]

Investigating the effect of speed on print quality

One thing I’ve noticed in some of my prints is the tendency to “drool” a bit on the edges, sort of like a hernia.  This is caused by the extruded plastic layer still being soft when the next layer is put on top of it, causing the bottom layer to bulge out a bit (or even a lot).  This will typically be seen when the perimeter of the piece is small (makes sense, right?).  The obvious solution is to give the layer time to solidify, and easiest way is to simply slow down the speed of the head.  I recently ran a small experiment to test the effect of slower speeds.

For my test piece I chose something from Thingiverse called “cthulhu2”.  It’s not too big, so it’s not overly expensive in terms of time to print … that is, I can do it in the evening after work.

The normal speed that I use is 60 mm/second (recommended by the manufacturer).  For testing, I tried 30 mm/second.  Overall, this seemed to help, but wasn’t a complete cure.  I also tried printing at both 0.1 and 0.2 mm/layer.  The following pictures show the results.  If the pieces are numbered 1 through 4, left through right :

piece  layer  speed            infill      time-t0-print

(mm)  (mm/sec)                  (minutes)

1          0.1         30                1.5        162

2          0.1         60               3            192

3          0.2         60              3            75

4          0.2         30              1.5        85

 

Reducing the amount of infill certainly improves the speed, but there’s always a danger of droops at the top or at overhangs.  There’s no evidence of droop at the tops here, but #4 does show a bit of a problem on the tummy, just below the hands.

You can certainly see the effect of printing at 0.1 and 0.2 mm/layer, both on the quality of the print and the length of time it takes to complete the print.

I list the SLIC3R parameters after the pictures.

 

Here are some pictures of the pieces.  Keep in mind that these correspond with the piece#, from left to right.   You’ll want to zoom in to see all the types of issues, and how it changes from piece to piece.

 

front view
front view
right hand side
right hand side
rear view
rear view
left hand side
left hand side
top view
top view

 

The STL files were sliced with the SLIC3R program.  Here’s a sample printer ini file :

# generated by Slic3r 0.9.1 on Sun Sep 30 13:36:08 2012
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
complete_objects = 0
external_perimeter_speed = 100%
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extrusion_width = 0
fill_angle = 45
fill_density = .15
fill_pattern = honeycomb
first_layer_extrusion_width = 200%
first_layer_height = 100%
first_layer_speed = 70%
gcode_comments = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_speed = 60
layer_height = 0.2
notes =
output_filename_format = [input_filename_base].gcode
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 30
perimeters = 3
post_process =
randomize_start = 1
skirt_distance = 8
skirt_height = 1
skirts = 2
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_speed = 60
solid_layers = 3
support_material = 0
support_material_angle = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_pattern = rectilinear
support_material_spacing = 1
support_material_threshold = 45
threads = 2
top_solid_infill_speed = 60
travel_speed = 160

Tarbosaurus – a work in progress

Here’s a fascinating dinosaur fossil model.  It’s the top half of a jaw+skull, scanned by a company named Artec, which manufactures 3D scanners.  This model was then sliced into 4 pieces for easier printing (http://www.thingiverse.com/thing:14173).  I’ve printed the two pieces of the front half :

tarbosaurus (work in progress)
tarbosaurus (work in progress)

 

Printed with 0.2mm layers.  The bottom part took about 4 hours, and the top part about 2 hours.  There are 2 more pieces to print, and they’ll take similar times I think.

 

Mathematically-based printings

So far my two favourite things to print are fossils and mathematically-based models.  The former because it’s almost impossible for most people to have hands-on access to fossils, and they really are fascinating.  The latter because it’s the ethereal made real.  There are some excellent artists out there who are not only creating mathematical models, but also sharing them.

This one is a twisted cylinder with a Veronoi surface applied to it :

Veronoi Tower
Veronoi Tower

 

It’s printed with 0.2mm layers, and stands 3.5-inches tall. It took about 3-1/2 hours to print, if I recall correctly.  From http://www.thingiverse.com/thing:23496

It’s hard to get a good picture of these 3-dimensional constructs.  This is really shown by the next object :

Cellular thing
Cellular thing

 

Source : http://www.thingiverse.com/thing:19104

Printed with 0.2mm layers, but could really use 0.1mm judging by how some of the thing strands turned out.  It’s shape, if you can’t quite see it, is like a hollow donut with the skin formed by an open-celled membrane.  It stands just shy of 4-inches tall (the limit of my printer).  As you can see, it needs a bit of cleaning up … but that’s pretty normal.  It took about 6 hours to print.

 

 

Printed dinosaur skull

Here’s the completed dinosaur skull that I’ve been working on for a couple weeks.  It’s printed in 3 sections, 2 for front and 1 for the rear, and then joined together using acetone.

The model was created from tomographic scans of an actual fossil, so it shows the interior details of the skull.  Really interesting!  It’s probably the closest most people are going to get to being able to handle a fossil skull, and examine it in detail and at their leisure.

No-one seems to know the species of this particular specimen, alas.  But it sure is amazing!

Dinosaur skull
Dinosaur skull

The files were obtained from http://www.thingiverse.com/thing:14248

I printed it with 0.2mm layers, and the front pieces were printed with support material.  Printing all 3 pieces together takes about 6 hours … which is less than printing each piece separately.  The teeth are a bit iffy, but that’s probably because I printed at 0.2mm spacing … 0.1mm spacing would probably make those small structures nicer.

 

 

Halloween creation

Here’s a little something that I printed out in time for Halloween!

The Great Pumpkin lives!

 

This lovely critter stands almost 90 mm tall.  He was printed with 0.2mm layers, 30% infill, and took about 5-1/2 hours to print.

The file was obtained from http://www.thingiverse.com/thing:31264

 

 

Some successes in 3D printing

Despite some initial problems, I’ve managed to make a few good prints.

owl print
owl print

 

I get a lot of the 3D files from http://thingiverse.com, by the way.  Lots of stuff there,from trivial to utilitarian to just-for-fun.  One really neat thing is 3D scans of fossils!  It’s the closest someone like myself will ever get to handling fossils (and that’s a good thing, actually).  One nice one is printed in several pieces that need to be assembled.  So far I’ve printed two of the jaw pieces :

part of a dinosaur skull being printed
part of a dinosaur skull being printed

 

Another fun thing to print out are mathematically-based creations :

veronoi_D_tower being printed
veronoi_D_tower being printed

It’s something of a process to get from an “image file” to the printed product.  I’ll discuss that next time, but thought I’d show you some of my successes before showing problems and failures.  But it’s all great fun!

 

3D printers – the journey begins

My latest toy is a 3D printer.  Basically it prints 3D objects using plastic extruded through a hot nozzle.  They’ve been around for years, but have cost tens of thousands of dollars.  In recent years, however, a variant has emerged that is orders of magnitude cheaper, making it affordable by mere mortals.  Very much like the early days of desktop computers!

So anyways, after doing a lot of reading and even more lusting-after, I finally bought one!  It’s made by a local company called Eckertech (http://www. eckertech.com).  Although tempted to buy the kit version and save some money, good sense triumphed and I bought the assembled version.  It really is a well put-together unit, and came with a figurine printed as a final test, 1-lb of plastic filament, and a few other useful bits and pieces.  Here’s what the Eckerbot looked like out of the box :

Eckerbot as-received
Eckerbot taken out of the shipping box. It’s well packed!

After carefully unpacking :

Eckerbot unpacked
Unpacked and ready to go.

I installed the required software (Repetier) and … and … nothing worked.  ACK!  ACK!  Long story short, it didn’t work under Linux (my o/s of choice) but worked fine under Windows XP (my secondary o/s).  Ok, so with the printer talking to the software I printed a simply test object (a cube) and got :

first attempt at printing
first attempt at printing

 

Not too impressive, is it?  In fact, it is crap.  The printer came with no instructions of any sort , so I glared at it, read some more stuff on the Internet and realized that the extruder head was too high off the bed.  Well, that didn’t make any sense.  After a couple days of emails with the manufacturer, we determined that the home-switch for the Z-axis (vertical up/down) was too high.  It probably got bumped while I was unwrapping everything.  Pretty obvious after the fact, but tough to diagnose for someone unfamiliar with such things.  So then I had to move the switch … which was set too low, and the head drove itself off the shaft.  ACK!  Long story short, I have become pretty good and re-aligning everything!  And have managed to get some stuff printed off :

Early printing attempts.
Early printing attempts.

AAs you can see, some attempts were more successful than others!  But each failure is a step along the path of learning.

The journey begins.

 

 

 

My thoughts on turning 60

Well, today I turn 60, so I shall indulge myself more than usual and wax philosophical.

Everyone tells me that 60 is a real milestone.   Whoopee shit.

I can distinctly recall my early-teens self thinking forward to the year 2000, and realizing how impossibly old I’d be then.  But imagining myself past that point was pretty much impossible … it was just too far away, and beyond understanding.  And now here I am.

I can honestly say that the so-called milestone birthdays never really bothered me at all.  Hitting 28 was a bit of a shock, but only because I realized that I wasn’t a kid any more and needed to figure out what I wanted to do with my life.  Aside from that birthday, none really felt like a special milestone in life.

But hitting 60 is kind of hitting me between the eyes.  In my early 50’s I realized that my body was truly starting to wear out in strange and disturbing ways, and no amount of wishful thinking was going to gloss over that fact.  Nothing too serious, but I just couldn’t abuse my body like I used to … it simply didn’t bounce back like it should.  Despite that I still could think about “the future” and “career path” and hope for better times.  But it soon became obvious that old (ie. over 30 or 40) programmers don’t have career paths or career prospects, just jobs (if they’re lucky).  And that’s not necessarily a bad thing, since non-work activities often become more important in our lives.

One of the people that I follow on Twitter, Brian Marick ‏ @marick, put it nicely when he declared that we need to start managing our decline.  He was talking about old programmers (of which I am one), but I think it has a more general application.  He complained about feeling disconnected from the zeitgeist.  Hell, I’ve never felt all that connected to any zeitgeist, so that’s not bothering me too much.  Maybe it’s simply that, as I jokingly tell my friends, I’ve become the person that I used to mock.

On the plus side, my health isn’t too bad … no major breakdowns, at least.  And I’ve finally got a vague clue of how things work – better late than never, I suppose.

On the downer side, it’s all too easy to dwell (or even obsess) on the “coulda, woulda, shoulda” stuff.  Worry about the bridges burnt and the ones never crossed.  Lots of that to go around.  Not to mention the aches and pains of a body that is well past it’s best-before date.  Or maybe worry about the lack of career opportunities … or even jobs, if it comes to that.   And you get to watch the young ones, who can’t be bothered to listen to you or anyone else, repeat the same old mistakes (often more than once).

But all in all, life ain’t too bad.  Sure things could be better, but they could be a whole lot worse, too.  The trick, I think, is not to dwell too much on past mistakes or triumphs.  What happened in the past belongs in the past.  Our struggles to create our future define us as much more than our pasts do.

I’ve always enjoyed Tennyson’s poem “Ulysses”, and the last verse has always stirred my soul.  More so as I’ve gotten older :

Tho’ much is taken, much abides; and though
We are not now that strength which in old days
Moved earth and heaven; that which we are, we are;
One equal temper of heroic hearts,
Made weak by time and fate, but strong in will
To strive, to seek, to find, and not to yield.