Saturday, December 29, 2012

Finally got the Makerbot Replicator 2 3D printer yesterday.

First impressions are very good, both software and hardware.

The ordering process.

I probably ordered at the worst possible time.  I ordered on 22nd of October 2012, just days before the big storm came through.  I sent a money order a few days later. It took 9 days for them to even get my check and then a few days to post it to my account.  By then over 2 weeks had passed.  When I first ordered it I should have gotten it by the beginning of Dec.  Instead, because of the delays in mail delivery and processing the order caused by Sandy, and my own request to send it a few days later, the order arrived on the 28th of December.

Support was very polite and responsive to me, when I wanted to make sure my money order got there, and when I needed the delivery date extended out a week so that it wouldn't arrive when I was travelling.

Overall I am very impressed with the service I received in the face of a new production line and horrible weather.

The hardware is a Replicator 2 from Makerbot.

The device itself is not much bigger than an older laser printer.  It is made very sturdily and the device is very professional and futuristic looking.  The build platform is lit up with LED's that can change color, turning redder and redder as the extruder gets up to temperature is a nice touch.

The small control panel is brightly back lit and the main button is a  lighted up M and is surrounded by 4 directional buttons to allow you to scroll, or return.  The buttons are very sensitive and have a rubber cover on them that seems sturdy.

After I got the delivery, I unboxed it, set it up, levelled the platform and was printing from the SD card in about 10 minutes after I got it.  I had read the manual again on Thursday in anticipation of the delivery on Friday. I printed out all 5 of the demos on the SD card just to demonstrate that everything worked right.  Everything printed out first try and the accuracy and precision of the machine is mind boggling.  I printed the comb and then realized that each tooth of the comb is a loop, not solid.  This makes each tooth amazingly flexible.  The fact that it printed out these single layer of plastic loops about 50 stacks high and it looks perfectly smooth is much better than I had even hoped to see in my wildest dream.

The software is Makerware.
Today I installed the Makerbot 3D printing software on my fastest machine, which is currently running windows.  I have been using this as my windows game box for about 5 years now.  The software currently runs better on the windows box than it did on a linux box I tried it on about a month ago. Installation was effortless, and after I installed the software I turned on the printer, and windows loaded the driver for Replicator.  I was able to load in an stl file, adjust the items scale, move it, and rotate it easily and look at it from any angle I wanted using the software.  Printing is as easy as pressing a button on screen and accepting some simple options.

The yoda head appears to be what all the cool kids are printing, so I printed one as well.   I printed out a scaled down yoda head in medium quality and am currently printing out the yoda head in high quaility.  At .270mm the layers are very visible.  At .100mm the layers are much less obvious.

Printed the one on the left at high resolution, the one on the right at low resolution. Took 45 minutes for low, an hour and 45 for high. It is very hard to see any lines at all in the high resolution print.
The next thing I am going to print is a planetary gear to demonstrate how accurately it can print parts that fit together with tight tolerances and that move against each other during uperation.  I will also try to print a few other things I downloaded from  After that I will try to design and print my own 3D object very soon.

The future.

This is the model T of 3D printers, and this is going to be a major workhorse in the coming few years.  As this technology becomes more mainstream there will be an arms race of features from different vendors.  I can easily see a printer that adds dye as the plastic is extruded in order to color the exterior and give you any color you want. Or one that prints using 5 strands of plastic to give white, black, and a mix of the 3 primary colors, advancing each strand on command to give the color you want at that point of the print. Printing in multiple kinds of plastic so that the support will easily dissolve away or you can print wire traces right into the plastic so you can print a circuit board would also allow so much more flexibility.   There will be advances that we cannot even image now.

Right now this is limited to just a few people, but I can see places like print shops adding a 3D printer that is ran by the staff to let you make a one off copy of something.  Eventually there will be 3D printers that operate almost like a vending machine, you put in your memory card, select which file you want printed, and it calculates the cost to print the item.  You pay, it prints and drops the item into a tray where you can retrieve the object. 

Friday, December 14, 2012

2013 Comet - Don't Panic!

In a year there will be a large comet visible. It may fill most of the sky and may even be visible during the day.  It is predicted to be one of the most stunning astronomical events we ever see in our lifetimes.  Or it could break up and barely be visible.

It is not a sign from anyone, not even God. No, God is not unhappy with humans, so no fasting or self flagellation needed.  Not unless you are into that sort of thing.  No, the Earth is not ending.  No, the Universe is not ending.  Praying won't make it go away even a goggle of a second sooner and it is not any proof that what you prayed for is coming true.  A baby born while the comet is in the sky is coincidence, not a heavenly blessing. It is not going to hit the Earth or any of the other planets or even the Sun.  It is not an alien space craft that you have to commit suicide to hitch a ride on, despite what your religious leader may claim.  Do be on the look out for anyone that believes any of the above are true.  They can be dangerous and may become homicidal or suicidal.

This is just physics and math.  Yes, scientists have known that something exactly like this was coming for hundreds of years now.  It is just random chance that it is happening now, in our lifetimes.  It is a rock and ice object from the Oort cloud which surrounds the sun at about 2 to 10 times the distance of Jupiter from the Sun. Like most objects we detected this while it was just a tiny little dot in the sky invisible to the naked eye.  Right now it is still outside the orbit of Jupiter.

So you humans don't freak out.

Saturday, December 1, 2012

Linux from Scratch on the Rasberry Pi

The Linux from scratch project is a way to build your own custom Linux distribution.  By building a distribution in this way you learn how every part of the system works together.  This would also be a good way to become intimately familiar with all the hardware in the Raspi as well.  The Raspi would be an excellent system to learn how to do this on.

