bloggo ergo sum
msgbartop
msgbarbottom

29 Aug 06 Back Injury, Dav VII

I’m still decomissioned. I can walk better, although now my hips (particularly on the right) are starting to hurt a little because I walk with a funny gait. I have now been inspected via X-ray and MRI and have been to see an orthopedic nurse practitioner. The result? I have a torn disk. It’s the one between the last two vertibrae. What was explained to me is that a tear in the disk allowed some of its fluid to seep out into the surrounding muscle tissue, causing a great deal of pain and irritation. The fluid is caustic and thus causes a chemical reaction with the effects I described.

Anyway, want to know what his solution was? Walk it off. He wants me to walk as much as possible.
Me: What should I do when I’m not walking?
He: Walk.

Supposedly that will help re-align all the parts down there and physical therapy will help re-strengthen the muscles in my lower back, and with God’s blessing, I’ll be back to normal in a couple weeks or so.

I’m getting digital copies of my Xrays and MRIs tomorrow, so I’ll try to find one that illustrates my injury and post it here for the morbidly curious out there.

Tags:

26 Aug 06 Back Injury, Day V

My back is still mostly kaput. I can stand & walk (ok, ok, shuffle) for short amounts of time (i.e., < 30 minutes). I can sit up for a little longer than that, but after about an hour, it's about time to lay flat again.

I'm still doped up. I still can't hardly move (and any motions I make are more or less excruciating). When I imagine a scale of pain, 0 being normal and painless to 10 being Jesus Christ being crucified on the cross, I'd say back pain like what I have is somewhere near a 3 or 4. It hurts that bad.

The worst part? I can't do anything about it. Nada. It just needs time to heal.

In other news, both sets of parents came by today to get some work done today sine I’m completely disabled. My dad helped me get the ground anchors attached and the plywood flooring installed on my shed, while my mom worked in our garden (ok, the part of the ground where our garden is supposed to be). My father-in-law mowed and weed-eated (weed-ate?), while my mother-in-law helped my wife clean.

It was a productive day, and I had virtually nothing to do with it.

Tags: ,

23 Aug 06 Back Injury, Day II

I went to a physical therapist today. He ran me through a number of motions, excercises, and devices intended to make my lower back feel better, but at least for the first visit, they made the injury more painful. I suppose one might texpect that.

Anyway, this strain/bulging disk/torn ligament is excruciating. On a scale of 1-10 (10 being the most severe pain I’ve evere experienced), I told the PT that this was a 6 or so. My broken arm, and some of my growing pains were pretty intense, but this ranks right up there with them. This pain is certainly more sustained and constant than any other I’ve experienced.

So, note to all who read this: lift things with your legs. Period.

Tags:

23 Aug 06 A back is a terrible thing to waste

Well, yesterday morning, after spending many, many hours over the weekend lifting building supplies and getting the floor frame of my detached study built, I woke up feeling great. There was no soreness or anything, and I felt well-rested. I went about my normal morning routine. As I was nearing time to leave for work, I bent over to pick up one of the shoes I was going to wear, and I suddenly started feeling a pain in my back. I didn’t immediately think much of it, but within a few minutes, I was almost completely immobilized. I had injured my back. It probably was a result of my working so hard over the weekend and not being careful to use my legs to lift instead of my back.

I’m sure paying the price now. I am in excruciating pain. The only time I’ve felt pain that I would say was worse than this was when I broke my arm into a “Z” shape. It is very painful to get from one place to another. It’s also very painful just to change positions, except for a few limited ones that are relatively painless, such as going from lying flat on my back to lying on my chest.

The physician’s assistant that I saw ordered at least 3 days of no work and prescribed a pain killer and a muscle relaxing drug. I’ve been on those and they seem to help a little. By the end of yesterday, I could even sit up, albeit leaning forward drastically.

This morning, I was in more pain than I was yesterday, partly because I hadn’t had any of my drugs for over 8 hours, but also because some latent soreness had set in. It was very painful just to drag myself (literally) to the toilet. I wasn’t even sure I’d be able to get off it.

