N79FT A Skybolt Story

In "blog":

The Shop Day


On: Jun 07, 2014
In: blog
Tags: tools, shop

So, originally it was supposed to be the shop day. I was gonna clean and put together the compressor I picked up off a gentleman on Craigslist, and set up the air hoses, filters and such - and then, back to CAD. And then..

See, I was looking for a bandsaw. I wasn't in a rush, so I was gonna pick up a good used one; so I was watching Craigslist and such, waiting and waiting. After doing that for about 6 months and after I got tired of not having one; I finally said "screw it" and bid on one on Ebay.

I won it on Friday around 4pm; paid, and went home. Well; there, in my Gmail's Inbox, was a notification from CraigWatcher saying that yet another bandsaw ad was posted... I opened it up; and couldn't believe my eyes.

Someone was selling.. an 18 inch Grizzly saw for 250 bucks! I couldn't pass on it; and next morning was driving back with a 300 pound beast in the back of my car....

... and then, spent a week and a half cleaning it up. I polished the rust out of the table; changed some bearings, re-cut threads on the blade tensioning rod, added a 4 inch dust port (for whatever weird reason, Grizzly decided not to put a dust port on this particular model).

It also ran on the 220, so I had to add a 220 outlet to the shop... Decided to go all out; and added a 6 gauge run with 50 amp breaker, so that I can run a TIG welder off of it when I get one.

So now; I own two bandsaws :).

Here's the perpetrator:

The Bandsaw

The Bandsaw

Since we're talking shop....

Right now Im set up in the garage of the old house we bought about half a year ago. Dash (my beautiful wife) is working on designing a new house we're gonna build; and that one is going to have a good sized shop. We will build that house first and then demo the old house; so I could start setting up earlier than I thought I would be able to; which is certainly nice.

But; Im dealing with 40 year old electrical; and other fun stuff..

Here are some pictures of that garage, ordered historically, as I was setting up.

Just after washing everything with a pressure washer...

Just after washing everything with a pressure washer...

The beginnings of the storage spot

The beginnings of the storage spot

.. all that empty space :)

.. all that empty space :)

That's pretty much all my tools before I moved (the big red chest is new)

That's pretty much all my tools before I moved (the big red chest is new)

First batch of stuff - table saw, jointer, planer, drill press. Excited!

First batch of stuff - table saw, jointer, planer, drill press. Excited!

.. and set up!

.. and set up!

Storage's getting a bit more crowded

Storage's getting a bit more crowded

Setting up lighting. All that wood is for the benches.

Setting up lighting. All that wood is for the benches.

First bench - the frame is ready.

First bench - the frame is ready.

The benches are up - and this place is starting to look like a shop!

The benches are up - and this place is starting to look like a shop!

.. yep

.. yep

Next, some 2x4s put together into a material rack. Cleared a lot of space!

Next, some 2x4s put together into a material rack. Cleared a lot of space!

Storage again

Storage again

Air setup, router table, and The Bandsaw

Air setup, router table, and The Bandsaw

Added some entertainment :) Also, the little Delta bandsaw on the bench

Added some entertainment :) Also, the little Delta bandsaw on the bench

I like how this looks!

I like how this looks!

And here are a couple pictures of the tools...

Air setup is very simple, a compressor with a shutoff directly into an air filter, regulator, and 25 feet of hose on a reel. That reaches pretty much everywhere.

The Air Setup (very simple for now)

The Air Setup (very simple for now)

At some point; I measured the runout on the drill press -- got around 10 thousandths - no wonder why it was all vibrating when drilling deep holes!

Grizzly includes very cheap chucks and arbors with their presses... Gladly, the bearings have no play though. I ended up picking up a used Jacobs chuck on Ebay, and boy, what a world of difference! Used a SouthBend arbor picked up on Amazon.

The Jacobs Chuck

The Jacobs Chuck