My first Linux box was in 1993, it was a 33MHz 386 with no math coprocessor, 5 MB of RAM, and a 60 MB Linux partition on a 120 MB hard drive.  I managed to fit most of the Soft Landing System onto the computer over a period of 6 months, installing things one at a time (from 1.44MB floppy disk), then optimizing each package, compressing what I could, removing unneeded files.  A Raspi is so far beyond that system that it is amazing to think about it now.

One of the problems with a traditional Linux distro is that it uses the glibc library, which, while complete, is also very heavy and large.  On a system with 4 GB of RAM running at 3.8GHz, this is not an issue.  But when you have a 256 MB system and 128 MB is reserved for the graphics, then every single byte counts.  A solution to this problem is to use the uclibc library to reduce the size of the system and the compiled executables.

I have linked against this small libc version for several programs, and the difference in  compiled program size is amazing.  I have seen 1/4 to 1/10 reductions in the sizes of compiled executables.    You also want to try to compile programs for size instead of speed and use built in executable compression systems such as:

Because the raspi is 4 to 10 times slower than a modern $600 desktop machine, and it has a very slow disk subsystem, then by making the files much smaller than the desktop machine you can load them much faster.  This is not a criticism of the Raspi, because you are comparing a $25 computer against a $600 computer, by any economic measure the Raspi wins everything on a dollar by dollar basis.   By reducing the file size with dynamic linking against smaller libraries and compressing the resulting executables you can get amazingly fast performance because the processor is much faster than the file subsystem.  Of course this could also be done on the desktop machine, but nobody does it because in that case  the disk subsystem is so fast that you don't gain much performance gain.

For the level just above the OS, you need a good, small shell such as busybox.

What busy box does is sit in the bin directory as a single file.  Many of the commands such as "cat" or "ls" are then linked against that single executable and depending on the name it was called by, it can transform and act just like the command itself.  Most of the commands and options for a normal UNIX system are supported.  Once this single command is loaded once, it will stay in memory and you can rapidly run commands again and again, without first needing to load different executables into memory against and again.

There are a variety of small versions of many programs that can easily be put onto a box.  These are commonly found on Linux based routers to provide ssh access, web servers, and the like.  If you just need to share a few files, or run a couple of cgi scripts, instead of Apache, you install Boa:

Instead of the normal ssh you run beardrop ssh:

Once you get to the graphics system, the X window system is actually fairly lightweight at this point.  If this subsystem was compiled against uclibc and then compressed in place with upx, then you could get amazing size reductions.

Then on top of X you need a library like Qt or Gnome to allow applications to be built.  These often come with large collections of applications.  This is where it becomes more interesting.  There may be a better choice for a system like the raspi than the two most popular choices.

One of the things that I would like to do is to analyze what libraries are commonly used by the majority of applications, then standardize on a collection of a couple of dozen libraries that do common tasks, such as processing html, xml, compression, encryption, file retrieval and so on.  Instead of using 12 different libraries that all do the same thing one function, you port any program you want to run on the box to use a much smaller standard set of libraries.  This reduces the memory footprint of the system and the speed that the system is able to load programs substantially.

You also want to dynamically link as many of the libraries as possible in the system.   If you statically link libraries into an executable, it makes the program more portable, because the library is built into the executable at that point.  This results in that program being larger and each program having to load its own copy of each library into memory at the same time.  With a couple dozen programs running you can easily waste MB of RAM with redundant copies of libraries.

Once I have a system up and running, then it would be very interesting to start looking at how to get to a login prompt as quickly as possible, and then get to their desktop as quickly as possible once they have logged in. We may be able to load in common libraries in memory in the background so they are ready when a user successfully logs in.  Start other services on the box, such as the web server, over a couple of minutes time in the background.

Back in the late 1980's I used commodore 64 and 128 computers.  These machines were slow.  Start loading a program, walk down to the bottom of the lane to check the mail, drink a cup of tea, come back and still have to wait for the program to load slow.   There was a cartridge that you could plug into the machine, that once a program had loaded into memory, you could click a button and a menu would pop up, allowing you to save the entire state of the computer at that point.  After that you could speed load that saved position in just a few seconds, instead of the multiple minutes that many of the games took to load.

It would be very interesting if we could snapshot a computer at the login prompt so that we could speed load the system to this point in just a second or two, instead of up to a minute. Almost an instant on.  As the user is logging in, other things can be loaded in the background. Of course, if we updated the system, then a new snapshot would have to be taken. 

Thursday, November 29, 2012

Speech I gave regarding Slaughterhouse-Five.

Slaughterhouse-Five, or The Children's Crusade: A Duty-Dance with Death
by Kurt Vonnegut
published in 1969

Specific Purpose/Goal:
 I want my audience to understand the importance of the book and how it was a book of its time and period, that it continues to be important to this day.


Attention Getter

Poo-tee-weet.  Slaughterhouse-Five is not fiction.  Yes, the story is set in a fictional setting, but the people and the majority of the events all actually happened.  The time travel and space aliens were a necessary hook that was needed in 1969 in order to engage with a public that was divided over the war in Vietnam. 


Slaughterhouse-Five, or The Children's Crusade: A Duty-Dance with Death
by Kurt Vonnegut
Written for 24 years until it was finally published in 1969.

Audience Adaptation

I am qualified to talk about this book because I am from a family that all serves in the military.   Beyond that I have always loved science fiction and have read thousands of sci-fi books. 

We should care about this book because it touches the very core of what makes us human.  We keep doing what we know we should not do.  About how limited we humans are. This book is a book about ending war, but it was written knowing that such a thing is impossible.  Must like the futility of war, we also engage in the futility of ending war. 

The first thing I am going to talk about are the main themes of the book