Anyway, work on the study is, needless to say, halted for the time being, as is everything else. My wife is doing a really great job of taking care of me.

I’m going to see a physical therapist friend this afternoon, so I’m hoping that will prove an effective method for restoring some of my mobility (fyi, I will eventually recover all my mobility – it’s just that I have virtually zero mobility right now and wil probably be that way for a few days).

Tags: ,

23 Aug 06 Carpentry Project #3: Day III

After attending church on Sunday, I went back out to get a little more done on the study. I finished up the last two floor joists, but before I could start putting on the plywood flooring, I needed to round up some ground anchors and get the floor frame secured. I didn’t really understand why the article said this was a good idea, but I have since learned that it’s to stabilize the building in the event of strong winds, which can not only blow a building off its piers, but it can actually create left, much like with an airplane wing. That’s all very bad for a building. Anyway, I spent the remainder of the afternoon getting the ground anchors twisted in.

The pictures I took don’t show the anchors very well, so no picture this time. When I bought the anchors, the clerk at The Tractor Supply quipped that “they’ll be a chore to get in”. He was right.

Tags: ,

23 Aug 06 Carpentry Project #3: Day II

On Saturday, I finished up getting the concrete blocks leveled. That was quite hard work. The boards in the picture were only used for leveling purposes at this point (although they get used for their purpose soon).

After getting the blocks level, I starting working on the floor frame. After getting the band joists assembled, I set them on the blocks and checked the level. Everything still looked pretty good, but there were a few spots that I still needed to ship up a little (I think this had more to do with slight bowing in the mudsills than the blocks being unlevel.). Anyway, once I got that taken care of, I started putting in the joists. I worked until it was too dark to see pencil markings or nail heads and got all but two of the joists put in.



Tags: ,

23 Aug 06 Carpentry Project #3: Day I

After getting the materials I needed to get started, I just needed some time to work. I got my chance this weekend. Thursday was the first chance I had, and the first step was to get a foundation in place.

Concrete was too expensive, and was probably overkill for this project anyway, so I settled on concrete blocks (no pun intended). That’s also what the P.M. article said they used. Anyway, since my back yard doesn’t receive any groundwater and it’s hard ground to begin with, I decided to forego the 4″ gravel bed.

I laid out the blocks in approximately the 3 rows of 4 that the plans specified. The next stop was to get the row of blocks closest to the existing carport lined up correctly and get them level with respect to each other. That was a real pain. Then, I had to get the rest of the blocks lined up with the first row and level. Invariably, the blocks would be off-level by about an inch, and the smallest blocks I had were about 2″. I had to improvise. It just so happened that there were some slate tile remnants left over from the previous owners’ renovations, and they made great shims. I also went ot Home Depot and bought a single package of roofing shingles to use as smaller shims. After laboring over a few blocks by moving it, digging and scraping with a sharpshooter shovel, replacing the block, and repeating, I discovered that it was much simpler to use the block itself as the excavating too. The weight of the block and the force I was able to exert made it relatively simple (although hard work) to get the blocks roughly level with each other. The remaining offsets were easy to take care of with my makeshift shims.

Tags: ,

23 Aug 06 Carpentry Project #3: A Detached Study

I’m about to be kicked out of my study to make room for a new addition to our family. I still need a place to go, and we didn’t really want to buy house (not to mention that we don’t have the money for that anyway), so we decided that I would move my study to a detached building.

I started looking into it. The options I could come up with were

  1. Buy a prefabricated shed from Home Depot
  2. Hire a contractor to build it for me
  3. Build it myself

The problem with option #1 was that none of what Home Depot had were exactly what I wanted, and they all looked like barns to boot – not to mention that they weren’t exactly cheap.

The problem with #2 was that it was just going to be too expensive, so I decided to go with option #3.

I saw an article in Popular Mechanics that described how to build a shed. At the end of the article appeared a reference to the company who makes the plans. I bought a copy ($30). Once I got it in the mail, I went to Home Depot to get my first round of materials. They barely fit in the back of a full-sized pickup.




You’ll notice in the posts dealing with this project a number of pictures. I’m hoping to get a picture for each step from the same perspective and then make a freeze-frame animation of the project at the end.

