Tuesday, 29 November, 2005
Perusing the book shelves last night, I came across three slim volumes I picked up about 10 years ago: James Finn Garner's Politically Correct Bedtime Stories, Once Upon a More Enlightened Time, and Politically Correct Holiday Stories. As the titles imply, these books contain more "enlightened" versions of old fairy tales and Christmas stories using politically correct language. They're definitely worth reading, although I'd suggest one story a day. Like Gary Larson cartoons, a little goes a long way. After reading a few stories, things that would have made me laugh out loud rated only a chuckle. I think I overdosed on hilarity.
For example, in "Frosty the Persun of Snow", Betty and Bobby were arguing over whether their new creation should be a snowman or a snowwommon. Bobby put his hat on its head and it came to life, resulting in this exchange:
"What's all the fuss about? It seems like such a silly argument, especially since you neglected to give me any private parts."
Betty regained her composure quickly. "I don't care if you were born only an instant ago," she said. "How can you be so naive as to think that a persun's gender is determined by their physical equipment? It's a cultural issue first and foremost."
I rolled off the couch and onto the floor. It took me five minutes to stop laughing.
I'm still waiting to read the story of "The Duckling that Was Judged on Its Persunal Merits and Not on Its Physical Appearance."
The dedications at the front of the last two books are amusing, too:
(From Once Upon a More Enlightened Time)
Dedicated to Anne Conrad-Antonville, principla cellist with the Eureka (California) Symphony Orchestra, who chose compassion over culture by resigning her position rather than perform "Peter and the Wolf," an orchestral work that teaches our pre-adults to fear and despise wolves and other wild predators.
(From Politically Correct Holiday Stories)
Dedicated to the good persuns of Moorhead State University, where mistletoe has been officially banned as a holiday decoration, because, according to school president Roland Dille, it "tends to sanctify uninvited endearment."
I was able to verify that the first is real. I'm unsure about the second, but I wouldn't doubt it.
I don't have to make stuff up. The world is funny all by its ownself.
Monday, 28 November, 2005
Debra and I inherited a huge number of books a few years ago when her friend Dee passed away. Dee apparently was a big subscriber to Time Life series. We have literally hundreds of books from those series. I've recently been perusing the collections for reading material.
Roughing It (from the "Classics of the Old West" series) is Mark Twain's narrative of his early adventures in the West. In it, he describes their trip across the plains from Hannibal, MO to Virginia City in the Nevada territory, his adventures in the silver mining camps, San Francisco, and Hawaii. It's a good read: full of interesting insights into the Old West and quite a few funny stories covering a wide range of topics. Well worth the read.
Pierre Boulle's The Bridge over the River Kwai jumped out at me last week. I recall seeing the movie as a child, but about all I remembered of it was the British building a bridge for the Japanese, and that infectious song (Malcolm Arnold's march arrangement of the Coronel Bogey) that they'd whistle while marching to the work site. (Or was it while working?) In any event, I recognized the author as the person who wrote The Planet of the Apes, a novel that I thoroughly enjoyed. I was a little disappointed by Kwai, though.
Perhaps it's better in the original French, but in the English translation I'm missing the British colonel's motivation for cooperating to build this great bridge. If Colonel Nicholson really was, as the book tries to portray him, the model of a British officer, he would not have been so helpful. I understood his motivation for seeming to cooperate, but I kept waiting for him to collaborate with his officers to build some fatal flaw into the bridge. The author didn't give me sufficient cause to believe that the colonel would work so hard to help the enemy, nor did I understand why his officers would go right along with him in doing it. Only the medical officer seemed to understand the ramifications of finishing the bridge and his protests amounted to little more than a few sarcastic remarks.
Nonetheless I enjoyed the book although I thought the ending was a bit weak. Maybe it's a flaw in my character, but I like to have all the loose ends tied up at the end. It seemed to me as thought the author just ran out of words without completing the story.
I don't know what made me pick up Thorton Wilder's The Bridge of San Luis Rey. Maybe I was on a bridge binge, having just completed Kwai. This book is hard to characterize, and certainly not the kind of thing that I typically read. But the story was so well written that I couldn't put it down. Wilder sucked me in with the first sentence:
On Friday noon, July the twentieth, 1714, the finest bridge in all Peru broke and precipitated five travellers into the gulf below.
The book goes on to describe the lives of three of the people (the other two were just slightly involved with the principals), and tells how a Franciscan priest (monk?) who saw the bridge collapse tried to make some sense of the tragedy. I thought that the book was beautifully written, but I didn't really see the point of it beyond "The Lord works in mysterious ways." Perhaps that's all I was supposed to get out of it. Or maybe I'm just a dullard.
Thursday, 24 November, 2005
- Dell's on-site service in this area is provided by BancTec. Their service representative called me in the morning yesterday and made an appointment to come by and replace the LCD on Debra's notebook computer. When he got here, I was surprised that he had to disassemble the top, remove the old LCD, and then reassemble the top around the new screen. I figured they'd just give him an entirely new top to replace the old one. It seems like that would be more efficient for field service. In any case, he was done in an hour and the computer was up and running. I'm very pleased with Dell's customer support.
- Debra found a wet spot on the carpet in the bathroom yesterday morning that wasn't there the night before. We quickly determined that it wasn't the result of the dog or cat making a mistake. Since it was right beside the sink cabinet, I figured one of the supply pipes was leaking. That happens from time to time in an older house. A quick look at the sink connections didn't reveal anything. I cut a hole in the back of the cabinet to check the copper pipes. Still nothing. This morning I pulled up the carpet, removed the sink cabinet, and chipped away the mortor surrounding the pipes (they're in a block wall) at the floor. There's definitely a wet spot on the concrete that appears to come from under the floor. We've been planning to remodel the master bedroom and bathroom, but we weren't expecting to do it quite this soon.
- Builders use long staples to connect cabinets to walls. The staples are quick to install, hold the cabinet quite securely, and are easy to paint over. The problem is that they're very difficult to remove. It's almost impossible to remove a cabinet that's been installed with staples without scarring up the cabinet in the process. If you ever install cabinets or have a house built, I would suggest that you use screws. Screws take a little longer to install, true, and they're harder to hide with paint, but at least you can remove the cabinet without destroying it.
- I finally decided what to do about the dead truck. Today I ordered a replacement engine. My next door neighbor who is a car enthusiast is going to help me remove the old engine and install the new one. I'm sure I'll have plenty of pictures and some stories to tell about that one.
- Things go wrong from time to time, but life is good. Minor things like dead cars and plumbing problems give me the chance to reflect on all the good things that happen and that I take for granted. If there were no problems I would not appreciate the good things in life. Like Thanksgiving dinner. Debra stuffed a turkey breast with oranges and cooked it up. That was the tenderest (is that a word?), juiciest, and most flavorful turkey I've ever had. We had a quiet meal together with all the traditional fixins: stuffing, mashed potatoes and gravy, green beans, cranberries, and of course fresh apple pie. Yes, life is good.
Tuesday, 22 November, 2005
- I just love this juggling animation.
- I'm not totally immune to clicking on banner ads. I saw a Nationwide video ad featuring a little fat kid falling off a trampoline, so I had to go check it out. Some of those videos are just hilarious. "What if Daddy does something stupid?"
- Every time I see a Kentucky Fried Chicken store I'm tempted to develop a plan for Tennessee Baked Turkey, the General's Recipe.
- Overheard in a conversation about time management: "I just can't seem to get around to procrastinating."
- Overheard in a discussion of subatomic particles: "Quantum physics: the dreams that stuff is made of."
- I had heard of dogs counter surfing, but until recently I had no idea that it was a common problem. I've seen cats hop up on counters, but never a dog.
Tuesday, 22 November, 2005
Debra's Dell Latitude notebook computer exhibited an interesting failure mode last week. It booted up fine, except that the display didn't work. It's very faint--unreadable, really. I hooked up an external monitor, pressed the Fn+F8 key combination to switch to the alternate monitor, and the laptop's display came up. I shrugged my shoulders and said, "Good thing I had that other monitor."
This morning it failed again. This time, switching to the alternate monitor doesn't do the trick. The other monitor works fine (I'm writing this on that monitor right now), but the notebook's display is very faint. I can see what's on the screen if I allow the glare from the window to hit it, but it's almost impossible to read.
The odd thing is that the display flashes up nice and bright when the computer first starts up (the Dell logo appears), but then it goes faint. When I hit Fn+F8 to switch monitors, the notebook's display again flashes and I can see it for maybe a tenth of a second before it dims again.
I've tried everything I know how to do. I've cycled the brightness control from high to low and back again, installed the new flash BIOS that addresses some video problems, and updated the video driver. All to no avail. I guess it's time to call Dell Support. Considering my past experiences with other technical support lines, I'm not looking forward to this call.
0955: Dell customer response. Answers. After I spent a couple minutes of wading through the menus and repeating every response, the system finally said, "I'll put you in touch with a technician who can help you."
0959: Still on hold.
1006: Still on hold. No "Your call is important to us," or any some such. Just dead air.
1010: Still on hold. I give up. Time to call back.
1012: Called back. Went through voice response again and got transferred again. The recording says that I'm connected to the "Inspiron Warranty Technical Support" line. I hope they handle Latitude, too.
1013: Maybe dead air was better. Now I'm listening to some bad classical music on hold while being interrupted frequently with recorded "helpful" information. It's not that the music is bad. They were playing a Beethoven symphony and now it's something else that I recognize but can't place. But listening to it over the telephone is torture. It sounds like a minimum-resolution mpg file played by a computer that's not quite fast enough to keep up.
1016: A helpful tidbit from the "on hold" information: sometimes resetting the system will fix minor issues. Disconnect AC adapter and remove battery. Then reinstall the battery, reconnect the AC adapter, and start the computer.
1018: It only took 5 minutes for the on hold information to begin repeating.
1022: On hold for 10 minutes now, and working on my third time through the same helpful information. The music is scratchy and choppy, evoking memories of trying to pick up KOMA from Oklahoma City at night when I was a kid in Pueblo, Colorado.
1025: What the heck. I might as well try resetting the system. It's not like technical support is going to help me any time soon.
1035: I pulled the battery just like the helpful voice on the phone suggested. Waited a few minutes and plugged it back in. No dice. Still no display. I think I'll go online to www.dell.com/chat and see if somebody there can help me.
1038: I got a person on the phone! I'll hold on the chat.
1101: That was exciting. The support technician was helpful and very knowledgeable. She walked me through all of the standard tests most of which I'd already done, but that's okay. I like to see that the tech support person understands basic debugging--going from the very simple to the more complex. I'm not one to get offended when somebody asks if I've tried setting the brightness.
After all the simple stuff was exhausted, she had me shut down the computer, disconnect everything, pull the battery, and then open up the machine. She talked me through removing the keyboard, disconnecting the LCD display cable, and then re-seating it. Unfortunately, that didn't solve the problem. Now I'm waiting for a call from the on-site service people (we got a 1-year on-site warranty standard when we bought the machines) so that they can come and replace the LCD.
Of all the technical support calls I've had to make in the last few years, I'll rate this one the best. Except for the 30 minutes of listening to low-fidelity classical music, I was very pleased with the experience. I still dislike talking to voice response systems, but at least this one didn't lead me in an endless circle like some of them do. And although the call didn't solve my problem, that's not the fault of technical support. They did their job and escalated the incident when all other areas had been exhausted.
Dell technical support: thumbs up.
Monday, 21 November, 2005
The uninformed arrogance that passes for patriotism these days is sickening. It's one thing to believe that the freedoms afforded by our form of government make the United States the best place in the world to live. From all I've read and what little traveling I've done, that seems to be the case. I'll rally around that flag.
But to act as though we are somehow better than other people, just because we live in the U.S., is tribalism at its worst. I'll grant that there was some justification for that behavior after we defeated Japan and Germany in WWII, emerging as the most powerful economic and military force on the planet, and credited by many with "saving civilization." I won't say that it was right to act like the kings of the world, but at least our fathers and grandfathers had some justification for it.
Things change in 60 years, though. American industrial capacity continues to decline at an increasing rate due to off-shoring. Textiles were among the first to go. Then it was shoes and other manufacturing that requires relatively unskilled labor. Dirty industry began to move. Japan and other countries began producing cars, televisions, and other electronics. It wouldn't surprise me if 20 years from now there is no heavy industry at all left in the United States.
Two related issues today are an extension of that off-shoring: migration of customer support and some skilled office work offshore, and formerly high-paying skilled jobs (construction and meat packing, for example) in this country being taken over by immigrants who will work at much lower wages. Workers who are losing their jobs are rightly concerned, but they're screaming at the wrong people. The culprits aren't shoddy government or corporate greed, but rather the workers themselves whose demands for ever-increasing wages and benefits to support an unsustainable lifestyle force companies to find a less expensive workforce just to produce a product at a competitive price.
We as a people sit here in our palatial homes, storing our cars in garages that are larger and better appointed than the dwellings occupied by the majority of people in the world. We have an easy life, working only forty hours per week and not having to worry about food availability. Anything we could possibly want is just a few minutes' drive away at the local big box grocery store. We lead a privileged, slothful existence, spending money faster than we take it in, expecting the gravy train to last forever, all the while looking down our noses at intelligent, hard-working people in the rest of the world who are scrabbling for existence and saving every penney they can in order to get ahead. Somehow we forget that not so long ago our ancestors were those people. We're living our luxurious lifestyle because our ancestors worked, scraped, and saved.
Immigrants and offshore workers aren't stealing our jobs; we're giving them away by demanding ever increasing payment for ever decreasing work. And then we complain about the increased prices and lower quality of the things that we buy. It's little wonder that companies are finding workers elsewhere. They get more committed workers who will work for less money, producing a better product at a lower price. Asia will become the next economic powerhouse, not because of corporate greed, but because the growing number of educated people there are willing to work to attain the lifestyle that we take for granted.
That is undoubtedly bad for America. Fewer jobs means less money, a weaker economy, and overall a country that is not as strong as it once was. But no amount of government regulation attempting to restrict trade or prevent companies from offshoring will prevent that. If American companies can't move their production overseas, foreign competitors will tap that huge pool of available workers and produce products at a fraction of the price of American-made goods. American exports stop. High import tarrifs will serve only to keep the prices for American goods high so that, rather than being overrun with inexpensive foreign merchandise, we'll struggle to afford the decreasing supply of American-made goods. In short, government regulation can only change the shape of the decline, and perhaps draw it out a bit.
The only solution to the problem is for American workers to realize that the world doesn't owe them a privileged lifestyle just because they happen to live in this country. If that means giving up the vacation home, boat, new car every three years, and the many other frivolous luxuries, then so be it. The alternative is bankruptcy, poverty, and fighting your former co-workers for the choicest intersections at which to beg for dollars from passersby.
Sunday, 20 November, 2005
I use Yahoo Messenger from time to time to talk to friends or to collaborate with the other programmer on my current project. Messenger version 7.0 has a new feature (in my version it's still marked BETA) called LiveWords. I was talking to a friend this morning when I mentioned Harry Potter. Imagine my surprise when the message window showed "Harry Potter" lightly underlined. Hovering my mouse over the words displayed a Yahoo Search popup that had the most popular Harry Potter search hits. Or maybe they were sponsored links.
My immediate reaction was to go hunt down that feature and disable it, but after thinking about it for a bit I decided not to. I've been using this version of Messenger (version 7,0,0,437) for several months now, and this is the first I've seen of LiveWords. But now that I know it's there, I'll be looking for it. It'll be interesting to see just what all gets linked. I've already found out that I'm not popular enough.
Another interesting Messenger is the new "s:" command. By typing "s:phrase", you can display the search results for "phrase" in the message window on your computer and on your chat partner's computer. The message window gets the top search result and a "more results" link. I just discovered the feature today, so I'm not yet certain how useful it will be.
Thursday, 17 November, 2005
I finished Asimov's Foundation series today, all but Foundation and Earth, which I somehow missed when I picked up the rest of the books. I was left mildly disappointed.
I liked the beginning of the series: Prelude to Foundation, Foundation, and the first half of Foundation and Empire, but after that it was disappointing. The addition of a Second Foundation that works in secret was a good idea, I think, but it causes problems. With the "mentalist" abilities of the Second Foundationers and others, every character's actions and motivations are under question. Once it's been established that the mentalists can affect anybody at any time in just about any conceivable way, then all the rules are the window and anything can happen. It's not as bad as Harry Potter, with magic everywhere, but it's close.
I also read Asimov's Robot novels interspersed with the Foundation series. I'm pretty sure that I read the first one, The Caves of Steel, when I was a teenager. Once I got started on the book I remembered much of the story. Somehow I missed the second one, and by the time Asimov wrote The Robots of Dawn, I'd given up on science fiction because it seemed to have been overrun by fantasy.
All three of the Robot novels are thinly disguised mystery stories set far into the future. That's fine, seeing as how I like a "whodunnit" as much as the next guy. I like how Asimov envisioned the societies on each of three different planets. His discussions of social taboos make the reader sit back and contemplate just how much of what we consider "wrong" or "bad" (or "good") is based solely on how we were brought up. The intolerable is intolerable just because we think it is.
I'm glad he didn't go any further with the mind reading and mind changing robot, though. Sure, he touches on it a bit in Prelude to Foundation and again in Forward the Foundation, but fortunately he doesn't pursue that line too far. The whole idea of humanity's destiny being controlled by a small number of robots with mind control capability is vaguely unsettling.
Sunday, 13 November, 2005
I spent part of yesterday afternoon and a large part of today replacing about 100 feet of fence. The old wire had been there for over 25 years. It was rusted, broken in places, sagging , and generally in poor repair. Charlie figured out how to wiggle under the fence last week and I was getting tired of having to supervise him every time I let him out in the back yard.
Actually putting up the new fence takes relatively little time. I spent more time removing the old wire (including removing a few small trees that had grown up through the fence) and moving a large pile of rocks in the corner. Installing new posts, stretching the new wire, and attaching it to the posts only took a couple of hours. Even that's not too demanding: stretch the wire and go along with hammer and staples.
Except at the edges. You see, in order to do it right you need a sturdy post and the fencing has to be attached to it securely. The best way to attach to the post is to wrap the wire around it and then twist the end of the wire back around itself in a particular manner. Doing so will prevent the wire from slipping when you begin stretching. Stapling the wire to the post doesn't work, as even a moderate amount of tension will pull the wire right through the staple. Securing the wire to the post is tedious and time consuming work, but it's the most important part of installing a fence.
It was while I was wrapping and twisting that I realized something: like programming, the hard part of putting up a fence is the edges. The end post is the fence's interface to the world. The other posts are just internal support. Get the end post right and everything else just works. But if you do a shoddy job on the end post, no amount of staples or other attaching the fence to the support posts will give you a sturdy fence.
Programming, as Jeff Duntemann points out regularly, is very similar. It's relatively easy to create a program--even a large program--that is internally consistent. The hard part is the edges--where the program interacts with the outside world, be it the user interface, the hardware, or some other program or piece of software. The edges make all the difference. If you have fragile interfaces on the edges, your program will be fragile regardless of how structurally sound it is internally. Good, clean, strong interfaces won't save a bad program (although they will certainly help), but without them the program is lost.
I'm always surprised when I see a junior programmer, often one who is working on his first major assignment, designing the interface to an important edge in a software project. I realize that developing interfaces isn't the most glamorous programming job, but it's the most important. Design of interfaces should be done by experienced programmers who then leave the implementation to juniors. The juniors, in turn, learn why certain design patterns are used and gain a better understanding of the entire software design process. This is especially important when developing an API that will be used by multiple projects. It takes knowledge and experience to develop an interface that's complete, minimal, and easy to use. It's not something that should be left to inexperienced programmers.
Wednesday, 09 November, 2005
The antibiotics knocked off the tooth infection very quickly and I was feeling fine over the weekend. The dentist's appointment secretary called on Tuesday to see if I wanted to reschedule Friday's root canal appointment for today. Better sooner than later, I thought, so I showed up at 8:00 this morning for the root canal. After drilling out the old filling, the dentist found that the crack extended below the gum line, meaning that he couldn't save the tooth. After a surprisingly brief bit of tugging and twisting, the tooth came right out.
I don't know what new drug he was using, but this is the first time that I didn't feel some pain when I had dental work done. The only time I felt uncomfortable was when he was giving me the injection. Of all the drilling and poking and prodding and pulling, all I felt was pressure and vibration.
So I'm minus a tooth. Since it's a top molar (all the way back), I'd be tempted to leave it gone except that the tooth below most likely would start coming out. I have two choices: a dental appliance of some kind (think dentures), or an implant. I'll probably go with the implant: an oral surgeon screws a titanium post into my jaw bone and the dentist then builds a tooth around it. Not a pleasant prospect, but people I know who have implants say that they're relatively trouble-free.
Sunday, 06 November, 2005
Sometimes I wonder what a programmer was thinking when he came up with a function. Today's laugh maker is the Windows API function GetConsoleTitle, used to return the text displayed in the title bar of a console window. The function prototype is:
DWORD GetConsoleTitle(LPTSTR lpConsoleTitle, DWORD nSize);
You pass it a pointer to a string and a number that says how long the string is. If the string you pass is long enough, the function will fill your string with the title bar text and return the length of the text. Simple. Right? Don't I wish.
The documentation says, "The total size of the buffer required will be less than 64K." That's nice to know. I'd hate to think that somebody would make the window's title bar text longer than 65,000 characters..
The real kicker is the discussion of the return value:
If the function succeeds, the return value is the length of the string copied to the buffer, in TCHARs.
If the buffer is not large enough to store the title, the return value is zero and GetLastError returns ERROR_SUCCESS.
If the function fails, the return value is zero and GetLastError returns the error code.
So if the buffer I pass isn't big enough, what do I do? I guess the only safe way to call this function is to allocate 64K bytes (or is it 64K characters?) for the buffer. Otherwise I run the risk of the function failing and being forced to allocate 64K anyway.
The GetWindowsDirectory function, by the way, isn't much better. Its return value is described thusly:
- If the function succeeds, the return value is the length of the string copied to the buffer, in TCHARs, not including the terminating null character.
- If the length is greater than the size of the buffer, the return value is the size of the buffer required to hold the path.
- If the function fails, the return value is zero. To get extended error information, call GetLastError.
Here I have to check the return value against the length that I passed in order to ensure that the buffer I sent was large enough.
I chose examples from the Windows API, but that's not the only API that has screwy functions like this. The standard C library is chock full of similar oddities, as are many Linux libraries that I've worked with.
I understand that these particular API functions were written long ago and maybe I can give a little leeway to the programmers who designed them and the managers who allowed them to be published. What I don't understand, though, is how new APIs with similar warts get approved. Is it really so bad to have a separate function that will return the required size?
Saturday, 05 November, 2005
Ham radio is a hobby that has something for almost anybody. Some people like talking with local friends while commuting and others like working the high frequency bands to talk with people all over the world. There are those for whom the attraction is all in the hardware--fiddling with the radios--and they talk on the radio just enough to confirm that their creations work. There are contests, different operating modes, antennas to build, and special events to participate in.
One of the purposes of the amateur radio service, as laid out by the forerunner of the Federal Communications Commission, is to provide a ready source of trained operators with their own equipment who can provide emergency communications in the event of a natural or man-made disaster. Hams from all over the country provided assistance in the wake of hurricanes Katrina and Rita--providing emergency, priority, and health and welfare traffic in the aftermath of those storms. Ham radio was the only reliable form of communications in large parts of rural Texas for weeks after Rita come through. Local police and fire communications systems, cell phone towers, and standard telephones were done for extended periods. Within hours of the storm's passing, there were amateurs in the affected areas setting up communications systems at dispatch centers and riding in emergency vehicles.
The Amateur Radio Relay League formalizes the emergency services in ARES--the Amateur Radio Emergency Service. ARES members attend formal and informal training sessions to learn emergency procedures and to practice operating in emergency situations. We are "first responders," who work closely with local agencies (cities and counties) to help with communications in the event of an emergency. On an annual basis we get together with other groups, sometimes with our served agencies, and hold a drill: a simulated emergency test, or SET.
Today's SET was a simulated weather event, with heavy thunderstorms and tornadoes in the area. This time I served as the backup net control operator, helping to pass traffic among the many served agencies (county command post, city command posts, and two hospitals) while monitoring the storm spotters' frequency in order to notify the net of weather events. It sounds like a bunch of old guys playing a silly game, but it's actually a pretty good simulation. We had to do something like this for real just a few months back when we thought Rita would be making its way through Central Texas. The beauty of the drill is that we can work out kinks in our equipment and simulate things that might happen, like one of the command posts being taken out or our primary communications repeater going silent.
The drill went from 8:00 until 11:30 in the morning, and then we headed out to our leader's house for food and drinks and a short critique of the exercise. All in all it was an interesting and informative way to spend a Saturday morning.
Friday, 04 November, 2005
I went to the dentist yesterday. My teeth had been unusually sensitive for the last 10 days or so, and Wednesday evening I noticed that one in particular was becoming quite painful. The dentist took an x-ray, looked around, and found that the tooth is cracked. The pain was mostly from the infection that had been building. He gave me a prescription for antibiotics and pain killers, and sent me on my way after making an appointment for me to come visit again next Friday.
Antibiotics don't work instantly, though. By the time I got home and finished fixing the fence where Charlie had been crawling under recently, I was in considerable pain. I spent the rest of yesterday on the couch--watching Star Trek on DVD (Debra bought me the first season as a birthday present last week) and drugged up on painkillers. Not that the medications did much for the pain. I've experienced quite a number of unpleasant sensations, and an abcessed tooth is by far the most intense and unmanageable pain of which I'm aware. I finally crawled in bed at about 11:00 with a bag of ice resting on my cheek.
The dentist told me that I would be uncomfortable for "a couple of days," so I was quite surprised when I woke up this morning and the toothache was almost gone. I managed to get a little bit of work done, although I did spend a lot of time on the couch trying to catch up on the sleep I'd missed the last two nights. Late this evening as I write this, I'm feeling reasonably normal. I can actually chew food on that side of my mouth again.
I know that a lot of people are afraid of, or at least very uncomfortable, visiting the dentist. I just don't understand that. It's not on my top list of fun things to do but other than my semi-annual teeth cleaning, visiting the dentist is much preferable than the alternative. A root canal is uncomfortable and expensive (especially without dental insurance), but a toothache is excrutiating.