Felling a tall hardwood tree with Lofty Heights Logging, LLC.

UPDATE: Lofty Heights Logging LLC. Now has a website!

www.loftyheightslogging.com

Lofty Heights Logging hard at work clearing some ground for us.  In this 1 minute video, you can see a tree go down.  In person, the whipping sound made by the twigs was impressive, and the crash when it impacted the ground sounded almost like an explosion. If you are anywhere near the Altoona, PA area and need any timbering, logging, or tree cutting, I highly recommend you call Earnest Ebersole at (814) 201-0331.

Detailed Assembly of Rubber Band Gun M6-002 to M6-005

A few photographs of our assembly of M6-002 to M6-005…

It all started by laying out all of the pieces for each assembly.  Quite a few when you add them all up.  Pictured below are the parts for 4 assemblies.  Receiver, Pins, Actuator, Hammer, Trigger, Washers, Springs, Bolts, and Nuts, along with some tape to hold the loose pins in (temporarily).

Refer to https://blog.gahooa.com/2010/09/23/rubber-band-gun-6-four-pieces-explained/ for more information on each piece.

Here is the receiver.  Note, the two small holes beside each other.  This is to allow for an adjustment to spring tension if needed.

These springs are tough little guys.  ~ 9 pounds per inch, with a max travel of just over 1/2 ” (if I recall correctly).  They also cost $1.29 each in quantities of 100+.

In order to use them, I needed to snip the closed loop open on one end.

Following this, the springs were hooked onto the actuators.

Using dowel pins, we placed the actuators and springs into the receiver…

… separated by red, hard fiber washers.  These washers have a very tight thickness tolerance, which is needed in this application.

Once the actuator was in place and the springs fully connected, we inserted the hammers.

The hammers had more room for spring stretch, so we opted for a cheaper, longer stretch spring (about $0.50 each in small qty).

The most interesting, and hardest to machine piece in the assembly is the trigger.  Due to an error in machining, the trigger hole was drilled to just 0.250 inches, instead of the 0.1875 the drawing called for.  I purchased a 0.2503″ reamer (accurate to +/- 0.0001″ (yes, a ten thousandth of an inch).  This made the trigger fit perfectly on the dowel pins (but only after blowing the dust out!).

Another view of the trigger.  Notice the step in the aluminum… This is what causes one hammer to release before the other.

I chose stainless steel screws to hold the mechanism into the wooden stock, although other methods could be employed.  Plus, I just like close up photographs, so I included this one.

Here are the four assemblies finished.  The tape is placed over any loose pins to keep them from falling out.  The wooden stock will retain them firmly, similar to the design of a Ruger 10/22.

A close up shot of the receiver.

And the excellent helpers…

Now we just need to make several more stocks!

 

How to force-drop a postgresql database by killing off connection processes

Ever need to drop a postgresql database, but it would not let you because there are open connections to it (from a webapp or whatever)?

Quite annoying.  If on a production server, and other databases are being used, restarting postgresql is a last resort, because it generates downtime for your site (even if small).

I finally took the time to scratch around and find the answer.

As a super user, to list all of the open connections to a given database:

select * from pg_stat_activity where datname='YourDatabase';

As a superuser, to drop all of the open connections to a given database:

select pg_terminate_backend(procpid) from pg_stat_activity where datname=’YourDatabase’;

Or for 9.x, change `procpid` to `pid`

select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';

Here are some references to the functions:

http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE

http://www.postgresql.org/docs/8.4/static/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE

A new stock for rubber band gun #6

In anticipation of receiving the assembly for Rubber Band Gun #6 from Dixon Tool and Die, Inc., we have been making a new rubber band gun stock to complete the package.

This stock was hand crafted out of solid 1.75″ x 6.0″ x 48″ slab of maple.  The primary tools were bandsaw (for the profile), hammer and chisel, random orbit sander, end mill, jointer, sand paper, and lots of elbow grease.

There is a technique that we implemented called “raising the grain”.  It involves rubbing the wood with a wet rag, and then letting it dry.  Loose pieces of grain swell up and in turn raise up out of the wood, where they can be sanded off.

At the bottom-left corner of this photo, you can see another blank ready to be cut.

A lot of thought and testing went into this simple design and it works really well.  The catch (no pun intended) is to allow the rubber bands to release cleanly with no interference.

Here is Mr. E holding the shop-vac to keep the end mill from clogging up.  My Sherline milling machine is not large enough to hold this stock conveniently, so we used a drill press and cross-slide vice to mill it out.  Drill presses are not as rigid as milling machines, so we had to take it slow.

Making a “working” toy shotgun

Some time ago, Eli asked me to build a toy shotgun.  We wanted something that would give a real “bang”, but be simple and safe.

Provided that a large mass of metal was collided into another at sufficient speed, the user would experience both a “bang” and a “kick” (although inverse).

We milled, drilled, and fit a bolt into a square aluminum tube.  A spring connected the front of the bolt to the front of the tube.  When the bolt was retracted and released, it would collide into the square tube with the desired effect.


The end result is here:

And, enjoy the pictures.

 

A big measuring tape and a right triangle

Just a good picture of Eli (with Ezra and Anna in the background) holding a 300′ measuring tape.

We needed to make a right angle, so I explained to them that a triangle with the sides

3, 4, 5

will be a 100% right triangle.  So we measured 15′, 20′, and 25′ around three stakes, and that is how we got our right angle :)

For anyone who has been out of high-school long enough to forget, the equation is:

A*A + B*B = C*C

That is…

3*3 + 4*4 = 5*5
9 + 16 = 25
25=25
True

See more about Pythagoras and his Pythagorean Theorem at Wikipedia…

A better way to hold metal inventory

For a couple years now, my growing collection of dimensional metalic material has been piled on the end of my workbench. Not good for finding it, keeping it clean, rust free, or straight. Plus, I cannot make full use of my workbench.

Here is what 100′ of PVC pipe cut into 3′ lengths can do…

Now, I just need to build a rack for the pipe to set in, move it off my bench, and I’ll be set (for now).  Easy to expand, though.

And a great helper!

Python: ‘tuple’ object is not callable

This can be a bit of an obscure error, if you run into it…  It looks like this:

File ".../CCRM/Content.py", line 202, in Page_Update
    ('Nav1'       , Data.Nav1),
TypeError: 'tuple' object is not callable

In reality, it’s typically caused by accidentally forgetting a comma from the line before:

    Page_MNID = App.DB.Value('''
      UPDATE
        "Dashboard"."Page"
      SET
        [Field=Value]
      WHERE True
        AND "Page_MNID" = $Page_MNID
      ''',
      ('ScriptPath' , Data.ScriptPath)
      ('Nav1'       , Data.Nav1),
      ('Nav2_Icon'  , Data.Nav2_Icon),
      ('Nav2_Label' , Data.Nav2_Label),
      ('Title'      , Data.Title),
      ('Active'     , Data.Active),
      Page_MNID     = Data.Page_MNID,
      )

Notice that line 9 is missing a comma at the end?  That causes python to see this:

tuple_object = ("ScriptPath", Data.ScriptPath")
tuple_object("Nav1" , Data.Nav1)  #eg, next tuple looks like params

Solution?  Just add the comma :)