Tags: ,

21 Aug 06 C++ Style Redux

I just discovered the POCO library. It’s pretty neat-looking: it has a number of components that provide functionality that goes beyond the standard C++ library, such as threading support, networking, XML reading/writing, etc. The cherry on top is that not only is it similar to boost in terms of functionality, it seems smaller, more portable, and more easily targeted for embedded systems. Great, right? Read on…

However (begin rant), the style of the library really turns me off. Hugely. I haven’t even read all of the style guide (which is somewhat oppresive), but two big things I discovered right away:

  • Camel-case is used, much like in Microsoft’s MFC
  • Tab characters are used in the source code

I suppose tabs being used in the sources is pretty inconsequential for normal users of the library – although its annoying just to know that they exist.

The naming conventions though, are another animal altogether. Some of you reading this might be thinking to yourself “Holy cow! Who cares? Don’t sweat the small stuff!”. With most things, I am inclined to agree, but not on this.

Conventional style for a particular programming language is usually either defined or employed by its standards and standard libraries. This is true of Java, C, C++, C#, PHP, Scheme – you name it (there may be exceptions), and it also goes for indentation, brace placement, spacing, etc, etc, although I’m mostly concerned with naming here (everything else can be fixed by indent scripts if necessary). Take C for example. The standard C library uses almost all lowercase names, and those names tend to be brief (abbreviated if necessary), like ’strncpy’ or ‘memset’. Structures tend to be named similarly: ‘pthread’ and ‘fileattr’, which sometimes get typedef’d to ‘pthread_t’ or ‘fileattr_t’ so that it’s clear you’re using a data structure. Most systems’ libc uses this style as do other POSIX-related libraries. Products like WindRiver’s VxWorks that deviate drastically from this convention (WindRiver in particular basically just made up their own style – to heck with convention; Microsoft was almost as bad) are an abomination to code consistency and elegance.

C++ also has its own style – the standard library (also – incorrectly – known as the stl) exhibits this. Names are typically longer than in C and multiple words are typically separated by the underscore character rather than abbreviated, although abbreviations are appropriate sometimes to keep lines from getting too long. class names are not capitalized except in the rarest circumstances. Namespaces should be used and follow the same guidelines for naming.

Why is this important to me? It’s important because you want your code to have a consistent visual style. Much of the style can be pretty arbitrary, and that’s fine. Brace placement and the width of your indent are less important to me. Even if you don’t like the way someone else chooses those elements of style, they can be changed pretty easily. Naming is not like that, and choosing non-standard (or non-conventional, if you prever) naming makes code harder to read and maintain. When I write C++ code, I want it to all look as much like the standard library as possible, with few exceptions. Then, when I want to use a library like POCO, my coding style is all blown to heck because somebody over there decided to make their own rules. Microsoft is probably the primary guilty party in this respect because of the style they chose for MFC and the ATL, as well as the Win32 API.

POCO is even internally inconsistent. On their website, they state that they have goals to:

  • Don’t reinvent wheels that have already been solved, particularly in the standard library (i.e., “thou shalt let std::string be thy string”)
  • Have consistent style.

Choosing to not reinvent implementations that work but also to ignore the conventional style (like Microsoft did) are contradictory.

Anyway, this isn’t to say that POCO shouldn’t be used. I’ll probably use it sometimes. I was just *very* annoyed by C++ code that uses the camel-case naming style.

Tags: ,

18 Aug 06 Understanding STL Containers

This article is a really great way to start understanding STL containers. It discusses the differences between a vector and a deque (a double-ended queue) (you’ll often see C++ rookies as “what’s the difference between vector and queue” or something like that, and the answer is usually “if you have to ask, just use vector”. That is an insufficient answer for a lot of people, and this article addresses it nicely).

The long and short of it is that a vector represents a sequence of elements that are accessed in “random” fashion; not meaning that you access the elements randomly, but merely that you need to be able to access an element at any position in the list. This type of usage lends itself to a different storage structure and allocation strategy than does a queue, which is a sequence from which only the ends are accessed.

A good read.

Tags: ,