More Than Just Little Pieces of Wood, Because It’s More Than “Just a Hobby”

by | Jan 11, 2022 | Specialty Lumber | 0 comments

Most woodworking hobbyists don’t need long lengths of hardwood, especially if they are crafting a small project. Unfortunately, most hardwood companies are geared toward being strictly wholesale, with few exceptions. They don’t look kindly upon the person who asks if they will cut a two-foot piece of 8/4 x 10 Mahogany, or a one-foot piece of Teak for their boat cleat mounting block. With Teak running in the mid $30 range per board foot, the person who requires a small piece really doesn’t want to spend a lot of money on a six footer, only to have the remainder hang around their shop for years. Yeah, if you are a regular customer, the yard person might do you a favor and cut a one-foot piece off an odd length, like a nine footer, if you kiss their ring! Some retailers of woodworking supplies do sell small pieces of various hardwoods, but at premium prices.

Barney & Carey’s sizable woodworking shop has solved this problem. We now save all the short pieces, from one foot or less to four feet. to sell in our hobby wood area of the showroom. We do NOT mark up these small pieces to a ridiculous premium over what a long length would cost. That is one of the oldest gimmicks in marketing, and it’s annoying as hell! You know, where a 100 count box of electrical fittings or wooden plugs costs, say, $10, but a three pack in plastic wrap is a dollar. You’re willing to pay it, because you only need one!

Well, here you can have it both ways!

When I was a 19-year-old kid working in Grossman’s door and window-shop in Braintree, I learned many a valuable lesson. I was cutting out sink openings on butcher block countertops, and had a pile of the cutouts on the floor next to me. Reuben Grossman, who was then about 80 years old and worked every day, came over and asked me what I was doing with the Maple cutouts. I told him I threw them in the dumpster at the end of the day. He took one of them, and cut off the rounded corners on a table saw. He then asked me to get him a router with a 3/8″ roundover bit, with which he put a radius on all four top edges. “This is now a cutting board, Geller”, he told me. “We can sell these at the crazy low price of $5 each, in our retail stores. So, instead of paying to get rid of them, we make a little money!” I never forgot it.

Mr. Grossman would occasionally pull me out of the shop to do some projects at his home. One day, his driver was taking us there, when the boss asked him to pull over. He had spotted some old copper plumbing pipe that a homeowner had thrown out in their trash. He got out, scooped up the copper, and put it in the big Cadillac’s trunk. When he got back in, and we drove off, he said, “Are these people crazy??!! Throwing out copper??” I sat and pondered the connection between this type of behavior and becoming extremely wealthy. Sam Walton, founder of Walmart—and his now 10,000+ stores—was reported to frequently pull over and bargain with roadside produce vendors for a half hour, over the price of a watermelon. One of the biggest property owners and private mortgage lenders in Rhode Island used to arrive at his properties in a 15-year-old Chrysler K-Car, wearing a suit that looked like it came from Goodwill, and probably did! What did these people know….?

Anecdotes aside, the point is that Barney & Carey saves the woodworker money, by not only selling little pieces of very high quality hardwoods, but also not putting premium prices on them.

So, to paraphrase Reuben Grossman, instead of burning pricey hardwoods in our wood stove, we make a little money, while saving our customers money AND providing them with “little pieces of wood”—and wood for hobby projects—that are not so easy to find!

Best wishes for a happy, healthy, and prosperous New Year!

Popular Articles

Furniture: Buy New or Restore?

Back in the 1990s, Barney & Carey accidentally got into the furniture repair and refinishing business. Cindy and I were regulars at the highly...

Subscribe to Our Blog

Get Social With Us

Order Custom Cabinet Parts

Contact Barney & Carey Co.

Give Us a Call

(508) 580-9766

Shoot Us an Email

info@barneyandcarey.com

Our Location

491 West Main St
AvonMA 02322

Business Hours

Monday: 7:30 am - 3:30 pm
Tuesday: 7:30 am - 3:30 pm
Wednesday: 7:30 am - 3:30 pm
Thursday: 7:30 am - 3:30 pm
Friday: 7:30 am - 3:30 pm
Saturday: 8:00 am - 12:00 pm
Sunday: Closed

Cabinet Order Summary