The second thing I am going to discuss is the setting of the book when it was finally published.

Finally I am going to talk about why the book continues to be important to this day.

The first thing I am going to talk about are the main themes of this book.  The book is unashamedly anti-war.  Most soldiers are antiwar, but none so much as Vonnegut. But the book recognizes that we will always have war. In the introductory chapter a friend's wife forces him to promise to not to glorify war because she doesn't want her children to die in a war, so he devotes the book to her, promising to title it, The children's Crusade, winning her over.

The title and a few references to "The Children's Crusade" got me to look up this event that I had never heard of before.  I am sure that many people don't know about this swindle until they read this book as well.  Approximately the same number of children were enslaved as lost their lives in the fire bombing of Dresden.

Vonnegut was a prisoner of war in Dresden when it was firebombed by his own side.  He was very upset that the details of this bombing had been kept from the public for many years after the event.  His book helped to put a spotlight on the events of that day and how wrong they were. 

Vonnegut learned in college that there were no villains (Vonnegut, 15) and so he never put a villain in any book that he ever wrote.  The characters in the story are all based on real people that Vonnegut met in the war.  But they are composite characters, stereotypes, everything of one trait pulled into a single character and then named so as to obviously reflect that trait.  Wildhack,  Lizzardo, Weary, Trout.  The German soldiers are just as pathetic as the Americans, either too old or too young, so they are not portrayed as evil villians so we can feel good when they die.

The main character in the book, Billy Pilgrim, is a goofy unhero.  He basically just responds to events as they happen without really planning for anything or thinking anything through.  When things get tough he switches to another time. When that doesn't help he retreats to the safety of a mental hospital.  Billy doesn't physically travel through time, his time travelling is described in a way that is similar to daydreaming. 

The time travel gimick is used to good effect in order to feed us the events of that horrible day in Dresden a little bit at a time, then to redirect our minds to some other more pleasant time.  But by the end of the story we know exactly what happened to Dresden on the day it was firebombed and we can vividly imagine what the city looked like before and after it was bombed and how few escaped, because we know that nobody got to the inn from the city, but the few Americans and their guard.  We know that corpses of a firebombing look like charred logs.

The aliens in the book, from the planet Tralfamadore, that kidnap Billy and take him to a love nest with a porn star, are exactly the same as the aliens in a science fiction book that Billy read in a mental hospital.    The Tralfamadorians see all of time at once, like the Temped character in the Weed of Time.  They focus their perception on the beautiful moments.  They tell Billy that nothing really matters because one of their test pilots is going to blow up the Universe by pushing a button to start an experimental craft.

Secondly is the setting of the book when it was finally published. 

1969.  It is the greatest year in human history, we felt that we could do anything, that anything was possible.   This was the year we walked on the moon.  The Woodstock concert happened, an event which not been topped to this day.  This was the height of the hippie movement in America, with free love and peace.  People where doing drugs that they believed where expanding their minds to higher planes of understanding.  PCP, LSD, Mescaline...

The year 1969 has to be the most often mentioned year in songs.   

"The 25th Of December 1969" - May Blitz
"Summer of '69" - Bryan Adams
1969 - The Stooges with Iggy Pop
Running on Empty-Jackson Brown
Lonely Boy-Andrew Gold
Hotel California-Eagles

Against this backdrop was the Vietnam war, a war where America won every battle, but ended up losing the war.  Nixon would begin carpet bombing Cambodia without the permission of Congress in the following year  Essentially he was waging his own illegal personal war against an entire country.

With the end of the Vietnam war, the last of the hippies took off their tie died shirts, put away their tambourines, got jobs, and sold out to the man.

All of this combined to elevate the book to amazing popularity in a very short time.  An instant classic, it allowed Vonnegut to write full time and enjoy acclaim and success in his writing career.

