Posting the heap code

I started a series of articles about heaps a few months back, but then got sidetracked with other projects and didn’t complete my article series. All that was lacking was the code and some detailed explanation of some parts, but I’d already covered the important theoretical stuff.

I probably won’t finish those articles any time soon, but the code is complete and usable. The download file, HeapCode, is a .zip file that contains the IHeap interface and the DHeap class. Using them is straightforward. If you’re at all familiar with .NET generic collections and you’ve looked over my heap articles, you’ll be able to use the DHeap class without trouble.

For reference, the articles in the series are:

Priority queues
A better way to do it: the heap
A simple heap of integers
Uses for heaps
The d-ary heap
Heaps: cleaning up some code
The IHeap interface
Heaps: constructors for the DHeap class

Happy heaping.

Was the ACA designed to fail?

One of the things that worries me about the Affordable Care Act (Obamacare) is that it depends on a large number of young, healthy people signing up on the exchanges. The idea is that their premiums will more than pay for the care that they use, and the excess will go to pay for the older people who consume more health care dollars. It’s a big Ponzi Scheme. I explained almost four years ago why I think it won’t work. If the young and healthy don’t sign up on the exchanges, or if people consume more health care resources than the planners projected, then the whole scheme falls apart.

There are plenty of other things wrong with the ACA as well. It’s just bad legislation that was pushed through Congress in a hurry and in a somewhat irregular fashion because Democrats knew that they couldn’t get it to pass the normal way and time was running out. The ACA is something like 1,000 pages of text, and it’s doubtful that any one person understands everything in it. It’s a certainty that none of our Representatives or Senators fully understood what they were agreeing to when they voted for the thing.

It’s no secret that many of those who pushed for the ACA are unhappy that they couldn’t push through a single payer system: fully government-paid health care. I’ve heard Democrats say, in private conversations, that when the insurance companies fail to live up to the provisions of the ACA, we can finally move to a single payer system. And I begin to wonder.

I’ve long held that bad government is the result of incompetence and unintended consequences; that nobody could purposely create the inefficient, ineffective, and idiotic government bureaucracies, programs, departments, rules, regulations, commissions, etc. that we see every day. But in my more cynical moments I wonder . . .

Was the ACA crafted to fail? Was the plan all along to create a system that can’t possibly work, knowing that when it does there will be so many people dependent on the health care subsidies that it will be politically impossible to cancel the law and the only way forward will be to go to a single payer system? Because I think that’s what will eventually happen. Perhaps even in my lifetime.

It’s a frightening thought: that inefficient and ineffective government is created on purpose, slowly becoming larger and more intrusive. Much like the metaphorical boiling frog, we wouldn’t stand for the government we have if it had been sprung on us all at once, but we accept (with protest) continually more expensive and intrusive government if our taxes increase and our liberties erode a little at a time.

The problem, though, is that the metaphorical frog eventually dies.

Lizard on a log

I don’t remember where I got this piece of wood or even what kind it is. It’s been sitting in my garage for at least a year.


It’s pretty light, and as I recall it’s some kind of pine or cypress. A conifer, almost certainly. It’s very dry and has lots of bug holes. Turned out it still had some bugs in it, too, which I took care of later after I’d run across a live one in the wood.

Wanting to carve a figure into the wood in much the same way as I did the Bristlecone bird, I chose to carve a gecko.


I first cleared the remaining bark and sapwood from the area I wanted to carve, then drew a rough outline of the gecko on it and used a thin cutter to make it really stand out.

I should note here that I did almost all the carving on this piece with my Foredom power carver. I could have used knives and gouges–the wood was soft enough–but I’m trying to get more proficient with the power carver. Plus, that dang thing can remove wood fast.

With the outline etched into the wood, the first task is to rough out the shape.


Roughing that out was a lot of work, and as it turned out I removed a lot more than I had to. Live and learn, I guess.

Granted, that rough shape is really rough. Time to start refining.


You can see that I’ve refined the shape and taken it down quite a bit. In the prior picture the rough shape was just a blob. Here it’s pretty obvious that I’m going for a lizard. But it needs more refining.

You can see here that I removed an inch or to from the front of the branch, putting the lizard’s head over the edge. The primary reason I did this was to make it easier to shape the under side of the head and neck.


Here you can see that I goofed a bit. I somehow managed to thin the lizard too much. Instead of having a nicely rounded belly, it’s almost straight. But it still resembles the gecko.

I also cut off the other end of the log. I had originally planned to do something over there, but that chunk over there was making it difficult to work on the right rear leg and the right side of the tail. In addition, removing that end put the lizard in the center of the picture.

By this point I’d been working on the thing for four or five hours. I was tired. Also, I’d found a wood borer with the Foredom (bug guts on the carving), so I figured I’d better cook the piece in the oven for a few hours. Otherwise the bugs would end up eating my finished carving.


I had intended to let it sit until the next day, but after it was done cooking I was refreshed. So I went back out to the garage for another hour to finish up the shaping. Above is the final shape, with only a little more work left on the feet, and a lot of sanding.

The next morning I finished the sanding. I’m still not real happy with the feet. The toes are too hard-edged. I haven’t yet figured out how to round them well. I had the same problem with the standalone geckos I’ve carved.


I had originally planned to smooth and sand the base, but when I got started it was looking kind of boring. So I opted instead to try making something that resembles tree bark.


I’ll be the first to admit that it doesn’t look much like bark, but the random squiggles are more interesting than a flat smooth surface. I think it serves to emphasize the lizard.

With that done, I finished with two coats of Deft Satin polyurethane spray.


You can click on the above image, or on the one directly below, for a much larger view.


And here are a few other shots from different angles.

lizf2 lizf3 lizf4

In that last picture, you can see that the wood cracked on the right front leg, just above the foot. That happened while it was cooling, after I’d cooked it in the oven (90 minutes at 200 degrees) to kill any bugs. I considered mixing some wood dust and glue to fill the crack, but figured I’d leave it alone.

It’s been said that carvers don’t make mistakes. Rather, we make adjustments. I made lots of adjustments on this piece. But it was a great learning experience and it turned out okay. Will be fun to keep around and look at in a few years.

It’s going to be a week or two before I can attack another project like this. My garage isn’t heated, so when the temperature drops much below 60 degrees it’s uncomfortably cold to be working in there. The combination of shivering and frozen fingers isn’t conducive to wood carving, and the forecast is for cold weather (some freezing, even!) for the next two weeks. If I do any carving it’ll probably be small basswood figures with knives: something I can do while sitting behind my desk.



A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.