${customerInfoHTML} ${cabinetDetailsHTML} ${printContent} `); printWindow.document.close(); // Wait for content to load before printing printWindow.onload = function () { printWindow.print(); }; } // Set up form field listeners function setupFormListeners() { // Prevent duplicate listeners by removing existing ones first if (window.cabinetVisListenersSetup) { return; // Already setup, don't duplicate } // Listen for changes on all form inputs in the repeater sections const form = document.querySelector("#form_cab-price-calc"); if (form) { // Mark that we've setup listeners to prevent duplicates window.cabinetVisListenersSetup = true; // Use event delegation to catch changes in current and future repeater sections form.addEventListener("change", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } // Also listen for material changes (field 105) if (e.target.name && e.target.name.includes("item_meta[105]")) { updateVisualization(); } // Also listen for type changes (field 45) if (e.target.name && e.target.name.includes("item_meta[45]")) { updateVisualization(); } // Also listen for delivery option changes if (e.target.name && e.target.name.includes("item_meta[113]")) { updateVisualization(); } }); form.addEventListener("input", function (e) { if (e.target.name && e.target.name.includes("item_meta[42]")) { updateVisualization(); } }); // Watch for repeater add/remove buttons const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if ( mutation.addedNodes.length || mutation.removedNodes.length ) { // Check if repeater sections were added/removed const hasRepeaterChanges = Array.from( mutation.addedNodes, ) .concat(Array.from(mutation.removedNodes)) .some( (node) => node.nodeType === 1 && (node.classList?.contains( "frm_repeat_sec", ) || node.querySelector?.( ".frm_repeat_sec", )), ); if (hasRepeaterChanges) { setTimeout(updateVisualization, 100); // Small delay to ensure DOM is updated } } }); }); observer.observe(form, { childList: true, subtree: true, }); } } // Initialize function init() { const container = document.getElementById("sheetVis"); if (!container) { // If sheetVis doesn't exist yet, wait for it const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.addedNodes.length) { Array.from(mutation.addedNodes).forEach( function (node) { if ( node.nodeType === 1 && (node.id === "sheetVis" || node.querySelector?.("#sheetVis")) ) { observer.disconnect(); // Stop observing updateVisualization(); setupFormListeners(); } }, ); } }); }); observer.observe(document.body, { childList: true, subtree: true, }); return; // Exit early if container not found } // Container exists, proceed normally updateVisualization(); setupFormListeners(); } // Handle Formidable Forms multi-step navigation function handleFormPageChange() { // Reset listener setup flag to allow re-initialization window.cabinetVisListenersSetup = false; // Small delay to ensure DOM is fully updated after page change setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { updateVisualization(); // Re-setup form listeners in case they were lost during navigation setupFormListeners(); } else { // If container doesn't exist, re-run full initialization init(); } }, 50); } // Additional fallback detection for form changes function setupGlobalFormWatcher() { // Watch for any significant DOM changes that might indicate form step changes const globalObserver = new MutationObserver(function (mutations) { let shouldReinit = false; mutations.forEach(function (mutation) { if (mutation.addedNodes.length > 0) { Array.from(mutation.addedNodes).forEach(function (node) { if (node.nodeType === 1) { // Check for form content changes or step navigation if ( node.classList?.contains("frm_form_content") || node.querySelector?.(".frm_form_content") || node.id === "form_cab-price-calc" || node.querySelector?.("#form_cab-price-calc") ) { shouldReinit = true; } } }); } }); if (shouldReinit) { handleFormPageChange(); } }); globalObserver.observe(document.body, { childList: true, subtree: true, }); } // Export global interface window.cabinetVis = { init: init, update: updateVisualization, getCabinets: extractCabinetData, handleFormPageChange: handleFormPageChange, debug: function () { console.log("Cabinet Visualization Debug Info:", { containerExists: !!document.getElementById("sheetVis"), formExists: !!document.querySelector("#form_cab-price-calc"), listenersSetup: !!window.cabinetVisListenersSetup, jQueryAvailable: typeof jQuery !== "undefined", cabinetCount: extractCabinetData().length, }); }, }; // Handle Formidable Forms multi-step navigation if (typeof jQuery !== "undefined") { jQuery(document).ready(function ($) { // Use both event delegation and direct binding for better compatibility $(document).on("frmPageChanged", function (event, form, response) { console.log( "Cabinet Vis: Formidable form page changed detected", ); handleFormPageChange(); }); // Also listen for form completion which might trigger on some step changes $(document).on("frmFormComplete", function (event, form, response) { setTimeout(function () { const container = document.getElementById("sheetVis"); if (container) { console.log( "Cabinet Vis: Form complete, updating visualization", ); updateVisualization(); } }, 100); }); }); } else { console.log( "Cabinet Vis: jQuery not available, relying on DOM observation for form changes", ); } // Setup global form watcher as fallback setupGlobalFormWatcher(); // Auto-initialize if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } })();