The Array.Sort method has a generic overload, Sort<T>(T[], Comparison<T>), that sorts the array using the passed comparison delegate to do item comparisons.
There are some non-generic array sorting functions, too. I won’t be covering those.
To call the first sorting function shown above, you have to create a Comparison<T> delegate. That’s easy enough:
// Create a descending item comparer
var descendingComparison =
new Comparison<int>((i1,i2) => i2.CompareTo(i1));
For the second one, you need a reference to an object that implements the IComparer<T> interface. It’s possible to create an IComparer<t> from a Comparison<T>, like this:
var descendingComparer =
new Comparer<int>.Create(descendingComparison);
Given the above, the code below shows how to call those functions.
var a = new[] { 5, 5, 6, 9, 5, 3, 7, 7, 1, 5 };
// Sort passing an IComparer<T>
Array.Sort(a, descendingComparer);
// Sort, passing Comparison<T>
Array.Sort(a, descendingComparison);
Those two function calls do the same thing.
Array.Sort also has a generic overload that lets you sort portions of an array. That’s a pretty common thing to do, so it’s a nice function to have. But there’s only one function: Sort<T>(T[], Int32, Int32, IComparer<T>).
So if I’m sorting the entire array, I can pass a Comparison<T> or an IComparer<T>. But if I want to sort only part of the array, I have to pass an IComparer<T>?
That’s just idiotic! The existence of the overload that accepts a Comparison<T> to sort the entire array creates the expectation of a method that accepts a Comparison<T> to sort part of the array. That such a function doesn’t exist is, in my mind, an interface design error.
It might be that the overload that takes a Comparison<T> exists solely to support something in LINQ. The concept of sorting part of an array doesn’t really make sense in LINQ, so LINQ wouldn’t require a range sorting function. But the expectation is there on the human side, and the IDE’s error message when you write code to call the non-existent function is not at all helpful. When presented with this line:
Array.Sort(a, 0, 12, descendingComparer);
Visual Studio non-helpfully tells me:
Error (active) CS1503 Argument 2: cannot convert from 'int' to 'System.Array?'
Error (active) CS1503 Argument 4: cannot convert from 'System.Comparison' to 'int'
I guess figuring out which Sort method I’m trying to call is difficult. Overload resolution is hard enough when all the parameters match up. When one of the parameters is incorrect and there are multiple overloads that accept four parameters, the compiler has to guess at which one I was trying to call. That sounds like a hard problem.
If you’re unfamiliar with the difference between Comparison and Comparer, the difference is going to frustrate you.
Fortunately, the fix is easy. I showed above how to create an IComparer<T> from a Comparison<T>:
var descendingComparer =
new Comparer<int>.Create(descendingComparison);
Or, if you don’t want to declare a new variable for it:
Array.Sort(a, 0, a.Length/2, new Comparer<int>.Create(descendingComparison));
You can go the other way, too, if you want. That is, to obtain a Comparison<T> from an IComparer<T>:
It looks to me as though Comparison<T> is not widely used in the .NET Framework. The only place I’ve seen it is in overloads to the Array.Sort and List.Sort methods. Comparer<T>, on the other hand, is used all over the place. In my code, I make an effort to keep a Comparer<T> around and create a Comparison<T> from it in the few cases that I need one.
In my career I’ve worked with and mentored many less experienced programmers. One thing I stress when reviewing their UI designs with them is data validation. Anybody who’s worked with me for more than a week has probably heard me say, “The best way to handle bad data is to prevent it from entering the system.”
It seems obvious, but I actually had to work on a system in which date fields were accepted as input strings, and then validated at each use. There was a whole mess of messy code involved with recovering from invalid date fields. But that’s a story for another time.
The typical way to prevent bad data from entering the system is to validate it on input and reject whatever isn’t valid. If the user enters “ham and cheese” in the Birthday field, don’t accept it. Tell the user to enter a valid date.
Some programmers take this too far and try to prevent the user from entering potentially bad data. In a date input field, for example, they’ll display a prompt showing the format “MM/DD/YYYY”.
The input control is customized so that the user can enter only numbers. The user’s input overwrites the letters, and the cursor is never placed on a slash. The control actually helps the user enter a date in the correct format, but it’s still possible to enter an invalid date. That is, nothing in the control itself prevents the user from entering a date of 99/99/9999. The format of the data is correct, but the value is not a valid date. That’s okay: the value is checked when the user exits the field or submits the form.
Every programmer, either of his own volition or because he was told to by a misguided UI designer, will eventually try to prevent the user from entering a bad date. And that’s when things get ugly.
For example, the user enters the date “10/13/2024”. Then she realizes that she made a mistake. That was supposed to be “10/31/2024”. So she hits the back arrow key and positions the cursor under the ‘1’ in “13”. She’s going to type “31” to replace “13”. But the control won’t let her do that because if she enters ‘3’ in that position it will result in “10/33/2024”. Clearly an invalid date and not to be allowed.
So now we’re in a situation where the user wants to do something completely reasonable (type “31” over the “13”), but the control won’t allow it. She has to jump through hoops to fix her error.
Control customization that actually helps the user enter valid data is A Good Thing. But if the control makes it difficult to enter valid data, it’s gone too far. Users are happy to correct fields in which they’ve entered bad data. They are not at all amused by controls that punish them for making common mistakes. That kind of thing is what I call “actively user-hostile.” It’ll make people hate your application.
I’ve heard programmers argue that it’s easier to let the control constrain the input than to validate all the fields when the form is submitted. It’s certainly not easier for the user! And I don’t think it’s any easier for the programmer, either. Forms quite often have interdependent fields that can’t easily be validated individually. The only reasonable time to validate is when the form data is submitted. Custom data input controls can’t change that.
Standard UI controls work well and modern UI frameworks support validate-on-submission. Everything’s there to make the process easy for the programmer and painless for the user. There’s nothing to be gained by attempting to prevent the user from making a mistake. It’s much easier and more user-friendly to let the user submit the form, validate all the data at once, and then prompt the user to fix the fields that have errors. Don’t waste your time on custom controls that do nothing but aggravate your users.
I’m contemplating a new woodworking project. I carved a couple of bowls that for various reasons1 I decided not to finish. I didn’t want them cluttering up the shop so I was going to throw them into the burn pile. But then I got this crazy idea.
Create a tide pool diorama. Carve a few starfish and other tiny tide pool creatures and glue them into the bowl along with some shells and rocks. And I can solve the rotten wood problem by partially (or completely) filling the bowl with epoxy. The more I think about this idea, the more I like the idea.
This, I thought, will be a great place to make use of all those exotic woods I have left over from the Hundred Birds Project. So I went digging through the wood stash and came up with pieces from more than 30 different species, including exotics of many different colors, woods with distinctive grain patterns, and even some burls. My tidepool creatures will be very colorful.
I’m in the earliest planning stages, although I’m pretty sure this project will happen. I need to read up on tidepools and decide what types of creatures to carve. This one should be lots of fun.
Footnotes
While carving, I encountered rotten patches of wood in some critical places. I’d have to carve those away and fill large areas with epoxy. Whereas I could do that, there are two reasons I don’t. First, I don’t think the result would be worth the effort. The elm is pretty enough, but it’s not so exceptionally beautiful that I want to spend that much time on it. I can get all the good quality elm I want from trees in my yard. Secondly, it’s not the direction I want to go with my bowls. I’m a huge fan of inlay to fill cracks, but I don’t at all like the look of large areas of inlay. ↩︎
In How to time code I showed how to use the .NET Stopwatch to time how long it takes code to execute. Somebody asked me about the maximum resolution of Stopwatch: how short of an interval can it time?
Stopwatch uses Windows’ high performance timer, the frequency of which you can determine by reading the Stopwatch.Frequency field. I’ve never encountered a system on which that frequency is not 100 nanoseconds, but I always check anyway. The ShowTimerFrequency function below reads and displays the frequency.
static public void ShowTimerFrequency()
{
// Display the timer frequency and resolution.
if (Stopwatch.IsHighResolution)
{
Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
}
else
{
Console.WriteLine("Operations timed using the DateTime class.");
}
long frequency = Stopwatch.Frequency;
Console.WriteLine(" Timer frequency in ticks per second = {0:N0}",
frequency);
double microsecPerTick = (float)(1000L * 1000L) / frequency;
long nanosecPerTick = (1000L * 1000L * 1000L) / frequency;
Console.WriteLine(" Timer is accurate within {0:N0} nanoseconds ({1:N} microseconds)",
nanosecPerTick, microsecPerTick);
}
The output when run on my system is:
Operations timed using the system's high-resolution performance counter. Timer frequency in ticks per second = 10,000,000 Timer is accurate within 100 nanoseconds (0.10 microseconds)
So the theoretical best you can do with Stopwatch is 100 nanosecond resolution. That’s assuming no overhead. But what is the actual resolution you can expect?
Let’s find out.
Timing requires that you start the stopwatch, run your code, and then stop the watch. Broken down, it becomes:
Start the Stopwatch
Call executes before the watch is started
Watch is started (reads current tick count)
Return executes after the watch is started
Execute your code
Stop the Stopwatch
Call executes while the watch is running
Watch is stopped (subtracts starting value from current system tick count)
Return executes after watch is stopped
Overhead is the time to return from the Start call, and the time to make the Stop call (before the current value is read). You can get an idea of the overhead by using a Stopwatch to time how long it takes to do a billion Start / Stop pairs, and subtract the time recorded by the Stopwatch that you start and stop. The code looks like this:
static public void ComputeStopwatchOverhead()
{
Console.Write("Determining loop overhead ...");
var numCalls = 1000L * 1000L * 1000L;
// First, calculate loop overhead
int dummy = 0;
var totalWatchTime = Stopwatch.StartNew();
for (var x = 0u; x < numCalls; ++x)
{
++dummy;
}
totalWatchTime.Stop();
Console.WriteLine();
Console.WriteLine("Loop iterations = {0:N0}", dummy);
var loopOverhead = totalWatchTime.ElapsedMilliseconds;
Console.WriteLine("Loop overhead = {0:N6} ms ({1:N6} ns per call)", loopOverhead, (double)loopOverhead*1000*1000/numCalls);
Console.Write("Stopwatch overhead ...");
// Now compute timer Start/Stop overhead
var testWatch = new Stopwatch();
totalWatchTime.Restart();
for (var x = 0u; x < numCalls; ++x)
{
testWatch.Start();
testWatch.Stop();
}
totalWatchTime.Stop();
Console.WriteLine("Total time = {0:N6} ms", totalWatchTime.ElapsedMilliseconds);
Console.WriteLine("Test time = {0:N6} ms", testWatch.ElapsedMilliseconds);
var overhead = totalWatchTime.ElapsedMilliseconds - loopOverhead - testWatch.ElapsedMilliseconds;
Console.WriteLine("Overhead = {0:N6} ms", overhead);
var overheadPerCall = overhead / (double)numCalls; // uint.MaxValue;
Console.WriteLine("Overhead per call = {0:N6} ms ({1:N6} ns)", overheadPerCall, overheadPerCall * 1000 * 1000);
}
This will of course be system dependent. The results will differ depending on the speed of your computer and on if the computer is doing anything else at the time. My system is an Intel Core i5 CPU running at 1.6 GHz, and was essentially idle when running this test. My results, running a release build without the debugger attached are:
Determining loop overhead … Loop iterations = 1,000,000,000 Loop overhead = 566.000000 ms (0.566000 ns per call) Stopwatch overhead …Total time = 30,219.000000 ms Test time = 15,131.000000 ms Overhead = 14,522.000000 ms Overhead per call = 0.000015 ms (14.522000 ns)
If the timer’s maximum resolution is 100 nanoseconds and there is a 15 nanosecond overhead, then the shortest interval I can reliably time is in the neighborhood of 115 nanoseconds. In practice I probably wouldn’t expect better than 200 nanoseconds and if anybody asked I’d probably tell them 500 nanoseconds (half a microsecond) is the best I can do. It’d be interesting to see how those numbers changed for a newer, faster CPU.
I’ve carved many bowls over the years, and even turned a few on the lathe. In 2022 I carved a couple of bowls for my niece’s wedding, and I’ve carved perhaps two dozen more since then. I’ve developed a pretty standard process by now, although I’m continually refining it. In this post I will show how I go from a raw log to a carved bowl.
Understand up front that this will be a long post and only the first in a series of posts. In this first part I show how I split a bowl blank from a log and then shape the outside of a wooden bowl. In the next post I’ll show how I hollow the inside. After that will be smoothing the inside, filling the cracks, and then final sanding and applying a finish. I’ve hollowed the bowl and will be posting about that soon. It might be a while before I do the rest of the work on this piece.
One other thing. I’m showing you the tools and procedures I employ to carve a bowl from a piece of wood. I’m not saying that this is the only way to do it or even that it’s the right way to do it. I’m showing you what works for me. If you have suggestions for improving things, or questions about something in particular, feel free to contact me via email. The address is jim AT mischel.com.
Wood selection
It strikes me as funny that people often ask, “Where do you get your wood?” It’s as though they think there’s a special place to get logs that are suitable for carving. I’ve often joked that I carve FOG wood: I found it on the ground. Seriously, though, the stuff grows on trees! I find carving wood wherever somebody has pruned or cut down a tree. The neighborhood in which I live has a lot of trees. There’s always a good selection of logs lying around, and people are happy to have me take some away. If they need convincing, the offer of a handmade bowl carved out of wood that came from their tree hasn’t failed.
In addition, new neighborhoods are continually being built in the area, meaning huge piles of plowed-down trees. My truck and maybe some help from a friend will get me more wood than I could ever carve.
Trust me, finding wood to carve into bowls is not a problem. Much the opposite, in fact. There’s so much that I can afford to be, even have to be, selective. Depending on what I’m going for I might select for shape, size, type of wood, etc. Even being selective, there’s no possible way I could carve all the really cool pieces of wood that I would like to carve. Availability of carving material just isn’t an issue.
For this demonstration, I selected this piece of oak that I rescued from the burn pile at Sherwood Forest Faire. When I threw it into the back of the truck a year or two ago, it was fresh-cut and had no splits. It sat out by the garage and, as wood does, cracked as it dried. That doesn’t bother me: cracks are just another feature to incorporate into the design.
I don’t know which of the many different oak varieties this is. There are more than 500 different varieties of oak, a dozen or more of which are native to Central Texas. This one is pretty indicative of oak in general: medium hard, straight-grained, and beautiful when finished. It should make a lovely bowl.
Prior to splitting, the log was 25 inches long and varied from 11 to 12 inches in diameter. I split is approximately in half with a wedge and sledge, and threw the larger piece onto the work table. The larger piece turned out to be about 5-1/2 inches thick in the middle.
I set the other piece aside for later. I’ll probably carve another bowl from it at some point.
I’d never kept track of how long it takes me to carve one of these bowls. Fortunately, I took a whole mess of pictures. The picture timestamps give me a good idea of how long each step took. I didn’t document interruptions, though, so it’s impossible to get an exact time.
The reason I’m keeping track of time is that I’m contemplating selling my work. I’ve always given the bowls I make away as gifts. If I’m going to start selling the things I make, I need to keep track of how much time I spend making them so that I can get an idea of how much to charge. That, too, is a whole other discussion.
Flattening the bottom
The first big task is rough-flattening the bottom of the bowl. For this bowl, the bark side will be the bottom. I’ll end up flattening the top, too, but I do the bottom first because the top is already approximately flat after splitting. It sits nice and steady on the bench. As is often the case I had to add a wedge to prevent it from rocking while I work. It’s a whole lot harder the other way: trying to keep a round log from rolling from side to side.
My workbench is pretty simple. The base is a Black and Decker WorkMate that I bought at a neighbor’s garage sale for something like $20. On top of that is a work surface that I knocked together from a couple of 4×4 scraps and a piece of OSB left over from some project or another. Raising the table four inches did wonders for my back! It also provides a large, flat work surface. Before I got the WorkMate, my workbench was one of those brown banquet tables, four feet long and two feet wide. It was nice to have all that surface, but clamping was a bit of a problem when working on smaller bowls. I might go back to the banquet table, though, for some larger pieces.
I’ve heard it said that you can’t have too many, or too many different types, of clamps. I do have a lot of different types of clamps, but there’s nothing special required here. Just two run-of-the-mill screw clamps to keep the work surface on the table, and two more for a block to keep the log from sliding forward as I work on it. I’m not worried about it sliding backwards because it’s heavy enough (about 30 pounds at this point) and I won’t be applying significant force in that direction. Notice the wedge under the front right corner. That’s there to prevent the piece from rocking as I work.
It’s important to remember that here I’m flattening the surface. I’m emphatically not leveling it. That is, I just want it to be a (roughly) flat surface. I’m not trying to make it parallel to any existing flat surface. The other thing to keep in mind is that word “roughly”. I want something that’ll sit on the workbench without rocking as I’m carving the bowl. A little wobble at this point is okay; I’ll worry about getting it perfectly flat after I finish carving.
I do rough flattening in two steps. First, I put a coarse wheel on the angle grinder to remove the bark and make a (very) approximately flat surface. The primary reason I do this is that it’s a whole lot easier to rough things out with the grinder than with the electric plane. Once I get down past the bark, I begin taking off wood with the electric plane. I can adjust the plane to take from 1/64″ to 1/16″ at a time. I usually start at 1/16″ until I get to where I want to be. I might make a pass or two at 1/32″ if I need to smooth some ridges.
I’ll be the first to admit that the electric plane wasn’t really designed for this use. But it works really well for rough flattening. I know I’ll have to make another pass at it, but that’s okay.
How wide should the base be? However wide you think it needs to be. Seriously, it rather depends on the size and shape of the bowl, and how the bowl will be used. For a display bowl, a fairly narrow base is fine: just enough to keep the bowl from falling over from light pressure on the side. For a bowl that will be used, you probably want a wider base. This bowl will probably be a display piece, but I want to carve it to look as though it is, or was, a functional bread bowl. At least on the outside. I made the base 6″ wide. That will narrow a bit when I carve the sides, but I think the final width will be at least 5″.
From the time I took that first picture of the bowl blank on the workbench up to now is, according to the picture time stamps, an hour and five minutes. I got called away briefly while I was working on flatting the bottom, but I don’t recall for how long. I’ll say it took an hour to get to this point.
Safety
Before we go any further, let me talk a bit about safety. As you can see in the picture above, I wear a full face shield and a respirator. I also wear ear plugs, which you obviously can’t see. This wasn’t always the case. The first few times I carved a bowl with the angle grinder, I didn’t wear any of that stuff. I’d just throw on some shop goggles to protect my eyes, and then get to work. That prevents the most immediate hazard, but ignores the long-term effects of inhaling wood dust and repeated insults to the ears. Oddly enough (or perhaps not), I didn’t improve my safety equipment in response to those dangers, but rather because I found that wearing the improved safety equipment made me more comfortable.
I noticed, after carving a bowl, that my head would be buzzing for a day or two afterwards. The best way I can describe it is tinnitus with a vengeance. One day before carving I threw on the ear muffs I used to wear when mowing the lawn (I use earplugs now), and afterwards I was surprised at how not-exhausted I was. Turns out it takes some serious mental effort to focus my attention on carving with the steady roar of the angle grinder. And that’s when I noticed that my tinnitus wasn’t appreciably worse than normal. Ear protection became an essential piece of safety equipment after that.
The addition of the respirator is a similar story. Debra caught me digging black boogers out of my nose a day after I’d carved a bowl. I realized I was being stupid. I could prevent the discomfort of my reaction to the wood dust and avoid embarrassing situations by wearing a respirator. Now after carving a bowl I can still breathe normally. Plus, I don’t risk some random fungus colonizing the warm, dark, moist land of Lung. The wood I work with comes from the wild; it’s not the kiln-dried, sterile, and perfectly-dimensioned turning blanks one picks up at Woodcraft or Rockler. There are a lot of bacteria and fungi in found wood, and many of them are quite happy to set up shop in your lungs. Those kind of infections are potentially deadly, difficult to diagnose, and hard to treat. Wear an N95 respirator if you’re raising dust. Or at least wear a protective mask of some kind. Even a cloth tied around your face is better than nothing. Anything you can do to prevent inhaling what you’re grinding will help.
I adopted the full face shield on the recommendation of a friend who was injured when a bowl he was turning came apart on the lathe. A piece of that bowl hit his safety glasses, destroying the frame and putting a good-sized gash in his forehead. The very next day I was turning a bowl, wearing a full face shield as recommended. The bowl came apart on the lathe and a piece of the bowl smacked my face shield about even with my nose. I don’t know how much damage that piece of wood would have done to my face had I not been wearing the face shield, but I vowed right then never to find out. I wear a full face shield whenever I’m swinging that angle grinder or using other power tools that have a high chance of throwing stuff at my face.
And then there’s the elephant in the room: the missing guard on the angle grinder. That’s a standard piece of safety equipment, and I tried carving a bowl with it in place. The guard gets in the way. It’s a removable guard, which tells me that it’s an optional piece of safety equipment. I understand the dangers of removing it, but I just don’t see them as critical. In particular, I’m grinding wood rather than metal: it’s not throwing off sparks or small metal shards. I do have to be careful, though, not to catch the workpiece with the back of the disc.
One more safety consideration: keep the area around the work table clear. You do not want to be tripping over stuff when you’re holding on to a tool spinning an abrasive disc at 15,000 RPM. That thing will remove skin with alacrity. I wish I could say that I’m not speaking from experience. Fortunately I’ve only taken off a little skin. Others have incurred much more serious injuries. The tool isn’t inherently dangerous, but it can be dangerous if used incorrectly.
Rough shaping the ends
When I was first starting out with wood carving, I developed what I call the Coarsest Tool Principle. Understand, the concept has been around for ages; anybody who spends time working with wood or any other material they want to shape has probably adopted it without even thinking too much about it. Briefly, the Coarsest Tool Principle says, “Always use the coarsest tool available that will do the job without tearing things up.” For example, if you want to remove 2″ of wood, cut it off! It’s foolish to 30 minutes grinding wood into powder when I can spend 30 seconds cutting it most of it off with a chainsaw, followed by five minutes or so spent shaping the result with the angle grinder.
This bowl will have a pretty traditional shape: wide at the top, narrowing to a flat base, and an oval opening. So the ends curve up, and narrow. I save myself a lot of grinding time by cutting the ends at an angle with the chainsaw. I’m not attempting to make the final shape, although I suspect somebody who’s more familiar with chainsaw carving could do a better “approximate” job than I did here. The first picture below shows one end and the pieces I cut from it.
In the picture below you can see how I clamped the wood onto the workbench so that it would stay still while I was cutting.
According to the timestamps, I spent 25 minutes cutting the ends off the bowl. Most of that time was spent locating the chainsaw, sharpening the chain, and adjusting the chain tension. Call it an hour and a half up to this point.
Flattening the top
I didn’t take any pictures while I was flattening the top. As I said previously, the top is already flat-ish. I didn’t have to grind anything away with the angle grinder, but rather started removing wood with the electric plane immediately. That still takes a while, though. The wood is 12″ wide and the plane can cut at most 3″ at a time. At 1/16 inch per pass. That’s a minimum of 32 passes with the plane to go down 1/2″. I had to take off a little more than that. All told, I probably ran the planer over the top at least 50 times before I had it flattened to my satisfaction.
Which brings up the question of why I flatten the top of the bowl. After all, I’m going to carve away most of it. Why spend all that time making sure it’s flat?
There are two reasons.
First, if I want the sides of my bowl to be even–the same height all the way around–it’s a whole lot easier to accomplish if they start that way. Leveling the top of a bowl once it’s carved is tedious: first I have to get them approximately even, then take it to the sanding table to get them perfectly even. Then I have to carefully shape the edges. Unless I want the bowl to have a flat top rim. But that brings up other considerations that I’ll save for another time.
Even though I don’t typically want my bowls to have perfectly level top edges, I still flatten the top of the bowl before I begin carving. The two pictures below show why.
To support the bowl while I carve the outside, I attach a floor flange to the top. On a separate board that’s clamped to my workbench, I’ve attached another floor flange into which I’ve threaded a 10-inch-long, 1-1/4″ galvanized pipe nipple. Then I turn the bowl blank over, thread the flange onto the pipe, and screw it down. It’s quite an effective holding jig. I find it ideal for carving bowls.
If you want to build something like this, be sure to get the right length of pipe so that it positions the bowl at a good carving height for you. You should prefer a longer pipe over a thicker base, although your base should be at least 1″ thick. And use four screws in both pipe flanges. You want that piece of wood to be held as securely as possible. It’s probably safe with three, but why not go ahead and put the fourth one in there? I use 1-1/4″ or 1-5/8″ (whichever is convenient at the time) #9 outdoor decking screws. Unless of course the bowl blank isn’t that thick.
According to the timestamps on the photos, it took me 30 minutes to flatten the top and mount the bowl on the carving stand. Call it two hours, total time, up to this point. Time to start carving.
Shaping the outside
I hear from time to time about people who hollow the bowl before shaping the outside. I don’t know how they do it. I’d be afraid of taking too much off and breaking through because I can’t easily determine just where the inside of the bowl is. More importantly, once the bowl is hollowed out, how the heck do they hold the thing still so they can carve the outside? I know how it can be done, but it’s a whole lot more difficult than my simple pipe flange holding jig.
The first thing I do before I start carving proper is remove the bark. For removing bark, I prefer the coarse carbide disc you see in the picture above. I picked it up at Harbor Freight for something like $10. It removes bark in bigger chunks than does my normal carving disc, and seems to go faster. When it comes to bark, bigger chunks are definitely better. For some reason I find bark dust extremely annoying. Weird, I know, but there it is. I didn’t use this grinding wheel to remove bark from the bottom of the bowl because I couldn’t find it. Turned out it was in the drawer where it was supposed to be, just buried under something else.
I carved my first few bowls, outside and inside, with this exact type of disc. It’s possible, but there are much better carving discs. Especially for hollowing. But if you’re severely budget constrained, you can make it work.
After removing the bark, I changed out the disc and started shaping. I don’t usually have an exact shape in mind at this point. I know generally what I want, but I’m open to improvisation, although there wasn’t much improv involved this time. I rounded the ends and shaped the sides so that they’re more planer than curved: almost flat. I’m not at all concerned with making the bowl perfectly symmetrical with both ends shaped the same, sides perfectly straight and at the same angle, etc. I can appreciate that kind of precision, but I find trying to do it very stressful. I like the look of an irregular bowl.
Without an exact design, I move around the carving, slowly removing wood and turning sharp edges into gentle curves. The disc I use (picture left) is very aggressive and necessitates a light touch. I never let the full weight of the grinder bear on the disc. Doing so would take a deep bite that could easily go deeper than I want. It’s also a whole lot easier to control the angle grinder when taking thin cuts. If I go deep enough, that disc could get stuck in the wood and rip the angle grinder right out of my hands. That, as they say, would be bad.
Pictures in the gallery above show the bowl after I finished rough shaping with the carving disc. My goal at this point is to have the bowl in its final shape. I’ll do a lot of smoothing, which will change the shape a little bit, but what you see here will be pretty much the bowl’s final shape.
Picture timestamps tell me that shaping took about 40 minutes. I’m about two and a half hours into the project.
A note about angle grinders
Angle grinders, by the way, seem to come in two flavors: those with slide switches and those with trigger switches. Having used both, I much prefer the trigger switch models. From an ergonomic standpoint, I find that they fit my hand better. I can use a trigger switch grinder longer with less fatigue than I can a slide switch model. More importantly, the trigger switch is easier to turn off: just let go of the trigger. There is a trigger lock so that I don’t always have to be holding the switch. When engaged, I have to squeeze the trigger again to disengage the lock. Squeezing the trigger briefly is a whole lot easier and faster than reaching with my thumb to turn off a slide switch model. You’ll pay a little bit more for a trigger switch model, but I think it’s money well spent.
Don’t skimp on your angle grinder. I know you can get a slide switch model for $20 or $25 at Harbor Freight. I’ve bought, used, and burned up many such. I got tired of buying a new grinder every year or two. Even their “high quality” model that cost $30 lasted only a year and a half. I bought that Ryobi angle grinder you see in the picture above for about $60 eight or ten years ago and I’ve carved dozens of bowls with it. More comfortable to use and lasts longer seems like a good deal to me.
Smoothing the outside
I do like that carving disc. It makes quick work of rough shaping, but it leaves a pretty rough surface. In addition to being rough, the surface is uneven; there are a lot of small low spots that I need to eliminate. There are several ways I could smooth the surface. I’ve tried hand scraping, hand sanding, and flap wheels on the angle grinder. All work, but I prefer the angle grinder because it’s faster.
In keeping with the Coarsest Tool Principle, I do initial smoothing with a 36-grit flap wheel on the angle grinder. Although I could do some shaping with the flap wheel, ideally all I’m doing is removing tool marks and low spots from the surface. After smoothing with the 36-grit flap wheel, I do it three more times using 60, 80, and 120-grit flap wheels. I could probably get away with just 60 and 120, not even using the 36-grit wheel. But it only takes a few minutes for each smoothing pass and by the time I’m done I’m reasonably sure that there aren’t any deep tool marks left in the wood.
In the first picture you see the rasp plane that I used to finish flattening the bottom of the bowl. That thing makes a pretty quick job of flattening the bottom, but leaves deep gouges in the wood. I can eliminate them on my sanding table, but if I learn how to operate a hand plane (i.e. one with a blade), I won’t have to spend as time at the sanding table.
In the second picture you can see there are some small flat areas. I’ll remove those with sandpaper.
Timestamps tell me that I took another 45 minutes to flatten the bottom and smooth the sides. I think I probably got interrupted in the middle of that, but perhaps not. Total time to this point is three and a half hours.
Sanding the outside
The primary reason I sand the outside now is convenience: it’s a whole lot easier to sand the outside of the bowl when it’s being securely held on the carving stand. I’ll have to do much of that over again after filling the cracks, but that’s okay. Sanding now gives me a uniform surface to work from, reducing the amount of sanding I have to do while fighting to keep the carved bowl still on the workbench.
I’ve recently changed two things about how I sand these bowls. First, I sand wet even at the coarsest grits. Water helps prevent the sandpaper from clogging. It also softens the wood, making it easier for the sandpaper to cut. I’ve found that I do a better job of sanding, and take less time to do it, when I use water. Sandpaper with a waterproof backing is a bit more expensive, but I consider it money well spent.
Averaged across all the grits I use, sandpaper costs me about a buck a sheet. The way I cut the sandpaper, one sheet provides three pieces that fit well in the hand. Sanding the outside of this bowl, I used 4 pieces, one each of 60, 80, 100, and 120-grit. That’s one and one-third full sheets of sandpaper, or about $1.33. By the time I’m done with the bowl, sanding inside and outside after carving, and then sanding up to 220 grit after filling the cracks, I will have used maybe four full sheets of sandpaper. And this is a big bowl. Sandpaper isn’t a huge expense.
The other change to my sanding process is the addition of gloves. Specifically those work gloves with the rubber (nitrile? whatever) fingers. And the reason I wear gloves now is because my fingers started bleeding when I was working on a bowl a few weeks ago. It takes time to do a good job sanding, and all that time while I’m sanding the wood I’m holding on to the sandpaper. My fingers would be sore the next day, but I just chalked that up to the cost of making something pretty. But bleeding fingers is too much.
I spend a lot of time sanding at this stage. I want to make sure that I have removed all of the tool marks, and all of the low spots and small flat spots are gone. To help in doing a good job, I’ve developed a little system. I start sanding at one end of the bowl and move clockwise around it, making sure to cover every inch of surface. It’s pretty surprising how well my fingers can find low spots and flat spots, even through the gloves. And of course my eyes are there looking for irregularities, too.
After completing a trip around the bowl, I do it again, but counter-clockwise. One reason I switch directions is simply to spread the load: when moving clockwise, my left hand is doing the sanding. When I’m moving counter-clockwise, the right hand is occupied. The other reason I do it is so I can see the wood from two different perspectives.
For each grit, I move around the bowl three times (sometimes more) in alternating directions. I also vary the starting direction at each grit. I want to make sure that each hand does approximately half the work, and I want to avoid any kind of bias in my procedure that would cause me to miss something.
I’ll be the first to admit that I probably spend more time sanding at this point than I really have to. That’s okay. I’d rather spend more time now so that I don’t find myself having to back up a few grits when I’m sanding away at 180 grit and discover a scratch that requires 100-grit sandpaper to remove. Backing up and re-sanding is a huge pain in the neck. Especially, as I mentioned before, when the bowl is no longer securely held on the carving stand.
Another nice thing about wet sanding is that it gives me an idea of how the piece will look when finished. The oil finishes I use (usually tung oil or linseed oil) don’t color the wood, but they do give it a wet look. Getting the wood wet with water approximates the color of those finishes very well.
I wasn’t surprised to find that sanding took a long time. Picture timestamps say that it was an hour and fifty minutes from the last picture I took of the smoothed bowl and the first picture of the wet sanded bowl. I took a break in there to wolf down a snack and do a couple of minor chores before I started sanding. If I were to guess, I’d say it was about 20 minutes
At this point the outside of the bowl is carved and sanded. From the time I first put the log on the workbench up to now is right at five and a half hours. I have another half hour of cleanup to do (putting tools away, etc.). Call it six hours, total, to go from a raw log to a bowl that’s shaped but not hollowed. Understand, though, that this bowl is quite a bit larger than what I typically carve. My bowls are usually 16 or 18 inches long, 7 to 10 inches long, and 3 to 4 inches deep. This bowl is half again as large. Perhaps more than that.
I took a few pictures of the bowl standing upright on the workbench. I think this will look nice after I hollow the inside.
You can see in these pictures that I didn’t get the top of the bowl perfectly flat. If I were concerned about that, I could spend a little bit more time making it flat and, if I were really concerned, level with the bottom. But that’s not the look I’m going for with this bowl. I think it’ll look just fine the way it is.
I’ve been a Spotify customer for years. I think $15/month is a good deal for access to all that audio content. But the app is so danged frustrating to use! More so because I regularly use four different versions of the app: the Windows desktop app, the Android app on my Samsung tablet in the shop, the Android app on my phone, and the Android Auto interface to the app on my phone.
The tablet and phone versions are almost identical. All of the apps are usable, although the Android Auto interface is just barely functional. But I expect better than just “usable.” The Spotify app, even on the Windows desktop leaves so much on the table. Things it should do but doesn’t, and often the things it DOES do are done in stupid ways.
Its handling of podcasts is particularly stupid. By default it lists the episodes in reverse chronological order. If I go to the podcast and hit “Play,” Spotify dutifully plays the most recent episode. And when that ends it goes to the previous episode, etc. Already heard it? Tough! You know where the “next episode” button is. And the next time I want to listen to something I haven’t heard I have to search through all the episodes I’ve already listened to.
It doesn’t help that most of the time when this happens I’m driving down the road in my truck and I don’t want to take my eyes off the road long enough to fiddle with the dang thing. I wonder how “Hey Spotify” would respond to “Hey, Spotify, play the most recent RadioLab episode that I haven’t already heard.” Asking Google to ask Spotify to do that hasn’t produced the desired result.
It seems as though Spotify hasn’t figured out that podcast episodes aren’t like songs. I don’t put podcast episodes on playlists and listen to them again and again. Why can’t I select an option so that hitting Play from the episodes list will play the most recent (or oldest! I’d love the ability to play all podcast episodes from the first one) episode that I haven’t already played?
More to the point, I listen to multiple podcasts. Why do I have to visit each individual podcast page to play the new episodes? Can’t Spotify create a “pending” list for me? It could append to the list whenever a new episode from one of my watched podcasts is released. I could go to that page, hit Play, and the oldest episode podcast would start playing. And when it’s done, it’s removed from the list!
I don’t think my requests here are unreasonable or even unusual. I suspect plenty of other podcast listeners have similar frustrations. Or maybe I can ditch Spotify for podcasts? Time to do some digging.
I was digging through my wood stash a week or two ago and came across this piece of Osage Orange. I’m not sure where I got it. I think it was a branch that I cut off a larger piece that I carved six or eight years ago. I’ve been re-discovering the joy of just doodling with the knife, and thought I’d see what kind of doodle I could whittle up.
Understand, Osage Orange is a hard wood. I mean really hard. Think “harder than mesquite” hard. I’ve carved several different things from this wood, but always with power. It’s harder than most carvers will attempt with a knife, or edged tools in general. But we already know that I’m a little unbalanced.
I stripped the bark and carefully carved away the outer layers just to see what I had to work with. The wood is hard, but not terribly so when cutting with the grain. It’s not very forgiving when carved against the grain, though. I found that, as with most hard woods, I can carve upstream if I’m careful, but I had to be extra careful with this wood because it tends to tear surprisingly easily. Cutting across the end grain is … well, it’s really hard.
With no particular design in mind, I started whittling away. At some point I thought it’d be interesting to try making some curves that follow grain lines. I shaped one end and incorporated the two branch stubs to vaguely resemble a bird … or a dolphin. I added a little bit more shape to make it look less like a stick. But my real purpose was to highlight different features of the wood.
The picture on the left shows the piece after I’d done most of the carving with my BeaverCraft C2 whittling knife. That little knife really is a joy to work with. It’s inexpensive, feels good in the hand, and the blade holds an edge well. It’s the knife my students use in classes, and I recommend it for beginners. And for advanced carvers, as well. The shape of the blade isn’t great for fine detail, but that’s okay. I don’t do much detail work, and I find that bench knives with very narrow points have a tendency to break at the tip. Or perhaps I should say that I tend to break the tips off of such knives. The BeaverCraft knife has a pretty broad, thick tip. I’d have to try very hard to break it.
At this point I pulled out my detail knife to touch up some of the cuts. A lot of carvers would go to sandpaper after that. I used to, but over the past few years I’ve started making the first smoothing pass with a scraper. More correctly, with a knife that I’ve re-purposed as a scraper. It’s just a sharp knife that I scrape over the wood, removing fine shavings. This does a much faster job of rough smoothing, and the sharp tip of the blade can get into areas that are very difficult to reach with coarse sandpaper.
In theory, a good scraper is all one needs. It leaves a fine glossy finish. But scraping something perfectly smooth, especially with these hard woods, is a difficult and tedious process. The end grain, in particular, will drive you mad. If you ever try it, you’ll much better appreciate the invention of sandpaper.
In a discussion at my monthly carving get together last week, one of the members commented on how carvers hate finish work. I had brought for show and tell some of the things I’d been whittling recently, all of which were simple shapes that I spent as much time sanding and finishing as I did carving. Her reply when I told her that I enjoyed finishing amounted to, “You’re different.”
I started with 60 grit sandpaper to get the carving smooth, and then worked my way up through the grits: 80, 100, 120, 150, 180, 220, 300, 400, 600, 800, 1000, 1200. The last four I sanded wet. I had intended to go to 2000 grit, but couldn’t find anything beyond 1200 in the shop.
After sanding, I set it aside and let it dry overnight. This morning I wiped it clean with a paper towel.
I’ll be the first to admit that the carving isn’t great. But it does an excellent job of displaying the wood’s beauty. And it’s glass smooth. I find myself picking it up just to feel it. Then I get lost looking more closely at different features, seeing how branches affect the grain pattern, and alternately admiring the cracks and being disappointed that they’re there.
Understand, I’ve not yet put any kind of finish on the wood. I’m still considering further sanding. If it shines like this at 1200, what will it look like at 2000 grit?
The wood has a decidedly orange tint to it now. That will darken to brown over time, due to oxygen and ultraviolet radiation. The only way I know of to prevent that would be to lock the carving in a dark, airless box.
Osage Orange. 5 inches long. Hand carved, and sanded to 1200 grit. No finish.
It became painfully (literally) obvious earlier this year that I should wear a hat whenever I go out in the sun. This was not an unexpected result; I’ve known for years that I should be careful. After all, my hair isn’t as abundant as it used to be and I did inherit my mother’s fair complexion. I probably should wear SPF 50 if I go outside during the full moon.
Anyway.
Since the aforementioned painful incident I have endeavored to wear a hat whenever I go out in the sun. Except what I’ve really done is start wearing a hat whenever I step outside. Why? Because I’m a creature of habit. It’s hard to create habits with exceptions. It’s a whole lot easier to make it a habit to put on a hat whenever I go outside. There’s no decision involved. I just put “hat” on my mental checklist for leaving the house.
I’ll admit that it’s pretty weird to walk out the door in the dark, headed to the shop, and then come back in saying, “Forgot my hat.” It’s dark. The sun can’t burn me and there’s no full moon, so I really don’t need the hat. But I go get it, put it on my head, and make my way to the shop.
It’s a harmless eccentricity, and it helps me remember to wear a hat.
In 2020, a doctor in California encountered an unusual number of fungal infections in burn patients. Understand, a burn patient getting a fungal infection isn’t particularly uncommon, but it’s not an “every time” thing, either. A search for the culprit lead them to the ventilation system, where they discovered filters that had been overwhelmed with wildfire smoke. And the doctor got to wondering if the smoke could have been a vector for the burn patients’ infections.
Up in Smoke, an episode of the RadioLab podcast, tells this story and the story of a fire ecologist who has discovered that wildfire smoke contains a dizzying array of bacteria and fungi. Based on her research, it’s certainly possible that wildfire smoke could have been the vector for those infections. It can’t be proven, but there is some strong correlation in the data.
I found the whole thing fascinating, and it’s given me a couple of things to think about. The first is how it took us this long to ask the question, “What’s in smoke?” We’ve long known that smoke contains soot that interferes with breathing, and substances that in sufficient quantities can cause permanent lung damage and many different types of cancers. But nobody ever thought to ask if there’s anything alive in smoke?
Perhaps the reason nobody ever asked is that smoke comes from fire, and of course fire is hot enough to kill anything alive. So it’s silly to even think about smoke carrying microbes. Right? It’s an interesting blind spot. Nobody thought to ask the question until a fire ecologist named Leda Kobziar started her research project in 2017.
When I see something like this I think, “What other questions aren’t we asking?”
I also wonder whether this finding, dispersal by smoke, can help answer some questions in paleomicrobiology. It could enhance our understanding of plagues, and also of how microorganisms spread during Earth’s evolution.
Definitely take the 30 minutes to listen to this podcast (unfortunately, I don’t see a written transcript). Check out the references on that page, too, for the details of both women’s research.
People are forever waxing nostalgic over the “old days” of music. Through some twisted reasoning they long for the days of records, tapes, and CDs, complaining that today they have to pay a monthly subscription just to listen to music. Perhaps they don’t remember things the same way I do.
I bought a high-end stereo system in 1985. At the time, a record album cost about $6.00. For what is the equivalent of about $15.00 today, I got maybe 40 minutes of music. If I had a turntable and stereo. And I had to get up and flip the record after 20 minutes. Cassettes and CDs were available, too, and cost about the same. The CDs’ primary advantage was that I didn’t have to get up and flip the record (or tape).
Today, I pay $15.00 per month to Spotify, and Debra and I have access to a huge selection of music, podcasts, audio books, and who knows what all else. I can play whatever I want whenever I want. I turn it on and it plays. Continuously. Until I tell it to stop.
Let that sink in a little bit. For the monthly price of what I would have paid for one album, I have an essentially unlimited music library. And I’m not talking obscure stuff, but the latest music in any genre and pretty much everything of note that has been released since the dawn of recorded music. Sure, there are some things not available for various reasons, but Spotify and similar services do in a very real sense give you everything. For the price of one record album per month.
Not only that, but I don’t have to store the music collection, take special care of it, or replace a cassette tape because the temperamental player decided to have a snack. Warped records are a thing of the past.
To play those records or whatever back in 1985 required some special-purpose equipment. Very bulky, heavy, and expensive equipment. My high-end stereo system in 1985 cost what today would be about $12,000. And all it could do was play music: AM/FM stereo, vinyl records, cassette tapes, and CDs. The equipment weighed a couple hundred pounds and sucked power like nobody’s business. Sure, it was a really nice stereo, but even a low-end stereo back then would run you a few hundred dollars: what today would be $1,000 or more.
And if you bought one new record album every month then in 10 years you’d own maybe 120 hours of music. But if you then discovered Pink Floyd and wanted to collect all of their albums, it’d cost you $75.00 (equivalent to $180 today). Remember Apple Music and $1 per song?
Streaming, too, requires some equipment. You need a phone and an internet connection. Oh, wait, you already have those! All you need, if you want to save your ears, is a better speaker than what the phone includes. A pretty decent speaker for small spaces will run you maybe $30. Some quite usable wireless earbuds will be less than $100. You can spend a whole lot more if you want to, but a “listenable” speaker is not at all expensive. By contrast, even a set of low-end stereo speakers in 1985 cost hundreds of dollars: the equivalent of a thousand or more today.
So, let me see: a hugely expensive, non-portable stereo system combined with a laughably small music collection, or a $15.00 monthly subscription to a service that gives me immediate access to pretty much anything I’d ever want to listen to whenever I want it, wherever I am.
Tough choice. Let me think . . .
Who am I kidding? If you’re nostalgic for the bad old days of owning media, knock yourselves out. I’ve got some records, CDs, and cassettes (no 8-tracks left, sorry) I’ll make you a heck of a deal on. Me, I’ll sit back and groove to some tunes and laugh while watching you fiddle with your records or whatever.