I wanted a router table; but didn't want to pay around a grand for the one I like (and cheap ones are just.. crap, honestly); so I built one.

Top is two sheets of 3/4 MDF, laminated together. White Formica is laminated on top, bottom, and sides. All done with DAP Weldwood contact cement.

I bought the insert plate (though in hindsight, I should've just bought a hunk of aluminum and made it myself).

It still ended up being a bit out-of-flat, so I built a leveling system into the base (two bolts on each side are pulling the top "down", screwing into holes in the top with threaded inserts; and there are two screws pushing up on the top in the center of each long frame side. All that allows me to work out any non-flatness out of the top.

Fence is 3/4 ply; and the router sits in the box under the table. The box has 4 inch dust fitting epoxied on it on the other side (and the fence dust collector feeds into that fitting too).

The Homebuilt Router Table.

The Homebuilt Router Table.


Up ↑
In "blog":

B-Log, The Nerd's Builder's Log


On: May 20, 2014
In: blog
Tags: tools, software, website

The Problem

... was that I needed something to organize my builder's log. Being a software engineer by trade, I didn't want to go old school with paper logs and pictures, and whatever-random-collection-of-stuff-on-a-computer I could do. I wanted something that's easy to add entries to, calculates everything automatically, and allows me to publish it on the Web. Plus, I find it pleasant to view HTML as opposed to .doc, .pdf, or whatever.

Being a nerd, I just had to make it as nice for myself as I could...

The KitLog Pro

Many-a-builder is using this apparently successful piece of work. Apparently, as of writing this, they have over 1100 logs published on their mykitlog.com.

I have played around with it quite a bit. The program is trivially simple; but I can't stand the way it's architected.

  • Windows only
  • Uses Access database for storage (sic!!)
  • Only three pictures per entry (really???)

Oh, the Access databases. Basically, what this means to me as a user is if it ever .. erm.. decides to stop working, I will loose all my data. "Revert to a backup", you say.. Yes, but if the problem is that I can't add my N+1st record because the DB just corrupted itself, no backup will help -- Im stuck.

On top of that if, god forbid, KitLog ever goes out of business, I am stuck with the data that I can't export w/o some serious reverse engineering.

No thank you. :)

The Early Attempts

So, I was toying around with other stuff.

BlogSpot

Really cool (probably, second best to WordPress) blogging platform. Plus, links very nicely with Picasa, making image inserts a breeze.

The problem? How do I track time spent?

Also, the "going-out-of-business" problem was still there...

Moving on...

A CMS (Drupal or Joomla or whatever) + custom plugins

Now, that was better. Those are open source, good content entry and organization tools, and I can export it all out of a MySQL DB should I need to.

But, they require a server (which means either Im running a server, or require hosting). And frankly, I believed that there must be a better way...

Sphinx

Close, but no cigar. Sphinx is the documentation framework used by Python and many others (including the company I work for).

It takes a bunch of ReST files as input (more on that later), and runs them through a converter, producing whatever you want (there are writers for html, txt, doc, pdf, and so on). The parser and converter is called docutils.

The problem with Sphinx is that it's geared towards writing documentation, and frankly, felt a bit too heavy to me for writing a builder's log.

While googling about yet-another-thingie-I-wanted-to-figure-out-about-Sphinx, I stumbled upon an article that talked about static site generators. There lied the Holy Grail....

Mutilation of the Pelican

The Pelican. I fell in love with this thing almost immediately. Here's what it does:

  • Takes a directory with a bunch of ReST, Markdown, or ASCIIDOC
  • Parses all those files into internal state, obtaining metadata from both files and paths (ie, if you organize your files in category/<date>/name way, you can tell it to properly parse that path and populate the metadata)
  • Uses Jinja templates for generating a bunch of HTML output
  • Allows plugins and custom templates
  • Is all Python!

Ive spent about a week tearing it to pieces and figuring out how it works, and adding a few plugins to add things that I needed for the B-Log that it didn't have. You be the judge of results :).

Here's what Ive done:

  • Im writing text in ReST, so Ive added the custom directive to it allowing for 'figures'. Problem is, ReST image directive produces HTML that wasn't much useful to present images the way I wanted them. Instead of modifying core Pelican code, I elected to add a custom 'Figure' directive that automatically gets a thumbnail (resized by the plugin processing the directive).
  • Ive written the plugin to allow sane handling of images placed next to the entries (since by default Pelican wants you to separate images and text) (and it's internal mechanism of not separating them is broken as of 3.3.0 that Im using (and Im too lazy to fix and commit it back to Pelican ;) ).
  • Ive added the custom optional metadata tag allowing to specify time logged per entry; and the plugin that calculates totals.
  • Then came theming. Pelican is geared towards bloggers, so I had to tweak a lot of things to be better suited for B-Logging (build logging, remember? :) ). In the process, Ive switched to Bootstrap since it makes it very easy to organize content on the webpage. I added theme templates to produce the build log with totals, etc, etc. Also integrated FancyBox - a really cool JavaScript image overlay.

I like the end-result. I enjoyed hacking at it, and this was the first time I touched Python (so had to learn that on the way). Pretty neat (though I still prefer Perl (now, why do you need lists and tuples and sets again? :) ).

The only draw back is that it's regenerating everything every time. You can easily see how that might become a problem when you get a lot of entries, but Im feeling like Im ways away. 30 pages take about a second. I think I will need a lot of records before this becomes a problem; and at that point I will rewrite the whole damn thing to cache stuff.. probably :)

You can check it out here. The repo includes my theme, plugins, some tools, and sample content. It requires Python (I used 3.4 and did not test anything else), Pelican (pip install pelican) and Pillow (pip install pillow). Oh year, and you will need Visual Studio if you're using pip on Windows..

Read the config file; and read thru the first two pages of Pelican docs to get the idea. sample-content/ contains my sample generated content that I was testing with. content-gen/ contains the simple Perl script that generates as much sample content as you want.

How it Works

To me as an end-user, it looks like this.

My source files are organized in directories by category and date:

/tail/2001-01-20/rudder.rst
/tail/2001-01-21/elevator.rst
/tail/2001-01-21/picture.jpg
/tail/2001-01-22/elevator.rst
/tail/2001-01-22/picture.jpg
/wings/2002-10-22/something.rst

and so on. There are a few special directories I use, __static for static pages (ie, About section of this site is a static page), and blog, for blog entries (they don't show up under a Category in the Project Log). This page for example is a Blog entry.

If I want a new entry, I just add a directory with the date, and start writing it in my favorite text editor (VIM!!). I drop images. After Im done, I run Pelican, which generates the full website (html, images, everything!) into an output directory. Voila! I can stop right there, and I will have a fully working local version of my log, since it's all static HTML, but we want this online, don't we? So, the only thing left is...

Hosting

This was another revelation. Apparently, GitHub hosts static pages! 'Uploading a site' is a git push, and it transfers only deltas, so no fiddling with FTP, rsync, or whatever! They allow custom domain names instead of username.github.io, all you need is to set your A records in your DNS to point to their servers. It's awesome!

And So,

I am very happy with this so far. I have all my logs in practically plain text format, parser for which is open source and available. I have it nicely organized, and I can back it up as I please (to GitHub, anyone? :) ). I can re-write the programs that parse and produce final .html. I can extend the generator and change the theme to produce a printable version of the log, styled for paper rather than web. The list goes on!

Fi.



Powered by B-Log, which is based on Pelican, heavily plugged and themed.

© Copyright 2014-2015 "N79FT". All rights reserved.

This construction log only shows how I did things during the construction of my Skybolt. These pages are for information and personal entertainment only and not to be construed as the only way, or even the perceived correct way of doing things. You are responsible for your own construction techniques.