I just had to do one more snowman. This piece is carved from pear wood and stands about 3-1/4 inches tall. The arms are random twigs from the yard and the pipe is carved from mesquite. The pipe is slightly too large for the snowman, but I’m not sure I could carve it any smaller. As with the last one, the rest of the decorations are chips of black walnut.
I need to be a little more careful with the glue. I managed to smear glue around the nose and mouth, and it’s visible under bright light. That wood glue is good stuff, but it doesn’t clean up very well. The only way I know of to remove it would be to carve or sand it away. Live and learn.
Off to other things, but I’ll definitely come back to the snowmen. They’re fun.
While sitting out on the porch today overseeing a batch of ranchero sauce cooking on the gas burner, I whittled this little snowman (about 3 inches tall) from a sycamore branch.
The nose is actually a dark spot in the wood, which just happened to be in a fortuitous spot. The eyes, mouth, and buttons are little chips of walnut that I glued on. The arms are twigs from a juniper bush.
I was doodling on a piece of maple over the weekend and ended up with a goofy snowman. The nose is the end of a toothpick. Goofy, sure, but it has a certain charm.
I got a rude surprise today when I discovered that constants in C# (.NET programs in general) are a little more constant than I thought. I know that sounds strange, but let me explain.
Here’s a C# class that defines two constants and a method that outputs those constants.
using System;
namespace OtherTest
{
public static class TestObj
{
public const int ConstInt = 42;
public const string ConstString = "First test";
public static void ShowConstants()
{
Console.WriteLine("TestObj.ShowConstants");
Console.WriteLine("ConstInt = {0}", ConstInt);
Console.WriteLine("ConstString = {0}", ConstString);
}
}
}
We can compile that into OtherTest.dll with a simple command line:
csc /t:library OtherTest.cs
If you’re having trouble running the compiler, go to your All Programs menu and select Visual Studio|Visual Studio Tools|Visual Studio Command Prompt. Then you should be able to run the command line compiler.
Okay so far. Here’s some code that references the constants in that class:
using System;
using OtherTest;
namespace testo
{
class Program
{
static void Main()
{
Console.WriteLine("Inside Program.Main");
Console.WriteLine("ConstInt = {0}", TestObj.ConstInt);
Console.WriteLine("ConstString = {0}", TestObj.ConstString);
TestObj.ShowConstants();
}
}
}
Compile that program and link with the OtherTest assembly with this command line:
csc /t:exe /reference:OtherTest.dll ConstTest.cs
That creates ConstTest.exe which, when run, provides this output:
That’s exactly what we expect. Now, change the values of the constants in OtherTest.cs:
public const int ConstInt = 99604;
public const string ConstString = "Second test";
And re-compile the assembly:
csc /t:library OtherTest.cs
And run the ConstTest.exe program again:
C:\DevWork\ConstTest>ConstTest.exe
Inside Program.Main
ConstInt = 42
ConstString = Firsttest
TestObj.ShowConstants
ConstInt = 99604
ConstString = Second test
If you’re as surprised as I am, raise your hand. The constant that the main program sees is different from the constant that is defined in the external assembly.
I understand what’s going on, but I’m pretty surprised by it. The compiler, when it compiled ConstTest.cs, reached into OtherTest.cs, got the values of the constants, and included them as constants in the compiled code. So when the code references TestObj.ConstInt at runtime, it’s really just getting the constant 42. That all makes sense. Except, of course, when you change the constant in the OtherTest.cs assembly, re-compile, and the values don’t match.
What surprises me is that the C# compiler (CSC) hoists the constants from the assembly. After all, the compiler is just creating MSIL (intermediate code) that is later compiled to native code by the JIT compiler at runtime. I would have expected CSC to write MSIL that says, in effect, “Use the constant value defined in that other assembly here,” and let the JIT compiler figure out how to optimize everything. That would eliminate the confusion you see above, and I don’t understand why it’s not done that way.
The thing to remember here is that constants are evaluated at compile time. I don’t know all the ramifications of this, but one thing is for certain: if your program references constants that are defined in an external assembly, then your program is at risk any time that assembly is changed. Unless you make the rule that a publicly visible constant never changes value throughout the life of the source code, you’re running the risk of encountering a very difficult to find bug that will “go away” when you re-compile the project. And there’s nothing worse than bugs that just “go away.”
This is a set of earrings I carved from basswood. They’re actually very light–lighter than most gold earrings. People like the pinecones, but they’re kind of tedious to carve.
I started carving on this pumpkin patch back in October after I completed the third of my scarecrow figures. Then I got bogged down with other things, or perhaps I was afraid to put this thing together. If I didn’t try, then I couldn’t screw it up. I did make some mistakes, but nothing fatal.
This is what I call a scrap pile project. The pumpkins are carved from small bits of basswood that were left over from cutting out blanks for other projects. The hay bales are cut from a piece of 1″ x 1″ maple that I found in the scrap box. The scarecrow post is a piece of black walnut left over from the little whale I carved over a year ago. The fence is oak from the whiskey barrels. And the scarecrow and the base are from a chunk of scrap lumber I took off a pallet last year. Amazing what a little sandpaper and paint can do, huh?
In a 2007 study, researchers from the California Institute of Technology and Stanford’s business school found that people enjoy more expensive wine more than cheaper wine–even if the two wines are the same. Article. If you think the wine is more expensive, you like it more.
A separate study showed that test subjects rated a wine higher if they were told beforehand that a wine expert had rated it highly. Those who were told that the wine was rated as “average” rated the wine considerably worse. Both groups rated the wine differently from those who weren’t given any advance information about the wine’s rating.
In Is Bottled Water Better Than Tap?, John Stossel describes how the 20/20 team took five different national brand bottled waters and a sample of New York City tap water to a microbiologist for testing. The microbiologist could find no significant differences among the waters. The idea that bottled water is safer than tap water is just flat wrong.
But does bottled water taste better? 20/20 ran a blind taste test that included five bottled waters and that good old New York City tap water. Many of the participants were bottled water drinkers who were convinced that they could tell the difference between bottled water and tap water. They couldn’t. Tap water tied for third in the taste test. The cheapest bottled water (Kmart’s American Fare) came in first. The most expensive water, Evian, was rated as “bad” by almost half of the testers.
Do a little searching and you can find similar tests by the truckload. Dedicated Bud Light drinkers can’t tell the difference if you replace their beer with Coors Light. If you slap an expensive label on a bottle of cheap wine, the snobbiest wine snob you know will be hoodwinked, praising the wine and your good taste. Fill an Aquafina bottle with tap water and the most tap-averse of your friends will gladly swig it down. Wrap a block of store brand cheddar cheese in a label from some artisan cheese place, put the Ritz crackers in a fancy package, and nobody at your hoity-toity wine-and-cheese party will know the difference.
Face it, Coke, Pepsi, and the store-bought cola all taste like battery acid. In a blind taste test, almost nobody can tell the difference.
Store brand canned goods are often packaged in the same plant as national brands. The only difference is the label that gets stuck to the can at the end of the line. The contents are no different.
Of course, you can tell people this all you like. Hell, most of your friends will agree. Except, of course, they can tell the difference. Sure. And everybody in the country thinks he’s an excellent driver.
The truth is that the vast majority of people (and that almost certainly includes you and me) can’t tell the difference between the $5 chardonnay and the $50 chardonnay, whether you’re drinking tap water or Dasani, or whether the eggs are organic, free-range, or factory-farmed.
Face it, the reason you can’t tell any difference is because there isn’t a significant difference. Get over it. Or at least admit that your preferences are based on marketing hype, snobbishness, or something other than actual taste.
Debra and I went up north again over Thanksgiving, spending four days and nights at a ranch in Ranger, TX with our friends Mike and Kristi. Mike spent part of each day sitting in a deer blind with his rifle, hoping to get some fresh venison. One afternoon I was asking him about his rifle, which he said is a “thirty-aught-six,” and we got to discussing the different types and calibers of rifles.
Understand, I’m not completely unfamiliar with firearms. I consider myself more knowledgeable than most in that I qualified Expert with handgun and rifle, can break down, clean, and re-assemble a weapon, and have a working knowledge of guns in general and a healthy regard for gun safety. But I’m certainly no expert or walking encyclopedia on the topic. In particular, I find the whole issue of caliber to be incredibly confusing. I expect things to make sense, and if you look only at the caliber, things make no sense at all.
We’ll start with Mike’s “thirty-aught-six,” more commonly written as “.30-06.” The “.30″ part means that it’s a .30 caliber bullet. That is, the bullet is .30 inches in diameter. The “-06″ in the designation stands for the year 1906, which was the year that the United States Army started using it. The designation covers more than the bullet. The Springfield .30-06 is 7.62 mm (diameter) x 63 mm (length) cartridge that has a specific shape and load (amount of powder). This became the standard round for the U.S. Army and was used for almost 50 years, including in the WWI era Springfield rifle and the WWII era M1.
So the .30-06 is a .30 caliber rifle. How does that differ, for example, from a .30-30? A .30-30, as you would expect, is a .30 caliber round, but what does the “-30″ stand for? It’s not the year in which the round was introduced, but rather the size of the load: 30 grains (about 1.9 grams) of smokeless powder. Winchester introduced the cartridge in 1895. It’s a 7.62 mm x 51 mm cartridge, as opposed to the -06′s 7.62 x 63.
And then there’s the .308 Winchester, which is also 7.62 x 51, and is very similar to the 7.62 x 51 NATO cartridge introduced in the 1950s and used in the M14 rifle and M60 machine gun, among others.
Remember I said before that a .30 caliber bullet is .30 inches in diameter? That’s not entirely true. The .30-06, for example, has a bullet diameter of 0.308 inches, as do the .30-30 and the .308 Winchester. The 7.62 x 51 NATO, though, has a bullet diameter of 0.300 inches. The .303 British is 0.311 inches, as is the .303 Savage. With the exception of the NATO cartridge, which really does have a bullet diameter of 7.62 mm, the rest of them are confusing as heck. Why a .308 would be 0.308 inches but a .303 would be 0.311 inches is beyond me. I suspect that the measurement is actually the diameter of the rifle barrel and depends on how the measurement is taken (i.e. between the grooves, between the lands, or maybe from one groove to the opposing land).
It doesn’t get much better with handguns, by the way. For example, I always wondered why a .357 Magnum was more powerful than a .38. I’m not talking a little bit, either. A .38 is a dangerous weapon, no doubt, but it pales in comparison with the stopping power of a .357. Why is that? After all, isn’t the .38 bigger?
Actually, the .38 Special has a bullet diameter of 0.357 inches. Why is it called a .38? I don’t know, but the neck diameter of the cartriged is 0.379 inches. The .357 Magnum bullet is also 0.357 inches in diameter. The .357 Magnum has a heavier bullet and a bigger load (i.e. more powder), making it a much more powerful weapon.
A 9 mm handgun, by the way, has a bullet diameter of 0.356 inches. So a 9 mm is pretty much the same thing as a .38, and there are 9 mm Magnum cartridges that are comparable to the .357 Magnum cartridges.
Face it, the world of guns and ammunition is seriously confusing. And for the most part the caliber doesn’t particularly matter. For example, the M16 rifle uses a 5.56 mm round (.224 inches)–the same size as the .22 long rifle bullet fired by popular .22 caliber rifles and pistols that are used for small game hunting and target practice. The difference is that the 5.56 bullet is larger, heavier, and has a whole lot more power behind it.
A fatter bullet isn’t necessarily “better” when it comes to stopping power. What matters is the amount of kinetic energy, which is one-half the mass multiplied by the square of the velocity. So if you double the bullet’s speed, it has four times the kinetic energy. Faster is better than fatter.
I don’t know that my newfound knowledge is particularly useful. There’s still a lot I don’t know, and I’m okay with that. I’m just happy that I won’t be totally bewildered the next time I get into a discussion of rifles and calibers.
I went out this morning intending to ride between 30 and 40 miles. At about 8 miles I ran over a piece of glass, which somehow made it through my Gatorskin tire and punctured the tube. Disappointing, but it doesn’t happen too often. My last flat was back in July.
A flat tire isn’t normally a big deal. I typically carry at least one spare tube, plus a patch kit. I hate being stranded. This morning, though, it was a problem. You see, the first spare I pulled out was a new tube fresh out of the box. Well, “fresh” in that I hadn’t used it yet. It’s been in my seat bag for the last four months. It wouldn’t hold air.
Undeterred, I grabbed the second spare that was in the seat bag. That one was just stuffed into the bag, kind of like how I’d stuff a punctured tube in the bag after changing it out. But a quick test showed that it would hold air, so I installed it, pumped up the tire, put my bike back together, and continued my ride.
For about two miles.
It turns out that the tube I installed is the one that punctured back in July. It had a slow leak. When I got home that day, I just put the new tube in the bag and forgot about fixing the old one.
I rummaged through the seat bag, pulled out the patch kit and the tube that was punctured a few moments before, found the hole, roughed up the rubber, opened the tube of vulcanizing compound and … nothing. Damn! That stuff has a tendency to dry up and it’d been in the seat bag all summer. So I’m left with patches but no vulcanizing compound. I considered trying to slap a patch on, depending on just the glue to hold it, but decided against the experiment. Instead, I pumped up the tire (the one with the slow leak) and headed for home.
It’s kind of frustrating, having to stop every mile and a half in order to add more air. But it beats walking barefoot, pushing the bike. Walking any distance in those cycling shoes is not an option.
So my “30 or 40 mile” ride turned into 19 miles, more than half of which was done on a leaky back tire.
I obviously need to pay more attention to my emergency supplies. I get flats so rarely that I’ve become complacent. What was an inconvenience this morning could have been a very uncomfortable walk home.
I’ve been riding in the middle of the day the last few weeks, and often “in town” rather than out on the county roads. I forgot how aggressive drivers can be. Every ride in town includes incidents of drivers purposely cutting me off (typically to make a right turn), or failing to see me even though I’m wearing very bright colors. I think I’ll re-think the idea of riding in town. It’s too dangerous.
The prevalence of stop signs and traffic lights is also very frustrating. Out of town, even the major roads will have maybe one traffic light every few miles, and the county roads have no lights and very few stop signs. There are places where I can ride more than 10 miles without seeing a car. It’s a much nicer environment for riding.
I’m closing in on my 20,000 mile goal. After today’s ride, the computer reads 19,460. I had hoped to have 19,500 before Thanksgiving because I’ll be out of town over the weekend. That would give me just shy of five weeks to ride 500 miles: easily doable. I’ll get a ride in tomorrow, but I’ll probably be 10 miles or so shy of 19,500. Provided the weather doesn’t turn too terrible in December, I’ll be at 20K before the new year.
And then I’ll back off on the bicycling for a bit. I need to get into the gym and build a little upper body strength. Contrary to what many think, bicycling does require some strength in the arms and the core muscles. I experienced some lower back pain during longer rides this year, most likely because I haven’t been doing enough sit-ups and back extensions. I’m planning some much longer rides for next year, so it’s time to build up those muscles.
The past two weekends, I attended free training workouts with Austin Cycle Camp. The first weekend was a speed workout combined with some cornering drills. This past weekend we did hills, working on maintaining a steady cadence and also on form. I picked up some good tips, and hope to engage their coaching services next year when I start training for my big rides. I’d like to get my century time down to under six hours. That shouldn’t be too tough. The harder one will be a 12-hour double century. Yeah, I’m crazy like that.
I’m developing a generic Range class in C# so that I can create comparison ranges. The idea is that I can replace code like this:
int MinValue = 22;
int MaxValue = 42;
...
if (val >= 22 && val < 42)
{
}
with this:
Range<int> MyRange = new BoundedRange(
22, RangeBoundType.Inclusive,
42, RangeBoundType.Exclusive);
...
if (MyRange.Contains(val))
{
}
In isolation it doesn’t look like a win but if you’re doing that range comparison in multiple places or working with multiple ranges, some of which can have an open-ended upper or lower bound, or bounds that can be inclusive or exclusive, working with a Range type can save a lot of trouble.
Before we go on, let me introduce a little bit of notation.
First, the characters ‘[' and ']‘ mean “inclusive”, and the characters ‘(‘ and ‘)’ mean “exclusive.” So, assuming we’re working with integral values, the range [1,30) means that the numbers 1 through 29 are in the range. Similarly, (1, 30] means that the numbers 2 through 30 are in the range.
To specify “unboundedness,” I use the character ‘*’. So the range [*,255] means all numbers less than or equal to 255. And, of course, the range [*,*] encompasses the entire range of values for a particular type. By the way, inclusive and exclusive are irrelevant when unboundedness is specified. That is, [*,255] and (*,255] are identical ranges.
A Range type also allows me to do things like compare ranges to see if they overlap, if one contains the other, etc. And therein lies a problem. Consider the two byte ranges [0,*] and [*,255].
It should be clear that, since the range of a byte is 0 through 255 (inclusive), the two ranges are identical. The first range has a lower bound of 0, inclusive, and is unbounded on the upper end. The second range has defined bounds of 0 and 255. As programmers, we can tell by inspection that the two ranges are identical.
Unfortunately, there’s no way to write generic code that can determine that the ranges are equivalent. Although the primitive types available in C# all have defined maximum and minimum values (Int32.MaxValue and Int32.MinValue, for example), not all types do. And since I might want to have ranges of strings or other types that don’t have defined bounds, there’s no general way to tell the difference between a range that has no defined upper bound and a range whose upper bound is the maximum possible value for that type. If I wanted that ability, the only way would be to pass maximum and minimum possible values for each type to the Range constructor–something that I’m not willing to do and might not even be possible. What’s the maximum value for a string?
The inability to determine that an unbounded range is equivalent to a bounded range makes for some interesting problems. For example, consider the two byte ranges [1,*] and [0,255]. It’s obvious to programmers that the second range contains the first range. But how would you write a function to determine that?
public bool Contains(Range<T> other)
{
// returns true if the current range contains the other range
}
Since there’s no way to convert that unbounded value into a number, the code can only assume that the upper bound of the first range is larger than the upper bound of the second range. Therefore, Contains will return false.
Whether that’s an error is a matter of opinion. Logically, having Contains return false in this case is the correct thing to do because “unbounded” is larger than any number. But it seems like an error in the context of types like byte that have limited ranges, because there’s really no such thing as an unbounded byte. Rather, byte has a maximum value of 255 and one would expect the code to know that.
As I said, it’d be possible to extend the Range class so that it knows the minimum and maximum values for the primitive types, and give clients the ability to add that information for their own types if they want. That way, an unbounded upper value for an integer would get Int32.MaxValue. That way, the code would “do the right thing” for the built-in types, and clients could define minimum and maximum values for their own types if they wanted to.
But I wonder if it’s worth going to all that trouble. Is it more sensible to explain the rules to programmers and expect them to define specific bounds (i.e. not use unbounded) if they think they’ll be working with ranges (as opposed to comparing values against ranges) of primitive types?
With a little more than seven weeks to go before the end of the year, I have to ride another 750 miles in order to achieve my goal of having 20,000 miles on the bike. I’ll reach that goal, but I’ll admit that my motivation to do so has waned.
The primary reason I ride my bike is because I enjoy it. More to the point, I enjoy setting long-term goals that force me to push my comfort zones–stretch to accomplish them. In the context of bicycling, meeting those goals requires that I develop a training schedule and stick to it, improving my fitness and endurance a little at a time so that I’m prepared when the big event comes. The training invariably involves riding a lot of miles, but the miles aren’t the point: they’re a byproduct of the training.
Just “putting in the miles” is not effective training. Doing long slow rides every day does very little in terms of increasing fitness. It’s pointless exercise. There’s nothing wrong with it, but it’s not going to increase my speed, build my ability to climb or sprint, or even make a difference in how far I can ride. If I just want to get up and move, I’ll take Charlie for a walk. Long slow distance is boring and pointless.
Bicycle training (and other types of physical training) involves three types of workouts: base, overload, and recovery. All three types have specific purposes.
In bicycle training, base mileage workouts are designed to build endurance, get you accustomed to spending hours in the saddle, learning how to measure your effort so that you can maintain a strong pace throughout the distance. These rides are long steady distance, but also involve some high-heart rate efforts (climbing, for example) and periods of rest and recovery on the bike (after a hard effort). Base mileage is the foundation. It builds endurance and gives you a foundation on which you can build strength and speed.
Note that I said long steady distance rather than long slow distance. The difference is that base mileage workouts are not necessarily (or even often) slow. Most LSD rides are done at a medium aerobic effort, with some forays into high aerobic effort. More infrequently, I’ll do an LSD ride at high effort and throw in some sprints or hill that push me into anaerobic territory. “Slow” doesn’t usually enter into the equation. I’m tired when I’m done with an LSD ride, but not completely exhausted.
“Overload” rides usually involve a lot of sprints and hill repeats, or a time trial that I ride as fast as possible. These workouts are designed to push my body further than I’ve pushed it before. I want to climb a larger hill, sprint faster, complete the time trial in less time. When I’m done with one of these rides, I’m beat. My legs are shaking, and climbing the stairs to the office is difficult. These hard efforts “tear down” the muscles in my legs so that they can be rebuilt stronger. Pushing my heart up to and beyond my lactate threshold increases the body’s ability to use oxygen and break down sugars for energy, and over time will actually increase the lactate threshold meaning that my aerobic range increases.
And then there are recovery rides. Some coaches say that recovery is the most important part of training. Base mileage is the foundation that allows you to do overload rides. Recovery is the time when you let the body rest and rebuild after the overload ride. Recovery for me is a combination of rest (taking a day off) or doing a slow ride for an hour or two, just to keep the muscles limber and the blood pumping. A recovery ride involves sub-aerobic (i.e. “fat burning”) or low-aerobic effort. Even so, my recovery rides aren’t just “slow distance”. I use my recovery rides to practice bike handling skills, work on my pedaling form, test out different riding postures, etc. And, of course, sit back and enjoy being outside, perhaps chatting with other cyclists who I encounter.
Those rides have specific purposes, and my overall training plan has a specific purpose: to prepare me for whatever event I have in mind. And it works. I’ve used those training plans to train myself for many different events, and I used something very similar to help Debra go from not riding at all to completing a three-day, 335-mile ride in just a year of training. The key is to make every ride count.
The problem is that my season has ended now. I have events planned for next year, but I’m not going to start training specifically for them until late February. I’ll continue to ride a bit, but this is the time I should be in the gym working on core and upper body strength. Extreme endurance rides take a toll on the neck, arms, stomach, and back (especially the lower back), and I need to build strength in those areas if I want to meet next year’s goals.
Unfortunately, I’ve announced that 20,000 goal and I need to ride 100 miles per week until the end of the year in order to meet it. And since I don’t have a particular event in mind–something I’m working towards–those miles are “just exercise”: putting in the miles. Thus my diminished motivation.
So if it’s more than miles, why do I talk about miles at all? Because it’s a reference that will mean something to cyclists and non-cyclists alike. Most non-cyclists will automatically assume that a 50 mile ride is harder than a 25 mile ride. They won’t generally understand that the 10 hill sprints on the 25 mile ride made it much more difficult than the 50 mile ride at medium effort. Another cyclist, though, who knows me and has an idea of my current fitness level, will infer quite a bit of information from a simple post about how many miles I rode this morning. He’ll know that a 50 mile ride was probably base mileage, that a 10 mile ride was recovery, and anything in between was most likely overload: sprints, hills, or time trial.
As for next year’s events: nothing specific to announce yet. I will say, however, that I’m planning at least one ride that’s longer than anything I’ve ever done before.
When I was in military school, we were expected to wear our uniforms at all times when we weren’t in the barracks. We had the daily uniform, a uniform for working out (PT gear), dress uniforms, etc. The only time we weren’t in uniform was when taking a shower or sleeping. We even wore our uniforms when we went into town on the weekends.
As you would expect, cadets from time to time would want to wander around town in “civilian clothes.” For whatever reason, this was a common desire. What we didn’t realize back then was that a Marine Military Academy cadet was recognizable even out of uniform. The first “tell” was the haircut. In the late ’70s, very few teenagers had military-style haircuts, and you can bet that no kid in Harlingen, Texas had such a haircut because he wouldn’t want to be mistaken for an MMA cadet.
Some kids got the bright idea to wear a wig or hat to hide the haircut and thereby go incognito. That didn’t work very often, either. MMA cadets stand straighter than their non-cadet contemporaries, and they march even when they’re just ambling down the road. It’s trivial for anybody who’s familiar with cadets to spot one in a crowd. He stands out because he looks, stands, walks, and talks differently from somebody who hasn’t attended the school.
Founded in early 2008, what eventually became the “Tea Party” was a reaction to the excesses of government perpetrated by both major parties. What started as a popular uprising and was laughed at by members of both major parties soon became a serious force in American politics because Tea Party members were echoing the frustration and disgust felt by many of us.
Following the sweeping rejection of Republicans the 2008 election, many Republicans started looking for a way to re-make the party’s image, and they somehow managed to latch onto the growing popularity of the Tea Party. At first, it looked encouraging: Republicans who were interested in fiscal responsibility were embracing what looked to be an up and coming third party. But somewhere along the way the Tea Party got hijacked by the Republican old guard.
An old school Republican can’t hide in a group of people who are fed up with the excesses of government any more than an MMA cadet can don civilian clothes and disappear among the natives. Republicans are part of Big Government just as Democrats are. The only difference between the two is what parts of Big Government they support.
Today’s “Tea Party” is just a bunch of old Republicans who’ve put on wigs and new clothes, trying to fool us into believing that they’re something else while they belt out the same tired old ideas. As one of the original Tea Party founders said, the movement has been hijacked by the very people it was protesting against and is now obsessed with “God, guns, and gays.”
Don’t be fooled. There’s nothing different behind the thin Tea Party veil. It’s the same old crap you’ve been hearing for decades. The Republicans today are screaming the “I hate Obama” message as loudly as Democrats were screaming “I hate Bush” back in 2004. And, like the Democrats in 2004, the Tea Party Republicans have nothing else on their agenda. They’ll have us believe that if we put them in power, they’ll “fix” everything.
That said, I’ll be happy to see Democrats lose control of Congress. Not because I have any love of the Republican party, but rather because I think it’s dangerous to have any party control both the Legislative and Executive branches of government. People complain about government gridlock, but I think it’s a good thing. We’re much better off when Congress has a difficult time passing legislation.
At least, that’s what he wants us to believe. The Boston Globe reports that Barney Frank, chairman of the House Financial Services Committee, finally admitted that he was late in seeing the developing mortgage crisis and that he was wrong about the financial viability of Fannie Mae and Freddie Mac.
Now, being late to see something is not a sign of incompetence. However, when even I saw the crisis coming in 2005 and again in 2007 as did many financial pundits and Congressional leaders, you have to wonder how the head of the Financial Services Committee failed to see it or pay heed to warnings. In 2003, Frank declared Fannie Mae and Freddie Mac to be fiscally strong and also maintained that even if they were to fail, the federal government wouldn’t bail them out.
Frank maintained those positions for the next five years. Less than three months before those two government sponsored enterprises were declared insolvent, Frank maintained that they were financially sound.
His excuse? ”I was wearing ideological blinders.” That’s right, he was concerned that Republicans and the Bush administration were going after Freddie and Fannie on ideological grounds, attempting to curtail the lenders’ mission of providing affordable housing. In other words, he’d have us (his constituents, at any rate) believe that he mistakenly discounted information because it came from a source he didn’t like. He wants us to infer that, had he obtained information from some other source, he would have seen the problem developing.
I find that exceedingly difficult to believe. We’re talking about the head of the Financial Services Committee (in 2003, the ranking member of the minority party). He would have us believe that he didn’t have his own sources of information who were telling him the same things. If he admitted that, then he’d have to explain why he voted against a bill that would have instituted tighter control of Freddie and Fannie starting in 2004. A few years later, when Frank became the head of the committee, he helped push through legislation that did institute such controls, but by then it was too late. The damage was too extensive.
Even in July 2008, Frank insisted that the companies were “fundamentally sound, not in danger of going under.” A few months later, he was proven wrong.
I’m not trying to lay the blame for the mortgage crisis or the insolvency of Freddie Mac and Fannie Mae solely on Barney Frank. There’s plenty of blame to go around, starting with the Clinton administration’s insistence on easing lending rules, the Bush administration’s continuation of those rules, and the Republican-controlled Congress’ failure to institute controls in order to prevent a crisis that they all saw coming.
My issue is with Frank trying to hoodwink his constituents into believing that his “ideological blinders” prevented him from seeing the real problem. The way I see it, there are only two possibilities:
Frank flat didn’t see it coming, in which case he’s incompetent.
He saw it coming, but his ideology holds that affordable housing is more important than silly things like economic viability. In other words, he insisted on maintaining the programs even though he knew what the eventual outcome would be.
If he’s incompetent, he should go. If he put his ideology ahead of the best interests of his constituents and the rest of the country, he should go. Either way, the voters in the Fourth Congressional District of Massachusetts should do themselves and the rest of us a favor by kicking the bum out come election day.
A recent issue of Woodcarving Illustrated magazine had a one-page article showing this miniature scarecrow ornament. It’s about 3.5 inches tall, carved from wood about 3/4 inch thick. I didn’t have any basswood of appropriate thickness, so I grabbed a board from an old pallet that I’d torn apart for scrap lumber. I have way too much of that scrap lumber (guess I don’t spend enough time in the garage knocking things together), but now I have a use for it.
The pine carved reasonably well. It’s brittle in a few places, but overall is fun to carve.
I goofed a bit on the first ornament, getting the legs too thin and breaking one that I had to glue back on. But the second turned out pretty good. I have one more blank cut out, and lots of wood to cut out more if I want. Although I’ll fix the bandsaw before I cut out any more. Doing these with the coping saw is tedious.
Picture quality is pretty poor. I was in a hurry this morning. I took the ornaments outside, figuring it’d be nice to get pictures of them hanging from a tree in the back yard. I obviously have a bit to learn about taking pictures, especially in the early morning light.
The pattern and short description are on Page 86 of Woodcarving Illustrated Issue #52. I think you should be able to navigate to the article from that Scribd link.
Overall, I very much like the C# language, the .NET Framework, and the benefits of having my programs run in a virtual machine. But sometimes, all that gets in the way. I recently ran into an excellent example that illustrates how the execution environment can make things very difficult.
A skip list is a data structure that stores a sorted list of items, using a hierarchy of linked lists. The average search performance of a skip list is roughly the same as a balanced binary tree, but inserting and deleting items is significantly faster because the skip list doesn’t have to spend any time re-balancing the tree. The skip list has theoretical worst-case performance that is truly horrendous, but in practice it’s difficult to construct a severely non-optimal structure, and almost impossible to generate a worst-case arrangement of items. The original paper describing the skip list was written in 1990 by William Pugh. See Skip Lists: A Probabilistic Alternative to Balanced Trees.
Another use for a skip list is a priority queue. The research I’ve seen shows that a skip list based priority queue is significantly faster than a heap-based priority queue. Several of my programs make very heavy use of priority queues, and they could benefit from a more efficient implementation. More importantly, a concurrent skip list priority queue is much more efficient than a concurrent heap-based priority queue. See Skiplist-Based Concurrent Priority Queues.
In ease of implementation, a skiplist is approximately equal to a heap. Both are very simple data structures that require only about 150 lines of C# for everything. The skiplist is slightly more complex because it requires that each item contain an array of link pointers to nodes further in the list. By contrast, I can implement a heap in an array and not require any node pointers.
It’s the implementation of the node structure that causes a problem in C# (.NET in general, I would think). Let me explain why.
If you read the skip list paper, you’ll understand that it implies a node structure similar to this:
class SkiplistNode
{
T Value;
SkiplistNode[] Forward;
}
That is, the node contains a reference to the value and also an array of references to following nodes. The array is of variable size, depending on the node’s level in the hierarchy. (It really is helpful if you read the skip list paper.)
In a perfectly balanced skip list, one half of the nodes will be at level 1, and will need only one Forward pointer. Of the other half, one half of them will be at level 2 and will need only two Forward pointers. In a skip list of a million items, there will be one node at level 20, two nodes at level 19, four nodes at level 18, etc. This is all probabilistic, of course, so the actual number of nodes at each level will vary by a small amount, but it generally follows the power of 2 structure of a binary tree.
So what’s the problem? After all, it’s trivial to allocate an array with whatever number of elements you want. Here’s a simple constructor for the SkiplistNode class:
public SkiplistNode(T val, int level)
{
this.Value = val;
Forward = new SkiplistNode[level];
}
But how much memory does that node occupy? The Value will typically be a reference, which is 8 bytes in the 64 bit runtime. The Forward references require 8 bytes each, so the minimum size of the node will be 16 bytes. Okay so far.
In a skip list with N nodes, there will be approximately 2N forward references. So a skip list with a million nodes would require about 16 megabytes for forward references and another 8 megabytes for the Value references, making up a total of about 24 megabytes. (Not counting the per-node allocation overhead, which I can eliminate by making these things value types.)
But that’s not the whole story. It turns out that allocating an array involves 56 bytes of overhead. All of a sudden, the average per-node size isn’t 24 bytes, but rather 80 bytes. My million-node list grows from 24 megabytes to 80 megabytes. I had hoped to build a skip list with 100 million nodes, but I don’t have 8 gigabytes for it.
If I were writing this in C or C++, I could create a variable sized structure, like this:
That would allocate exactly the amount of space I need, with no array overhead at all. You can’t do that in C#. Or if you can, I certainly don’t know how it’s done.
(Added later)
The difference between the two is quite striking. Imagine that you’re allocating a node at level 3. The C code allocates memory as though the structure were laid out like this:
That structure occupies 32 bytes: 8 bytes for the Value& reference, and 8 bytes for each of the Forward references.
But in C#, an array is an object in its own right. There’s no way to allocate an array of references in-line. The C# code allocates memory as if the structure is defined like this (in C):
The Forward array is allocated separately on the heap. It’s the overhead of that allocation that costs 56 bytes in .NET. The C# structure occupies 8 bytes for the Value reference, 8 bytes for each of the three members of the Forward array, and 56 bytes of array allocation overhead (which includes the 8 bytes for the Forward reference itself).
(End of addition)
I don’t know of a good solution here. I thought I could do it with fixed-sized buffers and some fancy inheritance, but there are several problems with that solution. First, fixed-sized buffers can only store primitive types (not references), and fixed-sized buffers may only be members of structs, not classes. I could try to simulate a fixed-sized buffer (using a base class that has one Forward reference, and derived classes that implement additional Forward references), but doing so would lead to some very ugly and difficult code.
Other solutions are possible, including explicit linked lists, managing my own heap of Forward reference arrays, and doing everything indirectly, with an array of references and a custom linked list that contains indexes into that array rather than the references themselves. But all of those solutions complicate the data structure and add additional overhead to the skip list algorithm, making it perform slower–perhaps slower than the heap that I want to replace. It’s frustrating.
Again, in the vast majority of cases I’m very happy working with C# in the managed .NET environment. But for some things, this skip list being an excellent example, I chafe at the handcuffs the runtime places on me. In this case, I’ll have to come up with an innovative way of getting around that per-node cost or just skip the skip list altogether.
The 23rd annual Outlaw Trail 100 bicycle tour started at Old Settler’s Park in Round Rock at 8:00 AM yesterday. The temperature at the start was right at 60 degrees: a bit on the chilly side to ride without a vest or arm warmers, but I knew that it’d warm up pretty soon. It got to about 85 in mid afternoon.
The Outlaw Trail ride is much smaller than the Hotter ‘N Hell Hundred that I did in August. I shared the road with 13,000 riders in Wichita Falls. There were a total of about 1,000 riders at the start yesterday, many of them doing one of the shorter distances (10, 25, 40, 50, or 63 miles). Still, there was quite a bit of excitement among the riders lined up there at the start.
The ride started promptly at 8:00 with the 100 milers going first. My goal for today was to be more consistent than I was in my previous ride. A secondary goal was to improve my time, but I was more interested in conserving energy so I didn’t suffer the last third of the ride like I did in August.
I kept a good eye on my heart rate monitor for the first 40 miles or so, to ensure that I kept it below 80% of max effort. Except on the hills, of which there were many more than in Wichita Falls, I largely succeeded. But even on the hills I kept it below 90%, and usually below 85%. One of the better pieces of advice I’ve read on the subject says that the secret to completing an endurance event like this is “never go anaerobic.” 85% of max heart rate is generally regarded as the limit of aerobic effort, so it’s critical to know your max heart rate and what values represent 65%, 75%, and 85%.
Besides going out too fast, I made two other mistakes in Wichita Falls: I failed to eat enough and I didn’t drink enough water. At my normal pace, I burn from 30 to 40 calories per mile, so I have to consume 450 or more calories per hour while I’m riding. There’s a certain amount of easily-converted fuel in my blood stream and stored as muscle glycogen, but I’d be surprised if that could take me more than two hours when I’m pushing it.
My plan for the day was to skip every other water stop (placed at approximately 12 mile intervals) along the course. With the cooler temperatures, my two water bottles were enough to carry me 25 or 30 miles, so there was no danger of running out of water between stops. I did exactly as planned for the first half of the ride, except I stopped at 30 miles because I had to pee. That cost me about a minute and a half of waiting for the one porta-potty to become available.
I didn’t consume 450 calories every hour, but I ate a whole lot more on this ride than I did in Wichita Falls, and I was fairly consistent about it. I did slack off on my eating between 60 and 75 miles, during which I was pushing pretty hard against the wind (it’s surprising how one forgets the important things as they become more important, but there it is), and I ended up paying for that between 80 and 90 miles.
As I mentioned, there were fewer riders on the course here than in Wichita Falls. There, I could almost always see a dozen or more riders in close proximity. Although I was rarely completely alone on yesterday’s ride, there were plenty of times when the only rider I could see was hundreds of yards ahead of me. Although there were always riders within sight, I spent most of the ride alone. I didn’t join a paceline at any time, although a few impromptu lines formed behind me when I was headed into the wind.
There was one group who played leapfrog with me from 20 miles on. There were stopping at every water station and spending a lot of time there. I was making very brief stops at every other station. So I’d pass them at almost every water station, and they’d pass me between stations. We arrived at the 90 mile station at about the same time, and they passed me about five miles before the end of the ride. That discouraged me for a bit and I slowed down. When another rider caught me, I talked to him for a few minutes and realized that I was feeling pretty darned good.
I kicked up the pace the last four miles, really pushing to see if I could finish strong. As a result, I passed a half dozen riders in the last couple of miles, including a few who had been in the leapfrog group and, I suspect, had been unable to keep up with the leaders when they kicked up the pace.
All told, I finished the 100 miles in 6 hours and 38 minutes, with an overall average speed of 15.1 MPH. That’s 0.3 MPH better than my average speed in Wichita Falls. The interesting thing is that my moving average of 15.9 MPH was almost a full mile per hour slower than in my previous ride. The difference is that during that ride I spent 50 minutes off the bike. This time I spent just a little over 20 minutes off the bike.
I didn’t finish the ride as fast as I had hoped, but I made a big improvement over the last ride. Overall, I’m very satisfied with my performance.
Only 1,100 miles left to meet my goal of 20,000 by the end of the year!
Today was the third and final day of the class taught by Rick Jensen. You might want to view Day 1 and Day 2 before continuing here.
I said yesterday that I had a lot of work left to complete this carving, and that I probably wouldn’t be able to finish it before the end of today. It was a lot of work and I had very little time today for taking pictures; I was too busy carving. I’m happy to report, though, that the hard work paid off. I completed the carving late this afternoon.
I spent the first part of the morning shaping the limbs of the tree. Although I’d done a lot of work on them yesterday, they were still lacking interesting shape. I pulled out my trusty knife and slowly whittled them into shape, giving them a much more organic look. A more experienced carver could have done it much faster, but I was being very careful not to take too much off. Unfortunately, I don’t have a picture of the carving before I started detailing the limbs.
The picture on the left shows the house after about two hours’ work. The major changes are the shaping and texturing of the limbs (incomplete), and detailing the roof. The right side (in this picture) of the roof is very steep and has a concavity that would have made shingles impossible. Since I had a lot of thickness to work with, Rick suggested using a gouge to add some shadow, and then some shallow lines give it something of a thatch texture.
I took a short break and somebody else grabbed the power carver I was using, so I went to work on the windows and siding. Here you can see that I’ve relieved the right-hand window frame by outlining with a V-tool and then carving around it. The left side windows are due for a bit of redesign since the original design would have made the interior frame rather awkward and would have left an odd blank spot below the center window.
You might also notice that I’ve punched another hole through between the house and the tree limb on the right side, just below the roof line. I started to do that yesterday, but got sidetracked on something else. This morning I was cleaning up some cuts over there, saw daylight, and took a few minutes to clean up that spot.
After completing the windows and cleaning up a few more cuts, it was time to add the vertical siding. This was a real surprise to me. The image below contains before and after shots.
On the left you see the house after I finished relieving the window frames. On the right is after adding the siding. All I did was take about two minutes to add some vertical and horizontal lines with a very small V-tool. I found the difference quite striking. Those few lines add a completeness to the house without drawing too much attention away from the other features. I suppose it’s something like a woman’s makeup, properly applied: hilighting features without drawing undue attention.
The gable texture (click for a larger view) is applied by continually punching very small holes with a triangular bit. The bit (it looks very much like a finish nail that’s been carefully smoothed at the tip) is inserted into a hand-held reciprocating carver of some sort. It makes one heck of a racket, but it works very well and very quickly. Rick has lots of little tricks like this. Another reciprocating carver is used with a rounded bit to burnish rocks in the carving.
A lot of the value of taking this class is learning such tricks and being able to practice them. Rick also told us how we could do the same thing at home, without the power carver. It would take a lot longer to do it by hand, but I could carefully shape a finish nail and punch each of those thousands of holes by hand.
Another good trick is adding color to the hollowed spots in the limbs. We actually set fire to the wood using a small torch. After letting it burn for a few seconds, blow it out and use a large toothbrush (a denture brush worked really well) to get rid of the excess soot. If you do this, do not just blow out the fire and think it’s done. The cottonwood bark burns quite readily and it’s likely that an ember will continue smoldering. I looked away for a few seconds while working on one of these spots, and looked back to find that it burned through the limb. Fortunately, the unplanned fire actually made things look better.
I spent a lot of time wondering how I was going to complete the carving before the end of the class. I was especially concerned about the roots of the tree because I had already discovered that doing the work with edge tools was quite difficult and time consuming, and my skill with the power carver was limited, at best. After discussing it with Rick a bit, he set me up with a much less aggressive cutting bit, gave me a few tips on how to use it, and left me to work it out. I think I managed to do an adequate job although I think the base with the roots and rocks is the least attractive part of the carving.
The finish is, of all things, Meltonian neutral shoe cream, applied with a large paint brush, left to dry for a while, and then buffed off. As a finish, the shoe cream has a lot to recommend it. It’s relatively easy to obtain (try a local shoe repair shop), less messy than a lot of finishes, darkens the carving slightly, and adds a nice smooth look. It’s also easy to re-apply after a few years or if you find yourself having to fix the carving (if somebody drops it, for example). It does, however, have a few drawbacks, though. To apply it, you have to rub quite a lot with the brush to work it into the wood. It doesn’t just flow on like a lot of oil and wax mixtures. It also smells like shoe polish, although I suppose that’s better than the smell of boiled linseed oil or other traditional wood finishes. I sure wish there was a better way to apply it, though.
I thoroughly enjoyed my three-day class with Rick Jensen. I started the class with a glued-up piece of cottonwood bark, relatively little carving experience, and inadequate tools. Even so, I finished a carving that has more life and detail than anything I’d done previously. Rick was an excellent instructor. He explained each step by demonstrating on a carving (either one of his many demo pieces or one of the students’ carvings), then sent us back to work and was available to help out one-on-one as we encountered problems. Most importantly to me, he encouraged me to try some things that were a little “out there,” rather than trying to dissuade me because I might goof it up. He’d caution me about the potential pitfalls, let me make my own decision, and then give some advice about how to do it.
I have no qualms about recommending the class to anybody who’s interested in carving whimsical houses. If you’re interested in attending a class or if you’d like to schedule one for your carving club, you can contact Carvings by Jensen, jrjensen@gvtel.com. If you do email, be sure that the Subject line of your email is relevant (i.e. mentions a carving class). Otherwise, it’s likely that your mail will end up in the spam bucket.
Take the class. You’ll undoubtedly learn a lot, and I think you’ll enjoy it. I certainly did.
You might want to check out Day 1 if you missed it.
Today was exciting and frustrating in approximately equal amounts. I’m excited because I can see my house taking shape, but frustrated because my carving skill is not up to the task of realizing my vision. This is especially true when it comes to adding detail.
Today’s first task was to split the carving so that I could hollow out the inside of the house to let light in. Splitting the carving was not at all difficult. The two pieces of bark had been glued on each side of a thin piece of cardboard using trusty old Elmer’s school glue. A large putty knife and a rubber mallet easily separated the carving into two pieces.
Hollowing out the house turned out to be a much bigger job than I had imagined. The house is about six inches wide, and I have windows on the extreme ends. As a result, I had to carve through about two and a half inches of wood on each side. It took me most of an hour to hollow out one side with my small hand tools, being very careful not to go too far and punch through the bark. When it came time to do the other side I used the power carver and had it done in about 10 minutes. I’m not a purist. As Rick (the instructor) said, “If I could control dynamite to remove waste wood, that’s what I’d be using.” Some people insist that “hand carved” means that no power was used on the carving. The way I look at it, if a person controlled the tool by hand (i.e. rather than an automatic duplicator or computer-controlled device of some kind), then it’s hand carved.
I mentioned yesterday that the way I designed my carving made it difficult to separate the limbs underneath the house. After splitting the piece, I took a few minutes to separate those limbs. That’s what the holes below the house are. Those will be enlarged after gluing the piece back together. I just didn’t want to be in there carving blind and inadvertently punch through something important.
Gluing the pieces back together sounds difficult but is actually incredibly simple. First, we drill two small holes (3/32 inch, if I recall) in one of the pieces–one near the bottom and one near the top. A small BB (from a BB gun) is inserted into each hole so that it’s protruding a little bit. Then, the pieces are lined up and pressed together so that the BBs make indentions on the other piece. We then remove the BBs, drill deeper holes and insert 1/8″ diameter dowels to keep the pieces from sliding, apply some good wood glue (I think we used Titebond, but any carpenter’s glue will work) to one side, and clamp the pieces together.
That took us almost to lunch time. I cleaned up my station a bit and enjoyed some good BBQ while the glue was setting.
After lunch, Rick pulled out the power carver to demonstrate some techniques for adding roots and shaping the limbs of the tree. My carving is one that he selected for demonstration purposes (he eventually did personal demonstrations for most of us, on our carvings), so I got the benefit of some professional quality work. A power carver wielded by somebody who knows what he’s doing is quite impressive. With it, one can add a lot of detail very quickly and do some things that are nearly impossible to accomplish with edge tools (knives and gouges) alone.
In the picture at right, you can see the final tree shape beginning to emerge. He added some roots around the base, and showed how to put rocks between and under the roots. He also added a few large knot holes in the tree limbs, removed more wood between the limbs to make it look like the house is sitting in the crotch of the tree, and began the shaping of one limb. He then gave me back the carving and I set to work with my hand tools for a while. Note that the house itself didn’t get any attention at this point.
I spent the rest of the afternoon shaping the tree and cleaning up the house–mostly with edge tools. I’m sure that adding roots and rocks is possible with a knife, gouge, and V-tool, but I’m finding it exceedingly difficult. I got some time and a bit more instruction on the power carver, but the results are less than satisfactory. I have a feeling that I’ll be spending many an hour on the tree’s base long after this three-day class is over. A large part of the problem is that I don’t really know what I want it to look like, but mostly I just don’t yet have the skill. But I do have patience.
I like how the tree limbs are shaping up, though. I was able to separate them from the house in places, which I think looks much better than having the limbs hugging the house completely. The top limb has to be attached to the top of the house, though, in order to provide support. Were I to lift that limb from the peak of the roof, it would become very brittle and likely would break off.
I still have a whole lot of detail to add to the tree and to the house. The tree limbs need final shaping, and the base needs a bunch of work. I have to make some sense of all the roots I tried to add. The house needs window and door frames, siding, and shingles on the roof. One part of the roof has a very steep concavity that will make it impossible to add shingles. I need to smooth that and figure out what kind of texture I’ll place there. There’s also a visible glue line at the peak of the roof–the result of my designing the house with the peak right in the center. Other than the bottom where it doesn’t matter, that peak is the only place on the entire piece where you can tell that it was glued together. I’ll have to figure out how I’m going to hide that glue line.
It was a very busy day of carving, and I expect tomorrow to be just as busy. I doubt very much that I’ll have the carving finished before the class is over tomorrow, but I will have been exposed to techniques for finishing it, and I will have at least done a little bit of everything. It will be up to me to complete the carving on my own time in the coming weeks.
I carved this gnome home or whimsical house back in March from a piece of cottonwood bark that I “won” in a club raffle. I found some brief instructions online and set to work with only a vague idea of what I was doing. It was an interesting project and although I made quite a few mistakes it has a certain charm.
This house lacks detail: siding on the walls and shingles on the roof. I was pressed for time to finish the carving, and I had no idea how to add those features. I finished it with Howard Feed ‘N Wax, which brought out the grain quite nicely and gave it a more “natural” look.
The piece is a wall hanging about 12 inches tall. I carved it for Debra to raffle off at her African Violet club’s Spring show and sale.
My carving club, the Central Texas Woodcarvers Association, invited Rick Jensen to come teach a couple of classes locally. After carving my first whimsical house back in March, I jumped at the chance to take a class from one of the best cottonwood bark carvers around. Today was the first day of a three-day class.
The class title is something like Carving Whimsical Houses in the Round. You’ve probably seen these things (if you haven’t, try here or check out Rick’s books) and wondered what kind of wood they’re made from. Typically, it’s cottonwood bark. That’s right, bark from the cottonwood tree. The bark is exceptionally thick, and carves very much like a soft wood although it has a character unlike any other wood I’ve ever carved.
The class schedule is 8:00 AM to 6:00 PM (with a break for lunch) for three days in a row. I thought this would be like other classes I’ve taken and there would be lots of down time. Boy, was I wrong! I was busy all day and I expect that’ll be the case for the next two days.
One of the things I find most interesting about carving these whimsical houses is that there’s no set pattern. Most types of carving classes start with a bandsawn blank and everybody carves the same thing in the same pose. Some classes let you pick from a small handful of blanks (an elephant, for example, in one of three different poses), but in the end every piece looks very much like the others. You can see the common starting point.
Carving whimsical houses is much different. Each person starts with a blank that is just two pieces of cottonwood bark glued together with a thin piece of cardboard separating them. I didn’t get to see the blank being made, but I assume it involves cutting and planing the pieces flat before sticking them together. The glue used is simple Elmer’s white glue.
It’s done this way because we’ll want to take the piece apart to hollow it out after setting the basic shape of the house and drilling holes for the windows. The final product will be a house “in the round,” with windows that actually let in light. More advanced carvers even carve features inside the house. I doubt that this class will involve that level of detail.
The blank I started with is shown on the left. It’s 12″ tall, almost 9″ wide, and at a little more than four inches thick.
This probably wasn’t the best blank for a beginner to select, but I saw a display house that I wanted to use as inspiration, and this blank looked like it could be molded into shape.
Something else about cottonwood bark: it’s not consistent. With most woods, if you pick up a piece that’s 12″ x 9″ x 4″, you can be confident that it will be of consistent texture, hardness, etc. throughout. Bark is much different. There are soft spots, rotted sections, cracks in odd places, and irregularities throughout. As a result, it’s nearly impossible to duplicate in bark another carving of any size. Much of a bark carving’s design is a result of the material: working around those irregularities.
The first thing to do when carving a whimsical house is rough out the trunk and leave some space to add features like roots and rocks around the roots. Then we lay out the branches that surround the house and place the house in the tree. It sounds easy, but it’s a lot of work. Especially if you don’t have the proper tools. The class notes recommended buying some large gouges, but I figured I could do most of the work with a knife. How wrong I was! It’s very difficult to take off those large chunks of wood with a knife of any size. A large (1″ or larger) shallow gouge, on the other hand, works wonders, as does a power carver.
The picture on the left is after about three hours of drawing and erasing lines on the bark to lay out the branches, carving away wood for the trunk, and beginning to define the branches. I took about half of the trunk wood away with a knife. The rest went quickly with a power carver and an aggressive bit. Another option for carving away the large chunk of trunk wood is a bandsaw, which is probably what I’ll use if I buy one of these blanks to bring home after I’m through with the class.
It’s probably hard to believe that what you see here is the product of about three hours’ work. Understand, I’m new at this. Also, I spent a whole lot of time trying to figure out how to make what I saw in my mind appear on the wood. You can’t see it yet, but there are branches wrapping around both sides of the house and curving over the top.
After another few hours’ work, you can definitely see the branches on the sides. I’ve defined the basic house shape and the roof line, and placed the house on a platform supported by two shorter limbs.
In the picture on the left, you can see that one side of the roof line is pretty strange. There was some rotton wood there that I had to carve away, and I got a little too close to the join line in the process. I’ll have to wait until after splitting and re-join before I clean up that part of the roof. That’s okay, by the way. The whole idea behind these whimsical houses is that they’re supposed to be irregular and even a little bit wacky. After all, gnomes live in them. Gnomes like to be comfortable. They’re not terribly worried about silly things like straight lines, even floors and perfect symmetry. To be honest, I think the gnomes who live in these houses revel in their wackiness.
You can see that I’ve also removed more wood from between the limbs near the trunk. I’ll do more of that tomorrow after hollowing out the piece and putting it back together. That process involves clamping the piece, and I don’t want the clamps to mar up my nicely finished carving. So it’s best to leave as much detail work as possible until after the re-joining.
Finally, here’s the house at the end of the first day. I’ve further defined the shape of the house and the roof line, set it into the branches, and have further defined the branches. I’ve also drawn in doors and windows, drilled holes, and roughed out the openings.
We drill holes and rough out the openings so that when we break the piece apart we know how deeply to hollow it.
I’m a little bit disappointed in how I’ve laid out the part with the door. I have the door there, and one long narrow vertical window, but that side of the house looks a little bare. Perhaps I’ll try adding a small window or two above the door.
I’m going to have some difficulty separating the two shorter limbs under the house. That was poor planning on my part. Although I probably could (and probably should, too) do it before splitting the house apart, Rick said that he’d like to try helping me do it once we’ve split the piece. The potential pitfall is that I might booger up the nice flat edge and have to re-plane it before gluing the pieces back together. That’ll cause me to lose a frraction of an inch, but there isn’t any detail there, so it’s worth the risk.
This last picture shows one side of the house where I decided to put two limbs rather close together. The piece of bark strongly suggested this configuration, but it’s been difficult to work with and I’ll likely need some help before it’s done. There is very little space between the two limbs, and I need to round them quite a bit more. Of course, rounding them will remove material, which will give me more space to work. This is the primary reason I’m having difficuly separating the two shorter limbs under the house; there’s no straight line path to get a tool under there because these two limbs are in the way. Removing either one would make things much easier. But then, the piece wouldn’t look near as cool as it’s turning out.
All told, I’m very happy with the way this project is shaping up. I do need to get some more appropriate tools, though, if I’m going to do more of these houses. A large shallow gouge is a must, and I need a few V-tools, as well, for outlining and for removing wood in narrow places. Using one side of a V-tool like a chisel is surprisingly effective.
You can see more pictures of the work in progress on my Facebook photo album: Carving Whimsical Houses in the Round. And, of course, I’ll update here after tomorrow’s class.