My final point is that this book continues to be important to this day.  According to the American Library Association, Slaughterhouse 5 is the 29th most banned or challenged book in America.  There was even a challenged last year in Missouri ( that resulted in 350 books being donated to the 350 students that were denied access to this classic book.

The book is challenged based on it being “depraved, immoral, psychotic, vulgar, and anti-Christian” according to a circuit judge and “anti-American, anti-Christian, anti-Semitic, and just plain filthy" according to a school board in Levittown, New York (

Indeed the book is anti-American because it is antiwar.  We Americans have an unfortunate tendency to glorify war and soldiers.  Never has this been more true than today. 

In conclusion

"War must be, while we defend our lives against a destroyer who would devour all; but I do not love the bright sword for its sharpness, nor the arrow for its swiftness, nor the warrior for his glory. I love only that which they defend."
 J.R.R. Tolkien, The Two Towers

We still fight wars to this day, so in that the book failed.  But nobody has firebombed a city as we did to Dresden in 1944, since this book was published.  So maybe by bringing a light to that shameful incident the book has indirectly acted to moderate war.  And maybe less people mindlessly glorify war than once did as well. 


Monday, November 26, 2012

Solving the energy crisis, polution, and global warming

Simple solution to clean up fossil fired electric plants, make us independent of oil, clean up ground water of nitrates and phosphates, and fix global warming.

Take all the fumes from the chimney of the coal/gas fired plant and bubble it through large tanks filled with algae, and then continuously refine diesel oil from the algae.  Use coal fired plants to warm and feed the algae C02.  The CO2 is captured by the algae and then used in our cars.  Large algae tanks on top of every building in every city would scrub more C02 from the air.

The great thing about the algae is that it would be easy to filter from water, you just need a strainer, so it would be simple to concentrate and ship to small refineries to extract the oil. And then you can run all the new cars we sell in the US off the bio-diesel.  You could even run an electric plant on biodesiel that is produced in a few square miles of tanks surrounding a plant.  Much of the energy from the sun falling on square miles of algae could be captured.

It is claimed that current methods of trying to use algae as bio-fuel is not maintainable. but that is because they are trying to treat a tank of algae like a field of beans.
The complaint of using too much water is nonsense, because you can just use salt water from the ocean for algae production. Algae grows great in brackish or otherwise dirty water.  The treated output from sewage treatment plants could make a great input to the algae tanks, otherwise useless water that is polluting lakes and rivers.  One of the issues with this waste water is that it creates algae blooms that kill the rest of the life in a river.

Sewage can be use used as fertilizer for the algae with just a little processing.  Ironically, phosphates and nitrates are a huge problem for the environment from sewage treatment plants. I don't see excesses of anything as a problem.  I see an output looking to be utilized as an input to another process.   Any nitrates not provided by the treated sewage could  be provided by using alternative methods to get the needed nitrogen from the atmosphere, such as using the same bacteria that clover uses to create nitrates.   If we are using single celled organisms for fuel production, why not use bacteria for nitrogen fixing as well?

The heat and massive amounts of CO2 bubbling through the algae tanks would maintain massive growth.  Air can be bubbled through the tanks to rapidly extract excess CO2 from the atmosphere. The treated waste water from the sewage treatment plant would feed the algae, preventing our rivers, lakes and ground water from becoming poluted.  Bacteria can be used to provide the rest of the needed nutrients as they do in the rest of Earth's biome.

Monday, November 19, 2012

Time Value of Money

My accounting book had two tables that we used to perform some functions to evaluate investments and to get rates of return.  I was curious about how to generate those tables and the magic behind the functions built into financial calculators.  So I looked up the math behind the tables and wrote a couple of small programs to create the tables.

I found the formula for present value from this web site:   The code I wrote for this function is as follows:

#include <stdio.h>
#include <math.h>

main ()

  int timelength = 40;
  int t = 1;
  double r;

  printf ("Net Present Value.\n");
  for (t = 4; t < 26; t++)
    printf ("\t%d%%", t);
  printf ("\n");

  for (t = 1; t <= timelength; t++)
      printf ("%d\t", t);
      for (r = 4; r < 26; r++)
        printf ("%f\t", 1 / pow (1.0 + r / 100, t));
      printf ("\n");
to compile this you need to use the -lm flag
gcc -lm filename.c -o npv 

The output is tab separated and  can easily be imported into a spreed sheet program and formatted.


We also had a table to calculate the future return on an Annuity, and I found the way to calculate the table with the formula on this page:

#include <stdio.h>
#include <math.h>

main ()
  int timelength = 40;
  int t = 1;
  double r;

  printf ("Present Value of an Annuity.\n");
  for (t = 4; t < 26; t++)
    printf ("\t%d%%", t);
  printf ("\n");

  for (t = 1; t <= timelength; t++)
      printf ("%d\t", t);
      for (r = 4; r < 26; r++)
        printf ("%f\t", (1 - pow (1.0 + r / 100, -t)) / (r / 100));
      printf ("\n");

to compile this you need to use the -lm flag
gcc -lm filename.c -o apv 

The text output that this generates looks like:


Wednesday, November 14, 2012

Building a motorized turn table for 3D photography

In a previous post I built a camera controller to take pictures of lightening.  This was based on an arduino controller which still has many pins free to use in another project.  I am going to multi purpose the camera controller so that it can also control a stepper motor controlled turn table.

In order to do this I will need to
  1. develop a menu controlled selection to switch between the two modes of the controller.
  2. add a connector to control a stepper motor.
  3. Build the stepper motor into a device that controls the rotation of a turntable.

I may just build the controller into the base of the device with a dial to set the amount of rotation before snapping a new picture.  Doing this will keep the software simpler with no need for a menu to select between modes.

Doing this will allow me to place a small object onto the turntable, and then take pictures of that object from a wide variety of angles.  I plan on taking dozens of pictures from a low angle, resetting the camera to a higher position and taking another set of pictures from that angle.

Then I will have to manually upload the photos to a service that will stitch them into a single 3D model.  Such as autocad's 123D service.  Hopefully someone will develop a package possibly based on hugin in order for we open source people to build our own 3D models in house without depending on a service that could someday start charging serious money.

Tuesday, November 13, 2012

My Uncle's receipe for Vodka Christamas Cake.

Once again this year, I’ve had requests for my Vodka Christmas Cake recipe so here goes. Please keep in your files as I am beginning to get tired of typing this up every year! (Made mine this morning!!!!) 
 1 cup sugar, 1 tsp. baking powder, 1 cup water, 1 tsp. salt , 1 cup brown sugar, Lemon juice, 4 large eggs, Nuts, 1...bottle Vodka, 2 cups dried fruit. Sample a cup of Vodka to check quality. Take a large bowl, check the Vodka again to be sure it is of the highest quality then Repeat. Turn on the electric mixer. Beat one cup of butter in a large fluffy bowl. Add 1 teaspoon of sugar. Beat again. At this point, it is best to make sure the Vodka is still OK. Try another cup just in case. Turn off the mixerer thingy. Break 2 eegs and add to the bowl and chuck in the cup of dried fruit. Pick the fruit up off the floor, wash it and put it in the bowl a piece at a time trying to count it. Mix on the turner. If the fried druit getas stuck in the beaterers, just pry it loose with a drewscriver Sample the Vodka to test for tonsisticity. Next, sift 2 cups of salt, or something. Check the Vodka. Now shit shift the lemon juice and strain your nuts. Add one table. Add a spoon of sugar, or somefink. Whatever you can find. Greash the oven. Turn the cake tin 360 degrees and try not to fall over. Don't forget to beat off the turner. Finally, throw the bowl through the window. Finish the Vodka and wipe the counter with the cat.

Saturday, November 10, 2012

3d printing notes and links

Every task that we humans do can be broken out into a series of steps, a chart of the work flow that we have to take from beginning to end.  Most of learning a job comes from discovering the most efficient path to most rapidly and cheaply complete what needs to be done.   3d printing is no different.  Was I have been exploring the past couple of weeks, in anticipation of getting my own printer, in 4 to 6 weeks, I have noticed that nearly every post contains some little hint, or pearl of wisdom that was probably very hard fought to figure out.  This page is an attempt to condense all this information into a single place for my own use, and for yours as well.

There is also a culture on the website, where giving proper attribution is important.  It is built into the website.  Although I believe there is one weakness, when you make a derivative of one work you click a button to create a new page.  But what if you combined two peoples work equally?  I see many people trying to give credit as well as possible, but then having to cut and paste links to the other people's links

Overall the process of 3D printing goes like this:

For the new user:
  1. Find a pre-made model
  2. Load model into printing software that came with the printer
  3. Press print
  4. It prints or it does not.
  5. Randomly adjust settings, repeat 3

This is pretty much where I am now.

I have started trying to learn more than this, so that when my printer arrives, I can start printing my own designs.  The workflow for designing a 3d shape for printing goes like this:

  1. Use software to create a shape.  
  2. Export this into a format that can be imported by printer software.

This seems easy enough.  Just two steps.  Except that you might need to create simple shapes, or start with an existing model or two and then move the files from one application to another in order to get access to features that one has, and the other does not.

You can take one shape and subtract it from another shape to create a unique mashup.  Maybe you add a slot to the back of a sculture so that it will fit the head of a nail in your wall.  Or you could fit a vesa mount onto one or more cases so you can screw a computer to the back of your LCD monitor.

But how do we do that?  One person on the site had this to say:

How to get a model from Sketchup into Blender: export as a Google Earth object, change the extension of the saved file to .zip, open the archive, retrieve the .dae file in the 'models' subdir and import that into Blender using the 'import Collada 1.4' option. 

That would take forever to figure out on your own.  Even with the directions someone could look at that and just see Greek.  So there are tricks to converting between each of the more popular applications that other people have figured out over time.  

Another person says: 

I spent several months like that when I started printing. NOTHING %$#!ing worked and I was ready to throw the damned thing (a Cupcake) out the window.
Start with an easy goal and just focus on learning how to do that well. Take notes, change one thing at a time, get a feel for what the different settings do. Don't go for layers at 2 microns or printing at 7000mm/s. Pick a simple target, stick with it until you make progress, figure out how you made progress. Don't be afraid to ask questions.
Unless you have broken hardware, you have enough hardware for now - throwing more at the machine (usually) just adds complexity. The hard part is understanding what the software is doing and developing a routine.
The biggest and most common mistake I see is that people start with the assumption that they understand what's going on. I did it, too - I'm a senior software developer so I should be good at this right out of the gate, right? Wrong. Months of frustration worth of wrong. Once I got that out of the way, I started making progress pretty quickly.

What are these major 3d modeling software for 3D printing? Ways to design your initial 3d shape:

3D animation software:

One problem you are going to have is that the traditional 3d model is just an outline filled with empty space.  It has to be converted into a solid model  so that the printer software can handle it using the following software:

3D solid modelling software:
Google Sketchup
other 3d modellers
Some people have been using the processing language to generate the models.

What you see mostly on the site are files that end in .stl extensions.  These files are the shapes, ready to be put into the printer software and printedBefore you try to print something as a newbie, read the comments, and check to see if anyone else has posted a print that they made.

Applications to do this for my Makerbot Replicator 2 include:


Once you have finished the print, how do you make it more durable for real world use?  Screws will not hold well in plastic without some helpA screw can pull out, or crack the plastic.  This page reminded me about metal inserts:

You can get a variety of Heat set inserts for plastic pieces from a variety of sources such as McMaster:

"During installation, heated plastic flows into the insert's knurls and ridges. When the plastic solidifies, the insert resists torque and pull-out. Install or remove using a soldering iron with an installation or extraction tip (sold separately). Inserts are made from brass, which is nonmagnetic, corrosion resistant, and electrically conductive. Thread class is 2B for inch sizes and 6H for metric sizes.  Use the soldering iron with installation and extraction tips (sold separately). Operates on 120 volts AC, 60 Hz, 40 watts."

I have used these before with a plastic case, you just push them in with solder tip that fits them, for smaller ones the solder tip on a normal soldering iron works fine. 

Got Moodle 2.3 up and running fast as a vmware appliance

After fighting to install moodle 2.x for a while, I found a site that had moodle 2.3 already installed and configured as a vmware appliance. So you boot it up in vmware and it runs a virtual instance of the server on your box. No install needed and you can easily revert back to a previous version if your changes break things.

The appliance is from here:

VMWare player, the latest free lite version of the software can be found here:

I followed the directions here to get the player loaded onto my Ubuntu 12.04 laptop: 

This is very similar to images on ESX servers based on the high end vmware software.

VMWare might grab your mouse and not let go, hit the control and alt keys at the same time to get your mouse back.

There are a lot of other virtual appliances all configured and ready to go at this site:

Friday, November 9, 2012

My world famous burrito style hot dogs

 Very good, and a lot less messy than traditional hot dogs. The thin bread gives you a lot less carbs than a regular bun. 
  1. Lay out the flour tortilla.
  2. Put mustard, ketchup, relish, cheese, onions, chilli sauce, anything you would on a regular hot dog. 
  3. Spread it out to about an inch from the edge. 
  4. Put two hot dogs in the middle of the tortilla, side by side. 
  5. Fold the bread up over the ends of the hot dogs to seal the ends.
  6. Fold the two sides up and over top the hot dogs, overlapping the two sides.
  7. Roll it up in a paper towel, microwave for 30 seconds, 
  8. Flip, microwave 30 more seconds, 
  9. Wait a minute for the heat to evenly distribute. 
  10. Then eat!

Sunday, November 4, 2012

the raspi as a business solution

I first used an X-terminal in a computer lab in the early 1990's.  I was an instant convert.  The screens were only monochrome, but they were 21", which was amazing, compared to the usual 12" screens that most people had.  But what was really amazing about the computers, was that no matter which terminal I logged into, I had complete access to all my files and all my programs.  And I was connected to a very powerful sun server that could crunch numbers faster than any desktop machine I had ever used.   As I moved into the windows world I was never satisfied with having my files only on the one computer.  Sure, I could save the files to a network drive, too, but then which file was the up-to-date file?  And even if I access the file from another desktop machine, there is no guarantee that the software will be installed on that machine, which means having to purchase another copy of the software.
As a concept, I am going to get a higher end raspberry pi, print out a vesa mounted case and mount it to the back of a monitor.  At that point I am going to configure the raspi to connect to my main linux server using XDMCP using the instructions here:

It would also be possible to go full Linux Terminal Server Project (LTSP) and have a raspi boot into that framework, they are working on that here:

I am more interested in configuring the raspi to connect as an X-terminal to my main server.  Monitors are dirt cheap now, and so is the raspi, so combining the two of them together and having them connect to a very powerful back end server is a powerful solution for both home and business.

X-terminals take almost no maintenance and you could replace the entire raspi setup for just $25.  A 20 inch monitor is just $110.  Throw in a keyboard and mouse for about $15 and you can put a complete computer in for just $160 a seat.    A 26" monitor would just add $60 per seat. 

Instead of spending $600 a seat on 10 desktop computers and a couple of thousand dollars on a server, you can spend $1600 on the computers, and then build an amazingly powerful main server with part of the $6,400 you would have spend on the weak desktop machines and weak server in the first scenario.   This main server will be much faster than any desktop machine.  Dual quad core with 32 GB of ram, mirrored raid drives. 

The x-terminals would be on their own network that only connects to the main server.  No anti-viruses needed per seat.  Maintenance is easy.  If the terminal is down, just swap it out with a different one.  Until the terminal is replaced,  all a user has to do is to log into any other computer and have full access to all their software and files.   You could even deploy a terminal into someone's home and have it connect into the company securely though the firewall using a Virtual Private Network (VPN), so even that client would only exist on the client network and be completely secure.   

Because all the files are in a central location, backing them up is easy.  I prefer using rbackup.  It creates a full backup, and then incrementally backs up every user file every hour.  It has directories that each look like they contain a full backup at that hour, saving disk space by hard linking back to all the files that haven't changed since the last backup.  It is easy to put a link on each users desktop that directs them to the last backup, or to their backup directory

If users have software that only runs on Windows it is trivially easy to run a single multi-user windows server and connect into that box using citrix to put the window app right onto their x-terminal screen.  This is built into windows server which provides Remote Desktop Services, in a similar way that X-windows works :  You can install anti-virus, anti-spyware,  and all that on the windows box to keep it protected, and physically firewall all access to the windows box to keep it from being infected and taken over by worms and viruses.  And you can mount the directories from the unix server to their home directories on the windows side so that they have full access to all their files on either the Windows side, or the Linux side of things.

I'd do all my print queues and mail through the Linux server, because it is just so much easier to maintain and more reliable.  Where ever possible, switch to free and open software, this is one of many links that describes 75 solutions to replace expensive, unreliable windows software:

You can wean people over to open source software on windows first, and then when they find the same tools available on Linux, they will spend more time working with the identical apps there.

Why would a business change in this way?  Because your competitors are all using Linux and Open Source more and more everyday.  And unless you work continuously to reduce every cost in your company, another company will, and will drive you out of business.   Using open source software effectively provides a competitive advantage over those who do not.

You can reduce administrative costs, effectively eliminate desktop support costs, provide your employees with robust access to their data files and programs, all while improving their productivity by giving them access to a server that is much more powerful than you could otherwise afford. 

How to boil eggs.

If your boiled eggs have a thick rind of green around the yokes, you are way overcooking the egg and making them taste and smell like sulfur.

Start with everything cold, put the eggs in the pot and just cover them with cold water.  Bring the water to a boil as quickly as you can and begin stirring the eggs gently as soon as the water starts to boil.  After about a minute your eggs should be at a full boil.  Turn the heat off and cover the pot to keep the heat in.

That is all the heat the eggs need to finish the cooking process.  You can move them to a back burner.  Now, wait about 20 minutes for medium eggs, or up to 30 minutes for large eggs.  Break an egg open to make sure they are fully cooked.  Everything should be solid, with the yokes a bright pure yellow in color.  You'll notice that the whites and yokes are both a little more tender than before. 

The last phase is to stop the cooking process.  Pour out the hot water from around the eggs, pour cold water in and put in a tray of ice cubes.  Once everything is cold, take the eggs out and let them dry, then put into a baggy and put them in the fridge.  Eat them when you want them.

Saturday, November 3, 2012

Building my own xmbc media client box

Update:  I was finally successful in replacing my old disabled by the corporation media box... Raspberry Pi using the Raspbmc distribution:

I've given up on netgear. Building my own media center box. I tried out the xbmcbuntu distro booting from a flash drive and it was very polished and more capable out of the box than any commercial media device. 
But I hear that Sabayon Linux includes a very well configured version of xbmc, so I am installing that version on an old box with a green system that only draws 60Watts to see 
how it performs there. Concerned that it might need more graphics card than that mother board provides.

The best two things so far... a ted talks channel and apple movie trailer channel.
I am on Linux, so I did the following:
To create the bootable flash drive to try out the xbmcbuntu release I got the iso from here: 
Click on the far right icon and save the .iso file.
Then you need to write the .iso out to the flash drive, I used the following command:


to bring up an interface to burn the .iso to the flash drive.  I gave the device a couple of Gigs of space to save stuff perminantly so I could play around with things.

Then I had to figure out how to get to a selection menu on boot up to get a menu to select the flash drive to boot from.  On my asus eee pc I had to go into windows and disable express gate software, then I could press esc and f2 at boot and get to the little text menu to select the flash drive.  
Once I booted into xbmc I was a little amazed.  The interface is very stunning and polished.  It blows away anything can get from any vendor at this time.   It has hundreds of plug-ins to allow you to access many websites.  
I had a Ted talks channel and an Apple movie preview channel working in just seconds.
When I get home tonight I am going to try xmbc with the mediatomb server running on another box I have to see how they work and play together.     

Friday, November 2, 2012

Looking at firmware update files and compiling files.

Update:  I was finally successful in replacing my old disabled by the corporation media box... Raspberry Pi using the Raspbmc distribution:

It is obvious that nobody ever managed to compile the little bit of code that netgear released for the eva2000.   And nobody ever got a firmware file to directly update the little box.  I am not even positive it can update other than over the network.  

Trying to find and extract out enough binaries from various similar boxes to my vendor deactivated netgear eva2000 in order to install a new firmware to the system.

I used the following command to see if the system could ID the file:

file binaryfilename.bin

And it told me:

So I took a look at the contents of the file directly with a hex viewer:

od -ah binaryfilename.bin | 

the output from that is:

0000000   e   a   f   b   2   6   b   c   0   b   1   9   d   3   f   1
           6165    6266    3632    6362    6230    3931    3364    3166
0000020   0   4   6   3   4   3   2   5   4   a   5   e   f   e   4   1
           3430    3336    3334    3532    6134    6535    6566    3134
0000040   E   =   M   ( nul   @ dc1 etx etx nul nul nul nul nul nul nul
           3d45    28cd    4000    0311    0003    0000    0000    0000
0000060   C   o   m   p   r   e   s   s   e   d  sp   R   O   M   F   S
           6f43    706d    6572    7373    6465    5220    4d4f    5346
0000100  fs   [  so   T nul nul nul nul   k   & nul nul   K  so nul nul
           db9c    d40e    0000    0000    266b    0000    0ecb    0000
0000120   C   o   m   p   r   e   s   s   e   d nul nul nul nul nul nul
           6f43    706d    6572    7373    6465    0000    0000    0000
0000140   m   A   l etx   D soh nul   d   @ eot nul nul   m   A   l etx
           41ed    03ec    0144    6400    04c0    0000    41ed    03ec

I could see the start of the compressed file system started 32 bytes in with the byte pattern "3d45    28cd", the header must have some sort of checksum or other meta data about the install.  So I extracted the file following the leading 32 bytes with:

dd if=binaryfilename.bin bs=1 skip=32 of=test.fs

And I was finally able to mount the compressed filesystem:

mkdir m #gives a place to mount the device
sudo mount -t cramfs test.fs m  # mounts the file test.fs onto m.

The you can browse into m and see everything installed on that drive.

I did a full scan of all open ports on the eva2000 with nmap

sudo nmap  -p 1-65535

 Starting Nmap 5.21 ( ) at 2012-11-02 22:44 EDT
Nmap scan report for (
Host is up (0.0033s latency).
Not shown: 65533 closed ports
51887/tcp open  unknown
63681/tcp open  unknown
MAC Address: 00:26:F2:3A:92:97 (Netgear)

Nmap done: 1 IP address (1 host up) scanned in 12.92 seconds

and saw the following two TCP ports open:  51887 and 63681

Telneting into both ports and hitting return a few times gave me this error:

>telnet 51887

Connected to
Escape character is '^]'.

HTTP/1.1 412 Failed
Server: Verismo, POSIX, DLNADOC/1.00 INTEL_NMPR/2.1 UPnP/1.0 Intel MicroStack/1.0.1677
Content-Length: 0

> telnet 63681

Connected to
Escape character is '^]'.

Connection closed by foreign host.

Connecting a web browser to both of them just gives an xml output on 63681:

<root><specVersion><major>1</major><minor>0</minor></specVersion><device><deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType><X_DLNADOC>urn:schemas-dlna-org:device-1-0</X_DLNADOC><friendlyName>Netgear EVA2000</friendlyName><manufacturer>NETGEAR</manufacturer><manufacturerURL></manufacturerURL><modelDescription>Digital Entertainer Live</modelDescription><modelName>EVA2000</modelName><modelNumber>EVA2000</modelNumber><serialNumber> </serialNumber><UDN>uuid:[redacted]</UDN><serviceList><service><serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType><serviceId>urn:upnp-org:serviceId:AVT_1-0</serviceId><SCPDURL>AVTransport/scpd.xml</SCPDURL><controlURL>AVTransport/control</controlURL><eventSubURL>AVTransport/event</eventSubURL></service></serviceList></device></root>

Which appears to be a DLNA server.


I will try to wireshark after a soft reboot to see what server it looks for an update on.  If I can go to that server myself it might tell me something.  And I might be able to do a man in the middle attack on my own box to intercept any encrypted communcation if they do it over https.

Wednesday, October 31, 2012

My Netgear EVA2000 went into strange mode 1 day after being hooked to Internet

Update:  I was finally successful in replacing my old disabled by the corporation media box... Raspberry Pi using the Raspbmc distribution:

Let me know if you owned a netgear product that might have also been deactivated in this way.

So, I finally hooked my Netgear EVA2000 multimedia internet device up to the internet after having owned it for a couple of years and the day after I hooked it up, it crapped itself.  Evidently they phone home when they are connected to the Internet, and it got some sort of message from home to crap itself.

 I searched on the Internet and a lot of people have had this same problem with no  resolution from Netgear.  So I decided to give Netgear support a shot.  Wish me luck.

Online technical submission: view case
Case #:      [redacted]
Problem:      Functionality
Cause:      ReadyNAS - Streaming Media
Status:      Open
10/31/2012 3:08:00 PM
I have had [ my netgear eva2000 ] hooked to my tv for about 2 years now and it has worked flawlessly to play movies off a hard drive and to play movies from a media server through the internet without any issues.

I finally got an internet connection and hooked the device to the internet so I could get access to the other functions. The day after it had access to the internet it updated the firmware without asking me and all the functions on the device no longer works. The main menu comes up as: My Collection Movies on Demand Internet video Settings And only settings works, clicking on the others just moves the cursor down to settings. There used to be a youtube option and it is now gone. Settings works fine, but having a little box hooked to my TV that _only_ allows me to change its settings is sort of useless.

A soft reset and a hard reset does nothing to resolve the issue.  [evidently they call it a soft restore and a full restore]

The only way I can get to my local media server now is to goto Settings->Eject USB disk, wait a few seconds, plug the drive back in, wait a minute or two, hit OK to browse the disk when that finally comes up. This window goes away quickly, so I am forced to stand there like an idiot for a couple of minutes waiting for this screen, or I have to start the process all over again. I am finally sitting at the screen where I can select my hard drive, if I press back at this point I can get access to the menu that my collections should take me to.

To sum it all up, it appears that connecting to the internet allowed my box to phone home looking for an update and it was ordered into this mode by your company. Needless to say, I am upset that you deliberately broke a perfectly functional unit, with what I can only assume is a desire to sell me a newer product. If you cannot fix my eva2000 back to a working state, or provide me with a working replacement unit, I will never purchase any product from your company again. I will instruct all my friends and family to not buy your products. On every internet forum that discusses your products I will tell my story about how it appears that you deliberately crippled my device at end of life in order to force me to purchase a newer product. Good day.

10/31/2012 8:23:00 PM
From Expert ID: [redacted]

Case ID: [redacted]

Dear Mr.Rogers,

Thank you for choosing NETGEAR. My name is Rajesh, and I will be your support expert today.

I understand that you are experiencing a problem with EVA2000. We apologize for this inconvenience. Because we are doing this online, it might require a few email exchanges to resolve the issue. Rest assured that we will do our best to resolve your case quickly.

Use this option to restore factory defaults.

1. Select Restore Factory Defaults on the Settings screen.
2. You can select one of the following:

a. Soft Restore – Resets the factory defaults, removes your user account, but preserves all
downloaded movies (both purchased and rented).
b. Full Restore – Resets the factory defaults, removes your user account, and all
downloaded movies (both purchased and rented).

Warning: Because the Full Restore removes your user account and BOTH rented and purchased movies, NETGEAR recommends that you use the Soft Restore option for most purposes.

3. Click the Select ok button to confirm your selection.
DE Live returns you to the Settings screen.

Followed by the following procedure please hard reset by holding the power button for 8 seconds

Please contact us again if you require further assistance.

Please do visit for any technical queries regarding NETGEAR products.

A notice will automatically be sent to your email address when we have responded to your inquiry. Please DO NOT REPLY to that email. Instead, to add additional information to your case, click No to the question "Was your problem resolved with the information provided by the NETGEAR representative above?"

If you click YES, your case will be closed and a separate email containing a survey link will be sent so you can share with us your customer support experience.

Thanks again for choosing NETGEAR. Have a great day!


Technical Support

***NOTE: Your case will autoclose after 7 days of inactivity.***

Did you know that NETGEAR provides support for all your home networking devices and PCs? We can provide a one-stop solution - no need to call multiple vendors* for support. If you would like to learn more about the NETGEAR GearHead services, go to

31 Oct 2012 06:51pm

I replied that I tried the above and it did not fix my problem, asked about a firmware update, and was given this response:

Your request has now been sent to a support representative

So there is still hope.   Just in case I am looking at making a little xbmc box to hook to my TV, With just a handful of  plugins it would be far more capable than the little netgear device.  I really liked how convenient and low powered that little device was though, so it it still disappointing that


Got a reply back after a few hours, they admit it is a defective product.

My name is Rajesh, and I am following up on your Support case.

After reviewing the information you provided, I have a better understanding of your issue and believe I can resolve this for you. Please follow the steps below:

Regarding your concern since this product is the end life product we will not be getting updates anymore and we are sorry to inform you that the product is defective so We apologize for this inconvenience caused.

Sorry to inform you that the product is out of hardware warranty, hence it is not possible for us to replace the product. Please find the warranty information below.

Hardware: Dec 22, 2011 (-314)
Software: Mar 22, 2011 (-589)
Power Supply: Dec 22, 2011 (-314)
Accessories: Dec 22, 2011 (-314)

We apologize for the inconvenience caused.


I am accusing them of placing a backdoor into a computer system that allowed them to remotely deactivate the machine once it hit end of life.

Let me know if you owned a netgear product that might have also been deactivated in this way.


Day 3, still just being politely told to piss up a rope.  They are not letting me talk to any manager or tier II support, despite numerous requests from me.