retracile.net - Bloghttps://retracile.net/blog
en-USTrac 0.12.5retracile.nethttps://retracile.net/chrome/site/logo2.pnghttps://retracile.net/blog
Adhoc RSS FeedsretracileSat, 10 Nov 2018 18:35:37 GMThttps://retracile.net/blog/2018/11/10/18.00
https://retracile.net/blog/2018/11/10/18.00<p>
I have a few audio courses, with each lecture as a separate mp3. I wanted to be able to listen to them using <a class="ext-link" href="https://antennapod.org/"><span class="icon">​</span>AntennaPod</a>, but that means having an RSS feed for them. So I wrote a <a class="attachment" href="https://retracile.net/attachment/blog/2018/11/10/18.00/adhoc-rss-feed" title="Attachment 'adhoc-rss-feed' in Blog: Adhoc RSS Feeds">simple utility</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2018/11/10/18.00/adhoc-rss-feed" title="Download">​</a> to take a directory of mp3s and create an RSS feed file for them.
</p>
<p>
It uses the <a class="ext-link" href="http://dalkescientific.com/Python/PyRSS2Gen.html"><span class="icon">​</span>PyRSS2Gen module</a>, available in Fedora with <tt>dnf install python-PyRSS2Gen</tt>.
</p>
<pre class="wiki">$ ./adhoc-rss-feed --help
usage: adhoc-rss-feed [-h] [--feed-title FEED_TITLE] [--url URL]
[--base-url BASE_URL] [--filename-regex FILENAME_REGEX]
[--title-pattern TITLE_PATTERN] [--output OUTPUT]
files [files ...]
</pre><p>
Let's work through a concrete example.
</p>
<p>
An audio version of the King James version of the Bible is available from <a class="ext-link" href="http://server.firefighters.org/kjv.asp"><span class="icon">​</span>Firefighters for Christ</a>; they provide a <a class="ext-link" href="http://server.firefighters.org/kjv/kjv.zip"><span class="icon">​</span>990MB zip of mp3s</a>, one per chapter of each book of the Bible.
</p>
<pre class="wiki">wget http://server.firefighters.org/kjv/kjv.zip
unzip kjv.zip
mv -- "- FireFighters" FireFighters # use a less cumbersome directory name
</pre><p>
There are a lot of chapters in the Bible:
</p>
<pre class="wiki">$ ls */*/*/*.mp3 | wc -l
1189
</pre><p>
We can create an RSS2 feed with as little as
</p>
<pre class="wiki">./adhoc-rss-feed \
--output rss2.xml \
--url=http://example.com/rss-feeds/kjv \
--base-url=http://example.com/rss-feeds/kjv/ \
*/*/*/*.mp3
</pre><p>
However, that's going to make for an ugly feed. We can make it a little less awful with
</p>
<pre class="wiki">./adhoc-rss-feed \
--feed-title="KJV audio Bible" \
--filename-regex="FireFighters/KJV/(?P&lt;book_num&gt;[0-9]+)_(?P&lt;book&gt;.*)/[0-9]+[A-Za-z]+(?P&lt;chapter&gt;[0-9]+)\\.mp3" \
--title-pattern="KJV %(book_num)s %(book)s chapter %(chapter)s" \
--output rss2.xml \
--url=http://example.com/rss-feeds/kjv \
--base-url=http://example.com/rss-feeds/kjv/ \
*/*/*/*.mp3
</pre><p>
That's simple, and good enough to be useful. Fixing up the names of the bible is beyond what that simple regex substitution can do, but we can also do some pre-processing cleanup of the files to improve that. A bit of tedius <tt>sed</tt> expands the names of the books:
</p>
<pre class="wiki">for f in */*/*; do
mv -iv $f $(echo "$f" | sed '
s/Gen/Genesis/
s/Exo/Exodus/
s/Lev/Leviticus/
s/Num/Numbers/
s/Deu/Deuteronomy/
s/Jos/Joshua/
s/Jdg/Judges/
s/Rth/Ruth/
s/1Sa/1Samuel/
s/2Sa/2Samuel/
s/1Ki/1Kings/
s/2Ki/2Kings/
s/1Ch/1Chronicles/
s/2Ch/2Chronicles/
s/Ezr/Ezra/
s/Neh/Nehemiah/
s/Est/Esther/
s/Job/Job/
s/Psa/Psalms/
s/Pro/Proverbs/
s/Ecc/Ecclesiastes/
s/Son/SongOfSolomon/
s/Isa/Isaiah/
s/Jer/Jeremiah/
s/Lam/Lamentations/
s/Eze/Ezekiel/
s/Dan/Daniel/
s/Hos/Hosea/
s/Joe/Joel/
s/Amo/Amos/
s/Oba/Obadiah/
s/Jon/Jonah/
s/Mic/Micah/
s/Nah/Nahum/
s/Hab/Habakkuk/
s/Zep/Zephaniah/
s/Hag/Haggai/
s/Zec/Zechariah/
s/Mal/Malachi/
s/Mat/Matthew/
s/Mar/Mark/
s/Luk/Luke/
s/Joh/John/
s/Act/Acts/
s/Rom/Romans/
s/1Co/1Corinthians/
s/2Co/2Corinthians/
s/Gal/Galatians/
s/Eph/Ephesians/
s/Php/Philipians/
s/Col/Colosians/
s/1Th/1Thesalonians/
s/2Th/2Thesalonians/
s/1Ti/1Timothy/
s/2Ti/2Timothy/
s/Tts/Titus/
s/Phm/Philemon/
s/Heb/Hebrews/
s/Jam/James/
s/1Pe/1Peter/
s/2Pe/2Peter/
s/1Jo/1John/
s/2Jo/2John/
s/3Jo/3John/
s/Jde/Jude/
s/Rev/Revelation/
')
done
</pre><p>
There are a couple of errors generated due to the m3u files the wildcard includes as well as 'Job' already having its full name, but it will get the job done.
</p>
<p>
Run the same adhoc-rss-feed command again, then host it on a server under the given base url, and point your podcast client at the rss2.xml file.
</p>
<p>
AntennaPod lists episodes based on time, and in this case that makes for an odd ordering of the episodes, but by using the selection page in AntennaPod, you can sort by "Title A-&gt;Z", and books and chapters will be ordered as expected. And then when adding to the queue, you may want to sort them again. While there is some awkwardness in the UI with this extreme case, being able to take a series of audio files and turn them into a consumable podcast has proven quite helpful.
</p>
pythonandroidsoftwareImproving a Damaged Extension CordretracileSat, 18 Aug 2018 19:52:52 GMThttps://retracile.net/blog/2018/08/18/19.00
https://retracile.net/blog/2018/08/18/19.00<p>
The humble extension cord is frequently overlooked relative to its value in a garage or shop. Over the course of years of abuse, one of my extension cords wound up with a cut in the insulation, exposing the copper wiring. This resulted in an electrical "POP!" when it was pulled across a piece of metal. I cut out the damaged portion of the extension cord, but didn't throw the cord away. Instead, I gathered up some electrical bits from stuff I had salvaged and bought a few parts from the hardware store.
</p>
<ul><li>two-gang metal box
</li><li>power outlet
</li><li>dual power switch
</li><li>two-gang faceplate
</li><li>two grommets
</li><li>a bit of copper wire
</li></ul><p>
I wired the switch so that one controls the outlets in the electrical box, and the other (the one closer to where the cord leaves the box) controls the plug on the last foot or so of the extension cord.
</p>
<p>
Pictures showing the internal wiring:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2018/08/18/19.00/wired-1.jpg"><img src="https://retracile.net/raw-attachment/blog/2018/08/18/19.00/wired-1.jpg" alt="wired-1.jpg" style="max-width:500px" title="wired-1.jpg" /></a>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2018/08/18/19.00/wired-2.jpg"><img src="https://retracile.net/raw-attachment/blog/2018/08/18/19.00/wired-2.jpg" alt="wired-2.jpg" style="max-width:500px" title="wired-2.jpg" /></a>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2018/08/18/19.00/wired-3.jpg"><img src="https://retracile.net/raw-attachment/blog/2018/08/18/19.00/wired-3.jpg" alt="wired-3.jpg" style="max-width:500px" title="wired-3.jpg" /></a>
</p>
<p>
Ready for the faceplate:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2018/08/18/19.00/assembled.jpg"><img src="https://retracile.net/raw-attachment/blog/2018/08/18/19.00/assembled.jpg" alt="assembled.jpg" style="max-width:500px" title="assembled.jpg" /></a>
</p>
<p>
The end result:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2018/08/18/19.00/finished.jpg"><img src="https://retracile.net/raw-attachment/blog/2018/08/18/19.00/finished.jpg" alt="finished.jpg" style="max-width:500px" title="finished.jpg" /></a>
</p>
constructionelectricalFlashlight sheath for Fenix LD22retracileTue, 31 Oct 2017 03:52:12 GMThttps://retracile.net/blog/2017/10/31/03.00
https://retracile.net/blog/2017/10/31/03.00<p>
Five years ago, I bought a <a class="ext-link" href="https://www.fenixlighting.com/product/ld22-fenix-flashlight/"><span class="icon">​</span>Fenix LD22 flashlight</a>. (The LD22 they currently offer is a significantly upgraded version of mine. The new one is 300 lumens, mine is somewhere around 200, and the way the modes work is a bit different as well.) I have worn it on my belt ever since, every day. And it's held up beautifully. The flashlight came with a belt holster or sheath. I quickly found that the belt loop on it was much too low on the sheath, making the flashlight come too high on my side and flop around. It didn't take much to cut the thread stitching the belt loop to the holster and sew it on higher.
</p>
<p>
The velcro also wore out. I bought some 1/2"x1/2"x1/16" rare earth magnets and sewed them into the holster where the velcro was. That improved matters, but eventually it wore out the sides of the sheath. I took it apart and rebuilt it using scrap jean material. That worked pretty well, but the flashlight had a tendency to flop a bit and the end would come out from under the flap of the holster, making it loose and leading me to worry I might lose it. And it started wearing through the jean material.
</p>
<p>
This time, I decided to build a better holster.
</p>
<p>
The idea was to create a very similar sheath for the flashlight using the same kind of material that had withstood the wear and tear of daily use: nylon strapping.
</p>
<p>
When making the cuts, I would cut the strapping with a sharp pair of scissors, then melt the cut edge with a butane lighter. When sewing, I used a sewing machine, but due to the thickness of the material and the number of layers, wound up driving the sewing machine's mechanism by turning the wheel by hand. Someone with actual skill with a sewing machine might be able to run it at speed, but I could not.
</p>
<p>
The main piece was 19.5" long, with magnets sewn into flaps on either end. The end of that piece which would become the flap, I folded over 2.25" and sewed magnets inside that. The other end I folded over 1.5" and sewed magnets inside it as well. I arranged them edge-to-edge, as if they were a single 1"x1/2"x1/16" magnet in each end.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/main-strap.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/main-strap.jpg" alt="main-strap.jpg" style="max-width:500px" title="main-strap.jpg" /></a>
</p>
<p>
I put a wide stitch into the ends to secure the magnets rather than stitching across. I positioned the magnets in the top flap so they pull the strap down onto the flashlight. This should also mean that the flap extends beyond the magnets by 1/4" to 1/2", giving something to grab onto to open the holster
</p>
<p>
I cut a 10" piece, then cut it in half on a 45 to create the two sides.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/sides-cut.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/sides-cut.jpg" alt="sides-cut.jpg" style="max-width:500px" title="sides-cut.jpg" /></a>
</p>
<p>
I sewed those to the sides of the main piece with a wide stitch. I determined their placement by wrapping the work in progress around the flashlight.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/sides-sewn.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/sides-sewn.jpg" alt="sides-sewn.jpg" style="max-width:500px" title="sides-sewn.jpg" /></a>
</p>
<p>
I cut a piece to use for a belt loop.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/belt-loop-cut.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/belt-loop-cut.jpg" alt="belt-loop-cut.jpg" style="max-width:500px" title="belt-loop-cut.jpg" /></a>
</p>
<p>
And sewed that to the back side.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/belt-loop-sewn.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/belt-loop-sewn.jpg" alt="belt-loop-sewn.jpg" style="max-width:500px" title="belt-loop-sewn.jpg" /></a>
</p>
<p>
And sewed the front edges of the sides to the main strap. For this seam, I sewed through the two layers, unlike for the back edges which I sewed across the edges.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/front-sewn.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/front-sewn.jpg" alt="front-sewn.jpg" style="max-width:500px" title="front-sewn.jpg" /></a>
</p>
<p>
And here is what it looked like with the flashlight in it:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/finished.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/finished.jpg" alt="finished.jpg" style="max-width:500px" title="finished.jpg" /></a>
</p>
<p>
And here is how it rides on the belt:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/10/31/03.00/on-belt.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/10/31/03.00/on-belt.jpg" alt="on-belt.jpg" style="max-width:500px" title="on-belt.jpg" /></a>
</p>
<p>
After using this for a few days, I had to make two small repairs to it. One was to reinforce the stitching near the top corner of the sides because I had not done that well enough during initial fabrication. The other was to melt the 45-degree edges again because they had started to fray; they're holding up better now.
</p>
<p>
Overall, I'm quite happy with the new sheath; it holds the flashlight securely, the magnetic flap stays where I want it, and it appears to be holding up to daily use very well over the course of about a month.
</p>
flashlightsewingTablesaw Dust CollectorretracileSat, 30 Sep 2017 22:48:52 GMThttps://retracile.net/blog/2017/09/30/22.00
https://retracile.net/blog/2017/09/30/22.00<p>
I have an ancient Craftsman tablesaw which had no dust collection system for it. The underside of the saw was simply open, and sawdust went everywhere. In order to get it under control, I cut a cardboard box to fit under the tablesaw. Since it was large enough to fill the space under the saw, it collected the sawdust quite well, but it was too large to pull out from under the saw's legs. That was my temporary solution for the past decade, but I had done some work on the tablesaw, and when I had put it back on its feet, I had not put the cardboard box in place. Time to get around to implementing a better solution.
</p>
<p>
Using these (scrap) materials and some scrap plywood...
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/boards-cut.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/boards-cut.jpg" alt="boards-cut.jpg" style="max-width:500px" title="boards-cut.jpg" /></a>
</p>
<p>
... I built a shallow box with a dust port.
</p>
<p>
The top view:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/assembled-top.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/assembled-top.jpg" alt="assembled-top.jpg" style="max-width:500px" title="assembled-top.jpg" /></a>
</p>
<p>
The bottom view:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/assembled-bottom.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/assembled-bottom.jpg" alt="assembled-bottom.jpg" style="max-width:500px" title="assembled-bottom.jpg" /></a>
</p>
<p>
I used pocket-hole screws for the frame of the box, tacked the plywood into place with a few nails, then used construction adhesive around the edges of the plywood to keep it in place and allowed that to dry.
</p>
<p>
The lip on the box rests on top of the sheet metal body on that end, and on the other end, I put a 1x4 inside the sheetmetal lip of the body of the tablesaw.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/mounting-board.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/mounting-board.jpg" alt="mounting-board.jpg" style="max-width:500px" title="mounting-board.jpg" /></a>
</p>
<p>
Screws inserted through the 2x2 board on the end screwed into this board so both ends of the box are supported. Installed, it looks like this from below:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/installed-bottom.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/installed-bottom.jpg" alt="installed-bottom.jpg" style="max-width:500px" title="installed-bottom.jpg" /></a>
</p>
<p>
The end result looks like this:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/09/30/22.00/installed-corner.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/09/30/22.00/installed-corner.jpg" alt="installed-corner.jpg" style="max-width:500px" title="installed-corner.jpg" /></a>
</p>
<p>
This will allow me to use some of the space under the tablesaw that used to be entirely filled with that cardboard box.
</p>
wood-workingLining a Truck ToolboxretracileTue, 29 Aug 2017 23:16:05 GMThttps://retracile.net/blog/2017/08/29/23.00
https://retracile.net/blog/2017/08/29/23.00<p>
I bought a toolbox for my truck, but before I loaded it up with tools, I wanted to take steps to increase its expected serviceable life. One of the tools I carry is a hydraulic floor jack. This thing is heavy, and has a tendency to slide around. I didn't want it (and the other heavy, sliding-prone items it shares the box with) to hammer on the box. I grabbed some plywood I happened to have, and cut a section to fit the floor of the toolbox to protect the bottom. That left about 8-9" of plywood of the same length, so I cut that in half to make two ~4"-wide pieces. I nailed some scrap 2-by material to that to create a slot for end-caps, and made end-caps from some other scrap plywood I had lying around.
</p>
<p>
Each corner looks like this,
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/08/29/23.00/corner.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/08/29/23.00/corner.jpg" alt="corner.jpg" style="max-width:500px" title="corner.jpg" /></a>
</p>
<p>
With the ends like this.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/08/29/23.00/end.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/08/29/23.00/end.jpg" alt="end.jpg" style="max-width:500px" title="end.jpg" /></a>
</p>
<p>
The end-caps hold the long walls vertical, and the 2-by bits nailed to the long walls keep the end-caps where they're supposed to be. So everything stays put, but it can all be disassembled and removed.
</p>
<p>
The end result looked like this:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/08/29/23.00/top-view.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/08/29/23.00/top-view.jpg" alt="top-view.jpg" style="max-width:500px" title="top-view.jpg" /></a>
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/08/29/23.00/side-view.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/08/29/23.00/side-view.jpg" alt="side-view.jpg" style="max-width:500px" title="side-view.jpg" /></a>
</p>
<p>
Since the toolbox has seen a bit of actual use, you can see the dark gray places on the right half where the hydraulic floor jack's metal wheels have been sitting and sliding around. If you decide to build something like this, I'd recommend building the walls the full height on the inside of the toolbox; I noticed some scrapes where other tools have been rubbing on the inside walls. But for something thrown together quickly with materials already on hand, I'm satisfied with the result.
</p>
truckwood-workingMaking Stake Pocket AnchorsretracileSat, 29 Jul 2017 18:50:04 GMThttps://retracile.net/blog/2017/07/29/18.00
https://retracile.net/blog/2017/07/29/18.00<p>
I bought a toolbox for my pickup truck, and needed to mount it to the bed rails securely. Using some J-hooks to bolt it to the metal inside the stake pockets did not work well enough; the loaded toolbox shifted from side to side while driving, scraping up the bed rail covers in the process. I needed a more secure mounting option for the toolbox that did not require drilling holes in my truck, and if I could avoid drilling holes in the toolbox, even better. Oh, and I needed to get it done immediately to avoid additional damage.
While <a class="ext-link" href="https://www.magnummfginc.com/"><span class="icon">​</span>Magnum Manufacturing</a> offers the <a class="ext-link" href="https://www.magnummfginc.com/shop/truck-rack-accessories/stake-pocket-tie-downs-pair/"><span class="icon">​</span>stake pocket tie downs</a> they use for their headache racks, I needed to solve the problem immediately, not wait for a well-made product to arrive.
</p>
<p>
The concept is to have an assembly that fits into the stake pocket which I can bolt onto from the top, and fasten from the side. My solution was to cut some scrap 2x4 down to fill the stake pocket, and cut out space for a bracket, and a recess for the bolt.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/cad-wood-block.png"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/cad-wood-block.png" alt="cad-wood-block.png" style="max-width:500px" title="cad-wood-block.png" /></a>
</p>
<p>
I fabricated the bracket from 1/8"-thick 2x2" angle iron; cutting it to size, drilling counter-sunk holes for the screws, and tapping a hole for a bolt on top.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/cad-angle-iron-finished.png"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/cad-angle-iron-finished.png" alt="cad-angle-iron-finished.png" style="max-width:500px" title="cad-angle-iron-finished.png" /></a>
</p>
<p>
I drilled pilot holes in the wood block and assembled the anchors with exterior wood screws:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/cad-assmbly.png"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/cad-assmbly.png" alt="cad-assmbly.png" style="max-width:500px" title="cad-assmbly.png" /></a>
</p>
<p>
Given that I was in a hurry and making it up as I went along, the actual anchors looked a bit more like this:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/real-assembly.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/real-assembly.jpg" alt="real-assembly.jpg" style="max-width:500px" title="real-assembly.jpg" /></a>
</p>
<p>
I dropped the anchors into the stake pockets and marked the location of the hole inside the truck bed, then drilled a pilot hole in the center of that.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/real-marked-assemblies.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/real-marked-assemblies.jpg" alt="real-marked-assemblies.jpg" style="max-width:500px" title="real-marked-assemblies.jpg" /></a>
</p>
<p>
Installing the anchors in the truck meant dropping the anchor in place
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/dropped-in-place.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/dropped-in-place.jpg" alt="dropped-in-place.jpg" style="max-width:500px" title="dropped-in-place.jpg" /></a>
</p>
<p>
and securing it with an exterior wood screw and fender washer.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/secured-in-place.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/secured-in-place.jpg" alt="secured-in-place.jpg" style="max-width:500px" title="secured-in-place.jpg" /></a>
</p>
<p>
From there, it was a matter of lining up the toolbox slot with the bolt hole
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/07/29/18.00/aligned-box-slot.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/07/29/18.00/aligned-box-slot.jpg" alt="aligned-box-slot.jpg" style="max-width:500px" title="aligned-box-slot.jpg" /></a>
</p>
<p>
and bolting it down.
</p>
<p>
Now, the toolbox is much more solidly anchored to the truck.
</p>
truckwood-workingmetal-workingMaking toy wooden swordsretracileThu, 29 Jun 2017 02:59:32 GMThttps://retracile.net/blog/2017/06/29/02.00
https://retracile.net/blog/2017/06/29/02.00<p>
One of my sons bought an inexpensive wooden sword at a nearby Renaissance festival. And naturally, his older sister wanted one as well, but...it's gotta be a bigger one. Sibling rivalry? What's that?
</p>
<p>
Looking at the design of the sword, I could see it was pretty straight-forward to replicate, so I told her that if she bought a 6' 1x3 select pine board at the local hardware store, I'd turn it into a sword. Woodworking is fun! And educational!
</p>
<p>
The basic design is to cut a board for the cross-guard, 5 to 6 inches long. Then cut another piece to the length of the blade and hilt. I mounted the latter board on a 1x6 with a clamping set to get a straight tapered cut from the tip to where the cross-guard would be. I then put the tablesaw blade at about a 45 and gave it 4 cuts to provide some shape to the blade's cross-section and that look of having a pseudo-edge. My daughter had sketched what she wanted the hilt to look like, so I used a bandsaw to get a rough shape to the grip and pommel, then took that to the bench sander and shaped it generally "by eye". For the part of the grip where the cross-guard belongs, I was aiming for a shape that would fit into a slot cut with a 3/4" straight router bit. Once I had the size of that determined, I shaped the rest of the grip and pommel to have a cross-section no larger than that.
Then I mounted the cross-guard in the mill and cut the slot into the center with a 3/4" router bit. Four passes on the tablesaw to take off the corners, and I had a cross-guard.
</p>
<p>
The two pieces looked like this:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/06/29/02.00/short-sword-disassembled.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/06/29/02.00/short-sword-disassembled.jpg" alt="short-sword-disassembled.jpg" style="max-width:500px" title="short-sword-disassembled.jpg" /></a>
</p>
<p>
The select pine is right at 3/4" thick, so the cross-guard slid over the hilt with a friction fit.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/06/29/02.00/short-sword.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/06/29/02.00/short-sword.jpg" alt="short-sword.jpg" style="max-width:500px" title="short-sword.jpg" /></a>
</p>
<p>
Of course, a 6-foot board was enough to make *two* swords, so I made an even longer, two-handed sword.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/06/29/02.00/long-sword.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/06/29/02.00/long-sword.jpg" alt="long-sword.jpg" style="max-width:500px" title="long-sword.jpg" /></a>
</p>
<p>
The dangerous duo:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/06/29/02.00/both-swords.jpg"><img src="https://retracile.net/raw-attachment/blog/2017/06/29/02.00/both-swords.jpg" alt="both-swords.jpg" style="max-width:500px" title="both-swords.jpg" /></a>
</p>
<p>
While a proper template and a router would have yielded more precise results for the grips, overall I was pleased with how they turned out.
</p>
weaponswood-workingPlayset Construction DiscoveryretracileSat, 20 May 2017 16:57:31 GMThttps://retracile.net/blog/2017/05/20/16.00
https://retracile.net/blog/2017/05/20/16.00<p>
I had an opportunity to acquire a large, second-hand playset for the cost of "tear it down and haul it off." I knew that wasn't going to be as cheap as it sounds, but there were still a number of surprises involved.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/05/20/16.00/before.jpg"><img width="100%" alt="before.jpg" title="before.jpg" style="max-width:500px" src="https://retracile.net/raw-attachment/blog/2017/05/20/16.00/before.jpg" /></a>
</p>
<p>
As you can see, the structure was leaning rather severely, which I knew meant some of the wood would need replacing or reinforcing. The vertical posts were the main culprit; they had rotted out the bottom 2-3 feet of their 7-foot length.
</p>
<p>
But what I was surprised by was their construction.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/05/20/16.00/post-construction.jpg"><img width="100%" alt="post-construction.jpg" title="post-construction.jpg" style="max-width:500px" src="https://retracile.net/raw-attachment/blog/2017/05/20/16.00/post-construction.jpg" /></a>
</p>
<p>
The green wrap is a thick plastic sheathe around the posts. And for some, the bottom end of the post was sealed with this same plastic. With the plastic removed, you can see that the 3"x3" post is not a single piece of wood, but built up from smaller lumber.
I understand the cost savings of that approach, but I was surprised when I pealed a 1x4 (ish) off the side of the post to reveal that the core was hollow. I had expected the central 2x2 (ish) to run the length of the post. These are, after all, the load-bearing posts for the whole construction.
</p>
<p>
I presume the resulting box was structurally sound for the intended purpose originally, but it appears that the plastic sheathe acted like a plastic cup and held moisture in the lower portion of the post. It rotted out quite thoroughly.
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/05/20/16.00/post-rotted.jpg"><img width="100%" alt="post-rotted.jpg" title="post-rotted.jpg" style="max-width:500px" src="https://retracile.net/raw-attachment/blog/2017/05/20/16.00/post-rotted.jpg" /></a>
</p>
<p>
The rotted portion was black enough you would have thought someone had used it for a campfire.
</p>
<p>
Rather than try to duplicate the construction technique, I bought 4x4 cedar posts, cut them to length, and planed them to 3"x3" to match the original post dimensions and exceed the original post strength. That generated mountains of cedar sawdust, but I'm pleased with the result.
</p>
<p>
More importantly, I'm not the only one who is happy with how the final playset turned out:
</p>
<p>
<a style="padding:0; border:none" href="https://retracile.net/attachment/blog/2017/05/20/16.00/after.jpg"><img width="100%" alt="after.jpg" title="after.jpg" style="max-width:500px" src="https://retracile.net/raw-attachment/blog/2017/05/20/16.00/after.jpg" /></a>
</p>
playsetconstructionLeoCAD 17.02 - Packaged for LinuxretracileSat, 01 Apr 2017 21:31:43 GMThttps://retracile.net/blog/2017/04/01/21.30
https://retracile.net/blog/2017/04/01/21.30<p>
<a class="ext-link" href="http://www.leocad.org"><span class="icon">​</span>LeoCAD</a> is a CAD application for building digital models with Lego-compatible parts drawn from the <a class="ext-link" href="http://www.ldraw.org/parts/latest-parts.html"><span class="icon">​</span>LDraw parts library</a>.
</p>
<p>
I packaged the 17.02 release of LeoCAD for Fedora 25. This package requires the
<a href="https://retracile.net/blog/2017/03/25/19.00">LDraw parts library packaged earlier</a>.
</p>
<p>
Install the binary rpm. The source rpm contains the files to allow you to rebuild the packge for another distribution.
</p>
<p>
<a class="attachment" href="https://retracile.net/attachment/blog/2017/04/01/21.30/leocad-17.02-1ec1.fc25.x86_64.rpm" title="Attachment 'leocad-17.02-1ec1.fc25.x86_64.rpm' in Blog: LeoCAD 17.02 - Packaged for Linux">leocad-17.02-1ec1.fc25.x86_64.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/04/01/21.30/leocad-17.02-1ec1.fc25.x86_64.rpm" title="Download">​</a>
</p>
<p>
<a class="attachment" href="https://retracile.net/attachment/blog/2017/04/01/21.30/leocad-17.02-1ec1.fc25.src.rpm" title="Attachment 'leocad-17.02-1ec1.fc25.src.rpm' in Blog: LeoCAD 17.02 - Packaged for Linux">leocad-17.02-1ec1.fc25.src.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/04/01/21.30/leocad-17.02-1ec1.fc25.src.rpm" title="Download">​</a>
</p>
linuxlegoleocadldrawLDraw Parts Library 2016-01 - Packaged for LinuxretracileSat, 25 Mar 2017 19:30:29 GMThttps://retracile.net/blog/2017/03/25/19.00
https://retracile.net/blog/2017/03/25/19.00<p>
<a class="ext-link" href="http://ldraw.org"><span class="icon">​</span>LDraw.org</a> maintains a <a class="ext-link" href="http://www.ldraw.org/parts/latest-parts.html"><span class="icon">​</span>library of Lego part models</a> upon which a number of related tools such as <a class="ext-link" href="http://www.leocad.org/"><span class="icon">​</span>LeoCAD</a>, <a class="ext-link" href="http://ldview.sourceforge.net/"><span class="icon">​</span>LDView</a> and <a class="ext-link" href="http://sourceforge.net/projects/lpub4/"><span class="icon">​</span>LPub</a> rely.
</p>
<p>
I packaged the 2016-01 parts library for Fedora 25 to install to <tt>/usr/share/ldraw</tt>; it should be straight-forward to adapt to other distributions.
</p>
<p>
The <tt>*.noarch.rpm</tt> files are the ones to install, and the <tt>.src.rpm</tt> contains everything so it can be rebuilt for another rpm-based distribution.
</p>
<p>
<a class="attachment" href="https://retracile.net/attachment/blog/2017/03/25/19.00/ldraw_parts-201601-ec1.fc25.src.rpm" title="Attachment 'ldraw_parts-201601-ec1.fc25.src.rpm' in Blog: LDraw Parts Library 2016-01 - Packaged for Linux">ldraw_parts-201601-ec1.fc25.src.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/03/25/19.00/ldraw_parts-201601-ec1.fc25.src.rpm" title="Download">​</a>
</p>
<p>
<a class="attachment" href="https://retracile.net/attachment/blog/2017/03/25/19.00/ldraw_parts-201601-ec1.fc25.noarch.rpm" title="Attachment 'ldraw_parts-201601-ec1.fc25.noarch.rpm' in Blog: LDraw Parts Library 2016-01 - Packaged for Linux">ldraw_parts-201601-ec1.fc25.noarch.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/03/25/19.00/ldraw_parts-201601-ec1.fc25.noarch.rpm" title="Download">​</a><br />
<a class="attachment" href="https://retracile.net/attachment/blog/2017/03/25/19.00/ldraw_parts-creativecommons-201601-ec1.fc25.noarch.rpm" title="Attachment 'ldraw_parts-creativecommons-201601-ec1.fc25.noarch.rpm' in Blog: LDraw Parts Library 2016-01 - Packaged for Linux">ldraw_parts-creativecommons-201601-ec1.fc25.noarch.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/03/25/19.00/ldraw_parts-creativecommons-201601-ec1.fc25.noarch.rpm" title="Download">​</a><br />
<a class="attachment" href="https://retracile.net/attachment/blog/2017/03/25/19.00/ldraw_parts-models-201601-ec1.fc25.noarch.rpm" title="Attachment 'ldraw_parts-models-201601-ec1.fc25.noarch.rpm' in Blog: LDraw Parts Library 2016-01 - Packaged for Linux">ldraw_parts-models-201601-ec1.fc25.noarch.rpm</a><a class="trac-rawlink" href="https://retracile.net/raw-attachment/blog/2017/03/25/19.00/ldraw_parts-models-201601-ec1.fc25.noarch.rpm" title="Download">​</a>
</p>
linuxlegoldraw-parts-libraryldraw